본문 바로가기

netfilter5

[Netfilter] MITM Tool With netfilter_queue ARP Spoofing과 IP Spoofing을 이용하여 MITM을 걸 수 있는 Tool을 개발하였습니다. 해당 Tool의 경우 공격자 (A-1), 외부 공격자 서버(A-2), 피해자(B), 통신 서버(C)로 환경이 구성되어 있을 경우 아래와 같이 동작합니다. ※ B C 통신을 B A-2 통신으로 변경할 수 있음 준비 과정 1. ARP Spoofing Tool 준비 ※ 저는 아래 포스팅에 있는 코드를 사용하였습니다. [Python Scapy] ARP Spoofing 구현 ARP Spoofing ARP Spoofing이란 ARP(Address Resolution Protocol)를 이용하여 공격 대상에게 공격자를 Gateway와 같은 다른 대상으로 속여 중간에서 패킷을 가로챔으로써 도청하거나 조작이 가능한.. 2022. 8. 28.
[Netfilter] IP Spoofing With netfilter_queue 현재 개인 프로젝트를 하고 있는데 ARP Spoofing과 netfilter_queue를 이용하여 MITM을 걸 수 있도록 Tool을 개발하고 있습니다. ARP Spoofing Tools에 대한 내용은 아래의 포스팅을 참고해주시기 바랍니다. [Python Scapy] ARP Spoofing 구현 ARP Spoofing ARP Spoofing이란 ARP(Address Resolution Protocol)를 이용하여 공격 대상에게 공격자를 Gateway와 같은 다른 대상으로 속여 중간에서 패킷을 가로챔으로써 도청하거나 조작이 가능한 공격 입니다... hacksms.tistory.com ARP Spoofing Tool(Python Scapy)과는 다르게 IP Spoofing 기능은 netfilter_queue.. 2022. 8. 28.
[Netfilter] netfilter_queue 사용 방법 netfilter_queue 설치 먼저 netfilter_queue를 사용하기 위해 linfnetlink와 libmnl을 설치해준뒤, libnetfilter_queue를 설치해줍니다. # Install libnfnetlink $ wget https://www.netfilter.org/pub/libnfnetlink/libnfnetlink-1.0.2.tar.bz2 $ tar -xf libnfnetlink-1.0.2.tar.bz2 $ cd libnfnetlink-1.0.2 $ ./configure $ make $ sudo make install $ cd.. # Install libmnl $ wget https://www.netfilter.org/pub/libmnl/libmnl-1.0.5.tar.bz2 $ ta.. 2022. 8. 28.
iptables와 netfilter에 대하여 netfilter netfilter란 Kernel에 존재하는 Network 관련 Framework로써 원하는 지점에서 Packet 제어를 위한 다섯 가지 Hook(지점)을 제공합니다. 다섯 가지 Hook은 지점에 따라 PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING 으로 불립니다. 각각의 Hook에 대한 간단한 설명은 다음과 같습니다. PREROUTING Network Interface를 통해 들어온 Packet을 가장 먼저 처리하는 Hook 외부 주소(IP)로 도착한 Packet을 내부 주소(IP)로 변경하기 위해 DNAT(Destination NAT) 사용 가능 INPUT Network Interface를 통해 들어온 Packet 중 실제 처리가 필요한 Packe.. 2022. 8. 23.
[Python Scapy] 3Way Handshake 시 RST를 자동으로 보내는 문제 해결 3way Handshake를 위해 Python의 Scapy Module로 SYN을 보내게 되면 서버로부터 SYN+ACK 응답을 받을 수 있는데 이때 OS에서 자동으로 RST를 보내 연결 작업을 끊어버립니다. 이에 대한 명확한 이유를 찾을 수는 없었는데, OS에서 예상하지 못한 3Way Handshake가 발생하면 자동으로 RST를 보내 연결을 끊어버리는 건 아닐까?라는 생각이 들었습니다. 이에 대한 우회 방안으로는 iptables을 이용하여 RST가 전송되지 못하도록 막는 방법이 있는 것 같습니다. (스마트하지 못한 방법.. ㅠㅠ) $ sudo iptables -A OUTPUT -p tcp --tcp-flags RST RST -s IP -j DROP 여담이지만, Python의 Scapy보다 C++의 Ne.. 2022. 8. 23.