
Поиск узлов Ethereum, уязвимых для RPC-атак
gethsploit — это набор скриптов на Python для перебора пиров Ethereum с включёнными RPC-портами.
##Предварительные требования
Убедитесь, что у вас установлен geth, желательно последняя версия, в которой есть некоторые исправления, касающиеся подключения к другим RPC-экземплярам.
##Использование Gethsploit
Убедитесь, что geth не запущен, иначе getsploit выполнится только один раз.
getsploit повторяется до отмены.
./getsploit
##Использование Nodesploit
Nodesploit — более быстрая версия getsploit, но может дать меньше результатов. Вместо перебора узлов через geth он получает список с публичного сайта со списками пиров. Для каждой записи из этого списка nodesploit проверяет, открыт ли RPC-порт.
./nodesploit
###Результаты
Результаты будут записаны в файлы possible_vulnerables.txt и possible_vulnerables2.txt.
###Отказ от ответственности
Это было написано исключительно для обучения майнеров, которым, возможно, нужно оставить свой RPC-порт открытым для работы в пуле. Где-то около августа 2015 года была опубликована статья в блоге, предупреждающая пользователей не оставлять открытым RPC-порт и не разблокировать свой аккаунт.
По умолчанию, на момент написания, аккаунты заблокированы, но проблемы возникают, когда пользователь разблокирует свой аккаунт или открывает mist-кошелёк. Кошелёк Mist разблокирует аккаунт на 2 секунды при открытии. Злоумышленник, непрерывно отправляющий запросы eth.sendTransaction(), может использовать это небольшое окно возможностей, чтобы украсть ваши ценные эфиры.