본문 바로가기

Learning/└◆Network Hacking

네트워크 해킹 - 04. TCP & UDP 프로토콜

TCP & UDP 프로토콜

 

Ex1) TCP 3-Way 핸드 쉐이킹 캡처

 

<Window2008>

와이어샤크 실행

 

Linux200으로 Telnet 접속

C:\users\administrator>telnet 192.168.20.200

login : root

password : ****

[~]#

[~]# exit

 

와이어샤크 캡처 내용 확인

 

참고사이트 : http://terms.naver.com/entry.nhn?docId=3431875&cid=58437&categoryId=58437

정보보안 개론

① 단계 : 두 시스템이 통신을 하기 전에, 클라이언트는 포트가 닫힌 Closed 상태, 서버는 해당 포트로 항상 서비스를 제공할 수 있는 Listen 상태이다.
② 단계 : 처음 클라이언트가 통신을 하고자 하면, 임의의 포트 번호가 클라이언트 프로그램에 할당되고 클라이언트는 서버에 연결하고 싶다는 의사 표시로 SYN Sent 상태가 된다.
③ 단계 : 클라이언트의 연결 요청을 받은 서버는 SYN Received 상태가 되고 클라이언트에게 연결을 해도 좋다는 의미로 SYN1) + ACK2) 패킷을 보낸다.
④ 단계 : 마지막으로 클라이언트는 연결을 요청한 것에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버에 보낸다.

3-웨이 핸드셰이킹은 주로 전화를 받는 과정에 많이 비유한다. 전화 통화에서 서로를 확인하는 절차와 유사하기 때문이다.

① 단계 : 전화가 끊겨진 상태이다.
② 단계 : 수화기를 들고 전화번호를 누른다. "여보세요. 저는 철수인데요. 거기 영희 있어요?"가 SYN 패킷이다. 하지만 요즘은 휴대폰의 발신자 표시를 통해 철수가 전화를 걸어온 것을 영희가 알 수 있으므로 발신자 표시를 SYN 패킷으로 볼 수 있다.
③ 단계 : 과거에는 "철수니(ACK)? 나 영희야(SYN)."가 SYN+ACK 패킷이었겠지만, 발신자 표시 기능이 있는 현재에는 ② 단계의 발신자 표시를 보고 사용자가 스스로 인지하는 과정에서 통화 버튼을 누르는 동작 자체가 ACK 패킷이 되고, "나 영희야"가 SYN 패킷이 된다. 즉 ③ 단계는 SYN+ACK 패킷이다.
④ 단계 : SYN+ACK 패킷을 받고 철수가 "응, 그래."하는 단계가 ACK 패킷이다. 이 단계가 끝난 뒤 이야기를 시작한다.

3-웨이 핸드셰이킹은 연결 지향형(Connection Oriented) 프로토콜인 TCP를 이해하는 데 가장 기본적인 개념이다. TCP와 관련된 보안 사항을 이해할 때뿐 아니라 네트워크 서비스 운영 시에도 매우 중요하니 잘 기억하기 바란다.

[네이버 지식백과] 전송 계층(4계층) (정보 보안 개론, 2013. 6. 28., 한빛아카데미(주))

 

 

 

Ex2) UDP 패킷 캡처

<Window2008>

와이어샤크 실행

nslookup www.google.com

C:\users\administrator>nslookup www.google.com


서버:    kns.kornet.net
Address:  168.126.63.1

권한 없는 응답:
이름:    www.google.com
Address:  216.58.197.100

와이어샤크 캡처 확인

 

 

Ex3) 포트 번호 확인

<Linux200>

서비스 포트 번호 확인

# cat /etc/services | more

nststat를 이용한 서비스 포트 번호 상태 확인

# netstat -an | more

# netstat -ant

# netstat -anu

 

nmap을 이용한 사용 가능한 서비스 포트 번호 확인

# yum -y install nmap

# nmap localhost

 

<Window2008>

netstat를 이용한 서비스 포트 번호 상태 확인

C:\users\administrator>netstat -na

 

Ex4) TCP & UDP 패킷 캡처 및 분석

<Window2008>

와이어샤크 실행

 

  1. Windows2008 에서 Linux200으로 텔넷 접속 및 접속 해지 (Filter : tcp.port eq 23)
  2. Windows2008 에서 Linux200으로 FTP 접속 및 해지 (Filter : tcp.port eq 21)
  3. Windows2008 에서 Linux200으로 SSH 접속 및 해지 (Filter : tcp.port eq 22)
  4. Windows2008 에서 Linux200으로 HTTP 접속 및 해지 (Filter : ip.addr == 192.168.20.201 && tcp.port eq 80)
  5. Windows2008 에서 'nslookup www.google.com' (Filter : ip.addr == 192.168.20.201 && udp.port eq 53)