[ 1) TCP Dump ]
> Linux에서 가장 기본이 되는 강력한 스니핑 도구
> 처음에는 네트워크 관리를 위해 개발되었기 때문에 관리자 느낌이 강함
> *Snort라는 *IDS의 기반 도구
> TCP Dump로 획득한 증거 자료는 법적 효력이 있음
* Snort?
> 리눅스에서 작동하는 *NIDS (최근에는 Windows에서도 구동 가능)
* IDS?
> 침입 탐지 시스템(Intrusion Detection System)
> 방화벽이 막을 수 없거나 차단에 실패한 공격을 탐지하여 관리자에게 알려주는 역할
* NIDS?
> Network Intrusion Detection System, 네트워크 침입 탐지 시스템
[ 실습 - TCP Dump로 계정 및 패스워드 스니핑 ]
> 실습 환경 :
- Host A (Client) : Ubuntu Desktop (Ubuntu 20.04 LTS)
- Host B (Server) : Kali Linux (Kali GNU/Linux Rolling)
1) TCP Dump 설치
Host A에서 TCP Dump를 아래와 같은 명령으로 설치합니다.
sudo apt-get install tcpdump
2) TCP Dump 실행
Host A에서 TCP Dump를 아래와 같은 명령으로 실행합니다.
sudo tcpdump -i [NIC이름] -xX host [통신상대주소]
( i 옵션 : Interface 지정 )
( xX 옵션 : 각 패킷 값을 Hex코드와 ASCII코드 형태로 출력 )
( host 옵션 : 통신 상대 지정 )
( 위 명령에 들어갈 NIC 이름은 명령을 실행하는 해당 OS의 NIC 이름입니다 )
저는 통신상대 (서버, Kali)의 주소가 192.168.100.132이기 때문에 아래와 같이 명령을 사용하겠습니다.
sudo tcpdump -i ens33 -xX host 192.168.100.132
( -i ens33 : 패킷을 수집할 인터페이스를 ens33으로 지정 )
( -xX : 각 패킷 값을 Hex Code와 ASCII Code로 출력 )
( host 192.168.100.132 : host 192.168.100.132와의 통신 패킷을 수집 )
3) 텔넷 접속
이제 Host B에서 Host A로 Telnet 접속을 해줍니다.
telnet [서버IP]
저는 연결하고자 하는 서버(Host A)의 IP가 192.168.100.138로 되어있기 때문에, 아래와 같이 명령을 사용하겠습니다.
telnet 192.168.100.138
오류: [ telnet: Unable to connect to remote host: Connection refused ]
만약 위와 같은 오류가 나올 시, 텔넷 서버 (Host A)의 포트가 오픈상태인지 확인해줘야 합니다.
nmap 명령어로 포트스캔 시 tcp 23번의 telnet 포트가 아래의 예시처럼 open상태(state)여야 합니다.
┌──(root㉿kali)-[~/Desktop]
└─# nmap 192.168.100.138
( ... )
PORT STATE SERVICE
23/tcp open telnet
( 아래의 방법들로 telnetd 먼저 업그레이드하는 것을 추천드립니다 )
sudo apt-get install telnetd
sudo apt-get upgrade telnetd
4) 텔넷 패킷 분석
아래처럼 특정 파일에 결과를 리다이렉션하여 해당 파일을 편집기(vi나 nano 등)로 열어서 보면 보다 편합니다.
sudo tcpdump -i ens33 -xX host 192.168.100.132 >> tcpdump_logfile
아래의 예시 패킷에서는 user-vm.login 이 보입니다.
(user-vm은 제 hostname입니다. 프롬프트 혹은 hostnamectl 명령어로 hostname을 확인할 수 있습니다.)
해당 패킷은 아이디 입력을 요청하는 패킷입니다.
해당 패킷 아래의 패킷들을 찾아보면 클라이언트에서 서버로 ACK 를 전송하는 패킷,
아이디의 글자단위로 클라이언트에서 서버, 서버에서 클라이언트로 전송되는 패킷들을 확인할 수 있습니다.
아래의 패킷은 Password를 요청하는 패킷입니다.
해당 패킷 아래의 패킷들을 찾아보면 역시 마찬가지로 패스워드의 글자단위로 클라이언트와 서버가 패킷을 주고받습니다.
'[네트워크] 컴퓨터 네트워크' 카테고리의 다른 글
[네트워크] 스위칭 환경에서의 스니핑 (실습) (2) | 2022.09.23 |
---|---|
[네트워크] 스니핑 공격 툴_2 - fragrouter, DSniff (실습) (2) | 2022.09.19 |
[네트워크] 스니핑, Promiscuous Mode 변경 실습 (2) | 2022.09.17 |
[네트워크] SNMP_2 (실습) (0) | 2022.09.16 |
[네트워크] 방화벽 탐지, SNMP (0) | 2022.09.15 |