#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现02-永恒之蓝漏洞
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读!!!
目录
永恒之蓝漏洞(EternalBlue)
一、漏洞概述
二、漏洞原理
三、漏洞利用流程
四、漏洞影响范围
五、漏洞修复
六、检测方法
七、防御措施
八、永恒之蓝漏洞影响的行业
九、永恒之蓝漏洞修复的最佳实践
十、漏洞复现
十一、脚本编写验证永恒之蓝
永恒之蓝漏洞(EternalBlue)
一、漏洞概述
永恒之蓝(EternalBlue)是一种严重的安全漏洞,主要影响Windows系统的SMB(Server Message Block)协议。该漏洞最早由美国国家安全局(NSA)发现并利用,后来在2017年4月被黑客组织“影子经纪人”(Shadow Brokers)公开,导致全球范围内的大规模网络攻击。
二、漏洞原理
永恒之蓝漏洞存在于Windows系统的SMBv1协议中,具体来说是在处理SMB2协议的压缩功能时出现的。攻击者可以利用这个漏洞远程执行代码,从而获得对目标系统的完全控制权。漏洞的核心在于SMB协议在处理特定类型的网络数据包时存在缓冲区溢出的问题,这使得攻击者能够在未经身份验证的情况下执行任意代码。
三、漏洞利用流程
- 扫描目标系统:攻击者首先需要扫描目标系统的网络端口,特别是445端口(SMB服务默认端口)。
- 发送恶意数据包:一旦确认目标系统存在漏洞,攻击者会发送特制的恶意数据包,这些数据包设计用来触发SMB协议中的缓冲区溢出。
- 执行恶意代码:触发漏洞后,攻击者可以在目标系统上执行任意恶意代码,例如安装后门程序、窃取敏感信息或传播勒索病毒(如WannaCry)。
- 控制系统:成功利用漏洞后,攻击者可以获得对目标系统的完全控制权,执行任意操作。
四、漏洞影响范围
永恒之蓝漏洞影响了多个版本的Windows系统,包括但不限于:
- Windows 7
- Windows Server 2008
- Windows XP
- Windows 10
此外,使用SMBv1协议的其他设备也可能受到影响,例如某些型号的医疗设备。
五、漏洞修复
为了防止永恒之蓝漏洞被利用,微软已经在2017年3月发布了补丁(MS17-010)。建议采取以下措施:
- 安装补丁:尽快为所有受影响的Windows系统安装MS17-010补丁。
- 禁用SMBv1协议:如果不需要使用SMBv1协议,可以考虑禁用它,以减少潜在的攻击面。
- 启用防火墙:使用防火墙规则限制对445端口的访问,仅允许经过授权的设备连接。
六、检测方法
可以通过以下方法检测目标系统是否存在永恒之蓝漏洞:
- 使用nmap扫描:使用nmap扫描目标系统的445端口,确认是否存在SMB服务。
- 使用Metasploit框架:Metasploit框架提供了专门的模块来检测和利用永恒之蓝漏洞,可以通过执行相关模块来确认漏洞是否存在。
七、防御措施
- 及时更新软件:定期检查并更新系统上的所有软件,确保它们都是最新的稳定版本。
- 限制权限:尽量避免以管理员权限运行服务,降低潜在漏洞带来的风险。
- 监控异常行为:使用入侵检测系统(IDS)和入侵防御系统(IPS)监控异常行为,及时发现并阻止潜在攻击。
八、永恒之蓝漏洞影响的行业
永恒之蓝漏洞的影响范围非常广泛,几乎涵盖了所有依赖Windows系统的行业。以下是一些受影响较大的行业:
金融行业:银行、保险公司和其他金融机构通常依赖Windows系统来运行关键业务应用程序。由于这些系统通常包含大量敏感信息,因此它们成为攻击者的主要目标。
医疗行业:医院和其他医疗机构使用Windows系统来管理患者记录、医疗设备和其他关键数据。永恒之蓝漏洞可能导致医疗设备无法正常工作,甚至可能危及患者的生命。
教育行业:学校和大学使用Windows系统来管理学生记录、教学材料和其他重要数据。永恒之蓝漏洞可能导致这些数据被窃取或破坏。
制造业:制造公司使用Windows系统来管理生产线、库存和其他关键业务流程。永恒之蓝漏洞可能导致生产线停工,造成巨大的经济损失。
政府机构:政府部门使用Windows系统来管理公共记录、敏感信息和其他关键数据。永恒之蓝漏洞可能导致这些数据被窃取或破坏,影响公共安全和社会稳定。
能源行业:电力公司、石油公司和其他能源公司使用Windows系统来管理能源生产、分配和其他关键业务流程。永恒之蓝漏洞可能导致能源供应中断,造成巨大的经济损失和社会影响。
零售行业:零售商使用Windows系统来管理销售点(POS)系统、库存和其他关键业务流程。永恒之蓝漏洞可能导致POS系统无法正常工作,影响销售和客户服务。
科技行业:软件开发公司、硬件制造商和其他科技公司使用Windows系统来开发和测试产品。永恒之蓝漏洞可能导致开发和测试环境被破坏,影响产品发布和公司声誉。
九、永恒之蓝漏洞修复的最佳实践
永恒之蓝(EternalBlue)漏洞的修复涉及多个步骤和最佳实践,以确保系统安全并防止未来的攻击。以下是一些最佳实践:
1. 安装补丁
及时更新系统:微软已经发布了修复永恒之蓝漏洞的补丁(MS17-010)。确保所有Windows系统都安装了最新的安全更新和补丁。
使用自动更新:启用自动更新功能,以便系统能够自动接收和安装最新的安全补丁。
2. 关闭不必要的服务和端口
禁用SMBv1:SMBv1是永恒之蓝漏洞利用的协议版本。可以通过系统设置或组策略禁用SMBv1。
关闭相关端口:关闭与SMB相关的端口(如445、137、138、139),以减少攻击面。
3. 增强网络安全
使用防火墙:配置防火墙规则,限制对内部网络的访问,特别是对关键系统和服务的访问。
实施网络分段:将网络分成多个子网,以限制潜在攻击的传播范围。
4. 提高系统和网络安全意识
培训员工:教育员工关于网络安全威胁和最佳实践,例如不点击不明链接、不下载不明文件等。
制定安全策略:制定并实施网络安全策略,包括密码管理、访问控制和数据保护。
5. 备份重要数据
定期备份:定期备份重要数据,并确保备份存储在安全的位置,最好是离线存储。
验证备份:定期验证备份的完整性和可恢复性,以确保在发生数据丢失时能够快速恢复。
6. 使用安全工具
安装杀毒软件:安装并更新杀毒软件,以检测和清除潜在的恶意软件。
使用漏洞扫描工具:使用漏洞扫描工具定期扫描系统和网络,以发现和修复潜在的安全漏洞。
7. 监控和响应
实时监控:使用安全信息和事件管理(SIEM)系统实时监控网络和系统活动,以便及时发现异常行为。
制定应急响应计划:制定并演练应急响应计划,以便在发生安全事件时能够迅速有效地应对。
8. 审查和审计
定期审计:定期进行安全审计,评估系统的安全状况,并根据审计结果进行改进。
审查第三方软件:确保所有第三方软件也已更新,并且没有已知的安全漏洞。
十、漏洞复现
MS17-010 永恒之蓝
攻击机 和靶机在同一网段中
配置kali
配置靶机
查看kali ip的配置
确认靶机的网络配置
确认靶场的IP 为192.168.10.130
然后查看端口开放情况,发现445端口开放
kali开启msf
搜索永恒之蓝的相关模块
过滤出其中的攻击模块
选择攻击模块
查看当前模块可用的选项
设置攻击目标-设置反弹目标
执行漏洞测试
拿到shell
输入65001解决乱码
通过shell对靶机进行控制
1:创建新用户
2:将用户sss 添加至管理员组
3:开启远程桌面功能
查看3389端口状态:netstat -ano
开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
4:远程桌面连接
已经登录成功
十一、脚本编写验证永恒之蓝
使用impacket库来与目标系统的SMB端口进行交互,并检测是否存在永恒之蓝漏洞。
脚本说明:
SMBConnection: 使用impacket库中的SMBConnection类来与目标系统的SMB端口建立连接。
登录尝试: 通过尝试登录(使用空用户名和密码)来检测是否存在漏洞。如果登录成功,则可能存在永恒之蓝漏洞。
异常处理: 如果无法连接到目标系统,脚本会捕获异常并输出错误信息。
from impacket.smbconnection import SMBConnection
def check_eternalblue_vulnerability(target_ip, target_port=445):
try:
# 尝试与目标系统的SMB端口建立连接
smb_connection = SMBConnection(target_ip, target_ip, sess_port=target_port)
# 如果连接成功,尝试发送恶意数据包以检测漏洞
if smb_connection.login('', ''):
print(f"[!] 目标系统 {target_ip}:{target_port} 可能存在永恒之蓝漏洞")
else:
print(f"[*] 目标系统 {target_ip}:{target_port} 未发现永恒之蓝漏洞")
except Exception as e:
print(f"[*] 无法连接到目标系统 {target_ip}:{target_port} - {e}")
if __name__ == "__main__":
target_ip = "192.168.1.1" # 替换为目标IP地址
check_eternalblue_vulnerability(target_ip)
未完待续~~~!!!!!