Ny metod för att gissa SSH-användare
Qualys uppmärksammade att en patch till OpenSSH-projektet åtgärdade en säkerhetsbrist som gör det möjligt för en angripare att lista ut användarnamn på en server. Detta gäller alla versioner av OpenSSH från och med OpenSSH 2.3.0 som släpptes i November 2000.
Genom att skicka olika resultat till servern så kan en angripare således lista ut om användaren är giltig eller ej:
Och redan nu finns det proof-of-concept kod som använder SSH-biblioteket Paramiko. Just denna server har en användare som heter user1 men inte någon som heter user2:
Här kan du ladda hem ssh-check-username.py
Att gissa användarnamnet kan underlätta attacker som försöker forcera användarnamn och lösenord. Bristen i OpenSSH identifierades av Dariusz Tytko och Michał Sajdak.
När det gäller detektion av denna attack så kan man titta efter följande meddelande i loggarna:
fatal: ssh_packet_get_string: incomplete message [preauth]
Dock framgår inte angriparens IP-nummer i loggen. Oklart även hur verktyg såsom fail2ban som försvårar lösenordsgissningar fungerar mot denna attack.
För att testa denna sårbarhet kan även Holm Security användas. Full disclosure: Jag är delägare och sitter med i Advisory Board.
Detta är exakt en av anledningarna varför det är en god anledning att låsa SSH-porten mot godkända IPn i brandväggen. Problemet löst.