- PVSM.RU - https://www.pvsm.ru -
3 августа в сабреддите /r/Anarchism [1] некто пользователь PhineasFisher создал тред [2], в котором сообщил о том, что ему удалось украсть 40 гигабайт различных данных компании Gamma International. Возможно, подобная история могла оказаться не столь громкой, если бы не бизнес, которым занимается эта европейская фирма — создание и продажа программных средств для взлома и скрытой слежки (а иными словами — самой настоящей малвари), заказчиками которых обычно выступали государственные структуры. Через несколько дней после первого сообщения взломщик выложил длинный рассказ [3] о том, как ему удалось проникнуть на сервера Gamma International и что удалось там найти.
В начале небольшое лирическое отступление и рассказ о том, чем хакера заинтересовала Gamma International. Помимо всего прочего, эта компания занимается дистрибуцией комплекта ПО FinFisher [4], который описывается как "программное решение для вторжения и удаленного мониторинга, созданное для использования правительственными структурами". Несколько государств преимущественно Ближнего Востока были уличены в переговорах или использовании этой шпионской системы, но большой огласки и расследования эти факты не получили.
Сначала малварь попадала на компьютеры через дырку в iTunes (любая сторонняя программа могла воспользоваться автообновлением этого медиацентра со всеми доступными операциями и вытекающими последствиями), которую Apple не закрывала более трех лет.
В 2012 году многие оппозиционные активисты Бахрейна по электронной почте получили письма с вложениями — .rar-архивами с фотографиями или другими документами, под видом которых на их машины проникал многофункциональный троян. Примечательно, что названия файлов, например, exe.Image.jpg
на первый взгляд казались «правильными», но в локализованных для арабских стран системах они, как положено, переворачивались справа налево и у файл для системы оказывался не картинкой, а исполняемым файлом gpj.egamI.exe
. Исследованием этой атаки занялись ребята из CitizenLab, и вот что им удалось выяснить [5].
Троян копировал в папку C:Documents and Settings<User>Local SettingsTemp
два файла — драйвер и скрипт для самоудаления. Для работы троян использовал технику Dynamic forking (Process hollowing) [6], то есть образ его исполняемого файла в памяти размещался в адресном пространстве другого, уже существующего процесса. То есть зловредный код исполняется во вполне безобидном контейнере и при этом успешно скрывается от проактивной защиты (кстати сказать, пользуясь рядом других антиотладочных техник). Далее троян прописывает себя в автозагрузку через MBR и начинает собирать данные. Для этого он создает скрытый каталог с рандомным именем типа C:WindowsInstaller{49FD463C-18F1-63C4-8F12-49F518F127}
, куда сохраняет скриншоты, данные кейлоггинга, пароли (извлекаемые из браузеров и чат-клиентов), записи звонков по Skype и многое другое. Раз в десять минут троян пересылает собранные данные на сервер по заданному IP (в анализируемом случае это был 77.69.140.194) через порты 22, 53, 80, 443, 4111 (в основном — через два последних).
Результаты анализа действий малвари таковы:
Со времени этого исследования прошло более двух лет, и создатели FinFisher явно не сидели на месте. Учитывая даже громкие публичные утечки, у них было достаточно времени и ресурсов, чтобы дотачивать и расширять функцинальность своих шпионских систем.
Но теперь давайте перейдем собственно ко взлому. Хакер расписал этот процесс очень подробно, хотя для опытных пен-тестеров в нем нет никаких ноу-хау. Но для новичков в теме компьютерной безопасности эта инструкция может дать много пищи для размышления.
Рассказ для удобства будет вестись от первого лица.
Разумеется, все описанные действия — уголовно-наказуемое преступление, поэтому стоит предпринять основные способы обеспечения анонимности:
Для начала создаем скрытый зашифрованный том с помощью утилиты Truecrypt 7.1a [7]. Далее устанавливаем на него Whonix [8]. Это дистрибутив на основе Debian, все сетевые соединения в котором осуществляются только через анонимную сеть Tor. Вполне достаточно и того, что Whonix будет гонять весь наш трафик через Tor, но все-таки лучше, если мы не станем использовать свое домашнее интернет-соединение. В поиске доступных беспроводных подключений вам помогут инструменты aircrack-ng и reaver, а также самодельная антенна cantenna.
Следуйте здравому смыслу и не проявляйте подозрительную активность вне Whonix, а под ним — наоборот, не занимайтесь своими повседневными сетевыми делами, а также никогда не рассказывайте в хакерской тусовке о своих занятиях в обычной жизни, а друзьям — о своих грандиозных взломах. Если вы придерживаетесь этих правил — можете не переживать за свою анонимность.
Примечание: вообще, я не советую заниматься взломом исключительно через Tor. Он полезен для многого, включая браузинг веб-страниц, но когда дело доходит до пен-теста и использования инструментов вроде nmap, sqlmap и nikto, которые генерируют тысячи обращений к внешним узлам, через Tor будут работать медленно. Их лучше запускать со взломанных серверов или купленных за биткойны
Для этого я обычно использую fierce [10], а также данные прямых и инверсных whois-запросов по IP-адресам и доменным именам.
Для примера возьмем частную военную компанию Blackwater. Что мы знаем изначально — доменное имя их сайта (academi.com). Найдем все поддомены:
fierce.pl -dns academi.com
67.238.84.228 email.academi.com
67.238.84.242 extranet.academi.com
67.238.84.240 mail.academi.com
67.238.84.230 secure.academi.com
67.238.84.227 vault.academi.com
54.243.51.249 www.academi.com
Теперь сделаем whois-запрос по www.academi.com
и по выданному диапазону адресов узнаем, что сайт
NetRange: 67.238.84.224 - 67.238.84.255
CIDR: 67.238.84.224/27
CustName: Blackwater USA
Address: 850 Puddin Ridge Rd
whois-запрос на academi.com
также сообщил, что сайт зарегистрирован по этому же адресу (850 Puddin Ridge Rd), поэтому эту строчку можно использовать для инверсных whois-запросов. Вообще, такие сервисы с актуальными данными берут деньги за услуги, поэтому можно исхитриться и использовать Google:
"850 Puddin Ridge Rd" inurl:ip-address-lookup
"850 Puddin Ridge Rd" inurl:domaintools
Мы получили диапазоны IP-адресов, для которых fierce.pl
подскажет нам доменные имена, а fierce.pl -dns
— поддомены и их IP-адреса. Итерации можно выполнять до тех пор, пока вы не найдете все, что вас интересует.
Можно поискать организацию в Google и найти другие относящиеся к ней вебсайты. Например, для academi.com
можно найти портал вакансий, онлайн-
магазин и раздел для сотрудников:
54.236.143.203 careers.academi.com
67.132.195.12 academiproshop.com
67.238.84.236 te.academi.com
67.238.84.238 property.academi.com
67.238.84.241 teams.academi.com
После очередных whois-запросов и дальнейших поисков выясняется, что academiproshop.com
не относится к объекту исследования, так что мы вычеркиваем его из списка.
В случае FinFisher к уязвимому ресурсу finsupport.finfisher.com
меня привел простой whois-запрос по finfisher.com
, который сообщил наименование зарегистрировавшей его организации "FinFisher GmbH". Поиск "FinFisher GmbH" inurl:domaintools
выдал gamma-international.de
, который редиректил на finsupport.finfisher.com
.
Я думаю, вы поняли принцип поиска цели. Вообще, это одна из важнейших частей атаки, поскольку чем больше площадь, которую вы смогли обнаружить, тем проще найти в ней подходящую дырку.
Просканируем nmap-ом все найденные IP-диапазоны и обнаружим запущенные на узлах сервисы. Кроме стандартного сканирования не станет забывать и о SNMP-сканировании.
Теперь надо определиться с каждым найденным сервисом:
fierce
найдет поддомен с git-ом, и пройдя в git.companyname.come/gitweb/
вы получите исходные коды сервиса как на ладони.Веб-сервера попадают в отдельную категорию. Для них, включая те, которые nmap нашел на нестандартных портах, я обычно делаю следующее:
fierce
поддоменах, которые явно не предназначаются для публичного взора, например test.company.com
или dev.company.com
можно найти много интересного, просто открыв их в браузере.webserver/.svn/
, webserver/backup/
, webserver/phpinfo.php
и еще тысячи обычных ошибок в настройке.Для finsupport.finfisher.com
процесс выглядел так:
nikto
.index.php
, как вы понимаете, не настолько уникален). Я выбрал Scripts/scripts.js.php
и обратился к Google: allinurl:"Scripts/scripts.js.php"
На этом этапе я представляю себе огромные статьи, в которых журналисты пишут что-то воде: "В результате сложной, многоходовой атаки хакеры сначала взломали веб-контору и получили конфиденциальную информацию, которая помогла им атаковать Gamma Group..."
Но на самом деле, когда вы овладеете этой техникой, все делается довольно просто, почти на автопилоте. Заняло всего пару минут:
allinurl:"Scripts/scripts.js.php"
--tamper='tamper/modsecurityversioned.py'
Просмотрев исходный код, подумал, что этому движку можно было дать название Чертовски Уязвимый.
Теперь ко второму найденному сайту [19]. В нем то же самое: инъекция, LFI, загружаемый файл проверяется на клиенте JavaScript-ом, а если вы не залогинены — страница админки отправляет вас обратно на страницу логина с заголовком Location, но вы можете отфильтровать этот заголовок через свою перехватывающую прокси и войти в админку без данных аккаунта.
Вернемся к сайту finsupport. Админка по адресу /BackOffice/
возвращает 403 Forbidden, возникают сложности с чтением локальных файлов и я решаю воспользоваться SQL-инъекцией (хорошо иметь несколько вариантов действий). Другие сайты на этом движке имели уязвимый сценарий print.php
, и пара быстрых запросов к
https://finsupport.finfisher.com/GGI/Home/print.php?id=1 and 1=1
https://finsupport.finfisher.com/GGI/Home/print.php?id=1 and 2=1
обрадовала меня тем, что print.php
присутствует и здесь, и так же уязвим. И полученные данные администратора подошли и к базе данных! В случае MySQL это означает возможность читать и создавать файлы. Оказалось, что на сайте были включены magicquotes
, поэтому я не смог писать в файлы через MySQL-команду INTO OUTFILE
. Здесь я воспользовался небольшим скриптом, который через sqlmap --file-read
читает исходный код PHP-скрипта по заданному URL и совершает обычный запрос к веб-странице, чтобы получить HTML-код, потом ищет другие подключенные к скрипту файлы или PHP-страницы по ссылкам в HTML-коде, чтобы рекурсивно скачать весь движок.
Изучив исходные тексты, я понял, что клиенты могут прикреплять файлы к тикетам, и при этом расширения файлов никак не проверяются. Из базы данных я выбрал логин и пароль одного из пользователей, создал тикет с прикрепленным шеллом и попал внутрь.
___________
< got r00t? >
-----------
^__^
(oo)_______
(__) )/
||----w |
|| ||
^^^^^^^^^^^^^^^^
Получение прав root на 50% Linux-серверов в дикой природе осуществляется с помощью двух простых скриптов: Linux_Exploit_Suggester [20] и unix-privesc-check [21].
Сервер finsupport
работал на последней версии Debian, под которую нет эксплойтов для получения прав суперпользователя, но unix-privesc-check
сообщил:
WARNING: /etc/cron.hourly/mgmtlicensestatus is run by cron as root. The user
www-data can write to /etc/cron.hourly/mgmtlicensestatus
WARNING: /etc/cron.hourly/webalizer is run by cron as root. The user www-data
can write to /etc/cron.hourly/webalizer
В /etc/cron.hourly/webalizer я добавил следующие строки:
chown root:root /path/to/my_setuid_shell
chmod 04755 /path/to/my_setuid_shell
Подождал час, и… ничего. Оказалось, что процесс cron
на самом деле не выполняет запланированные задания. Если посмотреть в каталог webalizer
, то видно, что статистика не обновляется уже месяц. Очевидно, после обновления заданного часового пояса cron
либо не запускал задания вообще, либо запускал их в неправильное время, поэтому нам следует поменять часовой пояс и перезапустить cron
. ls -l /etc/localtime
сообщил, что часовой пояс менялся 6-го июня, в это же время webalizer
перестал обновлять статистику, так что, вероятно, это и есть корень проблемы. Но в любом случае, все, чем занимается этот сервер, — это
Следующим шагом было осмотреть локальную сеть, к которой подключена взломанная машинка. Этот во многом аналогичен описанному в главе Сканирование и взлом, за исключением того, что перед файрволлом можно обнаружить еще больше интересных сервисов. Здесь нам снова пригодится статически слинкованный nmap
со всеми имеющимися скриптами. Очень полезными оказываются различные nse-скрипты с именами nfs-*
и особенно smb-*
. Единственной интересной находкой в локальной сети finsupport-а был еще один веб-сервер, раздававший папку qateam
, в которой находился их шпионский софт для мобильных.
Настоящее веселье начинается, когда ты попадаешь в их сеть. Используйте свое воображение. Не обязательно нужно ограничиваться сливом документов. Изначально я планировал:
Но полностью взломать Gamma у меня так и не получилось, я добыл лишь несколько интересных документов, но никакой копии серверной части FinSpy, на которую я так рассчитывал, найти не удалось, поэтому пришлось перейти к менее веселому плану Б, который заключался в публикации их документов и высмеивании этого в Twitter-е.
Примечание: на самом деле слито много зашифрованных файлов, так что направляйте свои GPU на файл FinSpy-PC+Mobile-2012-07-12-Final.zip [22] (magnet-ссылка, 38,7 Гб) и расшифруйте его, чтобы я смог перейти ко второму пункту!
Еще один метод взлома, который я бы выделил наряду со сканированием и применением эксплойтов, больше подходит тем, кто имеет опыт программирования. Здесь нет четкой инструкции, но все способы хороши.
1) Эксплойты в веб-браузере, Java, Flash или Microsoft Office совместно с отправлением сотрудникам компании email-рассылки, в которой нужно убедить их кликнуть на ссылку или открыть прикрепленный файл. Либо взломать сайт, на который часто посещают эти самые сотрудники и добавить в него браузерный/Java/Flash эксплойт.
Таким методом обычно пользуются команды хакеров, работающие на правительство, но вам не обязательно быть правительством, тратящим миллионы на поиск 0day-уязвимостей или подписку на FinSploit или VUPEN, чтобы это провернуть. За пару тысяч долларов можно купить качественный набор эксплойтов от русских хак-групп, либо арендовать его за еще меньшую сумму. Существует еще Metasploit-browser autopwn-сценарий, но, скорее всего, вы добьетесь большего успеха безо всяких эксплойтов, но с фейковым Flash-обновлением.
2) Воспользуйтесь тем, что в 95% случаев люди вежливы, доверительны и готовы помочь. Индустрия компьютерной безопасности даже изобрела для этого термин: «Социальная инженерия». Можно попробовать покопать в этом направлении, если вы не сильно разбираетесь в технических вопросах, и этого может быть вполне достаточно, чтобы стать успешным хакером.
Целиком все добытые материалы занимают около 40 Гб и сидируются активистами и просто небезразличными людьми. Многие файлы зашифрованы, и хотя некоторых владельцев PGP-ключей удалось вычислить, ничего особо секретного раскрыть не удалось. Довольно быстро часть украденного кода используемых эксплойтов была залита на GitHub, где находится и сейчас: https://github.com/FinFisher [23].
Автор: siomi
Источник [39]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/68158
Ссылки в тексте:
[1] /r/Anarchism: http://www.reddit.com/r/anarchism
[2] тред: http://www.reddit.com/r/Anarchism/comments/2cjlop/gamma_international_leaked/
[3] длинный рассказ: http://data.langly.fr/blackhat
[4] FinFisher: https://wikileaks.org/spyfiles/files/0/299_GAMMA-201110-FinFisher_Product_Portfolio-en.pdf
[5] удалось выяснить: https://citizenlab.org/2012/07/from-bahrain-with-love-finfishers-spy-kit-exposed/
[6] Dynamic forking (Process hollowing): http://www.rohitab.com/discuss/topic/40262-dynamic-forking-process-hollowing/
[7] Truecrypt 7.1a: https://truecrypt.ch/downloads/
[8] Whonix: https://www.whonix.org/wiki/Download#Install_Whonix
[9] VPS: https://www.reg.ru/?rlink=reflink-717
[10] fierce: http://ha.ckers.org/fierce/
[11] nikto: http://www.cirt.net/nikto2
[12] WhatWeb: http://www.morningstarsecurity.com/research/whatweb
[13] wpscan: http://wpscan.org/
[14] CMS-Explorer: https://code.google.com/p/cms-explorer/
[15] Joomscan: http://sourceforge.net/projects/joomscan/
[16] ZAP: https://code.google.com/p/zaproxy/
[17] sqlmap: http://sqlmap.org/
[18] PHP-шелл: https://epinna.github.io/Weevely/
[19] второму найденному сайту: http://www.dvwa.co.uk/
[20] Linux_Exploit_Suggester: https://github.com/PenturaLabs/Linux_Exploit_Suggester
[21] unix-privesc-check: https://code.google.com/p/unix-privesc-check/
[22] FinSpy-PC+Mobile-2012-07-12-Final.zip: http://magnet:?xt=urn:btih:4e8564f0edcb3875ad2dbb9658ca3d615cc6c152&dn=finfisher&tr=http://bt.careland.com.cn:6969/announce&tr=udp://tracker.coppersurfer.tk:6969/announce&tr=udp://tracker.openbittorrent.com/announce
[23] https://github.com/FinFisher: https://github.com/FinFisher
[24] Hacker News: https://news.ycombinator.com/item?id=8143232
[25] Reddit: http://www.reddit.com/r/netsec/comments/2dbuzz/how_gamma_finfisher_was_hacked/
[26] https://www.pentesterlab.com/exercises/: https://www.pentesterlab.com/exercises/
[27] http://overthewire.org/wargames/: http://overthewire.org/wargames/
[28] http://www.hackthissite.org/: http://www.hackthissite.org/
[29] http://smashthestack.org/: http://smashthestack.org/
[30] http://www.win.tue.nl/~aeb/linux/hh/hh.html: http://www.win.tue.nl/~aeb/linux/hh/hh.html
[31] http://www.phrack.com/: http://www.phrack.com/
[32] http://pen-testing.sans.org/blog/2012/04/26/got-meterpreter-pivot: http://pen-testing.sans.org/blog/2012/04/26/got-meterpreter-pivot
[33] http://www.offensive-security.com/metasploit-unleashed/PSExec_Pass_The_Hash: http://www.offensive-security.com/metasploit-unleashed/PSExec_Pass_The_Hash
[34] https://securusglobal.com/community/2013/12/20/dumping-windows-credentials/: https://securusglobal.com/community/2013/12/20/dumping-windows-credentials/
[35] https://www.netspi.com/blog/entryid/140/resources-for-aspiring-penetration-testers: https://www.netspi.com/blog/entryid/140/resources-for-aspiring-penetration-testers
[36] https://www.corelan.be/: https://www.corelan.be/
[37] http://websec.wordpress.com/2010/02/22/exploiting-php-file-inclusion-overview/: http://websec.wordpress.com/2010/02/22/exploiting-php-file-inclusion-overview/
[38] http://www.dest-unreach.org/socat/: http://www.dest-unreach.org/socat/
[39] Источник: http://habrahabr.ru/post/234331/
Нажмите здесь для печати.