Pentesting базовий чекліст для товстого клієнта
Цей чекліст допоможе тобі не забути про самі базові штуки в перевірці на безпеку вашого додатку. В ньому згадується про самі слабкі сторони, які потрібно обоʼязково перевірити, щоб до злодію не так сильно біло цікаво та легко залізти до вас в систему.
TOOLS FOR FIND VULNERABILITY
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).