Автор Тема: Загадка  (Прочетена 7111 пъти)

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Загадка
« -: Jan 17, 2014, 15:32 »
Като root:

Код:
ln -sf /usr/sbin/sshd ~/su
~/su -oPort=12345

После връзвате ssh към localhost на порт 12345:

Код:
ssh -p 12345 root@localhost

И ще установите нещо забавно - всяка парола работи (без празната).

Мистериозно направо, човек ще си помисли че това е някакъв бекдор в sshd :)

Награда за първия, който открие защо се получава така (хинт: sshd не е виновен) :)
Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #1 -: Jan 17, 2014, 16:25 »
Хм ОК може би sshd все пак е донякъде виновен на второ четене.
Активен

"Knowledge is power" - France is Bacon

4096bits

  • Напреднали
  • *****
  • Публикации: 7525
    • Профил
Re: Загадка
« Отговор #2 -: Jan 17, 2014, 16:39 »
Това не обяснява ли нещата
sshd (OpenSSH Daemon) is the daemon program for ssh. Together these programs replace rlogin(1) and rsh(1), and provide secure encrypted communications between two untrusted hosts over an insecure network
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #3 -: Jan 17, 2014, 16:58 »
В случаят няма да е особено secure при положение че всяка парола работи.
Активен

"Knowledge is power" - France is Bacon

4096bits

  • Напреднали
  • *****
  • Публикации: 7525
    • Профил
Re: Загадка
« Отговор #4 -: Jan 17, 2014, 17:31 »
Това ти си го проверявал. Не разбрах, това няква недомислица ли е?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #5 -: Jan 17, 2014, 17:42 »
Недомислица не е много точно казано. Въпреки това ми е трудно да дам определение. Безспорно има не особено смислено решение, което обаче само по себе си е невинно. В комбинация с други, външни фактори обаче, се получава много интересно стечение на обстоятелствата. Няма на кой да се набива канчето в случая, защото нищо фатално лошо не се е случило в крайна сметка. Просто ситуацията е забавна. Няколко безобидни неща (не казвам че всички от тях са силно смислени де) се комбинират и се получават странни странични ефекти :)
Активен

"Knowledge is power" - France is Bacon

4096bits

  • Напреднали
  • *****
  • Публикации: 7525
    • Профил
Re: Загадка
« Отговор #6 -: Jan 17, 2014, 20:41 »
Смяташ ли да пишеш където трябва? Не е безобидно. Ама изобщо. Външните фактори са си почти винаги налице. Както се разбра, не е необходимо да си вързан за мрежата, за да нямаш външни фактори.  ;D
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #7 -: Jan 17, 2014, 22:20 »
Не смятам поради няколко причини - първо не съм го открил аз, второ openssh са представили опция за отстраняването му (пребилдвайки sshd по съответния начин, дори не се налага да се пачва кода - но очевидно на всички дистрибуции които видях не го правят) и трето и най-важно: това не е уязвимост и не е опасно. За да го направиш, трябва вече да си root, а ако вече си root има безброй други начини да бекдорнеш машината, въпреки че този е доста лесен. Не е дори достатъчно "скрит" поради ред причини.

Външните фактори нямат нищо общо с мрежата, имат общо с друг софтуер, който на практика е стандарт в линукс и не се сещам да не се ползва някъде (освен в разни embedded системи, където отсъства просто защото целта е да се пести памет).

Също така, това лесно може да се предотврати и с промяна в конфигурационен файл...обаче резултатите не биха били особено красиви. Оправяш едно, чупиш друго. В случаят това което ще се счупи е доста по-сериозно от това, което ще оправиш и затова си мисля, че не си струва.

Крайният резултат не е интересен, забавното е защо се случва.
Активен

"Knowledge is power" - France is Bacon

4096bits

  • Напреднали
  • *****
  • Публикации: 7525
    • Профил
Re: Загадка
« Отговор #8 -: Jan 18, 2014, 13:42 »
Позабравил съм. Имаше нещо с подменяне на области в паметта, с каквото искаш. Хубава идея, само не помня доколко беше възможно.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #9 -: Jan 18, 2014, 15:41 »
Няма мазане по чужда памет. Съвсем просто е обяснението, същевременно много елегантно навързано :)

ОК още малко подсказване: ltrace, ls и cat (евентуално и less или grep) са напълно достатъчни за да стане ясно какво се получава. Няма нужда да се рови по сорсове да се търси обяснението, не че няма да помогне, ама е доста по-трудния път.
« Последна редакция: Jan 18, 2014, 15:46 от gat3way »
Активен

"Knowledge is power" - France is Bacon

HQ

  • Напреднали
  • *****
  • Публикации: 195
  • Distribution: *BSD
  • Window Manager: none
    • Профил
Re: Загадка
« Отговор #10 -: Jan 18, 2014, 18:11 »
Дебиян : Хака работи без никакви проблеми,мога да се логна не само в root, но и в който си искам юзър от съществуващите.

FreeBSD : Не става!
Код:
[root@XBSD ~]# ln -sf /usr/sbin/sshd ~/su
[root@XBSD ~]# ls
.ICEauthority   .config         .local          .qt             su
.bash_history   .kde            .mcop           .ssh
.cache          .kports         .mcoprc         .subversion

[root@XBSD ~]# ~/su -o Port=12345
[root@XBSD ~]# ssh -p 12345 root@localhost
The authenticity of host '[localhost]:12345 ([127.0.0.1]:12345)' can't be established.
ECDSA key fingerprint is c9:a5:e5:a2:30:16:85:a7:16:af:3a:17:b1:02:b9:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:12345' (ECDSA) to the list of known hosts.
Connection closed by 127.0.0.1
[root@XBSD ~]# uname -a
FreeBSD XBSD 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r256522: Tue Oct 15 16:29:18 UTC 2013     user@VPC-BSD:/usr/obj/usr/src/sys/GENERIC  amd64

Mac OS X : Не става !
Код:
sh-3.2# ln -sf /usr/sbin/sshd ~/su
sh-3.2# ~/su -o Port=12345
sh-3.2# ssh -p 12345 root@localhost
The authenticity of host '[localhost]:12345 ([::1]:12345)' can't be established.
RSA key fingerprint is f4:77:83:7f:15:f5:d6:25:49:da:36:d3:72:74:21:87.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:12345' (RSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
sh-3.2# ssh -p 12345 root@localhost
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
sh-3.2#

Тъй че спим спокойно :P
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3177
    • Профил
Re: Загадка
« Отговор #11 -: Jan 18, 2014, 18:39 »
Между другото, преди време забелязах, че
#scp нещо-от-някъде ~
създава файл с име ~
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #12 -: Jan 18, 2014, 19:00 »
За MacOSX съм повече от убеден че няма да стане, но за FreeBSD съм учуден честно казано. Мислех че и там се ползва същото като в линукс. Можеш ли да го пуснеш (ssh) с -vvv и да видим какво ще изплюе, много ми е интересна причината поради която те отрязва :)
Активен

"Knowledge is power" - France is Bacon

4096bits

  • Напреднали
  • *****
  • Публикации: 7525
    • Профил
Re: Загадка
« Отговор #13 -: Jan 18, 2014, 19:59 »
Интересно. Само, че за да се наиграеш с това, трябва да знаеш малко езици. Коя функция, какво прави. И да знаеш какво търсиш. Обачееее.... толкова е интересно.  ;D Преди доста време се бях хванал със С, но липсата на достъп  до компютър си каза думата.
А как може да се чете от определен адрес в паметта? Вижда се например, че има отворен файл от някоя програма и с какво може да се прочете този файл в  RAM. В /proc някъде ли в "папката" на процеса? Или има друг начин? И има ли смисъл да се разглеждат разни FIFO файлове?
Тук намерих доста интересно четиво. Но пак - за да си толкова гъвкав в мисленето и да търсиш отговори, са нужни малко повече от базови познания. Колкото и да ти щрака сивото, трябва да има върху какво да стъпиш.
Ти беше писал статия за нарочно пробитите GSM мрежи, но как стои въпроса с преноса на данни в тези мрежи и ако има едно подобаващо количество натрупани captcha, до колко е възможно да бъдат разкрити от това разни пароли за мейли, скайп, фейсбуци? Аз съм с  телефон дето има само календар и будилник на него, та не съм притеснен относно това, но може би и за това съм с такъв телефон.  :D
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Загадка
« Отговор #14 -: Jan 18, 2014, 21:11 »
Специално за разплитането на този казус мисля че 90% от това което ти трябва са си сисадмински умения, няма толкова много общо с програмиране като цяло, по-скоро с това как работи софтуера.

Също така не мисля че трябва толкова да се обвързват нещата с конкретен език - да, става въпрос за API имплементирано на C, но същото твърде вероятно си има и питонски и java и тем подобни wrapper-и и езикът няма огромно значение. Може да го приемеш просто като функция и да се абстрахираш от всякакви подробности на езика. Определено не се изисква да имаш особено задълбочени познания в програмирането и C за да "разплетеш" загадката. Ще ти помогне може би само за да изясниш доколко голяма е вината на sshd :)
Активен

"Knowledge is power" - France is Bacon