Sharp

Escaneamos los

# Nmap 7.91 scan initiated Tue Mar  2 12:36:47 2021 as: nmap -p- --open -n -T5 -v -oG allPorts 10.10.10.219
# Ports scanned: TCP(65535;1-65535) UDP(0;) SCTP(0;) PROTOCOLS(0;)
Host: 10.10.10.219 ()	Status: Up
Host: 10.10.10.219 ()	Ports: 135/open/tcp//msrpc///, 139/open/tcp//netbios-ssn///, 445/open/tcp//microsoft-ds///, 5985/open/tcp//wsman///, 8888/open/tcp//sun-answerbook///, 8889/open/tcp//ddi-tcp-2///	Ignored State: filtered (65529)
# Nmap done at Tue Mar  2 12:38:10 2021 -- 1 IP address (1 host up) scanned in 82.36 secondsExcellent!

Servicios

Entramos por SMB utilizando una sesión NULL.

Listamos el contenido de la carpeta que podemos visualizar.

Descargamos el contenido y lo pasamos a una máquina Windows.

En el archivo PortableKanban.pk3, vemos que tenemos en este archivo el usuario Administrator y su contraseña encriptada, antes de realizar cracking, intentaremos borrar la contraseña de archivo de configuración, supongo lo utiliza a la hora de arrancar, toma la contraseña de este archivo.

Solo tenemos que borrar la contraseña de los archivos PortableKanban.pk3 PortableKanban.pk3.bak, para poder ingresar.

Si clicamos en Setup podemos ver diferentes pestañas, la más importante Users, primero debemos desplomar la casilla y la contraseña será visible.

Con este usuario y contraseña probamos ingresar por medio de SMB.

En el directorio dev, se encuentra un par de ejecutables interesantes.

Descargamos el contenido

Utilizaré dnSpy https://github.com/dnSpy/dnSpy para ver el código fuente de la aplicación. Abrimos el cliente y servidor. Lo importante aquí es la clase Client, podemos ver que se establece una conexión TCP por el puerto 8888, con el usuario debug y contraseña SharpApplicationDebugUserPassword123!,

Existe un exploit para aprovecharnos de .NET en los servicios en canales remotos. Utilizaré la versión complica, del siguiente enlace y también ysoserial para generar un payload.

https://github.com/parteeksingh005/ExploitRemotingService_Compiledarrow-up-right

https://github.com/pwntester/ysoserial.netarrow-up-right

Generando payload.

Generando binario.

Debemos de transferir el archivo y ponernos en escucha.

Vemos con los permisos que cuenta el archivo.

SI lo ejecutamos, vemos que nos trae información del sistema.

Por lo que copie todo el contenido al recurso \dev para descargarlo desde mi máquina.

Descargamos Visual Studio Community para visualizar el proyecto. Podemos ver la clase cliente, a donde se conecta y la información que nos devuelve.

En su momento no tome las suficientes capturas, pero en alguna clase, vamos a ver que están algunas funciones, por ejemplo GetDiskInfo o GetCpuInfo, en esa clase vamos a ver que existe una función llamada InvokePowerShell, por lo que podemos deducir que podemos ejecutar comandos.

Basta con agregar una línea en el método principal que invoque la función anterior para obtener una reverse shell.

Una vez que este complidado debemos de pasar los archivos al servidor.

Ejecutamos WcfClient.exe

https://book.hacktricks.xyz/windows/basic-powershell-for-pentesters#download

Last updated