ЯК ІЗ ВКРАДЕНОГО НОУТБУКА ПОТРАПИТИ В МЕРЕЖУ КОМПАНІЇ
Що можна зробити із вкраденим ноутбуком? Чи можете ви отримати доступ до нашої внутрішньої мережі? Саме на це питання недавно хотів отримати відповідь одинз із клієнтів. Попередження про спойлер: так, так і ще раз так, ви можете. В даній статті ми розповімо вам про те, як ми взяли “викрадений” корпоративний ноутбук та зв’язали кілька експлойтів разом, аби проникнути в корпоративну мережу клієнта.
Вхідні дані
Рішення
pcileech/DMA атаки були заблоковані, оскільки було увімкнено налаштування VT-d BIOS Intel
Всі налаштування BIOS були заблоковані паролем
Порядок завантаження BIOS було заблоковано, аби запобігти завантаження з USB чи CD
Secureboot був повністю включений та запобігав установку будь-яких неофіційних операційних систем
Обхід аутентифікації Kon-boot не спрацював через повне шифрування диску
LAN turtle та інші Responder атаки через USB ethernet аадаптери не дали ніякого результату
SSD був повністю зашифрований (FDE) за допомогою BitLocker від Microsoft та захищено за допомогою модуля Trusted Platform Module (TPM)
SSD був повністю зашифрований (FDE) за допомогою BitLocker від Microsoft та захищено за допомогою модуля Trusted Platform Module (TPM)
Зловмисник із навичками та тривалим фізичним доступом до пристрою
Ціленаправлена атака із великим запасом часу; зловмисник розкриє корпус, буде паяти та використовувати складне обладнання чи програмне забезпечення
Пом'якшення наслідків
Для тих, хто не знає, TPM — це високозахищена та складна апаратна частина, котра має багато засобів ідентифікації та захисту від несанкціонованого доступу. Пряма атака на TPM наврядче принесе результат протягом тестування. В результаті, ми маємо розглянути зв’язки навколо TPM і те, на що він опирається. Він являє собою окремий чіп, не сходий на інші компоненти материнської плати, котрий може підлягати різним атакам. Наш конкретний TPM, про якого йде мова, показано тут:

Дослідження конкретного чіпа TPM показало, що він взаємодіє із процесором по протоколу послідовного периферійного інтерфейсу (SPI):

Це підтвердилося, коли ми виявили TPM, згаданий в схемі ноутбука:

Для того, аби прослухати дані, що передаються по SPI, ми маємо прикріпити кабелі чи щупи до контактів (позначеними вище як MOSI, MISO, CS та CLK) на TPM. Зазвичай це просто, але в даному випадку виникає практична проблема. Цей TPM виконано в корпусі VQFN32, який сам по собі дуже малий. Насправді, ширина “штирьків” складає всього 0,25 мм, а відстань між ними — 0,5 мм. І ці “штирьки” насправді не штирькі, вони плоскі по відношенню до стінки чіпа, тому фізично до них неможливо прикріпити будь-який зажим. Можна припаяти “летючі дроти” до паяним площадкам, але це дуже муторно та, скоріше за все, таке з’єднання буде фізично нестійким. В якості альтернативи, поширеною тактикою є пошук послідовних резисторів для спайки, але вони були такими ж маленькими та ще більш крихкими. Це було нелегко.
Але перш ніж приступити до роботи, ми вирішили, що можливо є і інший спосіб. В багатьох випадках мікросхеми SPI використовують одну й ту ж “шину” із іншими мікросхемами SPI. Це техніка6 яку використовують розробники апаратного забезпечення для спрощення з’єднань, для економії коштів та полегшення пошуку і усунення поломок та програмування. Ми почали шукати по всій платі будь-яку іншу мікросхему, котра може знаходитися на тій же шині, що і TPM. Можливо, їх “штирьки” були б більші та зручніші у використанні. Після деяких спроб та вивчення схем, виявилося, що TPM розділяє шину SPI із єдиним іншим чипом, чипом CMOS, який точно має більше виведень “штирьків”. Насправді, мікросхема CMOS мала найбільший розмір виводів, котрий можна було знайти на стандартних материнських платах, це був SOP-8 (він же SOIC-8).





Тепер, коли у нас є доступ до вмісту в режимі офлайн, ми приступили до стандартного процесу крадіжки даних. Витягування хешів паролів, відкритих чи закодованих облікових даних, відкритих конфіденційних файлів і т.д.. На жаль, нічого корисного не було знайдено, і ми не отримали ніяких автономних облікових даних, що недивно, оскільки це був не ноутбук працівника із багаторічними файлами, а спеціально створений для цього тесту ноутбук. Однак ми виявили активний VPN-клієнт: компанії Palo Alto’s Global Protect (GP). GP має цікаву “функцію” під назвою Pre-logon tunnel:
Pre-logon це метод підключення, який встановлює VPN-з’єднання до того, як користувач увійшов в систему. Метою попереднього входу є аутентифікація кінцевої точки (не користувача) та можливість запуска сценаріїв домену чи інших задач, як тільки кінцева точка вмикається.
Це звучить як дійсно хороша функція для ІТ-відділу для керування кінцевими точками. Це також схоже на чудовий спосіб отримати доступ до VPN, не знаючи жодних облікових даних. Теоретично, якщо ми зможемо завантажити захищену версію ноутбука, наприклад, використовуючи бекдор the sticky keys backdoor, із липкими ключами, ми зможемо отримати доступ до VPN-з’єднання, не потребуючи ніяких облікових даних. На практиці існує багато способів добитися як це можна зробити, але ми вирішили підти шляхом віртуалізації на користь швидкості.
Оскільки у нас є доступ до всієї файлової сфстеми, ми могли робити що завгодно, включаючи переписування файлів драйверів для шкідливих програм на рівні ядра, проксування привілейованих DLL та просто додавання облікових даних. В користь економії часу та ефективності для цього сценарію ідеально підходять липкі ключі, процес виготовлення яких дуже простий:



Титри
Особлива подяка дослідникам, які поділилися своїми знаннями раніше та допомогли зробити цю атаку більш реалістичною, практичною та швидкою:
Henri Nurmi – https://labs.f-secure.com/blog/sniff-there-leaks-m…
Denis Andzakovic – https://pulsesecurity.co.nz/articles/TPM-sniffing
Було виконано переклад статті. Оригінал — https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network
