Bezpieczeństwo w sieci / własny blog

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:

wp1

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:

wp2

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