Descubriendo una Intrusión en Windows
Comúnmente los administradores de sistemas están al frente de la seguridad de los servidores. Esta publicación intenta ayudar a los administradores de sistemas a encontrar indicios de intrusión en un sistema comprometido. Un modo de hacer esto es periódicamente (diariamente, semanalmente, o cada vez que ingresamos al sistema que administramos) ingresando en los sistemas y ejecutar estos pasos rápidos para buscar anomalías que puedan ser causadas por una intrusión.
Nota: Cada uno de los comandos que veremos a continuación corren localmente.
Procesos y Servicios no Usuales:
Buscar procesos insusuales/no esperados, y enfocarnos en procesos con el nombre «SYSTEM» o «Administrador» (o usuario en el grupo administrador). Necesitas estar familiarizado con estos procesos y servicios.
Usar la GUI para ejecutar el Task Manager:
c:\> taskmgr.exe
Usar la cli:
c:\> tasklist
c:\> wmic process list full
También buscaremos por servicios no usuales:
Usando la GUI:
c:\> services.msc
Usando la cli:
c:\> net start
c:\> sc query
Para tener una lista de servicios asociados a cada proceso:
c:\> tasklist /svc
Archivos y Claves de Registro no Usuales:
Busquemos por espacio libre en disco que haya decrecido repentinamente usando la GUI (botón derecho sobre la partición) o escribe:
c:\> dir c:\
Busca por archivos grandes: Start -> Search -> For Files of Folders… -> Search Option -> Size -> Al least 10000Kb
Buscar por programas extraños asociados a claves del registro con el inicio del sistema:
– HKLM/Software/Microsoft/Windows/CurrentVersion/Run
– HKLM/Software/Microsoft/Windows/CurrentVersion/Runonce
– HKLM/Software/Microsoft/Windows/CurrentVersion/RunonceEx
Note que debería chequear la contraparte HKCU, reemplazando HKLM con HKCU.
Usando la GUI:
c:\> regedit
Usando la cli:
c:\> reg query <reg key>
Uso no Usual de la Red:
Busca por recursos compartidos y verifica que tengan un propósito para el «negocio»:
c:\> net view \\127.0.0.1
Busca quien tiene una sesión abierta en el servidor:
c:\> net session
Busca que sesiones en este equipo han sido abiertas a otros sistemas:
c:\> net use
Busca actividad NetBIOS sobre TCP/IP:
c:\> nbtstat -S
Busca puerto TCP y UDP abiertos en el sistema:
c:\> netstat -na
Para ejecutar este comando durante 5 segundos y refrescar la salida:
c:\> netstat -na 5
El argumento -o muestra el dueño del proceso:
c:\> netstat -nao 5
El argumento -b muestra el nombre del ejecutable y las DLLs cargadas para la conexión de red (esta opción consume CPU):
c:\> netstat -naob 5
Chequea el estado del Firewall:
c:\> netsh firewall show config
Tareas Agendadas no Usuales:
Busca tareas agendadas inusuales, especialmente aquellas que corren con un usuario del grupo Administrador, o SYSTEM, o con un nombre de usuario en blanco.
Usando la GUI, y ejecuta el Task Sheduler: Start -> Programs -> Accessories -> System Tools -> Sheduled Tasks
Usando la cli:c:\> schtasks
Chequea otros itemes de autoinicio así como entradas no esperadas, recuerda chequear el usuario de autoinicio en los directorio y las llaves del registro.
Usando la GUI: Start -> Run, msconfig.exe
Usando la cli:
c:\> wmic startup list full
Cuentas no Usuales:
Busca por cuentas nuevas, y no esperadas en el grupo Administrador:
c:\> lusrmgr.msc
Click en Gupos, Doble click en Administradores, luego en miembros del grupo.
Esto también puede hacerse desde la cli:
c:\> net user
c:\> net localgroup administrators
Entradas no Usuales en los logs:
Chequea los logs en busca de eventos no usuales, tales como:
– Eventos de servicios detenidos- Windows File Protection no está activado en este sistema
– The protected System file [nombre de archivo], no fue restaurado a su versión original porque ha sido deshabilitada la protección de archivos de windows
– Busca por un gran número de entradas de inicio de sesión fallidos, o cuentas bloqueadas
Para hacer esto en la GUI:
c:\> eventvwr.msc
Usando la cli:
c:\> eventquery.vbs | more
o, enfócate en un log en particular:
c:\> eventquery.vbs /L security