Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Избранное (https://forum.antichat.xyz/forumdisplay.php?f=89)
-   -   Cisco type 7 password decryptor (https://forum.antichat.xyz/showthread.php?t=58944)

ShadOS 17.01.2008 05:13

Cisco type 7 password decryptor
 
Код:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

char xlat[] = {
        0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
        0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
        0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53,
        0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36,
        0x39, 0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76,
        0x39, 0x38, 0x37, 0x33, 0x32, 0x35, 0x34, 0x6b,
        0x3b, 0x66, 0x67, 0x38, 0x37, 0x64, 0x73, 0x66,
        0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e,
        0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64,
        0x4a, 0x4b, 0x44, 0x48, 0x53, 0x55, 0x42, 0x73,
        0x67, 0x76, 0x63, 0x61, 0x36, 0x39, 0x38, 0x33,
        0x34, 0x6e, 0x63, 0x78, 0x76, 0x39, 0x38, 0x37,
        0x33, 0x32, 0x35, 0x34, 0x6b, 0x3b, 0x66, 0x67,
        0x38, 0x37
};

char *pname;

int decrypt(unsigned char *enc_pw, unsigned char *dec_pw)
{
        unsigned int seed, i, val = 0;

        if (strlen(enc_pw) & 1)
                return -1;

        seed = (enc_pw[0] - '0') * 10 + enc_pw[1] - '0';

        if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1]))
                return -2;

        for (i = 2 ; i <= strlen(enc_pw); i++)
        {
                if (i !=2 && !(i & 1)) {
                        dec_pw[i/2 - 2] = val ^ xlat[seed++];
                        val = 0;
                }

                val *= 16;

                if (isdigit(enc_pw[i] = toupper(enc_pw[i]))) {
                        val += enc_pw[i] - '0';
                        continue;
                }

                if (enc_pw[i] >= 'A' && enc_pw[i] <= 'F') {
                        val += enc_pw[i] - 'A' + 10;
                        continue;
                }

                if (strlen(enc_pw) != i)
                        return -4;
        }
        dec_pw[++i / 2] = 0;
        return 0;
}

void usage()
{
        fprintf(stdout, "Usage: %s <encrypted password>\n", pname);
        exit (1);
}

int main(int argc, char *argv[])
{
        char *passwd;
        pname = argv[0];
        int i;

        if (argc != 2)
                usage();

        if ((strlen(argv[1])%2)!=0) {
                fprintf(stderr, "Invalid password length - must be even!\n\n");
                usage();
        }

        for (i=0; i<strlen(argv[1]); i++)
        {
                *argv[1]=toupper(*argv[1]);
                if( ! ((*argv[1]>='A' && *argv[1]<='F') || (*argv[1]>='0' && *argv[1]<='9')) ) {
                        fprintf(stderr, "Invalid character in password found!\n");
                        usage();
                }
        }

        if (!(passwd = calloc(1,(sizeof(argv[1]))%2+2)))
                exit (1);

        if (decrypt(argv[1], passwd)) {
        fprintf(stderr, "String decryption error!\n");
        free(passwd);
        exit (1);
        }
        fprintf(stdout, "Passwd: %s\n", passwd);
        free(passwd);
        return 0;
}

Простенький декриптор type 7 паролей cisco ios. Писался по причине того, что кроме Cain&Abel ни одна утилита не справляется с декриптованием длинных type 7 паролей. Собирается так: gcc ./type7crack.c -o type7crack

xXvladXx 19.01.2008 13:48

вот такая штука оч сильно нужна была на ССh7 для хак квеста(последние задание: хакнуть цицку и поиметь пас)

ShadOS 19.01.2008 21:20

Цитата:

Сообщение от xXvladXx
вот такая штука оч сильно нужна была на ССh7 для хак квеста(последние задание: хакнуть цицку и поиметь пас)

Ага, если бы народ внимательно смотрел моё конкурсное видео с последним этапом у них прорблем не возникло бы. Я в видео по косточкам разобралл как это делать, причём когда делал не знал о том,что последний этап будет один в один по моему видео.


Время: 10:59