Банк в позе рака

      Как и всякий автор, начну повествование о взломе достаточно банально: как все начиналось, откуда все пришло? Все началось несколько лет назад, когда на одной тусовке, не без сильных объятий Змия, я как-то сболтнул, что защита некоторых серверов настолько мала, что при определенном желании можно даже хакнуть святую святых - банки, подключенные к Инету. Озвучив эту мысль бухим корефанам, через некоторое время я осуществил эту идефикс на одном из "хранителей сбережений". История абсолютно реальна и не является фикцией а-ля Ситибанк с Владимиром Левиным в главной роли.
Заказ

      Ломать банки - не аккаунты и аськи тырить: я взялся за разработку не только из-за "чистой идеи хака" (хотя она имела место быть), но и по причине отсутствия наличия буказоидов. Особенно порадовал тот момент, что заказчик пообещал заплатить за успешное выполнение "задания" (он ТАК это называл) - $5000. Помимо наличных грин, было гарантировано покрытие всех необходимых трат.
      С заказчиком мы познакомились совершено случайно. Хотя, впоследствии, я потерял уверенность в случайности всего происходящего (хотя это и понятно, в России живем, Господа). Заказчик стал невольным свидетелем моего разговора с Unix-админом об особенностях FreeBSD. Через некоторое время после этого была назначена встреча с заказчиком. Встретились. Поговорили. Стала понятна суть: предстоит проникать в нечто крупное и денежное.
      Приняв заказ, мы договорились встретиться вторично для разъяснения более конкретных обстоятельств. Суть всей его идеи состояла в следующем: между двумя банками должна была произойти сделка на оч-ч-ч-чень круглую (даже по мировым меркам) сумму. А где большие суммы, там и законное желание не потерять их ;). В данном случае заказчик хотел убедиться в платежеспособности предполагаемого партнера не только по официальным документам налоговой инспекции, но и по так называемой РЕАЛЬНОЙ бухгалтерии, а не той, что мелькает в отчетах налоговиков. Т.е. была нужна закрытая инфа, находящаяся в базе данных "заказанного" банка, а конкретно - на винте банковского сервера. Заказ был принят и понят. Из исходных данных стало известно лишь название банка. Были обозначены сроки: "как можно скорее". Переведя это на русский язык, стало понятно, что у меня есть месяц на разработку.
Подготовка

      По всей сути кампании я понимал, что буду работать один. Поэтому пришлось во многом посуетиться в подготовке. Деньги на расходы (съем квартиры; покупку оборудования; выделение канала в Инет) я получил сразу же после обсуждения всех деталей. В течение трех дней я снял однокомнатную квартиру с большим холодильником :). На покупку железного друга ушло полчаса и еще два дня на протягивание ISDN линии (наконец-то у нас провы научились это предоставлять более-менее быстро). Кого интересует - комп был почти стандартный, разве что выделялся наличием упса - UPS 400VA (куда ж без него, родного-то, в такое пекло?).
      На установку и настройку WinNT Server 4.0/FreeBSD 4.0 с необходимым софтом ушел еще день.
      Теперь я перевел мутный взгляд с пустой бутылки из-под "Балтики №3" на месторасположение банка в Сети.
      За 15 минут с помощью http://www.ripn.net путем перебора всевозможных названий, комбинаций и аббревиатур был получен диапазон IP-адресов, выделенных РОСНИИРОС'ом для рассматриваемого банка. Вскоре узнал IP-адрес сервера, на котором были установлены сервисы почты, ftp, news и т.д., в общем, был найден сервак, подключенный к Сети. Я немного удивился тому факту, что из 15 выделенных адресов использовался только один. Было понятно, что работа предстоит тяжелая.
      Загрузился во FreeBSD, откомпилил scan.c (#gcc -o scan scan.c, более подробно про работу с юникс-эксплойтами и компиляцию из WIN ты можешь прочитать прямо в этом номере), запустил с консоли. Сканирование из-под unix`a было выбрано из соображений безопасности и моих личных предпочтений. Хотя можно было бы обойтись обычным виндозным сканером вроде Iptools или более маленьким и быстрым девайсом NetGhost PortScan.
      Неплохой выбор портсканов на http://www.datatone.com/mirrors/xiaomu/WWW/winsock/win95/iputil.htm, а IP tools ты можешь слить с их официального сайта http://ks-soft.mastak.com/users/kssoft/ip-tools.eng/index.htm.
      Короче, просканил я сервер банка на открытые порты, читай установленные сервисы.
      От результата немножко офигел! Открыто все, что можно открыть: 10, 21, 23 (зачем на NT'е телнет-сервер я так и не понял), 25, 53, 110, 137, 138, 139, 143, 443. По открытым 137, 138, 139 стало понятно, с какой ОС мы имеем дело. Сие было, конечно же, NT. Netcraft (www.netcraft.com со скриптом What's that site running?) это подтвердил.
      Также для определения типа ОС я мог бы просто посмотреть какие демоны/сервисы висят на серваке, прителнетившись к ним. Если это win-сервис, то ясен перец - это win-система, если *nix-сервис, то сие *nix (железная логика =).
      И это банковский сервер с выходом в Internet!
Взлом

      Перво-наперво надо было найти логин админа, т.к. обычно, руководствуясь рекомендациями Микрософта, стандартное "Administrator" заменяют чем-то другим.
      Но в Win32 API существует пара функций, позволяющих узнать этот логин. МелкоМягкие ребята и здесь о нас позаботились. :) Это LookupAccountName и LookupAccountSid (SID - security identifier - идентификатор безопасности). Две небольшие программки отечественного автора (user2sid и sid2user) ты найдешь в Сети по адресу http://www.chem.msu.su/~rudnyi/NT/. Там же есть исходники.
      В командной строке набираю:
>user2sid \\[ip-адрес сервера] "Power users"
      Выдало примерное следующее: S-1-2-34-(набор цифр)-(набор цифр)-(набор цифр)-512
      Так как у администратора RID (relative identifeir - относительный идентификатор) постоянный и равен 500 (как у root'a "0"), то
>sid2user \\[ip-адрес сервера] 2 34 (набор цифр) (набор цифр) (набор цифр) 500
// (набор цифр) - это выдавались номера ведомства и подразделений,
//тогда я их, естественно, не записал, а сейчас не вспомню :).
Name is GOD (ну когда они на землю спустятся???)
Domain is ****bank
Type of SID is SidTypeUser
      Часть дела была сделана. Теперь надо было заставить тупую NT'ю отдать пароль :). После некоторых раздумий сделал следующее:
      Поставил у себя Веб-сайт, в htdocs сделал директорию images и зашарил ее на полный доступ Everyone. Туда кинул image.jpg, сделал на скорую руку типа "порно сервер" (Админы любят шляться по ентим штукам :). Затем в index.html вставил такую "ссылочку" file:////3282120165/images/image.jpg. Далее был установлен и включен сниффер (SpyNet 3.12). В сниффере были выставлены 137, 138, 139 порты на слежение. Остальное было делом техники и времени. Я "создал" мыльную порно рассылочку о крутых телках, больших сиськах и т.д..
      Адрес, конечно же, оставил http://3282120165. Такой линк был получен в результате обработки стандартного IP-адреса. Про это Х писал в №9 за 99. То же можно сделать с помощью проги, получившей известность в "Шароварах" - Ipalt, которую можно взять по адресу http://www.ffh-lab.com/Products/products.html.
      Слал похотливому админу письма каждую ночь, и, наконец, он через 3 дня зашел на "крутой порносервер". Там он увидел надпись "Sorry, Under Construction" и, наверное, в расстроенных чувствах ушел по ссылке издругой рассылки :). Но хешированный пароль по DES'у я все-таки получил :). Этот глюк SMB-протокола пришелся мне на руку (как и многие другие, и не только мне ;). L0phtCrack расшифровал пароль почти за сутки (пароль был непростой).
      Дальше в "Computer Search" ввожу \\[ip-адрес сервера], присоединяюсь,ввожу login/passwd и получаю доступ к "административным" шарам ($), а также к шарам всей локальной сети. После детального изучения локалки пришло невкусное разочарование: нужной заказчику информации не оказалось. Но был обнаружен еще один внутренний сервер (видимо, именно тот, который мне был нужен). Там уже стояла FreeBSD 3.3.1. Немного прикинув и понадеясь на удачу (а она нужна была трижды), заливаю на NT'ю Сетевого Паровоза 2.0 aka NetBus 2.0, прописываю его в win.ini и под утро вешаю сервер ExploitGenerator'ом. Сервак ребутится, запуская из win.ini серверную часть трояна.
      На этот раз мне повезло! Клиент соединился с сервером NetBus`a (ну как можно не ставить антивирусы???). Следующей ночью запускаю с сервера telnet и начинаю удивляться крутости админов банковского сервера! Половина аккаунтов, прописанных в NT'e (кстати, логины оригинальные: ban_comp1, ban_comp2, ban_term1, ban_term2 , etc :), совпадают с зарегенными на юнихе. Тут даже не нужен был root, чтобы достать интересующую информацию.
      Такая вот история. Буказоиды я получил. Все вроде довольны. Ничего вроде сверхъестественного нет, просто убивает наличие таких дыр в святая святых.
      Это не руководство - это мои мысли. И если ты личность, то МЫСЛИ! Здесь есть о чем призадуматься.
      При проведении всей операции была использована информация с сайтов http://www.ntbugtraq.com/, http://www.cert.org, http://www.ciac.org
      P.S. Если ТОТ банк думает, что это не про НЕГО, то пусть ПОDOOMАЕТ. А админов увольнять надо, IMHO, раскормили себе жирные задницы и ни фига не делают мозгом.
      Весь боевой софт, описанный в этой статье, можно скачать по адресу www.hackers-paradise.com.






Перейти на главную страницу
Hosted by uCoz