Una de las cosas que más sorprende de Impacket es la cantidad de clases Python que permiten interactuar con SMB o MSRPC, algo que no solamente se ha visto en los post anteriores, sino que además es evidente por la cantidad de herramientas disponibles que utilizan estos protocolos. En este post se explicarán algunas de estas utilidades no sin antes recordarte que puedes leer las entradas anteriores a esta en los siguientes enlaces.

Network Hacking con Impacket – Parte 1
Network Hacking con Impacket – Parte 2
Network Hacking con Impacket – Parte 3

MiniImpacketShell con SMBClient.py

Esta utilidad aprovecha las clases disponibles en Impacket sobre SMB para establecer una conexión con el servicio remoto y desplegar un interprete liviano que también está incluido en Impacket llamado MiniImpacketShell. Permite ejecutar comandos directos contra el sistema comprometido y resulta bastante cómodo de utilizar.

Tal como se aprecia en la imagen anterior, se trata de una shell simple que permite moverse por el sistema de ficheros de la máquina comprometida y ejecutar acciones típicas en un proceso de post-explotación en Windows como puede ser subir o eliminar ficheros/directorios, listar y montar unidades compartidas, establecer una nueva conexión SMB a un host distinto para ejecutar movimientos laterales, etc.

Obtener la arquitectura de un sistema con getArch.py

Probablemente este es uno de los scripts más sencillos que hay en Impacket ya que simplemente recibe un objetivo o lista de direcciones IP/dominios y se encarga de obtener la arquitectura de dichos sistemas. Es una característica del protocolo MSRPC que ha sido descubierta hace varios años y que Microsoft ha decidido incorporar a los apéndices correspondientes a las características del producto. En otras palabras, no se considera un bug sino una “feature”. El apéndice concreto es el 53 y se puede leer aquí. Por otro lado, no hace falta contar con credenciales validas en ninguno de los sistemas consultados.

Listado de sesiones abiertas en el objetivo con netview.py

Se trata de un script que se encarga de listar todas las sesiones abiertas en un dominio u objetivo concreto y enseña los detalles básicos de dichas sesiones. Es necesario introducir un usuario y una contraseña validos para una cuenta de dominio. El script se queda en estado de escucha atendiendo a todos los eventos que se van produciendo (inicios de sesión).

También es posible indicar un objetivo concreto en lugar del dominio completo con la opción “-target”, de esa manera el script únicamente obtendrá información sobre los inicios de sesión en esa máquina y no en todo el dominio.

Gestión de servicios utilizando MSRPC con services.py

Por otro lado, el script “services.py” permite la gestión de servicios en el sistema remoto, de esta manera es posible listar, iniciar, detener o reiniciar cualquier servicio, siempre y cuando la cuenta utilizada para acceder a dicho sistema tenga los privilegios adecuados.


Este script es similar a ejecutar la utilidad “SC.EXE” en un sistema Windows, ya que como se puede ver en la imagen anterior, se puede ejecutar cualquier operación sobre los servicios del sistema, incluyendo su creación y borrado. Evidentemente, con esto sería posible establecer un mecanismo de persistencia típico basado en la creación de un servicio malicioso.

En el siguiente post de la serie se profundizará un poco más sobre las utilidades disponibles en Impacket y cómo emplearlas adecuadamente.

Un saludo y Happy Hack!
Adastra.