elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 [8] 9 10
71  Seguridad Informática / Seguridad / Algo extraño con Login de Facebook :/ en: 23 Septiembre 2013, 01:01 am
Buenas señores y señoras! Como andan?
Bueno, el problema es el siguiente,, cuando me logeo en facebook, siempre, siempre se recarga la ventana, o mejor dicho, se limpian los campos de ingreso de correo y de password, con lo que lo que hay que escribir nuevamente los campos,, al poner nuevamente los datos, ingresa a facebook, pero con el siguiente mensaje: "Su solicitud no se ha podido procesar, intentelo mas tarde" o algo asi.. y si la segunda vez que ingresamos los datos ponemos cualquier otra cosa ingresa igual.. o sea que hay algo raro.. Bueno, si alguien sabe que puede ser, o como funciona este stealer (calculo yo) me seria de gran ayuda para erradicarlo de mi pc :) Muchas gracias!!
72  Programación / Programación C/C++ / Problema con Inyector Dll en: 21 Septiembre 2013, 02:13 am
Hola Gente!! Alguien podria probar este codigo a ver por que no funca?
Al parecer, los valores que retornan las funciones y los valores de GetLastError() estan bien, pero el programa no funciona.. Estoy teniendo el mismo problema con un programa en VB.NET que postie en Analisis y Diseño de Malware. Bueno, ahi va.. :)

Código:
#include <windows.h>
#include <iostream>
using namespace std;

int main()
{

//********* ESTRUCTURAS ***********
 
 PROCESS_INFORMATION Process_Info = {0};
 STARTUPINFO StartUpInfo = {0};

//********** VARIABLES ************

 HMODULE Modulo;
 FARPROC Funcion;
 LPCVOID Virtual;
 HANDLE ThreadId;
 int Ret;

 wchar_t App_Name[] = L"Hola.exe";
 wchar_t Dll_Name[] = L"dllvirus.dll";  

    //************ INICIO *************

StartUpInfo.cb = sizeof(StartUpInfo);

cout << endl;

Modulo = LoadLibraryA("kernel32.dll");
cout << "Kernel32 BaseAddress: " << Modulo << endl;
Funcion = GetProcAddress(Modulo, "LoadLibraryA");
cout << "LoadLibraryA BaseAddress: " << Funcion << endl;

cout << endl;

// NORMAL_PRIORITY_CLASS
// CREATE_SUSPENDED
Ret = CreateProcess(App_Name, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &StartUpInfo, &Process_Info);
cout << "CreateProcess ERROR CODE: " << GetLastError() << endl;
cout << "CreateProcess return value: " << Ret << endl;

cout << endl;

cout << "*************************" << endl;
cout << "* hProcess: " << Process_Info.hProcess << "\t*" << endl;
cout << "* hThread: " << Process_Info.hThread << "\t*" << endl;
cout << "* dwThreadId: " << Process_Info.dwThreadId << "\t*" << endl;
cout << "* dwProcessId: " << Process_Info.dwProcessId << "\t*" << endl;
cout << "*************************" << endl;

cout << endl;
int DllLen = 12;
cout << "dllvirus.dll" << " LEN: " << DllLen << endl;

cout << endl;

Virtual = VirtualAllocEx(Process_Info.hProcess, NULL, DllLen, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
cout << "VirtualAllocEx ERROR CODE: " << GetLastError() << endl;
cout << "VirtualAllocEx: " << Virtual << endl;

cout << endl;

Ret = WriteProcessMemory(Process_Info.hProcess, &Virtual, &DllLen, DllLen, NULL);
cout << "WriteProcessMemory ERROR CODE: " << GetLastError() << endl;
cout << "WriteProcessMemory return value: " << Ret << endl;

cout << endl;

ThreadId = CreateRemoteThread(Process_Info.hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)Funcion, &Virtual, 0, NULL);
cout << "CreateRemoteThread ERROR CODE: " << GetLastError() << endl;
cout << "CreateRemoteThread Handle: " << ThreadId << endl;

cout << endl;
cout << "Waiting for CreateRemoteThread..." << endl;
cout << endl;

WaitForSingleObject(Process_Info.hProcess, 1000);

cout << endl;
cout << "Lunching App..." << endl;
cout << endl;

ResumeThread(Process_Info.hProcess);

cout << endl;
cout << "Closing Handle..." << endl;
cout << endl;

CloseHandle(Process_Info.hProcess);

cout << endl;
cout << "End :)" << endl;
cout << endl;

cin.get();

return 0;
}

Ha,, me olvidaba,, Hola.exe es un "Hola mundo" en un MessageBox echo en ASM y dllvirus.dll lo que hace es sobreescribir el texto del mensaje con otro texto, pero bueno, la idea se entiende, por que no inyecta? :/
73  Seguridad Informática / Análisis y Diseño de Malware / Ayuda con Inyector DLL en VB 2008 en: 18 Septiembre 2013, 02:51 am
Bueno, hace 16 Hs que le meto a esto y no puedo encontrar el error,, o mejor dicho, como solucionarlo!! Ahi les va genios...

Código:

    Private Sub BtnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLoad.Click

        Dim LoadLibHandle As Integer
        Dim GetProcHandle As Integer
        Dim StartUp As New STARTUPINFO
        Dim ProcessInfo As New PROCESS_INFORMATION
        Dim DllTam As Integer
        Dim VirtualRet As Integer

        Dim bytes() As Byte
        bytes = System.Text.Encoding.Unicode.GetBytes(DllName)

        Dim Retorno As Integer

        LoadLibHandle = LoadLibraryA("kernel32.dll")
        GetProcHandle = GetProcAddress(LoadLibHandle, "LoadLibraryA")

        Retorno = CreateProcess(txtExeF.Text, vbNullString, vbNullString, vbNullString, vbNullString, PROCESS_CREATION_FLAG.CREATE_SUSPENDED, vbNullString, vbNullString, StartUp, ProcessInfo)

        DllTam = Len(txtDllName.Text)

        VirtualRet = VirtualAllocEx(ProcessInfo.hProcess, vbNullString, DllTam, MEM_COMMIT, PROCESS_ALL_ACCESS)
        WriteProcessMemory(ProcessInfo.hProcess, VirtualRet, bytes, DllTam, vbNullString)

        Try

            CreateRemoteThread(ProcessInfo.hProcess, 0, 0, GetProcHandle, VirtualRet, 0, 0)

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

        ResumeThread(ProcessInfo.hProcess)

    End Sub


Claro esta que esto es una porcion del codigo,, txtDllName es el textbox que tiene el nombre de la dll, txtExeF es el textbox que tiene la ruta del exe..

El error que me salta es: Intento de leer o escribir en la memoria protegida..

Ya no se que hacer con esto!! Jaja Saludos!!
74  Programación / ASM / Ayuda! Problema con MASM Inline en: 27 Agosto 2013, 23:38 pm
Hola amigos! Alguien con un poco de tiempo se anima a revisar por que no funciona este code! El error salta cuando busco la direccion de "socket",, me da mal el Ordinal de la funcion, y no me devuelve la direccion... Gracias!
Código:
#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;

int Kernel32();
DWORD GetOffset(DWORD Modulo, char *Funcion, DWORD Tamaño);
int LoadLibrari(char *Modulo);

DWORD Krn32 = 0;
DWORD Ws2_32 = 0;
//**************************
DWORD GetProcA = 0;
DWORD LoadLibA = 0;
DWORD Sock = 0;
//**************************
DWORD Contador;
DWORD PEHeader = 0;
DWORD ET = 0;
WORD PosicionEAT = 0;

DWORD Retorno = 0;

int main()
{

Kernel32();
printf("\n\nLa direccion de Memoria de Kernel32.dll es: %8X", Krn32);
printf("\nLa direccion de Memoria de Kernel32.dll con LoadLibraryA es: %8X", LoadLibraryA("Kernel32.dll"));

cout << "\n\n*****************************************************************" << endl;

GetProcA = GetOffset( Krn32, "GetProcAddress", 14 );
printf("La direccion de Memoria de GetProcAddress es: %8X", GetProcA);
printf("\nLa direccion de Memoria de GetProcAddress con GetProcAddress es: %8X", GetProcAddress((HMODULE)Krn32,"GetProcAddress"));

cout << "\n\n*********************************************************************" << endl;

LoadLibA = GetOffset( Krn32, "LoadLibraryA", 12 );
printf("La direccion de Memoria de LoadLibraryA es: %8X", LoadLibA);
printf("\nLa direccion de Memoria de LoadLibraryA con GetProcAddress es: %8X", GetProcAddress((HMODULE)Krn32,"LoadLibraryA"));

cout << "\n\n*********************************************************************" << endl;

Ws2_32 = LoadLibrari("ws2_32.dll");
printf("\nLa direccion de Memoria de Ws2_32.dll es: %8X", Ws2_32);
printf("\nLa direccion de Memoria de Ws2_32.dll con LoadLibraryA es: %8X", LoadLibraryA("Ws2_32.dll"));

cout << "\n\n*********************************************************************" << endl;

Sock = GetOffset( Ws2_32, "socket", 6 );
printf("\nLa direccion de Memoria de socket es: %8X", Sock);
printf("\nLa direccion de Memoria de socket con GetProcAddress es: %8X", GetProcAddress((HMODULE)Ws2_32,"socket"));

cin.get();
}

int Kernel32()
{

__asm{
mov eax, fs:[0x30]
mov eax, [eax + 0x0C]
lea eax, [eax + 0x0C]
NextModule:
mov eax, [eax]
mov ebx, [eax + 0x30]
cmp byte ptr[ebx + 6*2], '3'
jne NextModule
mov ebx, [eax + 0x18]
mov Krn32, ebx
}

return 0;
}
DWORD GetOffset(DWORD Modulo, char *Funcion, DWORD Tamaño)
{

__asm {

mov Contador, -1

mov eax, Modulo
  add eax, [eax+3Ch]
  mov [PEHeader], eax
  add eax, 78h
  mov eax, [eax]
  add eax, Modulo
  mov [ET], eax
  add eax, 20h
mov eax, [eax]
  add eax, Modulo

bucle:

  inc Contador
  mov ebx, [eax]
  add ebx, Modulo
  mov esi, ebx
  add eax, 4
mov edi, Funcion
  mov ecx, Tamaño
  repe cmpsb
  jnz bucle

  mov ecx, [ET]
  mov ecx, [ecx+24h]
  add ecx, [Modulo]
  mov eax, [Contador]
  add eax, eax
  add ecx, eax
  mov ax, word ptr [ecx]
  mov [PosicionEAT], ax

mov eax, [ET]
  mov eax, [eax+1Ch]
  add eax, Modulo
  mov ebx, [Contador]
  rol ebx, 2
  add eax, ebx
  mov eax, [eax]
  add eax, Modulo
mov Retorno, eax

}
cout << "\nEl Ordinal es: " << Contador << endl;
return Retorno;
}
int LoadLibrari(char *Modulo)
{
__asm{
push [Modulo]
call [LoadLibA]
mov Retorno, eax
}

return Retorno;
}
75  Programación / ASM / PEB y funciones de kernel32 en: 8 Agosto 2013, 02:39 am
Hola amigos!! Alguien podria ayudarme a entender bien como funciona el tema de encontrar funciones en kernel32 y utilizarlas? Hace 3 dias que le dedico 8hs diarias y no he podido encontrar las funciones!! Es muy estresante jaja
Lei todos los post que hablan del PEB del foro y muchos otros mas! Pero a mi humilde entender, casi todos llegan hasta la parte de encontrar la direccion de kernel32,, eso lo entendi.. pero no logro una vez ahi parado (en la direccion de memoria de kernel32) seguir buscando dentro las funciones, y mucho menos ejecutarlas!!

Como recorro el modulo kernel32??? Muchas gracias!!

PD: Algo de la info que rescate, la que entendi mejor ->

http://el-blog-de-thor.blogspot.com/2011/05/obtener-la-direccion-base-de.html
Ahi estan muy bien detalladas las estructuras que vamos recorriendo

http://el-blog-de-thor.blogspot.com/2011/05/usando-getprocaddress-y-loadlibrary_07.html
Ahi esta explicado como recorrer y buscar la funcion GetProcAddress (Pero creo que utiliza otro metodo, porque recurre a la cabezera del PE y no entiendo para que) :/

http://www.projectshellcode.com/node/22
Ahi hay una shellcode pero entiendo nada

EDITADO: Bien,, desde que escribi la consulta hasta recien, conoci una herramienta que se llama dumpbin! Excelente! Pero igual preciso ayuda jaja
76  Seguridad Informática / Análisis y Diseño de Malware / Troyanos con Cliente Web en: 4 Agosto 2013, 05:43 am
Buenas amigos!! Hoy se me antojo programar un rato en plataforma web,, y que mejor que una especie de botnet? :D
Bueno,, como ya sabrán algunos, la mayoría del hosting gratuito no ofrece sql remoto, ni sockets en php,, entonces pensé,, bueno, de alguna forma se tiene que poder! Si Zeus puede, yo también :p

Alguien que me pueda dar una idea de como funciona la conexión entre cliente C++ y server web?

Pd: Algunos pensaran que estoy equivocado con los términos cliente y server,, pero no se porque los suelen llamar al revés :/
77  Seguridad Informática / Hacking Wireless / Duda con Wireshark en: 1 Agosto 2013, 20:15 pm
Hola amigos del foro! Primero que nada, perdon si no deberia estar aca la consulta, y segundo que probablemente ya este aclarada esta misma duda en algun otro hilo, pero no lo he encontrado...
Bueno, el asunto es que necesito sniffar mi red, solamente para aprender un poco de ese asunto :p El problema es que no se si se puede hacer como yo quiero,, yo me conecto a mi red por wifi desde una notebook,, la duda es.. se puede leer los paquetes que pasan por el router hacia otra pc que se conecta con cable? O sea,, algo asi es la red:

PC1 (conectada al router por cable) -->  [ROUTER] <-- PC2 (conectada al router por wifi)

Podria la PC2 ver los paquetes de la PC1? Bueno,, eso nomas.. Si no se entiende lo trato de explicar mejor!! Gracias!! Saludos

EDITADO: Bien, leyendo un poco mas,, veo que si se puede.. con ettercap.
Puede ser que este en lo correcto? De ser asi, alguna sugerencia? Algun buen tuto para los novatos..? Gracias!
78  Seguridad Informática / Análisis y Diseño de Malware / Expongamos opiniones de diseño :) en: 23 Mayo 2013, 06:04 am
Buenas amigos!! Hoy tengo una tema sobre "gustos". Abrí este tema porque estoy por empezar a diseñar el cliente de un programa "Cliente\Servidor", no estoy seguro si es el lugar indicado para plantear el tema, pero como esta es la parte de análisis y diseño, supuse que la parte de diseño "gráfico" de un programa podría estar incluida en este sector del foro...
Bueno, me gustaría leer sus opiniones acerca del diseño que mas les haya gustado de los troyanos.. claro esta, siempre hablando del cliente ( Mal llamado cliente por ser conexión inversa  :P )

Empiezo yo, para dar el ejemplo... A mi personalmente me gusto mucho el diseño del Sub7 o al menos, este Sub7
También, en su momento estaba bueno algo así como el diseño del Bifrost, ese estilo ListView, sin casi ningún elemento en la ventana, todo escondido atrás del click derecho del mouse..

Bueno, los dejo con eso.. y de sus opiniones e ideas poder hacer un lindo cliente  ;D

Saludos!!!
79  Programación / ASM / [Ayuda] Problema con funcion send y pisar datos en: 22 Mayo 2013, 20:36 pm
Buenas amigos, como andan ?

Últimamente estoy haciendo muchas preguntas, pero bueno, veamos el lado positivo, hay rotatividad en el foro   :silbar:

Bueno, tengo el siguiente problema :

Código:

Buscar proc FtoF:DWORD

invoke FindFirstFile, FtoF, addr SFile
cmp eax, -1
je NoEncontrado
mov Hand, eax


Buccle:
invoke wsprintf, addr Bufi, addr Envio, addr SFile.cFileName
invoke send, sock, addr Bufi, sizeof Bufi, 0
cmp eax, SOCKET_ERROR
je ErSo
invoke FindNextFile, Hand, addr SFile
cmp eax, 0
je Salida
jmp Buccle

ErSo:
invoke WSAGetLastError
invoke dwtoa, eax, addr ErrNa
invoke MessageBox, 0, addr ErrNa, addr Titulo, MB_OK

Salida:
invoke FindClose, addr Hand
jmp Fin

NoEncontrado:
invoke send, sock, addr NoE, sizeof NoE, 0

Fin:
ret
Buscar endp


El problema al parecer es que el "Buccle" se ejecuta mas rápido de lo que el cliente puede procesar, o algo asi.. porque si pongo un mensaje entre ciclo y ciclo del bucle los datos llegan, pero si dejo la rutina asi, sin pausa alguna, al parecer algo se pisa el palito,, pero tampoco sale error de send..  :-\
80  Programación / ASM / Problema con Función.. en: 20 Mayo 2013, 23:58 pm
Hola amigos! Alguien me puede aclarar por que pasa esto ?

Tengo una rutina asi:

Código:

mov ecx, sizeof String1
lea esi, [String1]
lea edi, [String2]
cld
repe cmpsb
je Igual
jmp NoIgual


Esto seria un strcmp, bien.. eso funciona.. ahora si yo quiero meter eso dentro de una funcion, para luego llamarla pasandole string1 y string2 no funca.. digamos asi:

Código:

invoke strcmp, addr String1, addr String2

strcmp proto str1:DWORD, str2:DWORD

mov ecx, sizeof str1
lea esi, [str1]
lea edi, [str2]
cld
repe cmpsb
je Igual
jmp NoIgual

Igual:
mov eax, 0
jmp Exit
NoIgual:
mov eax, 1
Exit:
ret
strcmp endp


Bueno, eso es todo... ¿Por que no funca?
Páginas: 1 2 3 4 5 6 7 [8] 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines