Это история совершенно реальна и ее главный герой осужден по ст. 159 и ст. 272 УК РФ в данный момент отбывает наказание в виде 2 лет лишения свободы в г.Челябинске СИЗО-1, причем осужден он был совершенно бездоказательно, экспертизы подделаны (их в последствии исключили из доказательной базы), нет свидетелей которые бы дали показания против него. Даже сеансы связи выходов в интернет с домашних ПК не совпадали с временем хищений денежных средств но для следствия и суда это было не важно, так как от силовых структур была дана установка посадить под любым предлогом. В приговоре у этого человека написано:
совершил мошенничество неустановленным способом с неустановленными лицами в неустановленное время и в неустановленном месте.
Интересная формулировка с учетом того что подсудимый в банке не работал и не знал клиентов банка, не был установлен способ хищений.
В ЧелябинвестБанке у которого есть лицензии ФСБ РФ на деятельность в области защиты информации, используются очень интересные системы ДБО, даже во время следствия и суда мы не смогли узнать кто их разработал. В этих системах ДБО существуют недокументированные возможности позволяющие выполнять любые манипуляции на удаленных машинах клиентов банка, заметим, что к разработке и, тем более, установке банковского ПО осужденный не имел никого отношения.
Наша цель изучить как работает система обмена сообщениями между банком и его клиентами в ПО «клиент банк» и доказать что с ее помощью сотрудники банка могут записать исполняемый файл на компьютер клиента и выполнить его с правами клиент банка, так же списать любой файл с ПК клиента и передать их на ftp сервер банка, получать списки файлов и директорий на компьютере клиента банка.
Функциональные возможности:
- Скачать с сервера файлы на клиентские ПК и выполнять их, без уведомления клиента об этом.
- Получать список директорий и файлов на ПК (клиентов) где установлен клиент банк, без уведомления клиента об этом.
- Бэкдор позволявший подсоединятся к ПК клиентов в любое время. (это убрали из Клиент Банка в версиях после 15.06.2009, но как вы понимаете ее можно активировать через первую очень нужную функцию)
Начнем изучать это безымянное ПО.
Для изучения нам понадобится:
- Декомпилятор и знания Assembler
- Process Monitor наблюдать за клиентской машиной
- Анализатор протоколов
Установки клиент банка запустим el_cli_setup.exe. Для изучения работы ПО “Клиент Банк” нам придется сымитировать банковский сервер на локальной машине, в клиент банке используется стандартная компонента Borland DELPHI 6 для работы с FTP поэтому это не составит особых проблем, можно даже использовать и INV-FTP (нужно делать сертификаты)
Устанавливаем FTP сервер в ПО “клиент банк” меняем настройки подключения.
[Connection]
ServerName=127.0.0.1
ServerDomain=
ServerPort=2222
FTPTime_out=12000
Можно поменять настройки через вкладку “установки”.
Перед соединением с FTP сервером, клиент банк проверяет валидность PGP ключей и пароля на клиенте. Создаем публичный (pubring.pgp) и закрытый ключ (secring.pgp) и ЭЦП (RSA) для ленивых скачиваем PGP ключи и FTP сервер (пароль 123456).
Если все сделали правильно в лог файле ПО «Клиент Банк” при обмене документами видим
На FTP следующее
В корневой директории FTP следующее
Пример отправленного *.unf файла находится в зашифрованном PGP zip архиве C__bank_win_my_send_arc.zip отправленном в банк, заметим что в нем передаются открытые порты на компьютере клиента банка, для чего знать сотрудником банка какие сервисы работают у клиента мне не понятно. В этом странном для меня формате и произходит обмен всей информацией платежными поручениями, служебными сообщениями и самое главное обмен файлами с возможностью их выполнения и еще много интересных функций.
Мы поняли клиент банк работает по протоколу построенному на FTP, теперь симулируем сообщение от банка которое будет в себе содержать исполняемый файл и выполнится (без запроса пользователя) на удаленном компьютере клиента банка. Для этого нам необходимо создать файл необходимого формата данных и с определенным именем (o[id-клиента].o.flag) и сам зашифрованный архив zip и указать на него ссылку в файле o[id-клиента].o.flag на симулированном сервере банка.
Декомпилируем ПО „Клиент банк“ и переходим к изучению следующих событий и связных с ними процедур.
NMFTP1ListItem (получение списка папок и файлов с сервера банка их обработка на клиенте
в зависимости от имени файла — вот тут самое интересное)
NMFTP1Status
NMFTP1Success
Timer1Timer
Timer2Timer
Если кому интересна данная статья я буду писать продолжение.
P.s Сотрудники службы безопасности банка перекладывали вину на клиентов банка, клиент потерял ключи и ЭЦП вины сотрудников банка в этом нет деньги у клиента пропали по его вине и следовательно возвращать их мы не будем.
Автор: dlex