Pentesting базовий чекліст для товстого клієнта

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

TOOLS FOR FIND VULNERABILITY

Логин Свят

9/20/20231 min read

PENTESTING Чекліст товстого клієнту

ЗБІР ІНФОРМАЦІЇ

1. Збір інформації

☐ Дізнайтеся архітектуру програми (вона дворівнева чи трирівнева)

☐ Дізнайтеся про використовувані технології (мови та фреймворки)

☐ Визначте мережевий зв’язок

☐ Поспостерігайте за процесом подання реквестів

☐ Поспостерігайте за кожною функціональністю та поведінкою програми

☐ Визначте всі точки входу

☐ Проаналізуйте механізм безпеки (авторизація та автентифікація)

2. Інструменти для перевірки

☐ CFF Explorer
☐ Sysinternals Suite
☐ Wireshark
☐ PEid
☐ Detect It Easy (DIE)
☐ Strings

Тестування GUI

1. Тест на дозвіл до об’єктів GUI

☐ Пошукати приховані об’єкти форми
☐ Спробуйте активувати вимкнені функції для базового користувача
☐ Спробуйте розкрити замаскований пароль

2. Перевірте вміст GUI
☐ Пошукайте конфіденційну інформацію

3. Перевірте логіку GUI
☐ Спробуйте отримати доступ до вразливості на основі ін’єкцій
☐ Спробуйте обійти елементи керування до учотки, використовуючи передбачені функції графічного інтерфейсу користувача
☐ Перевірте неправильну обробку помилок
☐ Перевірте слабку санітарну обробку входу
☐ Спробуйте підвищити привілеї (розблокувати функції адміністратора для звичайних користувачів)
☐ Спробуйте маніпулювати платежами

4. Інструменти для перевірки
☐ UISpy
☐ Winspy++
☐ Window Detective
☐ Snoop WPF

ТЕСТУВАННЯ ФАЙЛУ

1. Тест на доступ до файлів
☐ Перевірте дозвіл для кожного файлу та папки

2. Перевірте безперервність файлу
☐ Перевірте великі імена
☐ Автентифікуйте підпис коду

3. Тест для налагодження вмісту файлу
☐ Пошукайте конфіденційну інформацію у файловій системі (символи, конфіденційні дані, паролі, конфігурації)
☐ Пошукайте конфіденційну інформацію у файлі конфігурації
☐ Пошукайте жорстко закодовані дані шифрування
☐ Пошукайте зберігання конфіденційних даних у відкритому тексті
☐ Пошукайте витік даних у лівому каналі
☐ Пошукайте ненадійний лог

4. Тест на маніпуляції з файлами та вмістом
☐ Спробуйте бекдор фреймворку
☐ Спробуйте попередньо завантажити DLL
☐ Виконайте перевірку умов завантаження
☐ Протестуйте на заміну вмісту в файлі
☐ Перевірте обхід захисту на стороні клієнта за допомогою зворотного проектування

5. Тест для експортованої функції
☐ Спробуйте знайти експортовані функції
☐ Спробуйте використовувати експортовані функції без автентифікації

6. Тест на публічні методи
☐ Створіть оболонку, щоб отримати доступ до загальнодоступних методів без автентифікації

7. ​​Тест на декомпіляцію та перебудову програми
☐ Спробуйте відновити оригінальний вихідний код, паролі, ключі
☐ Спробуйте декомпілювати програму
☐ Спробуйте перебудувати програму
☐ Спробуйте змінити програму

8. Тест на дешифрування та обфускацію DE
☐ Спробуйте відновити оригінальний вихідний код
☐ Спробуйте отримати паролі та ключі
☐ Перевірте відсутність обфускації

9. Тест на розбирання та повторне збирання
☐ Спробуйте створити виправлену збірку

10. Інструменти для перевірки
☐ String
☐ dnSpy
☐ Procmon
☐ Process Explorer
☐ Process Hacker

ТЕСТУВАННЯ РЕЄСТРУ


1. Перевірте наявність дозволів до реєстру
☐ Перевірте доступ для читання розділів реєстру
☐ Поставте прапорець, щоб отримати доступ до розділів реєстру

2. Перевірте вміст реєстру
☐ Перегляньте вміст реєстру
☐ Перевірте конфіденційну інформацію, що зберігається в реєстрі
☐ Порівняйте реєстр до та після відпрацювання програми

3. Тест на маніпуляції з реєстром
☐ Спробуйте підробити реєстр
☐ Спробуйте обійти автентифікацію шляхом маніпулювання реєстром
☐ Спробуйте обійти авторизацію шляхом маніпулювання реєстром

4. Інструменти для перевірки
☐ Regshot
☐ Procmon
☐ Accessenum

ТЕСТУВАННЯ МЕРЕЖІ

1. Тест для мережі
☐ Перевірте конфіденційні дані під час передачі.
☐ Спробуйте обійти правила брандмауера
☐ Спробуйте маніпулювати мережевим трафіком

2. Інструменти для перевірки
☐ Wireshark
☐ TCPview

ТЕСТУВАННЯ МОНТАЖУ

1. Тест для складання
☐ Перевірте рандомізацію макета адресного простору (ASLR)
☐ Перевірте SafeSEH
☐ Перевірка запобігання виконанню даних (DEP)
☐ Перевірте надійність імен
☐ Перевірте ControlFlowGuard
☐ Перевірте HighentropyVA

2. Інструменти для перевірки
☐ PESecurity

ТЕСТУВАННЯ ПАМ'ЯТІ

1. Тест на вміст пам'яті
☐ Перевірте конфіденційні дані, що зберігаються в пам’яті

2. Перевірте наявність маніпуляцій з пам’яттю
☐ Спробуйте маніпулювати пам'яттю
☐ Спробуйте обійти автентифікацію за допомогою маніпуляції з пам’яттю
☐ Спробуйте обійти авторизацію за допомогою маніпуляції з пам’яттю

3. Тест на маніпулювання часом виконання
☐ Спробуйте проаналізувати файл дампа
☐ Перевірте процес заміни
☐ Перевірте наявність модифікаційної збірки в пам'яті
☐ Спробуйте налагодити програму
☐ Спробуйте визначити небезпечні функції
☐ Використовуйте контрольні точки, щоб перевірити кожну функцію

4. Інструменти для перевірки
☐ Process Hacker
☐ HxD
☐ Strings

ТЕСТУВАННЯ ТРАФІКУ

1. Тест на дорожній рух
☐ Проаналізуйте потік мережевого трафіку
☐ Спробуйте знайти конфіденційні дані під час передачі

2. Інструменти для перевірки
☐ Echo Mirage
☐ MITM Relay
☐ Burp Suite


ТЕСТУВАННЯ НА ПОШИРЕНІ ВРАЗЛИВОСТІ

1. Перевірка на загальні вразливості
☐ Спробуйте декомпілювати програму
☐ Спробуйте зворотне проектування
☐ Протестувати за допомогою OWASP WEB Top 10
☐ Протестувати за допомогою OWASP API Top 10
☐ Перевірка на викрадення DLL
☐ Тест на перевірку підпису (використовуйте Sigcheck)
☐ Тест на бінарний аналіз (використовуйте Binscope)
☐ Перевірка на помилки бізнес-логіки
☐ Перевірте наявність атак TCP/UDP
☐ Перевірте за допомогою інструментів автоматичного сканування (використовуйте Visual Code Grepper - VCG).