Как создавать собственные методики тестирования

Как создавать собственные методики тестирования

Основная волна интереса к тестированию пришлась на 1990-е годы и началась в Соединенных Штатах. Быстрая разработка автоматизированных систем разработки программного обеспечения (инструменты CASE) и сетевые технологии привели к росту рынка программного обеспечения и
рассмотрение вопросов обеспечения качества и надежности разрабатываемых программ. Острое усиление конкуренции среди производителей программного обеспечения потребовало особого внимания к качеству создаваемых продуктов, потому что теперь у потребителя был выбор: многие компании предлагали свои товары и услуги по достаточно разумным ценам, а значит, можно было обратиться к тому кто разработает программу не только быстро и экономично, но и качественно.

Райтапы на машинах HTB или CTF сродни детективу. Опытный пентестер быстро находит уязвимость, пишет скрипт для ее эксплуатации, и вперед! Однако в действительности этот процесс при всех удачных и неудачных попытках может занять от нескольких часов до нескольких десятков дней. Об этом не принято писать в рецензиях, потому что сам поиск далеко не такой красочный. Как на самом деле находят «нужные места» и как узнать, на что стоит обратить внимание? Для этого у самых серьезных пентестеров есть своя методика или чек-лист.

Обыкновенно процесс исследования машины включает несколько этапов.

  1. Ска­ниро­вание и сбор информа­ции (Scanning).
  2. Оп­ределе­ние уяз­вимос­тей (Enumeration).
  3. Экс­плу­ата­ция уяз­вимос­тей (Exploitation).
  4. По­выше­ние при­виле­гий (Privilege Escalation).
  5. Пос­тэкс­плу­ата­ция (Post Exploitation).
  6. Очис­тка сле­дов (House Cleaning).

Разберем каждый из них что бы знать как действовать эффективнее.

Сбор информации и сканирование

Первое, что вам нужно сделать, это восстановить исследуемую машину в исходное состояние. Для этого во всех сервисах есть опция «Вернуть» или «Сброс». Собирать информацию, не возвращая машину в исходное состояние, не стоит: нужные файлы там могут не найти, либо уже готовый эксплойт может лежать в публичной папке на FTP, что испортит вам все удовольствие и возможность получить опыт.

Еще хуже, некоторые эксплойты, такие как переполнение буфера, могут запускаться только один раз, и сканирование такой машины просто не найдет нужную вам услугу. Поэтому мы всегда возвращаем машину в исходное состояние! HTB старается не предлагать такие услуги, но вы также можете проголосовать за Revert или перезапустить машину самостоятельно, если у вас есть статус VIP.

Сканирование портов

Споры о том, как правильно сканировать порты, никогда не заканчиваются. Есть много разных скриптов, таких как Autorecon, nmapAutomator, они очень полезны, но я не рекомендую начинать с них. Потому, что всегда лучше понять, как работает та или иная утилита, чем полагаться на нее вслепую. Так что вам лучше скачать их и посмотреть исходный код, а мы будем использовать старый добрый Nmap.

Для начала мож­но прой­тись быс­трым ска­ниро­вани­ем популяр­ных пор­тов:

$ nmap x.x.x.x -v --top-ports 10 –open

Ес­ли вдруг Nmap воз­вра­щает ошиб­ку о недос­тупнос­ти хос­та, поп­робуй опцию -Pn. Пока ты раз­мышля­ешь над получен­ной информа­цией, мож­но запус­тить пол­ное ска­ниро­вание всех TCP-пор­тов.

$ nmap x.x.x.x -p- -v -sV --reason

Не забудь, сущес­тву­ют еще пор­ты UDP! Коман­дную стро­ку для их ска­ниро­вания я оставлю тебе в качес­тве домаш­него задания.

Бывают даже лабораторные машины которые могут иметь защиту от сканирования. Если вдруг, в середине сканирования, все внезапно останавливается или вылетает, поиграйте с опциями Nmap. Например, увеличьте время между сканированиями портов и уменьшите количество одновременных сканирований.

В резуль­тате всех этих дей­ствий у тебя будет информа­ция о дос­тупных на машине пор­тах.

Как создавать собственные методики тестирования

Сканирование портов

Каким образом можно улучшить свои навыки сканирования? Читайте райтапы, смотрите, какие инструменты в них используются, и пополняйте свою копилку. Я рекомендую создать отдельный репозиторий с документами и систематически создавать там свою методологию. Сейчас у меня в разделе «сканирование портов» около десятка различных методов сканирования (Nmap, masscan, скрипты и другие).

Не торопитесь сейчас искать эксплойт для VMware или Samba! Вы совершите самую большую ошибку и рискуете попасть в так называемые кроличьи норы. Тупики, которых все ужасно боятся во время экзамена OSCP: вы можете часами пытаться взломать, например, WordPress, и в конечном итоге не получить результата, так как уязвимость была в другом сервисе, но вы просто не добрались до него.

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

Обратите особое внимание на порты, которые Nmap не может однозначно идентифицировать. Также — порты, о которых вы раньше не знали, и знакомые вещи, такие как веб-серверы и FTP на нестандартных портах, таких как 9000, 5000 и другие. Обычно это перспективные с точки зрения работы сервисы, которые просто хотели скрыть от быстрого сканирования. Вот почему я рекомендую вам всегда выполнять полное сканирование всех портов TCP и быстрое сканирование базового UDP. Я видел машины, на которых уязвимая служба была скрыта в UDP.

Сервисы

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

21-й порт

Мне очень нра­вит­ся про­верять информа­цию о любых, осо­бен­но неиз­вес­тных пор­тах на сай­те speedguide.net. На экза­мене это даже помог­ло мне взять одну из машин!

Как вид­но, порт 21 обыч­но отве­чает за FTP, но за ним может находить­ся любой из извес­тных тебе FTP-сер­висов, а может и не FTP вооб­ще. Вдруг какой‑то хит­рый админ переве­сил туда SSH? Поэто­му пер­вое, что я всег­да делаю, — про­бую под­клю­чить­ся к сер­вису с помощью netcat.

$ nc -nv x.x.x.x 21

Ча­ще все­го тебя встре­тит бан­нер FTP-сер­вера, вро­де такого.

Как создавать собственные методики тестирования
При­мер отве­та FTP-сер­вера

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

На что сле­дует обра­тить вни­мание при иссле­дова­нии FTP:

  • наз­вание прог­раммы‑сер­вера и ее вер­сия;
  • раз­решен ли ано­ним­ный дос­туп;
  • нет ли чего‑то инте­рес­ного в пап­ках на сер­вере;
  • не раз­решена ли запись в какую‑нибудь пап­ку;
  • есть ли уяз­вимос­ти в этой вер­сии сер­вера.
  1. Вер­сию FTP тебе покажет nc, либо мож­но поп­робовать узнать ее через Nmap:

    $ nmap -A -v x.x.x.x -p21

    В сети есть мно­жес­тво прог­рамм, которые пыта­ются эвристи­чес­ки опре­делить вер­сию FTP-сер­вера, можешь исполь­зовать их.

  2. Те­перь под­клю­чись к сер­веру стан­дар­тным FTP-кли­ентом и про­верь ано­ним­ный дос­туп. Обыч­но это guest, ftp, anonymous. Если получи­лось — отлично. Если нет, не отча­ивай­ся — воз­можно, ты най­дешь учет­ные дан­ные поз­же или сер­вис вооб­ще не понадо­бит­ся.

  3. Ес­ли уда­лось попасть на FTP, осмотрись. Это может быть прос­то пус­тая пап­ка, а может каталог веб‑сер­вера, запиши это. Иног­да находят­ся какие‑нибудь фай­лы — скла­дируй их для даль­нейше­го изу­чения. Кста­ти, самое вре­мя най­ти и записать себе коман­ду для рекур­сивно­го ска­чива­ния всех фай­лов с FTP! Ты же не собира­ешь­ся пос­тоян­но делать это по одно­му?

  4. Про­верь, можешь ли ты записать в пап­ку хоть что‑то. Удоб­но сде­лать это коман­дой put. Но пом­ни, иног­да сер­вер дает пра­во записи, но не уда­ления! Не кла­ди туда ничего цен­ного, лабора­тор­ные машины дос­тупны всем.

  5. Вре­мя поис­кать уяз­вимос­ти. Самый прос­той и раз­решен­ный в OSCP спо­соб — исполь­зовать скрип­товые воз­можнос­ти Nmap. С них сто­ит начинать всег­да незави­симо от того, какой порт ты изу­чаешь. Давай узна­ем, какие есть скрип­ты для FTP, и запус­тим их все сра­зу. (Кста­ти, так за тебя дела­ет nmapAutomator.)

$ ls -la /usr/share/nmap/scripts/ftp*
$ nmap --script ftp-* -p21 x.x.x.x

Наш­лись воз­можные уяз­вимос­ти? Отлично! Запиши их себе, но не бро­сай­ся сра­зу же про­бовать! У нас еще столь­ко неп­роверен­ных пор­тов. Ты же не хочешь попасть в кро­личью нору? Но если боль­ше ничего не наш­лось — тоже не беда! В раз­деле «Поиск уяз­вимос­тей» я рас­ска­жу, где еще их мож­но поис­кать.

Вот неболь­шой спи­сок того, что мне встре­чалось на FTP в лабора­тори­ях и HTB.

  • FTP-сер­вер, уяз­вимый к перепол­нению буфера.
  • Дос­туп к пол­ному содер­жимому дис­ка C, где уда­лось най­ти кон­фигура­цион­ные фай­лы с логина­ми к дру­гому сер­вису.
  • Воз­можность записать файл в дирек­торию веб‑сер­вера для даль­нейше­го выпол­нения кода.
  • Directory Traversal (воз­можность читать фай­лы не толь­ко из пап­ки FTP-сер­вера).
  • И еще мно­гое дру­гое! Не забывай дописы­вать к сво­ей методи­ке удач­ные ходы.

22-й порт

Обыч­но это порт SSH, но мы же не доверя­ем чис­лам! Про­верь его с помощью nc.

$ nc -nv x.x.x.x 22

Пример ответа SSH
При­мер отве­та SSH

От­лично, это точ­но SSH! Видишь вер­сию пакета? OpenSSH_8.2p1. Даль­ше сло­ва Ubuntu-4ubuntu0.1 говорят нам о том, что это, ско­рее все­го, Ubuntu. Поис­кав в Google «openssh 8.2p1 4ubuntu0.1 version», мы можем с боль­шой долей уве­рен­ности ска­зать, что это вер­сия Focal 20.04. Запиши эту информа­цию, воз­можно, она при­годит­ся.

Те­перь нуж­но получить отпе­чаток (fingerprint) для SSH.

$ ssh root@x.x.x.x

Для чего нам эта информа­ция? Нап­ример, пос­мотреть, нет ли для это­го отпе­чат­ка извес­тно­го при­ват­ного клю­ча SSH. Обя­затель­но про­читай об уяз­вимых клю­чах SSH.

Те­перь оста­лось самое инте­рес­ное и слож­ное. Научись понимать рас­ширен­ный вывод SSH. Для это­го прос­то запус­ти SSH с клю­чом -v.

$ ssh root@x.x.x.x -v

Сна­чала ты можешь быть шокиро­ван раз­мером появив­шегося тек­ста, но он край­не важен! Изу­чи его.

По­чему это так важ­но? В лабора­тории и HTB очень час­то встре­чались машины со ста­рым SSH-сер­вером, к которо­му отка­зыва­ется под­клю­чать­ся све­жий Kali, так как он будет счи­тать алго­ритм шиф­рования уста­рев­шим и не отда­вать ключ через SSH, а сер­вер, выпущен­ный в 2014 году, счи­тает его впол­не безопас­ным. Тог­да без опции -v ты прос­то получишь отказ в дос­тупе, но никог­да не узна­ешь почему, а дос­таточ­но было прос­то добавить пару опций в стро­ку под­клю­чения. С таким я тоже стал­кивал­ся, и это один из популяр­ных воп­росов на форуме сту­ден­тов. В общем, вни­матель­но изу­чи вывод SSH с клю­чом -v и обя­затель­но в нем раз­берись!

Ес­ли у тебя есть спи­сок логинов и паролей, можешь поп­робовать подоб­рать их, нап­ример прог­раммой Hydra. Как и всег­да, запиши эти зна­ния и опро­буй их в сво­ей методи­ке! И если нашел в чьем‑то рай­тапе инте­рес­ные спо­собы работы с SSH, тоже обя­затель­но раз­берись и добавь их себе!

Что инте­рес­ного встре­чалось мне при работе с SSH?

  • Те самые «пло­хие» клю­чи SSH, которые мож­но опре­делить и подоб­рать по отпе­чат­ку.
  • Уяз­вимые клю­чи, которые мож­но подоб­рать по отпе­чат­ку пуб­лично­го клю­ча.
  • Уяз­вимость в ран­них вер­сиях SSH, поз­воляв­шая перечис­лять локаль­ных поль­зовате­лей.
  • Не­сов­падение вер­сий кли­ента и сер­вера, тре­бующее спе­циаль­ных фла­гов для работы.
  • Рас­кры­тие точ­ной информа­ции о вер­сии и ОС сер­вера, поз­воля­ющее про­изво­дить даль­нейшее иссле­дова­ние фай­лов через path traversal.

80-й порт

Са­мый популяр­ный и самый без­гра­нич­ный для иссле­дова­ния порт — имен­но на нем живут все веб‑сер­висы. Но мы пока не будем даже запус­кать бра­узер, а методич­но про­верим всю дос­тупную информа­цию!

Тут нам уже не поможет nc. Но я все рав­но рекомен­дую вна­чале запус­тить его.

$ nc -nv x.x.x.x 80

Вдруг это пря­чет­ся SSH-сер­вер на 80-м пор­те. Даль­ше про­верь заголов­ки сер­вера:

$ curl -I x.x.x.x

Там навер­няка может най­тись тип сер­вера и его вер­сия, вер­сия PHP, если он исполь­зует­ся, и дру­гая очень полез­ная информа­ция.

Как создавать собственные методики тестирования
Ин­форма­ция о сер­вере

Как видишь, на нашем при­мере сер­вер защища­ет сер­вис защиты от DDOS-атак Qrator, а стро­ка Link: <https://xakep.ru/wp-json/>; rel=https://api.w.org/ говорит нам, что сайт, ско­рее все­го, работа­ет на WordPress.

Приш­ло вре­мя заг­лянуть в исходный код стра­ницы! (Опция -L поз­воля­ет кор­рек­тно обра­баты­вать редирек­ты сер­вера.)

$ curl -i -L x.x.x.x

Здесь ты можешь поп­ракти­ковать­ся в чте­нии HTML и поис­ке с помощью grep и регуляр­ных выраже­ний. Что сле­дует искать и уметь опре­делять?

  • Вер­сию CMS и ее наз­вание.
  • Шаб­лониза­тор, на котором может быть пос­тро­ен сайт.
  • Лю­бые ком­мента­рии и вре­мен­но скры­тые ссыл­ки на дру­гие сай­ты или раз­делы.
  • Ссыл­ки на дру­гие под­домены (осо­бен­но акту­аль­но для HTB).
  • Вер­сии под­клю­чаемых биб­лиотек (иног­да поз­воля­ют кос­венно опре­делить вер­сию CMS).

Те­перь наконец запус­ти бра­узер и пос­мотри, нет ли чего инте­рес­ного. Это самая твор­ческая часть, и тут как раз нуж­но баналь­но набить руку. Читай мно­го рай­тапов и запоми­най, что и как дела­ют люди. Что нас может инте­ресо­вать здесь:

  • есть ли фай­лы robots.txt или sitemap.xml;
  • есть ли фор­мы обратной свя­зи или фор­мы аутен­тифика­ции;
  • имеются ли зак­рытые раз­делы, вари­анты регис­тра­ции или вос­ста­нов­ления пароля.

По­ищи исходный код CMS в интерне­те. Очень час­то на GitHub мож­но най­ти нуж­ную тебе CMS и понять, на какие фай­лы сто­ит обра­тить вни­мание (нап­ример, на кон­фиги), там же ты най­дешь спис­ки исправ­ленных уяз­вимос­тей.

Я исполь­зую очень удоб­ный пла­гин для Firefox Wappalyzer. Он поз­воля­ет опре­делять исполь­зуемые фрей­мвор­ки и дру­гие осо­бен­ности веб‑сер­вера.

В целом спи­сок тут прак­тичес­ки бес­конеч­ный и тянет на боль­шой месяч­ный курс или десяток ста­тей.

Обя­затель­но пос­мотри вот на эти чек‑лис­ты:

Но пом­ни, что всег­да луч­ше брать луч­шее из них и собирать свои, что­бы точ­но понимать, за что отве­чают каж­дый скрипт и коман­да!

Ни­чего инте­рес­ного не наш­лось? Самое вре­мя взять сло­варь и попытать­ся поис­кать фай­лы и скры­тые дирек­тории. Тут мож­но исполь­зовать любые любимые инс­тру­мен­ты: nikto, Gobuster, DIRB.

$ gobuster dir -t 128 -u http://x.x.x.x/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -s '200,204,301,302,307,403,500' -e

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

Что инте­рес­ного мне встре­чалось в веб‑сер­висах?

  • SQL и коман­дные инъ­екции.
  • Ин­форма­ция о датах рож­дения, поз­воляв­шая подоб­рать пароль или отве­тить на сек­ретный воп­рос в фор­ме вос­ста­нов­ления пароля.
  • XSS, поз­воля­ющая получить админ­ские сес­сии.
  • Ошиб­ки нас­трой­ки веб‑сер­вера.
  • Скрип­ты раз­работ­чика, которые вмес­те с path traversal поз­воляли най­ти фай­лы с пароля­ми и ска­чать их.
  • И мно­гое, мно­гое дру­гое.

Для XSS, обхо­да филь­тра­ции команд и дру­гих инъ­екций я очень рекомен­дую один из самых боль­ших сбор­ников полез­ных наг­рузок.

Порты 139 и 445

Это извес­тная тебе Samba. Для работы с ней сущес­тву­ет мно­жес­тво инс­тру­мен­тов, я перечис­лю лишь некото­рые из них.

$ enum4linux x.x.x.x

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

По­лучить спи­сок дос­тупных папок мож­но такой коман­дой:

$ smbclient -L //x.x.x.x -N

Ес­ли тебе нуж­но рекур­сивно пос­мотреть все пап­ки, то пиши

$ smbclient //HOST/PATH -c 'recurse;ls' PASS -U USER

Про­верь наличие извес­тных уяз­вимос­тей в SMB с помощью Nmap. EternalBlue — все еще мощ­ный инс­тру­мент.

$ nmap --script smb-vuln* -p139,445 -T4 -Pn 10.11.1.111

Вот как запус­тить уда­лен­но коман­ду с помощью SMB:

$ winexe -U username //10.11.1.111 "cmd.exe" –system

Со­веты здесь в целом похожи на советы из раз­дела о FTP. Выяс­ни, какие ресур­сы тебе дос­тупны, какие поль­зовате­ли есть на сер­вере (могут при­годить­ся при перебо­ре), нет ли полез­ной информа­ции в дос­тупных пап­ках. И, как всег­да, вни­матель­но читай рай­тапы, под­смат­ривай исполь­зуемые ути­литы, раз­бирай­ся в их работе и заноси в свою под­борку. Обя­затель­но ста­рай­ся выяс­нить, почему была исполь­зована одна ути­лита, а не дру­гая.

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

 

Поиск уязвимостей

Те­перь, ког­да у тебя есть спи­сок исполь­зуемо­го ПО с вер­сиями, самое вре­мя поис­кать извес­тные уяз­вимос­ти и готовые экс­пло­иты. В лабора­тории OSCP тебе вряд ли при­дет­ся писать собс­твен­ные экс­пло­иты, чаще все­го нуж­но мак­симум поп­равить готовые. А вот слож­ные машины HTB впол­не могут тре­бовать руч­ного написа­ния экс­пло­ита.

Где же искать экс­пло­иты? Пом­ни, что не на все уяз­вимос­ти есть готовые экс­пло­иты и не все уяз­вимость поз­воля­ют их написать. Поэто­му сто­ит начать с самой боль­шой базы дан­ных уяз­вимос­тей cvedetails.com.

Там есть поиск по вен­дору, прог­рамме, вер­сиям и дру­гим кри­тери­ям. Мой тебе совет: никог­да не прев­ращай­ся в скрипт‑кид­ди, который спо­собен толь­ко запус­тить прог­рамму и ждать резуль­тата. Про­читай CVE, пой­ми, почему та или иная прог­рамма уяз­вима. Если есть экс­пло­ит, про­верь, тре­бует ли он ком­пиляции. Можешь ли ты его соб­рать. Будет ли он работать на тво­ей сис­теме. Какие у него есть началь­ные усло­вия.

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

Где брать экс­пло­иты? Самая извес­тная база экс­пло­итов — это, конеч­но, exploit-db.com и ее кон­соль­ный вари­ант searchsploit. Раз­мещен­ные там экс­пло­иты дос­таточ­но безопас­ны для исполь­зования. Но никог­да не огра­ничи­вай­ся ей. Поищи в Google «имя прог­раммы вер­сия exploit». Очень час­то мож­но най­ти инте­рес­ные све­жие экс­пло­иты.

Нес­коль­ко полез­ных советов о поис­ке экс­пло­итов и работе с ними.

  1. На­учись в совер­шенс­тве вла­деть searchsploit. Можешь пот­рениро­вать­ся на сер­вере Apache: научись показы­вать толь­ко экс­пло­иты уда­лен­ного дос­тупа, а не выпол­нения DOS-атак, раз­дели выдачу по Apache httpd от Apache Tomcat.
  2. Поп­робуй поис­кать экс­пло­иты на GitHub с помощью Google. Пой­ми, как это луч­ше делать и как пра­виль­но филь­тро­вать резуль­таты.
  3. На­учись собирать экс­пло­иты не толь­ко под x86_64, но и под чис­тый i386. Иног­да такое может очень при­годить­ся.
  4. На­учись искать и исполь­зовать экс­пло­иты в Metasploit.
 

Повышение привилегий

Этот раз­дел впол­не бы потянул на нес­коль­ко ста­тей, поэто­му я прос­то дам тебе ссыл­ки на отличные статьи о по­луче­нии root-дос­тупа и прав адми­нис­тра­тора в Windows.

От себя добав­лю нес­коль­ко полез­ных советов и трю­ков, встре­чав­шихся мне в раз­ных ситу­ациях.

  • Инс­тру­мен­ты linPEAS и подоб­ные им полез­ны, но на экза­мена­цион­ных машинах OSCP они не находят абсо­лют­но ничего! Раз­берись, как они работа­ют, и наб­росай себе спи­сок нуж­ных команд вро­де поис­ка SUID.
  • Пос­тавь и вни­матель­но изу­чи чис­тые Windows и Linux. Тебе нуж­но понимать, какие сер­висы есть в сис­теме пос­ле уста­нов­ки, а какие туда мог­ли добавить.
  • Уви­дел неиз­вес­тную тебе прог­рамму? Обя­затель­но запиши! Очень час­то через нее мож­но получить повыше­ние при­виле­гий.
  • Вни­матель­но смот­ри на стран­ности в пап­ках sbin и bin. У меня однажды там лежал eximXX (явно ука­зана вер­сия в наз­вании), хотя в спис­ке уста­нов­ленных пакетов его не было. Конеч­но же, через него мож­но было получить рут.
  • Вни­матель­но изу­чи дос­тупные изнутри пор­ты. Очень час­то внут­ри на 127.0.0.1 есть уяз­вимый или пло­хо нас­тро­енный сер­вис.

Из очень инте­рес­ного я встре­чал в лабора­тори­ях машину с Windows NT 4.0, с дос­тупом по VNC, где пароль адми­на был записан на обо­ях рабоче­го сто­ла, но был скрыт окном логина. Нуж­но было перед­винуть окно вхо­да в сис­тему и прос­то про­читать пароль «под ков­риком».

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

 

Постэксплуатация

Этот этап очень ред­ко встре­чает­ся в отдель­ных машинах HTB, но край­не важен в лабора­тори­ях. Впро­чем, ты мог встре­тить такое, если про­ходил ввод­ные машины HTB.

Что нуж­но обя­затель­но сде­лать на этом эта­пе.

  1. Соб­рать все дос­тупные хеши паролей. Это может быть mimikatz, файл /etc/shadow, нас­трой­ки сер­висов и баз дан­ных. В общем, все пароли, до которых смо­жешь дотянуть­ся.
  2. Прос­мотри все сетевые соеди­нения. Иног­да мож­но уви­деть инте­рес­ное обще­ние с дру­гими сер­верами и най­ти пути вхо­да на них.
  3. Прос­мотри всю дос­тупную информа­цию в базах дан­ных. Там могут быть логины/пароли для дру­гих сер­веров или инте­рес­ные резер­вные копии.
  4. Собс­твен­но резер­вные копии. Не пре­неб­регай ими, и, воз­можно, най­дешь что‑нибудь важ­ное.
  5. Поль­зователь­ские пап­ки. В них могут быть те же резер­вные копии, исто­рия выпол­нения команд (нап­ример, исполь­зования пароля для под­клю­чения к БД или дру­гому сер­веру) и так далее.
  6. Не забудь о реес­тре Windows. Там могут быть пароли к VNC и дру­гим похожим сер­висам.

Обя­затель­но докумен­тируй все наход­ки. Очень час­то у тебя есть информа­ция для дос­тупа к новой машине, но ты не можешь най­ти ее. Встре­тил документ или файл RDP с паролем к новому компь­юте­ру в лабора­тории — сде­лай запись об этом! В OSCP пов­торное исполь­зование паролей — обыч­ное дело.

 

Чистка следов

Пра­вило хороше­го тона в любой лабора­тории — очис­тка машины от сво­их сле­дов. Сюда вхо­дит уда­ление любых экс­пло­итов, которые ты исполь­зовал, воз­врат в пер­воначаль­ное сос­тояние машины в лабора­тории OSCP, уда­ление всех шел­лов Metasploit. Кста­ти, в экза­мена­цион­ном отче­те OSCP это­му пос­вящен отдель­ный раз­дел.

Заключение

Мой вывод очень простой. Если вы хотите стать хорошим пентестером, привнесите последовательность в свои действия. Исследуйте операционные системы, сети, постоянно читайте новые материалы и добавляйте в свои контрольные списки и списки методов. В результате всего этого у вас разовьется определенный талант и понимание того, на что обращать внимание при осмотре следующей машины. Если вы собираетесь сдавать экзамен, он будет полезен вдвойне. Здающий нередко просто забывает проверить содержимое robots.txt из-за стресса и в итоге не берет машину. Хороший личный контрольный список поможет снизить стресс и повысить эффективность.

 

 

 
 
 
Click to rate this post!
[Total: 3 Average: 4]

Leave a reply:

Your email address will not be published.