2023. 12. 7. 17:37ㆍNetwork
Suricata를 이용하여 xerosploit DoS 공격 탐지해 보자
suricata는 우분투리눅스 환경에서 사용하고
xerosploit dos 공격은 칼리리눅스 환경에서 하겠다
우분투 ip: 192.168.239.128 (클라이언트)
칼리 ip: 192.168.239.130 (공격자)
suricata 설치와 사용법은 https://ko.linux-console.net/?p=3558
xerosploit 설치와 사용법은 https://blog.naver.com/wnstj7798/221776994912
/etc/suricata/suricata.yaml 경로에서 패킷을 탐지만 하기위해
runmode를 ids 모드로 바꿔준다
(runmode default값이 ids 모드로 동작하기 때문에 안바꿔도 된다)
우분투에서 suricata -c suricata.yaml -i ens33 명령어 입력
-c 옵션 뒤에 나오는 경로는 suricata가 설정을 찾을 파일의 위치다
suricata.yaml 파일이 현재 디렉토리에 있어야한다
-i ens33 은 suricata가 감시할 네트워크 인터페이스다
룰 셋팅은 기본 suricata 룰로 적용해보았다
아래는 suricata 룰에 적용된 패턴이다
Suricata 룰은 대부분 패킷의 헤더 필드와 페이로드에 대한 내용을 이용하여 패턴 매칭을 한다
칼리에서 xerosploit 실행
scan 명령어로 같은 공간에 있는 네트워크를 스캔해준다
공격자의 IP와 MAC주소가 나온다
확인 결과 192.168.239.128 의 우분투 ip 확인
공격당할 우분투 ip를 입력해준다
공격 모듈을 dos로 선택 후
실행(run)
우분투의 /var/log/suricata/fast.log 경로에 로그가 잡힐 것이다
실시간으로 확인하기위해 tail -f /var/log/suricata/fast.log 입력
tail -f 명령어는 실시간으로 바뀌는 파일을 출력
위에처럼 dos 공격을 받아
우분투 suricata 로그파일에 패킷이 많아지는 것을 확인
하지만 xerosploit에서 공격한 패킷 말고도 모든 패킷이 잡히기 때문에
xerosploit에서 공격하는 패킷을 분석해서 패턴을 찾아 룰을 직접 만들어보자
아래는 xerosploit로 dos공격을 받았을때
wireshark로 패킷을 캡처한 것이다
위에 사진을보면
출발지 ip는 전부 다른데 포트만 1씩 올리고 FTP 서비스를 사용한다
16진수 58이 연속적으로 나와
XXXXXXXXXXXX..... 와같은 특정 시그니처가 보인다
아래는 suricata rule 구조이다
룰 헤더 | 옵션 | ||||||
Action | Protocol | SrcIP | SrcPort | -> | DstIP | DstPort | Option |
suricata rule 구조에 맞게 test.rules를 만들어 보았다
alert tcp any any -> $HOME_NET 21 (msg:"FTP_dos"; sid:1000002; rev:1; content:"|58 58 58 58 58 58 58 58 58 58 58 58 58|";)
alert - 경고 발생 및 로그 기록
tcp - TCP 탐지
출발지 ip와 포트는 공격자로 부터 ip와 포트번호가 계속 바뀌기 때문에 any로 설정
도착지 ip는 공격당하는 우분투 자신의 ip와 포트는 FTP 로 들어와서 21번 설정
content:"|58 58 58 58 58 58 58 58 58 58 58 58 58|" 로 16진수 58을 탐지
새로 만든 tests.rules 룰을 적용 후 xerosploit 공격
/var/log/suricata/fast.log 로그를 확인해보니
정상적으로 잡혔다