SSH Bruteforce

Написал небольшой брутфорс учетных записей 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

SSH Bruteforce: 192 комментария

  1. Класная вещь!!!
    Плюсы:
    +многопоточный
    +единственный работающий что я видел
    +можно на один или несколько логинов
    +можно на один или несколько пасов
    Недоработки:
    Хотелось бы вместо поля статистики видеть поля: ппс, аппс, бед(ип), гуд(ип)
    Если 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;!@#$%^&*()_+

    Автору высокая презнательность, отличная отметка о работе софта и моя личная благодарность. ;)

    1. "Если ssh без пароля" - ээ? Можно конечно завершать перебор для текущего IP при нахождении правильной пары и режиме перебора отличном от login;pass списка

      1. Можно, но я рассматриваю прогу как полноценный брутофорс, и если идет брут на много ипов, то после остановки придется начинать брут заново( что очень печально.

  2. Еще один недостаток: заметил что при бруте постоянно увеличивается потребление оперативной памяти от 10 до 40 кбайт/с, да это незначительно, но при продолжительном бруте это ппц как напряжно, особенно если на машинке мало озу.

    1. А сколько ты ждал? Так то в лог информация добавляется и количество потребляемой памяти сначала увеличивается.

  3. >Почему заново то? Посмотрел последний 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]

    1. В лог пишут все потоки, адреса берутся из списка по порядку, ищешь в логе что проверял первый и последний поток - узнаешь в каком месте списка находится программа.
      Про память - перекачай архив, может поможет, хотя если утечка в libssh, то это вряд ли исправишь.

  4. было б очень удобно если можно было вогнать список
    ип@логин:пароль
    так сказать чекнуть уже сбрученые ssh

  5. Привер автор вот вапрос чем ето дабро можно скампилить ато я вроде код та вижу а вот не понимаю как мне ети исходники скомпилить ... Просит а помощи наченающий программит до етого только на jave работал ...

  6. Автор, привет.
    рога твоя очень понравилась, но вот беда какая. Она брутит хорошо и быстро, но внезапно останавливается. Вот бегут отчеты (о подборе паролей внизу), а затем останавливается и все, так хоть сутки простоять может, проверял на объемах и в 2к серваков и на 50к (везде валид 95%, т.е. на всех 22 открыт).
    Не знаешь, почему так может быть? Было бы хорошо исправить.

  7. Добавлю еще, что хорошо бы добавить опцию остановки брута конкретного сервака, если пасс уже подобран (чтобы не брутить дальше).

    З.Ы. Сам я этого воплотить не могу, т.к. не кодер.

  8. А зачем она продолжает брутить ip, когда найден пасс?
    Так же пишет много левых гудов, например
    58.72.89.130;
    58.76.225.254
    58.79.74.59

    1. Цель - перебор всех комбинаций, а не до первого гуда. Левые гуды - если libssh считает, что авторизация по указанным данным прошла, то что поделать.
      В любом случае исходник доступен и переписать под свои нужды никто не мешает.

      1. Факт в том, что Brutus до запуска SSH Bruteforce прекрасно, и без проблем работал долгое время, а теперь ни в какую не хочет запускаться. WTF?
        Я вижу только одну причинно-следственную часть, как теперь исправить эту проблему?

  9. Автору спасибо, хотя прога мою проблему не решила :( , но работает отлично.
    to SsS: прочел комменты - брутус после запуска проги работает в обычном режиме, результат нормальный, может какие изменения в системе были?

  10. Скажите, а возможно ли настроить брут через socks5 proxy. Где в исходниках нужно это изменить, подскажите, пожалуйста.

  11. Привет. Есть проблема с брутером. На некоторых серверах(Win2003, 2008) софт не запускается и выдает ошибку:
    sshb.exe - Application Error
    The application failed to initialize properly (0xc0150002).

    В чем может быть проблема? Спасибо.

  12. Те 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]

    1. Причем тут туннели какие-то? Ну да, срабатывания ложные бывают, но вся работа с SSH основана на сторонней библиотеке. Если хочется, чтобы не писало все подряд комбинации при некоторых ситуациях, то исходный код доступен, переделать никто не мешает.

  13. Лишь хотел уточнить - прога уже не рабочая, или мне дальше руки выпрямлять?:)
    Ибо если не рабочая то пусть люди знают и время не тратят:)

    А к автору никаких претензий, спасибо за то что потратил свое время на создание этой программы, для нас:)

    1. Что значит уже? SSH древний протокол, никто его не изменяет, по крайней мере в отношении базовой функциональности. Ещё бы вопросы актуальности блокнота или пейнта из винды ставили...

  14. Ну так вопрос стоит не о актуальности протокола а о актуальности брута:)
    У меня он почти все в гуды кидает, со всеми вариантами логинов паролей, и естественно подключится к таким серверам не удается.Видимо все-таки это у меня проблемы с брутом, а не у брута с ssh:) буду дальше кумекать.

    1. Есть такое понятие "защита от брута", я уже сказал, что тут нечему "ломаться". А поведение всегда можно исправить отредактировав исходный код.

  15. Здравствуйте. В папке с программой лежит библиотека ssh.dll. Я так понимаю в ней весь функционал по работе с ssh. Можно ли ее использовать в своих программах? Если да то где можно найти описание функций, параметров?

    P.S. Огромное спасибо за статьи по masm. С них начинал программировать.

  16. Почему часто один и тот же IP попадает в гуд с любым паролем?
    То есть
    30.15.16.17;root;passs
    30.15.16.17;root;123123
    30.15.16.17;root;ololo
    Брут как-то не правильно определяет удачный вход?
    Приходится искать только те строки, где нет повторов, не очень удобно. Можно ли это поправить?

    1. Можно. Берете гугл, ищете исходный код и документацию по libssh, правите, собираете проект с новой классной версией libssh.

      1. Я не силен в программировании. Как я понял вы больше этим брутом совсем не собираетесь заниматься?

        1. Нет. Я ни один проект с этого блога не поддерживаю. Максимум в течение недели после релиза какие-нибудь мелочи правлю.
          Да и не нужен такой брут, т.к. есть, например, THC-Hydra.

      2. Правда ли то, что SSH режет частые коннекты? Я хочу узнать, есть ли смысл ставить много паролей при бруте?

        1. Совсем не все так кошерно . И гидра и медуза развиваются только для linux . Любительские сборки из этих исходников под win в сети есть . Но поскольку изначально сорцы не подгонялись и не тестировались для винды , то это все работает до первого чиха . Кроме того нужно ставить питон и еще кучу библиотек . Мне , допустим , так и не удалось нормально завести гидру на 2003 деде .

  17. Нашёл интересный баг - софт не закрывает открытые сокеты. Если использовать достаточно большой список source IP, спустя какое-то время перестает брутить, ибо забивает все возможные порты.

    Просто решил сообщить (для тех, кто испытывал такую же проблему), фиксится легко в сорсах.

    1. Спасибо . Наблюдал это но , кажется , так и не нашел причину .
      От себя могу добавить что в функции
      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 . Хотя , по факту , сейчас работает и так :)

  18. Somebody у меня таже проблема, зависает если брутить из списка IP. кто может подправить это? я бы купил брут с вылеченными ошибками

    1. В общем так и есть , он нестабилен . И тут не только в незакрытых сокетах дело .
      На 2003 дедах у меня он вылетал при размере списка ip > 30kb . На хостовой семерке проблем с размером файла нет . Зато он крэшится при первом запуске и работает при повторном . По-моему проблема в потоках , если найду напишу .
      Кроме этого есть еще проблема с false-positive в sonicwall'ах . Но там хотя бы понятно откуда ноги и примерно как лечить .

  19. И превратить свой комп в круглосуточный сервер для брута ? А самому на чем в это время работать ?
    Это не говоря уже , что брутить со своего ip это в принципе ерунда .

    1. Предыдущий мой пост это ответ Kaimi на :

      Январь 13th, 2014 at 16:35
      Или просто поставить Linux и не выдумывать.

      1. Caterpillar, да теперь понял :) Если будет решение, пожалуйста отпиши здесь. Я тоже буду пробовать решить эту проблему. Спасибо

        1. Хотел написать , что хендлы от 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 .

          Бы бы неплохо прикрепить английский вариант интерфейса . Далеко не все деды понимают русский язык .
          Вот такие впечатления по новой версии .

          1. Проверь на своем роутере и корректном пароле, сработает или нет.
            Про вылет - больше деталей, либо крешдамп, либо собирай дебажную версию и пытайся повторить.
            Английский - потом перенесу все строки в ресурсы и сделаю определение языка системы и переключатель.

  20. Kaimi, спасибо за твою деятельность. Мог бы ты помочь мелким советом. Не могу запустить на vds win 2003 sshbrouteforce, вылетает ошибка The application falied to initialize properly (0x0150002).
    Dозможно нужно установить какие-то драйверы типа Microfost Visual C++ или Framework? Не мог бы ты подсказать как быть..

  21. Kaimi, в good летит много хоней топов, как бы пофиксить данный сабж? Имею в виду брутер\чекер показывает валид, но на самом деле нет к нему коннекта либо же fake ssh хонейтоп просто. Можно ли как то прикрутить проверку на коннект к тому же google.com? т.е. чекает, при удачном login;pass пингует на google если ок, в good.txt
    Спасибо

      1. У меня такая же проблема, можно ли как-то это исправить? 200 гудов и все fake.

        ___
        Сам не смогу добавить код, но если сможешь помочь, отблагодарю.

  22. Брут внезапно стал грузить мой процессор на 100% не зависимо от того, сколько потоков/ip и т.д. А не использует ли он вычислительную мощность моего ПК в неизвестных мне целях?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *