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

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

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

при работе команды админов

Я ему про Фому, а он мне про Ерёму. Я не одмин. Уясни себе это с третьего-то раза.

поздравляю, вас всех можно увольнять.

Отлично! А новых сотрудников фирма попробует завести с Луны. Потому как люди на Земле везде одинаковые.

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

Я ему про Фому, а он мне про Ерёму. Я не одмин. Уясни себе это с третьего-то раза.

И что? Как это связано с разговором то? :)

Отлично! А новых сотрудников фирма попробует завести с Луны. Потому как люди на Земле везде одинаковые.

Нет незаменяемых людей ;)

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

Я правильно вас понял, что если на одном сервере крутится sendmail, cyrus, squid, vsftpd, sshd, то у одно пользователя для каждого демона должны быть разные пароли?

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

Увольнять тут как раз инфобезопасников нужно, кстати, если все знают пароли всех (я даже встречал когда у всех был один и тот же пароль 567890 для всех), и нет никакого разграничения доступа. Ну и администраторов, которые не форсируют смену паролей и не организуют централизованные хранилища данных/программ. Рядовые работники-то тут причём?

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

если систему взломают, неважно как, то получат правильные пароли

Если войдут как root, то уже неважно, какие там пароли они увидят. Если не как root, то с rw------- лог не прочитать.

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

И что? Как это связано с разговором то? :)

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

Нет незаменяемых людей ;)

Несомненно! Только я ни разу не видел смену всех сотрудников разом. Ежели менять по одному, то будет то же, что и с обезьянами, бананом и поливанием водой: старшие товарищи покажут новичку как у них принято работать. И всё продолжится по-старому.

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

Ты можешь как-то суть донести? А то я уже не улавливаю дискуссии.

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

Твою контору это разорит?

Нет конечно. Я говорил в контексте сервиса.
Я выступаю за открытые и бесплатные.

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

Почему неважно то? Ну взломали один сервер, ну получили бы в обычном случае хеши паролей или вобще ничего, если ldap. А так получат сразу пароли открытым текстом. Если, допустим, в системе прикручен ldap, то эти пароли могут подойти к другим серверам.

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

Я выступаю за открытые и бесплатные.

Жаль, что не 'свободные' :-P

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

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

facepalm

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

да. запретить отправлять нешифрованную почту.

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

нет. зарабатывать будут сотрудники, которые «по ошибке» сливают документы конкуренту. Ога.

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

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

он говорит о том, что ТЫ будешь входить куда надо «без пароля». Вообще. Разве это для тебя плохо?

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

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

да

Ты феномен, тебя

нет. Тебя. Я НЕ ВВОЖУ ПАРОЛИ. У меня везде разные, вроде wfaJVr|26. И я их НЕ ПОМНЮ. На серверах так вообще в 2048 бит минимум. А уж если и ввожу, то раз в году, и _обязательно_ на знакомой старой клавиатуре. Причём ЭТОТ пароль НИГДЕ не запоминается.

Вообще говоря, пароли вводят только ламеры с тупым одмином, который до сих пор в 80х годах прошлого века.

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

Я правильно вас понял, что если на одном сервере крутится sendmail, cyrus, squid, vsftpd, sshd, то у одно пользователя для каждого демона должны быть разные пароли?

для _демона_ пароля вообще быть не должно. для юзера sshd должен быть ключ. для mail ИМХО достаточно пароля, там всё равно в открытую передаётся, потому пароль нужен лишь для того, что-бы кто угодно спам с твоего имени не слал. FTP не нужен. Если кому-то нужен, то это специальный юзер без доступа (возможно тот-же самый, что юзает например wine. FTP нужен для небезызвестной ОС, которая других протоколов не понимает).

на кой ляд тебе в squid заходить под юзером, да ещё и удалённо - мне неясно.

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

Если войдут как root, то уже неважно, какие там пароли они увидят. Если не как root, то с rw------- лог не прочитать.

могут войти локально, тогда свои rw------- можешь засунуть себе в…

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

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

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

Несомненно! Только я ни разу не видел смену всех сотрудников разом. Ежели менять по одному, то будет то же, что и с обезьянами, бананом и поливанием водой: старшие товарищи покажут новичку как у них принято работать. И всё продолжится по-старому.

а ты-бы стал работать в хлеву, где все гадят под себя? Уборщицей?

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

для _демона_ пароля вообще быть не должно

Я не про пользователя daemon, я просто думал, как это правильно назвать «служба», «сервис», «сервер» :-)

Изначально речь шла о том, что если не ходить root'ом, а делать ″su -″, то для взлома ssh нужно подбирать не только пароль, но и имя пользователя. Если рассматривать взлом исключительно «снаружи» то это так, а если считать, что у злоумышленника есть доступ в локальную сеть, то ему легче получить пароли обычных пользователей, которые ходят в почту, squid, ftp, чем пользователя root, которых ходит только по ssh и больше ничем не пользуется.

Если говорить, что в ssh можно ходить только по ключу, тогда вобще вся тема с первого поста ни о чём.

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

Изначально речь шла о том, что если не ходить root'ом, а делать ″su -″, то для взлома ssh нужно подбирать не только пароль, но и имя пользователя. Если рассматривать взлом исключительно «снаружи» то это так, а если считать, что у злоумышленника есть доступ в локальную сеть, то ему легче получить пароли обычных пользователей, которые ходят в почту, squid, ftp, чем пользователя root, которых ходит только по ssh и больше ничем не пользуется.

для доступа «изнутри» ты должен знать И имя юзера/его пароль, И пароль рута. Предполагается, что имя юзера тебе практически ничего ценного не даст - если ты получил пароль и имя дебила, то и порадует тебя это не слишком сильно - кто доверит дебилу что-то ценное? А вот рут использует _свою_ учётку (которая не дебила), и с неё всё делает (читает свою почту, смотрит свою порнуху, и так далее). С неё же он и одминит. Если его прав не хватает, то он юзает su/sudo (последнее лучше). Как не странно, это нужно довольно редко - например админ может у себя написать и отладить какой-нить скрипт, и ему понадобится только _одна_ команда, что-бы заставить _всех_ юзеров юзать его скрипт.

В принципе, так оно и задумано в ubuntu, только 95% дебилов забыли сделать себе учётку, и зачем-то юзают админскую.

Если говорить, что в ssh можно ходить только по ключу, тогда вобще вся тема с первого поста ни о чём.

да. По ключу. Причём НЕ руту. Вход рута должен быть _вообще_ закрыт. И по ключу и по паролю. Можно и патч сделать, ибо вход с правами рута - это УЖЕ взлом.

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

Перекрывая на сервер доступ руту, нужно делать отдельного пользователя, который может делать ″su″, и чтобы этот пользователь ни чем больше не занимался. То есть из под этого пользователя не работали с почтой/squid/ftp, а только ходили по ssh. А ещё лучше запретить этому пользователю изменять файлы в его домашнем каталоге.

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

PasswordAuthentication no

/thread

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

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

PasswordAuthentication no

Это и ослу ясно, речь о другом.

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

ps: уйди, виртуал.

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

Не понимаю в чём смысл обсуждения.

Набить базу паролей, которые НЕЛЬЗЯ использовать, сделанные на основе брутфорса :)

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

Набить базу паролей, которые НЕЛЬЗЯ использовать, сделанные на основе брутфорса :)

Лол, тогда взломщик точно будет знать какие пароли использовать не надо. И сгенерит новый словарик.

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

Лол, тогда взломщик точно будет знать какие пароли использовать не надо. И сгенерит новый словарик.

Который тут же попадет в тот же список.

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

А когда пароли кончатся?

pwgen 50
aiwooluofa9eb4cheeQuemoseis5baig8ienaiyahTud5haep3
unahh2ahyieseQuughohjie6eeCie2sahQueeteth3aeSheeHa
iefeichufoh0moeghei9Uheo6chaik7Bei8Ohc4Uf5fae0nahR
ueng1Izu6ie3Eiril7hu1phee6uPahy1queithinail4yaeNeY
uLahmaet4quooxahwi6gangaeKoocohc3duexaa3di9lie4ala
eiv1eizahGhei6Ahci6Ooh0Afoo2MahliFiexahye0vah5Teim
ahc5the2gah6phaithohx2aeKei3Pa0tu0Geinohg1Iegu9oom
ahX8maiJai0Ootahtoo2eechiegh7ieGhuemicheecooxees0I
theix4euy5hu5chaso3jeL1maeXoxohwie5yoh7ibie2shaeyo
ahm2aemuiteiKietiengeikeete5sahjaihaevaiy8Ar3Ote8c
ciacaYie8Xooch6omah9aiTah1Ephahf4quaihuoRai8oeReez
cuJaiGhae3eepaiS3vouMiuLe8Oaphahta8gohbeo4Pae7oohu
iec2lah5PeeMoociumae0aengo0RooF5ech2oweboole7tin6k
Uchiepohtoob1wi7Poodie1ougeibaiboo3eitahheuzohsh7u
ahbi1aimohkeicaengahYeikeoph9xei0Ir2iukohxohboonai
roorei6fai0peip4heesa5oo2ohC4Egh5janais3zeiThevuiz
aeghieVai3iethoo1Oothohph2paequah1Jio1ahl4soo0CoV1
ooQuah1saix9oogh0angoowoofai9GaeNgoh8kahtoo2Aechoh
kah9OTaikeph2eizi6thoa0ush5Hi1joh0iya9ahd2ioM8uphe
zeir0euj2iexoshi8ohgei9gohch7aeghiecoque7ri4eac4Pe

А когда такие тоже попадут в блеклист? Перебирать пароли намного проще, чем их менять и запоминать.

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

Перекрывая на сервер доступ руту, нужно делать отдельного пользователя, который может делать ″su″, и чтобы этот пользователь ни чем больше не занимался. То есть из под этого пользователя не работали с почтой/squid/ftp, а только ходили по ssh. А ещё лучше запретить этому пользователю изменять файлы в его домашнем каталоге.

зачем такие сложности? Почему этот пользователь(ака администратор) не может читать почту и т.д.?

Т.е. ты предлагаешь администратору помнить три пароля:

  1. пароль рута
  2. пароль пользователя для входа в систему
  3. пароль пользователя для набора su

и так для каждой машины? не слишком-ли заморочено?

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

А когда пароли кончатся?

ну ты посчитай сначала, СКОЛЬКО паролей сделает твоя pwgen, и не в 50, а в 6 символов. И КОГДА они кончаться.

Я тоже хочу жить вечно.

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

[a-zA-Z0-9] 6^62

Если статистика будет собираться с 1к машин, которые брутят по 100 паролей в секунду? А если с миллиона машин, которые брутят по 100000 паролей в секунду?

P.S. Тся!

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

которые брутят по 100000 паролей в секунду? P.S. Тся!

сам-то понял, что написал? Попробуй брутить хотя-бы по 10 паролей в секунду, и узнаешь, как и когда они «кончатЬся». Именно тЬся, ибо они НЕ СДЕЛАЮТ, а БУДУТ ДЕЛАТЬ - кончаться. Причём вечно.

PS: у врагов могут быть 100500 машин, которые брутят по 100500 паролей. Но у меня ОДИН сервер, который обрабатывает ОДИН логин. А форкается он ПОСЛЕ логина. Потому _работать_ могут 100500 юзеров, но _заходить_ могут только по одному.

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

Попробуй брутить хотя-бы по 10 паролей

Я не говорю про брутить с одной машины.

У тебя одна машина, у меня одна машина, у таза одна машина. Ещё у миллиона человек по одной машине. Если все будут добавлять пароли в один чёрный список, то они быстро кончатся.

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

Я не говорю про брутить с одной машины.

ты говорил брутить ОДНУ машину.

У тебя одна машина, у меня одна машина, у таза одна машина. Ещё у миллиона человек по одной машине. Если все будут добавлять пароли в один чёрный список, то они быстро кончатся.

миллион машин - это совсем не много. Это файл в ~50Мб, и найти нужный пароль там можно за 20 циклов чтения.

Или ты хочешь сказать, что если миллион машин будут раз в 3 секунды читать 20 раз кусок памяти в 50Мб, то это кто-то заметит?

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

Большая часть дистрибутивов из коробки разрешают логин рута.

Тю!

anonymous
()

Я так понял, что с этим патчем и удачный логин/пароль засветится в /var/log/auth.log, что не есть хорошо.

Jurik_Phys ★★★★★
()

Почитал тему, ради интереса заглянул в /var/log/auth.log на своём домашнем, как я думал, никому не нужном сервачке:

Feb  5 11:21:13 maxwell sshd[32107]: Failed password for root from 61.136.171.198 port 35761 ssh2
Feb  5 11:21:14 maxwell sshd[32107]: Received disconnect from 61.136.171.198: 11: Bye Bye [preauth]
Feb  5 11:21:23 maxwell sshd[32109]: Failed password for root from 61.136.171.198 port 36368 ssh2
Feb  5 11:21:23 maxwell sshd[32109]: Received disconnect from 61.136.171.198: 11: Bye Bye [preauth]
Feb  5 11:21:31 maxwell sshd[32112]: Failed password for root from 61.136.171.198 port 36994 ssh2
Feb  5 11:21:31 maxwell sshd[32112]: Received disconnect from 61.136.171.198: 11: Bye Bye [preauth]
Feb  5 11:21:40 maxwell sshd[32114]: Failed password for root from 61.136.171.198 port 37509 ssh2
Feb  5 11:21:40 maxwell sshd[32114]: Received disconnect from 61.136.171.198: 11: Bye Bye [preauth]
....

Я думал, это редкость, а оказалось, очень даже частое явление.

Беда!!! А учитывая вот это:

cat /etc/ssh/sshd_config | grep PermitRoot
PermitRootLogin yes
дела были совсем плохи.

Jurik_Phys ★★★★★
()

Если кому интересно, что будет делать сферический скрипт-кидди в ваккуме после успешного логина в вашу систему, можно посмотреть реплеи тут: http://iwatchedyourhack.org/.

Прямая ссылка на эпичный вин: http://iwatchedyourhack.org/node/8

Записано вроде бы с помощью SSH-ханипота Kippo.

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

хотя смахивает на троллинг.

useradd — это и есть самый настоящий троллинг.

Впринципе можно подсовывать взломщику настоящую ОС без подобных «приколов», но в большинстве случаев medium ineraction honeypot'а достаточно для того чтобы получить ссылки на бинарники, которые взломщик хотел установить в систему.

Kippo еще выдает забавные фразы при попытке запуска исполняемых файлов из текущей директории.

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

Упустил, что это kippo, а ну тогда всё ясно, а то я подумал, что это атакующий так троллит )

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