스니프( Sniff )
Packet sniffing
 - 남의 패킷을 가로채는 공격기법들
 - ARP Spoofing (ARP를 속여서 가로채는 것)
 = ARP Cache Poisoning 공격 기법

 - MITM ( Man In The Middle ) 중간자 공격

우리가 쓰고 있던 덤프 프로그램을 스니퍼 프로그램으로 만들어 보겠다.

우선 필요한건
1. 장치명을 매번 입력받는것
2. 원하는 패킷만을 보길 원한다.
  -> 소스코드를 수정하면서 확인했었다.
이다.

먼저, 실행인자를 이용해볼 것이다.
예를 들어



(ipconfig /all 옵션)



ipconfig 뒤에 붙는 옵션처럼
원하는 필터링의 옵션을 추가할 것이다.

스니핑 프로그램을 제대로 만들기 위해
먼저 패킷덤프 프로그램을 쓸모있게 만드는게 필요하다.

필요한 인자를 받아서 옵션을 만들것이다.
-> sys, optionparse  모듈이 파이썬에 이미 있다.
우리는 이것을 이용할 것이다.




(파이썬3의 optparse 모듈)



파이썬3의 optparse 모듈

인자를 받는 모듈을 이용해서
옵션을 5개 추가해 보았다.

옵션처리 방식(닉스계열 (유닉스, 리눅스))
#> python sniffer.py -t 192.168.3.88
       -p ARP    
       -s  (출발지 IP)
       -d (도착지 IP)

#> python sniffer.py --protocol ARP
       --target          (긴옵션)

* 필터링 룰을 넣어줄 것이다.
option
 -s : 출발지 ip 주소
 -d : 도착지 ip 주소
 -a : 출발지와 도착지 상관없이 필터링
 -p : 확인하고자 하는 프로토콜 타입
 -m : 동작모드(덤프/스니프)



(옵션 설정 코드)



(옵션이 입력된 것을 확인했다.)



-h 의 도움말 옵션까지 추가해 그럴싸한
프로그램으로 만들생각이다.



(usage를 추가하고 -h 인자를 추가한 코드)



(python test.py -h 를 입력하면 옵션이 나온다.)



우선
ARP 만 출력하는 모습을 보이겠다.

옵션 -p ARP 를 입력하면
ARP 만 나오게 하는 코드이다.



(옵션을 추가해서 조건을 걸은 코드)




(실행화면)



실행화면을 보면
ARP 패킷만 덤프되는  것을 확인 할 수 있었다.







+ Recent posts