Upload
rosalyn-jacobs
View
218
Download
2
Embed Size (px)
Citation preview
2
README.TXT
Promiscuous Mode
My speech
English
3
Agenda
Hardware filterAddress Resolution ProtocolSoftware filterPromiscuous detectionException
4
Hardware filter
Unicast (to host)BroadcastMulticastAll multicastPromiscuous
5
Unicast (to host)
The packet to the HW address of the device is passed.
To 00:11:22:33:44:55
Pass
NIC 00:11:22:33:44:55
To 00:11:22:33:44:01
Reject
6
Broadcast
Packet to broadcast (FF:FF:FF:FF:FF:FF) is passed
To FF:FF:FF:FF:FF:FF
Pass
NIC 00:11:22:33:44:55
7
Multicast
The address registered in the multicast list is passed.
To 01:00:5e:00:00:01
Pass
NIC 00:11:22:33:44:55
To 01:00:5e:00:00:02
Reject Multicast List
01:00:5e:00:00:0101:00:5e:00:00:03
Multicast List
01:00:5e:00:00:0101:00:5e:00:00:03
8
All multicast
The multicast packet of all groups passes.
It is the packet where the group bit is set to multicast.
What is the multicast packet?
9
All multicast (2)
The packet which sets the group bit is passed
Group bitHW Address:
01:02:03:04:05:06
0000 0001 | 0000 0010 | 0000 0011 |........
group bit
10
All multicast (3)
The packet which sets the group bit is passed
To 01:00:00:00:00:01
Pass
NIC 00:11:22:33:44:55
To 02:00:00:00:00:01
Reject
11
Promiscuous
All packets are passed.
To xx:xx:xx:xx:xx:xx
Pass
NIC 00:11:22:33:44:55
12
Default HW filter
Unicast HW Address
(ex. 00:11:22:33:44:55)Broadcast FF:FF:FF:FF:FF:FFMulticast Multicast address 1
01:00:5E:00:00:01
13
ARP
Address Resolution Protocol Protocol to search for HW address
which corresponds to IP address
14
ARP (2)
Requested IP address is set in the ARP packet.The packet is sent to the broadcast address.The requested node replies with its’ HW address.
15
Packet format of ARP
ARP packet (request)
6bytes: Ethernet address of destination FF FF FF FF FF FF 6bytes: Ethernet address of sender 00 11 22 33 44 552bytes: Protocol type (ARP=0806) 08 062bytes: Hardware address space (ethernet=01) 00 012bytes: Protocol address space (IPv4=0800) 08 001byte: byte length of hardware address 06 1byte: byte length of protocol address 04 2bytes: opcode (arp request=01 ,arp reply=02) 00 016bytes: Hardware address of sender of this packet 00 11 22 33 44 554bytes: Protocol address of sender of this packet My IP6bytes: Hardware address of target of this packet 00 00 00 00 00 00 4bytes: Protocol address of target Target IPTarget IP
16
Test 1
Does not set the broadcast address in the HW Address of the ARP Packet.
NIC(normal)
IP:192.168.1.10
To 00:00:00:00:00:01Arp request(192.168.1.10)
To 00:00:00:00:00:01Arp request(192.168.1.10)
IP:192.168.1.10
NIC(promisc)
No Reply
17
Consideration of test 1
What kind of filter ? Multicast? Broadcast?
Why is there no reply ? Something is set in the software filter.
18
linux/arp.c (1)if (in_dev == NULL || arp->ar_hln != dev->addr_len || //check hw addr length dev->flags & IFF_NOARP || //no arp skb->pkt_type == PACKET_OTHERHOST || //otherhost packet skb->pkt_type == PACKET_LOOPBACK || //loopback packet arp->ar_pln != 4) //ipv4
goto out;
switch (dev_type) {default:
if (arp->ar_pro != __constant_htons(ETH_P_IP)) //ip protocol 0800goto out;
if (htons(dev_type) != arp->ar_hrd) //check hw devicegoto out;
break;
19
linux/arp.c (2)if (arp->ar_op != __constant_htons(ARPOP_REPLY) && //arp request or reply arp->ar_op != __constant_htons(ARPOP_REQUEST))
goto out;
/* * Check for bad requests for 127.x.x.x and requests for multicast * addresses. If this is one such, delete it. */
if (LOOPBACK(tip) || MULTICAST(tip)) //loopback or multicastgoto out;
Check IP Address
20
linux/arp.c (3)
filter of ARP module ARP message is correct. A packet is not OTHERHOST. A packet is not LOOPBACK. Request IP Address is not loopback. Request IP Address is not multicast.
ARP responds if the HW address of the packet is TO_US, BROADCAST, or MULTICAST.
21
Classification of packet
In the software What is a TO_US packet ? What is a MULTICAST packet? What is a BROADCAST packet?
22
linux/eth.c (1)if(*eth->h_dest&1){
if(memcmp(eth->h_dest,dev->broadcast, ETH_ALEN)==0)skb->pkt_type=PACKET_BROADCAST;
elseskb->pkt_type=PACKET_MULTICAST;
}
/* * This ALLMULTI check should be redundant by 1.4 * so don't forget to remove it. * * Seems, you forgot to remove it. All silly devices * seems to set IFF_PROMISC. */ else if(1 /*dev->flags&IFF_PROMISC*/){
if(memcmp(eth->h_dest,dev->dev_addr, ETH_ALEN))skb->pkt_type=PACKET_OTHERHOST;
}
23 ARP Response
linux/eth.c (2)
group bit = 1 ?
otherhost to us multicast broadcast
yesh_addr = broadcast ?
yes
yesh_addr = dev_addr ?
no
no
no
24
grbit
normal mode promiscuous mode
hw filter
sw filter res.
hw filter
sw filter res.
to_usoffother
host
broadcast
onmulticast(in the list)
multicast(not in the list)
group
for Linux
→ → → →
reject - - → reject -→ → → →
→ → → →
reject - - → →
reject - - → →
25
However, there is something in the filter.
SW filter of Windows
I do not know. I have not seen the source code.
Test 2
26
Test 2
A special HW address is set and tested. FF:FF:FF:FF:FF:FF Broadcast FF:FF:FF:FF:FF:FE Fake broadcast (31bits) FF:FF:00:00:00:00 Fake broadcast (word) FF:00:00:00:00:00 Fake broadcast (byte) 01:00:5E:00:00:00 Multicast address 0 01:00:5E:00:00:01 Multicast address 1 01:00:00:00:00:00 Group bit
OS Windows9x/2000,Linux
27
Result 2
HW Address
Windows9x/ME Windows2k/NT4 Linux2.2/2.4
normal promisc normal promisc normal
promisc
FF:FF:FF:FF:FF:FF
FF:FF:FF:FF:FF:FE
FF:FF:00:00:00:00
FF:00:00:00:00:00
01:00:00:00:00:00
01:00:5E:00:00:00
01:00:5E:00:00:01
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
28
Exception 1
Old NIC does not support the multicast list. EtherLink III etc.
A multicast list isn't supported.
Default is all multicast. The packet which sets the group bit is passed
29
Exception 2
Linux+3c905 (Dell on board is the same.)is always all multicast
The installer automatically sets it to the older driver 3c59x.o (in which ,multicast list isn't supported.).
When the newer driver ,3c90x.o, is set it is correct.
30
Exception 3
Windows2000 dynamically loaded driver WinPcap2.1 and
SMS(Systems Management Server)
normally responds to FF:FF:00:00:00:00. responds to FF:FF:FF:FF:FF:FE in
promiscuous
31
Demonstration
Windows2000
Windows2000
RedHat7.0
my pc
Ethernet (172.18.21.*)
malicious user 1 malicious user 2
32
Test tool
You can download the test tool from our site. PromiScan
http://www.securityfriday.com/
# Please report your test results to us. #
34
Thank you