Багатьох людей цікавить питання: «Що ж таке експлоїт»? У цій статті я постараюся дати максимально розгорнуту відповідь на нього. Отже:

Види експлойтів

— Експлоіт може представляти із себе файл, який необхідно або відразу запустити або попередньо компілювати.

— Експлоіт може представляти із себе архів, частіше з розширеннями .tar або .tar.gz, бо більшість з них пишуться під UNIX системи. У цих архівах може лежати що завгодно:

* ті ж .pl файли
* скрипт або исходник на C, Java? etc
* просто опис «хитрого звернення»
* etc

Алгоритм дії

* Скануємо хост (бажано сканувати з використанням nmap)
* Дивимося відкриті порти і що на них висить
* Телнет на відкриті порти і дізнаємося версії демонів
* Знаходимо дірявий демон
* Шукаємо експлоїт
* Засилає його на shell-account в ліні
* Компілюємо його
* Запускаємо експлоїт

Пошук експлоїта

Припустимо, що ми дізналися, що якийсь демон дірявий. Терміново біжимо в bugtrack’s та архіви вразливостей і знаходимо експлоїт.

Шукаємо сплоіт або за версією демона або за версією операційної системи.

shell-account

Варіанти:

1. У вас є шелл (не розглядається — переходьте до наступного заголовку)
2. У вас немає шелла і ви хочете його мати

Дії:

— Можна використовувати халявний шелл (однак у них відключені багато потрібних речей :))

3. У вас є власний UNIX (переходь до наступного заголовку)

Компіляція

Припустимо, ми знайшли потрібний нам сплоіт на C. Більшість експлойтів пишуться саме на цій мові програмування.

gcc file.c -o file — Скомпілювати C код і отримати при виході бінарники file

Якщо у тебе архів, то розкриваємо: tar -xvzf pack.tgz
cd [ім’я каталогу]
./configure
make
make install

Можливо, доведеться почитати Readme File перед установкою, якщо це специфічний експлоїт.

Запуск експлоїта

Якщо експлоїт на Perl, тоді для запуску використовується команда

perl exploit.pl [parameters|flags]
Якщо експлоїт на C, то
$./sploit [parameters]

Кожен експлоїт увазі вставку своїх параметрів, про призначення яких зазвичай повідомляє сам при запуску.

Проблеми на халявних шеллі

На безкоштовних шеллі часто зустрічаються наступні проблеми:

— недостатньо прав
— не можливо підключити .h бібліотеки (які використовують всі експлоїти)

Поява цих проблем не дивно. Якби адміністратори вирішили всі функції шелла, то тоді це був би не безкоштовний сервіс для знайомства з системою UNIX а плацдарм для масованих атак на сервери. Сподіваюся, тепер проблем з цим не буде.

Кілька пояснень:

1. Що таке shell?

Дослівно shell перекладається як «оболонка». Це програма, яка приймає команди юзера з командного рядка, перетворює їх у зрозумілу для операційки форму і виводить відповідь операційки у зрозумілій для користувача формі :). Інша назва shell — командний інтерпретатор. Ось кілька найбільш юзабельних shell’ов: bash, sh, csh, tcsh, psh. Відрізняються вони тим, що у кожної shell свій мову для написання скриптів (у споріднених шелл вони майже однакові, як у bash та sh).

Ще вони відрізняються по функціональності: деякі дозволяють редагувати вид командного рядка. Майже у кожного шелла є свої вбудовані змінні. Якщо не знаєш, який у тебе шелл, вводь команду echo $SHELL. Якщо хочеш поміняти свій дефолтовий шелл, вводь команду chsh.

{c} aka hacker