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ú

Temas - .:UND3R:.

#1
Hola a todos, dejo a disposición lo que será una serie de video tutoriales sobre la introducción al Exploiting en Windows x86/32 bits. Estos videos tutoriales se basan en los tutoriales de Corelan

Lista de reproducción de Youtube


Lista de Youtube: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

-- Descargas de programas utilizados, PDF y más.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Dudas o consultas
Pueden hacerlas en este post.

Saludos
#2
Hola a todos, llevo semanas intentando encontrar ayuda con respecto al modo incógnito de Chrome, me gustaría saber como podría detectar que se está ejecutando Chrome en modo incógnito, sé que obtener el historial de este es algo más difícil, pero afortunadamente no me interesa, solo pretendo saber cuando se abrió una pestaña en tal modo.

Googleando encontré que daban como sugerencia obtener el tamaño de la pantalla y chequear su tamaño, si disminuye es a causa del teclado, por lo cual sería bueno, verificar el tráfico de datos de Chrome junto con el teclado, si hay un teclado en uso y no hay transferencia de datos entonces se está en modo incógnito. El problema principal radica en que no dispongo de un conocimiento tan avanzado para programar.

Espero su ayuda chicos, saludos.
#3
ScoopyNG es una herramienta capas de realizar una serie de pruebas (test) para verificar si se está ejecutando (la misma herramienta) en una máquina virtual VMware, la página del proyecto es la siguiente:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Lo mejor de esta herramienta es que posee su propio código de fuente con lo cual nos da la posibilidad de poder implementar estas funciones de chequeo en nuestros propios programas, con la finalidad de hacer un software más seguro, aquí el código de fuente:

Código: c
/* ScoopyNG - The VMware detection tool
* Version v1.0
*
* Tobias Klein, 2008
* www.trapkit.de
*/

#include <windows.h>
#include <excpt.h>
#include <stdio.h>

#define DEBUG 0
#define EndUserModeAddress (*(UINT_PTR*)0x7FFE02B4)

typedef LONG (NTAPI *NTSETLDTENTRIES)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);

unsigned long
get_idt_base (void)
{
unsigned char idtr[6];
unsigned long idt = 0;

_asm sidt idtr
idt = *((unsigned long *)&idtr[2]);

return (idt);
}

unsigned long
get_ldtr_base (void)
{
unsigned char   ldtr[5] = "\xef\xbe\xad\xde";
unsigned long   ldt = 0;

_asm sldt ldtr
ldt = *((unsigned long *)&ldtr[0]);

return (ldt);
}

unsigned long
get_gdt_base (void)
{
unsigned char   gdtr[6];
unsigned long   gdt = 0;

_asm sgdt gdtr
gdt = *((unsigned long *)&gdtr[2]);

return (gdt);
}

void
test1 (void)
{
unsigned int idt_base = 0;

idt_base = get_idt_base ();

printf ("[+] Test 1: IDT\n");
printf ("IDT base: 0x%x\n", idt_base);

if ((idt_base >> 24) == 0xff) {
printf ("Result  : VMware detected\n\n");
return;
}

else {
printf ("Result  : Native OS\n\n");
return;
}
}

void
test2 (void)
{
unsigned int ldt_base = 0;

ldt_base = get_ldtr_base ();

printf ("\n[+] Test 2: LDT\n");
printf ("LDT base: 0x%x\n", ldt_base);

if (ldt_base == 0xdead0000) {
printf ("Result  : Native OS\n\n");
return;
}

else {
printf ("Result  : VMware detected\n\n");
return;
}
}

void
test3 (void)
{
unsigned int gdt_base = 0;

gdt_base = get_gdt_base ();

printf ("\n[+] Test 3: GDT\n");
printf ("GDT base: 0x%x\n", gdt_base);

if ((gdt_base >> 24) == 0xff) {
printf ("Result  : VMware detected\n\n");
return;
}

else {
printf ("Result  : Native OS\n\n");
return;
}
}

// Alfredo Andrés Omella's (S21sec) STR technique
void
test4 (void)
{
unsigned char mem[4] = {0, 0, 0, 0};

__asm str mem;

printf ("\n[+] Test 4: STR\n");
printf ("STR base: 0x%02x%02x%02x%02x\n", mem[0], mem[1], mem[2], mem[3]);

if ((mem[0] == 0x00) && (mem[1] == 0x40))
printf ("Result  : VMware detected\n\n");
else
printf ("Result  : Native OS\n\n");
}

void
test5 (void)
{
unsigned int a, b;

__try {
__asm {

// save register values on the stack
push eax
push ebx
push ecx
push edx

// perform fingerprint
mov eax, 'VMXh' // VMware magic value (0x564D5868)
mov ecx, 0Ah // special version cmd (0x0a)
mov dx, 'VX' // special VMware I/O port (0x5658)

in eax, dx // special I/O cmd

mov a, ebx // data
mov b, ecx // data (eax gets also modified but will not be evaluated)

// restore register values from the stack
pop edx
pop ecx
pop ebx
pop eax
}
} __except (EXCEPTION_EXECUTE_HANDLER) {}

#if DEBUG == 1
printf ("\n [ a=%x ; b=%d ]\n\n", a, b);
#endif

printf ("\n[+] Test 5: VMware \"get version\" command\n");

if (a == 'VMXh') { // is the value equal to the VMware magic value?
printf ("Result  : VMware detected\nVersion : ");
if (b == 1)
printf ("Express\n\n");
else if (b == 2)
printf ("ESX\n\n");
else if (b == 3)
printf ("GSX\n\n");
else if (b == 4)
printf ("Workstation\n\n");
else
printf ("unknown version\n\n");
}
else
printf ("Result  : Native OS\n\n");
}

void
test6 (void)
{
unsigned int a = 0;

__try {
__asm {

// save register values on the stack
push eax
push ebx
push ecx
push edx

// perform fingerprint
mov eax, 'VMXh' // VMware magic value (0x564D5868)
mov ecx, 14h // get memory size command (0x14)
mov dx, 'VX' // special VMware I/O port (0x5658)

in eax, dx // special I/O cmd

mov a, eax // data

// restore register values from the stack
pop edx
pop ecx
pop ebx
pop eax
}
} __except (EXCEPTION_EXECUTE_HANDLER) {}

printf ("\n[+] Test 6: VMware \"get memory size\" command\n");

if (a > 0)
printf ("Result  : VMware detected\n\n");
else
printf ("Result  : Native OS\n\n");
}

int
test7_detect (LPEXCEPTION_POINTERS lpep)
{
printf ("\n[+] Test 7: VMware emulation mode\n");

if ((UINT_PTR)(lpep->ExceptionRecord->ExceptionAddress) > EndUserModeAddress)
printf ("Result  : VMware detected (emulation mode detected)\n\n");
else
printf ("Result  : Native OS or VMware without emulation mode\n"
"          (enabled acceleration)\n\n");

return (EXCEPTION_EXECUTE_HANDLER);
}

void __declspec(naked)
test7_switchcs ()
{
__asm {
pop eax
push 0x000F
push eax
retf
}
}

// Derek Soeder's (eEye Digital Security) VMware emulation test
void
test7 (void)
{
NTSETLDTENTRIES ZwSetLdtEntries;
LDT_ENTRY csdesc;

ZwSetLdtEntries = (NTSETLDTENTRIES)GetProcAddress (GetModuleHandle ("ntdll.dll"), "ZwSetLdtEntries");

memset (&csdesc, 0, sizeof (csdesc));

csdesc.LimitLow = (WORD)(EndUserModeAddress >> 12);
csdesc.HighWord.Bytes.Flags1 = 0xFA;
csdesc.HighWord.Bytes.Flags2 = 0xC0 | ((EndUserModeAddress >> 28) & 0x0F);

ZwSetLdtEntries (0x000F, ((DWORD*)&csdesc)[0], ((DWORD*)&csdesc)[1], 0, 0, 0);

__try {
test7_switchcs();
__asm {
            or eax, -1
            jmp eax
        }
    }
    __except (test7_detect (GetExceptionInformation())) { }
}

int
main (void)
{
printf ("\n\n####################################################\n");
printf ("::       ScoopyNG - The VMware Detection Tool     ::\n");
printf ("::              Windows version v1.0              ::\n\n");

test1 ();
test2 ();
test3 ();
test4 ();
test5 ();
test6 ();
test7 ();

printf ("::                   tk,  2008                    ::\n");
printf ("::               [ www.trapkit.de ]               ::\n");
printf ("####################################################\n\n");

return 0;
}


Saludos
#4
Introducción
Los usuarios recién iniciados en el arte del pentesting, generalmente se basan en un solo factor de análisis o secuencia de técnicas:
- Análisis y explotación a nivel de sistema operativo:
  + Utilizar nmap, para obtener información acerca de los puertos y servicios que un servidor posee.
  + Utilización de exploit pre-diseñados bajo el framework Metasploit.

- Análisis y explotación a nivel de web:
  + Análisis de vulnerabilidades.
  + Explotación de vulnerabilidades.

Si ninguna de estas fases arroja un resultado positivo (para el atacante), comúnmente se suele buscar otro servidor para intentar esta vez tener más suerte.

¿Ahora qué?
Tienes dos alternativas:
1.- Seguir siendo un script kiddie, es decir utilizar herramientas de terceros para cometer actos de hacker o seguir siendo un lammer (utilizar las herramientas y peor aun proclamarse hackers).
2.- Aprender a hacer exploits y shellcodes desde cero.

Eh aquí la diferencia, muchos usuarios creen que aprender a manipular herramientas de terceros, los convierte en hackers, yo diría más bien en lammer si es que creen ser hackers o script kiddie si tienen noción y están concientes de que se están iniciando pero aun así desean aprender más.

La diferencia principal entre un sujeto que presume ser hacker y uno que en realidad lo es, es muy simple:
Un hacker será capaz de encontrar nuevas vulnerabilidades o moldear existentes bajo el entorno que se le presente y podrá facilitar sus análisis o pruebas de conceptos bajo la creación de herramientas (saber programar), si es así, un hacker debe sí o sí saber programar ya que de esta manera su teoría podría ser aplicada en herramientas reales que podrán ser utilizadas de manera privada o pública (criterio del hacker).

Para ello comparto con ustedes una serie de tutoriales en donde se explica como explotar fallos de seguridad en Windows desde cero, teniendo como base nociones de depuración y programación ensamblador (MASM):

Serie de tutoriales
Autor: CorelanC0d3r
Lenguaje: Español
Traductor: Ivinson
Links:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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

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

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

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

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

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

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

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

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

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

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

En caso de que algún link estuviera malo, por favor ir a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta e introducir "corelan" sin las comillas.

Resumen
Autor: .:UND3R:
Links:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos
#5
Hola a todos soy UND3R actual moderador de Ingeniería Inversa del foro No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, vengo a este foro por que me parece tiene mucho movimiento y promete mucho, tengo muchas ansias de querer aprender con ustedes y si me es de posibilidad intentar ayudarlos con lo poco que sé, pues eso espero que no se lo tomen a mal y que no exista rivalidades entre foro, ya que aquí la finalidad es una sola, el aprender.

Saludos
#6
F.A.Q Ingeniería inversa

última modificación: 05/03/2014

Introducción
El siguiente hilo contiene una recopilación de toda la información necesaria para poder indagar en el mundo de la Ingeniería Inversa sin poseer algún tipo de conocimientos previos, se sugiere considerablemente la lectura de este hilo antes de postear dudas en el sub-foro. El autor de esta recopilación de información no se responsabiliza por el mal uso que se brinde de este.

Preguntas frecuentes (F.A.Q)

-¿Qué es ingeniería inversa?

CitarEl objetivo de la ingeniería inversa es obtener información o un diseño a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Hoy en día los productos más comúnmente sometidos a ingeniería inversa son los programas.
para más información clic No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

-¿Qué es un cracker?
Se suele referir a una persona como cracker cuando:
Citar
Mediante ingeniería inversa realiza: seriales, keygens y cracks, los cuales sirven para modificar el comportamiento o ampliar la funcionalidad del software o hardware original al que se aplican, y se los suele utilizar para saltearse restricciones como por ejemplo que un programa deje de funcionar a un determinado tiempo, o que sólo funcione si es instalado desde un CD original, etc.
para más información clic No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

-¿Como empezar desde cero?
Para empezar desde cero con el arte de la Ingeniería inversa podemos estudiar los siguientes tutoriales:
-Tutorial:Introducción al cracking con OllyDBG desde cero
Autor: Ricardo narvaja
Link del tutorial:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

-¿Donde encuentro herramientas?
Opción 1 web:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

-¿Donde buscar tutoriales?
Pare encontrar tutoriales, contamos como primera opción la página de Ricardo narvaja, en ella se encuentra una gran cantidad de contenido que pueden facilitarnos para lograr un objetivo.
opción 1:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
opción 2:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

-¿Como pedir un crack?
El subforo de ingeniería inversa, brinda ayuda a aquellos que se han quedado atascado en la obtención de un serial o crack,etc. Es decir aquellos usuarios que tienen un interés por aprender y entender el porqué de las cosas.

-¿Es necesario manejar algún lenguaje de programación sobre todo ASM para comenzar a crackear?
Esta es una de las preguntas más comunes planteadas por los usuarios o visitantes, La respuesta es NO ES NECESARIO aun que si es un complemento fundamental para un mejor entendimiento del código a reversear, es decir no se necesita manejar el lenguaje de manera directa ni mucho menos saber programar en ASM, tan solo se necesita conocer APIS o nemónicos de instrucciones importantes como operaciones booleanas o instrucciones de saltos condicionales, estas son claramente explicadas en el documento: "Introducción al cracking desde cero" por lo que para poder comenzar a crackear no se requiere conocimientos previos.
(*La adición de conocimiento y experiencia facilita el estudio y el entendimiento del porqué de las cosas pero aun así no es un requerimiento, de todas maneras puedes aprender haciendo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta).

-¿Cual es el Sistema operativo(SO) más óptimo para reversear(crackear) programas?
En cuanto al depurador OllyDbg fue diseñado primerizamente bajo la plataforma de Windows XP de 32 bits, aun así es compatible para el SO Windows 7, de todas formas es recomendable utilizar XP, en caso de no disponer de tal SO se puede montar una máquina virtual:
Vmware player:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Virtualbox:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

CitarSi van a usar vm de virtualbox tengan tildado en "aceleración" VT-x and AMD-V
esto permitirá usar hw bp, yo hoy bajé un sp3 y tildé aquella opción y ando testeando mis scripts funcionando sin problema (no como antes)

de lo contrario no podrán usarlo, esto es debido al registro dr5 y 6 que por defecto guarda cierto valor fijo, al tildar aquella opción usa otro módulo para guardar algun valor relacionado
puede confirmarse en tickets como
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Apuromafo

-¿El estudio y conocimientos de protecciones de crackme's se podrían llevar a un programa comercial?
Claramente es posible aplicar los estudios y conocimientos pero generalmente nunca de manera directa, esto debido a que cada programa es diseñado por un programador distinto, por ende cada software posee un sistema de seguridad diferente, aunque si se pueden tomar ideas generalizadas que pueden ser muy útil en el logro de un objetivo.

-¿Cómo plantear una pregunta de manera correcta sin incumplir las normas del foro?
Las preguntas planteadas en este subforo generalmente carecen de información, esto por causa de querer evitar incumplir las normas. Se es muy difícil poder analizar un ejecutable al cual no poseamos o desconozcamos su nombre, por lo que subir el instalador nos sería de gran ayuda. Al igual que las preguntas mal redactadas, sin avances o sin intentos, debemos saber que redactar las opciones fallidas pueden ser muy útiles para aquellos usuarios que intentan solventar las preguntas, ya que se optimiza el tiempo en cuanto al análisis del ejecutable y descarte de posibilidades.
(*Se pide no aludir al nombre o empresa del programa dentro del post)
#7
ASM / [Tutorial] Lenguaje ensamblador por .:UND3R:.
Marzo 05, 2014, 02:58:52 AM

Hola a todos, a continuación comparto un resumen de un libro que hace unos años hice. El documento es un PDF y tiene un total de 584 páginas, me tomó un año realizar este gran proyecto, por lo cual les pido que lo disfruten al máximo, saludos.


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

Creditos: .:UND3R:.