APP下载

Metasploit渗透攻击平台的设计与实现

2020-06-06王学庆罗尚平

乐山师范学院学报 2020年4期
关键词:靶机漏洞代码

王学庆,罗尚平

(乐山师范学院 a.离退休工作处;b.计算机科学学院,四川 乐山 614000)

1 渗透攻击平台现状

随着经济与信息化的飞速发展,网络信息安全是我们需要迫切解决的一个问题。网络渗透的攻与防御成为了研究网络信息安全的重要内容,为此,涌现出了众多渗透攻击测试平台,如基于Web的安全攻击测试平台[1]、基于系统漏洞的安全攻击测试平台[2]、基于应用软件的安全攻击测试平台[3]等。这些平台解决了一部分安全功能测试所需要的环境与手段,但没有构建一个真实有效的网络整体环境,安全漏洞与代码不能有效更新,不能很好地满足用户渗透测试、攻防对抗与技术学习的需要,为此,如何构建一个能模拟真实的网络环境并能实现不同应用对象在不同安全测试条件下均能实现渗透攻击的平台就显得尤为重要。本文通过研究Metasploit渗透攻击平台,模拟一个真实的网络环境,利用虚拟机软件部署多台虚拟机,使用Metasploit框架对平台中的靶机进行漏洞探测,并利用靶机存在的漏洞发起渗透攻击,分析渗透攻击过程中可以应用的手段,再针对部分攻击手段制定防御对策,以达到验证攻防技术、提升网络安全性的目的。平台能提供给学习者尽可能丰富的安全模块与渗透攻击手段,并能溯源整个攻防过程,让学习者能了解其中渗透攻击原理,有效进行二次开发与研究学习。

2 Metasploit渗透攻击平台的设计

2.1 Metasploit的特点与优势

Metasploit是一个跨平台的开源的渗透测试框架,有1 500多个模块和400多个攻击载荷[4]。它采用模块化理念设计,包含了很多利用代码和渗透测试工具且被不断地更新。它可以在同一个平台上利用各种不同的代码进行渗透攻击测试,许多攻击代码和设置参数等可以重复利用,还可以根据需要将渗透过程中不同阶段使用的攻击代码进行自由组合,而不需要针对每一个漏洞去写一整套完整的代码,故它可以在不同的目标环境中快速地执行完整的渗透攻击测试。Metasploit的这些超越同类的特点与优势,使得它在安全领域享有很高的地位。

2.2 渗透攻击平台设计

平台给出了基于Metasploit框架下的渗透攻击测试的总体设计,包括攻击机和靶机。针对被渗透攻击测试系统的运行环境,给出了网络总平台、DMZ平台、企业门户平台和内网平台四个关键平台的设计和建设方案,具体如图1所示:

图1 虚拟机下的渗透攻击平台

平台采用Vmware虚拟化技术,支持在一台高性能的PC机或笔记本电脑上(建议四核酷睿i5 CPU以上、8 G内在以上及500 G以上硬盘空间)安装这些测试的主机镜像,可以根据不同的渗透攻击技术选择性地运行不同的虚拟机,具体使用如表1中所列的8个虚拟机镜像:

表1 平台环境中的虚拟机镜像

2.3 渗透攻击平台的意义

平台能实现由学习者根据需要自主地选择扫描工具,对目标网络进行有针对性的扫描,根据网络渗透测试实验的步骤,逐步完成网络渗透测试过程。实验不设定特定的环境,注重教学实践,培养实验者独立思考的能力。在该平台上,学习者可以自由地选取扫描工具和渗透测试对象以及渗透测试的策略,通过在虚拟网络环境下完成网络渗透测试的整个过程,来理解网络渗透测试的流程、步骤和手段,并能根据获取到的漏洞信息编写、修改和添加攻击载荷模块,完成相应的渗透测试;学习者能更加清楚地了解网络渗透测试的全过程,并能够直观清晰地看到渗透攻击所产生的效果,以便分析和研究漏洞信息、攻击原理以及防御手段。

平台支持功能模块二次开发,能够模拟主流渗透测试场景以及快速搭建不同的测试环境,并具备再现典型攻击手段,支撑安全技术的研究等作用,研究人员通过平台可以提高对于应用系统、设备的安全防护能力和对突发事件的应急响应能力。

3 Metasploit渗透攻击平台的攻击实现

3.1 利用Metasploit扫描网络环境寻找目标

平台的攻击机整合了Metasploit的多个信息收集工具如Nmap、Nessus、OpenVAS等搜集目标的信息[5],扫描目标的开放端口,分析目标上正在运行的网络服务内容。它既能对网络进行广泛扫描,也能聚焦单个目标;还可以加载附加脚本,扩展信息搜集能力。根据扫描结果,可以发现目标网络中的不同服务对象、不同目标类型,根据不同服务对象、不同目标类型采用不同的方法尝试对目标进行渗透攻击。平台设计中,门户网站服务器靶机是寻找整个平台环境中的切入点,其OWASP模块汇集了大量存在已知安全漏洞的训练实验环境和真实Web应用程序,使用者可对其进行扫描与渗透攻击测试,以获得整个网络环境情况,作为攻击跳板入侵网络内其他主机与服务器。

3.2 扫描获取目标的相关信息并查找安全隐患

利用Metasploit扫描功能能获取单个服务器靶机信息,要分析总体安全性,需要调用一些深入扫描的脚本详细探测目标的全面信息。可通过Metasploit框架中的find命令找到漏洞探测脚本,并通过-script参数利用Nmap、Nessus、OpenVAS等工具加载脚本扫描目标系统,找到目标系统是否易受漏洞攻击,存在的安全隐患以及网络路由情况,最后确定安全攻击方式。

3.3 利用安全漏洞进行渗透攻击

要利用安全漏洞发起渗透攻击,首先通过use命令进入Exploit发起攻击,然后执行“show options”命令显示攻击的参数选项。这时并没有设定Payload(攻击载荷)。在Metasploit框架中Exploit的作用是对漏洞发起攻击,而Payload就是攻击成功之后执行的功能代码[6]。它能获得一个shell或者能根据攻击机指令从攻击机获得更多的Payload去运行,这样有利于对目标进行不同方式的渗透攻击。

攻击成功后将会看到控制台中提示已经打开了一个目标的Session,即控制的会话,并且出现了系统的cmdshell的命令提示,执行whoami命令查看获得的权限,发现Metasploit已经成功获得了目标服务器系统的最高权限。

仅获得cmdshell并不能体现Metasploit的强大,此时可以换用Metasploit提供的更强大的Payload功能Meterpreter来对目标系统进行控制。通过灵活运用meterpreter内建的渗透命令或执行脚本、加载模块,可以搜集到更多的信息或实现某些功能,方便进一步对目标进行渗透,以达到再次渗透攻击的目的。

3.4 利用后门进行持久化控制

由于此时Payload是在目标系统内存中运行的,一旦注入的进程终止或者目标系统关闭重启,就会失去对目标的控制。为此,可在目标系统中安装一些后门程序,实现持久化控制。Metasploit集成的后门程序中较为常用的有Metsvc和Persistence[7-8]。Metsvc是通过服务项目启动的,会被上传到目标系统的用户临时目录,文件名字都带有Metsvc字样,其默认的启动服务名称为“meterpreter”。

Persistence后门通过注册表启动VBS脚本文件的方式释放后门运行,本身的VBS文件、释放的EXE文件的文件名以及注册表启动项名称均为随机字符串,在VBS脚本中保存的后门程序代码是经过编码后的普通文本,没有明显的恶意代码特征,所以相对于Metsvc而言比较能隐藏自己不被发现。

后门植入完成后,攻击对象就完全被攻击控制了,此时可以获取对象的任何信息。

4 结语

本文设计了用于研究网络安全与网络攻击方法测试与学习的平台,解决了教与学中没有真实环境进行实战演习的瓶颈,让学习者真实地进行网络渗透攻击与防御,了解其深层次的原理,提高了他们的理论与实战水平。平台模拟一个真实的网络环境,并利用靶机存在的漏洞发起渗透攻击,分析渗透攻击过程中可以应用的手段,再针对部分攻击手段制定防御对策,以达到验证攻防技术,提升网络安全性的目的。平台提供给学生者尽可能丰富的安全模块与渗透攻击手段,并能溯源整个攻防过程,让学习者能了解其中的渗透攻击原理,实现了代码的重复利用与二次开发,这是以前渗透攻击平台所不具有的功能。此外,平台结合Metasploit开源的特点,能实时更新代码与渗透攻击库,让学习者能了解最新的网络安全态势,以应对网络安全挑战。

猜你喜欢

靶机漏洞代码
漏洞
靶机系统的发展趋势
创世代码
创世代码
创世代码
创世代码
美国克雷托斯公司扩大靶机研发和制造
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高铁急救应补齐三漏洞