Skip to content

Финальный проект в рамках курса "Языки Программирования" посвящённый исследованию возможности перехвата контроля над удалённым сервером через эксплуатацию бинарных уязвимостей

Notifications You must be signed in to change notification settings

Kaladin13/unhackable_bash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unhackable bash

Проект по курсу "Языки программирования", студент 2 курса СППО Лагус Максим

Главной задачей было симулировать ситуацию наиболее приближенную к реально возможному сценарию: таким образом программа была скомпилирована со всеми основными флагами безопасности (подробнее про это позже) и запущена в изолированном docker-контейнере, с нулевым числом внешних зависимостей.

Структура проекта

Сборка

Для сборки и деплоя используется система сборки PwnableHarness. После установки необходимых зависимостей, можно скомпилировать проект и поднять docker-контейнер с приложением одной командой

pwnmake publish

Исходная программма

Само приложение представляет из себя довольно простую консольную утилиту, которая способна выполнять некоторые команды с файловой системой

Main menu

Команда для компиляции

gcc -m64 -I. -O0  -fPIC -DNDEBUG=1 -MD -MP -MF src/*.c.d -c -o src/*.c.o src/*.c
gcc -m64 -Wl,-z,relro,-z,now -pie -o unhackable_bash src/*.o

В итоге получаем 64-битный ELF для x86 с полным набором ограничений для безопасного исполнения

Stats

Эксплойт

Результатом выполнения эксплойта является доступ к shell на удалённой машине

Result

About

Финальный проект в рамках курса "Языки Программирования" посвящённый исследованию возможности перехвата контроля над удалённым сервером через эксплуатацию бинарных уязвимостей

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages