Caso práctico: “RATas inminentes” (I)

Respuesta ante Incidentes en menos de 15 líneas

Resumen ultra rápido de lo que es la respuesta ante incidentes:

  • Preparación: Nos preparamos para un posible ataque desplegando medidas de detección y respuesta en la Organización.
  • Detección y análisis: Detectamos posibles ataques y los analizamos para determinar si son o no falsos positivos, y en caso de un ataque analizamos su alcance gravedad.
  • Contención, erradicación y recuperación: Contenemos la extensión de los atacantes por el sistema, los expulsamos y devolvemos el sistema a la operación normal.
  • Lecciones post incidente: Analizamos el incidente en busca de medidas de mejora tanto en la seguridad del sistema como en la propia respuesta para futuros incidentes.

Preparación

En este caso práctico contamos con una Organización con una madurez intermedia en sus medidas de seguridad: los equipos tienen antivirus, tienen una pasarela de correo con un antispam/antivirus, tienen un proxy que controla la navegación, un cortafuegos que controla las conexiones entrantes y salientes y un detector de intrusos que permite generar alertas ante posibles ataques.

En el lado negativo, sabemos que las actualizaciones en general (parches de seguridad, firmas de antivirus y del detector de intrusos) dejan bastante que desear, y que la concienciación de seguridad de los usuarios es… dispar, por así decirlo.

Detección y análisis: “Mi equipo va raro”

Buena parte de los incidentes de seguridad comienzan con una llamada de un usuario quejándose de que “su equipo va lento / va raro / se cuelga / está poseído por alienígenas de Alpha Centauri”. Y obviamente, el usuario nunca “ha tocado nada / hecho nada raro / abierto nada / metido ningún USB con porno holandés de mapaches” en su equipo.

En la mayoría de los casos tras una investigación más o menos extensa (o tras la aplicación contundente de un LART), se demuestra que el usuario sí que ha realizado alguna acción, por lo que el 95% de los casos los usuarios suelen ser fuente inagotable de falsos positivos (y de alguna batallita gloriosa que no puede ser contada por el bien de la integridad física del autor).

Sin embargo, los usuarios constituyen una buena fuente de información a la hora de detectar un ataque contra la Organización. Debidamente entrenados, no solo son más duros de pelar a la hora de picar en un ataque de spear-phishing sino que además pueden avisarnos de dichos ataques, permitiendo que respondamos en algunos casos prácticamente en tiempo real (es por ello que todos los esfuerzos en concienciación en seguridad siempre merecen la pena).

En este caso tenemos una llamada de un usuario estándar: su equipo va “raro”, y jura y perjura que “no ha tocado nada”. Debido a que no es un $hyperboss pero si un $boss de cierto rango es necesaria una pronta respuesta, así que nos encaminamos a su equipo con celeridad recogiendo el equipo necesario para responder a un posible incidente: memoria USB con herramientas de triage, disco USB para una captura de disco y un café de medio litro.

El usuario nos recibe durante exactamente 20 segundos: el tiempo suficiente como para dejarnos el equipo encendido e “irse a una reunión urgente”. Si es necesario, ya nos atenderá cuando vuelva. En este momento de todas formas lo único que necesitamos es una captura de información básica que nos permita determinar si tenemos o no un incidente de seguridad.

Lo primero de todo es hacer un volcado de la memoria RAM del equipo, en este caso con la herramienta DumpIt, con un funcionamiento más básico que el mecanismo de un botijo.

Desde el mismo USB de herramientas lanzamos la herramienta:

El resultado es un fichero de 2Gb generado directamente en la propia memoria USB (recordad que hay que tocar lo menos posible el disco duro por si luego tenemos que hacer un análisis forense).  Ya que estamos, vamos a recoger una información básica de triage con CYLR (que recoge entre otras cosas el registro de Windows, los logs y la MFT, todo ello a una velocidad de vértigo).

[Nota: queremos hacer este caso práctico MUY práctico. Por ello, puedes descargar tanto el volcado de RAM como el triage desde aquí].

Una vez recogida la información de triage (lo que debería llevaros <10min en un equipo moderno), podemos volver a nuestro equipo para revisar los datos. El análisis de la memoria suele ser la técnica que mejores resultados ofrece, así que tiramos de Volatility y realizamos dos listados de procesos con pslist y pstree (consejo: en estos análisis suele ser necesario volver a revisar la salida de muchos comandos, por lo que es muy útil redireccionar la salida a un fichero de texto):

 
# volatility --profile Win7SP1x64 -f win7_labodfir.raw pslist > pslist.txt
# volatility --profile Win7SP1x64 -f win7_labodfir.raw pstree > pstree.txt

Offset(V)          Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
------------------ -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0xfffffa8018da7040 System                    4      0     93      590 ------      0 2018-04-07 08:36:49 UTC+0000                                 
0xfffffa80194ee340 smss.exe                260      4      2       29 ------      0 2018-04-07 08:36:49 UTC+0000                                 
0xfffffa801a29a060 smss.exe                340    260      0 --------      0      0 2018-04-07 08:36:52 UTC+0000   2018-04-07 08:36:55 UTC+0000  
0xfffffa801a29c2f0 csrss.exe               348    340      9      580      0      0 2018-04-07 08:36:52 UTC+0000                                 
0xfffffa801a5a9900 smss.exe                380    260      0 --------      1      0 2018-04-07 08:36:55 UTC+0000   2018-04-07 08:36:55 UTC+0000  
0xfffffa801a5acb10 wininit.exe             388    340      3       78      0      0 2018-04-07 08:36:55 UTC+0000                                 
0xfffffa801a5b3b10 csrss.exe               400    380      9      325      1      0 2018-04-07 08:36:55 UTC+0000                                 
0xfffffa801a5dcb10 winlogon.exe            436    380      3      112      1      0 2018-04-07 08:36:55 UTC+0000                                 
0xfffffa801a66db10 services.exe            496    388      9      232      0      0 2018-04-07 08:36:56 UTC+0000                                 
0xfffffa801a67eb10 lsass.exe               504    388      7      579      0      0 2018-04-07 08:36:56 UTC+0000                                 
0xfffffa801a684b10 lsm.exe                 512    388     10      148      0      0 2018-04-07 08:36:56 UTC+0000                                 
0xfffffa801a532b10 svchost.exe             620    496     11      361      0      0 2018-04-07 08:36:58 UTC+0000                                 
0xfffffa801aa90060 svchost.exe             684    496      9      322      0      0 2018-04-07 08:36:58 UTC+0000                                 
0xfffffa801aac1870 svchost.exe             740    496     23      523      0      0 2018-04-07 08:36:58 UTC+0000                                 
0xfffffa801ab49b10 svchost.exe             832    496     19      450      0      0 2018-04-07 08:36:58 UTC+0000                                 
0xfffffa801ab5f630 svchost.exe             864    496     20      788      0      0 2018-04-07 08:36:59 UTC+0000                                 
0xfffffa801ab8cb10 svchost.exe             912    496     35     1018      0      0 2018-04-07 08:36:59 UTC+0000                                 
0xfffffa801abc1b10 audiodg.exe             996    740      6      136      0      0 2018-04-07 08:36:59 UTC+0000                                 
0xfffffa801ac1ab10 svchost.exe             984    496     15      383      0      0 2018-04-07 08:36:59 UTC+0000                                 
0xfffffa8019c7fb10 spoolsv.exe            1188    496     15      355      0      0 2018-04-07 08:37:00 UTC+0000                                 
0xfffffa8019c88450 taskhost.exe           1196    496     10      282      1      0 2018-04-07 08:37:00 UTC+0000                                 
0xfffffa8019cac600 svchost.exe            1256    496     18      319      0      0 2018-04-07 08:37:00 UTC+0000                                 
0xfffffa801acc6870 svchost.exe            1360    496     10      148      0      0 2018-04-07 08:37:00 UTC+0000                                 
0xfffffa801ad1bb10 Sysmon.exe             1448    496     12      572      0      0 2018-04-07 08:37:00 UTC+0000                                 
0xfffffa8018e61060 vmtoolsd.exe           1524    496      8      295      0      0 2018-04-07 08:37:00 UTC+0000                                 
0xfffffa801a0cf060 unsecapp.exe           1792    620      4       66      0      0 2018-04-07 08:37:02 UTC+0000                                 
0xfffffa801a59a060 WmiPrvSE.exe           1916    620     13      329      0      0 2018-04-07 08:37:03 UTC+0000                                 
0xfffffa801a5de060 dllhost.exe            1932    496      0 --------      0      0 2018-04-07 08:37:03 UTC+0000   2018-04-07 08:40:14 UTC+0000  
0xfffffa801a646060 TPAutoConnSvc.         2000    496     10      141      0      0 2018-04-07 08:37:03 UTC+0000                                 
0xfffffa801a69b060 sppsvc.exe             1312    496      6      153      0      0 2018-04-07 08:37:03 UTC+0000                                 
0xfffffa8018e67600 TPAutoConnect.          648   2000      5      122      1      0 2018-04-07 08:37:06 UTC+0000                                 
0xfffffa8019c33b10 conhost.exe            1080    400      1       34      1      0 2018-04-07 08:37:06 UTC+0000                                 
0xfffffa801a776060 dllhost.exe            2088    496     15      199      0      0 2018-04-07 08:37:09 UTC+0000                                 
0xfffffa801a6e2060 WUDFHost.exe           2232    832      8      192      0      0 2018-04-07 08:37:11 UTC+0000                                 
0xfffffa801a8628f0 msdtc.exe              2296    496     14      154      0      0 2018-04-07 08:37:11 UTC+0000                                 
0xfffffa801ac0d060 VSSVC.exe              2448    496      0 --------      0      0 2018-04-07 08:37:14 UTC+0000   2018-04-07 08:40:14 UTC+0000  
0xfffffa80192ab060 userinit.exe           2504    436      0 --------      1      0 2018-04-07 08:37:14 UTC+0000   2018-04-07 08:37:45 UTC+0000  
0xfffffa8019c52b10 dwm.exe                2512    832      5      126      1      0 2018-04-07 08:37:14 UTC+0000                                 
0xfffffa801a790060 explorer.exe           2536   2504     41     1158      1      0 2018-04-07 08:37:14 UTC+0000                                 
0xfffffa801922e620 vmtoolsd.exe           2616   2536      6      186      1      0 2018-04-07 08:37:17 UTC+0000                                 
0xfffffa801916f720 cmd.exe                2820   2536      1       20      1      0 2018-04-07 08:37:22 UTC+0000                                 
0xfffffa8019182060 conhost.exe            2828    400      2       63      1      0 2018-04-07 08:37:22 UTC+0000                                 
0xfffffa801913cb10 SearchIndexer.         2864    496     13      841      0      0 2018-04-07 08:37:23 UTC+0000                                 
0xfffffa80194d5650 SearchProtocol         2968   2864      0 --------      0      0 2018-04-07 08:37:26 UTC+0000   2018-04-07 08:41:37 UTC+0000  
0xfffffa8019748b10 SearchFilterHo         2992   2864      0 --------      0      0 2018-04-07 08:37:26 UTC+0000   2018-04-07 08:40:26 UTC+0000  
0xfffffa801a5b9360 svchost.exe            1944    496     14      225      0      0 2018-04-07 08:38:21 UTC+0000                                 
0xfffffa801a17bb10 wmpnetwk.exe           1744    496      9      209      0      0 2018-04-07 08:38:22 UTC+0000                                 
0xfffffa8019c45b10 mscorsvw.exe           2476    496      6       87      0      1 2018-04-07 08:39:03 UTC+0000                                 
0xfffffa801a819b10 mscorsvw.exe           2788    496      6       78      0      0 2018-04-07 08:39:03 UTC+0000                                 
0xfffffa801a81a600 svchost.exe            2908    496     13      361      0      0 2018-04-07 08:39:03 UTC+0000                                 
0xfffffa801a745320 TrustedInstall         1980    496      4      120      0      0 2018-04-07 08:39:51 UTC+0000                                 
0xfffffa801a831b10 PING.EXE               1940   2820      0 --------      1      0 2018-04-07 08:40:01 UTC+0000   2018-04-07 08:40:03 UTC+0000  
0xfffffa801a8d7b10 OSPPSVC.EXE            1136    496      6      128      0      0 2018-04-07 08:42:08 UTC+0000                                 
0xfffffa801ab2cb10 python.exe             3020   2536      0 --------      1      0 2018-04-07 08:42:14 UTC+0000   2018-04-07 08:47:34 UTC+0000  
0xfffffa801ab35350 conhost.exe            1760    400      0 --------      1      0 2018-04-07 08:42:15 UTC+0000   2018-04-07 08:47:34 UTC+0000  
0xfffffa801aa38b10 explorer.exe           1132    620      0 --------      1      0 2018-04-07 08:44:09 UTC+0000   2018-04-07 08:45:10 UTC+0000  
0xfffffa801a9c8600 vfggggg.exe            3208   1132      0 --------      1      0 2018-04-07 08:44:09 UTC+0000   2018-04-07 08:44:38 UTC+0000  
0xfffffa801a9c6b10 vfggggg.exe            2072   3208     23      396      1      1 2018-04-07 08:44:25 UTC+0000                                 
0xfffffa801aec0b10 WmiPrvSE.exe           3632    620     13      333      0      1 2018-04-07 08:44:42 UTC+0000                                 
0xfffffa801b55e060 WmiApSrv.exe           3476    496      5      112      0      0 2018-04-07 08:44:50 UTC+0000                                 
0xfffffa801ae88060 WmiPrvSE.exe           3080    620      7      211      0      1 2018-04-07 08:44:55 UTC+0000                                 
0xfffffa801afbc060 SearchProtocol         2952   2864      7      284      0      0 2018-04-07 08:45:39 UTC+0000                                 
0xfffffa801a91f550 SearchFilterHo         2676   2864      5      104      0      0 2018-04-07 08:45:39 UTC+0000                     

El vfggggg.exe casi hace daño a la vista de lo malicioso que parece. Esta vez parece que los creadores del malware no se han gastado nada en técnicas de ofuscación. Sí que es curioso que el padre sea explorer.exe (habitualmente suele ser un cmd.exe o un Powershell.exe, o podemos trazar los padres hasta llegar a un navegador o cliente de correo).
La segunda opción más rentable suele ser reconocer las conexiones de red con netscan:

# volatility --profile Win7SP1x64 -f win7_labodfir.raw netscan > netscan.txt

Volatility Foundation Volatility Framework 2.5

Offset(P)          Proto    Local Address                  Foreign Address      State            Pid      Owner          Created
0x7deda8c0         UDPv4    0.0.0.0:3702                   *:*      1944     svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e030010         UDPv4    0.0.0.0:64476                  *:*      864      svchost.exe    2018-04-07 08:38:26 UTC+0000
0x7e030010         UDPv6    :::64476                       *:*       864      svchost.exe    2018-04-07 08:38:26 UTC+0000
0x7e043730         UDPv4    0.0.0.0:5355                   *:*     984      svchost.exe    2018-04-07 08:38:20 UTC+0000
0x7e06bb30         UDPv4    0.0.0.0:3702                   *:*        1944     svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e06bb30         UDPv6    :::3702                        *:*         1944     svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e089b30         UDPv4    0.0.0.0:5355                   *:*             984      svchost.exe    2018-04-07 08:38:20 UTC+0000
0x7e089b30         UDPv6    :::5355                        *:*           984      svchost.exe    2018-04-07 08:38:20 UTC+0000
0x7e143010         UDPv4    0.0.0.0:3702                   *:*        864      svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e0a93b0         TCPv4    0.0.0.0:135                    0.0.0.0:0            LISTENING        684      svchost.exe    
0x7e0ac680         TCPv4    0.0.0.0:135                    0.0.0.0:0            LISTENING        684      svchost.exe    
0x7e0ac680         TCPv6    :::135                         :::0                 LISTENING        684      svchost.exe    
0x7e0af5c0         TCPv4    0.0.0.0:49152                  0.0.0.0:0            LISTENING        388      wininit.exe    
0x7e0b6820         TCPv4    0.0.0.0:49152                  0.0.0.0:0            LISTENING        388      wininit.exe    
0x7e0b6820         TCPv6    :::49152                       :::0                 LISTENING        388      wininit.exe    
0x7e144c80         TCPv4    0.0.0.0:49153                  0.0.0.0:0            LISTENING        740      svchost.exe    
0x7e145010         TCPv4    0.0.0.0:49153                  0.0.0.0:0            LISTENING        740      svchost.exe    
0x7e145010         TCPv6    :::49153                       :::0                 LISTENING        740      svchost.exe    
0x7e0afb10         TCPv6    -:0            6800:a91a:80fa:ffff:6800:a91a:80fa:ffff:0 CLOSED           1        ??=????       
0x7e435010         UDPv4    192.168.25.128:138             *:*      4        System         2018-04-07 08:38:19 UTC+0000
0x7e497ec0         UDPv4    192.168.25.128:137             *:*       4        System         2018-04-07 08:38:19 UTC+0000
0x7e5bdec0         UDPv4    0.0.0.0:3702                   *:*       1944     svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e5bdec0         UDPv6    :::3702                        *:*        1944     svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e5be010         UDPv4    0.0.0.0:64475                  *:*        864      svchost.exe    2018-04-07 08:38:26 UTC+0000
0x7e5c1e00         UDPv4    0.0.0.0:3702                   *:*          864      svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e5c1e00         UDPv6    :::3702                        *:*       864      svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e74bd40         UDPv4    0.0.0.0:54789                  *:*        1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e752010         UDPv4    0.0.0.0:54790                  *:*        1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e752010         UDPv6    :::54790                       *:*     1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7d4d00         UDPv4    0.0.0.0:3702                   *:*         864      svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e7d5340         UDPv4    0.0.0.0:54791                  *:*        864      svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7d69b0         UDPv4    0.0.0.0:54792                  *:*          864      svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7d69b0         UDPv6    :::54792                       *:*        864      svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7d8010         UDPv6    ::1:54794                      *:*     1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7ec330         UDPv6    fe80::fc4b:861d:db18:9601:54793 *:*   1944 svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7eca00         UDPv4    192.168.25.128:54795     *:*        1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7edd00         UDPv4    127.0.0.1:54796                *:*     1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7ee010         UDPv6    fe80::fc4b:861d:db18:9601:1900 *:*     1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7ee870         UDPv6    ::1:1900                       *:*     1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7f0010         UDPv4    192.168.25.128:1900     *:*     1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7f0950         UDPv4    127.0.0.1:1900                 *:*    1944     svchost.exe    2018-04-07 08:38:22 UTC+0000
0x7e7f5520         UDPv4    0.0.0.0:3702                   *:*    864      svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e7f5520         UDPv6    :::3702                        *:*        864      svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7e44c700         TCPv4    192.168.25.128:139             0.0.0.0:0            LISTENING        4        System         
0x7e7e5010         TCPv4    0.0.0.0:49155                  0.0.0.0:0            LISTENING        496      services.exe   
0x7e7e5010         TCPv6    :::49155                       :::0                 LISTENING        496      services.exe   
0x7e8a4010         TCPv4    0.0.0.0:49155                  0.0.0.0:0            LISTENING        496      services.exe   
0x7ead2360         TCPv4    0.0.0.0:445                    0.0.0.0:0            LISTENING        4        System         
0x7ead2360         TCPv6    :::445                         :::0                 LISTENING        4        System         
0x7ee61630         TCPv4    0.0.0.0:49154                  0.0.0.0:0            LISTENING        912      svchost.exe    
0x7ee63a80         TCPv4    0.0.0.0:49154                  0.0.0.0:0            LISTENING        912      svchost.exe    
0x7ee63a80         TCPv6    :::49154                       :::0                 LISTENING        912      svchost.exe    
0x7f372c40         TCPv4    0.0.0.0:5357                   0.0.0.0:0            LISTENING        4        System         
0x7f372c40         TCPv6    :::5357                        :::0                 LISTENING        4        System         
0x7ee767a0         TCPv6    -:0                            4870:da18:80fa:ffff:4870:da18:80fa:ffff:0 CLOSED           101      3              
0x7f566840         TCPv4    192.168.25.128:49219           91.192.100.59:30030  SYN_SENT         -1                      
0x7fb3bec0         UDPv4    0.0.0.0:0                      *:*     984      svchost.exe    2018-04-07 08:38:17 UTC+0000
0x7fb3bec0         UDPv6    :::0                           *:*    984      svchost.exe    2018-04-07 08:38:17 UTC+0000
0x7fc0a1e0         UDPv4    0.0.0.0:3702                   *:*     1944     svchost.exe    2018-04-07 08:39:03 UTC+0000
0x7fc98a50         TCPv4    0.0.0.0:49156                  0.0.0.0:0            LISTENING        504      lsass.exe      
0x7fc98a50         TCPv6    :::49156                       :::0                 LISTENING        504      lsass.exe      
0x7fc9f940         TCPv4    0.0.0.0:49156                  0.0.0.0:0            LISTENING        504      lsass.exe     

Obtenemos una combinación de IP/puerto bastante sospechosa: 91.192.100.59:30030. Dado que el puerto 30030 no es especialmente conocido, aquí podríamos tener de dónde tirar en nuestra investigación.
La tercera opción de interés es realizar un listado de los ficheros abiertos que están todavía residentes en memoria con filescan:

# volatility --profile Win7SP1x64 -f win7_labodfir.raw filescan > filescan.txt

Dado que tenemos un nombre de fichero sospechoso, podemos buscarlo:

# fgrep vfggggg.exe filescan.txt
0x000000007e272a90     14      0 R--r-d \Device\HarddiskVolume1\Users\antonio\AppData\Roaming\vfggggg.exe

Comprobamos que el fichero está localizado en una carpeta de usuario, una localización muy frecuente para el malware recién aterrizado en un equipo. Vamos a extraerlo de la memoria con dumpfiles:

# mkdir dump
# volatility --profile Win7SP1x64 -f win7_labodfir.raw dumpfiles -Q 0x000000007e272a90 -u -n -D dump

Obtenemos información básica del fichero con file y exiftool:

# file file.None.0xfffffa801ae09e30.vfggggg.exe.img 
file.None.0xfffffa801ae09e30.vfggggg.exe.img: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows

# exiftool file.None.0xfffffa801ae09e30.vfggggg.exe.img 
ExifTool Version Number         : 9.46
File Name                       : file.None.0xfffffa801ae09e30.vfggggg.exe.img
Directory                       : .
File Size                       : 4.0 kB
File Modification Date/Time     : 2018:04:07 14:52:57-04:00
File Access Date/Time           : 2018:04:07 14:53:34-04:00
File Inode Change Date/Time     : 2018:04:07 14:52:57-04:00
File Permissions                : rw-r--r--
File Type                       : Win32 EXE
MIME Type                       : application/octet-stream
Machine Type                    : Intel 386 or later, and compatibles
Time Stamp                      : 2017:06:24 06:53:40-04:00
PE Type                         : PE32
Linker Version                  : 8.0
Code Size                       : 371712
Initialized Data Size           : 580096
Uninitialized Data Size         : 0
Entry Point                     : 0xf000a
OS Version                      : 4.0
Image Version                   : 0.0
Subsystem Version               : 4.0
Subsystem                       : Windows GUI
Warning                         : Error processing PE data dictionary

El fichero parece ser nuestro culpable (un ejecutable PE32 no reconocido en espacio de usuario es como una pistola humeante al lado de un cadáver), pero en este caso el tamaño no acompaña: 4Kb, que indica que no ha podido ser extraído correctamente de la memoria.

Seguimos explorando las evidencias disponibles, en este caso la MFT (Master File Table) recogida por CYLR, que nos va a dar una buena pista de los ficheros que han estado operativos en el momento de la infección. Nuestro objetivo es encontrar la vía en la que el malware ha llegado al sistema, habitualmente una de estas tres: correo, navegación o USB.

La MFT está extraída en bruto gracias a la magia de CYLR, pero necesitamos convertirla a un formato legible, así que hacemos uso de la herramienta mftdump.exe para parsearla y convertirla en un fichero de 71Mb con 175K entradas.

Dado que solo nos interesa el día de hoy, podemos hacer extraer únicamente los ficheros tocados en el día:

# fgrep 2018-04-07 mft_parseada.csv > mft_malware.csv
# wc mft_malware.csv
   457  18333 145101 mft_malware.csv

La operación nos deja 457 eventos, algo mucho más manejable y que podemos abrir sin miedo en un LibreOffice Calc para su examen. No cuesta mucho localizar el vfggggg.exe y comprobar los ficheros que están alrededor:

25645 0 0 0     Purchase Order 03EDG.doc	PURCHA~1.DOC	2018-04-07 08:42:00 2018-04-07 08:42:29
2018-04-07 08:42:29	2018-04-07 08:42:29	
16508	0	1	0	Content.Word	CONTEN~1.WOR	2018-04-07 08:42:07	2018-04-07 08:45:39	2018-04-07 08:45:39	2018-04-07 08:45:39
25612	0	1	0	Content.Outlook	CONTEN~1.OUT	2018-04-07 08:42:29	2018-04-07 08:42:29	2018-04-07 08:42:29	2018-04-07 08:42:29
89905	0	0	0	test 02.exe	TEST02~1.EXE	2018-04-07 08:43:53	2018-04-07 08:43:53	2018-04-07 08:43:54	2018-04-07 08:43:54	952832
89897	0	0	0	vfggggg.exe			2018-04-07 08:44:02	2018-04-07 08:44:02	2018-04-07 08:43:54	2018-04-07 08:43:54	952832

El fichero “Purchase Order 03EDG.doc” tiene todos los boletos para ser el vector de infección. Podemos ver que tenemos residuos de la existencia tanto de Word como de Outlook, por lo que la cadena de infección parece bastante básica: el usuario ha recibido un correo en Outlook con un adjunto malicioso y lo ha abierto directamente con Word.

Ya tenemos localizados los ficheros que queremos recuperar del disco duro del usuario, pero antes de movernos vamos a asegurar la operación sacando la artillería pesada con el comando strings de Volatility (que se realiza en dos tiempos porque previamente tenemos que extraer todas las cadenas útiles del volcado de memoria):

$ strings -a -td win7_labodfir.raw > strings_win7.txt
$ strings -a -td -el win7_labodfir.raw >> strings_win7.txt 
$ volatility --profile Win7SP1x64 -f win7_labodfir.raw strings  -s strings_win7.txt > strings_vol.txt

Buscamos la IP de Netscan y confirmamos que está relacionada con nuestro malware:

# fgrep  91.192.100.59 strings_vol.txt

71148752 [FREE MEMORY:-1] "10:45:08,6998260","vfggggg.exe","2072","TCP Reconnect","192.168.25.128:49179 -> 91.192.100.59:30030","SUCCESS","Length: 0, seqnum: 0, connid: 0","0","C:\Users\antonio\AppData\Roaming\vfggggg.exe"

441241253 [FREE MEMORY:-1] "10:45:40,6802302","vfggggg.exe","2072","TCP Reconnect","192.168.25.128:49186 -> 91.192.100.59:30030","SUCCESS","Length: 0, seqnum: 0, connid: 0","0","C:\Users\antonio\AppData\Roaming\vfggggg.exe"

Investigamos otros rastros de conexiones TCP en la memoria con “TCP Send”, “TCP Receive” y “TCP Reconnect”:

# egrep "TCP Send|TCP Reveive|TCP Reconnect" strings_vol.txt

Encontramos varias conexiones de interés:

1536769087 [2676:00962c3f] 10:42:21,1402019,Network,TCP Send,OUTLOOK.EXE,1128,208.97.132.208:143
438082728 [2676:014baca8] 10:43:53,3557447,Network,TCP Send,powershell.exe,3456,185.83.215.16:443
1161326462 [2952:00299f7e] 10:43:47,6837408,Network,TCP Send,mshta.exe,1236,185.83.215.16:443
519710651 [FREE MEMORY:-1] 10:43:45,8308037,Network,TCP Send,WINWORD.EXE,3744,185.83.215.16:443
519710839 [FREE MEMORY:-1] 10:43:46,3235312,Network,TCP Send,WINWORD.EXE,3744,178.255.83.1:80

Al parecer sí que tenemos un Outlook en juego, así como unas conexiones muy sospechosas tanto de Word como de Powershell. Podríamos darle más vueltas al contenido del strings_vol.txt, pero ya tenemos todas las pistas relacionadas, así que podemos proceder a recuperar los ficheros sospechosos del equipo del usuario: “Purchase Order 03EDG.doc” y “vfggggg.exe”, además de la .pst del usuario (que almacena su correo).

Arrancamos el equipo con un live CD de Linux, montamos el disco y localizamos los ficheros que nos interesan (por ahora no parece necesario hacer una copia forense completa del disco duro). El análisis de los ficheros maliciosos, en el siguiente artículo…

Ver también en:

Comments

  1. Maestro. Ojalá en todas las empresas haya una política, un procedimiento para realizar estas tareas. En la mayoría de casos va el abuelete informático encargado, reinicia la máquina y si le sigue dando problemas disco duro nuevo que te va. Solucionado. Muy buen artículo. Esperaré al siguiente. Saludos.

  2. Buen artículo Antonio. Esperamos el siguiente.