渗透测试网络安全小程序(海洋网站和PHPOA系统渗透测试报告)
渗透测试网络安全小程序(海洋网站和PHPOA系统渗透测试报告)图11.通过搜索引擎查出海洋CMS存在文件包含漏洞,payload如下图所示:Linux Centos 2.6.32 应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。命令执行漏洞分为三类: ①代码层过滤不严格 ②系统漏洞造成命令注入③调用第三方组件存在代码执行漏洞 4.2 文件上传基本原理分析文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,"文件上传"本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。要完成这个攻击,要满足以下几个条件
1概述西普信息安全雪豹班第二项目组于2016年12月22日收到关于海洋网站及其内网PHPOA渗透测试的项目,并进行了详细的黑盒渗透测试。本次渗透测试对存在的相应漏洞进行了仔细的分析和攻击,以了解两网站的安全程度,同时给出相应的安全加固建议。
2风险评估海洋网站存在文件包含漏洞,通过在某URL后写入一句话木马即可获得本网站的WebShell。PHPOA系统存在文件上传漏洞,通过构造上传地址,上传木马即可获得WebShell,并通过命令提权,服务器的管理权限即被拿到。故两个网站的安全系数都较低,急需改进。
3实验环境3.1 海洋网站集成环境2008 server-2:
PHPstudy2014:Apache PHP5.3
Linux Centos 2.6.32
应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、
passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。
命令执行漏洞分为三类: ①代码层过滤不严格 ②系统漏洞造成命令注入③调用第三方组件存在代码执行漏洞
4.2 文件上传基本原理分析文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,"文件上传"本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。
要完成这个攻击,要满足以下几个条件:
首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法得到Web容器解释这个脚本,那么也不能称之为漏洞。最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。
5渗透测试过程5.1 海洋网站拿WebShell1.通过搜索引擎查出海洋CMS存在文件包含漏洞,payload如下图所示:
图1
2. 本次渗透将密码改为mm,并用菜刀连接,连接时选择脚本类型为PHP(eval),获得本网站的WebShell:
图2
图3
图4
3. 在菜刀首页右击链接打开虚拟终端,查看本网站服务器的IP:
图5
图6
通过查看IP得知,本服务器除了192.168.0.0网段,还有一个192.168.1.0网段,知道本服务器内网网段之后,可以查看该内网还有哪些IP,即还有哪些服务器,这样我们可以继续扩大本次渗透测试的成果。
4、 查看内网有哪些服务器:
图7
通过arp -a 这条命令得知内网还有一个192.168.1.2的服务器,但由于和攻击方IP 192.168.0.43不属于同一个网段,是无法直接访问192.168.1.2服务器的,故需要利用海洋网站作为代理进行连接。
5.2 设代理连接内网1.在海洋服务器上传tunnel.nosocket.php文件,通过浏览器访问该文件,并拷贝该URL以备后面使用。
图8
图9
访问tunnel.nosocket.php文件页面显示All seems fine,表示该文件没问题。
2.利用reGeorgSocksProxy.py为代理做准备:
图10
图11
在reGeorgSocksProxy.py所在的文件夹内Shift 右击打开命令窗口,并输入python reGeorgSocksProxy -p 8866 -u "http://192.168.0.45/tunnel.nosocket.php" ,-u后输入的URL为刚才拷贝的URL,命令窗口出现All seems fine即为操作正确。
3.利用Proxifier工具设置代理:
图12
图13
安装完Proxifier工具后,打开该工具添加代理端口8866,并使用SOCKS5代理,设置完成后即可成功访问192.168.1.2的服务器,如下图:
图14
5.3 PHPOA拿WebShell1. 通过搜索引擎得知PHPOA有文件上传漏洞,链接为http://192.168.1.2/ntko/upLoadOfficeFile.php:
图15
图16
访问该链接显示并未上传文件或者并不是上传的文件,则需要我们自己构造上传地址。
2. 通过编写html文件创建上传页面,内容如下图:
图17
3.用浏览器访问我们写好的html文件,并在第一各浏览上传文件处上传.txt文件,在第二个浏览上传文件处上传我们的木马:
图18
图19
显示木马保存的路径,我们就可以用浏览器访问并用菜刀连接了。
4. 访问该木马,用菜刀进行连接,获得内网服务器的WebShell:
图20
图21
5.4 对PHPOA进行提权1.在虚拟终端中查看当前用户:
图22
通过上图可知我们并不是root权限,那么我们接下来就进行提权。
2. 查看服务器开放的端口,发现22端口即远程端口开放着:
图23
3. 我们可以利用Hydra工具进行SSH密码暴力破解,以获得管理员的用户名和密码:
图24
暴破得到管理员的用户名为root,密码为zmxncbv,即我们得到了管理员的权限。
6安全加固建议
1. 在编写网站源代码时能把代码敲全就尽量不要使用文件包含,否则及其容易存在文件包含漏洞。
2. 上传文件的类型一定要进行严格的限制,不允许上传php类型的文件。
3. 对服务器里的目录和文件尽量设置非管理员禁止查看的权限,为黑客提权增加难度。
4. 网站管理员要提高警惕性,尽量将各种密码复杂度设置的高一些,对重要文件也要进行加密。
7心得体会1.千里之堤毁于蚁穴,也许一个特别不显眼的知识点就可以对巨大的网络系统造成破坏,所以我们要尽自己的能力了解更多的知识。
2.知己知彼百战百胜,渗透之前要了解目标系统的各种特性,也许你了解到的解析,上传,路径的特性,就可以拿下整个系统。
3.对目标系统的收集的工作必不可少,比如目标系统开启的端口,用户,版本等等。
4.思路对一次成功的渗透测试十分重要,只有思路正确且清晰,渗透测试过程才能完成。