对Linux服务器的一次渗透
(2011-06-26 09:26:12)
标签:
it |
分类: 安全 |
利用代码:
前一段时间接了一个渗透测试的任务,过程有点意思,所以简单写一下,以供参考。
我们检测的三台主机中两台为Linux系统,一台为AIX系统。还有一台是边界路由器。 目标网络的主机通过地址转换来提供对外访问,内部使用172.16.*.*地址段(这些信息是测试之后才得到的,开始并不知道)。在边界路由器后面还有一台Cisco (515?)对三台主机进行保护,只允许外部用户连接不同主机的部分端口,例如80, 根据我们的检测,Cisco 在对xx.xx.xx.2和xx.xx.xx.3进行了端口扫描之后,发现只有通过xx.xx.xx.3的WEB服务进行进行间接攻击。首先检查TCP/80端口的服务,我们发现新闻搜索的功能是在另外一个端口8070提供的。直接输入:http://yyy.yyy.yyy:8070/ 之后,得到了一个系统管理登录页面,简单地测试了一下,输入test/test作为用户名/口令,似乎认证成功,但最后并不能进入下一个页面。我们发现这个端口正在运行 Tomcat 利用这个漏洞我们基本上可以查看整个系统,但是由于无法写入数据,威胁似乎还不是很大。 于是我们将注意力转移到论坛和聊天室。这两个服务一个监听在8080,一个监听在8888端口。直接输入http://yyy.yyy.yyy:8080/, 但这仍然不足以让我们在系统上运行命令。于是我们继续检查聊天室所在的8888端口。这个端口运行的是apache select (感谢小许提供技术支持) 这样的命令来将数据库中的内容写到一个php文件里,但由于mysql是以mysql用户身份运行的,无法写到apache的目录中。所以这次尝试失败了。 我们又想到了一个方法,利用8070端口的漏洞我们可以访问任意系统文件,而8070端口是由tomcat提供服务的,如果我们可以设法在系统中创建一个. 于是我们又重新编写了一段可以执行系统命令的jsp代码,将其输入测试表中,再次利用into http://yyy.yyy.yyy:8070/tt/tmp/test.jsp (感谢watercloud提供技术支持) 我们发现我们指定的命令被执行了!而且是以root身份执行的。这意味着我们已经完全控制了整个系统。 当然,通过cgi执行命令还是不如有一个shell来得方便。当然最简单的方法就是开一个xterm连回到我们的Xwindows即可。但是我们是用的 第二天,我决定还是用老办法,开个shell算了。首先要找到一个可以外部访问的端口。但是防火墙并不允许外部访问所有的端口,经过一番测试,发现所有允许访问的端口都被占用着。仔细看了看进程,发现chatserver占了4个端口,每一个端口对应一个聊天室,而且目前也没有人在使用这些聊天室。所以我就先kill掉其中一个进程,这样就可以将在其对应的端口上绑定一个shell了。 通过jsp执行命令来下载/编译/运行我们的bindshell: wget gcc nohup 现在就可以连接我们的shell了:nc 现在我们已经在防火墙的后面了,因此可以直接访问内网了。通过扫描发现存在如下内部主机: 172.16.1.1 172.16.1.2 172.16.1.3 172.16.1.4 |
前一篇:木马经典的十大藏身地点