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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 77
41  Programación / PHP / Re: Login con límite intentos en PHP en: 13 Julio 2016, 16:23 pm
No sé MySQL, ¿es la única solución?, ¿que diferencia hay en guardar datos en una dbs y usar MySQL a guardarlos en un archivo y obtenerlos con Splits?.

Si no me queda otra aprenderé MySQL, aunque no quería todavía centrarme web.

Saludos.
42  Programación / PHP / Login con límite intentos en PHP en: 13 Julio 2016, 14:20 pm
Buenas, estoy haciendo un login simple con POST que si los datos son correctos le activo sesión y cargo variables asociadas a esa sesión, pero sería muy fácil romper ese login con fuerza bruta ya que deja enviar usuarios y contraseñas sin límite.

Por ello, quiero que cada IP tenga un máximo de 3 intentos cada minuto por ejemplo.

Al ser muy noob con PHP solo se me ocurre crear un archivo con la IP que intento el login, si falla.
Así pues si falla, ponemos en el archivo datos estructurados de la forma [IP, intentos, tiempo]. Vemos si falla 3 veces y el tiempo de un minuto no ha sido superado en ese caso no validamos sus datos y mostramos error.

Pero claro creando un archivo... imaginad eso con muchas IPs intentando loguarse puede producir fallos... me pregunto si PHP nos facilitará otras formas de hacerlo, y no penséis en cookies para guardarle el estado al usuario ya que puede eliminarlas de las cabeceras y como si nada.

¿Ideas?,

Un saludo.
43  Programación / Programación C/C++ / OpenSSL vs CURL en: 13 Julio 2016, 12:04 pm
Buenas,

OpenSSL ofrece conexiones SSL y además tiene una suite de cifrado muy buena quizás la mejor librería de cifrado que haya, sus librerías estáticas son 2: libeay32.lib (13.405kbs) ssleay32.lib (2.232kbs).

Mientras que CURL ofrece conexiones para muchos protocolos con SSL pero nada de cifrado, su librería estática libcurl.lib pesa 1.613kb.

Todas las librerías de las que hablo son para versiones release.

Pero, ¿Por qué opción decantarse si utilizamos cifrado en nuestro programa?.

¿Y para conexiones sin texto plano, que pesará menos conexiones con la WINAPI o con CURL?.

Saludos.

44  Seguridad Informática / Seguridad / Re: ¿Man in the middle ? en: 9 Julio 2016, 21:43 pm
Mmm no creo que se pueda detectar un MITM con tracert no lo veo muy viable, supongo que te saldrían el mismo número de nodos intermedios y con las mismas IPs, aunque depende del MITM que se haga, si es con DHCP te pueden configurar distintas IPs, pero aún así, en este caso estaría fuera de nuestro alcance saber si es un equipo malicioso o no, puesto que está fuera de nuestra red, solo hay que ver nuestra máscara de red para saber que no podemos alcanzarla, el atacante estaría en todo caso fuera de nuestra red, pero dentro de la intranet de la ISP :P

He probado a hacer tracert y a mi también me sale 192.168.144.1, nuestras redes estarán conectadas a 192.168.144 que serán subredes, vlans, o vete a saber que de ese router, pero si estará ahí supongo que será para ofrecer servicios como cortafuegos, cache... o espías >:D jajaj pero nada.

Me parece normal, puedes estar tranquilo XD.

Saludos.
45  Seguridad Informática / Hacking / Re: [CONSULTA] Sniffear una Red en: 9 Julio 2016, 15:50 pm
Mmm la verdad que con DNS poisonning puedes liarla bastante, necesitarías un servidor DNS que haga de proxy, para que te sea útil supongo que pondrías una IP de un servidor tuyo que haga de proxy del protocolo que te interese sniffar, la verdad no se me había ocurrido esta idea, pero me parece bastante bestia lo que se puede hacer con esto... SSLStrip para todos XD.

Saludos.
46  Foros Generales / Noticias / Re: Lanzan una campaña de phishing aprovechando las IP de los que han descargado ... en: 9 Julio 2016, 12:20 pm
Repudio cierta noticias que mezclan cosas sin sentido, ¿qué relacion tiene la IP con el correo electrónico? ¿Como hablar del hackeo a la web de la nasa, cuando solo era una cuenta de twitter lo que se hackeo?, periodismo malo.

Y orubatosu si es lo que dices entonces la noticia sería otra, sería más bien que recogen tus datos para dejarte acceder al contenido y lanzan campaña de pishing contra tus datos, pero de verdad hay noticias que... las vas a leer como que vas a encontrar algo mágico por le título como relacionar IP con correo electrónico y luego sorpresa descubres que nada de eso era cierto.

Saludos.
47  Programación / Programación C/C++ / Re: Problema redirigiendo paquete TCP en: 5 Julio 2016, 21:33 pm
Problema también solucionado, flipáis como funciona mi sslstrip para windows!!! que bestia, tocan mejorar bastantes cosas porque va lento y a veces saltan errores, pero... la redirección HTTP funciona a la perfección con la idea que usé en mi segundo comentario sobre usar un vector para sacar la dirección de los servidores web en los paquetes de vuelta del servidor local.

Bueno aun así buscaré hacerlo lo más eficiente posible, ahorrando código pero ante todo hacerlo rápido y eficaz, el intercepter-ng una mierd*!! al lado de esto >:D >:D >:D

Como me lo voy a pasar con esto jajaja :rolleyes: :rolleyes: :rolleyes: :rolleyes:
48  Programación / Programación C/C++ / Re: TCP Checksum falla en algunos casos - C++ en: 5 Julio 2016, 21:28 pm
Ya lo solucioné, calculando la longitud del campo de options y añadiendolo al checksum, mágicamente todo funcionó, todos los checksum salen correctos ahora.

Código
  1. UCHAR* GetTCPChecksum(const UCHAR* content, UINT length)
  2. {
  3. UCHAR checksum[2];
  4. USHORT added = 0, add = 0;
  5. std::bitset<17> bs;
  6.  
  7. if (length < 54)
  8. return NULL;
  9.  
  10. for (UCHAR i = 26; i < 33; i++)
  11. {
  12. add = (USHORT)((content[i] << 8) + content[i + 1]);
  13. bs = added + add;
  14. added += add;
  15. if (bs[16] == 1)
  16. added++;
  17. i++;
  18. }
  19.  
  20. add = (USHORT)0x06;
  21. bs = added + add;
  22. added += add;
  23. if (bs[16] == 1)
  24. added++;
  25.  
  26. add = (USHORT)((content[46] & 0xF0) >> 4) * 4 - 20;
  27. bs = added + add;
  28. added += add;
  29. if (bs[16] == 1)
  30. added++;
  31.  
  32. add = (USHORT)((content[16] << 8) + content[17]) - (USHORT)((content[46] & 0xF0) >> 4) * 4;
  33. bs = added + add;
  34. added += add;
  35. if (bs[16] == 1)
  36. added++;
  37.  
  38. for (UINT i = 34; i < length - 1; i++)
  39. {
  40. if (i != 50)
  41. {
  42. add = (USHORT)((content[i] << 8) + content[i + 1]);
  43. bs = added + add;
  44. added += add;
  45. if (bs[16] == 1)
  46. added++;
  47. }
  48. i++;
  49. }
  50.  
  51. if (length % 2)
  52. {
  53. add = (USHORT)(content[length - 1] << 8) + 0;
  54. bs = added + add;
  55. added += add;
  56. if (bs[16] == 1)
  57. added++;
  58. }
  59.  
  60. added = added & 0xFFFF;
  61. added = ~added;
  62.  
  63. checksum[0] = (added >> 8) & 0x00FF;
  64. checksum[1] = added & 0x00FF;
  65.  
  66. return checksum;
  67. }
  68.  

Os dejo mi precioso código, quien sabe seguramente a alguien le pueda ayudar en un futuro. Seguramente lo mejore y pase a hacerlo con operadores de byte en vez de con bitset que es lo más eficiente.

Saludos, Kaxperday ;)
49  Programación / Programación C/C++ / Re: Problema redirigiendo paquete TCP en: 5 Julio 2016, 11:55 am
Traigo una buena noticia, ayer me llevé grata sorpresa al ver que conseguí conectar un host al server!!!!, tras miles de TCP checksums fallidos debieron de alinearse los planetas y conseguir lanzar el handshake y una petición GET, no se volvió a saber nada más (el server la respondió pero no volvieron a llegar del host) primero hay que arreglar el checksum y luego se podrá volver a entrar al tema de la redirección para hacerla más eficiente y e mejor. Sin el TCP checksum bien se fallan mil paquetes y es imposible que haya conexión y más si no es persistente.

Pues uso windows 10 en concreto, si fueran linux serían easy con el iptables XD, primero a ver si soluciono el TCP checksum, ya veo que tu eres linuxero, gracias por las aportaciones y la respuesta, veré a ver si puedo solucionar el checksum XD.

Saludos!!
50  Programación / Programación C/C++ / TCP Checksum falla en algunos casos - C++ en: 5 Julio 2016, 11:34 am
Bueno pues es bastante raro, parece que esta todo correcto (el código), pero sin embargo hay veces que falla aunque suele acertar el 90% de los checksums, pero los que falla son los de handshake sobretodo que se caracterizan por llevar el campo de "options" que no está explícito en el paquete. Normalmentela diferencia de error suele estar en la del tamaño del bytes del campo options, si el campo es de 12 bytes, lo que sumo del checksum es 12 menos que lo que debería sumarle, no entiendo nada, en caso de fallar sería esta línea add = (USHORT)((content[16] << 8) + content[17]) - (USHORT)((content[46] & 0xF0) >> 4)  pero está correcta.

Código
  1. UCHAR* GetTCPChecksum(const UCHAR* content, UINT length)
  2. {
  3. UCHAR checksum[2];
  4. USHORT added = 0, add = 0;
  5. std::bitset<17> bs;
  6.  
  7. if (length < 54)
  8. return NULL;
  9.  
  10. for (UCHAR i = 26; i < 33; i++)
  11. {
  12. add = (USHORT)((content[i] << 8) + content[i + 1]);
  13. bs = added + add;
  14. added += add;
  15. if (bs[16] == 1)
  16. added++;
  17. i++;
  18. }
  19.  
  20. add = (USHORT)0x06;
  21. bs = added + add;
  22. added += add;
  23. if (bs[16] == 1)
  24. added++;
  25.  
  26. add = (USHORT)((content[16] << 8) + content[17]) - (USHORT)((content[46] & 0xF0) >> 4) * 4;
  27. bs = added + add;
  28. added += add;
  29. if (bs[16] == 1)
  30. added++;
  31.  
  32. for (UINT i = 34; i < length - 1; i++)
  33. {
  34. if (i != 50)
  35. {
  36. add = (USHORT)((content[i] << 8) + content[i + 1]);
  37. bs = added + add;
  38. added += add;
  39. if (bs[16] == 1)
  40. added++;
  41. }
  42. i++;
  43. }
  44.  
  45. if (length % 2)
  46. {
  47. add = (USHORT)(content[length - 1] << 8) + 0;
  48. bs = added + add;
  49. added += add;
  50. if (bs[16] == 1)
  51. added++;
  52. }
  53.  
  54. added = added & 0xFFFF;
  55. added = ~added;
  56.  
  57. checksum[0] = (added >> 8) & 0x00FF;
  58. checksum[1] = added & 0x00FF;
  59.  
  60. return checksum;
  61. }
  62.  

Hay que  sumar en de 16 bits en 16 bits (en USHORT): el IP origen + IP destino + numero de protocolo <<8 + longitud del segmento TCP (la linea en cuestión) + payload TCP y si es impar se suma el ultimo pasandole a la izquierda del USHORT (<<8).

Eso es todo pero la práctica.. dejo un link que sigo para hacerlo:

http://www.arcesio.net/checksum/checksumTCP.html

Probad vosotros mismos con el wireshark, pasandole el paquete completo y el header-> caplen a la función, los paquetes que llevan el campo options suelen fallar.


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