Muchas veces es necesario hacer trabajo de detective en los sistemas MS-Windows. Al igual que Linux / UNIX / BSD, en Windows se debe proteger y cuidar la seguridad e integridad del sistema. Existen muchas maneras de detectar si los sistemas Windows están comprometidos desde el punto de vista de la seguridad mediante el uso de la línea de comandos,  para determinar si un sistema ha sido hackeado o posee brechas de seguridad.

Afortunadamente, Microsoft ha construido numerosas herramientas en Windows de modo que los administradores y usuarios avanzados pueden analizar una máquina para determinar si se ha comprometido su seguridad. En este momento se publicará 5 herramientas muy útiles  de línea de comandos integrado en Windows para dichos análisis.

=> Comandos de Windows para determinar si un sistema ha sido hackeado, está divido en 2 partes, la primera se encuentra aquí y la segunda en este enlace: Parte II

Vamos hacer frente del problema de detectar máquinas Windows que han sido pirateadas o hackeadas en algunos ambientes que sucede con cierta frecuencia. Afortunadamente, Microsoft ha construido numerosas herramientas en Windows de modo que los administradores y usuarios avanzados pueden analizar una máquina para determinar si se ha comprometido. En este caso vamos a cubrir cinco útiles herramientas de línea de comandos que vienen integrados en Windows para dicho análisis.

1) WMIC: Un mundo de aventura nos espera.
El Instrumental de administración de Windows de línea de comandos (WMIC) no es simplemente un comando, es un mundo en sí mismo si lo observamos un poco más en profundidad. Ofreciendo una línea de comandos para la interfaz ultra-poderoso, el Instrumental de administración de Windows dentro de la API de Windows, WMIC permite a los usuarios administradores acceder a todo tipo de información detallada sobre una máquina Windows, que incluye atributos detallados de miles de objetos y entornos. WMIC está integrado en Windows XP Professional, Windows 2003 y Windows Vista. Para utilizar WMIC, los usuarios deben ejecutar el comando de WMIC seguido por el área de la máquina que el usuario está interesado en (a menudo como un alias dentro del sistema). Por ejemplo, para obtener más información acerca de los procesos que se ejecutan en una máquina, un usuario podría ejecutar:
C:\> wmic process

El resultado de este comando probablemente sea  bastante feo, ya que un formato de salida no se ha especificado. Con WMIC, la producción se pueden formatear de varias formas distintas, pero dos de los más útiles para el análisis de un sistema de transacción son la “lista completa”, lo que demuestra una enorme cantidad de detalles para cada área de la máquina en que un usuario está interesado, y la “lista breve” de salida, que proporciona una línea de salida con informe de elementos de la lista de entidades, tales como los procesos activos, automáticos y programas de acciones disponibles.

Por ejemplo, podemos ver un resumen de cada proceso en ejecución en una máquina ejecutando:
C:\> wmic process list brief

Esta orden mostrará el nombre, ID de proceso y la prioridad de cada proceso en ejecución, así como otros menos interesantes atributos. Para obtener más detalles, debe ejecutar:
C:\> wmic process list full

Este comando muestra todo tipo de detalles, incluyendo la ruta completa del ejecutable asociado con el proceso y su línea de comandos de llamada. Al investigar una máquina con una infección, un administrador debe observar  cada proceso para determinar si tiene un uso legítimo en la máquina, investigando los procesos inesperados o desconocidos utilizando algún motor de búsqueda.

Más allá de los alias de procesos, los usuarios pueden cambiar el inicio para obtener una lista de todos los programas con inicio automático en la máquina, incluidos los programas que comienzan cuando se arranca el sistema o cuando un usuario se conecta, lo que podría ser definido por la clave del registro auto-start o la carpeta Inicio:
C:\> wmic startup list full

Una gran cantidad de malware automáticamente se ejecutan en una máquina mediante la adición de entradas auto-start  junto a los que son legítimos los que pueden pertenecer a herramientas antivirus y diversos programas de la bandeja del sistema. Los usuarios pueden ver en otros ajustes en una máquina con WMIC mediante la sustitución de “arranque” con “QFE” (una abreviatura que significa Quick Fix Engineering) para ver el nivel de parche de un sistema, con la “cuota” para ver una lista de acciones de archivos de Windows disponibles en la máquina y con “useraccount” para ver información detallada de los ajustes de la cuenta del usuario.

Una opción útil en WMIC es la capacidad de llevar a cabo un compilado de información sobre un comando reiterado mediante el uso de la sintaxis “/ cada: [N]” después de que el resto del comando de WMIC. El atributo [N] es un número entero, lo que indica que WMIC debería ejecutar el comando cada determinado [N] segundos. De esta forma, los usuarios pueden ver los cambios en la configuración del sistema a través del tiempo, lo que permite estudiar detenidamente la salida. Con esta función para tirar de un proceso de síntesis cada 5 segundos, los usuarios pueden ejecutar:

C:\> wmic process list brief /every:1

Oprimir las teclas CTRL+C detendrá el ciclo.

2) El comando net:
Aunque WMIC es un relativamente nuevo comando, vamos a no perder de sitio algunos comandos útiles de más edad. Uno de mis favoritos es el venerable “net”. Los administradores pueden utilizar esto para mostrar todo tipo de información útil. Por ejemplo, el comando “net user” muestra a todas las cuentas de usuarios definidas localmente en la máquina. El comando “net localgroup” muestra los grupos, “net localgroup administradores” pone de manifiesto la adhesión de los administradores y el grupo comando “net start” muestra los servicios en funcionamiento.

Los atacantes frecuentemente buscan añadir usuarios a un sistema o poner sus propias cuentas en el grupo de  administradores, por lo que siempre es una buena idea comprobar la salida de estos comandos para ver si un atacante ha manipulado las cuentas de usuario en una máquina. Asimismo, algunos atacantes crear sus propios servicios en una máquina, por lo que los usuarios deben salir en búsqueda de ellos.

3) Openfiles:
Muchos administradores Windows no están familiarizados con el poderoso comando openfiles integrado en Windows. Como su nombre indica, este comando muestra todos los archivos que se abren en la máquina, lo que indica el proceso de interactuar con el nombre de cada archivo. Está construido en versiones modernas de Windows, de XP Pro a Vista. Al igual que el comando lsof populares para Linux y Unix, mostraremos los administradores de todos los archivos abiertos en la máquina, dando el nombre y el proceso, como la ruta completa para cada archivo. A diferencia de lsof, sin embargo, no ofrece muchos más detalles, como el proceso, número de identificación, número de usuario y alguna otra información.

Teniendo en cuenta el volumen de información que recoge, no es sorprendente que el comando openfiles tenga un rendimiento caótico muchas veces. De este modo, la contabilidad asociados a openfiles está desactivada por defecto, es decir, los usuarios no pueden tirar todos los datos de este comando hasta que esté activado. Esta función puede ser activar el funcionamiento:
C:\> openfiles /local on

Los usuario necesitarán reiniciar la computadora o servidor, y posteriormente estarán habilitados a ejecutar el comando openfiles de la siguiente forma:
C:\> openfiles /query /v

Este comando mostrará una salida de datos, que incluye la cuenta de usuario para cada proceso con el archivo abierto que se está ejecutando debajo. Para tener una idea de lo que el malware se ha instalado, o lo que un atacante puede estar llevando a cabo en una máquina, los usuarios deben buscar cualquier archivo inusual o inesperado, especialmente los relacionados con los usuarios locales inesperados en la máquina.

Cuando finaliza con el comando openfiles, esta funcionalidad de la cuenta puede ser detenida y el sistema retornará a su rendimiento habitual, se debe ejecutar el siguiente comando y posteriormente reiniciar la máquina:
C:\> openfiles /local off

4) Netstat: Muestra la red
El comando netstat de Windows muestra la actividad de la red, centrándose por defecto en TCP y UDP. Dado que los programas maliciosos a menudo se comunica a través de la red, los usuarios pueden buscar conexiones  inusuales e inesperadas en la salida de netstat, ejecute lo siguiente:
C:\> netstat -nao

La opción-n indica a netstat para mostrar los números en su salida, no los nombres de máquinas y protocolos, y en su lugar muestra las direcciones IP y TCP o UDP números de puerto. El indica-a para mostrar todas las conexiones y puertos de escucha. La opción-o dice netstat para mostrar el número processID de cada programa de interacción con una red TCP o UDP. Si, en lugar de TCP y UDP, usted está interesado en ICMP, netstat se puede ejecutar como sigue:
C:\> netstat -s -p icmp

Esto indica que el comando volverá estadísticas (-s) del protocolo ICMP. Aunque no tan detallado como el TCP y UDP de salida, los usuarios pueden ver si una máquina está enviando frecuentes e inesperados de tráfico ICMP en la red. Algunas puertas traseras y otros programas maliciosos se comunican a través de la carga útil de los mensajes ICMP Echo, el familiar y de aspecto inofensivo paquetes de ping visto en la mayoría de las redes periódicamente.

Parecido a WMIC, el comando netstat también permite ejecutarse cada N segundos, pero en lugar de usar la sintaxis de WMIC “/every:[N]”, los usuarios simplemente deben hacer una llamada como la siguiente con un número entero. Para listar los puertos TCP y UDP en uso en la máquina cada 2 segundos, usted debe ejecutar:
C:\> netstat -na 2

5) Find:
La mayoría de los comandos que he discutido hasta ahora spew un montón de salida en la pantalla, lo que podría ser difícil para un ser humano a mirar a través de encontrar un determinado tema de interés. Pero, Windows viene al rescate. Los usuarios pueden buscar a través de la salida de un comando usando los controladores incorporados en encontrar y findstr comandos de Windows. El comando find busca simples cuerdas, mientras que findstr apoya las expresiones regulares, una forma más compleja para especificar patrones de búsqueda. Debido a que las expresiones regulares apoyados por findstr ir más allá del alcance de este artículo punta, vamos a centrar en el comando find. Por defecto, encontrar distingue entre mayúsculas y minúsculas – utilizar el / i opción para hacer que entre mayúsculas y minúsculas.

El comando find también tiene la capacidad de contar. Invocada con los / c comando, que va a contar el número de líneas de su producción que incluyen una determinada cadena. A menudo, los usuarios quieren contar el número de líneas en la salida de un comando para determinar cuántos procesos están funcionando, ¿cuántos elementos de inicio están presentes, o de una variedad de otros tidbits interesantes en una máquina. Para contar las líneas de producción, los usuarios pueden simplemente su producción de tubos a través de find / c / v “”. Este comando count (/ c) el número de líneas que no tienen (/ v) una línea en blanco ( “”) en ellas. Al contar el número de no-líneas en blanco, el comando es, en efecto, contando el número de líneas.

Ahora, con el comando find, los usuarios pueden ver a través de la salida de cada uno de los comandos que he discutido hasta ahora para encontrar tidbits interesantes. Por ejemplo, para ver a información sobre cada segundo cmd.exe procesos que se ejecutan en una máquina, tipo:
C:\> wmic process list brief /every:1 | find “cmd.exe”

Or, to see which autostart programs are associated with the registry hive HKLM, run:
C:\> wmic startup list brief | find /i “hklm”

To count the number of files open on a machine on which openfiles accounting is activated, type:
C:\> openfiles /query /v | find /c /v “”

Siempre contando los puntos de esta manera, recuerde que debe restar el número de líneas asociadas a cabeceras de columna. Y, como último ejemplo, para ver con un segundo exactitud cuando el puerto TCP 2222 comienza a ser utilizado en una máquina, junto con el proceso de identificación mediante el puerto, ejecute:
C:\> netstat -nao 1 | find “2222”

Investigación y resumen de estos 5 comandos.
Con estas cinco herramientas, los usuarios pueden obtener una gran cantidad de información sobre la configuración y el estado de la seguridad de una máquina Windows. Para utilizar cada comando en la identificación de un compromiso, sin embargo, las necesidades de los usuarios a comparar la actual configuración de la máquina bajo análisis a un “normal”, no infectada la máquina.

Hay tres opciones para establecer una base de comparación. En primer lugar, si el usuario es un experimentado cazador de malware, él o ella puede tener un sentido de lo que es correcto y qué hay de malo en un determinado tipo de máquina, identificando el mal o cosas inusuales basadas en la experiencia. Por otra parte, esta comparación puede llevarse a cabo en contra de un limpio y no infectada la máquina, si es que hay uno a mano. Si no hay, un usuario puede tener que depender de una tercera opción – la investigación de archivos específicos, el proceso de nombres, los nombres de los archivos y los números de puerto identificados por estos comandos y la búsqueda de ellos en línea para determinar si son normales para una determinada máquina y el software que ha instalado, o si se asocian con un algún tipo de malware.

En este consejo, he hablado cinco potentes incorporados en los comandos de Windows. En una futura entrega, voy a terminar nuestra lista top 10 en busca de algunos poco conocidos pero inmensamente útiles características de la tasklist, reg y los comandos ipconfig, así como con iterating PARA bucles administrativa y puesta en marcha de GUIs a través de la línea de comandos.

(Visitado 1.646 veces, 1 visitas hoy)