:: Профессиональные backdoors ::

В августе 98 года команда The Cult Of The Dead Cow выпустила пакет для удаленного администрирования – Back Orifice (BO). Честно говоря, я не очень обрадовался, когда услышал эту новость, так как я к этому времени уже писал «троянские кони». А после выхода BO люди все чаще и чаще стали задумываться о той опасности, которую несут в себе файлы неизвестного происхождения. Именно это помешало мне так же успешно продвигать свои творения несчастным юзерам – все теперь стали бдительными.
Antiviral Toolkit Pro, самый популярный в России антивирусный пакет, теперь стоит практически у 80 процентов всего населения Рунета, и он знает все известные и кучу малоизвестных троянов. Так как же обмануть невинного пользователя сети и антивирусный пакет?

Выбор составляющих backdoor
Нет смысла говорить, что для добычи информации или доступа часто может понадобиться backdoor, который будет запущен там, где вам надо. Если выбран метод использования backdoor, то сразу же забудьте обо всех тех «неземных благах», которые несут в себе самые популярные трояны мира – BO, BO2K, NetBus Pro, Sub7, Donald Dick и прочие. Любой троян, про который знают более чем 5 человек, является неудачным. Помните, что самый эффективный троян, который может быть использован хакером – его личный троян, ну или, на крайний случай, тот, который написал хакерский друг-гуру. При составлении структуры трояна хакер должен забыть о всяких интересных и "полезных" вещах, таких как открывание cd-rom, выключение монитора, чат с жертвой. Backdoor нужен для того, что определяет его название – back door – незаметный проход, задняя дверь. Пишется он для того, чтобы получить доступ, манипулировать информацией, красть ее. Backdoor создается только для того, что нужно хакеру и ничего иного. В этом случае никакой антивирус не скажет про эту замечательную программу, что она backdoor.
Мне понадобилось как-то узнать пароль root на одном UNIX. По стандартному методу мышления мне надо ломать саму машину, где стоит UNIX. Но она очень хорошо защищена, и это не так легко сделать, если вообще возможно. Но если вспомнить про человеческую незащищенность и социальную инженерию, то все UNIX-машины становятся доступны.
Я сделал следующее: написал backdoor под Windows, который делал буквально следующее: он записывал все набранное на клавиатуре и давал доступ к диску. Все! Ничего лишнего. Получился этакий FTP-сервер с логой, того, что написано на компьютере. После этого я скачал все файлы с рабочей станции этого человека и взял логу того, что он писал. Этого оказалось достаточно, потому что там был аккаунт на UNIX-машину и пароль root. Его пароль был прописан в почтовом клиенте. А пароль root лежал в логе (когда он удаленно заходил на его сервер, он вводил этот пароль). В итоге была взломана машина UNIX. Хотя никакие стандартные методы проникновения замечены не были. Вывод: хакеру нужно думать более глобально, не ограничивать свое внимание только на объекте (жертве), а думать обо всех машинах в сети и о тех людях, которые сидят за этими машинами.
Так вот, поэтому практически во многих ситуациях нам достаточно прочитать веб-сайт жертвы и написать backdoor. После этого, определить: к чему и для чего необходимо получить доступ. Если надо всего лишь скопировать всю информацию и то, что вводил пользователь с клавиатуры – можно ограничиться упрощенным FTP-сервером и кей-логгером. Мне этого хватит. Если есть желание постоянно наблюдать за жертвой, то можно встроить еще функцию screenshot, чтобы смотреть на экран жертве. Или же встроить поддержку socks-соединения, чтобы работать не напрямую, а через socks-сервер, таким образом обезопасить себя. Можно также обеспечить шифрование передаваемых данных и проверку паролем доступа к backdoor жертвы и добавить, если это необходимо, удаленное управление реестром.

Plug-ins
На начальном этапе жертве посылается только база. Такая база, которая вообще нечего не умеет. Но к ней можно подключиться и пристраивать плаг-ины. Можно это сделать в виде отдельных exe-файлов, а можно в виде dll. И в зависимости от того, что хакеру нужно на данном этапе, он подсоединяется к своему трояну-базе и вводит команду: скачать плаг-ин file manager, чтобы управлять файлами. Он качает и тут же устанавливает его, а хакер работает. Можно пойти еще дальше. В программу встраивается своеобразный скрипт, где прописано, чтобы в каждый четверг она скачивала определенный плаг-ин с какого-то URL, ставила и запускала его. Плаг-ин, совершив какую-либо работу и отослав результат своей работы хакеру на e-mail, удаляется. А взломщик, уже читая результат работы одного плаг-ина, перестраивает скрипт на тот лад, который ему необходим. При достаточном терпении можно очень долго манипулировать этой машиной и быть незамеченным.
Ведь почему те юзеры, у которых не стоят антивирусы, догадываются о том, что с их компьютером что-то не так? Потому что злоумышленник часто бывает нетерпелив и поэтому перегружает машину жертвы так сильно, что это становится заметно невооруженным взглядом. Профессионалы терпеливы.

Stealth-backdoors
Теперь рассмотрим такую немаловажную вещь, как стелс-технологию. Заключается она в том, чтобы обмануть пользователя во время установки трояна и в тех случаях, когда юзер обнаружит троян и захочет его удалить. Мы не будем рассматривать такие принципы стелса, когда код трояна постоянно меняется, как в полиморфном вирусе. Я слышал, что разработчикам Donald Dick удалось сделать такое, но я в этом сомневаюсь. Реально полиморфного трояна создать нельзя. Создатели BO2K тоже во время разработки пытались сделать его полиморфным. Максимум, что им удалось – разбить троян на несколько частей.
Итак, приступим. Возьмем небольшую программу, которая занимает от 15 до 35 килобайт в зависимости от языка и компилятора. Эта программа ничего не отсылает по почте и к ней нельзя подключиться. Это специально делается для того, чтобы обезопасить сохранность этой программы от злобных реверс-инженеров. При запуске, а лучше через неделю после запуска, она соединяется с прописанным в ней FTP- или WWW-сервером. Скачивает с него некую модифицированную программу (например, internat.exe - переключение кодировки) с встроенным троянцем.
Я делал так: клал на FTP-сервер несколько версий этого internat: w95en.exe – w95 англ., w95ben.exe – w95 OSR2 англ., w95ru.exe – w95 рус., w95bru.exe – w95 OSR2 рус., w98en.exe – w98 англ., w98ru.exe – w98 рус., w98seen.exe – w98 SE англ., w98seru.exe - w98 SE рус., w2ken.exe – w2000 англ., w2kru.exe – w2000 рус. и качал соответствующий. После скачивания эта первоначальная программа заменяет родной internat программой, которая скачалась и удаляется. При перезагрузке он запускается как internat.exe, его даже видно в task list. Ни у кого нет подозрений. При этом порты он никакие не открывает, но раз в 30 минут принимает почту с определенного аккаунта, который в нем прописан. Если почта есть, он проверяет ее принадлежность к себе, если принадлежность обнаруживается, то он исполняет команды, которые там указаны. Например, запустить FTP-сервер или скачать программу из сети и ее запустить. Или удалиться. Или закачать лог-файл на FTP-сервер. Все, что угодно.
Второй вариант такой. Небольшая программа (30-60 кб) при запуске соединяется с прописанным в ней FTP-сервером, скачивает с него некую модифицированную программу (например, internat.exe - переключение кодировки) со встроенным троянцем. При перезагрузке соединяется со специальным сервисом, который злоумышленник запускает на какой-нибудь UNIX-машине, ждет команд от него, и уже на тот сервер посылает свои команды. При этом на машине жертвы никак не смогут узнать, какой именно хакерский IP-адрес. Поэтому вычислить хакера будет крайне тяжело, только через промежуточный сервер. А если промежуточный сервер запускать на каком-нибудь сервере, который не играет для взломщика никакой роли (например, взломанный shell-box), то он в любой момент сможет удалить всю информацию на нем.
И наконец, третий вариант. Небольшая программа (60 кб) при запуске соединяется с прописанным в ней FTP-сервером, скачивает с него полный комплект модифицированных программ, которые заменяют все стандартные утилиты (wordpad, internat, notepad, calc, image, write, explorer, scandisk, solitaire). При этом даже если кто-либо обнаружит, что-то в одной программе и заменит ее, будут работать другие. Желательно, чтобы в каждой из них был разный принцип работы (один через UNIX-box, другие через e-mail, третьи напрямую и т.д.). При этом, когда начинает работать другой, они шлют е-mail с извещением, каким образом ведет себя пользователь, и какие программы он запускает. Можно пойти дальше и заразить dll системы. В которых при вызове любой функции выполнялись бы и хакерские функции тоже.

Сетевые соединения
Как я борюсь с тем, что многие постоянно смотрят программой netstat свои текущие соединения? Все очень просто. В сети валяется исходник netstat, написанный на С. Нужно просто переписать его так, чтобы соединения с определенных адресов или на определенные порты не показывались. Можно пойти еще дальше. Взять и переписать dll winsock, т.к. существуют программы, которые показывают соединения, обращаясь напрямую к winsock. Исходный код winsock также можно легко найти в Сети.

Компьютерра+ , [email protected]



[an error occurred while processing this directive]