Full Disclosure mailing list archives
Re: OpenSSH User Enumeration Time-Based Attack
From: Grandma Eubanks <tborland1 () gmail com>
Date: Sat, 13 Jul 2013 12:34:19 -0500
So, I've been toying with this on many systems. Every lan system would do the same thing you describe. Unfortunately, I haven't been able to test lan sucessfully yet. Then I had several remote systems that would take 2 minutes to respond to a valid user (root and another valid user as given by some people to help me test) while non-valid took about 5-8 seconds. But this did not work on all remote OpenSSH systems.... MUCH better analysis for successful conditions is needed. However, as I do not really have massive need for this yet, I have not done that nor willing to give enough time to do it just yet. So I've just uploaded and give this script out to anyone wanting to test this themselves and see who's interested in finding out exact conditions/versions. It is also in Python and Paramiko. It's a good idea to use defaults of linear checking before playing with the multiproc system. If you are doing testing uncomment this line: #print("Time until response: %s" % str(timeRes)) ***If you do not like 'colorful' language or that I call out the lack of research by the posters, please do not pursue getting this script*** http://code.google.com/p/multiproc-openssh-username-bruteforce/source/browse/ssh_user_enum.py I will review and accept change requests and know there are certain issues (like static chunksize). I just didn't want to take longer than an hour on something I'll hardly be using. All test results (with appropriate ssh versions) are warmly welcomed as well so exact conditions can be tracked down. On Thu, Jul 11, 2013 at 11:22 PM, Florian Reinholz <reinholz () ocip de> wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 11.07.2013 17:41, Jann Horn wrote:On Wed, Jul 10, 2013 at 03:38:59PM +0200, Curesec Research Team wrote:By testing several OpenSSH installations we figured there is a delay of time when it comes to cracking users (not) existing on a system. A normal Brute-force-Attack tests for the correct user and password combination, usually without knowledge if the user on the system exists.FYI, the openssh guys have known this for quite a while and they don't treat it as an issue worth fixing. They don't want to introduce extra anti-timing code just to prevent user enumeration from working. You can also see a measurable difference when you try logging in with random public RSA keys – around 100% difference over localhost, over the internet it's much lower, but with a few attempts, you can still get good data. Well, for systems that have password auth enabled, your approach seems a lot more reliable. By the way: If you can hog the CPU for seconds by sending a few kilobytes of data, isn't that a DoS issue? _______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/Agree. Tested the approach against various systems, virtual and real, using different endpoints, and it does not reveal anything useful. I dont think that "int(time.time()) [...] if timeRes > 20:" is very efficient or even an accurate way for user estimation. It never took more than 3s to refuse the login attempt, regardless the users exists or not. Even "DenyUsers" did not change anything. Anyways, using a more accurate timing it might be possible to reveal something useful... - -Florian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13-SpecialBuild (MingW32) Comment: Protect messages and files using GnuPG and OpenSSL! Comment: The GnuPG-Pack: http://home.arcor.de/rose-indorf Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iD8DBQFR34R/yzosym+CqfMRAlR9AKC1NHl74knXpufksEiBdaPyRYbaRgCgjPw3 jtFrF6BbS0MoR0JoXPfqKOw= =VK4t -----END PGP SIGNATURE----- _______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/
_______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/
Current thread:
- OpenSSH User Enumeration Time-Based Attack Curesec Research Team (Jul 10)
- Re: OpenSSH User Enumeration Time-Based Attack Jason Hellenthal (Jul 10)
- Re: OpenSSH User Enumeration Time-Based Attack Swair Mehta (Jul 10)
- Re: OpenSSH User Enumeration Time-Based Attack Jann Horn (Jul 11)
- Re: OpenSSH User Enumeration Time-Based Attack Curesec Research Team (Jul 13)
- Re: OpenSSH User Enumeration Time-Based Attack Florian Reinholz (Jul 13)
- Re: OpenSSH User Enumeration Time-Based Attack Grandma Eubanks (Jul 13)
- <Possible follow-ups>
- Re: OpenSSH User Enumeration Time-Based Attack security curmudgeon (Jul 13)