vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2007-02-12 03:22 pm

Офигеть, не встать.



В первый раз вижу zero-day эксплойт к приличной операционке, выполняемый одной штатной шелловской командой. Вернее даже добавлением двух букв в стандартную команду.

Подробности (pdf)
via [livejournal.com profile] avva

P.S. IP-адрес я, конечно, затер. Но мог бы и не затирать - он из 10.0.0.0/8

[identity profile] ktn-zoidberg.livejournal.com 2007-02-12 12:34 pm (UTC)(link)
на нормальных серваках telnetа уже лет 5 минимум быть недолжно...

[identity profile] qehgt.livejournal.com 2007-02-12 12:42 pm (UTC)(link)
интересно, что раньше было - обнаружили, что логин по telnet'у всегда проходит (а потом в исходниках нашли причину). Или исходники смотрели, и обнаружили там эту бяку?
lodin: A bearded hacker in a hat (Default)

I couldn't agree more

[personal profile] lodin 2007-02-12 01:05 pm (UTC)(link)
Только звери об этом не знают, они неграмотные (с).

На LOR-е обсуждалось, что иногда (а) требуют телнет, потому что он в бумажке записан (б) инфраструктура завязана на телнет.

[identity profile] b-a-t.livejournal.com 2007-02-12 01:06 pm (UTC)(link)
Не всегда, а с -f.

[identity profile] qehgt.livejournal.com 2007-02-12 01:13 pm (UTC)(link)
Не надо занудствовать, это ж и так понятно.

[identity profile] http://users.livejournal.com/_nik_/ 2007-02-12 02:11 pm (UTC)(link)
В 5.9 не воспроизвелось :o(

[identity profile] asphyx-lj.livejournal.com 2007-02-12 02:36 pm (UTC)(link)
А казалось бы, просто взять, да проверить, есть ли такой юзер...

[identity profile] t-mike.livejournal.com 2007-02-12 03:01 pm (UTC)(link)
и telnets тоже?

[identity profile] blacklion.livejournal.com 2007-02-12 03:05 pm (UTC)(link)
А если есть -- это нормально без пароля пускать, да?

[identity profile] michaelselehov.livejournal.com 2007-02-12 03:16 pm (UTC)(link)
А у тебя получилось? Я на наших компах воспроизвести не смог...

[identity profile] blacklion.livejournal.com 2007-02-12 03:18 pm (UTC)(link)
Заходи -- покажу.

[identity profile] asphyx-lj.livejournal.com 2007-02-12 03:27 pm (UTC)(link)
Юзер с именем "-fvitus"? Сомневаюсь, что такой будет :)

Кстати, NetKit'овский telnetd просто делает вот так:

if (getenv("USER")) {
  addarg(&avs, getenv("USER"));
  if (*getenv("USER") == '-') {
    write(1,"I don't hear you!\r\n",19);
    syslog(LOG_ERR,"Attempt to login with an option!");
    exit(1);
  }
}


Так что ничто, начинающееся с "-" не подсунешь.

[identity profile] feldgendler.livejournal.com 2007-02-12 03:37 pm (UTC)(link)
Правильное решение -- использовать -- (два минуса), когда передаёшь параметры утилитам. В данном случае telnetd зовёт, условно говоря, "login $username", а надо "login -- $username".\

Проверять наличие юзеров -- не telnetd забота. Этим как раз занимается login.

[identity profile] asphyx-lj.livejournal.com 2007-02-12 03:42 pm (UTC)(link)
Да, только не все login'ы такую нотацию понимают. Линуксовый, из пакета shadow, -- не понимает. Как вариант -- отучить login понимать запись -fuser, т.е. одним параметром.

[identity profile] feldgendler.livejournal.com 2007-02-12 03:48 pm (UTC)(link)
В случае, когда login не понимает "--" (это можно проверить в configure), можно просто запрещать имена пользователей, начинающиеся с минуса, так как не существует безопасного способа передать их в login.

[identity profile] asphyx-lj.livejournal.com 2007-02-12 03:54 pm (UTC)(link)
На каком уровне? В случае netkit'а, как раз такая проверка и происходит в самом telnetd (см. выше).

[identity profile] feldgendler.livejournal.com 2007-02-12 03:55 pm (UTC)(link)
Да, на уровне telnetd, конечно.

[identity profile] blacklion.livejournal.com 2007-02-12 06:08 pm (UTC)(link)
Юзер с именем "-fvitus"? Сомневаюсь, что такой будет :)
Юзера с именем vitus. Как вы понимаете, можнов писать любого (root'а, правда пошлют). Но любым существующим пользователем можно зайти без пароля.
Это уже огроменная дыра.

[identity profile] blacklion.livejournal.com 2007-02-12 06:09 pm (UTC)(link)
Да, дыра там глупейшая в in.telnetd, конечно. Тягущаяся еще с 4.4BSD, но на всех остальных системах заткнутая.

[identity profile] applesin07.livejournal.com 2007-02-12 07:34 pm (UTC)(link)
Шрифт в терминале какой?

[identity profile] cnst.livejournal.com 2007-02-12 11:57 pm (UTC)(link)
а когда её во всес других системах исправили, интересно?

В OpenBSD, например, уже вообще telnetd давно как нет. ;)

[identity profile] asphyx-lj.livejournal.com 2007-02-13 08:30 am (UTC)(link)
А очень на Terminus похож :)

[identity profile] asphyx-lj.livejournal.com 2007-02-13 08:37 am (UTC)(link)
Пошлют как раз не root'а, а любого обычного юзера при попытке сделать login -f. Так что само по себе это ещё не дыра. Просто, когда login вызывается из-под демона, пущенного от root, или враппера с suid, надо быть аккуратнее.

[identity profile] dmitrmax.livejournal.com 2007-02-14 07:40 am (UTC)(link)
Мне казалось, что Terminus ни разу не масштабируемый...

[identity profile] asphyx-lj.livejournal.com 2007-02-14 08:47 am (UTC)(link)
Дык растровее просто некуда :)

[identity profile] everard-took.livejournal.com 2007-02-27 10:17 pm (UTC)(link)
Да-да-да, юниксы принципиально и по сути своей безопаснее виндов :)