Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > IRC攻防手册(2)
【标  题】:IRC攻防手册(2)
【关键字】:C,攻防,IRC,RC,IR,IRC
【来  源】:网络

IRC攻防手册(2)

Your Ad Here IRC攻防手册(2)

基于IRC的flood以及防御方法

前面说了基于IRC的木马,和暴露IP所引起的一些攻击方法。事实上,在IRC里面你所能碰到的攻击手段大部分都是基于Mirc的flood攻击。
何谓flood ? flood在英语里面的本意为洪水,在网络里,我们把使用大量的数据来使网络资源减少的攻击叫做flood。在IRC里面,你所见的大部分信息都可以被别有用心的人利用起来进行flood攻击,比如join/part 频道, 说话的msg ,notice ,动作(/me ),改名字等等,只要重复的速度够快,次数够多,就形成了flood。好,我们来看看具体的一些flood手段。


Text flood
这种flood,是最常用的。一般用户最容易想到的就是这种flood。在频道里面打入一句话,
/say xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (x为任意的内容,后同)
或者
/msg # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
这里的 # 可以改成人名或者具体的频道名。
然后不断的按 ↑ Enter ,或者ctrl+v ,ctrl+v 不断的像频道/或个人发送同样的一句话。你看到的结果是这样的
[06:18:50]<test>γ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>γ
[06:18:50]<test>γ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>γ
我最快只能每秒发送5句,虽然不会搞的你死机和断线,不过如果不采取点措施,想正常聊天是不大可能了。这种攻击方法有个弊端,就是攻击者自己也一句不拉的看到这些话,所以他们自己也别想好好的聊天了。
如果攻击是针对你个人的,使用 ignore 命令
/ignore nick
即可把该用户忽略。发自该用户的所有消息都将被服务器过滤掉,不会发到你的客户端。
如果攻击是针对一个频道的,则由频道管理员(管理员的名字前面有 @ )给该用户 +b 即我们通常所说的ban。
Ban命令的基本用法是
/ban nick n n可以取1~8,也可以不要,ban会使用默认的数字。
Ban了以后,攻击者将看到下面的消息:
[07:31:42] *** springold 设定模式: +b *!*@127.0.0.FastNet-14601
[07:31:50] <m3> γxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx γ
#test 不能向频道里发送信息 (You are banned)
这时,他的话已经无法送到频道,floold自然也就失效。

Action flood
重复使用
/me xxxxxxxxxxxxxxxxxxxx(x为随意内容)
引起flood,造成的影响和上面的差不多。不过攻击者自己可以不不要看到发除的内容(后面以x来代替),只要在me的前面加个小逗点 . 就可以,也就是 /.me 。你看到的攻击效果如下:
[06:35:30] * test xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
防御方法同上。

Notice flood
威力比上面的2个都大些,上面的攻击你切换到另外一个频道,也就看不到了,而这个,躲是躲不掉的,无论你的窗口切换到哪个频道或小窗,都可以看到。和 /.me 一样。 Notice 也可以使用 /.notice 来消除攻击对攻击者自己带来的影响。
/notice springold xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/notice # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
前一句针对个人,后一句针对频道,所有在该频道的人都可以看到。看到的信息如下
[06:43:44] -test- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (针对个人)
[06:45:03] -test:#test- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(针对频道)
攻击者可以看出来都是test用户。


Nick flood
以很快的速度改名字也同样可以形成flood的。效果和Text flood一样,不过范围更大,只要是攻击者所在的频道,都受到攻击。不断重复下面的命令
//nick $rand(a,z)
即可形成flood。看具体攻击效果:
[06:54:59] *** c 现在命名为 b
[06:55:10] *** b 现在命名为 d
[06:55:10] *** d 现在命名为 l
对付这种攻击很简单,把它ban了就可以,被ban的用户是不能改名字的。
当然前提是你要有 @。如果一个频道没有一个人有帽子,那只能去#help 频道请系统得管理员 oper 来了。如果 oper也不在,那只能任由他胡作非为了L .


join/part flood
一个用户进出频道的时候,我们是可以看到如下的话的。
[07:11:10] *** m3 (~ling_zhu@127.0.0.FastNet-14601) 离开 #test
[07:11:15] *** m3 (~ling_zhu@127.0.0.FastNet-14601) 参加 #test
如果一个人不停的join/part,也就形成了 join/part flood。Join/part flood 通常是要写脚本来完成的。
要防止join/part flood,把他ban掉就可以了。被ban的用户一旦离开频道变无法再次加入频道,直到解除ban。

Ctcp flood
Ctcp攻击的效果比上面的要厉害些。具体的ctcp 攻击有以下几种
/ctcp nick ping
/ctcp nick version
/ctcp nick time
/ctcp nick finger
受攻击者看到的效果是这样的:
[07:21:13] [m3 PING]
[07:21:16] [m3 VERSION]
[07:21:20] [m3 TIME]
[07:21:23] [m3 FINGER]
m3 为攻击者的名字。
连续不断的发送 /ctcp nick ping :
[07:52:51] -> [springold] PING
-
[07:52:51] [springold PING Reply]: 5secs
[07:52:52] -> [springold] PING
-
[07:52:52] [springold PING Reply]: 8secs
从后面的reply(回复)的速度上可以看出攻击效果。
和前面的 /notice /me 等一样,同样也可以使用 /.ctcp 来消除攻击对自己的一些影响。

DCC flood
具体的由DCC chat 和 DCC send 两种。如果你的DCC选项设置成忽略,那这种攻击是无效的。如果你的DCC设置是自动接受的,那效果就比较”明显” 了。具体的攻击脚本我这里不提供给大家,大家有兴趣测试的话可以到一些Mirc script网站上面去找。
防止这中攻击同样也可以使用 /ignore 命令。

除了上面的说的这些攻击方法外,还由另外一些攻击的手段,不过用的不是很多,比如
op/deop(加帽子也能用来攻击?废话) kick/invite 等等,在这里不再详细讨论。需要指出的是,以上我写的都是用手工完成的。事实上,攻击这往往是使用了脚本的。一来方便,二来效果也更加明显。很多的时候,用手工来对付基于脚本的攻击是来不及的。一旦攻击开始,你向服务器发送的所有命令都无法正确的得到执行,因为资源都被攻击者占用了。攻击的脚本往往都使用 /timer 命令 或者使用循环语句来。有关 /timer 命令的用法可以看mirc 自带的帮助文件,也可以访http://xirc.yeah.net
这里我举一个最简单的例子
/timer 100 1 /.me it's just a test !!!!
这条语句将向频道以每秒一句的速度向频道发送100句 :
[08:02:08] * m3 it's just a test !!!!


下面我简单介绍一下flood protect 脚本的写作思路。我们先来看一个最基本的保护脚本例子:
-=--------------------------------------------------------------=-
on *:ACTION:*:#: {
%prot.act = strip( $1- )
if ( $nick == $me ) halt
if ( slap isin %prot.act ) halt
inc %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]
.timer 1 4 /unset %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]

if ( %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ] > 6 ) {
if ( $me isop $chan ) {
ban -u60 $chan $nick $address($nick,2)
kick $chan $nick _4 $+ $read kicks.txt
unset %%self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]
}
else {
ignore -pcu30 $nick
echo -a_14 $nick Action _4Flooding _14You ,..ignored now
notice $nick _14 Do Not Flood_4 $me _14.! You were Ignored now!
}
}
}
-=--------------------------------------------------------------=-
这段脚本是针对 Action flood a channel的。脚本的主要思路是这样的:
先判断是否自己发出的/me 动作,如果不是在判断是否为 slap,因为slap通常都是朋友开玩笑的,所以也过滤掉。如果两者都不是,就开始统计次数:
inc %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]
/me 一次 变量 %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]的次数加一
另外再设置一个定时器,
.timer 1 4 /unset %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]
他的意思是,每过4秒就把 变量%self-protection.action [ $+ [ $nick ] $+ [ $chan ] ] 的值重置。 接着就是判断是否形成flood以及做出相应的处理了。
if ( %self-protection.action [ $+ [ $nick ] $+ [ $chan ] ] > 6 )
判断是否在 4秒 内发送了6句以上的Action ,如果是,就进行相应的处理。这里,我们对自己在频道中有帽子和没有帽子作了不同的处理。
如果有帽子:
if ( $me isop $chan ) {
ban -u60 $chan $nick $address($nick,2)
kick $chan $nick _4 $+ $read kicks.txt
unset %%self-protection.action [ $+ [ $nick ] $+ [ $chan ] ]
}
意为,把该用户ban掉60妙,然后提出频道,这样他就无法再60秒内再加入频道进行攻击。
如果没有帽子,就执行下面的脚本:
else {
ignore -pcu30 $nick
echo -a_14 $nick Action _4Flooding _14You ,..ignored now
notice $nick _14 Do Not Flood_4 $me _14.! You were Ignored now.
}
先忽略该用户的/me消息30秒,然后给自己发送一条消息通知有人使用Action flood你,并且已经被自己忽略了。接着给攻击者发送一条 Do Not Flood_4 $me _14.! You were Ignored now.的警告。根据这个思路,可以写出很多的防卫脚本来保护自己。如果你对写脚本有兴趣的话可以去xirc或者是古新的bbs,我的小站里面有链接。如果你不想自己写,那么到网上面下载别人的bot好了。
为了躲避脚本的防卫,攻击者的脚本往往是多种攻击相结合的。比如针对上面的的防卫脚本,攻击者只要发送了5句之后,换成别的攻击,脚本的flood判断就无法触发。
防卫也就失去了作用,攻击者再用了别的flood之后,还可以转回来用Action flood,因为4秒时间一过,变量被重置,计数又重新开始了。

有一定脚本使用经验的攻击者往往都使用一种更加厉害的攻击方法,那就是Clone 。
被clone 人flood过的人往往都是“谈clone色变”。那么,何谓 “clone”? Clone 就是用一个Mirc,利用socket编程复制很多个用户连接到IRC服务器上,这些在同一个Mirc上面的用户就是clone。Clone 攻击的威力是很大的,因为所有clone用户可以一起使用前面所说的各种攻击,比如你clone了20个用户上去Action flood,就相当于20你纠集了20个同党一起Action flood,威力是你单个人攻击的20倍,而且事实上,脚本的速度往往是比手工的快的,攻击者为了达到好的攻击效果,clone数目往往是50个甚至是上百个,威力就会成倍增长。IRC用户一旦碰到这样的攻击,往往是屏幕定住,机器没有任何响应,不得不强行结束任务或者是重新启动,更别提什么IRC里面泡mm了。在实际的测试中,如果对一个频道进行clone 20个人的flood,用不了多久,频道里面大部分(90%以上)的人就会因为和服务器的响应时间过长而断掉。Clone脚本我这里不便提供给大家.

防御这样的攻击有一定的难度,以前面的那段脚本为例,如果每个clone都只Action 5次,那么是不会触发防御脚本的,但是如果有50个clone的话,你将收到 5*50=150条消息,而且时间很短,威力已经比较大了,如何和别的攻击一结合,命中率简直可以到 100% 。如和防止clone攻击呢?
对于频道来说,可以:
/mode #channel +k password
也可以设置成只邀请模式。这样别人就不能随意的进入频道,clone自然也进不来。
对于个人,恐怕只有断掉Mirc(或者重新启动机器,惨L),重新连进去,先执行一次
/ignore xxx.xxx.xx.xx (xxx.xxx.xx.xx为攻击者的ip,whois 查除来的mask过的就可以),然后再进去聊天。
好了,终于写的差不多了。这里再作几点小小的补充说明吧
1.Mirc里面所有的命令默认都是以 / 开头的。至于命令本身,在你平时说话的地方输入,敲回车就可以了。
2.前面多处提到了ignore命令,这里针对这个命令作个说明
/ignore nick 3 彻底的忽略掉一个人
/ignore nick 4 忽略所有和该nick同ip的人
/ignore -t nick 3 忽略该nick对你的ctcp
/ignore -t *!*@* 忽略所有的ctcp
更具体的用法请看mirc的帮助文件
3.千万不要用web上IRC,那样毫无安全性能可言,上面说的任何一种攻击手段对Webchat用户来说都将是致命的。
4.Mirc自己带了个flood设置,不过比较傻,具体位置是 File/Options/Flood/ 自己去搞定吧。
5.linux用户千万不要以root身份上IRC,更不要在网站的服务器上面上IRC。
6.看过本文后,请不要使用本文提及的方法区攻击他人,如果你作了,一切后果自己负责,和本人无关。
7.本人并不是什么IRC高手,只是写些自己的心得,在这里要感谢给过我帮助的人们和那些IRC高手们。文中有什么错误啊,或者你对文章的内容有任何意见或者建议,都可以来信指导,我的email是: elliot@feng.com.cn (别炸哦), 但是别问我如何去攻击,以及索要clone等攻击脚本,对这些要求,本人概不回信。 (全文完)
网络数据加密的三种技术:【上一篇】
IRC攻防手册(1):【下一篇】
【相关文章】
  • 和维护Apache WEB Server 安全性
  • “SCO炸弹(MyDoom)变种N”分析报告(1)
  • “SCO炸弹(MyDoom)变种N”分析报告(2)
  • Symantec公司认为与微软SQL server的漏洞有关
  • “SCO炸弹”蠕虫病毒分析报告(1)
  • “SCO炸弹”蠕虫病毒分析报告(2)
  • “秋天的童话”变种C分析报告(1)
  • “秋天的童话”变种C分析报告(2)
  • 腾讯Oicq安全使用指南及技巧(2)
  • 腾讯Oicq安全使用指南及技巧(3)
  • 【随机文章】
  • Tracker服务器源码分析之二:RawServer类
  • ASP.NET虚拟主机的重大安全隐患(四)
  • Java备注(2)
  • 介绍J2ME的安全结构
  • .NET设计模式(18):迭代器模式(Iterator Pattern)
  • 更改"开始"菜单中"程序"的图标
  • 软件产业向互联网转型正当时
  • HTML语言剖析11:框架标记
  • C#教程第十一课:索引指示器
  • 破解还原卡密码
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.