Пентест лаборатория "Ахилесова пята"

Discussion in 'Песочница' started by Ranzo, 14 Aug 2015.

  1. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    Приветствую вас хабражители друзья. С 1 мая открыт доступ к данной лабе для всех желающих, лаба бесплатная и закрываться пока не собирается. На самом деле я думал "новички" обратят на нее внимание, но темы в песочнице не нашел Хотя времени с момента старта прошло не мало.
    Друзья, предлагаю присоединиться к прохождению. Сертификат конечно уже ни кто не получит, поезд ушел :D, но почему бы не попрактиковаться в "боевых" условиях?

    Линк на регистрацию: https://lab.pentestit.ru/



    P.S. От себя лично, могу помочь в настройке виртуалки с кали и подключения к лабе, ну и общие подсказки по прохождению (правда сам еще не все прошел:p).




    Прохождение с объяснениями (осторожно спойлеры)

    По скольку первая часть прохождения уже опубликована в сети, то, возможно, имеет смысл повторить ее на форуме, но немного дополнив подробностями, если кто то решит помочь - велкам, добавлю в первый пост. И так, начнем. Главное правило - объяснять каждый шаг, что бы даже "те кто в танке" достигли просвятления!

    После установки/настройки кали мы должны подключиться к лаборатории по vpn (как настроить кали и подключиться рассказано в этом видео так, что повторяться тут не буду. За видео скажите спасибо xelario). Теперь нужно осмотреться и собрать информацию. Ведь хакинг, ИМХО, это по большей части сбор и анализ информации и этим мы будем заниматься постоянно. Любой пентест начинается именно с того, что мы собираем информацию! Но сбор информации, как вы знаете, бывает разный. Разделим его на:

    1. Технические способы сбора - т.е. при помощи компьютера, телефона, калькулятора с получением доступа к каким-либо ресурсам или с помощью ПО которе выдает информацию не доступную из открытых источников. =)
    2. Не технические - т.е. сбор информации из публикаций в интернете, журналах, рассказах о нашей цели по телевизору, радио, лично от сотрудников.

    Начнем со второго. В легенде написано следующее:

    At this time you, professional hackers, must make a hacking of the real network of the virtual company "SecureSoft LLC", a software development. Complicating the situation is the fact high awareness in the field of information security of the company's employees. According to an agent's report of the state of the information security, IT-structure of the "SecureSoft LLC" fairly well protected from attacks. But there is a guess that vulnerabilities exist. Your goal - to discover the "Achilles heel" first and gain access to systems of the "SecureSoft LLC".

    Перевод:
    На этот раз вам, профессиональным хакерам, предстоит произвести взлом реальной сети виртуальной компании «SecureSoft LLC», занимающейся разработкой программного обеспечения. Ситуацию усложняет факт высокой осведомленности в области ИБ сотрудников компании. Согласно отчету наших агентов о состоянии информационной безопасности компании, ИТ-структура «SecureSoft LLC» достаточно хорошо защищена от атак. Однако, есть предположение, что уязвимые места все же имеются. Ваша цель — первыми обнаружить «Ахиллесову пяту» и получить доступ к системам «SecureSoft LLC».

    Что же интересного мы можем узнать? Ну, во первых ломать мы будем не частное лицо, а некую организацию, а значит, мы уже можем предположить, что у них могут быть своя корпоративная электропочта и "стандартизированные" емейлы, ещё какие-нибудь корпоративные ресурсы или что-то подобное. Организация "высоко осведомлена в области ИБ" т.е. защита хорошая (но это прямо в легенде написано - ваш Кеп :p).

    Первое что приходит на ум - известен IP, так что с него и начнем. Открываем браузер и ..... видим сайт по этому адресу. Внезапно, не правда-ли? :D
    Что нам может дать сайт. Ну, на самом деле много, но обо всем по порядку. В первую очередь осматриваем его визуально, залезаем на все его странички и т.д. Ищем что-нибудь полезное.
    Но находим только пасхалочку в виде надписи:

    Welcome to our testlab =) glad to see you
    перевод:
    Добро пожаловать в нашу лабораторию =) рады видеть Вас

    Еще видим поля для ввода, т.е. возможно существут уязвимости XSS и т.д. но пока нам это не интересно. Давайте лучше посмотрим на страничку "изнутри", открываем в html редакторе. Спрятал под спойлер, так как много текста =)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta content="true" name="mssmarttagspreventparsing" />
    <meta http-equiv="imagetoolbar" content="no" />
    <title>Test.lab</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />

    <!-- IE fixes -->
    <!--[if IE 7]>
    <style type="text/css">
    #logo {top:50px;}
    #menu {margin:50px 0 0 500px;}
    </style>
    <![endif]-->
    <!--[if lte IE 6]>
    <style type="text/css">
    #hdl {margin:0px 0 0 250px;}
    #logo {top:50px;}
    #menu {margin:50px 0 0 500px;}
    </style>
    <script src="js/DD_belatedPNG_0.0.7a-min.js" type="text/javascript"></script>
    <script type="text/javascript">
    DD_belatedPNG.fix('#logo, .mh, .mw, .mt, .mi, .rss_twitt, .rss, #TwitterCounter, .pop_posts');
    </script>
    <![endif]-->


    <script type="text/javascript">
    /*
    * Simple JS function for setting the search value
    */
    function clS(t){
    var srch = document.getElementById('s'), val = srch.value.toString().toLowerCase(), re = /^\s+$/;
    if(t) {
    if(val == 'Search' || val == 'search'){
    srch.value = '';
    }
    } else {
    if(val == 'Search' || val == 'search' || val == '' || re.test(val)) {
    srch.value = 'Search';
    }
    }
    }
    </script>


    </head>

    <body>
    <!-- Wrap Div -->
    <div id="wrap">

    <!-- Header -->
    <div id="hdr">

    <!-- Top Menu -->
    <div id="hdl">
    </div>

    <!-- Search form -->
    <form id="search_form" method="get" action="">
    <input class="search_field" type="text" value="Search" onfocus="clS(1);" onblur="clS(0);" name="s" id="s" />
    <input class="search_button" type="submit" value="" id="searchsubmit" />

    </form>

    <!-- Logo -->
    <div id="logo">
    <a href="index.php"></a>
    </div>

    <!-- Main Menu -->
    <div id="menu">
    </div>

    </div>


    <!-- Container -->
    <div id="cnt">

    <!-- Left Container -->
    <div id="lcnt">

    <!-- Post -->
    <div class="post">

    <!-- Post Details -->
    <div class="post_inf">

    <span>October 13</span><br />

    </div>
    <div>
    <h1><a href=''>Third state</a></h1><img src='images/art_pic1.jpg' alt='art_pic1' /><p>Welcome to our testlab =) glad to see you</p> </div>
    </div>



    <h2>Post your comments</h2>

    <!-- Comment Form -->
    <form id="cmnt_frm" method="post" action="">
    <p><input type="text" name="author" size="22" tabindex="1" id="author"/><label>Name <span>(required)</span></label></p>
    <p><input type="text" name="email" size="22" tabindex="2" id="email"/><label>Mail <span>(will not be published) (required)</span></label></p>
    <p><input type="text" name="url" size="22" tabindex="3" id="url"/><label>Website</label></p>
    <p>
    <textarea name="comment" cols="65" rows="10" tabindex="4" id="comment"></textarea>
    </p>
    <p>
    <input type="submit" name="submit" value="Post comment" tabindex="5" id="submit"/>
    </p>

    </form>

    </div>

    <!-- Right Container -->
    <div id="rcnt">
    <div class="rss_twitt">
    <!-- RSS Box -->
    <a href="http://feeds.feedburner.com/DryIconsFreeGraphics" class="rss"><img height="26" width="88" alt="" style="border: 0pt none ;" src="http://feeds.feedburner.com/~fc/DryIconsFreeGraphics?bg=DEDEDC&amp;fg=444444&amp;anim=0"/></a>
    <!-- Twitter Counter Box -->
    <script type="text/javascript" language="JavaScript" src="http://twittercounter.com/embed/dryicons/444444/DEDEDE"></script>
    </div>

    <!-- Sponsored Ads -->
    <h2>Sponsored Ads</h2>

    <div class="l_lnk">

    <a href="#"><img src="images/sponsor_ads1.jpg" alt="spon_ad_1" /></a>
    <a href="#"><img src="images/sponsor_ads2.jpg" alt="spon_ad_2" /></a>
    <a href="#"><img src="images/sponsor_ads3.jpg" alt="spon_ad_3" /></a>
    <div>
    <a target="_blank" href="http://dryicons.com/advertise">Advertise Here</a>
    </div>

    </div>

    <!-- Popular Wallpapers -->
    <h2>Popular Wallpapers</h2>

    <a class="wall" href="#"><img src="images/pop_wall1.jpg" alt="pop_wall_1" /></a>
    <a class="wall" href="#"><img src="images/pop_wall2.jpg" alt="pop_wall_2" /></a>

    <!-- Popular Posts -->
    <h2>Popular Posts</h2>

    <a class="pop_posts" href="#">Logo Design Process Tutorial</a>
    <a class="pop_posts" href="#">Great use of pop music in great films</a>
    <a class="pop_posts" href="#">Icon design tutorial: How to make a Calendar icon</a>
    <a class="pop_posts" href="#">1st Anniversary and Graphics Giveaway Winners</a>
    <a class="pop_posts" href="#">Smashing Magazine and DryIcons collaboration</a>

    </div>

    <br style="clear: both;"/>

    </div>

    </div>

    <!-- Footer -->
    <div id="foo">

    <!-- Footer Container -->
    <div id="foo_d">

    <!-- Footer Menu -->
    <div id="foo_menu">


    </div>

    </div>

    </div>
    <!-- TASK -->
    <!-- add email -->
    <!-- [email protected] -->
    </body>

    </html>
    Заметили что-нибудт интересное? Ой,ой,ой что тут у нас, емейл адрес в самом низу. Очень глупо, ну да ладно, запишем в блокнотик. =)

    Остановимся пока на этом и перейдем к техническому сбору информации. C чего же начать, подумает новичек. И тут вспомнит, что есть такая програма Nmap.
    nmapсвободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб) Все подробности ее использования есть в этом мануале (радуйтесь, он на русском). nmap уже есть в Кали, так что качать ни чего не придеться. Попробуем ей воспользоваться. Для этого вызовем эту утилиту и зададим ей адрес сканирования.

    Code:
    nmap 192.168.101.5
    Видим следующее:

    Code:
    Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2015-08-16 19:06 MSK
    Nmap scan report for 192.168.101.5
    Host is up (0.17s latency).
    Not shown: 993 filtered ports
    PORT  STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    80/tcp  open  http
    443/tcp  open  https
    8080/tcp open  http-proxy
    8100/tcp open  xprint-server
    8443/tcp open  https-alt
    
    Отлично, есть открытые порты. Запишем в блокнотик =) но не будем останавливаться на достигнутом.

    По умолчанию, Nmap сканирует все порты до 1024 включительно, а также все порты с большими номерами упомянутыми в файле nmap-services для протокола, по которому идет сканирование (вот сылочка на русскоязычный мануал по Nmap, где это написано), но ведь может быть и так, что не только стандартные порты используются компанией SecureSoft LLC. По этому проверим первые 5000 портов, так, на всякий случай.

    Code:
    nmap 192.168.101.5 -p1-5000

    Значение ключа -p задает диапазон портов, которые просканирует Nmap, т.е. в данном случае сканировать будет с 1 до 5000 порта. Посмотрим что это нам даст:

    Code:
    Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2015-08-17 00:16 MSK
    Nmap scan report for 192.168.101.5
    Host is up (0.14s latency).
    Not shown: 4995 filtered ports
    PORT  STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    80/tcp  open  http
    443/tcp  open  https
    3121/tcp open  unknown
    
    Nmap done: 1 IP address (1 host up) scanned in 62.34 seconds
    


    Ухты, мы нашли еще один открытый порт под номером 3121. Так же запишем в блокнотик.

    Теперь у нас есть много инфы. Давайте ее анализировать. Нет, я понимаю, что половина из вас уже догадалась о следующем шаге, но ведь это раздел для новичков, будем следовать правилу, что все нужно объяснить.

    И так, у нас есть емейл адрес и куча открытых портов. А помните я говорил, что у этой конторы может быть своя почта? Смотрите ка, а ведь и в правду, есть 25 smtp порт. К тому же емейл выглядит как [email protected], и состоит из имени и фамилии сотрудника через точку, да и почта действительно корпоративная, раз @securesoft.lab. Рискнем побрутить?

    Для брута будем использовать гидру, естесственно консольную, без гуя, мы же труЪ хакиры :p:D

    THC-Hydra - распараллеленый взломщик паролей к различным сервисам (FTP, POP3, IMAP, Telnet, HTTP Auth, NNTP, VNC, ICQ, PCNFS, CISCO и др.) для UNIX платформ. С помощью этой утилиты вы можете атаковать несколько сервисов одновременно.
    В основе программы лежит модульная структура. Сейчас с помощью гидры пароль можно подобрать к более чем 30 протоколам, включая telnet, ftp, http, https, smb, несколькими СУБД, и т.д. Кстати, THC-Hydra брутит и SSH, но для этого требуется наличие библиотеки libssh. -


    - это определение с секлаба, не знаю можно ли давать сылку на этот ресурс, так что гуглите сами.

    А пароли возьмем джоновские (имееться в виду словарь, который есть по умолчанию в программе John the Ripper) качать словарь не нужно, он уже есть в Кали, как и сама программа. Словарь лежит в директории John`а. Поехали:

    Code:
    hydra -l [email protected] -P /usr/share/john/password.lst smtp://192.168.101.5


    Объясню ключи гидры, но вы и сами можете их узнать вызвав гидру (hydra) вообще без ключей.
    -l - указываем известный логин
    -P - путь к словарю с паролями
    smtp:// - сервис, который будем брутить,
    а после него известный IP`шник 192.168.101.5
    Так как smtp на стандартном порту 25, то указывать порт отдельно не нужно.

    Теперь ждем некоторое время и ......

    Code:
    Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
    
    Hydra (http://www.thc.org/thc-hydra) starting at 2015-08-16 19:58:35
    [INFO] several providers have implemented cracking protection, check with a small wordlist first - and stay legal!
    [WARNING] Restorefile (./hydra.restore) from a previous session found, to prevent overwriting, you have 10 seconds to abort...
    [DATA] max 16 tasks per 1 server, overall 64 tasks, 3559 login tries (l:1/p:3559), ~3 tries per task
    [DATA] attacking service smtp on port 25
    [STATUS] 349.00 tries/min, 349 tries in 00:01h, 3210 todo in 00:10h, 16 active
    [STATUS] 326.00 tries/min, 978 tries in 00:03h, 2581 todo in 00:08h, 16 active
    [25][smtp] host: 192.168.101.5  login: [email protected]  password: 123qwe
    
    :eek: да не может быть. У человека работающего в ИТ, и "осведомленного в ИБ" пароль от почты 123qwe? Нет ,нет, нет, я отказываюсь в это верить. Но это правда жизни и такое на самом деле случается. В блокнотик пароль уже записали? Тогда продолжим.

    Применить полученные данные мы можем все по тому же адресу, но с другим портом, вы же не зря их записывали. Так что в строке адреса браузера пишем:

    Code:
    http://192.168.101.5:8100/
    И видим веб интерфейс почты =) пробуем полученный логин и сбрученый пароль. Действительно подходит! Это хорошо. Внутри находим только одно письмо, но зато какое !!!! имена и фамилии сотрудников этой конторы. Проанализируем наши данные: мы знаем как формируеться логин для почты (имя.фамилия@securesoft.lab), а значит количество целей для брута многократно возрастает.

    Алгоритм следующий: формируем логин-лист, скармливаем гидре, ждем результат. Команда следующая:

    Code:
    hydra -L /home/login.txt -P /usr/share/john/password.lst smtp://192.168.101.5
    Только на этот раз меняем ключ -l на -L, так как у нас не один логин, а целый набор. И указываем путь к сформированному нами файлу (login.txt).

    Гидра, через небольшой промежуток времени сообщит нам, что:

    Code:
    Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
    
    Hydra (http://www.thc.org/thc-hydra) starting at 2015-08-16 20:20:49
    [INFO] several providers have implemented cracking protection, check with a small wordlist first - and stay legal!
    [WARNING] Restorefile (./hydra.restore) from a previous session found, to prevent overwriting, you have 10 seconds to abort...
    [DATA] max 16 tasks per 1 server, overall 64 tasks, 3559 login tries (l:1/p:3559), ~3 tries per task
    [DATA] attacking service smtp on port 25
    [25][smtp] host: 192.168.101.5  login: [email protected]  password: 1q2w3e
    1 of 1 target successfully completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2015-08-16 20:21:42
    
    Я не верю своим глазам!!! :eek::eek: Второй человек связанный с ИБ и пароль, который невозможно назвать сложным. Будем считать, что нам везет, у нас хорошая карма и вообще =)

    Проверяем почту и в сохраненных письмах находим заветный токен. Вводим его на сайте лаборатории и считаем себя королями мира и труЪ хацкерами. Но радуемся не долго, так как это только начало пути и первое задание из десяти.

    to be continued...
     
    #1 Ranzo, 14 Aug 2015
    Last edited: 17 Aug 2015
    soul-river likes this.
  2. maxim2142

    maxim2142 Member

    Joined:
    31 May 2010
    Messages:
    16
    Likes Received:
    10
    Reputations:
    3
    Присоединяюсь, решил попробовать и я свои силы :)
     
  3. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    Было бы неплохо если бы ты снял видео с настройкой с кали и подключения к лабе :)
     
  4. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    ок, могу заняться, если действительно нужно. Но боюсь, что я буду не оригинален, таких видео много =)
     
  5. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    уже нашел ман. Для всех желающих видео ниже
     
    Ranzo likes this.
  6. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    =) это с курсов ZS:A
    Кста в видео используеться вмвер воркстейшн, но на самом деле и на виртуалбоксе все норм пашет, так что, тут уж на ваш выбор.
     
  7. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    извечное противостояние вмвер воркстейшн VS virtualbox ;)
     
  8. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    Я правильно понял, что логин и пароль от vpn - это они же при регистрации ?
     
  9. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    #9 Ranzo, 16 Aug 2015
    Last edited: 16 Aug 2015
    xelario likes this.
  10. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    Обновил первый пост
     
  11. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    сделал как на видео описано. Пишет permission denied. У меня одного глючит?
     
  12. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    а где ты взял файл с ключом и пароль?
     
  13. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    залогинился на сайте, а потом под pass.txt
     
  14. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    так, я кажеться понял в чем ту тебя трабла.
    Ты создал 3 файла: lab.ovpn pass.txt и ovpn.sh
    затем в консоли выполняешь
    Code:
    sh /opt/pentestit/ovpn.sh
    консоль тебе отвечает
    Code:
    Initialization Sequence Completed

    На этом все =) Доступ к 192.168.101.5 у тебя есть, а вот подключиться по ssh это уже одно из заданий лаборатории =)
     
  15. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    если завтра будет время , могу запилить видео все-таки, оаз вопросы по подключению остаются, но, ИМХО, оно того не стоит, должно быть все понятно и так
     
  16. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    Code:
    root@kali : /opt/pentestit# ./ovpn.sh
    bash: ./ovpn.sh:Permission denied 
    вот что у меня. Если это задание лабы, то лучше скажи сразу:D:cool:
     
  17. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    проверяй файл ключа, может быть не все скопировал, еще проверь наличие лишних пробелов в pass.txt
     
    #17 Ranzo, 16 Aug 2015
    Last edited: 16 Aug 2015
  18. -bI-

    -bI- Member

    Joined:
    25 Aug 2012
    Messages:
    103
    Likes Received:
    11
    Reputations:
    0
    Ну как так получилось
    nmap 192.168.101.5 -p1-5000
    Code:
    Ухты, мы нашли еще один открытый порт под номером 8443

    увидел порт 8080, 8100, 8443 ?
     
  19. Ranzo

    Ranzo New Member

    Joined:
    30 Jun 2015
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    сори, по невнимательности написал, уже поправил =)
     
  20. xelario

    xelario Member

    Joined:
    7 Aug 2013
    Messages:
    88
    Likes Received:
    37
    Reputations:
    0
    все правильно ввожу, хз почему не получается залогиниться