Що таке експлоїт і з чим його їдять?

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

види експлойтів
- Експлоїт може представляти із себе одиночний файл, який необхідно або відразу запустити або попередньо компілювати.
- Експлоїт може представляти із себе архів, частіше з розширеннями .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
tar -xvzf pack.tgz
cd [имя каталога]
./configure
make
make install
tar -xvzf pack.tgz
cd [имя каталога]
./configure
make
make install
Можливо, доведеться почитати Readme File перед установкою, якщо це специфічний експлоїт.

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

perl exploit.pl [parameters|flags]
Если эксплоит на C, то
$./sploit [parameters]
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.

2. Що таке демон (daemon)?
Демоном називається програма, що працює в фоновому режимі (background) і не має контрольного терміналу. Резідентка, коротше: 0).