2024. 2. 7. 22:44ㆍInformation Security 정보보안/Network Security 네트워크 보안
배울 내용:
와이어샤크
WireShark
패킷 스니핑
packet sniffing
TCPDUMP
패킷 리스트(packet list)
패킷 디테일(packet detail)
패킷 데이터(packet data)
리눅스 프로미스큐어스 모드
promiscuous mode
MITM 공격
네트워킹 해킹
Sniffing (스니핑)
우리는 위에같이 패킷을 엿듣거나 훔쳐보는 방법을 패킷분석이라고도 한다
또한 수동적 또는 소극적 공격 (Passive Attack) 이라고도 한다
그외에 나머지 공격들은 능동적 또는 적극적 공격(Active Attack) 이라고한다
제 3 자로서 중간에 껴서 엿듣는 것이기 떄문에 MITM(Man In The Middle) 공격중 하나인걸 알수있다.
Sender(송신자) 가 A 컴퓨터에 패킷을 보내면 보내지고
그외에 B 컴퓨터나 C 컴퓨터는 Packet이 Drop 되야하지만
C 컴퓨터는 인터페이스모드가 Promiscuous 모드 이기때문에
Sender(송신자)가 A컴퓨터에게 보내는 패킷을 동일하게 받아온다 .
와이어샤크 (WireShark)
1 번 : 디스플레이 필터
2 번 : 인터페이스
3 번 : 캡쳐 필터
디스플레이 필터는 이미 캡처된 패킷을 분석할 때 적용되고, 캡쳐 필터는 패킷을 실제로 캡처할 때 적용된다.
- 디스플레이 필터:
- 디스플레이 필터는 이미 캡처된 패킷을 보는 동안에만 적용
- 이 필터는 사용자가 실시간으로 네트워크 트래픽을 모니터링하거나, 이미 저장된 패킷을 분석할 때 적
- 주로 사용자가 관심 있는 패킷만을 보기 쉽게 필터링하기 위해 사용
- 캡쳐 필터:
- 캡쳐 필터는 패킷을 캡처하는 시점에서 적용
- 이 필터는 네트워크 인터페이스로 들어오는 모든 트래픽에 대한 캡처를 제어
- 주로 사용자가 캡처할 패킷의 유형을 제한하거나, 네트워크의 특정 부분만을 캡처하기 위해 사용
패킷 리스트 (Packet List)
위에보이는 순서대로 패킷리스트에 대한 정보이다
- NO (번호): 각 패킷에 할당된 고유한 번호입니다. 보통 패킷이 캡처된 순서대로 번호가 매겨집니다.
- Time (시간): 패킷이 캡처된 시간을 나타냅니다. 이는 패킷이 네트워크에서 보내진 시간을 기준으로합니다.
- Source (출발지): 패킷의 출발지 IP 주소 또는 호스트 이름을 나타냅니다.
- Destination (목적지): 패킷의 목적지 IP 주소 또는 호스트 이름을 나타냅니다.
- Protocol (프로토콜): 패킷에 사용된 프로토콜을 나타냅니다. 예를 들어 TCP, UDP, ICMP 등이 있습니다.
- Length (길이): 패킷의 길이를 바이트 단위로 나타냅니다. 이는 패킷에 포함된 데이터의 크기를 의미합니다.
- SPort (출발지 포트): TCP 또는 UDP 패킷의 출발지 포트 번호를 나타냅니다.
- DPort (목적지 포트): TCP 또는 UDP 패킷의 목적지 포트 번호를 나타냅니다.
- Info (정보): 패킷에 대한 추가 정보를 제공합니다. 이는 패킷의 내용이나 특성에 대한 간략한 설명일 수 있습니다.
패킷 디테일 (Packet Detail )
패킷리스트 바로 아래있는 패킷디테일이 있다
이는 패킷리스트 하나 클릭했을때 하나하나 자세하게 설명되있는 창이다
Frame 1 2계층
Ethernet 2계층
------------------------- 위에까지가 링크 계층 , 아래부터는 네트워크 계층
Internet Protocol Version 3계층
User Datagram Protocol 4계층
Domain Name System
이러한 계층들 정보들의 세부정보를 알수있다 .
패킷 데이터 (Packet Data )
Hex 값으로 되어있지만 풀어보면 위에 값이랑 동일하다
이런형태로 패킷 분석기 (wireshark) 가 GUI 형태로 만들어져있다
당연히 CLI 형태로도 TCPDUMP 가 있다
그러면 스니핑 공격하고 Wireshark 가 무슨관련일까?
말그대로 WireShark 가 중간에서 패킷을 다 보고있기 떄문에 WireShark 자체가 하나의 스니핑 공격도구이자 공격자이다.
이를 확인하기위해 Wireshark 를 실행하고 감지 시작 누른뒤에
Kali에서 Telnet 으로 CentOs 를 연결한다
이렇게 Telnet 이란 Protocol 로 연결한게 보이고 패킷 리스트에서 Telnet 패킷하나를 오른쪽 마우스 클릭한뒤
" Follow TCP Stream" 누르면 아래처럼 나온다 (보통 TCP 스트림이라 불림)
여기서 ID 를 test 를 입력했었고 비밀번호를 123456 으로 입력했던걸 볼수있다
이는 WireShark 가 MITM 공격인 sniffing 공격중 가장 많이 쓰이는 Wireshark 도구로 공격을 진행한것이다 .
tt ee ss 처럼 2 개가 되는 이유는 반향해서 2문자씩 나오는 Telnet의 동작 방식의 특징이있다.
즉 , 사용자가 입력한 문자가 서버로 전송되고, 서버가 응답으로 다시 문자를 전송합니다.
이 때 반향 현상으로 인해 사용자가 보내는 문자열이 클라이언트에서 두 번 표시된다
물론 SSH 로는 암호화가 되어있기에 아무것도 안보이게 된다
TCP DUMP
와이어샤크말고 CLI 환경에서는 TCP DUMP 로 sniffing 공격 할수있다고 위에서 말했다
tcpdump -i eth0 -w tcpdump.log -s 1500 tcp port 21
<옵션>
-i : 인터페이스 지정
-s : 패킷 크기 지정
tcp port 21 : 21번 포트 지정 (telnet 할꺼면 23 하면됨)
이렇게 해놓고 새창한개 더열어서
한번 연결해서 명령어 입력도 해보고 그뒤에 tcpdump 했던 창을 키고 Ctrl+ C 로 저장해주고
#tcpdump -Xnqr tcpdump.log 이렇게 열람한다
- -X: 패킷의 내용을 보다 상세하게 확인
- -n: 호스트 이름이나 서비스 이름 대신 IP 주소와 포트 번호가 숫자 형태로 표시
- -q: 간단한 출력 형식을 사용, 헤더 정보가 더 간결하게 표시
- -r tcpdump.log: tcpdump.log라는 파일에서 저장된 패킷을 읽어들여서 분석
그러나 wireshark 에서 파일 열기로 tcpdump.log 파일을 열면
보기처럼 아주 쉽게 볼수있음!
그럼 20000