├── 88x31.png
├── nmap.md
├── README.md
├── icons7.svg
├── botito.sh
├── instalacion.md
├── telegram.md
├── reglas.md
├── ManoliBot2.md
├── ManoliBot2.sh
└── local.rules
/88x31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dimw1t/Suricata-Telegram/HEAD/88x31.png
--------------------------------------------------------------------------------
/nmap.md:
--------------------------------------------------------------------------------
1 | ## Reglas para nmap
2 |
3 |
4 |
5 | - Copiar el archivo ```local.rules``` de este repositorio y pegarlo en /var/lib/suricata/rules/local.rules [Enlace aquí](local.rules)
6 |
7 | 
8 |
9 | 2. Entramos de nuevo en el archivo de configuración
10 |
11 | ```
12 | nano /etc/suricata/suricata.yaml
13 | ```
14 |
15 | 3. Añadimos la nueva regla (local.rules)
16 |
17 | 
18 |
19 |
20 | ```
21 | systemctl restart suricata
22 | ```
23 |
24 | #### Comprobación
25 |
26 | Una vez lleguemos hasta aqui pordemos comprobar que suricata funciona.
27 | Hacemos un nmap -sT -A (ip) y comprobamos los logs de suricata.
28 |
29 | 
30 |
31 | Ejecutamos el comando:
32 |
33 | ```
34 | tail -f /var/log/suricata/fast
35 | ```
36 |
37 | 
38 |
39 | Como podemos comprobar nos da una información detallada del nmap que acabo de recibir.
40 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Suricata-Telegram
2 |
3 | 
4 |
5 |
6 | ## Introducción
7 |
8 | Versiones:
9 | Suricata 6.0.10
10 | Ubuntu 22.04.3
11 |
12 | Este proyecto tiene como objetivo mejorar la visibilidad y la respuesta ante las alertas generadas por Suricata, un sistema de detección y prevención de intrusos de código abierto. Integrando Suricata con Telegram, este notificador proporciona una solución eficaz para recibir notificaciones instantáneas sobre posibles amenazas y actividades sospechosas directamente en tu dispositivo móvil a través de la aplicación de mensajería Telegram.
13 |
14 | **Características destacadas:**
15 |
16 | - Integración sencilla con Suricata.
17 | - Notificaciones instantáneas a través de Telegram.
18 | - Mejora la capacidad de respuesta ante posibles amenazas.
19 | - Personalización de alertas según tus necesidades.
20 |
21 |
22 | ## Contenidos
23 |
24 | * 1- [Instalacion de Suricata](instalacion.md)
25 | * 2- [Creación de Reglas](reglas.md)
26 | * 3- [Configuración de alertas con Telegram](telegram.md)(opcional)
27 |
28 | ## Licencia
29 |
30 |
31 |
32 |
/newbot para crear un nuevo bot. Sigue las instrucciones para proporcionar un nombre y un nombre de usuario para tu bot.
12 |
13 | ### Obtención del Token del Bot:
14 |
15 | 2- Después de crear el bot, BotFather te proporcionará un **token único** que necesitarás para interactuar con la API de Telegram en nombre de tu bot. Este token actúa como una especie de contraseña para tu bot y debes mantenerlo seguro.
16 |
17 | ### Configuración de Parámetros:
18 |
19 | 3- Una vez que tengas el token de tu bot, puedes utilizarlo para enviar y recibir mensajes a través de la API de Telegram. Además del token, **también necesitarás el chat_id**, que es el identificador único de la conversación a la que quieres enviar mensajes. Puedes **obtener este ID enviando un mensaje al bot (IDbot)**. Abre este chat y escribe **/getid**.
20 |
21 | ### Envío de Mensajes:
22 |
23 | 4- Con el token del bot y el chat_id, puedes enviar mensajes a través de la API de Telegram utilizando diferentes métodos proporcionados por la API, como **sendMessage** para enviar mensajes de texto, **sendPhoto** para enviar imágenes, **sendDocument** para enviar documentos, etc.
24 |
25 |
26 | ## Configuración Alertas con Telegram
27 |
28 | Para habilitar las alertas de Telegram, simplemente sigue estos pasos y utiliza el script proporcionado (bobito.sh) incluido en este repositorio
29 |
30 | - 1- Copia el script bobito.sh en el directorio /etc/suricata. [Enlace al script](botito.sh)
31 |
32 | - 2- Modificamos los parametros **telegram_bot_token** y **chat_id**. Puedes encontrar estos parámetros en la plataforma Telegram al crear un nuevo bot.
33 |
34 | 
35 |
36 | - 3- Configura un cron para ejecutar el script con la frecuencia que mejor se adapte a tus necesidades.
37 |
38 | ``` Crontab -e```
39 |
40 | 
41 |
42 | Siguiendo estos pasos, las alertas de Suricata serán enviadas a través de Telegram según la configuración que hayas establecido. Asegúrate de ajustar la frecuencia del cron y otros parámetros según tus preferencias y requisitos específicos.
43 |
--------------------------------------------------------------------------------
/reglas.md:
--------------------------------------------------------------------------------
1 | ## Creacción y administración de reglas y alertas
2 |
3 | Suricata utiliza firmas para activar alertas, por lo que es necesario instalarlas y mantenerlas actualizadas. Las firmas también se denominan reglas, de ahí el nombre de archivos de reglas . Con la herramienta, suricata-update las reglas se pueden buscar, actualizar y administrar para proporcionarlas a Suricata.
4 |
5 | Ejecutamos el modo predeterminado que recupera el conjunto de reglas de ET Open:
6 |
7 | ```
8 | sudo suricata-update
9 | ```
10 | Luego, se instalan las reglas, ```/var/lib/suricata/rules``` que también son las predeterminadas en la configuración y utilizan el único archivo. ``` suricata.rules ```
11 |
12 | Para mantener actualizadas las reglas de detección de amenazas en Suricata y ver las fuentes disponibles:
13 |
14 | ```
15 | sudo suricata-update update-sources
16 | sudo suricata-update list-sources
17 | ```
18 | Cada conjunto de reglas tiene un nombre que comienza con el nombre del proveedor y luego describe el propósito o tipo de amenazas que aborda. Por ejemplo, el conjunto de reglas de identificación de tráfico de OISF se llama "oisf/trafficid".
19 |
20 | Para habilitar un conjunto de reglas específico, como "oisf/trafficid":
21 |
22 | ```
23 | sudo suricata-update enable-source oisf/trafficid
24 | sudo suricata-update
25 | ```
26 | Puedes habilitar otros conjuntos de reglas de la misma manera, por ejemplo:
27 |
28 | ```
29 | sudo suricata-update enable-source sslbl/ssl-fp-blacklist
30 | sudo suricata-update enable-source ptresearch/attackdetection
31 | ```
32 | Puedes habilitar otros conjuntos de reglas de la misma manera, por ejemplo:
33 |
34 | ```
35 | sudo suricata-update enable-source
36 |
37 | Sin token:
38 | sudo suricata-update enable-source sslbl/ssl-fp-blacklist
39 | sudo suricata-update enable-source sslbl/ja3-fingerprints
40 | sudo suricata-update enable-source ptresearch/attackdetection
41 | sudo suricata-update enable-source et/open
42 | sudo suricata-update enable-source etnetera/aggressive
43 | sudo suricata-update enable-source tgreen/hunting
44 | sudo suricata-update enable-source malsilo/win-malware
45 | sudo suricata-update enable-source stamus/lateral
46 | sudo suricata-update enable-source pawpatrules
47 | sudo suricata-update enable-source oisf/trafficid
48 |
49 |
50 | Con token:
51 | sudo suricata-update enable-source scwx/malware
52 | sudo suricata-update enable-source et/pro
53 | sudo suricata-update enable-source scwx/enhanced
54 | sudo suricata-update enable-source scwx/security
55 | sudo suricata-update enable-source stamus/nrd-30-open
56 | sudo suricata-update enable-source stamus/nrd-14-open
57 | sudo suricata-update enable-source stamus/nrd-entropy-30-open
58 | sudo suricata-update enable-source stamus/nrd-entropy-14-open
59 | sudo suricata-update enable-source stamus/nrd-phishing-30-open
60 | sudo suricata-update enable-source stamus/nrd-phishing-14-open
61 |
62 |
63 | ```
64 | Para ver las fuentes habilitadas:
65 |
66 | ```
67 | sudo suricata-update list-enabled-sources
68 | ```
69 |
70 | La respuesta debería incluir los conjuntos de reglas habilitados.
71 |
72 | Y finalmente, para aplicar los cambios y descargar las reglas habilitadas:
73 |
74 | ```
75 | sudo suricata-update
76 | ```
77 | Si deseas deshabilitar o eliminar una fuente específica, por ejemplo, "et/pro":
78 |
79 | ```
80 | suricata-update disable-source et/pro
81 | ```
82 |
83 | O para eliminar completamente:
84 |
85 | ```
86 | suricata-update remove-source et/pro
87 | ```
88 |
89 |
90 |
91 | - - -
92 |
93 | - [Reglas para NMAP](nmap.md)
94 |
95 |
--------------------------------------------------------------------------------
/ManoliBot2.md:
--------------------------------------------------------------------------------
1 | # Ejecutar comandos desde Telegram
2 |
3 |
4 | Hasta este punto, hemos configurado un sistema de detección de intrusos utilizando Suricata, el cual nos envía alertas a Telegram cuando se detecta alguna intrusión en nuestro servidor. Ahora, vamos a implementar la funcionalidad necesaria para interactuar con nuestro Bot de Telegram y ejecutar comandos en el servidor.
5 |
6 | Este proceso nos permitirá utilizar el Bot de Telegram para enviar comandos al servidor y recibir los resultados de su ejecución directamente en nuestra conversación de Telegram. Esto añade una capa adicional de accesibilidad y control sobre nuestro servidor, ya que podemos gestionarlo y realizar acciones específicas sin necesidad de acceder al terminal directamente.
7 |
8 | 1. Navega hasta la carpeta donde se encuentra el bot en el servidor:
9 |
10 | ```
11 | cd /opt/ManoliBot
12 | ```
13 |
14 | 2.Agrega el script [ManoliBot2.sh](ManoliBot2.sh) que se encuentra en este repositorio.
15 |
16 | ```
17 | nano ManoliBot-2.0.sh
18 | ```
19 |
20 | 3.Crea las carpetas necesarias y otorga los permisos adecuados:
21 |
22 | ```
23 | sudo mkdir /opt/ManoliBot/inf
24 | sudo mkdir /opt/ManoliBot/control
25 | sudo chmod u+w /opt/ManoliBot/control/
26 | sudo chmod 777 /opt/ManoliBot/ManoliBot-2.0.sh
27 |
28 | ```
29 |
30 | 4. Crea el servicio systemd para ManoliBot.
31 |
32 | Navega hasta el directorio /etc/systemd/system y crea el archivo manoli-bot.service con el siguiente contenido:
33 |
34 | ```
35 | nano manoli-bot.service
36 | ```
37 |
38 | ```
39 | [Unit]
40 | Description=ManoliBot es una persona maravillosa y vamos a salir a decirselo.
41 |
42 | [Service]
43 | Type=simple
44 | User=root
45 | ExecStart=/opt/ManoliBot/ManoliBot-2.0.sh
46 | RestartSec=5
47 |
48 | [Install]
49 | WantedBy=default.target
50 |
51 | ```
52 | Guarda y cierra el editor.
53 |
54 |
55 | 5. Ahora puedes ejecutar y administrar el servicio ManoliBot utilizando los siguientes comandos:
56 |
57 | ```
58 | systemctl start manoli-bot
59 | systemctl stop manoli-bot
60 | systemctl enable manoli-bot
61 | ```
62 |
63 | 
64 |
65 | ### Lista de Comandos Prohibidos
66 |
67 | Para evitar ejecutar comandos peligrosos en el servidor, se proporciona un archivo donde se pueden listar todos los comandos que no se desean permitir.
68 |
69 | 1. Crea un nuevo archivo llamado forbidden_commands.txt utilizando el editor de texto de tu preferencia. Por ejemplo, puedes usar Nano:
70 |
71 | ```
72 | nano /opt/ManoliBot/control/forbidden_commands.txt
73 | ```
74 |
75 | 2. En este archivo, puedes agregar los comandos que no deseas permitir. A continuación se proporciona un ejemplo de cómo podrías estructurar este archivo:
76 |
77 | 
78 |
79 | ```
80 | chmod -R 777 /
81 | dd if=/dev/zero of=/dev/sda
82 | mkfs.ext4 /dev/sda1
83 | shutdown -h now
84 | sudo
85 | su
86 | rm -rf /
87 | chmod
88 | chown
89 | mkfs
90 | dd
91 | shutdown
92 | reboot
93 | kill
94 | passwd
95 | wget
96 | curl
97 | cp
98 | scp
99 | nano
100 | visudo
101 | ```
102 | Guarda los cambios y cierra el editor. Ahora, los comandos listados en este archivo no podrán ser ejecutados a través del bot de Telegram.
103 |
104 | ## Comprobaciones:
105 |
106 | Desde nuestro Telegram, vamos a nuestro bot:
107 |
108 | 
109 |
--------------------------------------------------------------------------------
/ManoliBot2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Replace 'Escribe-tu-token' with your actual Telegram bot token
4 | TELEGRAM_TOKEN="Escribe-tu-token"
5 |
6 | # Replace 'Escribe-tu-chat-id' with your actual chat ID
7 | CHAT_ID="Escribe-tu-id"
8 |
9 | # Nombre del archivo donde se guardarán los mensajes
10 | mensaje_file="/opt/ManoliBot/inf/MensajesManoli.txt"
11 |
12 | # Ruta del archivo que contiene los comandos prohibidos
13 | forbidden_commands_file="/opt/ManoliBot/control/forbidden_commands.txt"
14 |
15 | # Función para enviar mensajes de respuesta
16 | send_message() {
17 | local message="$1"
18 | curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" -d "chat_id=${CHAT_ID}&text=${message}"
19 | }
20 |
21 | # Función para ejecutar comandos y enviar el resultado como mensaje
22 | execute_command() {
23 | local command="$1"
24 | local result
25 |
26 | # Verificar si el comando está en la lista de comandos prohibidos
27 | if grep -Fxq "$command" "$forbidden_commands_file"; then
28 | send_message "El comando '$command' está prohibido y no se puede ejecutar."
29 | else
30 | result=$(eval "$command" 2>&1)
31 | send_message "Resultado de ejecución del comando: $result"
32 | fi
33 | }
34 |
35 | # Obtener el último ID de actualización procesado
36 | get_last_update_id() {
37 | if [[ -f last_update_id.txt ]]; then
38 | cat last_update_id.txt
39 | else
40 | echo 0
41 | fi
42 | }
43 |
44 | # Guardar el último ID de actualización procesado y limpiar el archivo
45 | save_last_update_id() {
46 | local update_id="$1"
47 | echo "$update_id" > last_update_id.txt
48 | }
49 |
50 | # Leer los mensajes entrantes del bot de Telegram
51 | while true; do
52 | # Obtener el último ID de actualización procesado
53 | last_update_id=$(get_last_update_id)
54 |
55 | # Obtener las actualizaciones desde el último ID de actualización procesado
56 | updates=$(curl -s "https://api.telegram.org/bot${TELEGRAM_TOKEN}/getUpdates?offset=$((last_update_id + 1))")
57 |
58 | # Verificar si hay mensajes nuevos
59 | if [[ $(jq '.result | length' <<< "$updates") -gt 0 ]]; then
60 | # Leer cada mensaje nuevo
61 | jq -c '.result[]' <<< "$updates" | while read -r update; do
62 | # Obtener el tipo del mensaje
63 | type=$(jq -r '.message.chat.type' <<< "$update")
64 |
65 | # Verificar si es un mensaje de chat y no una actualización de entrega
66 | if [[ "$type" == "private" ]]; then
67 | # Obtener el texto del mensaje
68 | text=$(jq -r '.message.text' <<< "$update")
69 |
70 | # Guardar el mensaje en el archivo
71 | echo "$text" >> "$mensaje_file"
72 |
73 | # Procesar el comando recibido
74 | case "$text" in
75 | "/start")
76 | send_message "¡Hola! Soy un bot de Telegram. Puedes enviarme comandos para ejecutar en el servidor."
77 | ;;
78 | "/ayuda")
79 | send_message "Lista de comandos disponibles:
80 | /ayuda - Muestra la ayuda
81 | /ejecutar - Ejecutar [comando]
82 | /start - Empezar a ejecutar comandos"
83 | ;;
84 | # Comando para ejecutar comandos en el servidor
85 | "/ejecutar "*)
86 | command_to_execute="${text#/ejecutar }"
87 | execute_command "$command_to_execute"
88 | ;;
89 | *)
90 | send_message "Comando desconocido. Usa /ayuda para ver la lista de comandos disponibles."
91 | ;;
92 | esac
93 | fi
94 | done
95 |
96 | # Guardar el ID de la última actualización procesada
97 | last_processed_update_id=$(jq -r '.result[-1].update_id' <<< "$updates")
98 | save_last_update_id "$last_processed_update_id"
99 | fi
100 |
101 | # Esperar antes de verificar nuevas actualizaciones
102 | sleep 1
103 |
--------------------------------------------------------------------------------
/local.rules:
--------------------------------------------------------------------------------
1 | # opnsense-suricata-nmaps
2 | # OPNsense's Suricata IDS/IPS Nmap Detection Rules
3 | # v. 1.4.2 / June 8th 2023 by Aleksi Bovellan
4 | # https://github.com/aleksibovellan/opnsense-suricata-nmaps
5 |
6 | # For Nmap Detections between scan speeds of -T5-T0.
7 |
8 |
9 | # Nmap -sS scans at -T0, this rule has a limited port range to avoid constant alerts from generic WAN scanners:
10 |
11 | alert tcp any any -> any [21,22,23,25,80,88,110,135,137,138,139,161,389,443,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"SUSP PORT PROBE KNOWN TCP (type -sS)"; flow:stateless; flags:S; window:1024; tcp.mss:1460; threshold:type threshold, track by_src, count 4, seconds 1100; classtype:attempted-recon; sid:1000001; priority:2; rev:2;)
12 | alert tcp any any -> any [21,22,23,25,80,88,110,135,137,138,139,161,389,443,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"POSIBLE SCAN NMAP KNOWN TCP (type -sS)"; flow:stateless; flags:S; window:1024; tcp.mss:1460; threshold:type threshold, track by_src, count 3, seconds 1210; classtype:attempted-recon; sid:1000002; priority:2; rev:2;)
13 |
14 |
15 | # Nmap -sT scans at -T0, these rules were DISABLED due to false positives from legit TCP (SYN ACK) traffic, but -sT -T0 scans MIGHT POSSIBLY still be detected by other active rules at some point:
16 |
17 | # DISABLED rule due to some false positives: alert tcp any any -> any [21,23,25,88,110,135,137,138,139,161,389,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"SUSP PORT PROBE KNOWN TCP (type -sT)"; flow:stateless; flags:S; window:64240; tcp.mss:1460; threshold:type threshold, track by_src, count 4, seconds 1100; classtype:attempted-recon; sid:1000003; priority:2; rev:2;)
18 | # DISABLED rule due to some false positives: alert tcp any any -> any [21,23,25,88,110,135,137,138,139,161,389,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"POSSBL SCAN NMAP KNOWN TCP (type -sT)"; flow:stateless; flags:S; window:64240; tcp.mss:1460; threshold:type threshold, track by_src, count 3, seconds 1210; classtype:attempted-recon; sid:1000004; priority:2; rev:2;)
19 |
20 |
21 | # Nmap -sU scans at -T0, this rule has a limited port range to avoid constant alerts from generic WAN scanners:
22 |
23 | alert udp any any -> any [53,67,68,69,123,161,162,389,520,1026,1027,1028,1029,1434,1900,11211,12345,27017] (msg:"POSSBL SCAN NMAP KNOWN UDP (type -sU)"; flow:stateless; classtype:attempted-recon; sid:1000005; priority:2; rev:7; threshold:type limit, track by_src, count 3, seconds 1210; dsize:0;)
24 |
25 |
26 | # Nmap -f scans at -T0:
27 |
28 | alert ip any any -> any any (msg:"POSSBL SCAN NMAP KNOWN FRAGM (type -f)"; fragbits:M+D; threshold:type limit, track by_src, count 3, seconds 1210; classtype:attempted-recon; sid:1000006; priority:2; rev:6;)
29 | alert ip any any -> any any (msg:"POSSBL SCAN NMAP FRAGM (type -f)"; fragbits:M; threshold:type threshold, track by_src, count 3, seconds 1210; classtype:attempted-recon; sid:1000007; priority:2; rev:1;)
30 |
31 |
32 | # Nmap -sS scans between -T5-T1:
33 |
34 | alert tcp any any -> any [21,22,23,25,80,88,110,135,137,138,139,161,389,443,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"POSIBLE SCAN NMAP KNOWN TCP (type -sS)"; flow:stateless; flags:S; window:1024; tcp.mss:1460; threshold:type threshold, track by_src, count 7, seconds 180; classtype:attempted-recon; sid:1000008; priority:2; rev:2;)
35 | alert tcp any any -> any ![21,22,23,25,80,88,110,135,137,138,139,161,389,443,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"POSIBLE SCAN NMAP TCP (type -sS)"; flow:stateless; flags:S; window:1024; tcp.mss:1460; threshold:type threshold, track by_src, count 7, seconds 180; classtype:attempted-recon; sid:1000009; priority:2; rev:2;)
36 |
37 |
38 | # Nmap -sT scans between -T5-T1:
39 |
40 | alert tcp any any -> any [21,22,23,25,80,88,110,135,137,138,139,161,389,443,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"POSIBLE SCAN NMAP KNOWN TCP (type -sT)"; flow:stateless; flags:S; window:64240; tcp.mss:1460; threshold:type threshold, track by_src, count 15, seconds 60; classtype:attempted-recon; sid:1000010; priority:2; rev:4;)
41 | alert tcp any any -> any ![21,22,23,25,80,88,110,135,137,138,139,161,389,443,445,465,514,587,636,995,1025,1026,1027,1028,1029,1433,1720,3306,3389,5900,8443,11211,27017] (msg:"POSIBLE SCAN NMAP TCP (type -sT)"; flow:stateless; flags:S; window:64240; tcp.mss:1460; threshold:type threshold, track by_src, count 15, seconds 60; classtype:attempted-recon; sid:1000011; priority:2; rev:4;)
42 |
43 |
44 | # Nmap -sU scans between -T5-T1:
45 |
46 | alert udp any any -> any [53,67,68,69,123,161,162,389,520,1026,1027,1028,1029,1434,1900,11211,12345,27017] (msg:"POSIBLE SCAN NMAP KNOWN UDP (type -sU)"; flow:stateless; classtype:attempted-recon; sid:1000012; priority:2; rev:7; threshold:type limit, track by_src, count 10, seconds 300; dsize:0;)
47 | alert udp any any -> any ![53,67,68,69,123,161,162,389,520,1026,1027,1028,1029,1434,1900,11211,12345,27017] (msg:"POSIBLE SCAN NMAP UDP (type -sU)"; flow:stateless; classtype:attempted-recon; sid:1000013; priority:2; rev:6; threshold:type threshold, track by_src, count 10, seconds 300; dsize:0;)
48 |
49 |
50 | # Nmap -f scans between -T5-T1:
51 |
52 | alert ip any any -> any any (msg:"POSIBLE SCAN NMAP KNOWN FRAGM (type -f)"; fragbits:M+D; threshold:type limit, track by_src, count 20, seconds 1200; classtype:attempted-recon; sid:1000014; priority:2; rev:6;)
53 | alert ip any any -> any any (msg:"POSIBLE SCAN NMAP FRAGM (type -f)"; fragbits:M; threshold:type threshold, track by_src, count 20, seconds 1200; classtype:attempted-recon; sid:1000015; priority:2; rev:1;)
54 |
55 |
56 | # MetaSploit / Meterpreter / NetCat associated port 4444 connection attempts:
57 |
58 | # TCP source port: 4444
59 | alert tcp any 4444 -> any any (msg:"POSIBLE SCAN M-SPLOIT R.SHELL TCP"; classtype:trojan-activity; sid:1000016; priority:1; rev:1;)
60 |
61 | # UDP source port: 4444
62 | alert udp any 4444 -> any any (msg:"POSIBLE SCAN M-SPLOIT R.SHELL UDP"; classtype:trojan-activity; sid:1000017; priority:1; rev:1;)
63 |
64 | # TCP destination port: 4444
65 | alert tcp any any -> any 4444 (msg:"POSIBLE SCAN M-SPLOIT B.SHELL TCP"; classtype:trojan-activity; sid:1000018; priority:1; rev:2;)
66 |
67 | # UDP destination port: 4444
68 | alert udp any any -> any 4444 (msg:"POSIBLE SCAN M-SPLOIT B.SHELL UDP"; classtype:trojan-activity; sid:1000019; priority:1; rev:2;)
69 |
--------------------------------------------------------------------------------