• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Анализ атаки на Premint

вавилонец

CPU register
Пользователь
Регистрация
17.06.2021
Сообщения
1 116
Реакции
1 265
Оригинальная статья
Переведено специяльно для xss.pro
Камнями кидать в Jolah Milovski


1659076238939.png

Детали атаки

Открыв страницу проекта на Premint, мы видим, что на страницу внедрен cd.min.js. Не стек вызовов, а js, созданный [boomerang.min.js](https://s3-redwood-labs.premint.xyz/ theme/js/boomerang.min.js), где доменное имя s3-redwood-labs-premint-xyz.com перестало парситься и не могло нормально работать.

1659076622700.png


При запросе Whois доменное имя зарегистрированно в Tucows Domains Inc 07-16-2022:

1659076665076.png


При обращении к virustotal.com видим:

1659076776378.png


Глядя на исходный код, мы замечаем, что boomerang.min.js — это библиотека пользовательского интерфейса, которая использовалась Premint:

1659076801035.png



js находится под доменным именем s3-redwood-labs.premint.xyz, поэтому мы предполагаем:

- что существует уязвимость в интерфейсе загрузки файлов, которая позволяет загрузить любой файл на любой Path (распространенная веб-уязвимость).
- хакеры смогли внедрить вредоносный код после получения доступа к Amazon S3.
- эта библиотека стороннего производителя была повреждена в результате цепной атаки

Загружая код boomerang.min.jjs, мы замечаем, что фронт-энд отображает нормальную кодировку, однако в конце имеется зашифрованный слой кода:

1659076899817.png


Это код, отвечающий за внедрение кода s3-redwood-labs-premint-xyz.com/cdn.min.js на страницу:

Вредоносный код — cdn.min.js

1659076952709.png


1659076961506.png


1659076971670.png


По содержимому кода видно, что активы NFT пользователя были запрошены путем вызова интерфейса dappradar.com (в прошлом мы также видели, как вредоносные веб-сайты запрашивали пользовательские активы через Debank, Opensea API и т. д.). ).

Вот что происходит, если пользователи владеют соответствующими NFT:

1659077009304.png


1659077017307.png


Пользователей обманом заставляли одобрять вредоносные контракты под предлогом двухэтапной проверки кошелька. Нажав «одобрить», пользователи инициируют setApprovalForAll и авторизуют пользователей на адрес, возвращенный их внутренним интерфейсом (злоумышленники обычно делают это, чтобы увеличить стоимость блоков, они в основном перенаправляют и контролируют каждый адрес в течение 200 транзакций).
Как только кто-то одобрит функцию, злоумышленник также вызовет код мониторинга, чтобы сообщить себе, что кто-то одобрил функцию:

1659077057222.png


Если у пользователя нет NFT, он попытается напрямую инициировать запрос токена и перевести любой ETH, который может быть в кошельке:

1659077082892.png


В дополнение ко всему этому, этот метод шифрования имени переменной кода, начинающегося с _0xd289 _0x, был замечен на других фишинговых веб-сайтах, таких как play-otherside.org и thesaudisnfts.xyz.

Инициация setApprovalForAll будет передавать ETH напрямую на основе активов пользователей и запрещает пользователям использовать инструменты разработчика для устранения этих проблем:

Предохраняемся ;)

Итак, как это может быть предотвращено для обычного пользователя? На текущем этапе предупреждение о риске для MetaMask ERC 721 «setApprovalForAll» уступает ERC20.

1659077469002.png


Даже если пользователи не могут осознать риск такого поведения, обычному пользователю все равно важно быть осторожным при взаимодействии с любыми неизвестными контрактами, особенно при просмотре транзакций, которые включают «Утверждение». Также важно проверить, не содержат ли недавние транзакции этих адресов какие-либо ненормальные действия (например, «safeTransferFrom»). Всегда дважды проверяйте перед авторизацией любые транзакции!

Этот тип атаки был похож на тот, когда Coinzilla использовала рекламу для внедрения вредоносных атак на Etherscan, поэтому мы задаемся вопросом, можно ли это предотвратить?

1659077523633.png


Например, поведение и характеристики некоторого известного вредоносного js-кода:
- Метод шифрования, используемый в коде
- Любые характеристики ключа кода, которые являются вредоносными
- Отладка кода
- Использование вызовов opensea, debank, dappradar и других API для запроса пользовательских активов.

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


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх