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

Написание Windows Shellcode на Rust

top

(L3) cache
Пользователь
Регистрация
03.02.2020
Сообщения
252
Реакции
342

Обзор проекта​

Проект Windows шеллкода находится внутри shellcode/, он может быть встроен в PE-файл только в секции .text с и не имеет внешних зависимостей.

shellcode.exe в pe-Bear


Затем мы можем сдампить секцию .text и добавить некоторые патчи, чтобы сделать его независимым от позиции. Эта идея взята из проекта hasherezade masm_shc.

Как build'ить​

(Проверено на Win10 x64)

Билдим бинарный shellcode​

Код:
rustup default nightly-x86_64-pc-windows-msvc
cd shellcode/
cargo build --release
Если все пойдет хорошо, мы получим shellcode\target\x86_64-pc-windows-msvc\release\shellcode.exe

Сдампить секцию .text и сделать несколько патчей​

Мы патчим начало секции .text, заставляем переходить к точке входа. Таким образом, мы можем хранить некоторые строки в объединенной секции, или мы должны использовать массив байтов u8 и u16 в стеке для представления строки.
Код:
cd ..
cargo run
Получим shellcode\target\x86_64-pc-windows-msvc\release\shellcode.bin, это финальный файл шеллкода.

Тестируем шеллкод​

Протестируйте шеллкод, используя ваш любимый загрузчик шеллкода, лично я использую свой небольшой инструмент rs_shellcode.
Код:
git clone https://github.com/b1tg/rs_shellcode
cd rs_shellcode/
cargo build
./target/debug/rs_shellcode.exe -f "shellcode\target\x86_64-pc-windows-msvc\release\shellcode.bin"
Этот демонстрационный shellcode отобразит всплывающее окно сообщения и напишет нечто в лог, используя OutputDebugStringA. Вы можете проверить это в debugview или windbg.

запустить шеллкод


Рекомендации​

автор @b1tg
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну, я думаю на сишечке и плюсах все уже умеют делать шеллкодесы, но открою вам страшную тайну: это можно делать и на D в режиме betterC и на Nim.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
еще бы на питоне делал, нормальные люди на ассемблере пишут, а не на скриптах как нубасы.
хотя с тебя что взять.
Не важно на каком языке, в конечном итоге он транслируется в машинный код. Обычно на Си пишут, не на ассемблере. Выделяют нужные опкоды итд. А по поводу ассемблера тут еще можно похоливарить за трансляторы какой лучше...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Но ты же не кодер
Любой человек, которого интересует плотно и давно кодинг, может считаться кодером.
Лучше не начинать ссору в стиле "ты не кодер-ты наVisual Basic всё делаешь".
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Любой человек, которого интересует плотно и давно кодинг, может считаться кодером.
Лучше не начинать ссору в стиле "ты не кодер-ты наVisual Basic всё делаешь".
Он не программист
Не занимается программированием
Не пишет программы
Не разрабатывает софт
Я не знаю как еще сказать чтобы ты понял о чем я
 
Пожалуйста, обратите внимание, что пользователь заблокирован
еще бы на питоне делал, нормальные люди на ассемблере пишут, а не на скриптах как нубасы.
хотя с тебя что взять.
вот хорошая статья о том как делать шеллкоды на сишечке, берем 2010 студию и погнали https://forum.reverse4you.org/t/shellcode-windows-0x01/685
я понимаю зачем это делать на ассемблере, если ты понимаешь ассемблер, мыслишь и знаешь как не делать говнокод на нем - делай!
но если ты чувак без выдающихся способностей в нем, а делать нужно - то делай так как в статье. я вижу что тебе она будет полезна.
 
Он не программист
Не занимается программированием
Не пишет программы
Не разрабатывает софт
Я не знаю как еще сказать чтобы ты понял о чем я
Я как раз и кодер, это ты хз кто...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я как раз и кодер, это ты хз кто...
Ок
Я просто думал что ты заказчик из-за того как ты рассуждал на тему кроссплатформенного кода на го,бинари которого должны запускаться на любой системе когда подразумевалось что оно должно компилироваться на любой поддерживаемой го системе (+ты сам кодеров ищешь вооооот)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ок
Я просто думал что ты заказчик из-за того как ты рассуждал на тему кроссплатформенного кода на го,бинари которого должны запускаться на любой системе когда подразумевалось что оно должно компилироваться на любой поддерживаемой го системе (+ты сам кодеров ищешь вооооот)
А я заметил что ты во всех темах языком трепешь по чем зря.....
 


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