百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

黑客升级资料——海洋站点内网渗透实验报告

bigegpt 2024-08-14 14:54 2 浏览

概述

依照海洋站点与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所示。

2. 判断获取SHELL方式

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

3. 得到海洋CMS站点SHELL

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

4. 设置内网代理

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

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

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

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

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

5. 搜索内网主机

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

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

6. 获取内网PHPOA主机的SHELL

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

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

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

7. 在PHPOA的主机上提权

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

代码&语句解析

1. PHPOA代码审计

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

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

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

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

分析结果总结

1. 内网渗透实验体会

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

2. 遇到问题及解决

遇到问题:

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

解决过程:

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

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

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

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

3. 内网渗透实验总结

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

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

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

4. 优化防御措施

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

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

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

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

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...