不死马大家可能听得比较多,但蠕虫webshell大家可能还没有听过,因为是我为了awd比赛量身定制的一个webshell。蠕虫webshell之所以叫蠕虫webshell,是因为它可以把本地的php会写shell插入到其他php原文件,还增加了相互复活机制,后期增加与其他已感染的主机中的webshell互相复活。
先给大家看看这个蠕虫webshell已经实现的功能:
递归扫描所有web目录及文件,全部扫到的php写入webshell
网站全部php可作为webshell连接执行命令
不带参数请求又可以正常访问原页面,不影响访问
所有web路径目录写入单独一个特定webshell
判断是否写过不再重复写入
所有php页面都可以互相复活蠕虫webshell
蠕虫webshell返回所有php文件url地址
蠕虫webshell发送返回数据传输加密
数字签名校验执行、5秒后不可重放 后续添加
页面功能性可控(可以使全部php原有功能失效,只剩下webshell功能)
前端互相复活以及反渗透
适配meterpreter连接
加密混淆
简单来说最实际的功能还是,我带一个参数访问我的webshell,全站的php文件都被我感染,都可以当webshell连,都可以执行命令,只要带一个参数访问都可以互相复活。
0x01 实际操作随着比赛规则越来越完善,不能提权root,php可能禁用越来越多的功能函数来保持比赛公平性,所以比赛时要先看看phpinfo有没有禁用我这个webshell其中的函数。当然比如说是扫描目录,比赛主办方可能禁用了scandir这个函数,所以我在马相关功能中只用了is_dir()这个函数。
实际用例是这样的:假设shell.php已经上传到目录,上传目录为upload,ip为192.168.1.1
访问
http://192.168.1.1/upload/shell.php
正常不带参数访问是返回状态码500,页面会正常访问带参数下划线访问,会自动感染全站php文件,所有php可以当shell连接eg:
http://192.168.1.1/upload/shell.php?_
如上带下划线参数访问后,右键查看页面源代码可以看到所有被感染的php地址。可以使用python把所有url爬下来,爬取规则:
checks_arr = html.find_all(attrs={'id': 'php_url'})
大致功能看完了,贴上源码详细注释来说一下。(后期我做了混淆和免杀
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录