Учас­тие в bug bounty — вещь неверо­ятно увле­катель­ная, но по боль­шей час­ти сос­тоящая из рутины. Про­верить то, переб­рать это... Логич­но наг­рузить такие тас­ки на компь­ютер, но скрип­ты тоже все вре­мя при­ходит­ся писать и перепи­сывать. Боль­шие язы­ковые модели, по которым все сей­час так схо­дят с ума, могут сос­лужить здесь важ­ную служ­бу. Я решил самос­тоятель­но убе­дить­ся, какую имен­но, и, воору­жив­шись GPT-4, отпра­вил­ся на охо­ту за багами.

В статье я исполь­зую ChatGPT с моделью GPT-4. Сей­час дос­туп к ней пре­дос­тавля­ется по плат­ной под­писке сто­имостью 20 дол­ларов в месяц.

 

Разведка

 

Поиск поддоменов

По­иск скры­тых стра­ниц и под­доменов — одна из рутин­ных опе­раций при раз­ведке. Может ли нам в этом помочь ChatGPT? Я поп­росил его сге­нери­ровать скрипт для поис­ка под­доменов по наибо­лее популяр­ным источни­кам.

Зап­рос

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

От­вет
import requests
import json
import argparse
from bs4 import BeautifulSoup
# Устанавливаем аргументы командной строки
target_domain = 'https://target.com/'
# Используем сервис crt.sh для поиска поддоменов с помощью сертификатов SSL
def crtsh_search(domain):
url = f"https://crt.sh/?q=%25.{domain}&output=json"
response = requests.get(url)
data = json.loads(response.content)
subdomains = set()
for item in data:
subdomains.add(item["name_value"])
return subdomains
(...)
if name == "main":
main()

От­вет при­веден в сок­ращен­ном виде. Вот что дела­ет этот скрипт:

  1. Вы­пол­няет зап­рос к crt.sh для получе­ния спис­ка SSL/TLS-сер­тифика­тов, в которых упо­мина­ется имя ука­зан­ного домена.
  2. Про­веря­ет домен по базам инди­като­ров ком­про­мета­ции (ThreatCrowd.org).
  3. За­пус­кает брут­форс под­доменов по соз­данно­му самой ней­росетью спис­ку (www, mail, ftp и дру­гие).
  4. С помощью Google dorks ищет упо­мина­ния ука­зан­ного адре­са, затем обра­баты­вает резуль­тат и получа­ет спи­сок всех най­ден­ных под­доменов.

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

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

 

Технологии и версии

GPT-4 поможет опре­делить, какое прог­рам­мное обес­печение исполь­зует­ся на сай­те. Вот нес­коль­ко спо­собов, как это сде­лать.

  1. Под­сказ­ки по исполь­зуемым тех­нологи­ям: GPT-4 может пре­дос­тавить под­сказ­ки, методы и готовые зап­росы, что­бы опре­делить тех­нологии и их вер­сии.
  2. Со­веты по поис­ку фай­лов и дирек­торий: ней­рон­ка пред­ложит име­на фай­лов и дирек­торий, которые обыч­но свя­заны с опре­делен­ными тех­нологи­ями. Нап­ример, файл robots.txt или sitemap.xml может содер­жать информа­цию об исполь­зуемом прог­рам­мном обес­печении и его вер­сии, а стра­ницы wp-admin, wp-json выдадут нам исполь­зование WordPress.
  3. Пред­ложение скрип­тов и инс­тру­мен­тов: GPT-4 соз­даст скрип­ты и пореко­мен­дует инс­тру­мен­ты, которые спо­соб­ны опре­делить тех­нологии и их вер­сии на веб‑сер­вере.

Мож­но поп­росить ChatGPT не прос­то опре­делить исполь­зуемый софт, а соз­дать под­ходящие скрип­ты. Нап­ример, ниже при­веден скрипт, который ChatGPT соз­дал для детек­тирова­ния опре­делен­ного набора JS-биб­лиотек, исполь­зуемых на сай­те. Давай поп­робу­ем!

Зап­рос

Соз­дай JS-скрипт для опре­деле­ния исполь­зуемых на сай­те JS-биб­лиотек.

От­вет
(function() {
const libraries = [
{ name: "jQuery", object: "jQuery" },
{ name: "React", object: "React" },
{ name: "AngularJS", object: "angular" },
{ name: "Vue", object: "Vue" },
// Добавь другие библиотеки здесь, если необходимо
];
(...)
} else {
results.forEach((lib) => {
console.log(`${lib.name}: ${lib.version}`);
});
}
}
const detectedLibraries = detectLibraries();
displayResults(detectedLibraries);
})();

Как показа­ла прак­тика, такой под­ход помога­ет выявить боль­ше исполь­зуемых в дан­ный момент биб­лиотек, чем зна­ют пуб­личные сер­висы вро­де BuiltWith. Так­же он поз­воля­ет получить све­дения о тех­нологи­ях любой стра­ницы сай­та, а не толь­ко дос­тупных без авто­риза­ции. Фун­кци­ональ­ность и перечень детек­тиру­емых сге­нери­рован­ным скрип­том биб­лиотек не дотяги­вает до всем извес­тно­го Wappalyzer, одна­ко по нашему зап­росу ней­рон­ка может модифи­циро­вать скрипт и интегри­ровать в него воз­можность опре­деле­ния пуб­личных уяз­вимос­тей в выяв­ленных биб­лиоте­ках с помощью Vulners или Mitre.

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

Зап­рос

На­пиши зап­рос с исполь­зовани­ем Google dorks для опре­деле­ния веб‑сай­тов, исполь­зующих CMS Bitrix.

От­вет
inurl:/bitrix/ intitle:bitrix filetype:php intitle:"Bitrix" "bitrix_sessid"

Ес­ли ввес­ти такой зап­рос в Google, то это поз­волит получить стра­ницы:

  • inurl: Bitrix — в URL которых содер­жится /bitrix/ (харак­терный приз­нак сай­тов, работа­ющих на «Бит­рикс»);
  • intitle: Bitrix — в заголов­ках которых встре­чает­ся сло­во Bitrix;
  • bitrix_sessid — на которых исполь­зует­ся дан­ный параметр, сви­детель­ству­ющий об исполь­зовании «Бит­рикс»;
  • filetype: php — слу­жит для исклю­чения веб‑сай­тов, написан­ных на нетипич­ных для «Бит­рикс» язы­ках прог­рамми­рова­ния, но под­ходящих под про­чие парамет­ры зап­роса.
 

Поиск мисконфигов

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии