第九章 渗透测试基础
信息收集分主动(与目标直接交互,但目标可能记录IP及活动)和被动(利用网上海量信息,目标不知晓),社会工程学是重要技巧,如伪装身份套取信息、遗留含执行程序的优盘等。:确定可行攻击通道后,分析前期情报信息,结合安全漏洞扫描结果等,搜索渗透代码资源,找出攻击点,在实验环境验证,挖掘未知安全漏洞并开发渗透代码。:体现团队创造力与技术能力,根据目标组织业务模式等,自主设计攻击目标,识别关键基础设施,寻找可
9.1 渗透测试过程
-
前期交互阶段:渗透测试团队与客户组织沟通,确定测试范围、目标、限制条件及服务合同细节,涉及收集客户需求、准备测试计划等活动 。
-
情报搜集阶段:确定目标范围后,利用公开来源信息查询、Google Hacking、社会工程学等方法,获取目标组织网络拓扑、系统配置与安全防御措施等信息。信息收集分主动(与目标直接交互,但目标可能记录IP及活动)和被动(利用网上海量信息,目标不知晓),社会工程学是重要技巧,如伪装身份套取信息、遗留含执行程序的优盘等 。
-
威胁建模阶段:搜集情报信息后,团队针对信息进行威胁建模与攻击规划,对目标有清晰认识,包括组织架构和内部技术部署 。
-
漏洞分析阶段:确定可行攻击通道后,分析前期情报信息,结合安全漏洞扫描结果等,搜索渗透代码资源,找出攻击点,在实验环境验证,挖掘未知安全漏洞并开发渗透代码 。
-
渗透攻击阶段:利用找出的安全漏洞,获取系统访问控制权。可利用公开渗透代码,还需结合目标系统特性定制攻击,考虑并挫败安全防御措施,在黑盒测试中注意逃避目标检测机制 。
-
后渗透攻击阶段:体现团队创造力与技术能力,根据目标组织业务模式等,自主设计攻击目标,识别关键基础设施,寻找可利用信息和资产,达成对客户组织有重要影响的攻击 。
-
报告阶段:向客户组织提交报告,包含关键情报信息、系统安全漏洞、渗透攻击过程、业务影响及攻击途径等,从防御者角度分析安全防御体系薄弱环节并提出方案 。
9.2 渗透测试框架
9.2.1 认识Metasploit
Metasploit:开源渗透测试框架软件
-
情报搜集阶段:通过插件机制集成调用Nmap、Nessus、OpenVAS等开源网络扫描工具
-
威胁建模阶段:支持一系列数据库命令操作直接将信息汇总到数据库中
-
漏洞分析阶段:提供了大量的协议Fuzz测试器与Web应用漏洞探测分析模块,支持具有一定水平能力的渗透测试者 在实际过程中尝试挖掘出“0Day”漏洞,并对漏洞机理与利用方法进行深入分析,
-
后渗透攻击阶段:Meterpreter 可以看做一个支持多操作系统平台,可以仅仅驻留于内存中并具备免杀能 力的高级后门工具,Meterpreter 中实现了特权提升、信息攫取、系统监控、跳板攻击与内 网拓展等多样化的功能特性,报告生成阶段
-
报告生成阶段:该框架将获得的渗透测试结果可以输入至内置数据库中。结果可以通过数据库查询来获取
9.2.2常用命令
-
msf>back-
功能:跳出当前模块,也可直接转换到其他模块 。
-
-
msf> show exploits-
功能:显示Metasploit框架中所有可用的渗透攻击模块,exploits分为主动型(直接连接并攻击特定主机)和被动型(等待主机连接后攻击) 。
-
-
msf> search-
功能:基于正则查询,查找特定的渗透攻击、辅助或攻击载荷模块,如输入
search mssql可搜索与SQL有关模块 。
-
-
msf> show auxiliary-
功能:显示所有的辅助模块及其用途,辅助模块用途广泛,如作为扫描器、拒绝服务攻击工具、Fuzz测试器等 。
-
-
msf> show options-
功能:选择模块后,列出该模块所需各种参数;未选模块时,显示所有全局参数
-
-
msf> show payloads-
功能:显示与当前模块对应的攻击载荷,攻击载荷是针对特定平台的攻击代码,通过网络传至攻击目标执行 。
-
-
msf> use-
功能:加载找到的攻击模块或payloads,加载后可输入
show options显示该模块所需参数 。
-
-
msf> show targets-
功能:列出Metasploit渗透攻击模块可影响的目标系统类型,不同攻击模块对目标系统的版本、补丁级别等有特定要求 。
-
-
msf>info-
功能:显示模块详细信息、参数说明及所有可用的目标操作系统,在使用模块前查看相关信息有帮助 。
-
-
msf>set和unset-
set功能:针对某个参数进行设置并启动该参数 。 -
unset功能:禁用相关参数 ,模块中参数有已设置和未设置两种状态,必填项需手工设置并启动 。
-
-
msf> check-
功能:检测目标主机是否存在指定漏洞,避免直接溢出操作,但目前支持该命令的exploit数量有限 。
-
9.3 信息收集
9.3.1 被动信息收集
-
搜索引擎查询:
-
site指令:只显示来自某个目标域名的相关搜索结果
-
intitle指令:只有网页标题包含所搜索的关键字的时候,才会显示在搜索结果里
-
inurl指令:在URL中查看是否包含指定的关键字
-
:inurl:id= site:nankai.edu.cn
-
-
IP查询:查询域名对应的IP地址,
-
有可能使用CDN(内容分发网络):采用各种缓存服务器,将缓存服务器分布到用户访问相对集中的地区或网络中
-
去掉 www 重新ping
-
-
whois信息收集
-
在线工具等
-
-
NDS信息收集:
host -t ns xxx.com查询DNS服务器 -
旁站查询:IP:%123.123.123.123 格式搜索存在于目标ip上的站点
9.3.2 主动信息收集
1. Nmap
-
发现主机:nmap -sP 192.168.1.0/24
-
端口扫描:-p参数指定扫描目标主机的端口范围
-
指纹探测:-O参数,对目标主机的系统以及版本做探测
Nmap -sS -sV - O xxx.xxx.xxx.xxx
-
-sS参数的作用是SYN扫描,
-
-sV的作用是探测详细的服务版本信息,
-
-O是探测系 统指纹。效果如下图:
2. Maltego
Maltego 是一个开源的取证工具。它可以挖掘和收集信息。Maltego是一个图形界面,可 以得到目标的网络拓扑及相关的各类信息,
3. WEB指纹探测
4. Web敏感目录扫描
dirb是web目录扫描工具
5. webscarab强大的web爬行工具
9.4 扫描
Nessuse
9.5 漏洞利用
发现目标机存在MS08-067的漏洞,接下来通过msfconsole中的search命令查找该漏洞 的渗透攻击模块:
9.6 后渗透攻击
9.6.1 挖掘用户名和密码
微软Windows系统存储哈希值的方式一般为LAN Manger(LM)、NT LAN Manger(NTLM),或 NT LAN Manger v2(NTLMv2)。
-
在LM存储方式中,当用户首次输入密码或更新密码的时候,密码被转换为哈希值。由于哈希长度的限制,将密码分为7个字符一组的哈希值。
-
以password123456的密码为例,哈希 值以passwor和d123456的方式存储,所以攻击者只需要简单地破解7个字符一组的密码, 而不是原始的14个字符。
-
而NTLM的存储方式跟密码长度无关,密码password123456将作为 整体转换为哈希值存储。
-
我们可以通过Meterpreter中的hashdump模块来提取系统的用户名和密码哈希值。
更多推荐
所有评论(0)