Table of Contents
Постепенно человеческие чувства, эмоции, отношения, да и жизнь в целом все больше и больше переносятся в мир компьютеров, в мир глобальных сетей, в мир нулей и единиц. Этот мир живет по своим правилам. Правилам, которые меняются каждый день, и незнание которых приводит к печальным последствиям. Самое ценное здесь — это знание, самое мощное оружие здесь — это знание. Мы сами создали этот мир. Мы сами рвемся в него с головой… вместе с нашими vulnerability…
Introduction
Человек — самое слабое звено в системе — это уже давно известно. Человек непостоянен, а поступки его предсказуемы. Его действия порой необоснованны и не подчиняются никакой логике. Слабость системы можно закрыть патчем раз и навсегда, слабость человека — нет. Как результат — неограниченный простор для фантазии, цель которой — доступ к системе, и дорога, к которой идет через километры проводов и радиоволн, а на входе стоит человек. О том, благодаря каким изъянам человека можно проникнуть внутрь, читай в рубрике "PSYCHO", а я расскажу об инструменте, которой поможет сделать эту дорогу более простой и комфортной.
It is beatiful S.E.T.
Так перейдем от слов к делу. А поможет нам в этом Social Engineer Toolkit (SET), написанный специалистом по безопасности David Kennedy (ReL1K), распространяющим его под лицензией GPLv2. Данный toolkit достаточно недавно появился на свет, но сразу обрел популярность и был включен в BackTrack, на котором мы и будем производить все манипуляции. Для начала обновим (установим) SET следующей командой:
svn co http://svn.thepentest.com/social_engineering_toolkit /pentest/exploits/SET
Прелесть SET заключается в том, что он написан на Python и при этом не требует никаких сторонних питоновских модулей, которые бы пришлось устанавливать дополнительно. Работа ведется через интерактивное меню, где лишь необходимо выбирать желаемые пункты работы приложения. На каждом шаге меню сопровождается хорошим описанием предлагаемых подпунктов, так что справится даже ребенок (тут становится немного страшно :)). Для своей работы, помимо интерпретатора Python, SET использует много сторонних проектов, которые уже есть в составе дистрибутива: Metasploit, ettercap, sendmail, apache и др. Можно, конечно, обойтись и без них, но функционал программы намного уменьшится. SET невидимо для пользователя использует сторонние программы, не вовлекая его в премудрости настройки последних. Но сам toolkit оттюнинговать в некоторых ситуациях просто необходимо, и для этого придется обратиться к файлу настроек:
/pentest/exploits/SET/config/set_config
В set_config по большей части находятся настройки, которые отвечают за взаимодействие SET и сторонних программ (и их поведения). Не стоит забывать, что это проект open-source, и в нем всегда можно поразбираться, что-то добавить (0-day например), улучшить и подправить. Но давай перейдем к рассмотрению арсенала SET, ведь именно это тебе не терпится сделать.
Итак, SET предоставляет собой функционал для проведения четырех основных векторов атаки:
Основные вектора атаки SET
- E-MAIL ATTACK VECTOR
- WEB ATTACK VECTOR
- CD/DVD/USB ATTACK VECTOR
- Teensy USB HID ATTACK VECTOR
При проведении атаки через е-mail используются эксплойты, реализующие уязвимости типа file format, такие как:
- Adobe Flash Player 'newfunction' Invalid Pointer Use
- Adobe Collab.collectEmailInfo Buffer Overflow
- Adobe Collab.getIcon Buffer Overflow
- Adobe JBIG2Decode Memory Corruption Exploit
- Adobe PDF Embedded EXE Social Engineering
- и другие
А при атаке через веб-вектор, как это ни удивительно, эксплойты, реализующие уязвимости в браузерах:
- LNK Code Execution (MS10-046)
- Help Center XSS and Command Execution (MS10-042)
- IE iepeers.dll Use After Free (MS10-018)
- IE Tabular Data Control Exploit (MS10-018)
- IE "Aurora" Memory Corruption (MS10-002)
- и другие
Надежность каждого эксплойта равна его надежности из metasploit, как раз в этом моменте и происходит взаимодействие SET и metasploit. Автор SET не пишет своих эксплойтов, а просто позволяет получить доступ к проверенным и хорошо зарекомендовавшим себя эксплойтам в Metasploit. А теперь давай поподробней остановимся на каждом из векторов атак и посмотрим, какие атаки они несут на самом деле, и как можно воспользоваться этим на практике…
E-mail attack vector
Начнем наше путешествие с email-вектора атаки. Для этого в главном меню выберем пункт "Spear-Phishing Attack Vectors". В наше время сложно представить человека без электронной почты, а без соблазна получить что-нибудь на халяву — еще сложней. А когда халява сама приходит тебе на электронный ящик — это вообще не жизнь, а сказка. Для начала нужно определиться с количеством целей, ведь SET предоставляет два режима рассылки:
- Индивидуальная рассылка
- Массовая рассылка
Для массовой рассылки необходим заранее сформированный файл со списком целевых адресов. Формат данного файла очень прост — один адрес на строку, и находится он в /pentest/exploits/SET/config/mailing_list.txt
. А так все сродни написанию обычного письма — необходимо заполнить тему письма и его содержание. В принципе, чтобы каждый раз не повторять один и тот же ввод, можно сделать шаблон и в дальнейшем использовать его при необходимости. Что касается отправки письма, то тут есть три варианта:
- Gmail-аккаунт
- Свой Sendmail open-relay
- Чей-то open-relay сервер
Как видишь, есть варианты на любой вкус: можно отправить письмо через свой Gmail-аккаунт, не выходя из SET, воспользоваться Sendmail-сервером, который будет автоматически поднят SET на BackTrack, и слать через него, либо заранее найти open-relay в интернете. Чтобы определить, является ли SMTP-сервер open-relay, можно воспользоваться готовым NSE-скриптом Nmap:
nmap --script smtp-open-relay.nse <host>
Благодаря оpen-relay можно отсылать письма с чужих адресов, но не стоит забывать, что у жертвы может использоваться механизм "reverse lookups", который способен определить соответствие доменного имени отправителя письма.
Боевая нагрузка (Meterpreter Reverse_TCP, Reverse VNC, Reverse TCP Shell) вместе с эксплойтом прозрачно выбираются из metasploit и идут внутри присоединенного к письму PDF-файла, который может быть как заготовкой SET, так и любым твоим PDF-вложением. Остается поднять listener и ждать, пока человеческий фактор сыграет злую шутку.
Social Engineering CTF
Данное событие впервые произошло не так давно, а именно — на DEFCON 18 в Riviera Hotel & Casino в Las Vegas, штат Nevada. Организаторами этого состязания были Social-Engineer.Org и Offensive Security. Всем участникам были розданы целевые компании, информацию о которых им необходимо было добыть, используя свои навыки в области социальной инженерии, и только законными способами. При этом участникам запрещалось выдавать себя за работников государственных учреждений, правоохранительных органов или юридических лиц, а также нельзя было связываться с родственниками сотрудников компаний. А задачей участников был, как и в любом CTF, захват флагов, но только флаги тут были необычные. В качестве флагов использовались: название кофе-машины в компании, название браузера, антивируса и их версии, и даже то, кто обрабатывает информацию в шредере и многое другое, но никакой финансовой информации, паролей пользователей и персональных данных, так как целевые компании были реальными, а не вымышленными. Но самым дорогим флагом было заставить сотрудника компании посетить определенный URL. Стоит отметить, что среди компаний были такие монстры, как Google, BP, McAfee, Symantec, Shell, Microsoft, Oracle, Cisco, Apple и Walmart. Как сказали организаторы, соревнование прошло хорошо, даже очень хорошо :).
Хочется также упомянуть компанию Digital Defense, которая даже разослала всем своим клиентам предупредительное письмо с заголовком "Warning Regarding DEF CON 18 Social Engineering Contest", в котором призывала их быть очень бдительными на время данного мероприятия.
Web attack vector
Данный вектор атаки предоставляет нам более интересные, изощренные и разноплановые способы атаки пользователей, чем первый. Говоря о способе через веб, можно выделить и общую черту (с единственным исключением), проходящую через атаки этого типа — использование поддельной веб-страницы на автоматически поднимаемом веб-сервере. Хотя современные браузеры и стараются бороться против поддельных сайтов, окончательное решение о том, доверять или не доверять сайту, принимает человек, а порой просто подводит человеческая невнимательность.
Как упоминалось ранее, SET прекрасно работает в связке с ettercap, и чтобы пользователь не заметил подвоха в адресной строке, можно применить ARP-spoofing. В таком случае жертва вместо оригинального сайта попадает на наш поддельный сайт. Естественно, жертва должна находиться в нашей же подсети.
Также заманить пользователя на наш сайт можно с помощью XSS, email-рассылки, звонка из техподдержки провайдера… В принципе, здесь дело ограничивается лишь твоей фантазией. Говоря о почте, стоит вспомнить о первом векторе атаки, который может прекрасно работать и через веб. Для этого при рассылке в текст письма добавляем URL, предварительно сжатый с помощью сервиса www.bit.ly (или ему подобным). Естественно, вектор атаки через почту не предоставляет возможности отправки нормального файла, но никто не мешает после создания файла подменить его на нормальный в /pentest/exploits/SET/src/program_junk/<name_file>.pdf
. Так как данный вектор сводится к созданию подложного сайта и заманиванию на него жертвы, то SET берет на себя первую часть плана и справляется с ней на "отлично", предоставляя нам три варианта создания такого типа сайтов:
- Заготовки Gmail, Google, Facebook, Twitter и Java Required
- Клонирование сайта
- Собственный сайт
Среди сайтов-заготовок, наверное, стоит остановиться только на "Java Required", при попадании на который появляется страничка с сообщением, что для ее просмотра необходима Java, и подробная инструкция о том, как ее установить. Лучше всего данный шаблон выбирать при проведении атаки Java Applet, но об этом чуть позже.
Второй режим самый лакомый — это полное клонирование веб-страницы любого сайта. Для этого достаточно лишь сообщить toolkit’у необходимый URL, а дальше — дело техники. Через несколько секунд мы уже имеем копию любой веб-страницы. И последний режим дает возможность поднять свой собственный сайт, указав лишь директорию на диске, где он расположен. Здесь можно развернуть как какой-нибудь большой сайт, так и просто страницу с ошибками "404", "Идут профилактические работы", "Идет загрузка …", "Содержание данного сайта несовместимо с вашим браузером, попробуйте открыть ссылку с помощью IE". Главное, чтобы жертва ничего не заподозрила и как можно дольше пробыла на сайте.
Первое, что мы видим, зайдя в пункт web-attack — это The Java Applet атака. Java Applet спуфит поддельный Java Certificate, и, если цель принимает его, на ней запускается metasploit payload. Самым главным достоинством данного метода является то, что нас не интересует, какой ОС и каким браузером пользуется пользователь, главное, чтобы у него на машине стояла Java. За такой замечательный Java Applet мы должны сказать спасибо Thomas Werth.
Ну и, конечно, эксплуатацию уязвимостей браузеров никто не отменял, и для этого есть пункт "The Metasploit Browser Exploit Method". Здесь SET на созданную нами страницу помещает эксплойт, который будет ждать своего часа. Так как большинство новых эксплойтов пробивают к IE (не факт, что жертва им пользуется), то можно, применив социальную инженерию, заставить юзера зайти по ссылке именно с помощью IE — как показывает практика, это вполне возможно. Метод "Credential Harvester" очень прост как в реализации, так и в применении, ведь его задача заключается в сборе всей информации, которую ушастый юзер ввел на странице подготовленного нами сайта. Так что с его помощью очень просто слить аутентификационные данные ничего не подозревающего пользователя.
metasploit-fakeUpdate
Хакер под ником g0tmi1k написал небольшой, но очень интересный bash-скрипт — metasploit-fakeUpdate, который позволяет с помощью поддельного окна обновления, говорящем о необходимости установить patch для закрытия критической уязвимости (есть поддержка Linux, OSX, Windows), протроянить жертву. Для этого скрипт автоматически поднимает DHCP и веб-сервер, запускает DNSSpoof и ARPSPoof, из-за чего жертва никак не может попасть на желаемый сайт, а постоянно видит поддельное окно с просьбой установить патч. Нам лишь остается ждать, когда жертва падет под нашим натиском и установит "обновление". Ну, а затем наш "патч" запускает выбранную нагрузку. На выходе мы можем получить консоль meterpreter и SBD (Secure BackDoor) или VNC, ну, или, собственно, прописанный backdoor. Также есть возможность указать необходимый sniffer из набора dnsiff, чтобы смотреть, что делает жертва. Как можно заметить, весь набор данного софта уже предустановлен во всеми любимом BackTrack.
У многих людей при серфинге интернета открыто много вкладок: для часто посещаемых сайтов, чтобы что-то просмотреть в будущем и т.д. С большим количеством открытых вкладок и с течением времени достаточно трудно вспомнить, что открыл сам, а что скинули посмотреть по мессенджеру ICQ, Skype, Jabber или e-mail. Как раз на это и рассчитана Tabnabbing-атака. Данная атака формирует специальную страницу, на которой первоначально красуется надпись "Please wait while the site loads…", а затем, когда пользователю надоедает ждать загрузки страницы, и он переключается на другую вкладку в браузере, наша подготовленная страница изменит свой вид на вид страницы от популярного почтового сервиса, куда мы хотим позаимствовать аутентификационные данные. Уже в следующий раз, когда жертва будет просматривать свои вкладки, она наткнется уже на сильно знакомый ему интерфейс и, возможно, захочет проверить свою почту в данном окне (не набивать же адрес заново в новом). А дальше наша страничка работает аналогично методу Credential Harvester. Да, и начиная с версии SET 0.6.1, стало возможно использовать SSL (как самоподписанный, так и заранее купленный сертификат). Так что атака может стать еще более мощной и красивой.
Метод "Man Left in the Middle Attack" был внесен в toolkit человеком с ником Кос и использует HTTP REFERER для сбора данных из полей, которые пользователь заполнил на сайте. Этот метод является единственным, для которого можно не создавать поддельный сайт, но необходимо наличие уязвимости типа XSS на реальном сайте, данные с которого нас интересуют, для ее проведения. Получается, что мы просто используем XSS на реальном сайте в режиме Credential Harvester и получаем нужный нам profit.
CD/DVD/USB attack vector
Далеко не у всех в настройках отключена автозагрузка, да и LNK-эксплойт во всю свирепствует, так что данное направление проникновения в систему до сих пор представляет определенный интерес. SET позволяет создать необходимый материал для такой атаки. Для этого необходимо воспользоваться пунктом меню Infectious Media Generator, который любезно поинтересуется о твоих предпочтениях в payload, Encoder, количестве итераций кодирования нагрузки (для AV bypass) и порта для reverse-connect. В результате в корневой папке SET появится папка autorun с двумя файлами: program.exe (наш payload) и autorun.inf, запускающий program.exe. Записываем полученный материал на CD/DVD/USB и подсовываем жертве.
Teensy USB hid attack vector
Благодаря IronGeek и WinFang в SET появился такой изощренный вектор атаки, как Teensy USB HID (human interface device). Правда, для этого придется немного раскошелиться, но это того стоит. Teensy — это очень маленькое программируемое устройство с mini-USB интерфейсом. Teensy USB на борту имеет AVR-процессор с частотой 16 МГц, флеш-память 32-128 Кб, RAM-память 2,5-8 Кб и стоит этот малыш $18-27, в зависимости от модели.
Прелесть данного устройства заключается в том, что оно является программируемым и определяется в системе как USB-клавиатура, что как следствие, позволяет обойти любой запрет на автозагрузку и т.д. Оно также не нуждается в специальных драйверах и, имея очень маленький размер, может быть незаметно установлено на компьютер, пока хозяин машины отвлекся. И это еще не все — устройство обладает таймером и датчиком, что дает возможность запуска начинки при определенных условиях. Единственным недостатком является то, что оно определяется в системе немного дольше, чем обычное USB U3 устройство. В общем, дело осталось за малым — залить нужную нам нагрузку в pde-формате на Teensy. Вот тут как раз нам и поможет SET, он генерирует нашу нагрузку в teensy.pde, который затем с помощью Arduino IDE и Teensy Loader по USB заливается на устройство. Стоит отметить, что в качестве нагрузки можно использовать Powershell HTTP GET MSF, WSCRIPT HTTP GET MSF и Powershell based Reverse Shell. Если данного набора тебе недостаточно, то можно написать свой payload на C или воспользоваться Arduino IDE, которое понимает USB HID out of the box! Теперь в манере агента 007 (никаких убийств, только незаметность) получаем физический доступ к системе и незаметно, элегантно own'им ее.
Conclusion
Как видишь, социальная инженерия набирает новые обороты — благодаря ей можно добиться того, чего не сможет ни один эксплойт. А с привлечением автоматизированных средств это становится сделать намного более просто и массово, так что пробив растет. Растет и количество пользователей ПК, а вот компьютерная грамотность — только падает. И это только начало, мой друг, это только начало…
Warning
Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несет!