저는 Snort에 익숙해지려고 노력하고 있으므로 3개의 VM을 설정했습니다. Snort를 설치한 XAMPP와 Ubuntu가 설치된 Windows 머신인 Kali.
나는 Afpacket 인라인 모드에서 Snort를 실행하고 있다고 생각합니다. Snort가 시작될 때마다 "인라인 작업 활성화 - IDS 모드에서 실행"이라는 메시지가 표시됩니다.
Windows 시스템에는 사용자 이름이 "John"이고 비밀번호가 123456인 FTP 서버가 있습니다. Kali에서 Ncrack을 이용해 서버를 공격했는데 약 2분만에 비밀번호를 알아낼 수 있었습니다. 나는 공격을 차단하고 실제 사용자(로그인하려는 호스트)와 공격자를 구별할 수 있도록 노력하고 있습니다. 내 계획은 다음과 같은 규칙을 만드는 것입니다. "서버가 1초 내에 5회 이상의 로그인 시도를 받으면 패킷/시도를 삭제합니다."
많이 검색했는데 이번 주에 많은 시간을 보냈는데 올바른 규칙을 찾을 수 없습니다.
추천 메뉴가 무엇인가요? 어떤 규칙을 시도해야 합니까? 내가 뭐 잘못 했어요? 감사해요
내가 지금까지 시도한 것 :
Alert tcp any any -> $HOME_NET 21 (msg: "수신되는 FTP 연결"; 플래그:S; sid:10000010;) #alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg: "수신되는 SSH 연결"; GID:1 ; sid:10000012; rev:001;) #drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"FTP 로그인 오류"; 내용:"530 로그인"; nocase; 흐름:from_server,build; 클래스 유형:잘못됨 -알 수 없음 ; 임계값: 둘 다 입력, 추적 기준: 5, 초 sid: 491 ;)
#alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg: "가능한 FTP 무차별 공격"; 메타데이터: 서비스 ftp-data; 세션:바이너리; sid:10000011; rev:001;)
#drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"FTP 무차별 대입 공격 시도"; 내용:"530 잘못된 로그인 또는 비밀번호!"; nocase; 흐름: 상태 비저장; 임계값: 둘 다 유형, 추적 by_dst, 개수 3 , 두 번째 1; sid: 10000012;
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP 수신 연결"; 플래그:S; 임계값: 둘 다 입력, 추적 by_src, 개수 3, 초 1; sid:100000011; rev:1;)
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"프로토콜-FTP 사용자 오버플로 시도"; 흐름:to_server,builded; content:"USER",nocase; isdataat:100,relative; pcre:"/^USER( ?!\n)\s[^\n]{100}/smi"; 메타데이터: 정책 max-Detect-ips 삭제, 규칙 세트 커뮤니티; 참조: bugtraq,1>
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"Protocol-FTP PASS 오버플로 시도";flow:to_server,builded; content:"PASS",nocase; isdataat:100,relative; pcre:"/^PASS( ?!\n)\s[^\n]{100}/smi"; 메타데이터: 정책 max-Detect-ips 삭제, 규칙 세트 커뮤니티 참조: bugtraq,1>
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg: "Protocol-FTP ProFTPD 사용자 이름 sql 주입 시도"; 흐름: to_server, 설정; 콘텐츠: "|25 27|", fast_pattern, nocase; 콘텐츠: "USER "; pcre:"/USER\s*[^\x0d]+\x25\x27/smi"; 메타데이터: 정책 max-Detect-ips drop; 참조:> #drop tcp $HOME_NET 21 -> $EXTERNAL_NET any ( msg: " FTP 로그인 실패"; 콘텐츠: "530 로그인"; nocase; 흐름:from_server,builded; 임계값: 모두 유형, 추적 by_dst, 개수 10,초 15; sid:10000011; ) #drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg: "FTP 로그인 성공"; 내용: "PASS"; nocase; 오프셋: 0; 깊이: 4; 내용: "|0a|"; 범위: 3; 프로세스: from_client, 설정됨; 임계값: 둘 다 입력, 추적 by_dst , 카운트 10, 초 sid: 10000012;
tcp $HOME_NET any -> $EXTERNAL_NET any (msg: "BLEEDING-EDGE-SCAN 잠재적인 FTP 무차별 대입 시도"; flow:from_server,builded; content: "530 "; pcre: "/^530\s+(Login| User ) /smi"; 클래스 유형: 실패한 사용자; 임계값: 유형 임계값, 추적 기준_dst, 카운트 5, 초 30; sid: 2002383; rev: 3;)
#alert tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"ET SCAN 잠재적인 FTP 무차별 대입 시도"; 흐름:from_server,builded; dsize:<100; 콘텐츠:"530 "; 깊이:4; pcre:"/ 530 \s+(Login|User|Failed|Not)/smi"; classtype:unsuccessful-user; 임계값: 동시 입력, by_dst 추적, 5초, 30초; 참조: url,doc.emergingthreats.net/2002383; 참조: URL , www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/SCAN/SCAN_FTP_Brute_Force sid: 2002383;)
위의 대부분은 로그와 함께 제공되며 일부 덩어리가 있다고 생각하지만 실제로 원하는 것은 아닙니다.