You are on page 1of 18

1

SECURITY PROBLEMS IN TCP/IP


Reference: Security Problems in the TCP/IP Protocol Suite : by Steve Bellovin R-services Source-routing

ARP attacks
Session hijacking TCP session stealing

SECURITY PROBLEMS IN R-SERVICES


rsh and rcp use the .rhosts file in your directory, which lists hosts and accounts to allows access from without a password. Allowed by /etc/inetd Example .rhosts file: red.cs.umass.edu *.cs.umass.edu brian brian

SECURITY PROBLEMS IN R-SERVICES


Now that we know a machine is running rsh, how can we pretend to be another machine to gain access?
Attack Defense

Source routing

False routing table updates


Session hijacking ICMP redirects False ARP packets

TCP session stealing

ignore source routes secure routing protocols ssh/ secure connection ? Publish ARP tables ssh/ secure connection

SECURITY PROBLEMS IN R-SERVICES


Exploiting trusted relationships: C is a trusted host to S Source routing:
IP source-route option The responder includes the source-route on the reply packets. Some/most OSs ignore source routes these days.

X
C
2. replies

1. C->S: spoofed packet (source-route; includes X)

Open a TCP connection to rshd spoofing the address of a trusted host, but include yourself in the source route.

SESSION HIJACKING
Normal TCP operation from client, C, to server, S C->S: SYN(ISNC) S->C: SYN(ISNS), ACK(ISNC+1) C->S: ACK(ISNS +1) Client and Server exchange data ISN number generation 4.2BSD: increments 128/sec 4.3BSD: increments 125000/sec

Client C
SYN(ISNC)
SYN(ISNS), ACK(ISNC+1 )

Server S

ACK(ISNS+1)

SESSION HIJACKING
Session hijacking: Find a machine, C, thats down, guess the ISN. Usually in regular increments. X->S: SYN(ISNX) [spoofs C] S: rshd server S->C: SYN(ISNS), ACK(ISNX +1) X->S: ACK(ISNS +1) [spoofs C; estimates ISNS] X->S: [ echo * * >> ~/.rhosts] [spoofs C] X->S: RESET [spoofs C] X rlogins from anywhere in the world.

1. ISN estimation:

1: Disables C

X
2. SYN(1000)

3. SYN(5000), ACK(1001)

Trusted relationship

SESSION HIJACKING
2. Session hijacking:

X
4: SYN(ISNX) (spoofs C)

6: ACK(ISNS +1) (spoofs C; estimates ISNS)

5: SYN(ISNS), ACK(ISNX+1)

3. Executes remote commands:

X C
8: RESET (spoofs C)

7: [echo * * >> ~/.rhosts] (spoofs C)

DISABLING HOSTS: SYN FLOODING DOS


Send lots of spoofed SYN packets to a victim host Each SYN packet received causes a buffer to be allocated, and the limits of the listen()call to be reached. Morris invented SYN flooding just to launch a session hijacking attack, later used against Yahoo!

ATTACKING ROUTING TO EXPLOIT RSH


Two types of routing: dynamic routing vs. static routing Dynamic routing updates OSPF: link-state algorithm RIP: distance vector algorithm Attacker injects a RIP update stating she has a path to host C All subsequent packets to C will be routed to the attacker. The attacker initiates connection to rshd of the server. (spoofing C) Defense: uses secure routing protocols Only accept authenticated updates. Requires key management.

10

ICMP ATTACK
ICMP redirect: forces a machine to route through you. Requires an existing connection Open a spoofed connection to the host you want to attack. Then send a spoofed ICMP redirect to the victim redirecting it to the gateway youve compromised. Others ICMP destination unreachable Frequent ICMP source quenches

11

ARP ATTACKS
When a machines sends an ARP request out, you could answer that you own the address. But in a race condition with the real machine. Unfortunately, ARP will just accept replies without requests! Just send a spoofed reply message saying your MAC address owns a certain IP address. Repeat frequently so that cache doesnt timeout Messages are routed through you to sniff or modify.

12

ARP SPOOFING - COUNTERMEASURES

Publish MAC address of router/default gateway and trusted hosts to prevent ARP spoof Statically defining the IP to Ethernet address mapping Example: arp -s hostname 00:01:02:03:04:ab pub

13

TCP SESSION STEALING


Reference: A Simple Active Attack Against TCP by Laurent Joncheray. In Proceedings of 5th USENIX Unix Security Symposium. June 1995 Active attack using desynchronized states
The attacker is in the path b/w the client and the server The attacker can sniff all the packets and inject some spoofed packets Steps: 1. The attacker sniffs the communication b/w the two. 2. The attacker disables the communication by desynchronizing the client and the server. 3. The attacker injects spoofed packets that acceptable for both ends.

14

TCP SESSION STEALING


Desynchronized state b/w client C and server S Both in Established state No data is being sent (stable state) S_SEQ C_ACK and C_SEQ S_ACK

When S_ACK < C_SEQ < S_ACK + S_Wind:


The packet is accepted (buffered) but not sent to the user

When C_SEQ > S_ACK + S_Wind or C_SEQ < S_ACK :


The packet is dropped

In both cases, the ACK(S_ACK) is sent (ACK packet with S_SEQ, S_ACK)

15

TCP SESSION STEALING


In a desynchronized state, the attacker can send any acceptable data to the server E.g. [echo myhost >> ~/.rhost] for rlogin

X
1: C->S: C_SEQ, C_ACK

2: X->S (spoofing C): S_ACK, S_SEQ

[echo myhost >> ~/.rhost]


(accepted)

C
C_SEQ, C_ACK

(dropped)

S
S_SEQ, S_ACK

S_SEQ C_ACK and C_SEQ S_ACK

16

DESYNCHRONIZATION
X
Early desynchronization 3,4, 6 2

1. C->S(Syn): C_Seq0 ; C: Syn_Sent 2. S->C(Syn/Ack): S_Seq0, C_Seq0+1 ; S: Syn_Rcvd ; C: Established (C_Seq0+1, S_Seq0+1) (before the packet C->S(Ack): S_Seq0+1) 3. X->S(spoofing C, Rst) 4. X->S(spoofing C, Syn): X_Seq0 ; the same port # used in (1) 5. S->C(Syn/Ack): S_Seq1, X_Seq0+1 6. X->S(spoofing C, Ack): S_Seq1+1 ; S: Established (S_Seq1+1, X_Seq0+1)

17

THE ATTACK
Null data desynchronization 1. The attacker watches the session without interfering. 2. During a quiet period, the attacker sends a large amount of null data (IAC, NOP for telnet): nothing happens, server only changes the TCP Ack number 3. Now, when the client sends data, it is dropped by the server because its lower than the servers window. 4. The attacker does the same with the client. Defense: ssh connection, or IPsec

18

You might also like