miércoles, 14 de marzo de 2018

Comandos útiles en CMD de Windows

Comando para enviar la salida en un archivo nuevo:
d:\>dir /a > salida.txt

Para adicionar la salida de un comando a un archivo ya existente:
d:\>dir >> salida.txt

Comando para mostrar el contenido de un archivo txt sin iniciar el notepad:
d:\>type salida.txt

Comando para enviar la salida comando al portapapeles:
d:\>dir /a | CLIP

miércoles, 24 de enero de 2018

Malware Forence

Malware Forensics

El malware forensics se puede hacer de 4 formas:
- Análisis estático básico
- Análisis dinámico básico
- Análisis estático Avanzado
- Análisis dinámico Avanzado

Cuando en el analisis estatico basico no podemos obtener muchas informacion por que el archivo puede estar packed o ofuscado, el análisis dinámico nos permitiría mostrar mas, por que al ejecutar el virus vamos a poder observar que acciones va a realizar.
A través de la herramienta Process Monitor, permite grabar todas las tareas que realizan los procesos de tal forma que luego se puede revisar que acciones realizo el malware, como por ejemplo si muto, si creo un registro en el RegEdit, entre otras.
Uno de los filtros que puedo aplicar para conocer si escribio en el archivo de registro, es filtrar la operación a con la palabra clave RegSetValue y para saber si muto, se puede conocer si ejecuto la operación WriteFile


Lo que muestra en la siguiente figura son las acciones realizadas por el malware, en las segunda acción se puede ver que se copio el archivo como vmx32to64.exe en la carpeta mencionada.
En la tercera acciones se puede ver que genero un registro para que se ejecute el virus automáticamente al momento de reiniciar.


En la figura anterior se muestra que el malware escribe constantemente en Microsoft\Cryptography\RNG\Seed, este registro es una información generada como semilla para un número aleatorio criptográfico. Hay dos formas de generar semillas para números aleatorios en criptografía a traves de hardware y software, este registro no están importante, puede distraer nuestra atención, por eso es mejor filtrarlo.

Un malware no solo se presenta en un exe, tambien puede venir en una dll, para ejecutar la DLL utilizamos el siguiente comando:
C:\>rundll32.exe Lab03-02.dll,installA

Ahora extraemos información de la DLL, un registro importante es por ejemplo cuando el malware escribe dentro del registro HKLM\SYSTEM\CurrentControlSet\Services, esto nos da un indicio de que el malware se esta colocando como servicio.
La imagen anterior muestra los procesos ejecutados por una dll, dado que el malware es una DLL, depende de un ejecutable para ejecutarlo. De hecho, en la linea 2 se puede observar que ImagPath esta con el parametro svchost.exe -k netsvcs, lo cual significa que el malware sera lanzado sobre el procesos svchost, el proceso sobre el que es lanzado svchost es básicamente es el encargado en Windows de ejecutar los servicios que corren desde una DLL (dynamic-link libraries). Existen tantas entradas svchost como procesos que lo utilizan.  El resto de la información, como DisplayName y Descripción, la line 3 y 4, crea una huella digital única que se puede utilizar para identificar el servicio malicioso.
En la imagen anterior se puede extraer información como el nombre del servicio y el DisplayName, ahora vamos a ejecutar el virus.
If we examine the strings closely, we see SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHostand a message "You specify service name not in Svchost//netsvcs, must be one of following". If we follow our hunch and examine the \SvcHost\netsvcs registry key, we can see other potential service names we might use, like 6to4 AppMgmt. Running Lab03-02.dll,installA 6to4 will install this malware under the 6to4 service instead of the IPRIP service, as in the previous listing.
After installing the malware as a service, we could launch it, but first we’ll set up the rest of our basic dynamic tools. We run procmon (after clearing out all events); start Process Explorer; and set up a virtual network, including ApateDNS and Netcat listening on port 80 (since we see HTTP in the strings listing).
Since this malware is installed as the IPRIP service, we can start it using the net command in Windows, as follows:
c:\>net start IPRIP
The Intranet Network Awareness (INA+) service is starting.
The Intranet Network Awareness (INA+) service was started successfully.
The fact that the display name (INA+) matches the information found in the registry tells us that our malicious service has started.
Next, we open Process Explorer and attempt to find the process in which the malware is running by selecting Find ▸ Find Handle or DLL to open the dialog shown in Figure C-6. We enter Lab03-02.dll and click Search. As shown in the figure, the result tells us that Lab03-02.dll is loaded by svchost.exe with the PID 1024. (The specific PID may differ on your system.)

Figure C-6. Searching for a DLL in Process Explorer
In Process Explorer, we select View ▸ Lower Pane View ▸ DLLs and choose the svchost.exe running with PID 1024. Figure C-7 shows the result. The display name Intranet Network Awareness (INA+) shown at ❶confirms that the malware is running in svchost.exe, which is further confirmed when we see at ❷ that Lab03-02.dll is loaded.

Figure C-7. Examining service malware in Process Explorer
Next, we turn our attention to our network analysis tools. First, we check ApateDNS to see if the malware performed any DNS requests. The output shows a request for practicalmalwareanalysis.com, which matches the strings listing shown earlier.
NOTE
It takes 60 seconds after starting the service to see any network traffic (the program does a Sleep(60000)before attempting network access). If the networking connection fails for any reason (for example, you forgot to set up ApateDNS), it waits 10 minutes before attempting to connect again.
We complete our network analysis by examining the Netcat results, as follows:
c:\>nc -l -p 80
GET /serve.html HTTP/1.1
Accept: */*
User-Agent: MalwareAnalysis2 Windows XP 6.11
Host: practicalmalwareanalysis.com
We see that the malware performs an HTTP GET request over port 80 (we were listening over port 80 with Netcat since we saw HTTP in the string listing). We run this test several times, and the data appears to be consistent across runs.
We can create a couple of network signatures from this data. Because the malware consistently does a GETrequest for serve.html, we can use that GET request as a network signature. The malware also uses the User-Agent MalwareAnalysis2 Windows XP 6.11. MalwareAnalysis2 is our malware analysis virtual machine’s name (so this portion of the User-Agent will be different on your machine). The second part of the User-Agent (Windows XP 6.11) is consistent and can be used as a network signature.



A través de la herramienta ProcessExplorer vamos a poder encontrar que el malware muto con el nombre WinVMX32.

Para conocer que acciones realizo en la red, podemos utilizar la herramienta apateDNS

Una guia completa para instalar inetsim es la siguiente:
https://techanarchy.net/2013/08/installing-and-configuring-inetsim/





miércoles, 17 de enero de 2018

Como revisar los procesos de Windows

La herramientas tasklist, nos permite listar todos los procesos con información como que programa esta corriendo, cuando de memoria esta consumiendo, el estado del proceso que usuario esta haciendo uso del proceso el tiempo que esta activo, entre otras muchas cosas.

Para listar todos los procesos que no responden, se adiciona el parámetro /v para que muestre toda la información y /FI para filtrar el contenido, se puede utilizar el siguiente comando:
tasklist /v /FI "STATUS eq Not Responding"

Si quiere eliminarlo, se adiciona el /F para forzar el cierre y /FI para hacer el filtro,  se puede utilizar el siguiente comando:
taskkill /F /FI "STATUS eq Not Responding"

Para buscar todos los procesos, se puede filtrar utilizando el parámetro /FI seguido del parámetro de filtro, el parámetro de filtro puede ser el de las cabeceras de la tabla mostrada, se puede utilizar comodines como * para mejorar la busqueda, la lista completa de parámetros esta en la siguiente pagina:
https://technet.microsoft.com/es-es/library/bb491010.aspx


tasklist /v /FI "IMAGENAME eq chrome*"


Para ordenar los resultados podemos adicionar el comando SORT
tasklist /v /FI "IMAGENAME eq chrome*"  | sort /r /+56

lunes, 16 de octubre de 2017

Borrador: Analizar un trafico Web con Wireshark

Este es un borrador por eso no va a tener edición ni buenas imágenes por el momento.

Como todos ya sabrán wireshark es un sniffer de red que permite capturar el trafico que pasa por el, la captura del trafico es difícil ya que las comunicaciones son de tipo unidireccional, es por ello que wireshark solo podrá capturar el trafico que va a dirigido hacia su maquina.

Bien después de dejar un tiempo capturando trafico, podemos analizar que paginas a navegado nuestro usuario, el siguiente comando te permite ver las paginas consultadas:

dns.flags.response == 0 and ip.dst==<IP DNS>

dns.flags.response == 0 and ip.dst==8.8.8.8

Ahora Wireshark va a mostrar una lista de todas las paginas consultadas, para profundizar mas en la consulta realizada, podemos ver el historico de esa comunicacion, Wireshark lo almacena como UDP Stream.  Para visualizarlo haga clic en el packete y despliegue en la parte inferior User Datagram Protocol, busque el valor Stream index, con este valor vamos a construir la siguiente consulta:

udp.stream == <valor del Strema Index>
udp.stream == 1141

O también se podría consultar la busqueda encontrada por el usuario, para ello podemos utilizar la siguiente consulta:

dns.qry.name == "www.eldominio.com"

Esto va a filtrar el trafico y solo va a mostrar la resolución de direcciones de la pagina consultada.

Ahí podemos observar la dirección IP de la pagina que va a responder a la consulta.

Podemos filtrar por la dirección IP para encontrar le trafico TCP y HTTP, para ello utilizamos el siguiente filtro.

ip.src == 200.X.X.196

Al aplicar este filtro nos mostrar los paquetes TCP para establecer la sesión y los datos del protocolo HTTP.


Ahora para filtrar todo el trafico, wireshark index la conversaciones colocando un indicador llamado TCP index stream, para ver el indicador seleccione cualquier entrada y ubíquese en la sección Transmission Control Protocol:

Ahora va a mostrar todo el trafico filtrado, eso significa que podríamos ver la pagina y las imágenes descargadas, para ello guardamos solo ese trafico filtrado.
En el wireshark ingresamos a menu File > Xport Specified Packets, en la parte inferior habilitamos el option group que diga Packet Range, Displayed, le colocamos un nombre y lo guardamos.
Para ver el trafico abra el archivo guardado y nos ubicamos en menu File > HTTP objetc list, en esa ventana muestra el la información capturada, encontrar imágenes y el contenido de la pagina html.
Coloque Save all en una carpeta especifica, desde el explorador de Windows abra la carpeta y ya podrá visualizar la pagina capturada.



miércoles, 12 de julio de 2017

Como detectar y eliminar conexiones sospechosas en la PC con netstat

Cuando el procesamiento en la PC y la navegación se vuelve lenta, es probable que tengamos conexiones no autorizadas en el equipo, primero partimos de un escaneo inicial a traves del comando:

c:\>nestat -ano

-a
Muestra todas las conexiones TCP activas y los puertos TCP y UDP en el que está escuchando el equipo.
-n
Muestra las conexiones TCP activas, sin embargo, direcciones y números de puerto se expresan numéricamente y se realiza ningún intento para determinar los nombres.
-o
Muestra las conexiones TCP activas e incluye el identificador de proceso (PID) para cada conexión. Puede encontrar la aplicación basada en el PID en la ficha de procesos en el Administrador de tareas de Windows. Este parámetro se puede combinar con - a-n -n y -p.

Esto mostrar una lista conteniendo todos las conexiones establecidas, notamos que nos muestra mucha información, para filtrar y solo mostrar las conexiones establecidas podemos utilizar el siguiente comando:

c:\>netstat -ano  | findstr ESTABLISHED

Esto nos mostrar solo las conexiones establecidas, desde esta lista podemos ir filtrando las conexiones sospechosos como por ejemplo,  las que tienen dirección IP de nuestra red local o las que pertenece a puerto desconocidos.
192.168.10
Por ejemplo en mi equipo encontré las siguientes direcciones sospechosos
  Proto  Dirección local                Dirección remota         Estado                 PID
  TCP    192.168.10.155:50164     192.168.10.25:445         ESTABLISHED     4
  TCP    192.168.10.155:50170     74.125.141.188:5228     ESTABLISHED     12756
  TCP    192.168.10.155:51016     38.99.185.103:443         ESTABLISHED     2632
  TCP    192.168.10.155:53434     52.200.182.11:443         ESTABLISHED     14212
  TCP    192.168.10.155:54672    192.168.10.20:49166      ESTABLISHED     5720

Ahora lo que podemos hacer es verificar que aplicación esta consumiendo este servicio y que servicio esta siendo consumido.
Para verificar el servicio que esta siendo consumido, podemos obtener esa información del campo dirección remota, después del : viene el puerto.  En la segunda entrada de la tabla el puerto es 5228, este lo podemos verificar en la pagina http://es.adminsub.net/tcp-udp-port-finder 


Por ejemplo este puerto no proporciona mucha información que esta haciendo, es por eso que vamos a verificar la dirección, una pagina que recomiendo es: https://www.abuseipdb.com/check/ otra pagina útil es http://www.webyield.net/ip/


Ahora si nos da indicios de que es esa conexión, si buscamos un poco eso lo utiliza los buscadores para mejorar sus búsquedas, si no estamos muy convencidos podríamos verificar que aplicación esta enlazado a ese servicio, la aplicación se muestra en el campo PID del primer comando ejecutado. Para este caso el PID de la aplicación es 12756, para consultar a que aplicación pertenece ese PID, ejecutamos el siguiente comando:

C:\>tasklist /fi "PID eq 12756"

Nombre de imagen           PID    Nombre de sesión   Núm. de ses       Uso de memor
==============  =====  ============  =========    =============

chrome.exe                    12756   Console                     2                        227,328 KB


En la salida del anterior comando, se puede observar que la sesión esta conectada a la aplicación google chrome, otro comando que nos podría dar mayor indicio de que esta haciendo podemos utilizar el comando pero con los siguiente parámetros:

C:\>tasklist /svc /fi "PID eq 12756"

Nombre de imagen                  PID                      Servicios
==================    ========        ============================
chrome.exe                              12756                   N/D


Bueno si no queremos que este activa esa conexión, podemos matar ese proceso con el siguiente comando:

C:\>taskkill /F  /IM 12756

martes, 20 de junio de 2017

Recuperación de Contraseña en Fortigate (Password Recovery)

Recuperación de Contraseña en Fortigate

Conecte un cable consola entre la PC y el Fortigate, el cable consola tiene el mismo pin out que los cables de CISCO, reinicie el Fortigate, cuando cargue nuevamente el equipo aparecerá la siguiente información:

FortiGate-100D Ver:04000021
Serial number: FG100DXGXXXXXXXXRAM activation
CPU(00:000106ca bfebfbff): MP initialization
CPU(01:000106ca bfebfbff): MP initialization
CPU(02:000106ca bfebfbff): MP initialization
CPU(03:000106ca bfebfbff): MP initialization
Total RAM: 4096MB
Enabling cache...Done.
Scanning PCI bus...Done.
Allocating PCI resources...Done.
Enabling PCI resources...Done.
Zeroing IRQ settings...Done.
Verifying PIRQ tables...Done.
Boot up, boot device capacity: 15272MB.
Press any key to display configuration menu...
......

Tome nota del numero de serie de su equipo, ya que este sera utilizado para el proceso de recuperación de la contraseña.

Ahora cuando aparezca el prompt de login ingrese el siguiente maintainer:
FG100DXGXXXXXXXX login: maintainer

Ahora la contraseña esta conformado por la palabra bcpb + el numero de serie del equipo, el dato que se tomo al inicio.
El numero de serie debe de estar en mayúsculas, y solo tendrá hasta 14 segundo o menos para ingresar el usuario y la contraseña, por eso recomienda, que primero prepare los comandos en un bloc de notas y luego los copie al terminal.
Una ves dentro para cambiar la contraseña puede tener dos posibles esquemas con VDOM y sin VDOM.

In a unit where vdoms are not enabled:            config system admin
                   edit admin
                   set password <password>
                      end 
In a unit where vdoms are enabled:            config global                    config system admin                              edit admin                              set password <password>
                                 end

Bueno esto algunos lo podrán tomar como una falta de seguridad, que se pueda ingresar tan fácil para cambiar la contraseña, pero algo es cierto que si el atacante puede acceder físicamente a tu equipo de comunicación, ya todo esta perdido.

Existe la forma de bloquear al usuario maintainer, pero hay que tener mucho cuidado ya que si desactivas esto  Ken Xie ni Michael Xie  te van a poder ayudar a recuperar la contraseña.

To disable            config system global
                      set admin-maintainer disable
                                 end
To enable           config system global
                      set admin-maintainer enable
                                 end

Bueno espero que esto, les pueda servir a resolver problemas mas rápido con su equipo Fortigate.