Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Kaxperday

#311
Cita de: Eternal Idol en 29 Septiembre 2015, 13:01 PM
Son sockets bloqueantes y estas en un bucle, cuando no haya mas que leer esperara a recibir algo desde el otro extremo.

Pero sale del bucle cuando hay error (-1) o cuando ya no recibe más datos, debido a la condición, y para que no se quede esperando respuesta, cuando el timeout salta sale del bucle si no ha recibido respuesta. Luego espera al otro extremo, hasta que el timeout salta, entonces deja de esperarlo y sale.
#312
Cita de: Orubatosu en 29 Septiembre 2015, 11:37 AM
Si eso es una función... ¿donde está el return?

Si te refieres al código en su conjunto es una parte de una función, y hay funciones que no devuelven nada, void.

Si te refieres al recv(), su valor de retorno queda almacenado en la variable res, que ahora que lo dices se me ha olvidado quitarla, pues ya no la uso, hago comprobación de tamaño de la respuesta obtenida, en vez de igualar a SOCKET_ERROR (-1), así hago una mejor comprobación de errores y si no obtiene respuesta cuenta como error.

Aparte que esto no tiene que ver con el tema en cuestión, seguiré buscando hacerla de un timeout para recv(), seguro se puede.

Saludos.

Tacata && solvented:

Código (cpp) [Seleccionar]
string respuesta;
char *bloque = new char[3000]();
timeval tiempo_espera;
tiempo_espera.tv_sec = 1;
setsockopt(victima, SOL_SOCKET, SO_RCVTIMEO, (char*)&tiempo_espera, sizeof(timeval));
while (recv(victima, bloque, 3000, 0) > 0)
respuesta += string(bloque);


Saludos ft kxd
#313
Código (cpp) [Seleccionar]
string respuesta;
char *bloque = new char[3000]();
while (int res = recv(victima, bloque, 3000, 0) > 0)
respuesta += string(bloque);


... mientras que esto es instantáneo? : recv(victima, bloque, 3000, 0);

¿No hay algún timeout para que salga?, o ¿no se puede hacer algo?.

Saludos.
#314
Programación C/C++ / Threads y travesuras en C++
26 Septiembre 2015, 20:31 PM
Hola a todos,

hasta ahora cuando he trabajado con subprocesos he trabajado con async(), pero es lo mismo que un thread o mejor?. Además no son autenticos thread ¿no?.

Lo digo porque cuando programaba en C# y creaba un nuevo thread en el administrador de tareas salían 2 ejecutables con el nombre del programa el normal y el del thread, sin embargo en cpp ¿como se crea un thread así?.

También el mutex me vuelve un poco loco, da muchos errores, la verdad me esta costando trabajar con procesos bastante XD. ¿Dónde lo declaro para que haya uno único para todo el programa.

Simplemente lo necesito para hacer el reescaneo de hosts ya que allí actualizo la lista de victimas, meto mutex actualizo lista y unlock(), y en todas las partes del programa que se accede a la lista lo mismo lock() y unlock() al salir, es horrible.

Saludos.
#315
Hola, ya me ha surgido el primer problema.

http://blog.catchpoint.com/2010/09/17/anatomyhttp/

El problema está que cuando la victima manda una peticion dns req, le paso una dns res con mi ip atacante, y se conectará a mi servidor, pero mi servidor desconoce a qué pagina manda la peticion, su dominio, puesto que llega ya con la consulta dns resuelta así que ya deja de usar el dominio, hasta que el servidor la responde. Entonces no puedo cargarla y devolverla, simplemente me llega un HTTP sin host ni nada.

Necesito que vengan a mi servidor antes de hacer el dns spoofing, para que a mi servidor de alguna manera le lleguen los paquetes dns y pueda obtener el dominio real, o sino pasar informacion entre 2 subprocesos de una manera muy compleja que no sé hacer, a ver que se me ocurre.

Saludos.

Edito: El servidor recibe las peticiones de este modo:

GET / HTTP/1.1
Host: 192.168.1.130
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/45.0.2454.99 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-ES,es;q=0.8


Como podemos observar en el campo de host aparece nuestra ip, el servidor HTTP desconoce la página que está buscando el cliente, por lo que no puede pedirla al router y reenviarle la respuesta al cliente. ¿alguna idea?.

Ya simplemente si conseguiría hacer eso habría que reenviar paquete al server removiendo encoding de cabeceras y mandar la respuesta por el socket del cliente.
Y sería un éxito. Aunque tendría que implementar el checksum tcp y mejorar el udp que solo funciona cuando solo tiene un campo el contenido de respuesta udp, pues a veces corresponden varias ips un dns response, lo tengo hecho para corresponder solo una los 4 últimos bytes, ya miraré como hacerlo para varios. Pero bien, poco queda y mucho a la vez XD.

Saludos.

Edito: Como ya he dicho cuando las víctimas van al servidor proxy piensan que es la ip de la página que buscan pero no lo es, entonces el servidor al aceptar conexión con ellas no sabe a dónde enviar sus peticiones pues no tiene ni la ip real ni el dominio real que busca la víctima, ¿alguna solución a esto?.
#316
Vaya hijos de putin.

#317
Hola a todos, tengo una duda sobre clonación de una web, ¿cómo se hace si queremos clonar para 10 victimas distinas?.

La idea es hacer un MITM, después hacer DNS spoofing a todas las víctimas diciendo que al dominio sugerido le corresponde mi IP.

Después tendré que montar un servidor ¿en puerto 80 o puede ser otro puerto?, en el que se conecten las víctimas, ese servidor actuaría de cliente pediría datos a los dominios reales que sugirió la víctima y los devolvería a las víctimas modificados si así lo deseamos.

Pero.. Si hay 10 víctimas, y cada una carga 5 pestañas de varios dominios diferentes ¿que habría que hacer?, ¿puedo hacer que mi servidor a parte de diferenciar a las víctimas que diferencie si cargan para una pestaña u otra?, más o menos.

¿La solución está en montar un servidor en el puerto 80 del atacante?, ¿eso podría clonar páginas para varias víctimas aunque soliciten mismos dominios etc?.

Solo quiero saber si es físicamente posible, antes de entrar a programar.

Saludos.
#318
Entonces... ¿por qué nosotros no podemos instalarlos troyanos para saber si están cometiendo alguna negligencia?, es un servicio público tenemos derecho a saber lo que hacen con total transparencia...

Evidentemente eso estaría mal, pero igual de mal que lo está infectar a los ciudadanos sin una orden judicial.

Ya de paso les podemos dar las llaves de nuestra casa, por si sospechan también, que entren cuando quieran, ahh pero eso no se hace.. será que el ordenador es una propiedad de segunda en la que pueden entrar cuando quieran e infectarlo sin pudor alguno.

¿Será la guindilla de la ley mordaza?, ¿O habrá más?. ¡Forza Mariano, Forza!.
#319
Hacking / ¿Funciona el DNS spoofing?
22 Septiembre 2015, 18:33 PM
Buenas, lo acabo de implementar y me salen alertas en el navegador de la victima, avisos de cloudfare para páginas normales (raras que he probado unas pocas) y de google si es google.

Seguiré investigando, seguramente se pueda bypassear, justo lo acababa de conseguir y sale esto XDD, me daba error al principio de que era un byte menos en la ip, luego error del checksup udp en el paquete dns que no sabía que existia y lo dejaba igual, luego un error en un for del checksup udp y ya funciona, hace dns req, y mando la dns response falsificada con otra ip para el dominio que solicito, pero salen alertas.

¿Alguien sabe porque? ¿Si ya no funciona? ¿que tipo de seguridad tiene? ¿Y si se puede bypassear?.

Saludos.

Edito:

Error:

Error 1001 DNS resolution error

Me dice que he solicitado una página que está en la red cloudflare. Vaya, todas deben de estar en esa red menos google visto lo visto :/.

Edito:

https://www.cloudflare.com/ddos

Vaya vaya, esto tiene mala pinta, cuando la victima va a la página "facebook.com" con una ip spoofeada "89.212.23.1", pasa por el servidor cloudflare si pertenece a la red de este, entonces cloudflare lo detecta y envía un mensaje de alerta en su lugar.

AAAMIGOS.

Supongo que se podrá hacer bypass creando un servidor http en el atacante y que cuando cargue "facebook.com" le pasamos la ip del atacante, entonces no saldrá fuera del router y no pasará por cloudflare, se conectaría a nosotros creyendo que es facebook, ya solo quedaría tener preparada una página falsa de facebook en nuestro ordenador, que hayamos cargado previamente de la verdadera con peticiones del atacante.

Saludos.

Edito: Bueno, creo que ya se para lo que vale el dns2proxy... seguramente que para esto.
#320
Hacking / Re: Bypass HSTS
21 Septiembre 2015, 17:32 PM
Buenas, me parece un tema interesante el tratado.

Estoy tratando de implementar el sslstrip2 para windows, y tengo dudas acerca de su fucnionamiento, bien es sabido que antes de hacer algo hay que informarse bien de lo que se pretende hacer.

Suponiendo que he logrado el MITM en windows solo en victimas de la red pues el ordenador atacante no hay manera de reenviar los datos enviados y modificarlos en windows (que conozca), ¿por donde debería empezar para implementar el sslstrip2?.

Necesito saber como funciona el dns2proxy exactamente.

La idea es hacer sslstrip solo si la victima visita una página sin HSTS, en caso de que la página lo tenga implementado habría que detectarlo y entonces lanzaríamos un dns spoofing diciendo que la ip de facebook por ejemplo es nuestra ip local de red, y en nuestra máquina deberíamos tener implementado un servidor (con sockets o iit) ¿que se comunique con facebook cont HTTPs?, pero la víctima manda los datos a nuestro server con HTTP, y luego este conecta con facebook con HTTPS, ¿así funcionaría no?.

Saludos.