파티에서 음악을 꺼서 잠을 잘 수 있게 한 방법
Source: Dev.to
올해 나를 가장 분노하게 만든 일 중 하나는 내 임시 피난처(내가 사는 집)에서 파티가 열렸고, 초대받지 못한 채 음악과 사람들의 노래방 노래를 늦게까지 견쳐야 했던 것이다. 이 모든 것이 타인의 순수한 고집 때문에 귀중한 수면 시간을 희생하게 만들었다.
그때 나는 내가 컴퓨터공학자라는 것을 떠올렸다. 디지털 예술에 대한 방대한 지식으로 무엇을 할 수 있을까 고민했고, 예전에 Bluesmack(블루투스 장치에 대한 서비스 거부 공격)를 수행하기 위한 스크립트를 시험해 본 적이 있다는 것을 기억했다. 첫 번째 생각은 해커로서의 힘을 발휘해 수신기를 직접 침묵시키는 것이었다. 하지만 라디오의 MAC 주소를 찾는 것은 불가능했다; 3시간 동안 실패한 탐색 끝에 스피커에서 유튜브 광고가 나오는 소리를 들었다.
그것이 모든 것을 바꾸었다. 그들은 블루투스에만 의존하는 것이 아니라 평범한 음악을 재생하기 위해 Wi‑Fi를 사용하고 있었다는 뜻이었다. 그 순간 나는 아직도 잠을 자려는 목표가 사라지지 않았다는 것을 깨달았다.
Source: …
1단계: 로컬 네트워크 탐색 및 인식
공격을 시작하려면 먼저 내 로컬 네트워크 지도가 필요했다. 첫 번째 단계는 라우터 IP를 식별하는 것이었다. 나는 다음 명령을 사용했다:
ip route show
이 명령은 시스템의 라우팅 테이블을 반환한다. 우리가 관심을 가져야 할 라인은 default via 로 시작하는 라인으로, 중앙 노드의 주소를 나타낸다:
예시 출력
default via 192.168.0.1 dev wlx88947e9b4dab proto dhcp metric 600
여기서 라우터가 IP 192.168.0.1임을 확인한다.
라우터 주소가 명확해지면, Nmap을 사용해 네트워크 구간( /24, 즉 .1부터 .254까지)에서 활성 장치를 스캔했다:
sudo nmap -sn 192.168.0.0/24
-sn 옵션은 Ping Scan을 의미하며, 포트 스캔을 깊게 수행하지 않고 켜져 있는 장치를 빠르게 탐지한다.
시도 1: ICMP 플러드 (Ping Flood)
용의자 목록을 손에 넣고 (내 PC와 라우터 제외), 스트리밍을 하고 있던 전화기를 확인했다. 첫 번째 조치는 Ping Flood였다:
sudo ping -f <IP_del_objetivo>
-f 옵션(플러드)은 시스템이 처리할 수 있는 한 빠르게 또는 응답이 돌아오는 즉시 ICMP 패킷을 전송한다. 이것을 여러 터미널에서 동시에 다른 의심되는 IP에 대해 실행했다. 음악에 끊김이 있었지만, 현대 라우터는 이러한 기본 트래픽을 우선순위 지정하거나 제한하는 메커니즘을 가지고 있어 스트리밍은 회복될 수 있었다.
시도 2: 중간자 공격 (ARP 스푸핑)
ARP 테이블 오염 기술을 사용하여 공격을 확장하기로 했습니다. 목표는 라우터가 내 PC를 전화기로, 전화기가 내 PC를 라우터로 인식하도록 속이는 것이었습니다.
두 개의 터미널에서 arpspoof 도구를 사용했습니다:
sudo arpspoof -i <interfaz> -t 192.168.0.109 192.168.0.1 # 전화기를 속임
sudo arpspoof -i <interfaz> -t 192.168.0.1 192.168.0.109 # 라우터를 속임
트래픽을 가로채면서 커널에서 패킷 포워딩을 비활성화(ip_forward=0)하여 내 PC를 데이터의 “블랙홀”로 만들었습니다. 하지만 무선 네트워크 카드가 패킷 양을 감당하지 못해 공격이 지속되지 못했습니다.
시도 3: 레이어 4 포화 (TCP SYN Flood)
이전 방법들이 실패하는 것을 보고, 더 거친 방법을 사용했습니다: hping3. 일반적인 ping(레이어 3)과 달리, 이 공격은 전송 계층(레이어 4)에 초점을 맞추며, 특히 TCP 프로토콜을 대상으로 합니다.
sudo hping3 -S -p 80 --flood 192.168.0.120
왜 이 방법이 작동했는가?
- 플러드 모드: 응답을 기다리지 않고 가능한 최대 속도로 패킷을 전송하여 대역폭을 포화시킵니다.
- SYN 플래그 (
-S): 연결 시작 요청을 보냅니다. 피해자의 장치는 내가 시작하는 각 가짜 연결을 위해 메모리를 할당해야 합니다. 이러한 요청을 수백만 개 받으면 전화기의 프로세서가 모든 요청을 처리하려다 붕괴합니다. - 포트 80: 웹 브라우징의 표준 포트를 공격함으로써, 장치는 트래픽을 쉽게 무시할 수 없습니다.
결과는 즉각적이었습니다: 손님들의 전화는 YouTube 연결을 유지할 자원이 부족해졌습니다. 음악은 완전히 끊겼고, 연결이 없다는 좌절감에 결국 라디오를 끄게 되었습니다. 승리는 제 것이었습니다. 악당처럼 웃습니다.