Написал небольшой брутфорс учетных записей SSH.
Возможности:
[+] Многопоточность
[+] Три режима перебора: по списку логинов, по списку паролей, по списку логин;пароль
[+] Перебор IP по диапазону или по списку из файла
[+] Возможность установки таймаута соединения при проверке порта
Подобранные данные сохраняются в файл brute_good.txt. Распараллеливание идет по IP-адресам, т.е. если в диапазоне 1 IP и в настройках стоит 100 потоков, то фактически перебор идет в 1 поток.
Скачать: sshb.zip (пароль на архив: kaimi-ru)
Говноисходники: sshb_src.zip
Update (22.01.14): Немного поправил код, устранил утечку памяти, добавил дополнительную проверку на успешную авторизацию, сделал сборку с libssh 0.6.0 и OpenSSL 1.0.1f.
Собранная версия
Проект для MSVC 2010+
GitHub: ssh-bruteforce
Спасибо, пригодится в хозяйстве =)
Почему без исходников? ;)
Адов говнокод там, да и libssh нормально документирована.
DECOMPILE
а проксе
А смысл? Те же бруты дедиков в большинстве своем не обладают поддержкой прокси, да и не нужна она там
исходник можно? почему количество потоков ограничено 100?
А что, есть желание полистать сорц состоящий из смеси C и C++? Просто так, каких-то конкретных причин нет.
увеличь количество потоков плиз
А ты это, напиши мини-программку, которая пошлет сообщение UDM_SETRANGE32 спинбоксу, отвечающему за потоки ))
ПОСОНЫ, ЧО ДЕЛАТЬ?
13!
127 потоков устроит? :D
Пять тыш - не меньше! )
Спасибо, ждём брутер дедиков от вас:)
Норм прога,набрутил серверов немножко ) Kaimi респект и уважуха как всегда)
Класная вещь!!!
Плюсы:
+многопоточный
+единственный работающий что я видел
+можно на один или несколько логинов
+можно на один или несколько пасов
Недоработки:
Хотелось бы вместо поля статистики видеть поля: ппс, аппс, бед(ип), гуд(ип)
Если ssh без пароля, то в файл гуд кидаются все комбинации с этим ипом:
193.123.123.34;root;!@#
193.123.123.34;root;!@#!@#
193.123.123.34;root;!@##@!
193.123.123.34;root;!@#$
193.123.123.34;root;!@#$%
193.123.123.34;root;!@#$%^
193.123.123.34;root;!@#$%^&
193.123.123.34;root;!@#$%^&*
193.123.123.34;root;!@#$%^&*(
193.123.123.34;root;!@#$%^&*()
193.123.123.34;root;!@#$%^&*()_+
Автору высокая презнательность, отличная отметка о работе софта и моя личная благодарность. ;)
"Если ssh без пароля" - ээ? Можно конечно завершать перебор для текущего IP при нахождении правильной пары и режиме перебора отличном от login;pass списка
Можно, но я рассматриваю прогу как полноценный брутофорс, и если идет брут на много ипов, то после остановки придется начинать брут заново( что очень печально.
Почему заново то? Посмотрел последний IP в логе и задал его как стартовый
Еще один недостаток: заметил что при бруте постоянно увеличивается потребление оперативной памяти от 10 до 40 кбайт/с, да это незначительно, но при продолжительном бруте это ппц как напряжно, особенно если на машинке мало озу.
А сколько ты ждал? Так то в лог информация добавляется и количество потребляемой памяти сначала увеличивается.
Да я нисколько не ждал. Но было бы лучше если бы лог записывался например в отдельный файл) либо стирался вообще.
Он там стирается, когда много сообщений накапливается, автоматически.
>Почему заново то? Посмотрел последний IP в логе и задал его как стартовый.
Ну эт само собой пробовал, но делов том что в логах берутся адреса как с начала списка, так и с конца. то есть ипы совершенно разные(
>Он(лог) там стирается, когда много сообщений накапливается, автоматически.
Но всё равно увеличивается количество потребления памяти.
Итак просто для сравнения небольшой вывод:
сутки работы брута:
ни одного сбоя и вылета(автор гений)
но есть и маленькие недостатки:
[URL=http://radikal.ru/F/i070.radikal.ru/1101/22/2986bdaa8f40.jpg.html][IMG]http://i070.radikal.ru/1101/22/2986bdaa8f40t.jpg[/IMG][/URL]
В лог пишут все потоки, адреса берутся из списка по порядку, ищешь в логе что проверял первый и последний поток - узнаешь в каком месте списка находится программа.
Про память - перекачай архив, может поможет, хотя если утечка в libssh, то это вряд ли исправишь.
Спасибо, попробую:) Так всё же, мне интересно знать, будут ли такие счетчики как pps и apps, а так же сорс, гуд, и бед?
Счетчики вряд ли. Исходник могу выложить
>Счетчики вряд ли. Исходник могу выложить.
Это было бы шикарно)
Выложен...
было б очень удобно если можно было вогнать список
ип@логин:пароль
так сказать чекнуть уже сбрученые ssh
Так допиши, сорц же выложен
c c++ не дружу. еслиб perl, видел когда то скрипт. на просторах инета.
Можно и perl
http://kaimi.io/2009/12/ssh-tool/
Не ловит гуды =\
Исходный код выложен - бери и правь под себя. Лично у меня ловил.
Привер автор вот вапрос чем ето дабро можно скампилить ато я вроде код та вижу а вот не понимаю как мне ети исходники скомпилить ... Просит а помощи наченающий программит до етого только на jave работал ...
Добавлю что у меня на компе устоновлен Visual Studio 2008 , Visual Studio 2010
Создать пустой проект, добавить туда эти исходники и скомпилировать
Автор, привет.
рога твоя очень понравилась, но вот беда какая. Она брутит хорошо и быстро, но внезапно останавливается. Вот бегут отчеты (о подборе паролей внизу), а затем останавливается и все, так хоть сутки простоять может, проверял на объемах и в 2к серваков и на 50к (везде валид 95%, т.е. на всех 22 открыт).
Не знаешь, почему так может быть? Было бы хорошо исправить.
Добавлю еще, что хорошо бы добавить опцию остановки брута конкретного сервака, если пасс уже подобран (чтобы не брутить дальше).
З.Ы. Сам я этого воплотить не могу, т.к. не кодер.
можно ли возможность выбора нестандартного порта внедрить или где рыть не подскажете?
Прочитать документацию по методу ssh_options_set из libssh
http://api.libssh.org/stable/group__ssh__session.html#ga7a801b85800baa3f4e16f5b47db0a73d
А зачем она продолжает брутить ip, когда найден пасс?
Так же пишет много левых гудов, например
58.72.89.130;
58.76.225.254
58.79.74.59
Цель - перебор всех комбинаций, а не до первого гуда. Левые гуды - если libssh считает, что авторизация по указанным данным прошла, то что поделать.
В любом случае исходник доступен и переписать под свои нужды никто не мешает.
Перестал запускаться Bruter - http://sourceforge.net/projects/worawita/, после того как попробовал эту прожку.
Выдаёт сообщение: Порядковый номер 354 не найден в библиотеке DLL LIBEAY32.dll.
Скрин - http://savepic.net/726784.png . Dll-ка libeay32.dll используется в обех программах.
Значит программа грузит libeay32.dll не из своей папки, а откуда то ещё.
Факт в том, что Brutus до запуска SSH Bruteforce прекрасно, и без проблем работал долгое время, а теперь ни в какую не хочет запускаться. WTF?
Я вижу только одну причинно-следственную часть, как теперь исправить эту проблему?
В реестре SSH пишет что-то?
У Brutus библиотека более новая, чем у SSH, суммы не сходятся также. Может в этом причина?
Скорее всего
Автору спасибо, хотя прога мою проблему не решила :( , но работает отлично.
to SsS: прочел комменты - брутус после запуска проги работает в обычном режиме, результат нормальный, может какие изменения в системе были?
У меня брут кидает на один айпи кучу паролей и ни один не валид
спасибо
смену портов бы к нему
Сорцы выложены, берешь и правишь как угодно
да да, я чтот просмотрел. извини
Скажите, а возможно ли настроить брут через socks5 proxy. Где в исходниках нужно это изменить, подскажите, пожалуйста.
Открываешь документацию по libssh и ищешь есть ли возможность
спасибо, классный брут, жаль что я не стал программистом в свое время..
Я тоже не стал и не планирую и все ок
Почему-то пишет "не удалось подключиться... С чем может быть связана проблема? (Интернет работает)
Привет. Есть проблема с брутером. На некоторых серверах(Win2003, 2008) софт не запускается и выдает ошибку:
sshb.exe - Application Error
The application failed to initialize properly (0xc0150002).
В чем может быть проблема? Спасибо.
Стоит пробовать ставить это предварительно http://www.microsoft.com/en-us/download/details.aspx?id=5582
Pomoglo. Spasibo.
Те shh которые начинает брутить, кидает в гуды с всеми логинами и\или паролями. Подключение к такому туннелю проходит вроде бы хорошо:
Access granted
Local port 8081 SOCKS dynamic forwarding
Но при попытке посетить любой сайт пишет:
Opening forwarded connection to www.(любой сайт).com:443
Forwarded connection refused by server: Administratively prohibited [open failed]
Причем тут туннели какие-то? Ну да, срабатывания ложные бывают, но вся работа с SSH основана на сторонней библиотеке. Если хочется, чтобы не писало все подряд комбинации при некоторых ситуациях, то исходный код доступен, переделать никто не мешает.
Лишь хотел уточнить - прога уже не рабочая, или мне дальше руки выпрямлять?:)
Ибо если не рабочая то пусть люди знают и время не тратят:)
А к автору никаких претензий, спасибо за то что потратил свое время на создание этой программы, для нас:)
Что значит уже? SSH древний протокол, никто его не изменяет, по крайней мере в отношении базовой функциональности. Ещё бы вопросы актуальности блокнота или пейнта из винды ставили...
Ну так вопрос стоит не о актуальности протокола а о актуальности брута:)
У меня он почти все в гуды кидает, со всеми вариантами логинов паролей, и естественно подключится к таким серверам не удается.Видимо все-таки это у меня проблемы с брутом, а не у брута с ssh:) буду дальше кумекать.
Есть такое понятие "защита от брута", я уже сказал, что тут нечему "ломаться". А поведение всегда можно исправить отредактировав исходный код.
how to use this program. what is form of this user_pass list to bruteforce
login1;password1
login2;password2
...
Здравствуйте. В папке с программой лежит библиотека ssh.dll. Я так понимаю в ней весь функционал по работе с ssh. Можно ли ее использовать в своих программах? Если да то где можно найти описание функций, параметров?
P.S. Огромное спасибо за статьи по masm. С них начинал программировать.
google -> libssh
Hy,
The problem, I think, is that he stop in a loop in some IPs.
Think that is a banner, or something like that...
гуру, как добавить в исходники код, чтобы удалял айпи после брута... а не оставлял его
Мля, исключения не обрабатываются...
sshb.zip не скачивается
У меня скачивается всё.
За пускаю брут ивсе время пишет вот такое сообщение. [19] 255.255.255.255 - не удалось подключиться
что делать?
Скачать исходный код и переписать его под себя или медитировать над настройками.
Спасибо .
Почему часто один и тот же IP попадает в гуд с любым паролем?
То есть
30.15.16.17;root;passs
30.15.16.17;root;123123
30.15.16.17;root;ololo
Брут как-то не правильно определяет удачный вход?
Приходится искать только те строки, где нет повторов, не очень удобно. Можно ли это поправить?
Можно. Берете гугл, ищете исходный код и документацию по libssh, правите, собираете проект с новой классной версией libssh.
Я не силен в программировании. Как я понял вы больше этим брутом совсем не собираетесь заниматься?
Нет. Я ни один проект с этого блога не поддерживаю. Максимум в течение недели после релиза какие-нибудь мелочи правлю.
Да и не нужен такой брут, т.к. есть, например, THC-Hydra.
Правда ли то, что SSH режет частые коннекты? Я хочу узнать, есть ли смысл ставить много паролей при бруте?
Зависит от сервера, наверное.
THC-Hydra чем лучше вашего брута?
Тем, что её развивают и она поддерживает множество протоколов.
Совсем не все так кошерно . И гидра и медуза развиваются только для linux . Любительские сборки из этих исходников под win в сети есть . Но поскольку изначально сорцы не подгонялись и не тестировались для винды , то это все работает до первого чиха . Кроме того нужно ставить питон и еще кучу библиотек . Мне , допустим , так и не удалось нормально завести гидру на 2003 деде .
Или просто поставить Linux и не выдумывать.
Нашёл интересный баг - софт не закрывает открытые сокеты. Если использовать достаточно большой список source IP, спустя какое-то время перестает брутить, ибо забивает все возможные порты.
Просто решил сообщить (для тех, кто испытывал такую же проблему), фиксится легко в сорсах.
Спасибо . Наблюдал это но , кажется , так и не нашел причину .
От себя могу добавить что в функции
rc = ssh_userauth_password(sess_c, login.c_str(), password.c_str());
вторым параметром должен быть NULL , как ясно указано в документации
http://api.libssh.org/master/group__libssh__auth.html#ga50c0c150f8c4703e7ee49b3e3e3ca215
а login нужно задавать заранее через ssh_options_set . Хотя , по факту , сейчас работает и так :)
Somebody у меня таже проблема, зависает если брутить из списка IP. кто может подправить это? я бы купил брут с вылеченными ошибками
В общем так и есть , он нестабилен . И тут не только в незакрытых сокетах дело .
На 2003 дедах у меня он вылетал при размере списка ip > 30kb . На хостовой семерке проблем с размером файла нет . Зато он крэшится при первом запуске и работает при повторном . По-моему проблема в потоках , если найду напишу .
Кроме этого есть еще проблема с false-positive в sonicwall'ах . Но там хотя бы понятно откуда ноги и примерно как лечить .
И превратить свой комп в круглосуточный сервер для брута ? А самому на чем в это время работать ?
Это не говоря уже , что брутить со своего ip это в принципе ерунда .
причём здесь свой комп? для таких целей есть дедики
Предыдущий мой пост это ответ Kaimi на :
Январь 13th, 2014 at 16:35
Или просто поставить Linux и не выдумывать.
Caterpillar, да теперь понял :) Если будет решение, пожалуйста отпиши здесь. Я тоже буду пробовать решить эту проблему. Спасибо
Пробуй обновленную версию.
Хотел написать , что хендлы от CreateThread стоит закрывать по завершении . Но теперь их пофиксили на beginthread и закрывать вроде уже не надо :)
По-поводу потоков . У предыдущей версии была с ними проблема . Если разогнать брут до тредов до 150 , а затем попытаться остановить то увы . Останавливаться он уже не хотел .
В процессе работы часть потоков вывешивалось . И со временем их становилось все больше . Этот процесс можно смотреть через тот же ProcessExplorer . При останове брута висящие потоки не давали выполниться коду завершения
if (!InterlockedDecrement(&info->thr_num))
{
delete info->br_array;
delete info->ip_array;
delete info;
EnableControls(TRUE);
is_stop = false;
}
Брут уходил в вечный сон , а интерфейс оставался в неактивном состоянии . Собственно зависали они на функции ssh_connect. А вот почему так получалось , я не успел понять за те пару дней , что ковырялся в коде .
Так или иначе , на новой сборке под 0.6 libssh этой проблемы уже нет . Все завершается корректно . Это здорово .
Насчет проверки на авторизацию . falsepositive отсеивает , но еще не полностью . Попадается вот такая хрень :
79.173.161.191;root;1234
79.173.156.32;admin;12345
80.241.68.202;admin;default
87.83.32.147;admin;default
Удалось за пару часов поймать несколько цисок . А вот домашних роутеров что-то как-то пока нет .
Плавающий баг с нами . При первом старте вылетаем , при повторном и дальше все нормально . Тестирую на хостовой семерке x64 .
Бы бы неплохо прикрепить английский вариант интерфейса . Далеко не все деды понимают русский язык .
Вот такие впечатления по новой версии .
Проверь на своем роутере и корректном пароле, сработает или нет.
Про вылет - больше деталей, либо крешдамп, либо собирай дебажную версию и пытайся повторить.
Английский - потом перенесу все строки в ресурсы и сделаю определение языка системы и переключатель.
Перед использованием в многопоточном коде libssh нужно инициализировать через
ssh_init() .
#include
...
ssh_threads_set_callbacks(ssh_threads_get_noop());
ssh_init();
http://api.libssh.org/stable/libssh_tutor_threads.html
Kaimi, спасибо за твою деятельность. Мог бы ты помочь мелким советом. Не могу запустить на vds win 2003 sshbrouteforce, вылетает ошибка The application falied to initialize properly (0x0150002).
Dозможно нужно установить какие-то драйверы типа Microfost Visual C++ или Framework? Не мог бы ты подсказать как быть..
Последнюю версию? Попробуй Microsoft Visual Studio Redistributables от MSVC 10 поставить.
Kaimi, в good летит много хоней топов, как бы пофиксить данный сабж? Имею в виду брутер\чекер показывает валид, но на самом деле нет к нему коннекта либо же fake ssh хонейтоп просто. Можно ли как то прикрутить проверку на коннект к тому же google.com? т.е. чекает, при удачном login;pass пингует на google если ок, в good.txt
Спасибо
Какая из версий? Код же есть, добавь и скомпилируй
У меня такая же проблема, можно ли как-то это исправить? 200 гудов и все fake.
___
Сам не смогу добавить код, но если сможешь помочь, отблагодарю.
postavil framework 3.5 pomoglo
Who have any private SSH bruter , i will pay for this. Thanks
Нужна помощь, и меня не сохраняет гуд, хотя в логе есть "+", и shh работает!
Права записи в директорию точно есть ? Как админ запускал ?
Брут внезапно стал грузить мой процессор на 100% не зависимо от того, сколько потоков/ip и т.д. А не использует ли он вычислительную мощность моего ПК в неизвестных мне целях?
Собери из сорсов сам, если есть сомнения, проблем то.