[安全测试报告]针对某厂商的一次渗透性测试
针对某厂商的一次渗透性测试
1、 安装某商客户端,启动客户端可以看到有两个默认安装好的摄像机,一个设备的设备编号是局域网地址,另外一个设备编号是个摄像机名称。
2、 启动wireshark,并打开抓包功能。
3、 打开某商客户端,此时客户端会自动连接安装好的摄像机,通过抓包分析,可以看到当设备编号为局域网地址时,某商的客户端会通过发信令自动去连接IP为该局域网地址(比如192.168.0.100)的摄像头,当设备编号为普通的名称时,它会通过发信令到一个具有公网IP的服务器(地址为123.196.113.18),此处猜测某商利用自己或第三方的平台去连接挂在互联网的摄像机。
4、 对该IP进行whois查询,发现某商服务器是托管在北京市电信通苏州桥IDC机房的,并且在该服务器上部署了3个域名的站点,除了www.某商.com以外,另外一个站点的域名是xxx.com。
5、 访问www.xxx.com发现是一个电信系统(xxx),或许某商可能用到该系统的技术支撑,也或者可能只是共用一台服务器而已。
6、 访问www.某商.com,上面是推销某商的,并且发现里面有一个BBS,全站浏览了一下看不出是使用业界流行的网站模板的(有的话可以使用现成已发布的漏洞),整个站点应该是自己开发的。
7、 对某商站点进行漏洞扫描,只发现了一个反射型XSS,这个需要结合社工才可以利用,故对本人来说是个鸡肋漏洞。
8、 仔细浏览了一下,发现有人发帖,并且帖子里面有附件,立马想到可以利用这个来上传木马拿下站点,但是发帖需要注册,所以马上注册了一个某商论坛的账户并进行登录。
9、 点击“发表新文章”发表一个新贴,里面果然有上传附件的功能,看了一下前台的下拉列表,只支持rar、txt和html等无危害的静态文件,紧接着使用burp对该功能进行了如下测试:
9.1、直接上传一句话PHP木马(webshell.php);失败。看来后台会对上传的文件后缀名进行判断。
9.2、利用文件名截断的方式进行上传。Burp拦截到上传请求后,将webshell.php改名为webshell.php_.rar,其中”_”为截断字符”\00”;结果还是失败,估计后台修复了此bug。漏洞解释:一般后台检测后缀会从后往前检测,如果存在漏洞,发现后缀为rar,就认为该文件是合法的,然后将webshell.php_.rar进行保存,但是因为存在截断字符”\00”的缘故,”rar”会被截断掉,最终保存为webshell.php。
9.3、利用Windows的特性,将webshell.php改名为webshell.php.和webshell.php_(“_”为空格),结果还是失败。
9.4、重新查看了访问过的http请求和响应,发现在http响应中携带了web服务器信息,使用的是比较老的apache 2.xx,而该版本是存在文件解析漏洞的,利用该漏洞,Burp拦截到上传请求后,将webshell.php改名为webshell.php.rar,上传成功!(此处还是不明白为什么有截断字符的会被检测到而不能上传成功)。
漏洞解释:低版本的apache在解析xxx.php.yyy时,如果yyy后缀是不可识别的文件类型,那么该文件就会被当成php来解析。
10、 返回帖子列表,可以看到上传的附件webshell.php.rar,点击右键可以查看到该附件的完整路径(明显被重命名)。
11、 使用菜刀连接该一句话php木马,成功登录目标服务器获得webshell!
12、 在菜刀上执行虚拟命令行,查看连接的账户类型为系统账户,说明拥有系统最高权限,这样说明了apache是以管理员账户运行的。
13、 使用netstat命令发现目标对外开放了3389端口,因此我们只要有账户就可以通过公网进行连接登录,由于我们手头已经拥有系统账户权限,可以通过虚拟命令行的net user命令添加一个新账户。
14、 使用新建的账户连接远程主机3389成功,目标机器已被完全控制。由于用户连接摄像机时都需要向目标机发送信令,因此,完全可以在目标机上嗅探某商的通信端口数据,进而获取用户的敏感信息。
15、 登录www.xxx.com,发现里面也有一个BBS,目测框架是一样的,也存在同样的漏洞,说明用的是同一个模板。
16、 通过菜刀可以看到有多个站点的数据库都在这台主机上,其中有多个数据库存有用户名和密码,发现有很多口令是用明文来存储的!只有少部分使用sha1的哈希算法来进行存储,但是sha1已被证明是不安全的,在线破解其存储的sha1的哈希值基本上都可以破解出来,更离谱的是连接数据库的账户和口令都是空!默认的root数据库账户的口令则被设置为123456的弱密码。
17、 【内网渗透】在目标机器上执行netview命令,可以看到和目标机有通信的机器只有8台,ping每一台机器获取其IP,可以看到这些机器都在一个网段内,因此,应该为IDC机房内同一个网段的主机。
18、 对这些内网机主机进行探测,发现有几台主机对外开放了http 80端口,尝试使用外网IP进行访问,发现这些主机部署了完全独立的业务系统,并设立了对外的portal,比如包括远程电梯管理系统、物流系统和试题阅读系统,由此看来,如果其它独立业务系统有漏洞地话,IDC的服务器托管环境反而增加了某商服务器被攻击的风险。
19、 上传PwDump到目标主机并读取NTLM hash,尝试在线破解出管理员密码,但未能成功。注:通常机房管理员在不同主机使用同一个密码,在得到账号后尝试连接同一网段的其它主机。
20、 在目标机器上安装WinlogonHack,当管理员登录时会自动记录登录密码,经过几天的等待终于截取到管理员的密码,并登录成功!
某商渗透测试总结:
1、 结合以上渗透测试过程,基本确定某商服务器平台安全性比较弱。
2、 从apache的版本来看,应该是建站比较早,但建站之后应用本身估计就没有再更新维护过,故使用的软件补丁版本都比较低,所以也很容易被利用,因此,定时更新系统和第三方软件或库的补丁显得非常重要。
3、 莫忽视任何低级别的漏洞,比如信息泄漏,不同水平的人对同一个漏洞的利用方法可能差异会很大。
4、 纵深防御是做好安全的关键,一次渗透过程可以分为多个阶段,应始终在每个阶段都设立防御机制,并总是假设某个阶段的防御失效时如何在后面的阶段最大化的减少损失。比如我们应该在应用程序对用户数据进行校验,在系统上对权限和端口等设置最小化,对账户实施强口令策略等等,总之,只有系统地进行防范才能最大化降低风险。