어제 만들던 코드는 완성됬다.
(내가 만든건아니지만 결국)
어제 만들던 원리 그대로 이어 붙였다.
(패킷 필터 결과화면)
위 화면은 python sniffer.py -p arp -s 192.168.3.18 -d 192.168.167 로 실행시킨 것이다.
옵션에 맞게 정상적으로 출력되는 것을 확인 할 수 있다.
이제 스니퍼 프로그램을 만드는데 있어서
패킷덤프 프로그램도 우리가 보기 편하게 만들었고,
ARP spoofing 할 수 있는 프로그램도 만들었다.
상대방의 패킷을 보려면, 스니핑을 하려면 지금까지 만든거로는 조금 부족하다.
왜냐하면
상대가 스니핑 당하는 것을 알아차리기 때문이다.
우리가 포워딩을 안해주기 때문에 상대 호스트는 나에게 패킷을 전송하고 있다.
그리고 그 결과를 못받고 있는 상황이다.
그러기 때문에 통신이 끊기게 되고 피해자는 알아차리게 된다.
더군다나 통신이 안되기 때문에 스니핑 할 수 있는 자료도 RST 패킷 , SYN 패킷등 이런거 밖에 볼수 없다.
(SYN, RST 패킷밖에 안보인다.)
위 결과 화면은 상대 호스트 ARP 테이블에서 게이트웨이를 스푸핑한 상태이다.
상대 호스트는 게이트웨이가 내 컴퓨터의 주소인 줄 알고 나에게 보내는 상황이다.
하지만 그에 대한 응답이 안오고 있다. ( 이유는 내가 지금 포워딩을 안해주고 있기 때문에 )
이렇듯, 포워딩을 해줘야 완벽한 스니핑을 할 수 있게 된다.
포워딩이란 상대 호스트의 패킷이 원래 가던 길로 내가 다시 보내줘야된다는 뜻이다.
정확한 뜻은 패킷이 목적지 까지 도착하도록 올바른 길로 보내는 것을 포워딩이라고 한다.
그렇기 때문에 들어온 패킷을 원래 보내려던 목적지 호스트의 맥주소를 참조해서 패킷을 새로 만들고 보내 줘야한다.
목적지 호스트의 맥주소를 알기 위해서 우리는 ARP 테이블을 사용할 것이다.
(우리의 ARP 테이블에 목적지가 있다고 가정했다.)
우리는 이 기능들을 subprocess 모듈을 이용해서 구현할 수 있다.
(subprocess)
subprocess에서 arp -a 명령어로 ARP 테이블을 확인 할 수 있는 화면이다.
(맥 주소를 구해내는 코드)
우리는 위의 방법으로 arp 테이블에서 목적지 호스트의 맥주소를 참조할 것이다.
(포워딩 부분 코드)
위의 코드로 생성을 했다.
하지만 여기서 문제가 있었다.
상대호스트에게 ARP 스푸핑을 하는데
내 컴퓨터의 ARP 테이블에도 영향이 간다는 것이다..
그래서 완벽하게 스니핑 프로그램을 완성하지 못했다.
지금 마주한 문제를 곰곰히 생각해봐야겠다.
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - Wireshark, checksum, Dos Attack (0) | 2017.01.02 |
---|---|
Network Hacking - ICMP (0) | 2016.12.31 |
Network Hacking - Packet Sniffer 만들기 (0) | 2016.12.28 |
Network Hacking - ARP Cache Poisoning(2) (0) | 2016.12.28 |
Network Hacking - ARP Cache Poisoning (2) | 2016.12.27 |