LinuxParty
Una de las primeras acciones que lleva a cabo un intruso, una vez ingresa a un sistema, es instalar un rootkit, el cual facilita el control de la máquina desde ese momento en adelante. Dichas herramientas presentan un gran riesgo para los administradores y, por tanto, es de vital importancia conocer sus alcances, funcionamiento y los mecanismos que existen para detectarlos.
Los Rootkits fueron descubiertos a mediados de los '90. En aquella época, los administradores de sistema del sistema operativo Unix de SUN comenzaron a ver un comportamiento extraño en el servidor, la falta de espacio de disco, ciclos extra en la CPU y las conexiones de red que no se mostraba con el comando netstat.
CUESTIONES
1. Qué son exactamente.
Los Rootkits son herramientas que permiten esconder actividades intrusas dentro de un sistema, después de que un intruso ha logrado penetrar en él. Además, proveen al atacante de vías de acceso ocultas para utilizar nuevamente el sistema en futuras oportunidades. El nombre Rootkit se origina a partir de la idea de que quien lo utiliza puede acceder fácilmente al nivel de root, o de administrador del sistema, una vez la herramienta ha sido instalada.
2. Qué tipos hay.
De acuerdo a la teconología empleada, existen tres clases principales de Rootkits disponibles hoy:
- Kits binarios: alcanzan su meta substituyendo ciertos ficheros del sistema por sus contrapartes Troyaneadas.
- Kits del núcleo: utilizan los componentes del núcleo (también llamados módulos) que son reemplazados por troyanos.
- Kits de librerías: emplean librerías del sistema para contener Troyanos.
3. En qué se basan
El principio operativo de los rootkits es el de reemplazar archivos de programa del sistema con versiones modificadas, para que se ejecuten determinadas operaciones. A estas versiones modificadas se les conoce con el nombre de troyanos. Un rootkit es, en esencia, una colección de programas troyanos.
4. Objetivo
El objetivo de los troyanos es imitar exactamente el comportamiento de las aplicaciones originales, pero escondiendo los archivos, acciones y evidencias del intruso. En otras palabras, una vez instalado el rootkit, en principio, el intruso podrá utilizar el sistema sin ser detectado por el administrador. Sin embargo, actualmente existen métodos para detectar la presencia de rootkits dentro de un sistema.
5. Qué ficheros suelen los intrusos troyanizar
Algunos son:
-
login, su, telnet, netstat, ifconfig, ls, find, du, df, libc, sync,
-
así como los binarios listados en /etc/inetd.conf.
6. Algunos Rootkits
Solaris rootkit, FreeBSD rootkit, lrk3, lrk4, lrk5, lrk6, t0rn (and t0rn v8), some lrk variants, Ambient's Rootkit for Linux (ARK), Ramen Worm, rh[67]-shaper, RSHA, Romanian rootkit, RK17, Lion Worm, Adore Worm, LPD Worm, kenny-rk, Adore LKM, ShitC Worm, Omega Worm, Wormkit Worm, dsc-rootkit.
DETECTANDO ROOTKITS
A. Existen maneras de diferenciar los ejecutables legítimos de los troyanos mediante el uso de algoritmos de chequeo de suma. Dichos algoritmos, como el MD5 checksum, garantizan que la única forma de que el resultado de la suma sea igual para dos archivos, es que los dos archivos sean perfectamente idénticos. De esta forma, un administrador precavido debe almacenar los checksum de su sistema en dispositivos externos, tales como CD's, para poder, más adelante, identificar rootkits comparando dichos números con los generados por un programa de chequeo en un momento determinado.
A). Una herramienta diseñada para este fin es Tripwire, el cual mantiene control de integridad sobre los archivos del sistema. Esta herramienta se encuentra disponible para sistemas Unix/Linux en http://www.tripwire.org.
B). Otra manera para detectar la posible existencia de rootkits es realizar escaneos de puertos desde otros equipos, con el fin de detectar puertas traseras que estén escuchando en puertos que normalmente no se utilizan. También existen demonios especializados, como rkdet para detectar cualquier intento de instalación de un rootkit y, de ser posible, impedirlo y avisar al administrador del hecho.
C). Otra herramienta es Chkrootkit (http://www.chkrootkit.org/), que es un shell script que busca en nuestro sistema binarios modificados por rootkits.
Entre otras tareas Chkrootkit revisa localmente rastros de rootkits incluyendo detección de:
- rootkits LKM
- ifpromisc.c: para revisar y ver si la interface de red está en modo promiscuo
- chklastlog.c: para revisar lastlogs por las tachaduras
- chkkwtmp.c: para revisar wtmp por las tachaduras
Algunas herramientas antirootkits recomendadas para su instalación:
Estas son algunas de la herramientas que recomendamos su instalación para evitar los accesos indeseados, como programar su ejecución, ya se lo dejamos al administrador:
Chkrootkit
Nombre: chkrootkit Descripción: chkrootkit es una herramienta para comprobar y detectar localmente signos de un rootkit. Contiene: * Chkrootkit: shell script que verifica los binarios del sistema. * Ifpromisc: comprueba si la interfaz de red está en Modo promiscuo. * Chklastlog: comprueba los últimos logs borrados * Chkwtmp: comprueba borrados wtmp. * Chkproc: comprueba signos de troyanos LKM. * Chkdirs: comprueba signos de troyanos LKM. * Cadenas: cadenas de reemplazo rápido y sucio. * Chkutmp: comprueba borrados utmp.
Rkhunter
Nombre: rkhunter Descripción: Rootkit Hunter (RKH) es una herramienta fácil de usar que comprueba en los equipos que ejecutan UNIX (clones)la presencia de rootkits y otras herramientas no deseadas.
Se ejecuta escribiendo: rkhunter --check
Unhide
Nombre: unhide Descripción: Es una herramienta forense que hace visible kits para encontrar procesos y puertos TCP/UDP ocultos por rootkits, módulos del núcleo o por otras Técnicas. Incluye dos utilidades: mostrar y hacer visible tcp. Unhide detecta procesos ocultos por tres técnicas: - La comparación de la salidas de /proc y /bin/ps - La comparación de la información obtenida de /bin/ps con la Recogida de llamadas al sistema (syscall scanning) - Análisis completo del espacio de ID de proceso (PID fuerza bruta) Unhide-tcp identifica puertos TCP/UDP que están escuchando, pero no son mostrados en /bin/netstat mediante ataques de fuerza bruta de todos los puertos disponibles TCP/UDP.
Y así, es como podrá instalarlos directamente desde sus propios repositorios (que además es lo recomendado): (quien tenga Debian/Ubuntu, para buscar usen: 'apt-cache search rootkit', para instalar 'apt-get install paquete-a-instalar')
[root@localhost ~]# yum search rootkit Complementos cargados:langpacks, presto, refresh-packagekit ================ Nombre/Resumen que coinciden con: rootkit ================= chkrootkit.x86_64 : Tool to locally check for signs of a rootkit rkhunter.noarch : A host-based tool to scan for rootkits, backdoors and : local exploits unhide.x86_64 : Tool to find hidden processes and TCP/UDP ports from : rootkits Nombre y resumen que coinciden con y sólo , use "buscar todo" para todo. [root@localhost ~]# [root@localhost ~]# yum -y install chkrootkit rkhunter unhide Complementos cargados:langpacks, presto, refresh-packagekit Resolviendo dependencias --> Ejecutando prueba de transacción ---> Paquete chkrootkit.x86_64 0:0.49-4.fc17 debe ser instalado ---> Paquete rkhunter.noarch 0:1.4.0-5.fc17 debe ser instalado ---> Paquete unhide.x86_64 0:1.0-7.fc17.20100201 debe ser instalado --> Resolución de dependencias finalizada Dependencias resueltas ============================================================================ Package Arquitectura Versión Repositorio Tamaño ============================================================================ Instalando: chkrootkit x86_64 0.49-4.fc17 fedora 315 k rkhunter noarch 1.4.0-5.fc17 updates 184 k unhide x86_64 1.0-7.fc17.20100201 fedora 27 k Resumen de la transacción ============================================================================ Instalar 3 Paquetes Tamaño total de la descarga: 526 k Tamaño instalado: 1.7 M Descargando paquetes: (1/3): chkrootkit-0.49-4.fc17.x86_64.rpm | 315 kB 00:01 (2/3): rkhunter-1.4.0-5.fc17.noarch.rpm | 184 kB 00:01 (3/3): unhide-1.0-7.fc17.20100201.x86_64.rpm | 27 kB 00:00 ---------------------------------------------------------------------------- Total 182 kB/s | 526 kB 00:02 Ejecutando verificación de transacción Ejecutando prueba de transacción La prueba de transacción ha sido exitosa Ejecutando transacción Instalando : unhide-1.0-7.fc17.20100201.x86_64 1/3 Instalando : rkhunter-1.4.0-5.fc17.noarch 2/3 Instalando : chkrootkit-0.49-4.fc17.x86_64 3/3 Comprobando : chkrootkit-0.49-4.fc17.x86_64 1/3 Comprobando : rkhunter-1.4.0-5.fc17.noarch 2/3 Comprobando : unhide-1.0-7.fc17.20100201.x86_64 3/3 Instalado: chkrootkit.x86_64 0:0.49-4.fc17 rkhunter.noarch 0:1.4.0-5.fc17 unhide.x86_64 0:1.0-7.fc17.20100201 ¡Listo! [root@localhost ~]#
Puede contratar ExtreHost para temas profesionales con sus servidores. No lo dude, contáctenos.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros