Logo de NAUTOPIA y de la Comunidad Nautópata    NAUTOPIA: Privacidad, Seguridad y Libertades Civiles    Foro Local de TARRACO, Tarragona

 

ANILLO     CONTACTAR    CULTURALIA     DOWNLOADS    KIOSKO    FORO         HOME

 

 Translate 

 

 

contacto de Alfon

 

TALLER de Sistemas de detección de intrusiones.

SNORT

 

CAPITULO IV: SNORT EN LINEA DE COMANDOS.

 

Introducción.

Ya adelantamos algo sobre usar Snort en línea de comando en el capítulo I de esta serie. Ahora nos adentraremos en el uso de Snort de esta forma, abandonando por completo IDSCenter y cualquier GUI intermedia.

Aprenderemos también a configurar:

  • Reglas
  • Preprocesadores
  • y otras opciones

desde el archivo de configuaciones de snort: snort.conf.

 

Todos los ejemplos, mientras no se indique lo contrario, serán válidos para win32 y Linux / UNIX.

C:\Snort20\bin>snort

-*> Snort! <*-

Version 2.0.0-ODBC-MySQL-FlexRESP-WIN32 (Build 72)

By Martin Roesch (roesch@sourcefire.com, www.snort.org)

1.7-WIN32 Port By Michael Davis (mike@datanerds.net, www.datanerds.net/~mike)

1.8 - 2.0 WIN32 Port By Chris Reid (chris.reid@codecraftconsultants.com)

USAGE: snort [-options] <filter options>

snort /SERVICE /INSTALL [-options] <filter options>

snort /SERVICE /UNINSTALL

snort /SERVICE /SHOW

 

Options:

-A Set alert mode: fast, full, console, or none (alert file alerts only)

-b Log packets in tcpdump format (much faster!)

-c <rules> Use Rules File <rules>

-C Print out payloads with character data only (no hex)

-d Dump the Application Layer

-e Display the second layer header info

-E Log alert messages to NT Eventlog. (Win32 only)

-f Turn off fflush() calls after binary log writes

-F <bpf> Read BPF filters from file <bpf>

-h <hn> Home network = <hn>

-i <if> Listen on interface <if>

-I Add Interface name to alert output

-k <mode> Checksum mode (all,noip,notcp,noudp,noicmp,none)

-l <ld> Log to directory <ld>

-L <file> Log to this tcpdump file

-n <cnt> Exit after receiving <cnt> packets

-N Turn off logging (alerts still work)

-o Change the rule testing order to Pass|Alert|Log

-O Obfuscate the logged IP addresses

-p Disable promiscuous mode sniffing

-P <snap> Set explicit snaplen of packet (default: 1514)

-q Quiet. Don't show banner and status report

-r <tf> Read and process tcpdump file <tf>

-R <id> Include 'id' in snort_intf<id>.pid file name

-s Log alert messages to syslog

-S <n=v> Set rules file variable n equal to value v

-T Test and report on the current Snort configuration

-U Use UTC for timestamps

-v Be verbose

-V Show version number

-W Lists available interfaces. (Win32 only)

-w Dump 802.11 management and control frames

-X Dump the raw packet data starting at the link layer

-y Include year in timestamp in the alert and log files

-z Set assurance mode, match on established sesions (for TCP)

-? Show this information

<Filter Options> are standard BPF options, as seen in TCPDump

 

Uh, you need to tell me to do something...

: No such file or directory

 

 

Snort en modo Sniffer y registro de paquetes.

El formato genérico para este modo es:

snort [-opciones] < filtro >

C:\Snort20\bin>snort -v

Running in packet dump mode

Log directory = log


Initializing Network Interface \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}


--== Initializing Snort ==--

Initializing Output Plugins!

Decoding Ethernet on interface \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}


--== Initialization Complete ==--


-*> Snort! <*-

Version 2.0.0-ODBC-MySQL-FlexRESP-WIN32 (Build 72)

By Martin Roesch (roesch@sourcefire.com, www.snort.org)

1.7-WIN32 Port By Michael Davis (mike@datanerds.net, www.datanerds.net/~mike)

1.8 - 2.0 WIN32 Port By Chris Reid (chris.reid@codecraftconsultants.com)

05/21-11:00:28.593943 ARP who-has 192.168.2.92 tell 192.168.2.60


05/21-11:00:28.594419 ARP who-has 192.168.2.8 tell 192.168.2.60


05/21-11:00:28.594544 ARP who-has 192.168.2.93 tell 192.168.2.60


05/21-11:00:30.467265 192.168.2.5:1025 -> 192.168.2.1:139

TCP TTL:128 TOS:0x0 ID:16685 IpLen:20 DgmLen:104 DF

***AP*** Seq: 0x6B703 Ack: 0x2266A0C Win: 0x2238 TcpLen: 20

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=


05/21-11:00:30.467731 192.168.2.1:139 -> 192.168.2.5:1025

TCP TTL:128 TOS:0x0 ID:47513 IpLen:20 DgmLen:1500 DF

 

MODO SNIFFER

Con esta opción -v iniciamos snort visualizando en pantalla las cabeceras de los paquetes TCP/IP, es decir, en modo sniffer. Esta opción es el modo verbouse y mostrará las cabeceras IP, TCP, UDP y ICMP.

Si queremos, además, visualizar los campos de datos que pasan por la interface de red, añadiremos -d.

C:\Snort20\bin>snort -vd
Running in packet dump mode
Log directory = log

Initializing Network Interface \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}
.....

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

05/21-11:06:18.943887 192.168.4.5:3890 -> 192.168.4.15:8080

TCP TTL:128 TOS:0x0 ID:33216 IpLen:20 DgmLen:40 DF***A**** Seq: 0xE3A50016 Ack: 0x8B3C1E4D Win: 0xFAF0 TcpLen: 20

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

05/21-11:06:18.962018 192.168.4.5:3890 -> 192.168.4.15:8080
TCP TTL:128 TOS:0x0 ID:33217 IpLen:20 DgmLen:681 DF
***AP*** Seq: 0xE3A50016 Ack: 0x8B3C1E4D Win: 0xFAF0 TcpLen: 20
47 45 54 20 68 74 74 70 3A 2F 2F 77 77 77 2E 6F GET http://www.x
6D 65 6C 65 74 65 2E 63 6F 6D 2E 62 72 2F 73 75 xxxx.com.br/xx
70 65 72 6F 6D 65 6C 65 74 65 2F 64 6F 77 6E 6C xxxxxxx/downl
6F 61 64 73 2F 64 65 66 61 75 6C 74 2E 61 73 70 oads/default.asp
20 48 54 54 50 2F 31 2E 30 0D 0A 55 73 65 72 2D HTTP/1.0..User-
41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 2F 34 Agent: Mozilla/4
2E 30 20 28 63 6F 6D 70 61 74 69 62 6C 65 3B 20 .0 (compatible;
4D 53 49 45 20 36 2E 30 3B 20 57 69 6E 64 6F 77 MSIE 6.0; Window
73 20 4E 54 20 35 2E 30 29 20 4F 70 65 72 61 20 s NT 5.0) Opera
37 2E 31 31 20 20 5B 65 6E 5D 0D 0A 48 6F 73 74 7.11 [en]..Host
3A 20 77 77 77 2E 6F 6D 65 6C 65 74 65 2E 63 6F : www.xxxxx.co
6D 2E 62 72 0D 0A 41 63 63 65 70 74 3A 20 74 65 m.br..Accept: te
78 74 2F 68 74 6D 6C 2C 20 69 6D 61 67 65 2F 70 xt/html, image/p
6E 67 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 ng, image/jpeg,
69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 image/gif, image
2F 78 2D 78 62 69 74 6D 61 70 2C 20 2A 2F 2A 3B /x-xbitmap, */*;
71 3D 30 2E 31 0D 0A 41 63 63 65 70 74 2D 4C 61 q=0.1..Accept-La

......

Añadiendo la opción -e, snort nos mostrará información más detallada. Nos mostrará las cabeceras a nivel de enlace.

 

MODO PACKET LOGGER (registro de paquetes)

Con estas opciones, y dependiendo del tráfico en nuestra red, veremos gran cantidad de información pasar por nuestra pantalla, con lo cual sería interesante registrar, guardar estos datos a disco para su posterior estudio. Entraríamos entonces en snort como packet logger o registro de paquetes.

C:\Snort20\bin>snort -dev -l ./log

La opción -l indica a snort que debe guardar los logs en un directorio determinado, en este caso C:\Snort20\bin\log. Dentro de la carpeta log se creará una estructura de directorios donde se archivarán los logs.

Podemos:

-h  indicar la ip de la red a registrar

C:\Snort20\bin>snort -vde -l ./log -h 192.168.4.0/24
Running in packet logging mode
Log directory = ./log

 

-b  que el formato de los logs sea en modo binario

es decir, el modo que entiende TCPDump o Windump, para estudiar más a fondo con los potentes filtros de estos programas los logs de snort. La salida del logs en el caso de la opción de salida binaria ya no será una estructura de directorios, si no, un sólo archivo.

C:\Snort20\bin>snort -l ./log -b
Running in packet logging mode
Log directory = ./log

 Ventajas de utilizar esta opción -b

  • No hará falta indicarle IP alguna de nuestra red ( -h ).

  • Guardará todo en un mismo archivo y recogerá datos de toda nuestra red

  • Tampoco serán necesarias las opciones -de

  • Ni la opción -v.

 

Lectura del archivo binario generado

El archivo generado por snort en modo binario también podemos leerlo con este usando la opción:

-rnombrearchivo.log

 

Elección de interface de red

Otra opción a toma en cuenta es -i para indicar a snort qué interface de red usar en el caso de que tengamos dos o más.

  • Si usamos snort para Win32:

C:\Snort20\bin>snort -vde -i 1

  • Para Linux/UNIX.

# snort -vde -i eth0

  • Para averiguar las interfaces de que disponemos en Win32, usaremos la opción -W.

C:\Snort20\bin>snort -W

 

 

Snort en modo NIDS.

En este apartado es donde nos centraremos más. El modo detección de intrusos de red se activa añadiendo a la línea de comandos de snort la opción -c snort.conf.

C:\Snort20\bin>snort -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf

En el archivo snort.conf, se guarda toda la configuración de:

  • Las reglas

  • Preprocesadores

  • Otras configuraciones necesarias para el funcionamiento en modo NIDS

 

Con la opción -D indicará a snort que corra como un servicio.

  • Esto es sólo válido para las versión Linux/UNIX:

# snort -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf -D

  • Para las versión win32 usaremos /SERVICE /INSTALL:

C:\Snort20\bin>snort /SERVICE /INSTALL -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf

  • /SERVICE /UNINSTALL desinstala snort como servicio.

 

 

Alertas generadas. Modos de Alerta.

Snort creará, a parte de la estructura de directorios, un archivo alert.ids donde almacenará las alertas generadas.

Hay varias maneras de configurar la salida de snort, es decir, las alertas, el modo en que se almacenarán estas en el archivo alert.ids.

Snort dispone de siete modos de alertas en la línea de ordenes: completo, rápido, socket, syslog, smb (WinPopup), consola y ninguna.

 

FAST

El modo Alerta Rápida nos devolverá información sobre: tiempo, mensaje de la alerta, clasificación , prioridad de la alerta, IP y puerto de origen y destino.

C:\Snort20\bin>snort -A fast -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf

09/19-19:06:37.421286 [**] [1:620:2] SCAN Proxy (8080) attempt [**]

[Classification: Attempted Information Leak] [Priority: 2] ...

... {TCP} 192.168.4.3:1382 -> 192.168.4.15:8080

 

FULL

El modo de Alerta Completa nos devolverá información sobre: tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen / destino e información completa de las cabeceras de los paquetes registrados.

C:\Snort20\bin>snort -A full -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf

[**] [1:620:2] SCAN Proxy (8080) attempt [**]

[Classification: Attempted Information Leak] [Priority: 2]

09/19-14:53:38.481065 192.168.4.3:3159 -> 192.168.4.15:8080

TCP TTL:128 TOS:0x0 ID:39918 IpLen:20 DgmLen:48 DF

******S* Seq: 0xE87CBBAD Ack: 0x0 Win: 0x4000 TcpLen: 28

TCP Options (4) => MSS: 1456 NOP NOP SackOK

 

Información de la cabecera del paquete:

TCP TTL:128 TOS:0x0 ID:39918 IpLen:20 DgmLen:48 DF

******S* Seq: 0xE87CBBAD Ack: 0x0 Win: 0x4000 TcpLen: 28

TCP Options (4) => MSS: 1456 NOP NOP SackOK

 

SOCKET

Snort manda las alertas a través de un socket, para que las escuche otra aplicación.

Está opción es para Linux / UNIX.

# snort -A unsock -c snort.conf

 

CONSOLE

En modo console el programa imprime las alarmas en pantalla.

C:\Snort20\bin>snort -A console -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf

 

NONE

Se desactivan las alarmas.

# snort -A none -c snort.conf

 

SMB

Permite a Snort realizar llamadas al cliente de SMB (cliente de Samba, en Linux), y enviar mensajes de alerta a hosts Windows (WinPopUp). Evidentemente este modo es para sistemas Linux / UNIX.

Se ha de tener presente:

  • Para activar este modo de alerta, se debe compilar Snort con el conmutador de habilitar alertas SMB (enable -smbalerts).

  • Para usar esta característica enviando un WinPopUp a un sistema Windows, añadiremos a la línea de comandos de snort:

-M WORKSTATIONS

 

SYSLOG

El programa Snort envía las alarmas al syslog.

C:\Snort20\bin>snort -A console -dev -l ./log -h 192.168.4.0/24 -c ../etc/snort.conf -s

Este modo dispone de varios parámetros, que estudiaremos más adelante.

 

EVENTLOG

Funcionando en este modo se registra las alertas para visualizarse a través del visor de sucesos de un sistema windows. Esta opción se activará mediante -E y sólo para Win32.

 

 

--------

PROXIMAMENTE

En próximos capítulos avanzaremos en la creación de reglas snort, explicando todas las opciones y seguiremos con Snort en línea de comandos con la configuración del archivo snort.conf.

 

 

-Taller IDS-

 

 

 

 
 

NAUTOPIA © 2003. Reservados todos los derechos.