W obecnych czasach wiele osób prowadzi róznego typu blogi (tekst, videoblog). Na rynku jest wiele narzędzi, które w prosty sposób dostarczają szablon. Sprawnie możemy dodawać własne przemyślenia oraz pliki.
Są to tak zwane systemy typu CMS (ang. Content Management System). Kształtowanie treści i sposobu ich prezentacji w serwisie internetowym zarządzanym przez CMS odbywa się za pomocą prostych w obsłudze interfejsów użytkownika, zazwyczaj w postaci stron WWW zawierających rozbudowane formularze i moduły.
Prym wiedzie posród takich systemów jak:
– WordPress
– Joomla!
Niestety tzw szary obywatel nie myśli o tym, że nie wystarczy zainstalować, dodać treści i nie martwić się niczym. Bardzo ważne w obecnych czasach jest bezpieczeństwo w sieci. W tym wypadku należy podzielić bezpieczeństwo na 2 rejony:
– bezpieczeństwo hostingu – w większości przypadków powinniśmy wybierać zaufane firmy, które potrafią zadbać o bezpieczeństwo.
Hosting to w prostych słowach, miejsce w którym umieszczamy nasz blog lub stronę, głównie oparty na serwerach Linux oraz open source.
– bezpieczeństwo aplikacji – w tym wypadku jest to owy CMS wraz z pluginami, który jest stale rozwijany.
Przeglądając internet można napotkać szereg CMSów, które mają nieaktualne oprogramowanie oraz pluginy, są zagrożone na różnego typu ataki.
Poniżej przedstawiam prawdziwy scenariusz. Analiza została przeprowadzano na stronie firmy, która zajmuje się HR. Posiada wrażliwe dane, które są udostępniane publicznie.
Zaczynamy.
Wchodząc na stronę przez przeglądarkę, każdy może podejrzeć sobie źródło i sprawdzić jak wygląda dana strona.
Proste zabezpieczenia uniemożliwiają czasami sprawdzenie czy dana strona jest autorska czy został użyty jakiś CMS.
W naszym przypadku niedużo trzeba szukać i widnieje w źródłach dla index.html:
<meta name="generator" content="WordPress 3.9.1" />
Szybki research wskazał Nam, że jest to szeroko używany CMS i to dość w starej wersji (w momencie pisania artykułu najnowsza wersja WP to 4.5.3).
Wersja 3.9.1 pochodzi z 08.05.2014 – https://wordpress.org/news/category/releases/
Czasami już dużo podpowiedzi jest w samym pliku robots.txt:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Zatem już przez sam plik robots.txt jesteśmy w stanie wyedukować, że strona używa WordPressa.
Skoro strona (użyty WordPress) nie posiada nawet prostych zabezpieczeń, to zapewnie udostępnia też plik readme.html.
W nim jest też wprost napisane:
Możemy zagłębiać się jeszcze bardziej i sprawdziać poszczególne pliki. Sprawdźmy czy jest dostęp do panelu admin:
http://xxx/wp-admin/
Działa. Pozostało nam sprawdzić logowanie: admin / admin 🙂
Sprawdźmy zatem głębiej jakie poważniejsze problemy występują na tej stronie:
[+] URL: http://xxx.pl/
[+] Started: Tue Apr 19 23:54:47 2016
[+] robots.txt available under: 'http://xxx.pl/robots.txt’
[!] The WordPress 'http://xxx.pl/readme.html’ file exists exposing a version number
[+] Interesting header: SERVER: Apache/2.2.22 (Debian)
[+] Interesting header: X-POWERED-BY: PHP/5.4.4-14+deb7u9
[+] This site has 'Must Use Plugins’ (http://codex.wordpress.org/Must_Use_Plugins)
[+] XML-RPC Interface available under: http://xxx.pl/xmlrpc.php
[!] Upload directory has directory listing enabled: http://xxx.pl/wp-content/uploads/
[+] WordPress version 3.9.1 identified from meta generator
[!] 22 vulnerabilities identified from the version number
[!] Title: WordPress 3.9 & 3.9.1 Unlikely Code Execution
Reference: https://wpvulndb.com/vulnerabilities/7527
Reference: https://core.trac.wordpress.org/changeset/29389
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5203
[i] Fixed in: 3.9.2
[!] Title: WordPress 2.0.3 – 3.9.1 (except 3.7.4 / 3.8.4) CSRF Token Brute Forcing
Reference: https://wpvulndb.com/vulnerabilities/7528
Reference: https://core.trac.wordpress.org/changeset/29384
Reference: https://core.trac.wordpress.org/changeset/29408
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5204
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5205
[i] Fixed in: 3.9.2
[!] Title: WordPress 3.0 – 3.9.1 Authenticated Cross-Site Scripting (XSS) in Multisite
Reference: https://wpvulndb.com/vulnerabilities/7529
Reference: https://core.trac.wordpress.org/changeset/29398
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5240
[i] Fixed in: 3.9.2
[!] Title: WordPress 3.6 – 3.9.1 XXE in GetID3 Library
Reference: https://wpvulndb.com/vulnerabilities/7530
Reference: https://github.com/JamesHeinrich/getID3/commit/dc8549079a24bb0619b6124ef2df767704f8d0bc
Reference: http://getid3.sourceforge.net/
Reference: http://wordpress.org/news/2014/08/wordpress-3-9-2/
Reference: http://lab.onsec.ru/2014/09/wordpress-392-xxe-through-media-upload.html
Reference: https://github.com/ONsec-Lab/scripts/blob/master/getid3-xxe.wav
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2053
[i] Fixed in: 3.9.2
[!] Title: WordPress 3.4.2 – 3.9.2 Does Not Invalidate Sessions Upon Logout
Reference: https://wpvulndb.com/vulnerabilities/7531
Reference: http://whiteoaksecurity.com/blog/2012/12/17/cve-2012-5868-wordpress-342-sessions-not-terminated-upon-explicit-user-logout
Reference: http://blog.spiderlabs.com/2014/09/leveraging-lfi-to-get-full-compromise-on-wordpress-sites.html
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5868
[i] Fixed in: 4.0
[!] Title: WordPress 3.0-3.9.2 – Unauthenticated Stored Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/7680
Reference: http://klikki.fi/adv/wordpress.html
Reference: https://wordpress.org/news/2014/11/wordpress-4-0-1/
Reference: http://klikki.fi/adv/wordpress_update.html
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9031
[i] Fixed in: 4.0
[!] Title: WordPress <= 4.0 – Long Password Denial of Service (DoS)
Reference: https://wpvulndb.com/vulnerabilities/7681
Reference: http://www.behindthefirewalls.com/2014/11/wordpress-denial-of-service-responsible-disclosure.html
Reference: https://wordpress.org/news/2014/11/wordpress-4-0-1/
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9034
Reference: https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_long_password_dos
Reference: https://www.exploit-db.com/exploits/35413/
Reference: https://www.exploit-db.com/exploits/35414/
[i] Fixed in: 4.0.1
[!] Title: WordPress <= 4.0 – Server Side Request Forgery (SSRF)
Reference: https://wpvulndb.com/vulnerabilities/7696
Reference: http://www.securityfocus.com/bid/71234/
Reference: https://core.trac.wordpress.org/changeset/30444
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9038
[i] Fixed in: 4.0.1
[!] Title: WordPress 3.9, 3.9.1, 3.9.2, 4.0 – XSS in Media Playlists
Reference: https://wpvulndb.com/vulnerabilities/7697
Reference: https://core.trac.wordpress.org/changeset/30422
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9032
[i] Fixed in: 4.0.1
[!] Title: WordPress <= 4.1.1 – Unauthenticated Stored Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/7929
Reference: https://wordpress.org/news/2015/04/wordpress-4-1-2/
Reference: https://cedricvb.be/post/wordpress-stored-xss-vulnerability-4-1-2/
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3438
[i] Fixed in: 4.1.2
[!] Title: WordPress <= 4.2.2 – Authenticated Stored Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8111
Reference: https://wordpress.org/news/2015/07/wordpress-4-2-3/
Reference: https://twitter.com/klikkioy/status/624264122570526720
Reference: https://klikki.fi/adv/wordpress3.html
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5622
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5623
[i] Fixed in: 3.9.7
[!] Title: WordPress <= 4.2.3 – wp_untrash_post_comments SQL Injection
Reference: https://wpvulndb.com/vulnerabilities/8126
Reference: https://github.com/WordPress/WordPress/commit/70128fe7605cb963a46815cf91b0a5934f70eff5
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2213
[i] Fixed in: 3.9.8
[!] Title: WordPress <= 4.2.3 – Timing Side Channel Attack
Reference: https://wpvulndb.com/vulnerabilities/8130
Reference: https://core.trac.wordpress.org/changeset/33536
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5730
[i] Fixed in: 3.9.8
[!] Title: WordPress <= 4.2.3 – Widgets Title Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8131
Reference: https://core.trac.wordpress.org/changeset/33529
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5732
[i] Fixed in: 3.9.8
[!] Title: WordPress <= 4.2.3 – Nav Menu Title Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8132
Reference: https://core.trac.wordpress.org/changeset/33541
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5733
[i] Fixed in: 3.9.8
[!] Title: WordPress <= 4.2.3 – Legacy Theme Preview Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8133
Reference: https://core.trac.wordpress.org/changeset/33549
Reference: https://blog.sucuri.net/2015/08/persistent-xss-vulnerability-in-wordpress-explained.html
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5734
[i] Fixed in: 3.9.8
[!] Title: WordPress <= 4.3 – Authenticated Shortcode Tags Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8186
Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
Reference: http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/
Reference: http://blog.knownsec.com/2015/09/wordpress-vulnerability-analysis-cve-2015-5714-cve-2015-5715/
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5714
[i] Fixed in: 3.9.9
!] Title: WordPress <= 4.3 – User List Table Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8187
Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
Reference: https://github.com/WordPress/WordPress/commit/f91a5fd10ea7245e5b41e288624819a37adf290a
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7989
[i] Fixed in: 3.9.9
[!] Title: WordPress <= 4.3 – Publish Post and Mark as Sticky Permission Issue
Reference: https://wpvulndb.com/vulnerabilities/8188
Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
Reference: http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/
Reference: http://blog.knownsec.com/2015/09/wordpress-vulnerability-analysis-cve-2015-5714-cve-2015-5715/
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5715
[i] Fixed in: 3.9.9
[!] Title: WordPress 3.7-4.4 – Authenticated Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8358
Reference: https://wordpress.org/news/2016/01/wordpress-4-4-1-security-and-maintenance-release/
Reference: https://github.com/WordPress/WordPress/commit/7ab65139c6838910426567849c7abed723932b87
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1564
[i] Fixed in: 3.9.10
[!] Title: WordPress 3.7-4.4.1 – Local URIs Server Side Request Forgery (SSRF)
Reference: https://wpvulndb.com/vulnerabilities/8376
Reference: https://wordpress.org/news/2016/02/wordpress-4-4-2-security-and-maintenance-release/
Reference: https://core.trac.wordpress.org/changeset/36435
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2222
[i] Fixed in: 3.9.11
[!] Title: WordPress 3.7-4.4.1 – Open Redirect
Reference: https://wpvulndb.com/vulnerabilities/8377
Reference: https://wordpress.org/news/2016/02/wordpress-4-4-2-security-and-maintenance-release/
Reference: https://core.trac.wordpress.org/changeset/36444
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2221
[i] Fixed in: 3.9.11
[+] WordPress theme in use: interface-pro – v1.0
[+] Name: interface-pro – v1.0
| Location: http://xxx.pl/wp-content/themes/interface-pro/
| Readme: http://xxx.pl/wp-content/themes/interface-pro/readme.txt
| Style URL: http://xxx.pl/wp-content/themes/interface-pro/style.css
| Referenced style.css: http://www.xxx.pl/wp-content/themes/interface-pro/style.css
| Theme Name: Interface Pro
| Theme URI: http://themehorse.com/themes/interface-pro
| Description: Interface Pro is a Simple, Clean and Flat Responsive Retina Ready WordPress Theme. It is easily c…
| Author: Theme Horse
| Author URI: http://themehorse.com
[+] Enumerating plugins from passive detection …
[+] No plugins found
[+] Finished: Tue Apr 19 23:54:55 2016
[+] Requests Done: 53
[+] Memory used: 5.793 MB
[+] Elapsed time: 00:00:08
Zostało przedstawione szereg błędów, który każdy może w prosty sposób wykorzystać.
Ciekawą informacją jest, że pewien url jest indeksowalny, czyli wyświetla zawartość folderów. Sprawdźmy zatem:
http://xxx.pl/wp-content/uploads/
Widzimy:
Jak wspomniałem jest to firma zajmująca się pośrednictwem HR. W poszczególnych podfolderach znajdują się CV różnych osób i każdy może poznać wrażliwe dane.
Oczywiście w tym wypadku jest to kwestia bezpieczeństwa hostingu. Prawidłowo zabezpieczony folder nie powinien umożliwiać poruszania się dowolnie w drzewie katalogów.
W bezpieczeństwie hostingu również ważne są wrażliwe dane, które nie powinny być udostępniane publicznie, takie jak wersja systemu operacyjnego Linux, wersja oprogramowania serwującego stronę czy dokładna wersja PHP.
W tym wypadku również z nagłówków odpowiedzi serwera www można odczytać, że wersją serwera www jest:
Apache/2.2.22 (Debian)
odrazu znamy też nazwę systemu operacyjnego.
Dodatkowo możemy też poznać wersję PHP jaka jest używana:
PHP/5.4.4-14+deb7u9
Informacja jest na tyle wrażliwa, że już znamy nawet dokładny release systemu operacyjnego.
Podsumowując użytkownik, który pragnie założyć własny blog, powinien być zaznajomiony z tematem bezpieczeństwa albo powierzyć dbanie o bezpieczeństwo specjalistycznej firmie.
Jeśli zainteresował Państwa artykuł i chcą Państwo skonsultować lub przeprowadzić audyt, to zapraszam do kontakt:
https://it-resource.pl/#contact