venerdì 2 dicembre 2011

Hacker cercasi, ottima retribuzione...

L'agenzia governativa britannica che si occupa di cyber-sicurezza GCHQ (Government Communications Headquarters) è alla ricerca di hacker da inserire nel proprio organico. Inutile però presentare curriculum vitae o email di raccomandazione: la selezione avviene tramite una gara di hacking. Si avete capito bene: il candidato ideale, dalla fedina penale immacolata, per partecipare deve riuscire a decodificare un codice e sottomettere la password corretta all'indirizzo canyoucrackit.co.uk. Il sito in questione, una semplice pagina ASP, presenta un codice esadecimale ed una semplice form di submit: chi indovina il codice, entra, altrimenti viene visualizzato il classico "Incorrect Password".

Ecco il codice mostrato dal sito:

EB 04 AF C2 BF A3 81 EC 00 01 00 00 31 C9 88 0C
0C FE C1 75 F9 31 C0 BA EF BE AD DE 02 04 0C 00
D0 C1 CA 08 8A 1C 0C 8A 3C 04 88 1C 04 88 3C 0C
FE C1 75 E8 E9 5C 00 00 00 89 E3 81 C3 04 00 00
00 5C 58 3D 41 41 41 41 75 43 58 3D 42 42 42 42
75 3B 5A 89 D1 89 E6 89 DF 29 CF F3 A4 89 DE 89
D1 89 DF 29 CF 31 C0 31 DB 31 D2 FE C0 02 1C 06
8A 14 06 8A 34 1E 88 34 06 88 14 1E 00 F2 30 F6
8A 1C 16 8A 17 30 DA 88 17 47 49 75 DE 31 DB 89
D8 FE C0 CD 80 90 90 E8 9D FF FF FF 41 41 41 41


Qui in redazione del blog FB Login Italia gli hacker pullulano... Così, abbiamo chiesto un parere tecnico al nostro staff che ci ha suggerito di convertire il tutto in codice assembler (ASM) per Intel x86. Il codice sembra un semplice programma che esegue salti condizionali, addizioni, operazioni bit a bit ed altre amenità che i programmatori di vecchia data sanno smanettare a dovere.

Questa potrebbe essere una decompilazione del codice esadecimale di cui sopra:

00000000  EB04              jmp short 0x6
00000002 AF scasw
00000003 C2BFA3 ret 0xa3bf
00000006 81EC0001 sub sp,0x100
0000000A 0000 add [bx+si],al
0000000C 31C9 xor cx,cx
0000000E 880C mov [si],cl
00000010 0CFE or al,0xfe
00000012 C1 db 0xc1
00000013 75F9 jnz 0xe
00000015 31C0 xor ax,ax
00000017 BAEFBE mov dx,0xbeef
0000001A AD lodsw
0000001B DE02 fiadd word [bp+si]
0000001D 040C add al,0xc
0000001F 00D0 add al,dl
00000021 C1CA08 ror dx,0x8
00000024 8A1C mov bl,[si]
00000026 0C8A or al,0x8a
00000028 3C04 cmp al,0x4
0000002A 881C mov [si],bl
0000002C 0488 add al,0x88
0000002E 3C0C cmp al,0xc
00000030 FEC1 inc cl
00000032 75E8 jnz 0x1c
00000034 E95C00 jmp word 0x93
00000037 0000 add [bx+si],al
00000039 89E3 mov bx,sp
0000003B 81C30400 add bx,0x4
0000003F 0000 add [bx+si],al
00000041 5C pop sp
00000042 58 pop ax
00000043 3D4141 cmp ax,0x4141
00000046 41 inc cx
00000047 41 inc cx
00000048 7543 jnz 0x8d
0000004A 58 pop ax
0000004B 3D4242 cmp ax,0x4242
0000004E 42 inc dx
0000004F 42 inc dx
00000050 753B jnz 0x8d
00000052 5A pop dx
00000053 89D1 mov cx,dx
00000055 89E6 mov si,sp
00000057 89DF mov di,bx
00000059 29CF sub di,cx
0000005B F3A4 rep movsb
0000005D 89DE mov si,bx
0000005F 89D1 mov cx,dx
00000061 89DF mov di,bx
00000063 29CF sub di,cx
00000065 31C0 xor ax,ax
00000067 31DB xor bx,bx
00000069 31D2 xor dx,dx
0000006B FEC0 inc al
0000006D 021C add bl,[si]
0000006F 06 push es
00000070 8A14 mov dl,[si]
00000072 06 push es
00000073 8A34 mov dh,[si]
00000075 1E push ds
00000076 8834 mov [si],dh
00000078 06 push es
00000079 8814 mov [si],dl
0000007B 1E push ds
0000007C 00F2 add dl,dh
0000007E 30F6 xor dh,dh
00000080 8A1C mov bl,[si]
00000082 16 push ss
00000083 8A17 mov dl,[bx]
00000085 30DA xor dl,bl
00000087 8817 mov [bx],dl
00000089 47 inc di
0000008A 49 dec cx
0000008B 75DE jnz 0x6b
0000008D 31DB xor bx,bx
0000008F 89D8 mov ax,bx
00000091 FEC0 inc al
00000093 CD80 int 0x80
00000095 90 nop
00000096 90 nop
00000097 E89DFF call word 0x37
0000009A FF db 0xff
0000009B FF4141 inc word [bx+di+0x41]
0000009E 41 inc cx
0000009F 41 inc cx


Il risultato??? 10 punti a chi indovina il contenuto in binario (16 bit) del registro CX... O in alternativa un posto di lavoro alla GCHQ, che ci sembra molto più gratificante. A questo indirizzo potete leggere, in inglese, tutti i dettagli dalla GCHQ.

PS: date anche uno sguardo qui: canyoucrackit.co.uk/15b436de1f9107f3778aad525e5d0b20.js

---

Aggiornamento del 5 dicembre 2011: per chi fosse interessato alla soluzione completa di Can You Crack It, è descritta, passo passo, a questo indirizzo. Complimenti al giovane Davee!

3 commenti:

  1. digito 0000111101110111 ma non funziona :(((((((

    RispondiElimina
  2. Bhe', candidiamoci allora:
    http://www.canyoucrackit.co.uk/soyoudidit.asp

    RispondiElimina
  3. trovato :D... peccato che non ho la cittadinanza britannica

    RispondiElimina