TCP Session Hijacking

2017. 7. 15. 16:44NetworkHacking/Network




TCP 3-Way Handshake 통신방법에서 SequenceNumber를 활용한 공격 기법입니다

- 세션 ( Session ) : 사용자와 컴퓨터 또는 컴퓨터와 컴퓨터간의 활성화된 상태

- 세션 하이재킹 : AP( Access Point)와 PC간에 이루어지는 통신정보(세션)를 가로채서, 사용자 인증절차를 거치지 않고, 해당 PC와 동일한 권한을 얻는 것

- 단순히 훔쳐보는 것이 아니라 해당 PC의 권한으로 명령어를 사용할 수 있음에서 강력한 공격기법이다


세션 하이재킹 공격과정에 대해서 알아보자


< 세션 하이재킹 공격과정 >

<방법1>

[ 그림1 ]


1> 현재 Client와 Server간에 세션이 성립되어 있는 상태입니다 ( Established Session ( C - S ) )

2> 공격자는 스니핑을 통해서 세션을 확인하고, 시퀀스 번호를 훔쳐 알아냅니다

3> 공격자는 Client에게 RST/FIN 패킷을 보내 연결을 끊어버리고, Server에게는 RST패킷을 보내서 잠시 연결 중지상태로 만듭니다

4> 그리고, 공격자는 새로운 시퀀스 번호를 생성해서 SYN패킷을 보내어 Server와 새로운 세션의 생성시도를 합니다

5> Server는 해당 시퀀스 번호를 받아들이고 정상적인 연결처럼 공격자와 세션을 형성합니다 ( Established Session ( A - S ) )


<방법2>

[ 그림2 ]


위 방법과 같은 흐름이지만, Client에게 RST/FIN패킷을 보내어 Client를 종료시키는 과정이 빠져있습니다

그래서 Client는 계속해서 Server에게 Packet을 보내고 있는 모습이 보이실 겁니다

Client는 Server에게 ACK패킷을 보내었지만, Server는 이미 공격자의 시퀀스 번호를 정상적인 값으로 인식하고있습니다

따라서 Server는 시퀀스 번호의 재확인을 위해 Client로 ACK패킷을 보내지만, Client에서도 Server에서 온 ACK패킷의 시퀀스 번호를 맞지 않은 값으로 인식할 것입니다 

=> why? 클라이언트의 시퀀스 번호는 변화없엇지만, 공격자와 서버가 서로 시퀀스 번호를 사용했기 때문이다

이렇게 Client와 Server사이에서 ACK패킷이 무한히 반복되는 경우를 " ACK Storm " 이라고합니다

( ACK Storm : 클라이언트와 서버의 정확한 시퀀스번호를 맞추기 위해 서로 ACK패킷을 보내는 과정 )


<보안 대책>

1> 공격자가 중간에 끼어서 작동하므로 패킷의 유실과 재전송이 발생하여 서버와의 응답시간이 길어집니다 - 이를 탐지한다

2> ACK Storm 탐지 - ACK패킷비율이 급격하게 증가하는 것을 탐지한다

3> 데이터를 전송할 때 암호화 방식을 사용해서 시퀀스 번호를 추측하기 어렵게 한다

4> 지속적인 인증 : 한 번 로그인 한 뒤 일정시간이 되면 다시 로그인하도록 하여 정당한 사용자인지 확인하는 방법



참고사이트 http://killsia.tistory.com/entry/TCP-Session-Hijacking , http://walter504.tistory.com/entry/TCP-Session-Hijacking , http://darksoulstory.tistory.com/420



'NetworkHacking > Network' 카테고리의 다른 글

VPN ( Virtual Personal Network )  (0) 2017.07.15
RFID ( Radio Frequency IDentifire )  (0) 2017.07.15
TCP 3-Way Handshake  (1) 2017.07.12
SNMP / SMTP - POP3, IMAP . PGP, S/MIME  (0) 2017.07.10
WAP ( Wireless Application Protocol )  (0) 2017.07.10