Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sniffles — Sniffles: IDS 및 정규 표현식 평가를 위한 패킷 캡처 생성기 | Kitploit
도구/GitHubGitHub/petabi/sniffles
Packet Sniffing & AnalysisIDS/IPS EvasionFuzzingNetwork SecurityPenetration TestingIntrusion Detection
GitHubpetabi/sniffles

sniffles

Sniffles: IDS 및 정규 표현식 평가를 위한 패킷 캡처 생성기

저장소 보기
652577년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Sniffles--IDS 및 정규 표현식 평가를 위한 패킷 캡처 생성기

Sniffles는 고정 패턴이나 정규 표현식을 사용하여 의심스러운 행동을 탐지하는 IDS를 테스트하기 위한 패킷 캡처를 생성하는 도구입니다. Sniffles는 매우 간단하게 작동합니다. 정규 표현식 또는 규칙 집합을 가져와 무작위로 하나의 정규 표현식 또는 규칙을 선택합니다. 그런 다음 해당 규칙 또는 정규 표현식을 기반으로 콘텐츠를 생성합니다. 고정 문자열의 경우 문자열을 데이터에 직접 추가하는 것을 의미합니다(오프셋 또는 Snort 규칙의 다른 옵션과 함께). 정규 표현식의 경우 프로세스는 다소 복잡합니다. 정규 표현식은 NFA로 변환되고 NFA를 통해 무작위 경로가 선택됩니다(시작부터 끝까지). 결과 데이터는 정규 표현식과 일치합니다. 마지막으로 Sniffles는 전체 일치 또는 부분 일치로 설정할 수 있습니다. 전체 일치의 경우 패킷 데이터는 적어도 하나의 규칙 또는 정규 표현식과 절대적으로 일치합니다(일부 Snort 옵션은 완전히 고려되지 않음). 부분 일치는 일치하는 문자 시퀀스의 마지막 문자를 일치하지 않아야 하는 시퀀스로 지웁니다(다른 규칙과 일치할 수 있음). 일치하는 규칙은 IDS에 가장 큰 부담을 줄 것입니다. 따라서 IDS가 최악의 트래픽을 얼마나 잘 처리하는지 확인할 수 있습니다. 부분 일치 트래픽은 일치 트래픽만큼 많은 부담을 줄 것입니다. 마지막으로 Sniffles는 완전히 무작위 데이터를 가진 트래픽을 생성할 수도 있습니다. 이러한 무작위 데이터는 최상의 시나리오를 제공합니다. 무작위 데이터는 어떤 규칙과도 일치할 가능성이 매우 낮기 때문입니다. 따라서 최대 속도로 처리할 수 있습니다. 따라서 Sniffles는 IDS 심층 패킷 검사의 최상의 및 최악의 작동을 위한 패킷 캡처 생성을 허용합니다.

위에 추가하여 Sniffles는 평가 패킷 캡처를 생성하는 기능도 있습니다. 평가 패킷 캡처에는 두 가지 유형이 있습니다. 첫 번째 평가 패킷 캡처는 각 규칙 또는 정규 표현식에 대해 순서대로 정확히 하나의 패킷을 생성합니다. 따라서 각 규칙이 예상대로 일치하는지 테스트하고 확인할 수 있습니다. 전체 평가는 한 단계 더 나아가 정규 표현식의 모든 가능한 분기에 대한 패킷을 생성합니다. 단일 정규 표현식은 수천 개의 가능한 분기를 가질 수 있습니다. 이는 정규 표현식의 모든 가능한 분기가 제대로 처리되는지 확인합니다. 평가 패킷 캡처는 모든 패킷과 일치해야 합니다. 일치하지 않는 패킷은 IDS의 실패를 나타낼 가능성이 높으며 추가 조사가 필요합니다. 물론 Sniffles가 특정 IDS에 대해 올바른 패킷을 생성하지 않거나 규칙의 특정 옵션을 인식하지 못할 가능성도 있습니다. 지원되는 규칙 기능에 대한 자세한 내용은 지원되는 규칙 기능을 확인하십시오.

마지막으로 Sniffles는 무작위 네트워크 트래픽을 생성하는 데 많은 도움을 줄 수 있습니다. 기본적으로 무작위 트래픽은 TCP, UDP 또는 ICMP이며 단방향입니다. 그러나 각 스트림에 대해 ACK, 핸드셰이크 및 종료가 포함된 TCP 트래픽을 생성할 수도 있습니다. 올바른 시퀀스 번호와 체크섬을 생성합니다. 또한 MAC 주소는 원하는 분포에 따라 설정할 수 있으며 IP 네트워크 주소는 홈 및 외부 주소 공간으로 정의할 수 있습니다. 또한 트래픽 캡처 내에서 스캔을 시뮬레이션하는 것도 가능합니다.

설치

필요 사항: Python 3.3+ 및 SortedContainers 모듈

Sniffles는 다음 파일로 구성됩니다:

  • rulereader.py: 규칙 파서.
  • ruletrafficgenerator.py: 콘텐츠 스트림을 생성하는 도구.
  • sniffles.py: 프로세스를 관리하는 주 프로그램.
  • sniffles_config.py: 명령줄 입력 및 Sniffles 옵션을 처리합니다.
  • traffic_writer.py: 패킷을 pcap 호환 파일에 씁니다. libpcap이 필요하지 않습니다.
  • vendor_mac_list.py: 임의로 결합된 옥텟 대신 반현실적인 MAC 주소를 생성하는 데 사용되는 MAC 조직 고유 식별자를 포함합니다.
  • examples/vendor_mac_definition.txt: 부분 또는 전체 MAC 주소의 분포를 정의하기 위한 선택적 파일.
  • pcre 파일 (pcre_chartables.c pcre_compile.c pcre_globals.c pcre_internal.h pcre_newline.c pcre_tables.c pcre.h pcrecomp.c pcreconf.py ucp.h).
  • nfa.py: NFA를 탐색하기 위한 파일.
  • regex_generator.py: 무작위 정규 표현식을 생성하는 코드.
  • rand_rule_gen.py, feature.py, rule_formats.py: 무작위 규칙 집합을 생성하기 위한 모듈.

설치하려면:

  1. 최상위 디렉토리로 이동합니다.
  2. python3.x setup.py install을 입력합니다.
  3. 그러면 애플리케이션이 시스템에 설치됩니다.

설치 참고 사항:

  1. Windows에서 테스트되지 않았으며 Linux에서도 테스트되지 않았습니다. FreeBSD 및 Mac OS X에서 테스트되었습니다.
  2. 로컬로 빌드하려면 python3.x setup.py build를 사용한 다음 라이브러리 디렉토리로 이동하여 lib를 찾아 python3.4 -c "from sniffles import sniffles; sniffles.main()"을 사용하여 로컬로 실행합니다.

지원되는 형식:

  • Snort: Snort 경보 규칙(규칙은 Alert 지시문으로 시작해야 함). 콘텐츠 태그는 인식되고 올바르게 구문 분석됩니다. PCRE 태그도 마찬가지로 올바르게 구문 분석됩니다. HTTP 태그는 연속적으로 처리되므로 원하는 패킷을 생성하지 못할 수 있습니다. 콘텐츠(및 PCRE 또는 HTTP 콘텐츠)는 distance, within 및 offset으로 수정할 수 있습니다. 규칙은 흐름 제어 옵션을 사용할 수 있지만 데이터의 방향만 여기에서 파생됩니다. nocase 옵션은 무시되고 제시된 대소문자가 사용됩니다. 다른 모든 옵션은 무시됩니다. 헤더 값이 구문 분석되고 해당 값을 충족하는 패킷이 생성됩니다. 홈 및 외부 네트워크 주소 공간이 사용되는 경우 각각 $HOME_NET 및 $EXTERNAL_NET 변수에 대해 올바른 공간이 사용됩니다. 예:

    alert tcp $EXTERNAL_NET any -> $HOME_NET 8080 (msg:"SERVER-APACHE Apache Tomcat UNIX platform directory traversal"; flow:to_server; content:"/..|5C|/"; content:"/..|5C|/"; http_raw_uri;

  • 정규 표현식: 한 줄에 하나의 원시 정규 표현식으로 abc 또는 /abc/i 형식으로 작성됩니다. 현재 i, s, m 옵션을 지원합니다. 다른 옵션은 무시됩니다. 예:

    /ab*c(d|e)f/i

  • 아래 설명된 Sniffles 규칙 형식.

명령줄 옵션:

  • -a TCP Ack: 전송된 모든 데이터 패킷에 대해 TCP 확인 응답을 보냅니다. 기본적으로 꺼져 있습니다. 확인 패킷은 기본적으로 데이터가 없습니다.

  • -b 양방향 데이터: TCP 스트림의 양방향으로 데이터가 생성됩니다. ACK가 켜집니다. 이 기능은 기본적으로 꺼져 있습니다.

  • -B [백그라운드 트래픽 프로토콜:백분율]: 1에서 100 사이의 값을 가진 프로토콜을 하나 이상 설정하여 백그라운드 트래픽을 생성합니다. 이 값은 전체 트래픽 양의 백분율을 나타냅니다. 사용 가능한 프로토콜: FTP, HTTP, IMAP, POP 및 SMTP. 예: "http:20,ftp:30,smtp:10". 인수 값으로 숫자 하나만 입력하면 무작위로 트래픽이 생성됩니다. 예: "80".

  • -c 개수: 생성할 스트림 수입니다. 각 스트림은 최소 1개의 패킷을 포함합니다. 패킷은 규칙에 의해 정의되거나 무작위로 선택된 두 엔드포인트 사이에 있습니다. tcp_handshake, tcp_teardown 및 packets_per_stream은 스트림당 패킷 수를 늘립니다. 현재 스트림의 데이터는 한 방향으로만 흐릅니다. -b 옵션을 사용하면 데이터가 양방향으로 흘러야 합니다. 또한 Sniffles 규칙은 데이터가 양방향으로 흐르도록 지정할 수 있습니다.

  • -C 동시 흐름: 한 번에 열릴 흐름의 수입니다. 최선의 노력으로, 지정된 동시 흐름 수보다 흐름이 적으면 현재 흐름을 모두 사용합니다. 예를 들어, 흐름이 1000개만 남아 있지만 동시 흐름 수가 10000으로 설정된 경우에도 당시에는 1000개의 흐름만 기록됩니다. 기본값은 1000입니다. 기간과 함께 사용하면 -C 흐름이 전체 기간 동안 유지되며 궁극적으로 -c의 입력을 무시합니다. 참고, 이것의 목적은 동일한 흐름의 패킷이 서로 바로 옆에 있지 않고 분산되도록 하고 많은 동시 흐름의 환상을 만들기 위해 다양한 pcap을 생성하는 것입니다. 테스트에서 메모리가 문제가 되기 전까지 최대 200-300만 개의 동시 흐름을 관리했습니다. 또한 스트림 간의 다른 대기 시간으로 인해 일부 흐름이 다른 흐름보다 일찍 종료될 수 있습니다.

  • -d 규칙 디렉토리: 규칙 파일이 포함된 디렉토리 경로입니다. 디렉토리의 모든 규칙 파일에서 활성화된 모든 규칙을 읽습니다. 모든 규칙의 확장자는 .rules라고 가정합니다. 이 옵션 또는 -f를 사용하되 둘 다 사용하지 마십시오. # 기호는 규칙을 비활성화(즉, 주석 처리)하는 데 사용됩니다.

  • -D 기간: 개수가 아닌 기간을 기준으로 생성합니다. 기간은 초 단위입니다. 패킷 간 기본 대기 시간은 평균 1-200마이크로초입니다. 대기 시간이 짧으면 큰 기간으로 인해 수백만 개의 패킷이 생성되어 구축하는 데 오랜 시간이 걸릴 수 있습니다. 또한 기간은 최선의 노력입니다. 기본적으로 기간이 충족된 후에는 새 스트림이 생성되지 않지만 완료되지 않은 스트림이 있을 수 있습니다. 이러한 스트림은 여전히 기록되므로 실제 기간은 지정된 것보다 길 수 있지만 짧아서는 안 됩니다. 마지막으로 생성 중에 더 적은 수의 스트림을 생성하려면 더 큰 대기 시간을 설정하십시오.

  • -e 평가: 규칙 집합의 각 규칙에 대해 하나의 패킷만 생성합니다. -f를 제외한 다른 모든 입력을 무시합니다. 각 패킷에는 선택한 규칙과 일치하는 콘텐츠가 있습니다.

  • -E 전체 평가: 규칙 집합의 pcre 규칙에서 각 실행 가능한 경로에 대해 하나의 패킷을 생성합니다. 즉, ab(c|d)e는 두 개의 패킷(abce 및 abde)을 생성합니다. -f를 제외한 다른 모든 입력을 무시합니다.

  • -f 규칙 파일: 제공된 경로 및 파일 이름에 따라 단일 규칙 파일을 읽습니다.

  • -F 구성: Sniffles 옵션에 대한 구성 파일을 지정합니다. 구성 파일은 Sniffles 실행에 사용되는 매개변수를 고정하는 방법입니다.

  • -g 타임스탬프: pcap 타임스탬프의 시작 시간을 설정합니다. 1969년 12월 31일 이후의 초 수입니다. 기본값은 현재 시간입니다.

  • -h IP 홈 접두사: IP 홈 네트워크 접두사 목록입니다. 내부 주소에서 오는 것으로 의도된 IP 주소는 이러한 접두사를 사용합니다. 접두사는 xxx.xxx 형식으로 전체 4바이트 IPv4 주소를 지정할 수 있습니다. 예: "10.192.168,172.16".

  • -H IPv6 홈 접두사: IPv4 홈 접두사와 동일하지만 IPv6용입니다. 주목할만한 예외는 구분 기호가 콜론이며 콜론 사이에 2바이트가 표시된다는 것입니다.

  • -i IPv6 백분율: 1에서 100 사이의 값을 설정하여 IPv6로 패킷을 생성합니다. 이는 IPv6가 될 스트림의 백분율을 결정합니다.

  • -I 스캔 공격의 강도(즉, 초당 패킷 수).

  • -l 콘텐츠 길이: 콘텐츠 길이를 지정된 바이트 수로 고정합니다. 1 미만은 길이를 nfa에 의해 생성된 콘텐츠 또는 헤더도 무작위인 경우 10에서 1410 사이의 무작위 숫자로 설정합니다. 필요에 따라 패킷을 자르거나 채웁니다.

예제:

참고: 모든 예제는 sniffles 패키지를 설치했다고 가정합니다.

정규 표현식이 포함된 단일 파일에서 모든 패킷이 규칙과 일치하는 10개의 스트림으로 pcap을 생성하려면

sniffles -c 10 -f myre.re -m

단일 snort 규칙 파일에서 모든 패킷이 규칙과 거의 일치하는 pcap을 생성하려면

sniffles -c 10 -f myrules.rules

단일 디렉토리에 있는 여러 snort 규칙 파일에서 모든 패킷이 규칙과 일치하는 pcap을 생성하려면

sniffles -c 10 -d myrulesdir -m

위와 동일한 pcap을 동일한 규칙을 사용하지만 무작위 콘텐츠로 생성하려면(콘텐츠는 무작위, 헤더는 여전히 규칙을 따름 - regex 또는 Sniffles 규칙에서는 작동하지 않음):

sniffles -c 10 -d myrulesdir -r

10개의 스트림(각각 1패킷)과 무작위 데이터로 pcap을 생성하려면:

sniffles -c 10

10개의 스트림으로 pcap을 생성하되 스트림의 50%는 백그라운드 트래픽이고 나머지 스트림은 규칙과 일치하는 패킷을 포함하도록 하려면:

sniffles -c 10 -B 50 myrules.rules

10개의 스트림으로 pcap을 생성하되 각 스트림에 5개의 패킷, ACK 및 핸드셰이크 및 종료가 포함되고 각 데이터 포함 패킷의 데이터 길이가 50으로 고정되도록 하려면:

sniffles -c 10 -p 5 -l 50 -t -T -a

홈 네트워크가 192.168.1-2.x인 20개의 무작위 스트림으로 pcap을 생성하려면:

sniffles -c 20 -h 192.168.1,192.168.2

홈 네트워크가 IPv4의 경우 192.168.1.x이고 IPv6의 경우 2001:8888:8888이며 트래픽의 50%가 IPv6인 20개의 무작위 스트림으로 pcap을 생성하려면:

sniffles -c 20 -h 192.168.1 -H 2001:8888:8888 -i 50

패킷 간 평균 지연 시간이 100마이크로초인 5초 패킷 캡처를 무작위 패킷으로 생성하려면:

sniffles -D 5 -L 100

규칙 파일(또는 정규식 파일)의 각 규칙과 일치하는 하나의 패킷을 순서대로 생성하는 pcap을 생성하려면:

sniffles -f myrules.rules -e

정규식 집합의 각 정규식에 대해 가능한 모든 분기에 대한 패킷을 생성하고 해당 파일을 everything.pcap이라는 pcap에 저장하는 pcap을 생성하려면 아래와 같습니다. 그러나 이 함수는 정규식에 min-max 카운팅이 많으면 지수 시간에 실행될 수 있으므로 실행하는 데 오랜 시간이 걸릴 수 있습니다. 또한 아래에 설명된 두 옵션을 제외한 다른 모든 옵션은 무시됩니다.

sniffles -f myrules.rules -o everything.pcap -E

2초 후에 시작되어 2초 동안 지속되고 초당 1000개의 스캔 패킷이 있으며 전체 캡처 기간이 5초이고 지연 시간이 50us이며 시작 포트가 80인 스캔 공격이 포함된 무작위 트래픽을 생성하려면(포트를 80부터 순차적으로 검색):

sniffles -D 5 -O 2 -W 2 -I 1000 -L 50 -s 192.168.1.2 -P 80

위와 유사하지만 각각 1초의 기간과 공격 사이의 평균 오프셋이 2초인 여러 스캔 공격을 생성합니다. 또한 지정된 포트만 스캔합니다. 또한 192.168.1.0-255 범위의 IP 주소를 무작위로 대상으로 합니다.

sniffles -D 8 -O 2 -W 1 -I 10 -L 50 -s 192.168.1 -P 80,8080,8000,8001

Sniffles 규칙 형식:

Sniffles는 여러 규칙 형식을 지원합니다. 첫째, Sniffles는 Snort 규칙과 정규 표현식(한 줄에 하나씩)을 구문 분석할 수 있습니다. 이에 더하여 Sniffles는 트래픽을 명시적으로 제어하는 데 사용할 수 있는 자체 규칙 형식도 있습니다. 이는 트래픽을 설명하는 xml 파일을 통해 수행됩니다. 이 형식이 사용되면 Sniffles의 다른 옵션은 관련이 없을 수 있습니다. 예제 규칙 파일은 examples 디렉토리에서 찾을 수 있습니다. 이러한 규칙 파일은 단순히 -f 옵션으로 규칙 파일을 지정하여 사용됩니다(예: sniffles -f rules.xml).

Sniffles 규칙 형식은 다음과 같습니다:```xml

<petabi_rules> <traffic_stream proto="tcp" src="any" dst="any" sport="any" dport="any" handshake="True" teardown="True" synch="True" ip="4"> </traffic_stream> <traffic_stream proto="tcp" src="any" dst="any" sport="any" dport="any" handshake="True" teardown="True" synch="True"> </traffic_stream> </petabi_rules>

root@kitploit:~
세부적으로, 태그는 다음과 같이 작동합니다:

- `<petabi_rules> </petabi_rules>`: 이 파일의 모든 규칙을 정의합니다.
  해당 트래픽 스트림을 모두 열고 닫는 태그 세트는 하나만 있어야 합니다.
    - `<rule > </rule>`: 단일 규칙을 지정합니다. 하나의 규칙은 임의의 수의 트래픽 스트림 또는 패킷을 생성할 수 있습니다. 하나의 파일에 여러 개의 규칙이 있을 수 있습니다.
        - 옵션:
            - name: 이 규칙의 이름. 주로 문서화용이며 실제 기능은 없습니다.
        - `<traffic_stream> </traffic_stream>`: 트래픽 스트림은 두 엔드포인트 간의 트래픽을 정의합니다. 단일 트래픽 스트림 내에서 지정된 모든 패킷은 동일한 엔드포인트를 공유합니다. 특정 규칙에 대해 여러 개의 트래픽 스트림을 지정할 수 있습니다. 동일한 규칙 내의 서로 다른 트래픽 스트림은 아래 설정에 따라 다른 엔드포인트를 가질 수도 있고 그렇지 않을 수도 있습니다.
            - 옵션:
                - typets: 패킷 생성에 사용할 트래픽 스트림 유형을 지정합니다. 현재 Standard, ScanAttack, BackgroundTraffic이 있습니다.
                - scantype: 1==Syn 스캔(기본값) 2 == 연결 스캔. ScanAttack과 함께 사용됩니다.
                - target: 스캔 공격의 대상 IP 주소를 지정합니다.
                - targetports: 스캔 공격용. 쉼표로 구분된 포트 목록 또는 단일 시작 포트를 제공합니다. 그렇지 않으면 포트가 무작위로 스캔됩니다. 단일 시작 포트가 제공되면 해당 지점부터 65535까지 순서대로 포트를 스캔한 후 시작 지점으로 되돌아갑니다. 이 옵션은 typets가 'ScanAttack'일 때 함께 사용됩니다.
                - srcport: 스캔 공격의 소스 포트를 지정합니다. 기본값은 무작위입니다.
                - duration: typets가 'ScanAttack'인 경우 스캔 공격의 시간 창(초)
                - intensity: typets가 'ScanAttack'인 경우 스캔 공격의 강도.
                - offset: 스캔 공격 시작 전 오프셋. 트래픽에 여러 스캔을 삽입할 때도 사용됩니다.
                - replychance: 스캔에 응답이 있을 확률. 즉, 대상 포트가 열려 있을 확률(기본값 20%). ScanAttack과 함께 사용됩니다.
                - proto: 이 트래픽 스트림의 프로토콜을 지정합니다. TCP, UDP, ICMP여야 합니다(테스트되지 않음).
                - src: 소스 IP 주소. xxx.xxx.xxx.xxx 형식의 주소, $EXTERNAL_NET(외부 주소—홈 네트워크가 지정되었다고 가정), $HOME_NET, 또는 any(무작위 IP 주소 선택)일 수 있습니다.
                - dst: 대상 IP 주소. 소스 IP 주소와 동일.
                - sport: 소스 포트(TCP 또는 UDP 가정). Snort 포트 형식을 사용할 수 있으며, 이는 대괄호 안의 쉼표로 구분된 목록(예: [80,88,89]), 범위(예: [10:1000]), 또는 any(예: 0-65535에서 무작위 선택)일 수 있습니다.
                - dport: 대상 포트. sport와 동일.
                - handshake: 스트림 시작 시 TCP 핸드셰이크를 생성합니다. 제외되면 핸드셰이크가 없습니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.
                - latency: 패킷 간 평균 지연 시간(마이크로초)을 설정합니다.
                - teardown: 모든 트래픽이 전송된 후 TCP 해제를 추가하여 스트림을 닫습니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.
                - synch: 트래픽 스트림이 동기식인지 여부. true이면 다음 트래픽 스트림이 시작되기 전에 하나의 트래픽 스트림이 완료되어야 합니다. false이면 false인(즉, 비동기식) 모든 연속 스트림이 동시에 실행됩니다.
                - tcp_overlap: 기본값은 false입니다. true이면 두 번째 패킷부터 추가 콘텐츠가 하나 추가되고 TCP 시퀀스 번호가 1 감소하여 TCP 중복 시퀀스 번호를 시뮬레이션합니다.
                - ipv: IPv4 또는 IPv6을 지정합니다. 유효한 옵션은 4 또는 6입니다. 기본값은 4입니다.
                - out_of_order: 패킷이 순서에 맞지 않게 도착하도록 무작위로 설정합니다. 이는 'times' 옵션을 사용하는 패킷에서만 작동합니다. 또한 트래픽 추적에 적절한 중복 ACK가 나타나도록 ack 옵션과 함께 사용해야 합니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.
                - out_of_order_prob: 패킷이 순서에 맞지 않게 도착할 확률을 설정합니다. 예를 들어 10은 각 패킷이 순서에 맞지 않을 확률이 10%임을 의미합니다. 순서가 잘못된 패킷은 모든 순서가 올바른 패킷 이후에 도착합니다. 또한 무작위로 섞입니다. 따라서 10개 패킷 중 처음 패킷 2와 5가 순서가 잘못된 것으로 결정되면 10개 패킷 중 마지막(슬롯 9와 10)에 도착하며 임의의 순서(즉, 5가 2보다 먼저 오거나 그 반대)로 도착합니다. 이 값은 1에서 99 사이여야 합니다. 기본값은 50입니다.
                - packet_loss: 패킷이 손실(즉, 도착하지 않음)되도록 무작위로 설정합니다. 이는 'times' 옵션에서만 작동합니다. 또한 트래픽 추적에 중복 ACK가 나타나도록 ack 옵션을 true로 설정하여 사용해야 합니다. 유효한 값은 1에서 99까지이며 패킷이 손실될 확률을 나타냅니다. 패킷 손실은 데이터를 포함하는 패킷에만 발생하며 ACK에는 발생하지 않습니다.
                - ack: 이 흐름의 모든 데이터 패킷 뒤에 서버의 ACK가 오도록 합니다. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.
                - percentage: BackgroundTraffic에만 적용되며 규칙 파일 또는 디렉토리에 BackgroundTraffic 규칙이 하나만 있어야 합니다. 백분율은 전체 트래픽 스트림에서 생성될 백그라운드 트래픽 스트림의 비율을 나타냅니다.
                - http: 백그라운드 트래픽 스트림에서 http 애플리케이션 프로토콜의 백분율 분포.
                - ftp: 백그라운드 트래픽 스트림에서 ftp 애플리케이션 프로토콜의 백분율 분포.
                - pop: 백그라운드 트래픽 스트림에서 pop 애플리케이션 프로토콜의 백분율 분포.
                - smtp: 백그라운드 트래픽 스트림에서 smtp 애플리케이션 프로토콜의 백분율 분포.
                - imap: 백그라운드 트래픽 스트림에서 imap 애플리케이션 프로토콜의 백분율 분포.
            - `<pkt > </pkt>`: 이 지시어는 개별 패킷 또는 일련의 패킷을 지정합니다. times 기능을 사용하면 하나의 `<pkt> </pkt>` 지시어가 여러 패킷을 생성할 수 있습니다. 그렇지 않으면 각 방향의 각 패킷을 명시적으로 지정해야 합니다.
                - 옵션:
                    - dir: 패킷의 방향. 유효한 값은 to server 또는 to client입니다. 초기 소스 IP는 클라이언트로, 초기 대상 IP는 서버로 간주됩니다. 따라서 'to server'는 클라이언트에서 서버로 패킷을 보내고 'to client'는 서버에서 클라이언트로 패킷을 보냅니다. 기본값은 to server입니다.
                    - content: 이 패킷의 콘텐츠를 지정하는 정규식. 패킷 크기는 정규식에 따라 달라집니다.
                    - fragment: 이 패킷을 단편화할지 여부. ipv4에서만 작동합니다. 2보다 큰 값을 가져야 합니다. 유효한 만큼 또는 지정된 만큼(둘 중 작은 값)의 단편을 생성합니다. 기본값은 0으로 단편 없음을 의미합니다.
                    - ack: 이 패킷에 ACK를 보낼지 여부. 유효한 값은 true 또는 false입니다. 기본값은 false입니다.
                    - split: 콘텐츠를 지정된 수의 패킷으로 분할합니다. 기본적으로 모든 콘텐츠는 단일 패킷으로 전송됩니다(단편은 이 규칙의 작은 예외).
                    - times: 이 패킷을 x번 전송합니다. 기본값은 1이며, 양수 값은 정확히 x개의 패킷(ack가 true인 경우 ACK 포함)을 전송하고, 음수 값은 1과 abs(-x) 사이의 무작위 패킷 수를 전송합니다.
                    - ttl: 패킷의 TTL(Time to Live) 값을 설정합니다. 기본적으로 Sniffles는 무작위 TTL 값을 생성합니다.
                    - ttl_expiry: 패킷을 여러 패킷으로 분할하고 두 개의 정상 패킷 사이에 하나의 악성 패킷을 삽입하여 TTL 만료 공격을 시뮬레이션합니다. 기본값은 0(악성 패킷 없음)입니다. 값이 0이 아니면 이 ttl이 ttl_expiry 값과 같은 악성 패킷을 삽입합니다. ttl 값이 설정된 경우 정상 패킷은 새 ttl 값으로 설정됩니다.

마지막 참고 사항: 새로운 규칙 형식은 시작에 불과하며 문제가 있을 수 있습니다.
불일치나 오류가 있으면 알려주시기 바랍니다. 또한, 필요에 따라 더 많은 기능을 제공하기 위해 옵션을 확장할 예정입니다.
원하는 기능이 있으면 연락 주시기 바랍니다. 마지막으로, 이 제품은 있는 그대로 제공됩니다.
기능이나 정확성에 대한 보증은 없습니다. 필요에 따라 이 프로젝트를 포크하여 사용하십시오.

크레딧:
--------

이 애플리케이션은 Petabi, Inc.에서 제공하였으며, 당사는 신뢰할 수 있고 현실적이며 빠른 보안 솔루션을 만듭니다.

저자:

- Victor C. Valgenti
- Min Sik Kim
- Tu Le
- Moosuk Pyun

새로운 기능:
-------------

- 2014년 11월 21일: 버전 1.4.0 트래픽 분할 및 양방향 트래픽 생성을 위한 Traffobot 추가. 생성된 트래픽이 단일 트래픽 쓰기 호출에 맞을 때 예외가 발생하는 버그 수정. 사용법 재구성 및 활성화. 마지막으로 Traffobot 및 XML 파싱을 위한 단위 테스트 추가.

- 2015년 2월 3일: 버전 2.0. 특수 규칙을 사용하여 대규모 스트림을 생성할 때 메모리 요구 사항을 줄이기 위해 스트림 작동 방식을 완전히 재작성. 현재 상황이 느려지기 전까지 약 2-3백만 개의 동시 흐름을 처리할 수 있습니다. 대규모 흐름을 생성할 때 도움이 되도록 몇 가지 기능을 추가했습니다. 첫째, 약 2-3백만 흐름의 동시성으로 생성하십시오. 또한 이러한 흐름에 대해 teardown을 사용하지 마십시오. 흐름의 일부는 캡처 시작부터 끝까지 지속되고 나머지는 각 배치 기간마다 종료됩니다. 효율성을 높이기 위해 노력하겠지만, Sniffles의 모든 복잡한 옵션을 메모리에서 저렴하게 관리할 수는 없습니다. 유일한 다른 해결 방법은 더 많은 RAM을 갖춘 더 강력한 머신을 구하는 것입니다. 이 버전에는 다양한 수정 사항도 포함되어 있습니다.

- 2015년 2월 11일: 순서가 잘못된 패킷의 빈도를 조정할 수 있도록 out-of-order 패킷에 확률 추가.

- 2015년 3월 5일: TCP 종료를 표준 종료 시퀀스로 변경. 이제 단편을 사용하지 않고 여러 패킷에 콘텐츠를 분산할 수 있습니다.

- 2015년 4월 9일: 스캔 트래픽 수정, 이전 변경 중 일부가 손상되었습니다. pcap 시작 타임스탬프는 이제 기본적으로 현재 시간이며 -g 옵션으로 설정할 수 있습니다. 마지막으로, 클라이언트가 먼저 데이터를 보내야 하는 경우 3-way TCP 핸드셰이크의 세 번째 패킷은 이제 데이터를 포함합니다.

- 2015년 5월 22일: 더 많은 형식을 수용하기 위해 규칙 파서를 확장할 수 있도록 규칙 파싱 재작성. nfa 탐색 및 pcre를 Sniffles에 직접 내장. 코드 정리 및 공개 준비.

- 2015년 5월 27일: 문서 업데이트, pcre 라이브러리 및 nfa 구성을 병합하여 Sniffles를 자체 포함 패키지로 만듦. Regex 생성기 및 Random Rule Generator를 Sniffles 패키지의 일부로 추가. 버전을 3.0.0으로 업데이트하고 Github에 게시.

- 2015년 8월 12일: 많은 버그 수정 및 새로운 기능 구현. 확장성을 개선하기 위해 스트림 및 흐름 처리 방식을 근본적으로 변경. 흐름당 지연 시간 추가. 문서 업데이트.

정규식 생성기
============================

이것은 간단한 정규식 생성기입니다.
완전히 무작위로 또는 일련의 분포를 기반으로 정규식을 생성합니다.
정규식 생성 방식을 제어할 수 있는 컨트롤은 구조적이지 맥락적이지 않습니다. 즉,
생성된 정규식에 특정 문자열 토큰이 나타나도록 하는 노력은 없습니다. 그러나
규칙에서 문자 클래스, 교체, 반복 등과 같은 기능의 유형에 영향을 주기 위해
확률 분포를 조정할 수 있습니다.

설치
-------

Sniffles의 나머지 부분과 함께 자동으로 설치됩니다.

옵션
-------

regexgen--무작위 정규식 생성기.

    usage: regexgen [-C char distribution] [-c number regex]
    [-D class distribution] [-f output re file]
    [-l lambda for length generation] [-M maximum regex length]
    [-m minimum regex length] [-n negation probability]
    [-o options chance] [-R repetition chance] [-r repetition distribution]
    [-t re structural type distribution] [-?] [-g]

-    -C 문자 분포: 특정 문자 또는 문자 유형을 볼 가능성을 설정합니다.
     사용 방법에 대한 예는 아래 분포에 대한 간략한 설명을 참조하십시오. 기본적으로
     이 분포는 균등 분포입니다. 이 분포에는 다섯 개의 슬롯이 있습니다: ASCII 문자, \x00 형식의 이진 문자,
     알파벳 문자(대문자 또는 소문자), 숫자, 대체 클래스(\w 등). 이에 대한 예시 입력은
     "10,20,10,40,20"이며, 이는 생성된 문자의 10%가 ASCII, 20% 이진, 10% 문자 등일 확률을 의미합니다.
     한 가지 주의할 점은 정규식에 문제를 일으킬 수 있는 ASCII 문자(예: '[' 또는 '{')는
     16진수 표현(\x3b 등)으로 변환된다는 것입니다.
-    -c 생성할 정규식의 수. 기본값은 1입니다.
-    -D 클래스 분포: 클래스 분포에는 두 개의 슬롯만 있습니다.
     첫 번째 슬롯은 클래스가 무작위로 생성된 여러 문자로 구성될 확률입니다.
     두 번째 슬롯은 클래스가 범위(예: a-z)로 구성될 확률입니다.
-    -f 출력 파일 이름. 정규식이 저장될 파일의 이름을 설정합니다.
     기본값은 현재 작업 디렉토리의 rand.re 파일입니다.
-    -g 그룹: 모든 정규식은 다른 하나 이상의 정규식과 공통 접두사를 갖습니다(정규식이 둘 이상인 경우).
     공통 접두사는 일부 정규식 집합에 대해 동일한 정규식입니다. 가능한 공통 접두사의 총 개수는
     1에서 생성할 전체 정규식 크기의 절반까지입니다. 이 옵션의 기본값은 false입니다.
     이 옵션은 매개변수를 사용하지 않습니다.
-    -l 길이에 대한 람다: 정규식 길이의 지수 분포에 대한 평균 길이입니다. 기본값은 10입니다.
-    -M 최대 정규식 길이: 정규식의 구조적 길이가 최대 이 값 이하가 되도록 합니다. 기본적으로 최대 길이는 제한되지 않습니다.
-    -m 최소 정규식 길이: 정규식의 길이가 최소 이 값 이상이 되도록 합니다. 기본값은 3이며, 입력이 0 이하인 경우 자동으로 1이 사용됩니다.
-    -n 부정 확률: 문자 클래스가 일반 문자 클래스([xyz]) 대신 부정 클래스([^xyz])일 확률입니다.
     기본 확률은 50%입니다.
-    -o 옵션 확률: 정규식에 옵션이 추가될 확률입니다. 현재 옵션은 'i', 'm', 's'입니다.
     옵션 목록에 무작위 개수의 옵션이 추가되며, 옵션은 균등 분포를 통해 선택됩니다.
-    -R 반복 확률: 정규식에 구조적 구성 요소가 추가된 후 반복이 발생할 확률입니다.
-    -r 반복 분포: 반복 구조의 분포입니다.
     슬롯은 다음과 같습니다: 0 또는 1(?), 0 이상(*), 1 이상(+), 카운팅({x,y}).
-    -t Re 구조 유형 분포: 정규식의 주요 구조적 구성 요소에 대한 분포입니다.
     이는 세 개의 슬롯, 즉 범주로 구성됩니다: 문자, 클래스, 교체.
     교체는 단순히 정규식의 남은 길이까지 더 작은 정규식을 생성합니다. 즉,
     교체는 여러 개의 더 작은 정규식이 전체 정규식에 결합됩니다.
     교체는 이러한 더 작은 정규식을 생성할 때 정확히 동일한 방법론을 사용합니다.
-   -? 이 도움말을 출력합니다.

    이 생성기는 무작위 정규식을 생성합니다. 정규식 내의 구조를 확률 분포로 조정할 수 있지만
     현재는 콘텐츠는 조정할 수 없습니다. 이는 가능한 정규식의 최대 다양성을 탐색하는 데 바람직합니다
     (현실적인 정규식은 아니지만).
     분포는 특정 분포에 대한 다양한 가능성(슬롯)에 대한 확률 목록을 생성하여 처리됩니다.
     이는 "10,30,40,20"과 같은 간단한 문자열 목록을 사용하여 명령줄 인수로 추가됩니다.
     목록에는 슬롯 수만큼의 값이 있어야 합니다. 목록에 있는 모든 값의 합계는 100이어야 하며
     분수가 없어야 합니다. 각 슬롯의 값은 해당 슬롯이 선택될 확률입니다. 예를 들어,
     기본 RE 구조 유형 분포에는 세 개의 슬롯이 있습니다. 첫 번째 슬롯은 다음 구조 유형이
     문자(문자는 문자, 숫자, 이진, ASCII 또는 대체 클래스(\w 등)일 수 있음)일 확률입니다.
     두 번째 슬롯은 [ab@%], [^123] 또는 [a-z]와 같은 문자 클래스용입니다. 마지막 슬롯은
     (ab|cd)와 같은 교체가 발생할 확률입니다. 이 세 개의 슬롯을 사용하여 정규식에
     구조가 나타나는 빈도를 조정할 수 있습니다. 예를 들어, regexgen -c 10 -t "80,10,10"은
     10개의 정규식을 생성하며, 사용된 구조의 80%는 문자, 10%는 문자 클래스, 10%는 교체입니다.

임의 규칙 생성기
=====================

임의 규칙 생성기는 특정 플랫폼을 테스트하기 위해 무작위로 생성된 여러 규칙을 만드는 수단을 제공합니다.
현재 생성된 규칙은 Snort 규칙 형식을 따르거나 단순히 텍스트 줄입니다.
임의 규칙 생성기가 작동하려면 정의된 기능 세트가 있어야 합니다.
예제 기능은 example_features 폴더에서 찾을 수 있으며 아래에 자세히 설명되어 있습니다.

설치
-------

Sniffles와 함께 자동으로 설치됩니다.

참고: 임의 규칙 생성기는 모든 종류의 콘텐츠를 생성하기 위해
임의 정규식 생성기를 사용합니다.옵션
-------

무작위 규칙 생성기

사용법: rulegen -c [규칙 수] -f [특징 집합]
        -o [출력 파일] [-s]

- -c  규칙 수: 생성할 규칙의 수입니다. 기본값은 1입니다.
- -f  특징 집합: 특징 집합 설명을 포함하는 파일입니다. 특징 집합과 그 설명 방법에 대한 자세한 내용은 문서를 참조하십시오.
- -o  출력 파일: 규칙이 기록되는 출력 파일입니다. 기본값은 rules.txt입니다.
- -s  Snort 규칙 형식: 규칙을 Snort 규칙 형식으로 작성합니다. 매개변수 없음, 기본값은 꺼짐입니다. 꺼짐일 때는 규칙이 특징 구문 분석기를 기반으로 하는 문자열 형식으로 변환됩니다.

특징 집합
-----------

특징은 IDS에서 사용되는 규칙의 잠재적 측면을 설명하는 데 사용됩니다. 예를 들어, 패킷 필터는 IP 소스 및 대상 주소를 대상으로 하는 규칙을 사용할 수 있습니다. 이 경우 해당 IP 소스 및 대상 주소가 생성되어야 하는 방식을 설명하는 특징 집합을 만들 수 있습니다. 보다 구체적으로, 우리는 단순 규칙과 복잡 규칙을 구분합니다. 이 두 가지의 차이점은 모호한 표기법의 존재 여부입니다. 예를 들어, 모든 IP 주소를 의미하는 *의 모호한 표기법이 있다면, *가 모호한 표기법을 나타낸다고 말할 수 있습니다. 또한, 규칙은 192.168.1.1과 같은 비모호한 표기법을 사용할 수도 있습니다. 이는 가능한 모호한 표기법 없이 단일 고정 IP 주소이므로 단순 IP 주소를 나타냅니다. 그런 다음 특정 특징의 범위를 추가로 정의합니다 (예: 전체 40억 개 이상의 가능한 IPv4 주소 중 IP 주소 또는 그 하위 집합).

특징은 궁극적으로 임의의 규칙에 대한 모든 측면을 정의합니다. 특징 집합과 유효한 규칙 형식이 주어지면 해당 특징을 사용하는 임의의 수의 규칙을 무작위로 생성할 수 있습니다. 이러한 방식으로, 자주 간과되는 벡터에서 IDS를 검사하는 테스트 규칙 집합을 생성할 수 있습니다.

특징은 세미콜론으로 구분된 목록으로 정의되며, 한 줄에 하나의 특징이 있습니다. type=feature; 인수 목록은 key=value 쌍으로, 목록은 파이썬 형식(예: [a, ..., z])을 사용합니다. 특징은 대상 규칙 형식의 특정 부분을 정의합니다. 특징은 더 많은 기능을 추가하기 위해 확장될 수 있습니다. 선택적으로, 새로운 규칙 형식을 생성하여 특징의 기능을 확장할 수 있습니다.

현재 특징 유형:

1. Feature -- 일반 특징
2. Content -- 콘텐츠 특징
3. IP -- IP 특징
4. Protocol -- 프로토콜 특징

모호한 목록은 범위의 경우 [x:y], 목록의 경우 [x,y], 집합의 경우 {x1,x2,x3} 또는 와일드카드나 유사한 단일 옵션의 경우 *와 같은 목록으로 작성되어야 합니다.

모호한 목록에 대한 예:```
ambiguity_list=[[2:9]]
it will generate [3:4], [5:6], etc (any [x:y] such that
x <= y and x >= 2 and y > x and y <= 9).

ambiguity_list=[[3,20]]
it will generate [3,9,10], [3,4,8,12], etc (any list [x1,x2,x3,..]
such that all values falling between 3 and 20.

ambiguity_list=[{5,6,10}]
it will generate a subset of {5,6,10} such as {5,10}, {5}.

ambiguity_list=[[2:9],[3,20],{5,6,11}]
it will pick one of [2:9], [3,20], and {5,6,11} and
generate a corresponding instance (see above)

피처 파일 예시:``` type=protocol; name=proto; proto_list=[TCP,UDP,ICMP]; complexity_prob=0;ambiguity_list=None; type=ip; name=sip; version=4; complexity_prob=100;

root@kitploit:~
위 내용은 두 가지 기능, 즉 프로토콜 기능과 소스 IP 기능을 정의합니다. 프로토콜 이름은 proto로, 이는 규칙 포맷터에게만 중요하며, 유효한 프로토콜은 IP, TCP, UDP, ICMP입니다. IP 기능은 IPv4로 정의되며 모든 규칙은 복합적(complex)입니다. IP 복잡성은 이미 클래스의 일부이므로 기능 정의에 추가할 필요가 없습니다. 이렇게 하면 CIDR 표기법을 사용하여 IP 주소가 생성됩니다.

일반 기능 속성(Generic Feature Attributes):

- Feature_name: 정보 제공용 속성으로, 규칙 포맷터에 유용할 수 있습니다.
- lower_bound: 가능한 값의 하한. 기능이 숫자라고 가정합니다.
- upper_bound: lower_bound의 반대.
- complexity_prob: 규칙에 복합 기능을 사용할 확률. 0부터 100까지. 기본값은 0입니다.
                   복합 기능을 사용할 때는 모호성 목록에서 무작위로 표기법을 선택하거나, 기능에서 특정 모호성을 정의한 경우(예: IP 주소) 해당 표기법을 사용합니다.
                   복합 기능을 사용하지 않을 때는 경계값을 사용하여 값을 생성하거나, Content의 경우 생성된 문자열을 일련의 ASCII 문자로 제한하는 분포 값 집합을 사용합니다.
- ambiguity_list: 가능한 모호한 표기법의 목록.
                  Python 형식의 쉼표로 구분된 목록(예: [a, b, c]).
- toString(): 이 특정 기능 집합이 주어졌을 때 규칙 인스턴스를 출력합니다.

Content 기능 -- Feature를 상속:
- regex: True 또는 False. True인 경우, 정규식에 pcre 형식을 사용하고, 선택적으로 옵션 i, s, m을 정규식에 추가할 수 있습니다.
- length: 생성된 content의 평균 길이를 정의합니다.
-  min_regex_length: 정규식의 최소 길이를 정의합니다.

Protocol 기능 -- Feature를 상속:
- proto_list: 가능한 프로토콜 목록을 쉼표로 구분된 목록으로 정의합니다(예: [TCP, UDP]).

IP 기능 -- Feature를 상속:
- version: IP 버전 4의 경우 4, IP 버전 6의 경우 6. 기본값은 4입니다.

범위, 목록, 집합에 대한 모호한 표기법:

범위 표기법(Range Notation):
  [x:y]  는 x에서 y까지(포함)를 의미합니다.

목록 표기법(List notation):
  [x,y] 는 무작위로 결정된 개수의 값 목록을 의미하며, 각 값은 x보다 크거나 같고 y보다 작거나 같습니다.

집합 표기법(Set notation):
  {x1,x2,x3,x4} 는 값 x1, x2, x3, x4의 집합을 의미합니다. 원래 집합의 부분 집합을 생성합니다.

더 많은 예제는 example_features 폴더의 예제 기능 집합을 참조하세요.
이에 대한 학술 이론과 추가 세부 사항은 추후 추가될 예정입니다.
도구 다운로드

-L 대기 시간: 마이크로초 단위의 평균 대기 시간입니다. 설정하지 않으면 각 스트림에 대해 1에서 200 usecs 사이의 무작위 평균 대기 시간이 결정됩니다. 따라서 주어진 스트림의 패킷은 흐름의 각 패킷 사이에 평균 대기 시간을 갖습니다.

  • -M 사용자 정의 MAC 주소를 트래픽에 사용하기 위해 MAC 분포를 허용합니다. 기본적으로 MAC 주소는 무작위로 생성됩니다. MAC 정의 파일에 대한 자세한 내용은 examples/mac_definition_file.txt에서 찾을 수 있습니다. 참고: 소스 또는 대상 MAC에 따라 다른 값을 설정하기 위해 최대 두 개의 MAC 정의 파일을 지정할 수 있습니다. 파일을 하나만 지정하면 두 방향 모두에 사용됩니다. 다음 표기법을 사용하면 특정 방향을 지정할 수 있습니다. 예: 'path1:path2'. Path1은 소스 MAC에 대한 MAC 정의 파일이고 path2는 대상 MAC에 대한 MAC 정의 파일입니다. 물음표(?)를 사용하여 하나 또는 다른 것을 무작위로 지정할 수 있습니다. 예: '?:path2'는 무작위 소스 MAC을 가지지만 대상에는 파일을 사용합니다.

  • -n 완전히 일치하지 않음. 규칙에서 생성된 콘텐츠가 완전히 일치하지 않도록 설정합니다(즉, 자동으로 마지막 몇 문자를 자릅니다). 기본 동작은 규칙 콘텐츠와 완전히 일치하는 것입니다.

  • -o 출력 파일: 출력 파일의 이름을 지정합니다. 기본적으로 파일 이름은 sniffles.pcap입니다.

  • -O 오프셋: 스캔 공격을 시작하기 전의 오프셋입니다. 또한 트래픽에 여러 스캔을 삽입할 때 사용됩니다. 이것은 스캔이 시작되기 전의 초 수입니다. -R과 함께 사용하면 시작 전 평균 초 수가 됩니다.

  • -p 스트림당 패킷 수: 단일 스트림에 대한 콘텐츠를 포함하는 패킷 수를 지정합니다. 인수로 양수 값이 제공되면 각 스트림에 대해 정확히 x (x는 제공된 정수)개의 콘텐츠 포함 패킷이 나타납니다. x가 음수이면 각 스트림에 대해 1에서 abs(x)까지의 무작위 패킷 수가 나타납니다. 기본적으로 이 값은 1입니다.

  • -P 대상 포트 목록: 스캔 공격용입니다. 쉼표로 구분된 가능한 포트 목록 또는 단일 시작 포트를 제공합니다. 그렇지 않으면 포트가 무작위로 스캔됩니다. 단일 시작 포트가 제공되면 포트는 해당 지점부터 65535까지 순서대로 스캔된 후 시작 지점으로 되돌아갑니다. 목록이 제공되면 목록의 포트가 라운드 로빈 방식으로 스캔됩니다.

  • -r 무작위: 규칙이 아닌 무작위 콘텐츠를 생성합니다. 규칙이 여전히 제공되면 규칙은 헤더 생성에 사용됩니다. 참고: 규칙의 많은 기능이 무작위 생성의 특정 측면을 재정의할 수 있습니다.

  • -R 무작위 스캔 공격: 오프셋을 사용하여 트래픽에 스캔 공격을 생성하지만 오프셋을 중앙값으로만 사용합니다. 오프셋은 스캔이 종료되고 새 스캔이 시작되는 시간을 결정하는 데 사용됩니다.

  • -s 스캔 공격: 대상 IP 주소를 나타내는 쉼표로 구분된 IPv4 주소 목록이 뒤따릅니다. 각 IP 범위는 하나의 스캔 공격을 생성합니다. 범위는 192.168.1.1과 같아야 하며, 이는 정확히 하나의 IP 주소를 대상으로 하고 192.168.1은 192.168.1.0에서 192.168.1.255 사이의 무작위 IP 주소를 대상으로 합니다.

  • -S 스캔 유형: 1==Syn 스캔(기본값) 2 == 연결 스캔.

  • -t TCP 핸드셰이크: 모든 TCP 스트림에 TCP 핸드셰이크를 포함합니다. 기본적으로 꺼져 있습니다.

  • -T TCP 종료: 모든 TCP 스트림에 TCP 종료를 포함합니다. 기본적으로 꺼져 있습니다.

  • -v 상세 수준: 출력 메시지의 수준을 높입니다.

  • -w 콘텐츠 쓰기: 콘텐츠 문자열을 'all.re'라는 파일에 씁니다.

  • -W 윈도우: 스캔 공격의 윈도우 또는 기간(초)입니다.

  • -Z 응답 확률: 스캔이 응답을 받을 확률입니다. 즉, 대상 포트가 열려 있을 확률입니다 (기본값 20%).