概述

依照海洋站点与PHPOA的内网渗透实验任务要求,信息安全三班1组刘一搏自2016年12月26日至2016年12月27日期间,对海洋站点与PHPOA进行内网渗透实验,得此分析报告。

1. 渗透测试范围

此次渗透测试的主要对象包括:海洋CMS网站、内网的PHPOA。

2. 渗透测试内容

在本次渗透测试过程中,通过对海洋CMS网站与其内网PHPOA的结构分析、目录遍历探测、用户和密码猜解、SQL注入漏洞挖掘分析等几个方面进行测试,得出海洋CMS网站与其内网PHPOA存在的安全风险点,并针对这些风险点提供安全加固建议。

测试流程

1. 对海洋CMS站点进行信息收集

2. 对海洋CMS站点尝试扫描与注入

3. 对海洋CMS站点尝试木马包含

4. 获取海洋CMS站点shell

5. 建立跳板,利用内网代理访问PHPOA

6. 对PHPOA进行信息收集

7. 对PHPOA尝试路径扫描

8. 对PHPOA尝试代码审计

9. 获取PHPOA的SHELL

10. 对PHPOA的LINUX系统新建用户提升权限

11. 对PHPOA的LINUX系统安装后门

12. 对PHPOA的LINUX系统伪造/清除痕迹

13. 完成报告内容

实验环境1. 海洋CMS站点环境

海洋CMS站点与PHPSTUDY(mysql php)环境。

2. 内网PHPOA环境

PHPOA与LINUX apache环境。

3. 内网防火墙配置

配置内网防火墙,使内网的PHPOA只允许海洋CMS站点的机器访问,阻止内网渗透攻击方访问,命令如下:

禁止所有80端口连接,

iptables -I INPUT -p tcp --dport 80 -j DROP

只允许指定内网IP通过80端口访问,

iptables -I INPUT -s [ip] -p tcp --dport 80 -j ACCEPT

设置好之后用iptables –nvl查看配置是否正确。

实验原理1. 找功能函数eval的源码文件写入木马

· 因命令执行大致是函数,eval(),system(),proc_open()之类的,能执行php代码一般就是eval()函数,检索页面源码有eval函数的地方,发现代码:@eval("if(".$strIf."){\$ifFlag=true;}else{\$ifFlag=false;}");

@eval("if(".$strIf.") { \$ifFlag=true;}

· 构造含木马的url:[ip]/search.php?searchtype=5&tid=&area=eval($_POST[cmd])

2. 内网渗透原理

· 利用reGeorg proxifier两个软件进行内网代理。

· reGeorg利用了会话层的socket5协议,提供了代理程序与代理脚本。

· Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。

· 由reGeorg提供的代理脚本与代理程序配合Proxifier使网络程序生成代理链进而渗透到内网访问内网站点。

渗透测试过程1. 收集海洋CMS站点路径信息

使用御剑工具扫描海洋CMS站点,收集该站点信息,如图1所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(1)

- 图1 -

2. 判断获取SHELL方式

通过追踪area参数处理过的地方,查找源码中有eval函数的地方,判断可写入木马的位置写入木马,如图2所示。(此处详细说明请见上文实验原理部分)

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(2)

- 图2 -

3. 得到海洋CMS站点SHELL

用菜刀工具连接木马,如图3、图4所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(3)

- 图3 -

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(4)

- 图4 -

4. 设置内网代理

至此,获取到了海洋CMS站点的SHELL。接下来要进行内网代理,才能渗透至内网访问内网站点。将reGeorg代理软件的代理程序脚本上传至海洋CMS网站目录下,如图5所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(5)

- 图5 -

验证reGeorg的代理脚本是否可成功执行,如图6所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(6)

- 图6 –

用CMD→reGeorg连上传的接代理脚本,如图7所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(7)

- 图7 -

使用Proxifier,socks5客户端生成代理链,如图8所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(8)

- 图8 -

填写代理信息,如图9所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(9)

- 图9 -

5. 搜索内网主机

设置代理完毕后即完成内网代理过程,现在通过菜刀工具打开海洋CMS站点机器的命令窗口搜索内网站点地址,如图10、图11所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(10)

- 图10 -

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(11)

- 图11 -

访问搜索到的192.168.80.128这个内网地址,看到PHPOA登录界面,如图12所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(12)

- 图12 -

6. 获取内网PHPOA主机的SHELL

现在想办法获取PHPOA的SHELL,通过扫描PHPOA的机器IP没有获取到有用信息,通过注入与弱口令均没有效果,通过查看资料发现此OA某PHP文件存在任意文件上传漏洞,故写个最简单的上传页面进行任意文件上传,首先添加一个空的txt文件(sysConf.txt),再添加木马文件(bkhorse.php),然后提交上传,如图13、图14所示。(此处详细说明请见后面的代码解析部分)

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(13)

- 图13 -

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(14)

- 图14 -

页面返回木马保存路径,如图15所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(15)

- 图15 -

接下来用菜刀工具连接木马,获取到PHPOA的SHELL,如图16、图17所示。

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(16)

- 图16 -

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(17)

- 图17 -

7. 在PHPOA的主机上提权

最后用菜刀打开PHPOA机器的终端命令窗口进行提权即完成全部实验过程。(LINUX提权试了几种办法均未成功,故此处暂无内容,继续奋斗……)

代码&语句解析1. PHPOA代码审计

该OA在(ntko\uploadOfficeFile.php)这个文件存在一个任意文件上传的漏洞,对PHPOA源码文件(ntko\uploadOfficeFile.php)进行审计,发现源码中用if判断了是否存在上传文件,并且只对name值为uploadfile文件进行了大小检测,如图所示,

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(18)

如果上传文件符合大小条件,就会判断是否接收到name值为attachfile的附件,若接收到附件,则保存于磁盘,并没有对附件进行任何检测,如图所示,

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(19)

则说明存在任意文件上传漏洞。

只需写个简单的上传页面,提交的目标地址指向这个uploadOfficeFile.php文件,然后上传name值为uploadfile与attache的两个文件,上传uploadfile的文件内容大小符合检测条件,attache附件文件即可上传木马文件。上传后用菜刀连木马,拿到shell。

分析结果总结1. 内网渗透实验体会

由于此次实验中的海洋站点包含一句话木马位置与内网PHPOA可上传木马文件位置两个突破点均为代码审计的成果,让我体会到代码审计的重要性,对于代码的审计能力必须提高。

2. 遇到问题及解决

遇到问题:

在拿到海洋站点shell后,扫描到内网的PHPOA,只有登录页面,不知道该如何下手。

解决过程:

后来通过搜索引擎得知该OA在(ntko\uploadOfficeFile.php)这个文件存在一个任意文件上传的漏洞,故对PHPOA源码文件(ntko\uploadOfficeFile.php)进行审计,发现源码中用if判断了是否存在上传文件,并且只对name值为uploadfile文件进行了大小检测,如图所示,

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(20)

如果上传文件符合大小条件,就会判断是否接收到name值为attachfile的附件,若接收到附件,则保存于磁盘,并没有对附件进行任何检测,如图所示,

内网渗透测试步骤(黑客升级资料海洋站点内网渗透实验报告)(21)

则说明存在任意文件上传漏洞。

只需写个简单的上传页面,提交的目标地址指向这个uploadOfficeFile.php文件,然后上传name值为uploadfile与attache的两个文件,上传uploadfile的文件内容大小符合检测条件,attache附件文件即可上传木马文件。上传后用菜刀连木马,拿到shell,问题解决。

3. 内网渗透实验总结

通过本次内网渗透实验,证明了海洋CMS站点不够安全。对于文件上传漏洞与SQL注入漏洞虽做了严谨的安全加固,但对于功能参数赋值的过滤不严,导致木马写入。

通过本次内网渗透实验,证明了PHPOA不够安全。对于遍历目录与相关权限具备安全防范措施,但对于文件上传的检测过于缺乏,导致木马写入。

总结,通过本次渗透测试实验,评定海洋CMS网站与PHPOA软件安全级别为"十分危险"。

4. 优化防御措施

检测/过滤对功能参数的赋值

检测海洋CMS网站的各个功能参数的赋值情况,检测赋值内容的长度等方法。

改文件源码阻止任意文件上传

对PHPOA所有涉及文件上传的源码进行改进,检测/过滤上传的文件,更改保存接收文件后保存的路径。

,