#HACK
Собираю uni-fork DEX в разных EVM сетях, решил затестить TRON (он как бы EVM-совместимый, но с оговорками). Чтобы читать блокчейн нужно апи ключ, который получить пока что нельзя, не дает зарегистрироваться по email-password.
Пошел в официальный дискорд сервер, спросил что за ошибка.
Мне написало два человека,
1. «Вы выиграли 13 000$»
2. «Простите за неудобства, я скину вам ссылку, вы авторизуетесь через трон кошелек и все починится, ок?»
Увидел раздел на сервере, где разработчики публикуют свои портфолио текстом, написал одному:
⁃ Скинул заряжений гитхаб профиль
⁃ Первый раз уклонился от вопроса, «как убедиться что это вы с дискорде и гитхабе»
⁃ Второй раз предложил картинку скинет, но я предложил подписаться на мой гитхаб на пару минут и он раскололся
- Сейчас готовил скриншот, а он удалил ссылку на гитхаб
Такие дела)
Собираю uni-fork DEX в разных EVM сетях, решил затестить TRON (он как бы EVM-совместимый, но с оговорками). Чтобы читать блокчейн нужно апи ключ, который получить пока что нельзя, не дает зарегистрироваться по email-password.
Пошел в официальный дискорд сервер, спросил что за ошибка.
Мне написало два человека,
1. «Вы выиграли 13 000$»
2. «Простите за неудобства, я скину вам ссылку, вы авторизуетесь через трон кошелек и все починится, ок?»
Увидел раздел на сервере, где разработчики публикуют свои портфолио текстом, написал одному:
⁃ Скинул заряжений гитхаб профиль
⁃ Первый раз уклонился от вопроса, «как убедиться что это вы с дискорде и гитхабе»
⁃ Второй раз предложил картинку скинет, но я предложил подписаться на мой гитхаб на пару минут и он раскололся
- Сейчас готовил скриншот, а он удалил ссылку на гитхаб
Такие дела)
#HACK
Скам-токен - смарт-контракт, основанный на интерфейсе ERC20, с которым конечный пользователь взаимодействует как с обычным токеном (BNB,USDT). Но возможны разные хитрости для обмана пользователей, разберем на примере токена SCAM:
- Контракт разрешает направления обмена BNB->SCAM но запрещает SCAM->BNB. За счет дикой эмиссии фантиков SCAM можно создать искусственный, очень привлекательный курс обмена (сверх дешевый или сверх дорогой)
- Контракт разрешает обмен своего токена в оба направления, но в один прекрасный момент админ щелкает переключателем и контракт становится тыквой, когда только админ может обменять свои токены, а «инвесторы» остаются ни с чем
- Контракт не виден конечному пользователю, но обладает привлекательными характеристиками для «перелива ликвидности», когда есть две пары BNB-SCAM в разных DEX с разным курсом обмена. Бот, работающий по стратегии сандвича покупает SCAM но продать уже не в состоянии, админ токена выводит заработок
- Зачастую в эксплорерах типа bscscan у своего кошелька видно всякие малоизвестные токены с кучей циферок, будто вот так забесплатно пользователю перевели миллионы долларов. В действительности это способ пиарить свой скам-токен, который в лучшем случае уже исполнил свое предназначение, в худшем еще принимает новичков в свои объятия. Например, отправляем SCAM всем пользоветелям блока 123123 на сумму 100$ (наш искусственный курс), пользователи это видят, но чтобы получить право тратить SCAM им нужно совершить покупку на 50$, они платят, а обменять все равно не могут.
Скам-токен - смарт-контракт, основанный на интерфейсе ERC20, с которым конечный пользователь взаимодействует как с обычным токеном (BNB,USDT). Но возможны разные хитрости для обмана пользователей, разберем на примере токена SCAM:
- Контракт разрешает направления обмена BNB->SCAM но запрещает SCAM->BNB. За счет дикой эмиссии фантиков SCAM можно создать искусственный, очень привлекательный курс обмена (сверх дешевый или сверх дорогой)
- Контракт разрешает обмен своего токена в оба направления, но в один прекрасный момент админ щелкает переключателем и контракт становится тыквой, когда только админ может обменять свои токены, а «инвесторы» остаются ни с чем
- Контракт не виден конечному пользователю, но обладает привлекательными характеристиками для «перелива ликвидности», когда есть две пары BNB-SCAM в разных DEX с разным курсом обмена. Бот, работающий по стратегии сандвича покупает SCAM но продать уже не в состоянии, админ токена выводит заработок
- Зачастую в эксплорерах типа bscscan у своего кошелька видно всякие малоизвестные токены с кучей циферок, будто вот так забесплатно пользователю перевели миллионы долларов. В действительности это способ пиарить свой скам-токен, который в лучшем случае уже исполнил свое предназначение, в худшем еще принимает новичков в свои объятия. Например, отправляем SCAM всем пользоветелям блока 123123 на сумму 100$ (наш искусственный курс), пользователи это видят, но чтобы получить право тратить SCAM им нужно совершить покупку на 50$, они платят, а обменять все равно не могут.
#HACK
19 часов назад произошла атака на мост между harmony.one-ethereum блокчейнами. Атакующий получил примерно 100 000 000$ в сети эфириума.
https://twitter.com/harmonyprotocol/status/1540110924400324608
Почитал, что делали три адреса атакующего:
первый - распределил ETH для комиссий между тремя адресами, на этот адрес приходили разные токены от контракта моста
второй и третий - помогали обменивать полученные токены USDC/USDT/… на ETH по частям, чтобы не спровоцировать резкого дисбаланса ликвидности в парах
В итоге атаки на первом адресе 85,867 ETH.
В эфириум сети мост представляет из себя два смартконтракта:
Harmony ERC20 Bridge - хранил все токены, любой пользователь мог пополнять его, чтобы перевести токены в сеть harmony. Но выводить из контракта может только Multisig контракт с тремя владельцами.
В общем и целом, на стороне эфириум блокчейна проблем не замечено.
Github bridge репозиторий
Осталось проверить такие векторы атаки как:
- в сети harmony что-то эдакое произошло
- оракула-владельца-multisig ввели в замешательство программно (например перезаписали получателя транзакцией)
19 часов назад произошла атака на мост между harmony.one-ethereum блокчейнами. Атакующий получил примерно 100 000 000$ в сети эфириума.
https://twitter.com/harmonyprotocol/status/1540110924400324608
Почитал, что делали три адреса атакующего:
первый - распределил ETH для комиссий между тремя адресами, на этот адрес приходили разные токены от контракта моста
второй и третий - помогали обменивать полученные токены USDC/USDT/… на ETH по частям, чтобы не спровоцировать резкого дисбаланса ликвидности в парах
В итоге атаки на первом адресе 85,867 ETH.
В эфириум сети мост представляет из себя два смартконтракта:
Harmony ERC20 Bridge - хранил все токены, любой пользователь мог пополнять его, чтобы перевести токены в сеть harmony. Но выводить из контракта может только Multisig контракт с тремя владельцами.
В общем и целом, на стороне эфириум блокчейна проблем не замечено.
Github bridge репозиторий
Осталось проверить такие векторы атаки как:
- в сети harmony что-то эдакое произошло
- оракула-владельца-multisig ввели в замешательство программно (например перезаписали получателя транзакцией)
#HACK
Как потерять средства:
⁃ Дать erc20 аппрув не проверенному контракту
⁃ Использовать в своем контракте проверку доступа по tx.origin, а не msg.sender и отправить левому контракту транзакцию, который абузит tx.origin
⁃ Посетить фишинговый сайт
⁃ Подхватить вирус-стилер-логгер который может узнать пароль и скопировать данные расширения metamask для последующей дешифровки
⁃ Хранить сидфразу в одном месте, к которому потерян доступ
⁃ Идти во фьючерсы с плечом без опыта
Как потерять средства:
⁃ Дать erc20 аппрув не проверенному контракту
⁃ Использовать в своем контракте проверку доступа по tx.origin, а не msg.sender и отправить левому контракту транзакцию, который абузит tx.origin
⁃ Посетить фишинговый сайт
⁃ Подхватить вирус-стилер-логгер который может узнать пароль и скопировать данные расширения metamask для последующей дешифровки
⁃ Хранить сидфразу в одном месте, к которому потерян доступ
⁃ Идти во фьючерсы с плечом без опыта
#HACK
Как устроен скам токен Tech от инфлюенсера Исса (55к подписчиков в тг)
Контракт:
1. Позволяет покупать Tech в любое время
2. Продать можно через 48 часов с момента последней покупки.
3. Владелец контракта может продавать без задержки в 48 часов.
4. Напечатать больше монет нельзя
5. Похож на грубый copy-paste, когда комментарии одни а реальные параметры другие и заложены в коде
Сайт:
1. Голословно заявляется о крупных покупках фондами, что вот вот и опубликуют
2. Сайт состоит из одной страницы, где есть ссылки-пустышки и много обещаний без доказательств
Как подготавливалась аудитория:
1. В течении 1-6 месяцев публиковались посты про торговлю и обзор токенов. (только после Tech в комментах выясняется что 6 месяцев назад были подобные инциденты)
2. Закупалась реклама в тг каналах
3. Автор провел голосование и решил, что надо бы завести публичный портфель для инвестиций
4. Купить btc, etc потому что ... на 10%
5. Купить Tech на 50% и 40% от депозита, потому что фейковый твит от twitter@cz_binance говорит что "я в Tech"
6. Показывать как круто растет токен. Действительно, если никто кроме админа не может продать за 24часа, то рост будет стремительным). И если админ не продает кучу tech за busd а изымает собственную ликвидность, то красивый график роста цены не прерывается
Токеномика:
1. Всего напечатано 100кк монет
2. Разделить на 4 кошелька, по 25кк каждый (холдеры, кошелек1, 2, 3, 4)
3. Создать pancakeswap пару ~1kk busd к 80kk Tech (в пике было 2.4kk busd, потом 1.5kk busd)
4. Дождаться х2-х3 и продать половину LP токенов и получить обратно свои 1kk+ busd
Мысли вслух:
1. Люди могут купить такую шляпу по усталости
2. Но обычно потому что факт-чекинг для лохов.
3. Легче переложить отвественность за выбор и проверку на какого-то инфлюенсера
4. На момент поста 1972 холдера и 3461 транзакций на общую сумму более 1kk busd.
5. Если большинство покупателей не способно проверить первые 20 строк кода контракта, то они легкая мишень для подобных обманов..
Продолжение следует…
Как устроен скам токен Tech от инфлюенсера Исса (55к подписчиков в тг)
Контракт:
1. Позволяет покупать Tech в любое время
2. Продать можно через 48 часов с момента последней покупки.
3. Владелец контракта может продавать без задержки в 48 часов.
4. Напечатать больше монет нельзя
5. Похож на грубый copy-paste, когда комментарии одни а реальные параметры другие и заложены в коде
Сайт:
1. Голословно заявляется о крупных покупках фондами, что вот вот и опубликуют
2. Сайт состоит из одной страницы, где есть ссылки-пустышки и много обещаний без доказательств
Как подготавливалась аудитория:
1. В течении 1-6 месяцев публиковались посты про торговлю и обзор токенов. (только после Tech в комментах выясняется что 6 месяцев назад были подобные инциденты)
2. Закупалась реклама в тг каналах
3. Автор провел голосование и решил, что надо бы завести публичный портфель для инвестиций
4. Купить btc, etc потому что ... на 10%
5. Купить Tech на 50% и 40% от депозита, потому что фейковый твит от twitter@cz_binance говорит что "я в Tech"
6. Показывать как круто растет токен. Действительно, если никто кроме админа не может продать за 24часа, то рост будет стремительным). И если админ не продает кучу tech за busd а изымает собственную ликвидность, то красивый график роста цены не прерывается
Токеномика:
1. Всего напечатано 100кк монет
2. Разделить на 4 кошелька, по 25кк каждый (холдеры, кошелек1, 2, 3, 4)
3. Создать pancakeswap пару ~1kk busd к 80kk Tech (в пике было 2.4kk busd, потом 1.5kk busd)
4. Дождаться х2-х3 и продать половину LP токенов и получить обратно свои 1kk+ busd
Мысли вслух:
1. Люди могут купить такую шляпу по усталости
2. Но обычно потому что факт-чекинг для лохов.
3. Легче переложить отвественность за выбор и проверку на какого-то инфлюенсера
4. На момент поста 1972 холдера и 3461 транзакций на общую сумму более 1kk busd.
5. Если большинство покупателей не способно проверить первые 20 строк кода контракта, то они легкая мишень для подобных обманов..
Продолжение следует…
InVM - изнутри о Web3
Ликвидность из пары изъята, с 1.8кк busd сейчас 6к. Появилась единственная продажа токенов от владельца скамины https://bscscan.com/tx/0x5e562602336a37ad41be40ad35de43b34821e03a0fea41dfd7e027c716606603 на 77173 busd Пара
#HACK
Вероятный вектор обхода блокировки на продажу до роста цены:
Контекст:
1. Так как пара токена добавлена в исключения, она всегда отправляет мгновенно, потому что все пользователи могут покупать много раз (пара отправляет токены к пользователю)
2. Как только пользователь захочет продать токены (отправить к паре), его адрес не в исключениях и нужно выждать 48часов
Что, если создать такой контракт, который купит токены, но оставит на паре и добавит ликвидность в пару?
- Отправили 100$, претендуем на X токенов, но заказать получение swap(..to=pair..) вместо swap(..to=wallet..). У пары появляются на балансе Xткенов, на которые не распространяется доля LP токенов.
- Вычисляем соотношение $-Xтокенов и добавляем ликвидности в пару. Допустим Xтокенов-102$.
- Отправляем в пару 102$
- Суммарно паре отдано 202$.
- Запрашиваем mint() LP токенов, пара видит излишки на своих балансах 102$, Xтокенов и выдает LP токены. К этому момент 99.99% токенов пары снова покрыты LP.
- В любой момент можно обменять LP токены на нынешнее соотношение $-токен.
- Ждем х3 в цене. Наши LP стоят 300$-Yтокенов
- Заказываем вывод LP
- Получаем 300$ при затратах в 100$+102$=202$
Нюансы:
- Минимальный рост токена для окупаемости нужен от х2
- Возможно ли в функции pair.swap(to=pair) отправлять токены той же паре? В коде вроде не запрещено
Upd: идея понравилась и решил затестить через hardhat. Концепт ломает такой момент, что после вызова swap() любые излишки токенов на паре становятся учтенными в резервах. Есть token0.balance(pair) и pair.reserves0 и вот после swap они синронизируются.
Вероятный вектор обхода блокировки на продажу до роста цены:
Контекст:
1. Так как пара токена добавлена в исключения, она всегда отправляет мгновенно, потому что все пользователи могут покупать много раз (пара отправляет токены к пользователю)
2. Как только пользователь захочет продать токены (отправить к паре), его адрес не в исключениях и нужно выждать 48часов
Что, если создать такой контракт, который купит токены, но оставит на паре и добавит ликвидность в пару?
- Отправили 100$, претендуем на X токенов, но заказать получение swap(..to=pair..) вместо swap(..to=wallet..). У пары появляются на балансе Xткенов, на которые не распространяется доля LP токенов.
- Вычисляем соотношение $-Xтокенов и добавляем ликвидности в пару. Допустим Xтокенов-102$.
- Отправляем в пару 102$
- Суммарно паре отдано 202$.
- Запрашиваем mint() LP токенов, пара видит излишки на своих балансах 102$, Xтокенов и выдает LP токены. К этому момент 99.99% токенов пары снова покрыты LP.
- В любой момент можно обменять LP токены на нынешнее соотношение $-токен.
- Ждем х3 в цене. Наши LP стоят 300$-Yтокенов
- Заказываем вывод LP
- Получаем 300$ при затратах в 100$+102$=202$
Нюансы:
- Минимальный рост токена для окупаемости нужен от х2
- Возможно ли в функции pair.swap(to=pair) отправлять токены той же паре? В коде вроде не запрещено
Upd: идея понравилась и решил затестить через hardhat. Концепт ломает такой момент, что после вызова swap() любые излишки токенов на паре становятся учтенными в резервах. Есть token0.balance(pair) и pair.reserves0 и вот после swap они синронизируются.
Навигация
О чем этот канал?
#DEFI - uniswapV2, пары, боты
Пример ethers+js
Blockscan
Uni форки
AMM
Pancakeswap.allPairsLength
Про кошельки
EVM,CEX,DEX
Токен
Landing protocol
Как шортить через landing
Uniswap
USDT,USDC
ERC20.approve
Автоматизация dune
4byte.directory
Rpc.batch
Bsc gasPrice=1gwei
#EVM - нюансы работы evm-блокчейнов
EVM,CEX,DEX
TokenChecks
ERC20.approve
Контракт 2015 года с 130eth
Evm.solidity.fn.signature
Pair.skim
Profanity https://t.me/invmru/71 https://t.me/invmru/76
4byte.directory
Структура байткода
Rpc.batch
1inch.router вывод любых токенов
TOTP на bsc
#HACK - разбор взломов и скам токенов
Обман в дискорде
Что за скам токен
Harmony.one-ethereum
Как теряют деньги мамонты
Solana, 8000 кошельков
Исса. Скам
Исса. Вероятный вектор обхода
Profanity
Celsius
Eth POW
Honeypot
OlympusDao
Frontrun bot потерял 80$
Frontrun. Детали атаки 1/2
Frontrun. Детали атаки 2/2
#FR_BR - frontrun, backrun боты
Пример успешного обмена
Что такое BR
Свой Backrun бот https://t.me/invmru/51 https://t.me/invmru/53 https://t.me/invmru/77
#GETH - как устроена внутри работа главной fullnode eth/bsc
EstimateGas
Flashbots.simulate
#FULLNODE - Как запустить fullnode
Eth
Bsc
#FLASHBOTS
Eth.flashbots.simulate
Polygon.flashbots
Trading view
Про создателей tradingview
Гадание на кейной гуще
VRVP
Личные проекты
TokenChecks https://t.me/invmru/21 https://t.me/invmru/73
Signature Profanity
abi-guesser-webserver
Не всем проектам нашлось место с тегом, продублирую их здесь, но они классные:
Copilot
Blockscan
Chainlist, defilama
Deepface live
Electric capital report
MidJourney
Dune
4byte.directory
Sublime text 3
Сколько занято ГБ на накопителе кубиками
О чем этот канал?
#DEFI - uniswapV2, пары, боты
Пример ethers+js
Blockscan
Uni форки
AMM
Pancakeswap.allPairsLength
Про кошельки
EVM,CEX,DEX
Токен
Landing protocol
Как шортить через landing
Uniswap
USDT,USDC
ERC20.approve
Автоматизация dune
4byte.directory
Rpc.batch
Bsc gasPrice=1gwei
#EVM - нюансы работы evm-блокчейнов
EVM,CEX,DEX
TokenChecks
ERC20.approve
Контракт 2015 года с 130eth
Evm.solidity.fn.signature
Pair.skim
Profanity https://t.me/invmru/71 https://t.me/invmru/76
4byte.directory
Структура байткода
Rpc.batch
1inch.router вывод любых токенов
TOTP на bsc
#HACK - разбор взломов и скам токенов
Обман в дискорде
Что за скам токен
Harmony.one-ethereum
Как теряют деньги мамонты
Solana, 8000 кошельков
Исса. Скам
Исса. Вероятный вектор обхода
Profanity
Celsius
Eth POW
Honeypot
OlympusDao
Frontrun bot потерял 80$
Frontrun. Детали атаки 1/2
Frontrun. Детали атаки 2/2
#FR_BR - frontrun, backrun боты
Пример успешного обмена
Что такое BR
Свой Backrun бот https://t.me/invmru/51 https://t.me/invmru/53 https://t.me/invmru/77
#GETH - как устроена внутри работа главной fullnode eth/bsc
EstimateGas
Flashbots.simulate
#FULLNODE - Как запустить fullnode
Eth
Bsc
#FLASHBOTS
Eth.flashbots.simulate
Polygon.flashbots
Trading view
Про создателей tradingview
Гадание на кейной гуще
VRVP
Личные проекты
TokenChecks https://t.me/invmru/21 https://t.me/invmru/73
Signature Profanity
abi-guesser-webserver
Не всем проектам нашлось место с тегом, продублирую их здесь, но они классные:
Copilot
Blockscan
Chainlist, defilama
Deepface live
Electric capital report
MidJourney
Dune
4byte.directory
Sublime text 3
Сколько занято ГБ на накопителе кубиками
InVM - изнутри о Web3
#DEFI Как создать особенный адрес кошелька в EVM-сети Существует утилита Profanity (остерегайтесь форков), которая написана в далеком 2019 году. Она ищет такой privateKey, что address совпадает с искомым паттерном. Например 10 ноликов вначале адреса, или…
#HACK
Profanity уязвим, найден вектор атаки когда становится возможным восстановить приватный ключ зная публичный ключ из транзакции и некоторого брутфорса, подробнее в блоге 1inch . Адреса кошельков и контрактов, созданных с помощью profanity в опасности
Profanity уязвим, найден вектор атаки когда становится возможным восстановить приватный ключ зная публичный ключ из транзакции и некоторого брутфорса, подробнее в блоге 1inch . Адреса кошельков и контрактов, созданных с помощью profanity в опасности
#HACK
Frontrun боты видят многое, но не все. По следам поста, которому больше 2х лет, попробовал свои силы, чтобы перехитрить ботов.
Общий алгоритм:
1. Создать максимально безопасный токен для трейда
2. Создать пару с ликвидностью
3. Совершать обмены с огромным slippage
4. Сделать так, чтобы бот думал что он выйдет в плюс, но на деле он или не видит или не успеет отменить свои транзакции.
После очередной проверки гипотезы, которым счет идет на десятки, удачно сложилась гипотеза+распространение транзакций, и бот не увидел подвоха
Фото 1. Бот покупает токен JH (в паре +80$bnb)
Фото 2. Моя транзакция обычного свапа с огромным slippage (условно amountOutMin=1). В худшем случае дарю боту 13$bnb.
Фото 3. Бот продает все JH и получает лишь 9$bnb (так как предоставляю ликвидность в пару только я, значит +90$ ко мне)
Под капотом бот не увидел моей второй, но первой транзакции, которая включила комиссии для всех не админов токена в 90% комиссии.
Жду вашей реакции, чтобы показать обратную сторону маленькой победы)
Frontrun боты видят многое, но не все. По следам поста, которому больше 2х лет, попробовал свои силы, чтобы перехитрить ботов.
Общий алгоритм:
1. Создать максимально безопасный токен для трейда
2. Создать пару с ликвидностью
3. Совершать обмены с огромным slippage
4. Сделать так, чтобы бот думал что он выйдет в плюс, но на деле он или не видит или не успеет отменить свои транзакции.
После очередной проверки гипотезы, которым счет идет на десятки, удачно сложилась гипотеза+распространение транзакций, и бот не увидел подвоха
Фото 1. Бот покупает токен JH (в паре +80$bnb)
Фото 2. Моя транзакция обычного свапа с огромным slippage (условно amountOutMin=1). В худшем случае дарю боту 13$bnb.
Фото 3. Бот продает все JH и получает лишь 9$bnb (так как предоставляю ликвидность в пару только я, значит +90$ ко мне)
Под капотом бот не увидел моей второй, но первой транзакции, которая включила комиссии для всех не админов токена в 90% комиссии.
Жду вашей реакции, чтобы показать обратную сторону маленькой победы)
InVM - изнутри о Web3
#HACK Frontrun боты видят многое, но не все. По следам поста, которому больше 2х лет, попробовал свои силы, чтобы перехитрить ботов. Общий алгоритм: 1. Создать максимально безопасный токен для трейда 2. Создать пару с ликвидностью 3. Совершать обмены с огромным…
#HACK 1/2
Чтобы заинтересовать frontrun ботов, нужно:
- Отправить транзакцию обмена через публичный мемпул
- Подобрать правильное соотношение ликвидности в паре и размеру свапа, чтобы боту было интересно. Например 30$bnb-100JH в паре, и свап на 10-15$bnb с очень низким slippage. Frontrun транзакции делают так, что пользователь обменяет токены по максимально не выгодному для пользователя курсу обмена (при slippage 99% = amountOutMin=1wei) бот 'заберет' все $bnb из транзакции.
- Чем объемнее ликвидность в паре, тем сложнее боту значительно влиять на цену и нужно больше капитала для этого.
- Учитывать случайность распространения транзакций по мемпулу между нодами, не каждый раз боты увидят.
- Чтобы другие транзакции публичного мемпула не испортили прибыльность боту.
Чтобы перехитрить ботов в bsc, только транзакции обмена недостаточно, они видят все, что происходит в публичном мемпуле и даже улавливают связи, что первая транзакция ок, а вторая ломает боту frontrun операции.
Чтобы заинтересовать frontrun ботов, нужно:
- Отправить транзакцию обмена через публичный мемпул
- Подобрать правильное соотношение ликвидности в паре и размеру свапа, чтобы боту было интересно. Например 30$bnb-100JH в паре, и свап на 10-15$bnb с очень низким slippage. Frontrun транзакции делают так, что пользователь обменяет токены по максимально не выгодному для пользователя курсу обмена (при slippage 99% = amountOutMin=1wei) бот 'заберет' все $bnb из транзакции.
- Чем объемнее ликвидность в паре, тем сложнее боту значительно влиять на цену и нужно больше капитала для этого.
- Учитывать случайность распространения транзакций по мемпулу между нодами, не каждый раз боты увидят.
- Чтобы другие транзакции публичного мемпула не испортили прибыльность боту.
Чтобы перехитрить ботов в bsc, только транзакции обмена недостаточно, они видят все, что происходит в публичном мемпуле и даже улавливают связи, что первая транзакция ок, а вторая ломает боту frontrun операции.
InVM - изнутри о Web3
#HACK 1/2 Чтобы заинтересовать frontrun ботов, нужно: - Отправить транзакцию обмена через публичный мемпул - Подобрать правильное соотношение ликвидности в паре и размеру свапа, чтобы боту было интересно. Например 30$bnb-100JH в паре, и свап на 10-15$bnb с…
Снимок экрана 2022-12-17 в 10.50.44.png
65.9 KB
#HACK 2/2
Почти единственный путь, это отправить транзакцию активации ловушки в токене через приватный мемпул bnb48. Но и тут есть 'случайности'. Часто активация проиходит позже, чем предсказано и очень похоже, что bnb48 через своего frontrun бота умышленно замедляет активацию, чтобы с 20k$bnb заработать 13$bnb (Фото 1)
Часть попыток перехитрить ботов переходят в подарить им bnb :D
Моя маленькая победа в +90$bnb стоила порядка ~200$(~10$ на попытку).
Во время проверки новой гипотезы, в токене не предусмотрел отключение всех ловушек. По итогу еще 180$ навсегда в паре :D. Тут только один вывод, ВСЕГДА делать запасные отключения ловушек, потому что они могут сработать и на админа :D
Почти единственный путь, это отправить транзакцию активации ловушки в токене через приватный мемпул bnb48. Но и тут есть 'случайности'. Часто активация проиходит позже, чем предсказано и очень похоже, что bnb48 через своего frontrun бота умышленно замедляет активацию, чтобы с 20k$bnb заработать 13$bnb (Фото 1)
Часть попыток перехитрить ботов переходят в подарить им bnb :D
Моя маленькая победа в +90$bnb стоила порядка ~200$(~10$ на попытку).
Во время проверки новой гипотезы, в токене не предусмотрел отключение всех ловушек. По итогу еще 180$ навсегда в паре :D. Тут только один вывод, ВСЕГДА делать запасные отключения ловушек, потому что они могут сработать и на админа :D
#HACK
Произошла спланированная атака на sandwith MEV ботов. ~25kk$
Коротко:
- Атакующие стали валидаторами и создали токен пару недель назад.
- Отправили выгодную транзакцию свапа в мемпуле и арб боты перехватили ее (тоесть в бандле смайнится быстрее чем в публичном мемпуле) и отправили бандл (mevTx1, targetTx, mevTx2), все поверхностные проверки что бандл прибыльный пройдены.
- Этот бандл попал на майнинг блока к атакующему валидатору (например валидатор подключен к flashbots)
- Валидатор подменил target на обратное направление свапа, сделав mevTx2 убыточной
- Смайнил блок
Стоимость атаки:
- 32eth(валидатор)
- Создание токена с ликвидностью 10k-500k$
- Подобрать такое соотношение ликвидности и размера свапа, чтобы sandwith боты вливали млн$ чтобы извлечь выгоду из «очевидно прибыльной транзакции»
Источник:
https://twitter.com/PeckShieldAlert/status/1642787345366941697
Произошла спланированная атака на sandwith MEV ботов. ~25kk$
Коротко:
- Атакующие стали валидаторами и создали токен пару недель назад.
- Отправили выгодную транзакцию свапа в мемпуле и арб боты перехватили ее (тоесть в бандле смайнится быстрее чем в публичном мемпуле) и отправили бандл (mevTx1, targetTx, mevTx2), все поверхностные проверки что бандл прибыльный пройдены.
- Этот бандл попал на майнинг блока к атакующему валидатору (например валидатор подключен к flashbots)
- Валидатор подменил target на обратное направление свапа, сделав mevTx2 убыточной
- Смайнил блок
Стоимость атаки:
- 32eth(валидатор)
- Создание токена с ликвидностью 10k-500k$
- Подобрать такое соотношение ликвидности и размера свапа, чтобы sandwith боты вливали млн$ чтобы извлечь выгоду из «очевидно прибыльной транзакции»
Источник:
https://twitter.com/PeckShieldAlert/status/1642787345366941697
#HACK
Sushiswap RouterProcessor2 контракт скомпроментирован, атакующие могут распоряжаться средствами, которые разрешено тратить контракту.
В сети eth 0x044b75f554b886a065b9567891e45c79542d7357, и других сетях.
Один из вариантов проверить, не дал ли кошелек лишний апрув, так: https://etherscan.io/tokenapprovalchecker , ввести адрес кошелька и посмотреть его approvals, подозрительные отключить.
Для исполнения атаки нужен собственный контракт, который обащается к RouterProcessor2.uniswapV3SwapCallback
Источник: https://twitter.com/peckshield/status/1644907207530774530?s=20
Sushiswap RouterProcessor2 контракт скомпроментирован, атакующие могут распоряжаться средствами, которые разрешено тратить контракту.
В сети eth 0x044b75f554b886a065b9567891e45c79542d7357, и других сетях.
Один из вариантов проверить, не дал ли кошелек лишний апрув, так: https://etherscan.io/tokenapprovalchecker , ввести адрес кошелька и посмотреть его approvals, подозрительные отключить.
Для исполнения атаки нужен собственный контракт, который обащается к RouterProcessor2.uniswapV3SwapCallback
Источник: https://twitter.com/peckshield/status/1644907207530774530?s=20
#HACK
Разберемся, безопасен ли токен grimace в догечейне, который активно продвигают.
Смарт-контракт не верифицирован в сканере, поэтому проверим по-другому.
На dexscreener и dextools есть и покупки и продажи. Простейший ханипот отпадает, но что, если внутри кода есть метод на отключение продаж?
Goplus не поддерживает dogechain
decompile.tools не поддерживает dogechain
Повышаем ставки
Код контракта из сканнера вставляем в ethervm.io, подозрительных функций не видно, но может внутри одной из функций будет триггер? Например, если вызвать .transfer с конкретным большим числом, то это отключит возможность продавать.
- Пойдем с конца, легче найти tx.log Transfer
- Перевод завершается по Transfer(address,address,uint256)
-
-
-
- При беглом осмотре подозрительного кода не видно
panoramix
Все выглядит хорошо, кроме .name() и .symbol() (вывод panoramix в первом комментарии)
В ethervm.io аналогично
Посмотрим как выглядят функции в контрактах с верифицированным кодом (предоставленный .sol файл скомпилировался в конретный байткод на стороне сканера bscscan и поэтому сканер показывает исходный код)
wbnb (panoramix код в комментах)
Все функции хорошо читаются, подвоха точно нет, но интересующие функции отличаются от grimace, пропускаем.
pepeai (panoramix код в комментах)
.name() и .symbol() внешне совпадают с кодом от grimace, у pepeai код верифнут. Следовательно, grimace методы тоже надежные.
Можно было подойти с другой стороны, разместить код из dogechain в avax/polygon сети и пройтись более человечными анализаторами, но это слишком просто)
Выводы:
- Код контракта полностью безопасен
- Grimace основан на версии компилятора 0.8.16 как и pepeai
- Остаются риски с влиянием на цену крупными холдерами токенов, но где такого нет? 😄
Разберемся, безопасен ли токен grimace в догечейне, который активно продвигают.
Смарт-контракт не верифицирован в сканере, поэтому проверим по-другому.
На dexscreener и dextools есть и покупки и продажи. Простейший ханипот отпадает, но что, если внутри кода есть метод на отключение продаж?
Goplus не поддерживает dogechain
decompile.tools не поддерживает dogechain
Повышаем ставки
Код контракта из сканнера вставляем в ethervm.io, подозрительных функций не видно, но может внутри одной из функций будет триггер? Например, если вызвать .transfer с конкретным большим числом, то это отключит возможность продавать.
- Пойдем с конца, легче найти tx.log Transfer
- Перевод завершается по Transfer(address,address,uint256)
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
-
func_052F
- функция перевода токенов, в нее входят из .transfer и .transferFrom-
0xa9059cbb
- transfer(address,uint256)-
0x23b872dd
- transferFrom(address,address,uint256)- При беглом осмотре подозрительного кода не видно
panoramix
Все выглядит хорошо, кроме .name() и .symbol() (вывод panoramix в первом комментарии)
В ethervm.io аналогично
Посмотрим как выглядят функции в контрактах с верифицированным кодом (предоставленный .sol файл скомпилировался в конретный байткод на стороне сканера bscscan и поэтому сканер показывает исходный код)
wbnb (panoramix код в комментах)
Все функции хорошо читаются, подвоха точно нет, но интересующие функции отличаются от grimace, пропускаем.
pepeai (panoramix код в комментах)
.name() и .symbol() внешне совпадают с кодом от grimace, у pepeai код верифнут. Следовательно, grimace методы тоже надежные.
Можно было подойти с другой стороны, разместить код из dogechain в avax/polygon сети и пройтись более человечными анализаторами, но это слишком просто)
Выводы:
- Код контракта полностью безопасен
- Grimace основан на версии компилятора 0.8.16 как и pepeai
- Остаются риски с влиянием на цену крупными холдерами токенов, но где такого нет? 😄
InVM - изнутри о Web3
Снимок экрана 2022-12-17 в 10.50.44.png
#HACK Помолчал и хватит.
В сентябре стремился повторить salmonela.
Идея в том, что нужно отправить такую "уязвимую транзакцию", что на нее поведется frontrun/backrun бот и не сможет продать токены обратно.
Идеальный пример выглядит так:
- Взять за основу код классического контракта от OpenZeppelin
- Добавить ряд переключателей, чтобы или брать комиссию или отключать свапы
- Создать uniswap v2 пару c некоторой ликвидностью
- Отправить транзакцию обмена со slippage >X$ потерь
- Frontrun бот разместит свои транзакции так, что заработает себе X$ из нашего slippage
- Но несколько позиций в блоке Frontrun бот держит наши токены
- Отключаем возможность продажи через бандл или любым другим способом
- Как итог, Frontrun бот купил наших токенов, но продать не сможет.
- Профит!
Но на практике все очень сложно:
- Если подменять собственную транзакцию свапа со слиппеджем на транзакцию отключения свапов, то боты это видят и даже подменяют свои FR транзы на self-send. Но чаще видят и совсем не реагируют
- Если отправить свап как обычно, а отключение свапов через бандл, то снова никто не ловится, боты это видят.
После тестов в eth/bsc/arbitrum/polygon/avax/base могу с уверенность сказать, что:
- Frontrun и Backrun боты работают исключительно через бандлы, а бандлы есть в eth/bsc
- В любых других блокчейнах без бандлов, есть только снайпер-боты что покупают на копейки свеже-созданный токен
- Благодаря бандлам, боты полностью защищены от подмен и ловушек, риск только в совбстенных ошибках в боте.
- Есть такой тип ботов, что стремится выкупить сапплай токена при резком дампе цены до микро-центов, чтобы мгновенно зарабатывать с любого притока $ в торговую пару.
Касательно бандл-провайдеров, в eth их много, все они форкнулись от flashbots.
В bsc два покемона, первый bnb48.
В сентябре стремился повторить salmonela.
Идея в том, что нужно отправить такую "уязвимую транзакцию", что на нее поведется frontrun/backrun бот и не сможет продать токены обратно.
Идеальный пример выглядит так:
- Взять за основу код классического контракта от OpenZeppelin
- Добавить ряд переключателей, чтобы или брать комиссию или отключать свапы
- Создать uniswap v2 пару c некоторой ликвидностью
- Отправить транзакцию обмена со slippage >X$ потерь
- Frontrun бот разместит свои транзакции так, что заработает себе X$ из нашего slippage
- Но несколько позиций в блоке Frontrun бот держит наши токены
- Отключаем возможность продажи через бандл или любым другим способом
- Как итог, Frontrun бот купил наших токенов, но продать не сможет.
- Профит!
Но на практике все очень сложно:
- Если подменять собственную транзакцию свапа со слиппеджем на транзакцию отключения свапов, то боты это видят и даже подменяют свои FR транзы на self-send. Но чаще видят и совсем не реагируют
- Если отправить свап как обычно, а отключение свапов через бандл, то снова никто не ловится, боты это видят.
После тестов в eth/bsc/arbitrum/polygon/avax/base могу с уверенность сказать, что:
- Frontrun и Backrun боты работают исключительно через бандлы, а бандлы есть в eth/bsc
- В любых других блокчейнах без бандлов, есть только снайпер-боты что покупают на копейки свеже-созданный токен
- Благодаря бандлам, боты полностью защищены от подмен и ловушек, риск только в совбстенных ошибках в боте.
- Есть такой тип ботов, что стремится выкупить сапплай токена при резком дампе цены до микро-центов, чтобы мгновенно зарабатывать с любого притока $ в торговую пару.
Касательно бандл-провайдеров, в eth их много, все они форкнулись от flashbots.
В bsc два покемона, первый bnb48.