Lathack

Comandos de auditoría en Redes con Linux

Comandos de auditoría en Linux

Las siguientes herramientas representan los comandos de auditoría en redes con Linux. Los mismos, son fundamentales en entornos de pentesting y administración de redes. Por tal motivo, entraremos en detalle con cada uno viendo algunas aplicaciones y ejemplos.

Comando nmap

Este comando es usado para el escaneo de hosts y los servicios que estos estén ejecutando, como así también es una herramienta de diagnóstico por los administradores o técnicos de redes.

¿Cómo funciona este comando?

El método predeterminado que utiliza nmap para descubrir hosts es intentar establecer una conexión TCP SYN a 1000 de los puertos más comunes, así como una solicitud de eco icmp para determinar si un host está activo. Agregado a esto, realizará una búsqueda inversa de DNS en las direcciones identificadas, ya que a veces puede resultar ser información útil. Su función se desarrolla de la siguiente forma:

echo icmp ping TCP SYN al Puerto 443 ping TCP ACK al puerto 80 icmp timestamp

Opciones más frecuentes:

-s Para hacer un escaneo.

-P Escaneo ISMP ya que será un escaneo ping a toda la sub red.

-n Para evitar la resolución de nombres así será más rápido.

-v Modo verboso.

-p- Escanea los 65535 puertos del objetivo.

-V Muestra la versión de los servicios.

Estado de Puertos

ESTADO

DESCRIPCIÓN

open

El puerto está atendiendo y puede recibir conexiones y/o paquetes.

closed

No hay aplicaciones atendiendo.

open|filtered

Está abierto o filtrado pero nmap no puede discernirlo.

closed|filtered

Está cerrado o filtrado pero nmap no puede discernir.

Opciones más usadas

Escaneo TCP:

Es el tipo de escaneo predeterminado TCP. Hace que el sistema operativo establezca una conexión usando la API Berkeley Sockets. Al requerir el 3-way-handshake hace el escaneo más largo y menos eficiente.

# nmap -sT 10.0.3.11,226

Comandos de auditoría en Linux

Escaneo UDP:

Este método envía un paquete vacío a cada Puerto de la red. Es más lento que TCP y menos eficiente al tratar de verificar si un puerto este cerrado. Por ejemplo:

# nmap –Su 192.168.0.101

Comandos de auditoría en Linux

Detectar puertos TCP de manera furtiva:

Este escaneo es mucho más rápido que el visto anterior ya que, permite diferenciar entre los distintos estados de un puerto y determina si un puerto está abierto cuando recibe como respuesta un segmento SYN/ACK o SYN, concluye que un puerto está cerrado si recibe un segmento RST.

# nmap 192.168.1.1-150 -p 22-443

Comandos de auditoría en Linux

Buscar Servicios y sus Versiones:

# nmap –sV 10.10.10.1

Comandos de auditoría en Linux

Desabilitar el descubrimiento de Host:

Este comando también nos permite saltear el método de descubrimiento de hosts, es decir, aplica resolución DNS.

# nmap –Pn –sS 192.168.0.1-254 –p22 -10000

Comandos de auditoría en Linux

Esta herramienta representa uno de los comandos de auditoría en redes con Linux más utilizado en entornos profesionales. Puede ver este comando en «acción» en nuestra página dentro del nivel avanzado. Allí encontrará su uso en entornos de Pentesting.

Comando netcat

Netcat es una herramienta ,cuyo comando es nc, y es muy usado dentro de comandos de auditoría en Redes con linux. Esto se debe, no solo porque también nos permite realizar escaneos como lo hacíamos con nmap. sino porque nos permite, leer, escribir y transferir datos en la red usando los puertos TCP y UDP. Además, puede utilizarse, por ejemplo, para diagnosticar errores y problemas que afecten a la funcionalidad y la seguridad de una red (como el escaneo de puertos). Este software permite configurar servidores de chat y de web e iniciar consultas por correo. Es decir, puede funcionar como sistema Cliente-Servidor.

Sintaxis:

# nc (opciones) HOST PUERTO

Algunas opciones mas usadas son:

-l Se coloca a la escucha mediante un puerto para una conexión remota o local.

-v Modo verboso. Muestra información de la conexión.

-p Establece el puerto a utilizarse.

-u Uso del protocolo UDP (ya que por defecto usa TCP).

-z Modo de escáner de puerto (modo de I/O 0); solo escaneo para servicios de escucha (no envío de datos).

-k Permanece el puerto abierto, aunque una de las partes se salga de la conexión.

-c Permite ejecutar comando de un Shell a otro.

-e Especifica un archivo luego de ser ejecutado (se usa normalmente en conjunto con –c).

Tener en cuenta

En Debian puede haber múltiples versiones de netcat, por ejemplo observemos la siguiente situación:

# update-alternatives –config nc

Se está usando, en nuestro caso, ncat en modo automático. En caso de querer poseer este u otro, podemos instalarlo con # apt –y install ncat (u otra versión). En distribuciones Debian podemos hacer que el sistema alternatives use “netcat” como variante preferida de la siguiente manera:

# update-alternatives –install /bin/nc  /usr/bin/ncat 60

Ejemplos más usados

Conectarse via https por el puerto 443 de un host:

# nc –v www.google.com 443

También podemos verificar sobre el estado de la conexión, o simplemente, saber si hay algún puerto abierto.

# nc –z www.google.com 443

Como podemos ver, no estamos conectados en el puerto 444 por tal motivo nos responde con 1

El significado de estado en los números es el siguiente:

0

La conexión fue realizada con éxito

1

Algún tipo de error en la conexión establecida

2

Error desconocido

Abrir un puerto en escucha para recibir conexiones:

# nc –lvp 2389

También podemos abrir varios puertos en escucha:

# nc –lvp 20-26

Si quisiéramos ingresar a dicha conexión, suponiendo que la IP es 192.168.0.100 desde otro host, haríamos:

# nc 192.168.0.102 2389

Vemos como el host (kali) le envía un mensaje “Hola server” a nuestro server (Windows) como muestra la imagen anterior.

Del mismo modo, podemos ejecutar un comando de manera remota, por ejemplo:

# nc 192.168.0.102 2389 -c “reboot –f”

Podríamos decir, que de esta forma, hemos creado un servidor de chat entre las dos máquinas. Incluso con la opción –u podemos pasarlo a modo UDP, ya que netcat usa TCP de forma predeterminada.

Copiar un archivo de un Host otro

La máquina receptora opera en modo de escucha y recibe datos a través de un puerto en particular. La máquina emisora ​​envía los datos mediante la creación de una conexión con el receptor. Esto construye un modelo Cliente-Servidor con esta herramienta.

Suponiendo que la maquina receptora se encuentra en escucha. Su dirección IP es 192.168.0.102 entonces haremos:

# nc –lvp 2389 > file.txt

En el caso de la máquina emisora haríamos:

# nc 192.168.0.102 < /etc/passwd

Como resultado podemos ver el contenido del archivo /etc/passwd de kali, dentro del archivo file.txt perteneciente a Windows.

Puede ver como ganamos acceso a otra máquina, de forma directa e inversa, a través de esta herramienta en la página del nivel avanzado.

Crear un servidor Proxy

En este caso vamos a crear un intermediario entre el cliente y el servidor, y así poder, analizar el tráfico y las peticiones en la red.

Nos basaremos en la creación de un “pipe” o “tubería” con el comando mkfifo, cuya función es generar un túnel de entrada y salida a través de dos puertos distintos, ayudando así, a la comunicación entre dos procesos.

# mkfifo tunelpipe

# nc –lvp 8080 0<tunelpipe | nc 192.168.0.102 80 1>tunelpipe

Otra forma un poco mas simple:

# nc –lvp 8080 | nc 192.168.0.102 80

Levantar un servidor web con ssl:

# cat backup.tar.gz | nc –ssl -l 443

Luego desde el cliente se puede hacer:

# curl -O -k https://10.0.2.15/backup.tar.gz

Comando lsof

El comando lsof es una herramienta muy utilizada cuya función es realizar una tarea tan simple como importante: Mostrar todos los archivos abiertos en el sistema. Existe un principio famoso en los sistemas operativos tipo UNIX el cual dice que “todo es archivo”. En nuestro caso, hay archivos que tienen que ver con redes, de manera que puede ser una forma muy útil para obtener información local de los sockets. Por tal motivo, este es otro ejemplo de comandos de auditorías en redes con linux ya que dicha herramienta, a la hora de llevar acabo conexiones, será muy usada.

Ejemplos más usados

Mostrar todos los archivos de Internet:

# lsof –i

Comandos de auditoría en Linux

Como podemos ver muestra información de gran utilidad como el servicio y/o comando al que pertenece el proceso (COMMAND), el PID, usuario que lo está ejecutando (USER), el descriptor de archivo (FD), tipo de nodo asociado con el fichero (TYPE), número de dispositivo (DEVICE), el tamaño del fichero y el nombre/ruta al mismo.

Ver conexiones TCP:

# lsof –i | grep TCP

Ver archivos abiertos que usen el puerto 22:

# lsof –i :22

Ver conexiones por rango TCP del puerto 22 al 1024:

# lsof –i TCP:22-1024

Mostrar archivo de un proceso en especifico:

# lsof +p PID

Comandos de auditoría en Linux

Mostrar los archivos de un usuario del sistema:

# lsof –u user

En este caso utilizamos tail -5 para que solo nos muestre los últimos 5 registros.

Comando tcpdump

Esta herramienta es una excelente opción para analizar paquetes, cuya librería utilizada es libpcap, escrita en C/C++ para captura de tráfico en red. El comando tcpdump imprime una descripción de aquellos contenidos con paquetes de una interfaz de red, que coincide con una expresión booleana. Cada vez que abrimos una página web, o alguna conexión en nuestro ordenador, se envían y reciben paquetes de datos en la interfaz que estemos utilizando.

Así como realizamos «ataques» en auditorías, también debemos saber defendernos, o porque no, simplemente probar el funcionamiento o estado de un comando. Por ejemplo, con el comando ping, así como vemos los paquetes que recibimos cuando lo usamos, también podemos realizar la función inversa, y ver los paquetes que entran a nosotros. Por lo tanto, esta herramienta la colocamos dentro de los comandos de auditoría en redes con Linux por su importancia.

Ejemplos simples

Primero y principal debemos saber que interfaces hay en nuestra red, y cual estamos utilizando

# tcpdump –D

Comandos de auditoría en Linux

Una vez localizada nuestra interfaz de red, podemos ver la cantidad especificada de paquetes de red al abrir nuestro navegador.

Comandos de auditoría en Linux

En este caso con –i nombramos la interfaz, y con –c la cantidad de paquetes a capturar (son miles la cantidad que puede capturar en segundos).

Uso avanzado

Capturar tráfico desde o hacia el rango 192.168.1.0/24:

# tcpdump -i enp0s3 net 192.168.1.0 mask 255.255.255.0

Deshabilitar la resolución inversa de nombres y mostrar los paquetes hacia y desde el host 192.168.1.15:

# tcpdump -n -i enp0s3 host 192.168.1.15

Evitar el modo promiscuo y ver los paquetes con destino al host 192.168.0.3:

# tcpdump -p -i enp0s3 dst 192.168.0.3

Mostrar los números de paquetes en la salida:

# tcpdump –number -i enp0s3

Guardar los paquetes capturados en el archivo dump.pcap con el formato de captura de tcpdump:

# tcpdump -i enp0s3 -w dump.pcap

Leer los paquetes capturados del archivo dump.pcap y excluir todos los paquetes con protocolo udp:

# tcpdump not udp -r dump.pcap

Muestra los paquetes con protocolo ARP, UDP y la diferencia de tiempo entre cada uno y el anterior:

# tcpdump -ttt -i enp0s3 arp or udp

Capturar solamente protocolo ipv4 e ipv6:

# tcpdump -i enp0s3 ip and ip6

Capturar paquetes desde y hacia la mac address:

# tcpdump -i eth0 ether dst F0:E1:D2:C3:B4:A5

Capturar el tráfico desde y hacia el host 10.0.0.1 y puerto 80.

# tcpdump -XX -nn -vvv -s 32768 -p -i eth0 host 10.0.0.1 and port 80

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

uno × 5 =

Lathack
Scroll al inicio