Can you crack it?

Discussion in 'Болталка' started by B1t.exe, 5 Dec 2011.

  1. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    Сегодня видел такой "квест" http://www.canyoucrackit.co.uk/

    Искал ответ и нашел:
    Code:
    Pr0t3ct!on#cyber_security@12*12.2011+
    Но так и нихрена не понял как это так. через разные декодеры перегонял шифротекст, но нихрна не получил такой ответ.
    а вот с помощью этой проги получают такой ответ.
    а вот исходник:
    Code:
    #include <stdio.h>
    #include <stdint.h>
    #include <malloc.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <string.h>
    #include <time.h>
    #include <sys/types.h>
    #include <sys/mman.h>
    #include <sys/utsname.h>
    
    #include "part2.h" // see information above
    
    static char part1[] = {
    0xeb, 0x04, 0xaf, 0xc2, 0xbf, 0xa3, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, 0x31, 0xc9, 0x88, 0x0c,
    0x0c, 0xfe, 0xc1, 0x75, 0xf9, 0x31, 0xc0, 0xba, 0xef, 0xbe, 0xad, 0xde, 0x02, 0x04, 0x0c, 0x00,
    0xd0, 0xc1, 0xca, 0x08, 0x8a, 0x1c, 0x0c, 0x8a, 0x3c, 0x04, 0x88, 0x1c, 0x04, 0x88, 0x3c, 0x0c,
    0xfe, 0xc1, 0x75, 0xe8, 0xe9, 0x5c, 0x00, 0x00, 0x00, 0x89, 0xe3, 0x81, 0xc3, 0x04, 0x00, 0x00,
    0x00, 0x5c, 0x58, 0x3d, 0x41, 0x41, 0x41, 0x41, 0x75, 0x43, 0x58, 0x3d, 0x42, 0x42, 0x42, 0x42,
    0x75, 0x3b, 0x5a, 0x89, 0xd1, 0x89, 0xe6, 0x89, 0xdf, 0x29, 0xcf, 0xf3, 0xa4, 0x89, 0xde, 0x89,
    0xd1, 0x89, 0xdf, 0x29, 0xcf, 0x31, 0xc0, 0x31, 0xdb, 0x31, 0xd2, 0xfe, 0xc0, 0x02, 0x1c, 0x06,
    0x8a, 0x14, 0x06, 0x8a, 0x34, 0x1e, 0x88, 0x34, 0x06, 0x88, 0x14, 0x1e, 0x00, 0xf2, 0x30, 0xf6,
    0x8a, 0x1c, 0x16, 0x8a, 0x17, 0x30, 0xda, 0x88, 0x17, 0x47, 0x49, 0x75, 0xde, 0x31, 0xdb, 0x89,
    0xd8, 0xfe, 0xc0, 0xcd, 0x80, 0x90, 0x90, 0xe8, 0x9d, 0xff, 0xff, 0xff, 0x41, 0x41, 0x41, 0x41,
    };
    
    // code to dump the decrypted memory:
    static const char dump_mem[] = {
    0xba, 0x31, 0x00, 0x00, 0x00, // mov edx, 0x40
    0x8d, 0x4f, 0xce, // lea ecx, [edi-0x32]
    0x31, 0xdb, // xor ebx, ebx
    0x43, // inc ebx (stdout)
    0x31, 0xc0, // xor eax, eax
    0xb0, 0x04, // add al, 0x4 - sys_write
    0xcd, 0x80, // int 0x80 
    0x31, 0xdb, // xor ebx,ebx
    0x43, // inc ebx
    0x31, 0xd2, // xor edx,edx
    0x42, // inc edx
    0x68, 0x0a, 0x00,0x00, 0x00, // push 0xa
    0x8d, 0x0c, 0x24, // lea ecx,[esp]
    0xb8, 0x04, 0x00,0x00, 0x00, // mov eax, 0x4
    0xcd, 0x80, // int 0x80 - sys_write
    0x31, 0xdb, // xor ebx,ebx
    0x31, 0xc0, // xor eax,eax
    0x40, // inc eax
    0xcd, 0x80, // int 0x80 - sys_exit
    };
    
    uint32_t patch_mem(char *ptr, size_t size)
    {
    uint32_t i;
    
    for (i = 0; i < size; i++) {
    if (*(uint16_t *)&ptr[i] == 0x80cd) {
    *(uint16_t *)&ptr[i] = 0x45eb;
    return 0;
    }
    }
    return 1;
    }
    
    uint32_t check_arch(void)
    {
    struct utsname kernel_info;
    
    uname(&kernel_info);
    return strcmp(kernel_info.machine, "i686") ? 1 : 0;
    }
    
    int main(int argc, char **argv)
    {
    void *mem;
    
    if (check_arch()) {
    printf("[-] this program must run on a 32-bit architecture\n");
    return 1;
    }
    
    printf("[*] allocating page aligned memory\n");
    mem = memalign(4096, 4096);
    if (!mem) {
    printf("[-] error: %s\n", strerror(errno));
    return 1;
    }
    memset(mem, 0, 4096);
    
    printf("[*] setting page permissions\n");
    if (mprotect(mem, 4096, PROT_READ | PROT_WRITE | PROT_EXEC)) {
    printf("[-] error: %s\n", strerror(errno));
    return 1;
    }
    
    printf("[*] copying payload\n");
    
    memcpy(mem, part1, sizeof(part1));
    memcpy(mem + sizeof(part1), part2, sizeof(part2));
    memcpy(mem + sizeof(part1) + sizeof(part2), dump_mem, sizeof(dump_mem));
    
    printf("[*] adding dump_mem payload\n");
    if (patch_mem(mem, sizeof(part1))) {
    printf("[-] failed to patch memory\n");
    return 0;
    }
    
    printf("[*] executing payload..\n\n");
    
    ((int(*)(void))mem)();
    
    return 0;
    }
    Как я понял - исходник на C++
    Каким алгоритмом шифрован текст и как эта прога работает?
    Может кто то скомпилт и пробем как он работает?
    ну и скажет что за алгоритм там.
     
  2. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    80цд меняется на 45еб?
    по памяти 80 вроде пуш, цд - типа инт3ж 45 не помню но еб это джамп
    напиздил, пардон cd XX это соответсна программное прерывание в х86 стопудова. ЕБ - джамп неар
     
    #2 sn0w, 5 Dec 2011
    Last edited: 5 Dec 2011
  3. alias6969

    alias6969 Member

    Joined:
    3 Apr 2011
    Messages:
    27
    Likes Received:
    11
    Reputations:
    6
    Ну, насколько я понял, алгоритм самопальный. Нашел это, тут на английском вроде как решение.
     
  4. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    т.е. не так уж простая задача?

    просто хотел алгоритм понять как это работает. я программирование не знаю просто. трудно оринтируюсь в исходниках.
     
  5. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    ну извини, не побайтово же инструкции разбирать, кроме того - ты не указал под какую разрядность сей код
     
  6. Tigger

    Tigger Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    http://habrahabr.ru/blogs/infosecurity/133859/

    Вот прочитай тут все комменты. Там по-подробнее задрочили этот квест.
     
  7. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    жесть.. как оказывается , никакого магии и не была ))) ключ хранился на сайте, надо был найти его:
    http://www.canyoucrackit.co.uk/hqDTK7b8K2rvw/a3bfc2af/d2ab1f05/da13f110/key.txt
    раскрытье путей обычно или как это называется :))))
     
  8. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    ааа так и знал что никсовые задроты шеллкодесом решили заняться. тухляк, чувак
     
  9. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    тема сисек так и не расскрыт чтоли?

    все же там реально шифр или это типа маскировка всего лишь была? а реальный клют хтанился по той ссылке что я указал?
     
  10. Lilo

    Lilo Banned

    Joined:
    10 Mar 2009
    Messages:
    462
    Likes Received:
    784
    Reputations:
    313
    am@inforus.biz (с)

    Итак, на прошедшей неделе правительство Великобритании представило стратегию борьбы с кибер-преступностью, в которой будут задействованы ведущие спецслужбы страны – MI5 (внутренняя разведка), MI6 (внешняя разведка) и Центр правительственной связи Великобритании GCHQ.

    Одновременно с этим, Центр правительственной связи объявил о наборе на работу хакеров, способных взломать вот такую кодовую страницу: www.canyoucrackit.co.uk

    [​IMG]

    Поскольку взлом – занятие трудоемкое и не всегда почтенное, попробуем пойти другим путем.

    Анализ адресного пространства портала canyoucrackit.co.uk с помощью программы Avalanche показал, что кроме собственно тестовой страницы по данному адресу содержится еще несколько любопытных страниц, в частности, вот такая:
    [​IMG]
    На этой странице явно содержится некий ключ, вот адрес: www.canyoucrackit.co.uk/hqDTK7b8K2rvw/a3bfc2af/d2ab1f05/da13f110/key.txt
    [​IMG]

    обственно, секретный ключ:

    Pr0t3ct!on#cyber_security@12*12.2011+


    Вводим эту фразу в поле на исходной тестовой странице, попадаем на страничку «Спасибо, вы справились» - canyoucrackit.co.uk/soyoudidit.asp

    [​IMG]
    С нее можно попасть на страницу приглашения на работу:
    www.gchq-careers.co.uk/cyber-jobs/
    [​IMG]
     
  11. Lilo

    Lilo Banned

    Joined:
    10 Mar 2009
    Messages:
    462
    Likes Received:
    784
    Reputations:
    313
    http://www.google.ru/search?q=site%3Acanyoucrackit.co.uk&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:eek:fficial&client=firefox#q=site:canyoucrackit.co.uk&hl=en&client=firefox&hs=5Q5&rls=org.mozilla:ru:eek:fficial&prmd=imvns&filter=0&fp=1&biw=1280&bih=569&bav=on.2,or.r_gc.r_pw.,cf.osb&cad=b
     
  12. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    А в чем логика самого квеста если по честному?
     
  13. Lilo

    Lilo Banned

    Joined:
    10 Mar 2009
    Messages:
    462
    Likes Received:
    784
    Reputations:
    313
    на хабре подробно все описано