1、Web渗透测试系列_X_WebShell上传1.整体框架2.WebShell上传探测阶段3.WebShell上传利用阶段4.执行WebShell5.WebShell提权6.防御与逃逸7.常用工具8.总结培训提纲整体框架概述WebShell上传主要包括探测和利用阶段,具体如下: 探测阶段:该阶段主要是搜集可测试点,以方便下一步的利用。 利用阶段:该阶段主要是利用探测的漏洞上传并执行WebShell。WebShell上传渗透测试框架WebShell上传探测阶段WebShell上传探测阶段原理说明收集过程原理说明上传探测阶段没有什么原理,主要是搜集可探测点,常见的可测试点包括应用程序上传功能(诸如上
2、传头像、附件上传等)、用户可控的输入点或者参数(页面POST表单部分、url参数、sql注入点等)、HTTP开启的方法(诸如WebDAV)等,收集可测试点的过程中,应尽量确保覆盖范围,不遗漏每一个可测试点,搜集过程推荐使用WVS工具spider功能。收集过程利用WVS的spider工具收集可测试点,如下图:spider发现了危险的上传目录(红框1处)、开启了WebDAV方法等漏洞,根据扫描结果方便接下来依据不同结果进行利用。另外有些可测试点WVS的spider是爬不出来,包括内敛sql注入点、不允许爬虫扫描的上传目录等,这些只能靠手工探测。WebShell上传利用阶段简介直接上传WebShel
3、l绕过客户端检测上传WebShell绕过服务端文件扩展名检测上传WebShell绕过服务端MIME类型检测上传WebShell绕过文件内容检测上传WebShell绕过服务端目录路径检测上传WebShell利用服务器漏洞上传WebShell利用sql注入上传WebShell利用WebDAV上传WebShell利用.htaccess文件上传WebShell直接上传WebShell探测到上传点后,接下来进入上传WebShell步骤,假如服务器端对用户提交参数或者文件没有进行过滤或者过滤不当,则能够直接上传WebShell,那么接下来进入执行WebShell步骤即可。绕过客户端检测上传WebShell
4、客户端检测即通过用户请求返回页面部分的js脚本验证用户的输入,该检测在客户端检测,具有该检测方法的明显表现是在用户上传文件到服务器之前客户端js会进行检测,假如不符合检测要求会提示相应错误,接下来举例说明,并列举出相应的绕过方法。绕过客户端检测上传WebShell服务器端含有检测js脚本的文件UPLOAD_CS_1.aspx代码如下图上图红框1处是服务器端返回用户请求页面中用于检测客户端上传文件类型的js脚本,该客户端验证要求只能上传.txt和.docx两种类型,红框2处是使用onmouseover事件触发check_file函数。绕过客户端检测上传WebShell输入:http:/IP/UP
5、LOAD_CS_1.aspx,同时上传1.jpg文件,页面返回如下图:绕过客户端检测上传WebShell上图中鼠标刚放到“上传文件”按钮便弹出了一个警告对话框,由此易知这种情况是客户端js检验,查看返回页面的的源代码:如上图可以确定此种情况是客户端js验证。绕过客户端检测上传WebShell接下来使用代理工具绕过客户端验证,例如上传1.asp文件,先将文件名改为1.txt,代开burpsuite代理工具,点击“上传文件”按钮,burpsuite截获如下图:绕过客户端检测上传WebShell把上图红框处1.txt改为1.asp,然后点击“forward”按钮,查看服务器端Files文件夹,如下图
6、。从上图可以得出结论利用代理工具成功绕过客户端验证绕过服务端文件扩展名检测上传WebShell服务器端文件扩展名检测是指服务器端应用程序通过检测用户上传文件的后缀名从而做出允许或者阻止的一种方法,该方法包含黑名单和白名单两种形式,具体如下: 黑名单检测:一般是建立一个专门的blacklist文件,里面枚举常见的危险文件后缀。 白名单检测:一般是定义一个允许或者阻止用户上传文件类型的后缀的文件,里面枚举相应的文件后缀。绕过黑名单检测方法文件名大小写绕过 用向AsP、Aspx之类的文件名绕过黑名单检测;名单列表绕过 用黑名单里没有的名单进行攻击,iis默认执行.asp、.asa、.cer,有时候黑
7、名单过滤不全没有过滤掉像后缀为asa、cer之类的,但这些文件可以像asp文件一样执行,此时可以使用这些后缀绕过黑名单。绕过黑名单检测方法特殊文件名绕过 比如发送的HTTP包里把文件名改成test.asp. 或test.asp_(下划线为空格),这两种命名方式在windows系统里是不被允许的,所以需要在代理工具burpsuite进行修改,然后绕过验证后,会被windows系统自动去掉后面的点和空格,但注意Unix/Linux系统没有此特性。0 x00截断 在许多语言的常用字符串处理函数中,0 x00被认为是终止符,比如应用只允许上传jpg图片,那么可以构造文件名为2.asp%00.jpg,.
8、jpg绕过了应用的上传文件类型判断,但对于服务器来说,此文件因为%00字符截断的关系,最终会以2.asp存入路径里。绕过白名单检测方法0 x00截断 基于白名单检查主要使用0 x00截断绕过,同黑名单0 x00截断绕过,接下来举例说明。服务器端白名单检测文件为UPLOAD_CS.aspx.cs,部分代码如下图绕过白名单检测方法上图红框处枚举了允许上传gif、GIF、swf、SWF后缀文件,该部分为该代码的白名单检测部分,同时该文件用白名单规定了不允许上传后缀文件,如下图如上图可以看出使用了白名单规定了不允许上传后缀为asp、aspx以及dll的文件,接下来实验使用%00绕过验证,具体如下绕过白
9、名单检测方法输入:http:/IP/UPLOAD_CS_2.aspx,如果直接上传2.asp文件,页面返回如下图上图显示上传后缀为asp的文件失败,把上传文件名改为2.asp.%00.jpg,继续上传,页面返回如图绕过白名单检测方法上图显示上传后缀为asp的文件失败,把上传文件名改为2.asp.%00.jpg,继续上传,页面返回如图从上图可以得出结论成功上传2.asp%00.jpg文件,.jpg绕过了应用的白名单检测,但对于服务器来说,由于后台某些函数作用(诸如CreateTextFile()),此文件会被%00字符截断,最终会以2.asp存入路径里。绕过服务端MIME类型检测上传WebShe
10、ll有时候仅仅对文件名后缀进行判断并不能有效阻止恶意文件的上传(比如某服务器只允许上传jpg文件格式,不允许上传后缀为php等文件,但是把后缀为php改为后缀为jpg上传到服务器,某些情况下也能执行上传文件),因此对文件格式进行检测十分必要,也就是服务器端MIME类型检测。服务器端MIME类型检测asp、aspx利用response对象的ContentType属性,php利用$_FILESuserfiletype 、jsp也使用response对象的ContentType属性(与asp类似)。绕过服务端MIME类型检测上传WebShell接下来以aspx为例通过检测http包的content-
11、type字段的值来判断上传文件是否合法,实验使用的服务器端文件为mime.aspx,部分代码如下图。上图红框处使用POSTFile对象的ContentType属性,限定只允许上传application/zip类型。绕过服务端MIME类型检测上传WebShell输入:http:/IP/mime.aspx,上传文件2.asp文件,页面返回如下图。上图返回错误页面,提示“不支持的mime文件”,接下来使用burpsuite拦截请求,如下图。绕过服务端MIME类型检测上传WebShell修改图上图中红框处为application/zip,再次上传2.asp文件,查看files文件夹(该文件夹为上传文件
12、默认目录),页面返回下图。上图页面返回显示2.asp文件上传成功。绕过文件内容检测上传WebShell文件内容检测即通过检测特定文件某些特殊标志位来判断是否是允许上传的文件,比如以后缀为jpg图片文件为例,该文件头有一组特殊二进制数标识 FF D8 FF E0 00 10 4A 46 49 46(这些二进制数也叫文件幻数),那么就可以通过判断上传文件的文件头来验证文件的类型。其实检测文件幻数只是检测的一项内容,还可以对文件相关信息、文件渲染加载后检测,面对这些检测,可以把一句话木马注入图片文件最后面,这样既实现了代码注入也不会破坏图片结构,具体步骤如下: 代码注入图片 引用创建的文件 使用客户
13、端连接一句话木马代码注入图片首先准备图片picture.jpg,然后把asp一句话木马(诸如)插入图片最后,如下图所示上图红框1出为标识jpg文件的幻数,红框2处为植入的一句话木马,把该图片上传到服务器端。引用创建的文件同时创建一个引用包含一句话木马的图片的文件picture.asp,代码如下: 把该文件上传到服务器端(这里之所以先上传jpg文件,再上传一个引用上传jpg的asp文件,主要目的是为了隐藏一句话木马的目的)。使用客户端连接一句话木马客户端代码c1.html代码如下图:其中Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等
14、操作。使用客户端连接一句话木马该代码主要是服务器端一句话木马s1.asp接收c1.html第一个textarea里的值生成一个newmm.asp大马文件,同时利用lP.writetext request(CMD)接收第二个textarea大马内容写入newmm.asp文件里,这样直接访问newmm.asp文件,即获得了WebShell。使用浏览器打开客户端c1.html,如图下图所示使用客户端连接一句话木马上图红框处为海洋2005木马,点击提交后,访问上传木马,如下图。如上图可知上传WebShell成功。绕过服务端目录路径检测上传WebShell服务器端目录路径检测即对用户提交目录路径参数进行
15、检测,有时候检测不够严谨而导致可以用%00截断进行攻击,该漏洞的本质同黑名单检测%00截断本质一样,但该漏洞要求服务器端应用程序具有处理用户提交的目录路径参数函数,不具有通用性,这里仅介绍下原理。以fckeditor php = 2.6.4 任意文件上传漏洞为例,存在漏洞代码如下图绕过服务端目录路径检测上传WebShell输入:/fckeditor264/filemanager/connectors/php/connector.php?Command=FileUpload&Type=Image&CurrentFolder=fuck.php%00.gif HPPT/1.0CurrentFolde
16、r这个变量的值会传到上图有漏洞代码ServerMapFolder($resourceType, $folderPath, $sCommand)中的形参$folderPath里,而$folderPath在这个函数中并没做任何检测,就传入CombinePaths()函数,同时变量CurrentFolder中%00后面的会被截断,实际上传的是fuck.php。利用过滤不完全上传WebShell利用过滤不完全把一句木马写入服务器端是目前得到WebShell的最为主要的方法之一,该方法分为两步,具体如下: 上传一句话木马:常见的一句话木马分为asp一句话、aspx一句话、php一句话以及jsp一句话,它
17、们工作原理大致类似,这里以asp一句话木马为例,代码为: 使用客户端连接上传大马:客户端代码使用绕过文件内容检测上传c1.html。上传一句话木马使用上传页面上传一句话木马如下:上图为上传WebShell的上传页面。使用客户端连接上传大马使用浏览器打开客户端c1.html,如下图上图红框处为海洋2005木马,点击提交后,访问上传木马,如图下从上图可知获得了一个WebShell,其实小马上传成功后是不需要再上传大马了,通过POST表单方式传递给小马照样可以执行大马(即大马在内存中执行),且隐藏性更强。利用服务器漏洞上传WebShell解析漏洞产生是由于web server本身特性功能设计存在缺陷
18、造成的漏洞,如果加以利用,将会变成威力巨大的武器,本节内容如下: IIS6.0解析漏洞1 IIS6.0解析漏洞2 IIS7.0/7.5解析漏洞 Apache文件解析漏洞 Nginx解析漏洞IIS6.0解析漏洞1此洞原理是处理文件扩展名出错,导致将/.*asp/目录下的所有文件都作为asp文件进行解析。此外具有此特性的不单单是类似/.*asp/目录,还包括/.* cer /、/.* asa /、/.* cdx /、/.* cer (此种类型浏览器直接输入不允许,需要借助burpsuite工具)、/.* asa 、/.* cdx 目录,本例子以/.*asp/目录举例。IIS6.0解析漏洞1假如服务
19、器端存在一个文件名为test.asp目录,且在该目录建立实验文件2.jpg,代码如下图:输入:http:/IP/test.asp/2.jpg,页面返回如下图所示。从上图可知2.jpg文件被IIS6.0解释执行了。IIS6.0解析漏洞2该漏洞的原理是IIS6.0不能正确够解析文件名包含分号(;)的文件,因此诸如2.asp;xx.jpg类似的文件会被解析成2.asp可执行文件,从而导致脚本被执行。此外具有此特性的不单单是类似2.asp;xx.jpg,还包括2.cer;xx.jpg、2.asa;xx.jpg、2.cdx;xx.jpg类型,本例子以2.asp;xx.jpg类型举例。服务器端新建立一个文
20、件名为2.asp;xx.jpg的文件,内容与漏洞1中2.jpg文件内容一样,输入:http:/IP/2.asp;.jpg,页面返回如下图。从上图可知2.asp;xx.jpg文件得以执行。IIS7.0/7.5解析漏洞IIS7.0/7.5是对php 解析时有一个解析漏洞,只要在url后面追加上字符串/任意文件名.php就会按照php的方式去解析,其实这个漏洞是出自php-cgi的漏洞,与IIS7.0/7.5本身无关,具体例子如下。服务器端test.jpg代码为:输入:http:/IP/test.jpg/noexist.php,会将test.jpg当做php进行解析,其中noexist.php是不存
21、在的文件(但后缀必须是.php),页面返回如下图所示从上图可知test.jpg中的代码得到了执行。Apache文件解析漏洞Apache对于文件名的解析是从后往前解析的,直到遇见一个apache认识的文件类型为止,比如phpshell.php.rar.rar,由于apache不认识.rar文件类型,所以会一直遍历后缀直到.php,然后认为这是个php类型的文件,这样的话可以上传一个包含一句话木马文件名类似phpshell.php.rar.rar的文件,访问该文件将会被当成php文件解析执行,具有此漏洞的版本包括:Apache 2.2.11、Apache 2.2.17、Apache 2.2.6、A
22、pache 2.0.59、Apache 2.2.8,接下来以Apache 2.0.59为例,具体如下。Apache文件解析漏洞访问:http:/IP/phpinfo.php,查看务器apache版本号上传phpshell.php.rar.rar,其包含菜刀一句话木马: Apache文件解析漏洞上传phpshell.php.rar.rar到(默认上传到upload文件夹下),使用菜刀连接该一句话木马如下图使用菜刀文件管理功能,打开如下图从上图可知文件phpshell.php.rar.rar被解析成php文件进行执行了。Nginx解析漏洞该漏洞是对一个任意文件名,在后面添加/任意文件名.php的解
23、析漏洞,比如源文件名为nginx.jpg,可以添加成nginx.jpg/x.php,nginx就会把nginx.jpg当成php文件来解析,其实可以说说这个漏洞与nginx本身关系不大,nginx只是作为一个代理把请求转发给fastcgi server,php在后端处理这一切,漏洞原因在fasgcgi方式下,php获取环境变量的方式有关,该漏洞官方没有补丁,php认为是一个新特性,为预防该漏洞官方建议修改php.ini文件中cgi.fix_pathinfo为0,具体例子如下。Nginx解析漏洞nginx.jpg包含php代码:,把该文件上传到服务器端/upload下,访问:http:/IP/n
24、ginx.jpg/a.php,使用菜刀文件管理,如下图所示从上图可知nginx.jpg文件被作为php文件进行了解析。nginx还有一个自身的漏洞,就是它可以对任意文件名后面添加%00.php当成php文件来解析,该漏洞出现在nginx较低版本,包括nginx 0.5.*、nginx 0.6.*、nginx 0.7 = 0.7.65、nginx 0.8 = 0.8.37,这些版本比较低不做详细实验。利用sql注入上传WebShell利用sql注入漏洞写入服务器端是比较常用的,这里以mssql为例子,在sysadmin权限下可以利用xp_cmdshell、xp_cmdshell存储过程获得Web
25、Shell,在db_owner下可以利用差异备份获得WebShell,此类方法具体可参考Web渗透测试_Mssql注入分析说明书中存储过程章节,这里不做详细叙述。利用WebDAV上传WebShellWebDAV大大扩展了HPPT协议中的GET、POST、HEAD等功能,利用其中的PUT、MOVE方法可以上传并修改上传的文件,从而获得WebShell,具体步骤如下: 通过OPTIONS探测服务器信息 利用PUT方法上传文件 通过MOVE方法修改上传文件名 执行修改后的文件通过OPTIONS探测服务器信息使用burpsuite构造一个POST请求,POST负载是自己构造的脚本,具体如下图所示:通过
26、OPTIONS探测服务器信息上图中红框处为负载即需要上传的脚本,然后把POST方法修改为OPTIONS方法,返回页面如下图所示:上图红框处可知系统支持PUT、MOVE方法利用PUT方法上传文件修改步骤1构造的POST表单方法为PUT方法,如下图所示:由上图红框处可知上传文件成功通过MOVE方法修改上传文件名同样步骤1构造的POST表单方法为MOVE方法,但必须添加Destination头,具体如下图所示:使用MOVE原文件3.txt为3.asp,页面返回如下图执行修改后的文件输入:http:/IP/3.asp,页面返回如下图:如上图可知执行了上传并修改后的文件。利用.htaccess文件上传W
27、ebShell.htaccess文件的作用主要是对主配置文件没有访问权限,但又想改变某目录配置情况下使用,假如服务器端没有过滤后缀为.htaccess文件,那么攻击者可以构造该文件修改所在目录文件的配置,比如修改该文件下含“haha”字符串的所有文件按照php文件来解析,那么攻击者在上传构造的.htaccess文件后,再上传仍以后缀只有包含“haha”字符串的一句话木马文件,该文件会被当成php文件解析,具体步骤如下: 建立特定.htaccess 文件 建立一句话木马文件 上传上述文件,并使用菜刀连接建立特定.htaccess 文件建一个.htaccess 文件,指定同目录下只要文件内包含字符
28、串“haha“,无论该文件后缀是什么都会当成php文件进行解析,该文件.htaccess具体如下图:上图中SetHandler指令的作用是当这个指令放入.htaccess或或配置段中时,这个指令将强制所有匹配的文件通过handler-name指定的处理器处理,该例子中凡是文件中包含“haha“字段文件都会按照php文件进行解析。建立一句话木马文件建立一句话木马文件php-WebShell-haha.txt,其代码如下图:上图是菜刀连接的一句话木马。上传WebShell上传.htaccess 和php-WebShell-haha.txt文件到upload文件夹下,访问php-WebShell-h
29、aha.txt文件,如下图:使用菜刀连接该一句话木马,如下图所示使用菜刀的链接可知成功连接了一句话木马,具体如下:执行WebShell简介寻找上传的WebShell在asp 环境下运行命令在php 环境下运行命令在jsp环境下运行命令在其它脚本 环境下运行命令寻找上传的WebShell完成上传WebShell并不意味着可以一定执行,有时候WebShell是上传成功了,但是找到上传路径是一件很费力的事,以下分两种情况介绍,具体如下: 情况1 情况2情况1利用诸如上传头像、上传文件等上传点上传WebShell(包括直接上传、绕过客户端、绕过服务器端文件扩展名、绕过mime类型、绕过文件内容检测、利
30、用过滤不全),此种情况上传文件完成后一般会向用户反馈上传文件的完整url,即使不反馈,这些路径也很容易猜测出来,例如常见的目录有/photo、/image、/upload 等。情况2此类寻找上传WebShell更加方便(包括利用服务器漏洞、利用sql注入以及利用WebDAV上传WebShell ),接下来分别介绍怎样寻找上传WebShell的路径,具体如下:利用服务器漏洞上传WebShell:该方法IIS6.0解析漏洞1事先探知服务器端存在诸如test.asp类型目录,这种情况上传前是知道上传目录的。IIS6.0解析漏洞2以及IIS7.0/ IIS7.5类似,是事先探知服务器使用IIS6.0或
31、者IIS7.0/ IIS7.5,这种情况上传文件完成后一般会向用户反馈上传文件的完整url,不反馈只能靠猜测。利用sql注入漏洞上传WebShell:该方法一般都是先探测好站点主目录以及主目录下一个具有可写权限文件后,才向该文件传入一个WebShell,因此此种类型不存在上传后找不到上传的WebShell的情况。利用 WebDAV上传WebShell:该方法同利用sql注入漏洞上传WebShell,也是先探测好站点主目录以及主目录下一个具有可写权限文件后,才向该文件传入一个WebShell。在asp 环境下运行命令由于VBScript与JavaScript脚本本身变成能力有限,当拿到一个asp
32、的WebShell时,想运行命令,一般使用以下组件: wscript.shell组件 shell.application组件使用wscript.shell组件执行系统命令,有时候服务器会在注册表中修改该组件对应的名称,没有真正的卸载或者删除,因此程序中调用该组件使用其classid,classid值在不同系统下有所不同,常见值有两种分别是 72C24DD5-D70A-438B-8A42-98424B88AFB8和F935DC22-1CF0-11D0-ADB9-00C04FD58A0B。服务器端asp_wscript.asp代码如下图所示wscript.shell组件接下来输入:http:/IP
33、/asp_wscript.asp,页面返回如图6-2所示。从图6-2可知,服务器端程序执行了用户输入的命令,不过使用该组件也有局限性,当用户以匿名用户访问的时候提示没有权限,改为administrator时候程序才可以执行。wscript.shell组件使用shell.application组件具体参考海阳顶端2005版源代码,部分代码如图下图所示。输入:http:/IP/newmm.asp,页面返回如下图所示上图红框处可知海洋木马使用shell.application组件执行了用户输入的命令。shell.application组件在aspx 环境下运行命令与VBScript与JavaScri
34、pt脚本不同,.net具有强大的函数库,因此它的运行不依赖与注册表的特性,因此aspx环境下运行命令方法更加灵活,常见的如下: Process.Start()方法 wscript.shell组件 shell.application 组件Process.Start()方法Process.Start()方法的作用是启动(或重用)此process组件的StartInfo属性指定的进程资源,并将其与该组件关联。服务器端aspx_process.aspx部分代码如下图所示Process.Start()方法输入:http:/IP/aspx_process.aspx,页面返回如下图从上图红框处可知,服务器端
35、程序执行了用户输入的命令。使用wsipt.shell组件服务器端aspx_wsipt.aspx部分如下图所示输入:http:/IP/aspx_wsipt.aspx,可知命令得了执行,具体如下图使用shell.application组件 服务器端aspx_shell.aspx代码如下使用shell.application组件 输入:http:/IP/aspx_shell.aspx,页面返回如下图所示上图输入命令/c echo C:test1WebShell123.asp”,向服务器应用程序目录下写入菜刀一句话木马,使用菜刀连接一句话木马,如下图所示在php 环境下运行命令与asp、aspx相比,
36、php功能更加强大,使用更加灵活,主要包括如下: 使用自身函数 使用wsipt.shell组件使用自身函数该方法中使用的函数使用方法类似,都是把用户提交的参数传到这些函数,然后该函数执行用户提交的命令,这里写到一个程序php_fuction.php中,具体如下图所示:使用自身函数上图图列出了使用函数system()、exec()、passthru()、shell_exec()、popen()、proc_open()执行系统命令方式。接下以system为例(其它类似)输入:http:/IP/php_fuction.php?system=dir,页面返回如下图。使用wsipt.shell组件服务器
37、端php_wsipt.php如下图所示。输入:http:/IP/php_wsipt.php?wscript=dir,页面返回如下图所示。在jsp 环境下运行命令Jsp环境下执行系统命令一般使用Runtime.getRuntime().exec(command)方法,服务器端jsp_fuction.jsp如下图:在jsp 环境下运行命令Jsp环境下执行系统命令一般使用Runtime.getRuntime().exec(command)方法,服务器端jsp_fuction.jsp如下图:输入:http:/IP/jsp_fuction.jsp?cmd=ipconfig,页面返回如下图在其它脚本环境下
38、运行命令除了上述介绍的asp、aspx、php、jsp先如今比较流行的环境外,还有 CGI等环境下,由于这些环境现在使用较少,不做详细叙述,以perl的system()函数为,服务器端cgi_perl.pl代码在其它脚本环境下运行命令接下来输入:http:/IP/cgi_perl.pl,页面返回如下图WebShell提权简介利用开放的服务提权利用软件特性提权利用软件溢出提权利用宿主系统DLL提权利用DBA提权利用HASH提权利用网络嗅探提权利用系统及软件漏洞提权社会工程学提权利用开放的服务提权当获得WebShell后,首先应该先查看下宿主系统开启了哪些服务,这些服务很可能方便的提供系统权限提升
39、的机会,这些服务包括:ftp、 pcanywhere、远程桌面、vnc、ssh等。这些服务一般情况下是为了方便管理员维护服务使用,所以权限相对较高,如果其采用了弱密码,则可以轻松获得权限提升。利用软件特性提权这里主要指利用宿主系统的WEB应用软件特性,诸如命令执行、权限控制、目录访问、目录穿越、配置特点等来提升权限,由于该方法局限性太强,不做详细介绍。利用宿主系统DLL提权这种方法使用Windows 2003的IIS服务自带的基于命令行下的IIS管理脚本文件是Adsutil.vbs,将目标DLL加入到特权行列从而获得权限的提升。利用DBA提权利用DBA提权的方法一般适合SQL注入渗透的情况,在
40、获取了主机数据库权限后可以通过特定数据库的特定函数和方法将应用程序或者配置文件写入到特定目录里,从而实现提权。利用HASH提权该方法是破解系统中hash加密的用户名或者密码从而获取权限的提升,针对hash的破解可分针对系统hash的破解(windows:sam文件、类Unix:passwd/shadow文件)和针对宿主软件hash的破解。利用系统软件这里主要是利用操作系统的一些逻辑错误、解析漏洞、DLL劫持以及应用系统漏洞进行提权。利用网络嗅探提权网络嗅探可以直接获取各种服务在网络上的用户名、密码或者hash,甚至是cookie劫持,从而获得权限的提升。社会工程学提权社会工程学提权是相对比较高
41、效的提权方法。它主要通过分析主机使用者的社会关系、使用习惯及使用环境规律等综合分析出关键字集合,通过一定的组合运算用于系统服务密码的破解。防御与逃逸简介防御逃逸防御目前防火墙中有防御WebShell的特征,主要是从WebShell的上传以及响应两个方面进行阻断。逃逸常见逃逸方法如下: 加密敏感代码:使用诸如vbscrip.encode,、jscrip.encode、javascrip.encode、base64_decode、gzinflate、gzuncompress、str_rot13等加密一些敏感代码逃逸被查杀。 修改源码:有时候通过更改变量名、函数名也可以达到免杀的目的。工具简介中国菜
42、刀海阳顶端ASP木马C/S模式转换器中国菜刀中国菜刀是菜刀作者从之前的WebShell管理器的基础上修改而来的功能更加强大,该工具主要功能是连接asp、aspx、php、jsp一句话木马并提供了文件管理、虚拟终端、数据库管理等常见功能,另外该工具还提供了安全扫描、定时提醒、快速启动、浏览器等实用小功能,其中安全扫描功能很强大,扫描速度很快。海阳顶端ASP木马C/S模式转换器 使用海阳顶端ASP木马C/S模式转换器可以自动生成服务器端一句话木马程序以及客户端程序。打开海阳顶端2006版目录下2006X.exe文件,如下图使用图上图 “打开”按钮选择要上传的大马,点击转换即可生成客户端2006.a
43、sp.htm,接着点击“生成服务器端页面”按钮即可生成服务器端sever.asp一句话木马,先上传sever.asp到服务器端,然后利用2005.asp.htm连接sever.asp上传大马。总结总结本文首先研究了绕过各种主流限制上传WebShell方法,包括绕过客户以及服务器端限制上传WebShell、利用写入过滤不全上传WebShell、利用主流服务器漏洞上传WebShell、利用sql注入上传WebShell、利用WebDAV上传WebShell、利用.htaccess文件上传WebShell。其次,介绍执行WebShell,由于命令执行时WebShell比较基础又比较复杂部分,因此单独拿出来进行研究,主要研究了分别在asp、aspx、php、jsp等环境下执行系统命令的方法并进行了实验。总结 接下来,介绍了主流WebShell的提取方法,包括利用开发的服务器提权、利用软件特性提权、利用软件溢出提权、利用宿主系统dll提权、利用dba提权、利用hash提权、利用网络嗅探提权、利用系统以及软件漏洞提权、社会工程提权。最后简单介绍了下AF库防御WebShell的方法、常见的WebShell逃逸方法以及WebShell利用工具。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。