베지밀
hping3 툴을 활용한 Kali Linux에서의 DoS 공격 실습 본문
Kali Linux와 Bee box 웹서버를 띄워서 DoS 공격 실습을 진행해보자.
실습은 동일한 host PC의 가상머신에서 NAT 네트워크로 진행했다.
0. 실습 구성


공격자(Kali Linux) : 192.168.46.130
희생자(Bee box) : 192.168.46.129
공격 툴 : nikto, hping3
1. 통신 확인

칼리에서 비박스 ip로 웹 접속이 잘 된 것을 확인했다.
2. nikto로 취약점 스캔

$ nikto -h <ip>

비박스의 접속 로그를 확인하면 칼리의 공격 내용을 확인할 수 있다.
3. 포트스캔

# hping3 --scan 1-1024 -S <ip>
위 명령을 통해 웹 서버의 열린 포트들을 확인할 수 있다.

서버에서 wireshark 확인 결과 포트 1번부터 순차적으로 SYN을 보내고 있다.
4. TCP SYN Flooding
# hping3 -S <ip> -p <포트> --flood
80포트로 대량의 SYN 패킷을 전송했다.

서버에서 netstat을 확인해보면 동일한 출발지의 여러 포트들과 수많은 SYN_RECV를 맺고 있다.
이번엔 출발지를 랜덤하게 변경해서 SYN FLOODING을 수행해보자.
# hping3 -S 192.168.46.129 -p 80 --flood --rand-source

전부 다 다른 출발지다.

htop으로 cpu 사용량을 확인해보면 3% 이하를 유지하는 평소와 달리 cpu 사용량이 70% 이상으로 급증한 것을 확인할 수 있다.
5. ICMP Flooding
# hping3 -1 <ip> -p 0 -i u1000
1초에 1000개씩 icmp 패킷(ping)을 보내도록 설정했다.

tcpdump로 확인 결과 빠르게 ICMP 패킷이 오가는 것을 확인했다.
6. LAND Attack
# hping3 -1 <victim ip> -d 65000 --flood -a <victim ip>
LAND Attack은 출발지 주소를 서버의 주소로 설정하여, 희생자가 자기 자신과 요청/응답을 보내도록 한다.

자기 자신과 icmp를 보내고 있다.
7. Teardrop
# hping3 --frag -d 120 -S 192.168.46.129 -p 80 --flood
teardrop은 패킷을 보낼 때 offset 값을 조작하여 서버가 패킷을 재조립하기 어렵게 만드는 공격이다.
--frag -d 120을 통해 IP Fragment 패킷을 120바이트로 분할하여 보낸다.

하나의 SYN에서 여러개의 패킷으로 분할된 것을 확인할 수 있다.
대표적인 몇 가지만 확인해보았다.
이 외에도 다양한 옵션으로 공격을 수행할 수 있다.