標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) FI (57) File Transfer (1) Firefox (2) FM (2) fourjs (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (3) JavaScript (22) jQuery (6) JSON (1) K3b (1) LED (3) Linux (112) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) Oracle (125) Outlook (3) PDF (6) Perl (59) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (1) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (22) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (33) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) youtube (1) yum (2)

2012年3月6日 星期二

ARP和ICMP欺骗造就新式DoS工具

用一些特殊的方法使用arp和icmp的时候,会得到意想不到的结果,例如达成DoS工具。
相对于被动攻击(网络监听sniffing)来说,主动攻击使用的并不普遍――许多管理员都拥有一个网络监听工具,帮助他们管理局域网。在你的 LAN中,主动攻击将会给你的生活添加光彩和乐趣。你知道,仅仅是一些技术细节使得这些角落有些昏暗不明。那么,我们去看看那里究竟有些是什么。
我们首先描述一下网络欺骗(spoofing)和拒绝服务(DoS-deny of service)。象IP盲攻击一样,网络攻击常常非常普通并且功能强大,但是对使用者来说,需要做大量的工作(常常是猜),而且难于实行。但是ARP欺 骗正好相反,它非常容易使用且方便。
ARP欺骗往往应用于一个内部网络,我们可以用它来扩大一个已经存在的网络安全漏洞。如果你可以入侵一个子网内的机器,其它的机器安全也将受到ARP欺骗的威胁。
让我们考虑一下的网络结构
IP        10.0.0.1  10.0.0.2  10.0.0.3  10.0.0.4
hostname   cat     rat      dog     bat
hw addr  AA:AA    BB:BB    CC:CC    DD:DD
所有的主机在以太网中以简单的方式进行连接(没有交换机,智能HUB)。你是cat,你具有root权限,你的目标是侵入dog。而你知道dog信任rat,所以如果你能伪装成rat,那么你就能获得一些意外的东西。
也许你首先想到的是,“为什么我不把我的IP设成rat的,然后…”,这种方式无法工作,无法可靠的工作。如果你将cat的IP设置成 10.0.0.2,那么cat将以这个IP回答ARP请求。但是rat也会的。这样你们就进入了一个纯粹的竞争状态,而这场比赛没有赢家。相反的,你会轻 易的输掉这场比赛,因为许多工具会立即发现这种IP冲突的现象,抱怨之声随之而来。一些网络交通分析工具还常常对它进行纪录。在网络管理员的日志文件中还 会保留一条恶心的纪录(cat的物理地址),这可不是你想要的。你的不到你想要的东西,并且与你的目标背道而驰。
这个东西是你想要的,一个攻击程序――send_arp.c,一个非常有效的工具。正如它的名字所示,它发送一个ARP包(ARP回答,准确的说: 由于这个协议是无状态的,即使在没有请求的时候也可以做出应答。请求同应答是一样的。)向网络上,你可以把这个包做成你想要的样子。而你想要的只不过是可 以去定制源IP与目的IP,还有硬件地址。
当你进行ARP欺骗的时候,你不希望你的网卡乱说话,那么你可以用“ifconfig eth0 -arp”关掉你的ARP协议。当然,无论如何你都需要ARP的信息,手动的构建它并使它发向内核。重要的事你要获得你周围人们的信任。在这个例子中,你 希望dog认为rat的硬件地址是AA:AA(cat),所以你发送一个ARP应答,它的源地址是10.0.0.2,源硬件地址是AA:AA,目标地址是 10.0.0.3和目标硬件地址是CC:CC。现在,dog完全相信rat的硬件地址是AA:AA。当然dog中缓存会过期,所以它需要更新(重孝送请 求)。多长时间发出请求,各个操作系统不同,但是大多来说是40秒钟左右。经常发送ARP应答,这对你来说不会有坏处的。
对于ARP缓存处理方法的不同会带来问题的复杂性。一些操作系统(例如Linux)会用向缓存地址发非广播的ARP请求来要求更新缓存(就象你妻子 打电话来看你在不在一样)。这种缓存更新会给你增加麻烦,会使你刚刚伪造的ARP缓存被更改掉,所以必须避免此盛生。经常的向dog发出应答数据,这样它 就不会发出请求。正是预防为主。对于rat来说,它根本就没有机会来改变这一切。
所以过程是简单的。首先来设置网络接口别名(ifconfig eth0:1 10.0.0.2),添加rat的IP地址并且打开ARP协议(ifconfig eth0 arp)――你需要设置你的ARP缓存,当没有ARP时,它不会工作。然后在正确的网络接口上设置到dog的由。再设置dog的ARP缓存。最后,关掉网 络接口的ARP功能。这样一切就OK了。
现在,当你用send_arp将毒液注入之后(dog和rat),那么,dog就会认为,你就是rat。一定要记住,要持续不断的向dog和rat 发出ARP包。这种攻击方式就仅仅工作在局域网内(通常的,ARP包是不会由的)。一个有趣的尝试是,把我们上述试验中dog替换成由器,如果可以实现的 话(我不确定它是否会永远成立,由器的ARP功能不是那么容易欺骗的),你可以轻易的冒充这个局域网内的机器去欺骗这个Internet世界了。所以目标 可以是任何一台机器,但是你要伪装的机器,必须是这个局域网内的。除了欺骗以外,你还可以用ARP作很多事。蓝天之下,皆可任你遨游。或者,DoS也是一 个非常有用的程序。
给rat一个错误的硬件地址,是一个非常有效的让它闭嘴的方法。你可以避免它向一些特殊的机器发出请求(一个ARP缓冲池通常可以容括整个网络的内 容,所以你可以在一段时间内有效的防止它向其它机器发出请求)。非常明显目标也可以是一台由器。干扰缓存需要两步:搅乱被伪装的机器和你不希望它与之通讯 的机器。这种方法不是常常奏效,当这台机器发现缓存中没有目标机器时,会主动发出ARP请求。
当然你的下一滴毒液会迅速注入,但是你需要经常维持这种状态。一个比较有效的方法是,给rat一个错误的dog硬件地址,这样rat既能保持正常的 工作状态,又不会干扰你的活动。同样的,这种方法也依赖于不同的环境,通常的情况是rat会经常的向错误的目标发出各种不同的包,目标会返回ICMP不可 抵达信息,从而用一种不正当的方式维持了连接。这种伪装的连接可以推迟缓存的更新时间。在Linux上,我们可以是更新时间从1分钟提升到10分钟。在这 一段时间内,你已经可以完成一个TCP连接可以完成的大多数事情了。
这里存在一个有趣被称为“无理ARP”。在这个ARP请求包中,源IP与目的IP是相同的,通常它是经过以太网广播进行发送。一些执行程序认为这是 一种特殊情况――系统发出的自身更新信息,并且将这个请求添加在自己的缓存中。这种方式里,影响的是整个网络。这是毋庸置疑的,但这并不是ARP协议的一 部分,而是由执行者决定是否作(或是不作),这渐渐的变得不受人欢迎。
ARP也可以用来开一些非常专业的笑话。假想一下某人设置了一个中继器或者是一个管道,仅仅是利用自己的机器去骗取两台相邻机器的信任,并且把通讯 的包都发给这台机器。如果这台机器仅仅是转发数据,那么谁也不会发现。但是当它仅仅作一些很少的改动时,就会给你添加非常大的麻烦。例如,随机的更改数据 包中的几位,这样就会造成校验和错误。数据流好像是毫发无损,却会毫无原因的出现不可预料的错误。

沒有留言:

張貼留言