LINUX.ORG.RU

Увидеть пароли, которыми брутят твой SSH-сервер

 , , ,


17

3

Один из вариантов, который выбрал я — пропатчить OpenSSH (он используется в большинстве дистрибутивов).

Патч:

--- old/auth-passwd.c	2009-03-07
+++ new/auth-passwd.c	2013-01-30
@@ -86,6 +86,8 @@
 	static int expire_checked = 0;
 #endif
 
+	logit("auth_password: username: `%s' password: `%s'", authctxt->user, password);
+
 #ifndef HAVE_CYGWIN
 	if (pw->pw_uid == 0 && options.permit_root_login != PERMIT_YES)
 		ok = 0;

Теперь мы будем в /var/log/auth.log (или где там у вас пишутся логи ssh-сервака) видеть, чем именно нас пытаются «брутить» нехорошие дяденьки:

Jan 30 08:54:46 POWER sshd[12266]: reverse mapping checking getaddrinfo for corporat190-024010011.sta.etb.net.co [190.24.10.11] failed - POSSIBLE BREAK-IN ATTEMPT!
Jan 30 08:54:46 POWER sshd[12266]: auth_password: username: `root' password: `cacutza'
Jan 30 08:54:46 POWER sshd[12266]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 08:54:48 POWER sshd[12266]: Failed password for root from 190.24.10.11 port 41016 ssh2
Jan 30 08:54:52 POWER sshd[12266]: auth_password: username: `root' password: `root2010'
Jan 30 08:54:53 POWER sshd[12266]: Failed password for root from 190.24.10.11 port 41016 ssh2
Jan 30 08:54:53 POWER sshd[12266]: Connection closed by 190.24.10.11 [preauth]
Jan 30 08:54:53 POWER sshd[12266]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 09:06:05 POWER sshd[12275]: reverse mapping checking getaddrinfo for corporat190-024010011.sta.etb.net.co [190.24.10.11] failed - POSSIBLE BREAK-IN ATTEMPT!
Jan 30 09:06:05 POWER sshd[12275]: auth_password: username: `root' password: `cacutza'
Jan 30 09:06:06 POWER sshd[12275]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 09:06:08 POWER sshd[12275]: Failed password for root from 190.24.10.11 port 52188 ssh2
Jan 30 09:06:08 POWER sshd[12275]: auth_password: username: `root' password: `handler'
Jan 30 09:06:10 POWER sshd[12275]: Failed password for root from 190.24.10.11 port 52188 ssh2
Jan 30 09:06:10 POWER sshd[12275]: auth_password: username: `root' password: `centosadmin'
Jan 30 09:06:13 POWER sshd[12275]: Failed password for root from 190.24.10.11 port 52188 ssh2
Jan 30 09:06:13 POWER sshd[12275]: Connection closed by 190.24.10.11 [preauth]
Jan 30 09:06:13 POWER sshd[12275]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 09:17:25 POWER sshd[12352]: reverse mapping checking getaddrinfo for corporat190-024010011.sta.etb.net.co [190.24.10.11] failed - POSSIBLE BREAK-IN ATTEMPT!
Jan 30 09:17:25 POWER sshd[12352]: auth_password: username: `root' password: `cacutza'
Jan 30 09:17:25 POWER sshd[12352]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 09:17:28 POWER sshd[12352]: Failed password for root from 190.24.10.11 port 41523 ssh2
Jan 30 09:17:30 POWER sshd[12352]: auth_password: username: `root' password: `private'
Jan 30 09:17:33 POWER sshd[12352]: Failed password for root from 190.24.10.11 port 41523 ssh2
Jan 30 09:17:35 POWER sshd[12352]: Connection closed by 190.24.10.11 [preauth]
Jan 30 09:17:35 POWER sshd[12352]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 09:28:46 POWER sshd[12406]: reverse mapping checking getaddrinfo for corporat190-024010011.sta.etb.net.co [190.24.10.11] failed - POSSIBLE BREAK-IN ATTEMPT!
Jan 30 09:28:46 POWER sshd[12406]: auth_password: username: `root' password: `cacutza'
Jan 30 09:28:46 POWER sshd[12406]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root
Jan 30 09:28:48 POWER sshd[12406]: Failed password for root from 190.24.10.11 port 50360 ssh2
Jan 30 09:28:51 POWER sshd[12406]: auth_password: username: `root' password: `root123'
Jan 30 09:28:53 POWER sshd[12406]: Failed password for root from 190.24.10.11 port 50360 ssh2
Jan 30 09:28:56 POWER sshd[12406]: Connection closed by 190.24.10.11 [preauth]
Jan 30 09:28:56 POWER sshd[12406]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=190.24.10.11  user=root

Простите, если боян.

Ответ на: комментарий от ziemin

Кстати, 202.117.3.104 меня не брутил.

Но брутил другой из 202.0.0.0:

# cat /var/log/auth.log | grep '202.'
Jan 28 19:00:15 POWER sshd[2021]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.114.227.126  user=root
Jan 28 19:00:17 POWER sshd[2021]: Failed password for root from 203.114.227.126 port 41763 ssh2
Jan 28 19:00:17 POWER sshd[2021]: Received disconnect from 203.114.227.126: 11: Bye Bye [preauth]

mr_doug
() автор топика
Ответ на: комментарий от mr_doug

Блин, я облажался с регэкспами в грепе.

mr_doug
() автор топика

Один из вариантов, который выбрал я — пропатчить OpenSSH

А какие другие варианты?

pkurg ★★★★
()
Ответ на: комментарий от mr_doug

kippo, например, логирует сессию (!) и сохраняет wget'нутые файлы :)

ziemin ★★
()
Ответ на: комментарий от mr_doug

Узнать юзернейм для удалённого перебора тупым ботом паролей действительно сложно. Но, пароль обычного пользователя может использоватся не только для ssh, но и для почты, авторизации в squid и т.д. И получив этот пароль можно приготовить для этого пользователя правильный шелл с правильным su и подождать, когда он будет вводить пароль рута.

Поэтому есть альтернативная точка зрения, что когда нужен root, нужно заходить им по прямо, не вызывать su от обычного пользователя, а от перебора паролей закрываться нестандартным портом и/или knockd.

А показанные вами перехваченные пароли относятся к «слабым» — нет заглавных букв, символов пунктуации, некоторые короче 8 символов, ИМХО, нет особого смысла создавать базу данных по ним.

Ну про cracklib уже написали, замечу только, что в инете встречаются дополнительные словори для неё, так что если возникнет желание сделать список слов публичным, оформите его в файл в этом формате, чтобы его легко можно было использовать в pam_pwcheck

mky ★★★★★
()

а вот эти боты свой зловред под какую архитектуру заливают? Или на месте его компилируют?

Harald ★★★★★
()
Ответ на: комментарий от Harald

а вот эти боты свой зловред под какую архитектуру заливают? Или на месте его компилируют?

Они ещё даже не залогинились. Чтобы к тебе залогинились, нужен пароль `cacutza' поставить! :-)

@leave: кому легче PAM мучить, кому легче 1 строчку кода поправить.

@mky: подготовить правильный «su»? О'кей, даже допустив чисто теоретическую возможность этого, что мне помешает less `which su`, если там вдруг скриптятина какая?

mr_doug
() автор топика
Ответ на: комментарий от leave

я так и не понял, нафига вы это делали :) один модуль pam и дело в шляпе

Парни то не в курсе были :) Оказалось легче сделать быстрохак.

tazhate ★★★★★
()

с ума сошёл что-ли? Добавь проверку правильности пароля, и пиши в лог только НЕ правильные. Ну или вообще парольный доступ отключи.

drBatty ★★
()
Ответ на: комментарий от mky

Но, пароль обычного пользователя может использоватся не только для ssh, но и для почты, авторизации в squid и т.д.

таких идиотов ещё не отстреляли?

drBatty ★★
()
Ответ на: комментарий от drBatty

Добавь проверку правильности пароля, и пиши в лог только НЕ правильные

Как ты думаешь, если взломщик получит лог и увидит там такие попытки входа:
Jan 30 08:54:52 POWER sshd[12266]: auth_password: username: `root' password: `linux.orh.ri'
Jan 30 08:54:54 POWER sshd[12266]: auth_password: username: `root' password: `linux.org.ri'
то трудно ли догадаться какой пароль настоящий админ не смог ввести первый раз из-за опечатки?

zolden ★★★★★
()

ага и в логах также оседает реальный пароль в открытом виде? я бы всё таки логировал только в случае неудачи.

mm3 ★★★
()
Ответ на: комментарий от mr_doug

Такое запомнить невозможно. Значит, юзвери это будут записывать где-либо. А это зло :-)

Поэтому надо юзать gpw

Dobriy_i_Prostoy
()
Ответ на: комментарий от zolden

Как ты думаешь, если взломщик получит лог и увидит там такие попытки входа:

Как говорилось выше, chmod 600, и взломщик не получит лог.

З.Ы. ТС, спасибо за идею, надо попробовать.

unfo ★★★★★
()
Ответ на: комментарий от tazhate

ОС уже разучилась хранить пароли?

А если еще не в ОС? А если ОС не твоя, а чья-то домашняя? А хранилка паролей надежная? А сертификат есть?

cipher ★★★★★
()
Последнее исправление: cipher (всего исправлений: 1)
Ответ на: комментарий от zolden

Как ты думаешь, если взломщик получит лог и увидит там такие попытки входа:

я думаю, не нужно входить в продакшен пьяным. А по трезвому делу у мну буквы не путаются. Ну и конечно вообще не нужно по паролю входить.

drBatty ★★
()
Ответ на: комментарий от unfo

Как говорилось выше, chmod 600, и взломщик не получит лог.

chmod 600 не панацея от локальной атаки. Ну и ещё от многих атак.

drBatty ★★
()
Ответ на: комментарий от cipher

А если еще не в ОС? А если ОС не твоя, а чья-то домашняя? А хранилка паролей надежная? А сертификат есть?

мой «сертификат» можешь поглядеть здесь в моём профиле. А если ОС домашняя, то я, хвала Патрегу, с мобилы могу загрузится.

drBatty ★★
()
Ответ на: комментарий от drBatty

chmod 600 не панацея от локальной атаки. Ну и ещё от многих атак.

Если есть хороший локальный эксплоит, то и лог читать совершенно не нужно :)

unfo ★★★★★
()
Ответ на: комментарий от tazhate

будут хранится регулярно все такие пароли из баз, то бишь блеклист.

не проще ли sshguard поставить?

sergej ★★★★★
()
Ответ на: комментарий от unfo

Если есть хороший локальный эксплоит, то и лог читать совершенно не нужно

ну ты его уже нашёл? Почём продашь?

drBatty ★★
()
Ответ на: комментарий от tazhate

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

anonymous
()
Ответ на: комментарий от drBatty

мой «сертификат»

Не твой сертификат, а сертификат программы. Да, иногда тоже нужно.

cipher ★★★★★
()
Ответ на: комментарий от tazhate

А у меня куча юзверов есть, которые используют unix логин, в том числе и в ssh. Им бы я запретил законодательно :)

Почему Одмины считают себя центром вселенной, ну или по крайней мере фирмы, в которой они работают? Ты кто такой, чтобы решать что можно пользователям, а что «запретить законодательно»? Есть 1000 и один способ решить проблему слабого пароля на компьютере пользователя (не сервере) не трогая этот самый пароль. Я в начале как пользователь тоже придумывал себе самые сложные пароли, но поскольку через месяц они устаревали и требовалось их менять, через какое-то время мне это надоело и я перешёл на qwerty и прочие вариации. Коллега справа использует parolN, N=1, 2, ... с автологином. Коллега слева - меняет последнюю букву каждый месяц. Коллега спереди - ... И вообще, сотрудники, занимающиеся одинаковыми обязанностями обычно знают пароли друг друга, так как начальство требует выполнение работы, а не игры в «у кого самый сложный пароль». Это тебе рассказ «с той стороны баррикады». Это рано или поздно произойдёт в любом коллективе - от вырождения пароля в qwerty, до свободного обмена ими между коллегами. А твоя задача, как админа - всего лишь обеспечить по возможности бесперебойное функционирование техники и своевременное разрешение возникших проблем, дабы сотрудники могли выполнить свои непосредственные обязанности и заработать денег в том числе и тебе на зряплату.

anonymous
()
Ответ на: комментарий от tazhate

Я из дома по удаленке подключаюсь, или даю кому-то доступ по удаленке, к примеру. Кстати, я вот стою перед компом и наблюдаю приглашение к вводу логина и пароля для входа в ОС. Это офисная сеть или уже нет? Я к чему это все, пасскиперы - не панацея, их может и не быть.

cipher ★★★★★
()
Ответ на: комментарий от tazhate

это руками всегда генерировать пароль самому для юзверей.

Я бы за такое тебя за яйца подвесил бы, будь моя воля. Представь на секунду, что ты генеришь пароль KHK+8f7L5OPOAlJlDoXMxA== и говоришь своему директору, чтобы он его а) использовал для входа в винду и б) никуда не записывал. Какими глазами он на тебя посмотрит и что сделает? Правильно, в лучшем для тебя случае пошлёт тебя. В худшем - уволит.

anonymous
()
Ответ на: комментарий от drBatty

Но, пароль обычного пользователя может использоватся не только для ssh, но и для почты, авторизации в squid и т.д.

таких идиотов ещё не отстреляли?

Я тебе больше скажу - быстрее переведуться админы, чем такие пользователи. Лень человеческую невозможно побороть.

anonymous
()
Ответ на: комментарий от leave

я так и не понял, нафига вы это делали :) один модуль pam и дело в шляпе

А если его вставить в конец проверки - то он ещё и пароли успешно зашедших пользователей не будет показывать :-)

Nastishka ★★★★★
()
Ответ на: комментарий от anonymous

Почему Одмины считают себя центром вселенной, ну или по крайней мере фирмы, в которой они работают?

Крайне неправильный вывод из моих слов.

Ты кто такой, чтобы решать что можно пользователям, а что «запретить законодательно»?

Отственный за безопастность, если ты не понял. И если утянут данные - отвечать за это буду я, а не пользователь.

Я в начале как пользователь тоже придумывал себе самые сложные пароли, но поскольку через месяц они устаревали и требовалось их менять, через какое-то время мне это надоело и я перешёл на qwerty и прочие вариации.

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

И вообще, сотрудники, занимающиеся одинаковыми обязанностями обычно знают пароли друг друга, так как начальство требует выполнение работы, а не игры в «у кого самый сложный пароль»

Уволить всех.

А твоя задача, как админа - всего лишь обеспечить по возможности бесперебойное функционирование техники и своевременное разрешение возникших проблем

Не путай админа и эникейщика.

tazhate ★★★★★
()
Ответ на: комментарий от anonymous

Я бы за такое тебя за яйца подвесил бы, будь моя воля.

Оставь свои эротические фантазии при себе.

Представь на секунду, что ты генеришь пароль KHK+8f7L5OPOAlJlDoXMxA== и говоришь своему директору, чтобы он его а) использовал для входа в винду и б) никуда не записывал. Какими глазами он на тебя посмотрит и что сделает? Правильно, в лучшем для тебя случае пошлёт тебя. В худшем - уволит.

Представил. Только вот есть момент: 1) Ничего не мешает пароль тупо запомнить в самой ОС 2) Я уже говорил, что склоняюсь к ключам. Плюс, мы думаем о внедрии 802.1x у себя, тоже хороший выход.

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

Отственный за безопастность

Ну так и отвечай за безопасность. Пароли пользователей-то тут при чём? А ещё пользователь может какой-нибудь важный документ по ошибке отправить по почте вашим конкурентам. Запретить им пользоваться почтой?

Уволить всех.

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

Не путай админа и эникейщика.

Админ это следующая ступень после эникея? Ну тогда извини, я в вашей иерархии не разбираюсь.

anonymous
()
Ответ на: комментарий от anonymous

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

Я говорил про шаринг паролей между админами. Читай не жопой, а глазами.

Ну так и отвечай за безопасность. Пароли пользователей-то тут при чём?

Нет никакого желания объяснять причем, серьезно. Если ты этого не понимаешь, то и не лезь.

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

Представил. Только вот есть момент: 1) Ничего не мешает пароль тупо запомнить в самой ОС 2) Я уже говорил, что склоняюсь к ключам. Плюс, мы думаем о внедрии 802.1x у себя, тоже хороший выход.

У тебя какое-то странное представление о паролях и их применении в реальной ситуации простым офисным планктоном, как нас принято называть в вашей среде. Это для меня, стороннего админских дел человека, странное. Возможно в среде админов это обычное представление.

anonymous
()
Ответ на: комментарий от anonymous

У тебя какое-то странное представление о паролях и их применении в реальной ситуации простым офисным планктоном, как нас принято называть в вашей среде.

Совершенно не странное. Более того, чтобы все сделать за них и сделать им красиво - у нас есть саппорт ;)

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

Я говорил про шаринг паролей между админами. Читай не жопой, а глазами.

Где в фразе «Уволить всех.» говориться про админов? Ещё раз: я тебе пару постов выше обрисовал ситуацию со стороны простого пользователя. Я инженегр, мой коллега - инженегр. И ежели кто-то из нас не придёт на работу по какой-либо причине, начальник подойдёт к другому и скажет: «Надо!». И вот я взмыленный звоню коллеге и прошу его сказать мне пароль, потому что только на его компе есть необходимая мне программа/информация. Осознай уже, что есть идеалистическое представление одминов о том, как должны работать хомячки на компах, а есть реальная ситауция, в которой все эти ваши навороты безопасности* только добавляют геморроя, ничем не повышая безопасность, а даже снижая её (qwerty-like пароль, обмен паролями, и т. п.).

---

* надеюсь, разговор только про информационную безопасность.

anonymous
()
Ответ на: комментарий от anonymous

Где в фразе «Уволить всех.» говориться про админов?

Я надеялся, что ты поймешь это из контекста, о котором сам же и говорил.

Ещё раз: я тебе пару постов выше обрисовал ситуацию со стороны простого пользователя.

И в чем же я ей перечу? Не понимаю сути мысли.

И вот я взмыленный звоню коллеге и прошу его сказать мне пароль, потому что только на его компе есть необходимая мне программа/информация

Желаю, чтоб тебя почаще мылили. Потому что один сотрудник (при работе команды админов, например) должен уметь заменить другого целиком. В том числе и наборы софта и прочее. Это НЕ должно быть проблемой. Если у вас без компа какого-то сотрудника что-то критичное нельзя сделать - поздравляю, вас всех можно увольнять.

Осознай уже, что есть идеалистическое представление одминов о том, как должны работать хомячки на компах, а есть реальная ситауция, в которой все эти ваши навороты безопасности* только добавляют геморроя, ничем не повышая безопасность, а даже снижая её (qwerty-like пароль, обмен паролями, и т. п.).

Ты видел, какие навороты безопастности в hp, dell, прочих больших компаниях? И ничего, не жалуются. Ибо бумажку подписали, при приеме на работу.

tazhate ★★★★★
()
Ответ на: комментарий от drBatty

А по трезвому делу у мну буквы не путаются

т.е. ты печатаешь вслепую со стопроцентной безошибочностью, без опечаток, даже на незнакомой/новой клавиатуре, и наверяка везде поменял дефолтные 3 попытки ввода на однократную попытку.
Ты феномен, тебя в книгу рекордов Гинесса нужно.
Или в банку с формалином

zolden ★★★★★
()
Ответ на: комментарий от mr_doug

что мне помешает less `which su`, если там вдруг скриптятина какая?

То, что это нужно делать каждый раз. И уж тогда /usr/bin/which или как там, а то его можно переопределить через alias.

А если начитаться журнала хакер, дак может вобще будет «правильный» шелл (загружаемый через .bash_profile) :-)

А то, что вы пишете в логи все пароли подряд это совсем плохо. Ведь если систему взломают, неважно как, то получат правильные пароли реальных пользователей, а они, к сожалению, могут совпадать на разных серверах. И это, ИМХО, пока не решёная задача, как заставить пользователя не использовать один и тот же пароль на всех серверах.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.