Shine's dev log

[네트워크보안] Sniffing(스니핑) - tcpdump 본문

보안

[네트워크보안] Sniffing(스니핑) - tcpdump

dong1 2020. 8. 27. 15:27

1. tcpdump란?

 

리눅스에서 제공하는 패킷 분석툴로, 네트워크 인터페이스를 통해 지나가는 패킷을 분석해준다. 특정 조건을 통해 더 쉽고 효율적으로 패킷 분석을 할 수 있다.

 

패킷 캡처를 해주는 대표적인 프로그램으로는 와이어샤크가 있는데, tcpdump도 잘 사용할 줄 안다면 리눅스 환경에서 패킷 분석을 잘 할 수 있다.

 

앞서 말했듯이 tcpdump에는 여러가지 옵션을 설정해줄 수 있다. 특정 포트에 해당하는 패킷만 필터링 해줄수도 있고, 더 보기 편하게 표시해주는 옵션도 있다. (자세한 옵션은 위키백과를 참조하자 : https://ko.wikipedia.org/wiki/Tcpdump)

 

 

2. tcpdump로 Telnet 로그인 정보 확인하기

 

자 이제 tcpdump가 패킷 분석툴인것은 알겠다. 이제 예시를 통해 tcpdump가 어떻게 활용될 수 있는지 살펴보자. 예시 상황은 다음과 같다.

 

다른 클라이언트가 호스트 컴퓨터에 telnet으로 로그인을 시도하는 경우, telnet 패킷을 분석하여 로그인 정보 알아내기

 

먼저, tcpdump 프로그램을 실행시켜야 한다. 기본적으로 리눅스에 설치가 되어있을 것이지만, 만약 설치가 안되있는 경우 apt install tcpdump 명령으로 쉽게 설치할 수 있다.

 

tcpdump 실행. telnet 포트인 23번만 열어두었다.

 

위의 그림은 호스트 컴퓨터에서 tcpdump를 실행시킨 모습이다. 우리는 telnet 관련 패킷만 분석하면 되므로, 포트는 23번(telnet 포트번호) 옵션을 켜준 것을 확인할 수 있다.

 

클라이언트가 telnet에 연결

 

위의 그림은 클라이언트에서 telnet을 통해 호스트에 로그인하려는 모습이다. 이때 클라이언트가 ID와 패스워드를 입력하게 된다.

 

호스트에서 telnet 패킷을 캡처

 

이 때 호스트 컴퓨터에서는 tcpdump가 실행되고 있으므로 telnet 관련 패킷들이 잡히기 시작한다. telnet은 따로 암호화를 하지 않기 때문에 평문이 그대로 노출된 것을 확인할 수 있다.

 

tcpdump로 아이디 확인

 

tcpdump로 패스워드 확인

 

위의 그림들은 tcpdump로 클라이언트의 로그인 시도 패킷을 확인하는 과정이다. 보다시피 아이디와 패스워드를 패킷에서 추출해낼 수 있다.

 

 

오늘 배운 내용을 정리해보면,

 

1. tcpdump는 패킷분석 툴이다. (와이어샤크와 유사)

 

2. tcpdump의 여러 옵션을 통해 다양한 기능을 수행할 수 있다.

 

 

위 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.