TCP/IP
ARP c ontinued,ARP c ache pois oning
ARP resolution–the details
First, we' ll look at the format of an ARP message (see text, or look it up ongoogle) .
The protocol has three aspects: it specifies what a requester is to do, what areceiver is to do, and what a responder is to do. A requester is a machine thatsends an ARP request, a receiver is a machine that receives any ARP message, anda responder is a machine that sends an ARP reply.
On our Ethernet network, here' s the process in detail; for a requester:
Create an ARP message:
1. Set HW type to ' 1' (for Ethernet)
2. Set Protocol type to 080016 (for IP)
3. Set HLEN to 6 (6x8=48 bits)
4. Set PLEN to 4 (4x8=32 bits)
5. Set OPERATION to 1 (for ARP request)
6. Fill in SENDER' s HW ADD
7. Fill in SENDER' s PROT ADD
8. Set TARGET HW ADD to 0 (doesn' t know)
9. Fill in TARGET PROT ADD.
Broadcast the ARP message in an Ethernet frame.
For a receiver (of either an ARP request or reply) or responder
Extract the ARP request
If the SENDER' s PROT address in in my cache, update it with the SENDER' s HWaddress and reset the timer on that pairing
If the TARGET PROT address is identical with my IP address, carry on, otherwise,quit
Update my cache (again) , regardless of wh'ether an entry exists for that PROTaddress. (all this is done even if it isn t a request)
[ [Here it would be possible for the arp request to contain a protocol addressidentical with the protocol address of the target. We noted that Windowsoperating systems detect this, and make a note on 'the console. I tested Linux,and i't simply ignores the arp request, i. e. , doesn t generate a reply, anddoesn t update its arp cache. ] ]
If the OPERATION is a request, carry on; otherwise quit.
Fill in TARGET HW address with my Ethernet address, swap SENDER and TARGETaddresses, and set OPERATION to 2
Encapsulate ARP reply in a frame addressed to TARGET HW address.
QUESTIONS
Why does the ARP request recipient try to update its cache twice before evenexamining whether the message is a request? And once before even examiningwhether it is the intended recipient ?
( ( 1st time: save on traffic ) )
( ( 2nd: save repeating the process in reverse ) )
Gratuitous ARP
One other application of ARP that I' ll mention briefly is gratuitous ARP. Some OSs employs ARP to make sure that there are not duplicate IP addresses onthe physical network. (In fact OpenBSD does this. )
It broadcasts an ARP looking for the HW address of itself, i.e. , of its IPaddress.
If it receives a reply, it knows there is another host with its IP address, andputs a message on the console.
ARP Cache Poisoning
- ARP is a protocol which generates mappings between IP addresses and hardwareaddresses
- The basic idea, you will recall, is as follows:
- |A|-------|B|
- Host A wants to talk to host B, but A doesn’ t know B’ s HW addr
- A sends an ARP request to B, containing a mapping between A’ s HW and IPaddr
- B caches this mapping, and returns a reply with its mapping
- Communication proceeds
- There are three aspects to ARP cache poisoning that I want to discuss: (1)
What is it? (2) How do you do it? (3) Why do it?
- (1) ARP cache poisoning is when one machi’ne on a network, s’ay C, causes afalse entry to be placed in another host s, for example C s, ARP cache.- (2) It is very easy to poison ARP caches, and operating systems have triedvarious methods to protect against it, the main one being the creation of an
incomplete entry in the arp cache, and updating according to the steps aboveonly if that incomplete entry exists; this will go some way to protectingagainst unsolicited arp replies. ‘ However’ , this creates a race condition,poisoning i‘s still possible’by spaming unsolicited arp replies, in thehopes of winning the race against legitimate, solicited arp replies.
(3) Poisoning Effects
ARP cache poisoning can be used in various ways, the three most fundamentalof which are:
- (a) Eavesdropping
- Now suppose that an attacker, host C, wants to eavesdrop on communicationbetween host A and host B, but that the LAN is switched Ethernet. (How doesswitched Ethernet work?)
- |A|--------|B|
- |
- |C|
- If’ C could convince A that B’ s HW addr is C’ s, and could convince B thatA s is also C, then all traffic from B to A, and vice versa, would go to C.- Moreover, if C turned on forwarding, and had the correct HW-IP mappings, Cwould in effect become a kind of router between A and B, and would
consequently have access to all communication between A and B.
- The effect of this attack would be the disclosure of potentially confidentialinformation.
- (b) Denial of service
- On the other hand, perhaps C is not interested in eavesdropping, but wouldrather deny A and B the ability to communicate with one another.
- In this case, it would suffice for C to poison A’ s and B’ s caches withmappings eit’her to non-existent hardware addresses, or alternately, again useits own – C s – HW address, and simply not forward (the former makes iteasier for the attacker to hide his/her tracks) .
- (c) Hijacking
- Another possibility is that C is not interested in eavesdropping or DoS, butrather, wants to take over one end of the conversation.
- This would be a kind of combination of the previous two attacks: First, Cwould need to eavesdrop using the method previously outlined.
- Then, after (e.g. ) authentication, C performs a DoS on A, and takes over A’ srole in this 2-way conversation.o (Another example, besides authentication, that A might wait until thetwo hosts are communicating, is in order to sample TCP sequence andacknowledgement numbers, which is necessary in order to successfullyhijack a TCP session. This will make more sense when we come to TCP. )- This is called session hijacking (normally TCP sessions) , and there arevariations on this theme. E.g. , C could maintain the connection between Aand B, yet insert data into the communication channel.
- ARP Poisoning: not just a LAN issue
- These attacks are not limited to hosts on a single LAN. In fact, provided wehave LAN access to anynetwork on the path between A and B, these attacks arepossible.
- Examples:
- C
- |------------
- | |
- A B
- Here we merely poison A and R1.
- C
- |------------R1-----Internet----
- | |
- A B
- Poison B and R2
- C
- |------------R1-----Internet-----R2----R3---------|
- | |
- A B
- Poison R2 and R3
GigsGigsCloud新上了洛杉矶机房国际版线路VPS,基于KVM架构,采用SSD硬盘,年付最低26美元起。这是一家成立于2015年的马来西亚主机商,提供VPS主机和独立服务器租用,数据中心包括美国洛杉矶、中国香港、新加坡、马来西亚和日本等。商家VPS主机基于KVM架构,所选均为国内直连或者优化线路,比如洛杉矶机房有CN2 GIA、AS9929或者高防线路等。下面列出这款年付VPS主机配置信息...
DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,其中VPS主机基于XEN架构,支持异地备份与自定义镜像,VPS和独立服务器均可提供内网IP功能。商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;独立服务器开设在香港沙田电信机房,CN2线路,自动化开通上架,最低499元/月起。下面以...
iON Cloud怎么样?iON Cloud今天发布了7月份优惠,使用优惠码:VC4VF8RHFL,新购指定型号VPS半年付或以上可享八五折!iON的云服务器包括美国洛杉矶、美国圣何塞(包含了优化线路、CN2 GIA线路)、新加坡(CN2 GIA线路、PCCW线路、移动CMI线路)这几个机房或者线路可供选择,有Linux和Windows系统之分,整体来说针对中国的优化是非常明显的,机器稳定可靠,比...