MySQL 1 Liner Hack Gives Root Access Without Password

The latest news that has hit the streets is the occurence of the easiest hack ever, if you have local shell access (any user privelege level) and you can connect to MySQL – you can get root access to MySQL within a few seconds.

I tried this yesterday on one of my servers on Ubuntu 12.04 running the latest version of MySQL in the repo…and it worked in about 30 seconds. Scary really, you can use this single line of bash to hack MySQL:

Or the Python version I originally saw:

Security experts have identified some 879,046 servers vulnerable to a brute force flaw that undermines password controls in MySQL and MariaDB systems.

According to Rapid7 security chief HD Moore, one in every 256 brute force attempts could override authentication controls on the servers and allow any password combination to be accepted. An attacker only needed to know a legitimate username which in most circumstances included the name ‘root’.

The flaw has already been exploited. Moore reported that the flaw (CVE-2012-2122) was already patched for both MySQL and MariaDB, but many MySQL administrators had not fixed the hole in their deployments.

Upon scanning 1.7 million publicly exposed MySQL servers, he found more than half (879,046) vulnerable to the “tragically comedic” flaw.

There’s a lot of vulnerable servers out there, so you better hope they aren’t yours because it’s not hard to scan whole subnets for servers with port 3306 open that accept connections from the outside world.

And if your server is in that state – it’s vulnerable. I just checked the repos for Ubuntu 10.04 LTS and Ubuntu 12.04 LTS and they both have a patched version of MySQL available for download so I suggest you get on your servers and do –

If you are using a shitty OS that uses yum or something – figure it out yourself.

Affected versions, listed below, require for memcmp() to return an arbitrary integer outside of the range -128 to 127. All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5 and 5.5.22 were vulnerable, Golubchik said.

Moore and other security boffins identified vulnerable versions in Ubuntu 64-bit versions 10.04, 10.10, 11.04, 11.10, and 12.04, OpenSUSE 12.1 64-bit MySQL 5.5.23, and Fedora. Official builds of MariaDB and MySQL were safe, along with Red Hat Enterprise Linux 4, 5 and 6 and some flavours of Debian Linux and Gentoo 64 bit.

A list of accessible MySQL servers found 356,000 deployments running versions of 5.0.x, followed by 285,000 running 5.1.x, and 134,436 running 5.5.x. Another list of MySQL build flavours revealed 43,900 running Ubuntu, 6408 on Debian, and 98,665 on Windows.

Honestly I find that this is a really serious vulnerability, but has a pretty low risk profile. It will only work in cases of badly configured MySQL users where they accept connections from any IP address – user@% type entries in the user table.

NO ONE should be running root@% – so that would mean the attacker would need local shell access. And well if they have that, it’s pretty much game over anyway.

This vulnerability is notated as CVE-2012-2122.

Source: SC Magazine

Posted in: Database Hacking, Exploits/Vulnerabilities, Linux Hacking, Password Cracking Tools

, , , , ,

Latest Posts:

APT-Hunter - Threat Hunting Tool via Windows Event Log APT-Hunter – Threat Hunting Tool via Windows Event Log
APT-Hunter is a threat hunting tool for windows event logs made from the perspective of the purple team mindset to provide detection for APT movements hidden in the sea of windows event logs.
GitLab Watchman - Audit Gitlab For Sensitive Data & Credentials GitLab Watchman – Audit Gitlab For Sensitive Data & Credentials
GitLab Watchman is an app that uses the GitLab API to audit GitLab for sensitive data and credentials exposed internally, this includes code, commits, wikis etc
GKE Auditor - Detect Google Kubernetes Engine Misconfigurations GKE Auditor – Detect Google Kubernetes Engine Misconfigurations
GKE Auditor is a Java-based tool to detect Google Kubernetes Engine misconfigurations, it aims to help security & dev teams streamline the configuration process
zANTI - Android Wireless Hacking Tool Free Download zANTI – Android Wireless Hacking Tool Free Download
zANTI is an Android Wireless Hacking Tool that functions as a mobile penetration testing toolkit that lets you assess the risk level of a network using mobile.
HELK - Open Source Threat Hunting Platform HELK – Open Source Threat Hunting Platform
The Hunting ELK or simply the HELK is an Open-Source Threat Hunting Platform with advanced analytics capabilities such as SQL declarative language, graphing etc
trape - OSINT Analysis Tool For People Tracking Trape – OSINT Analysis Tool For People Tracking
Trape is an OSINT analysis tool, which allows people to track and execute intelligent social engineering attacks in real-time.

14 Responses to MySQL 1 Liner Hack Gives Root Access Without Password

  1. inzel June 12, 2012 at 7:39 pm #

    Thats pretty crazy. Such a simple hack yet so dangerous.

    Good write up!

  2. Joey June 12, 2012 at 7:50 pm #

    Agreed, good write up, though it didn’t work on my Mac OS X homebrew install of MySQL. There’s a typo in your aptitude command. It should be.

    aptitude update; aptitude safe-upgrade

    • Darknet June 13, 2012 at 8:55 am #

      Thanks Joey – fixed the typo.

  3. Keith June 13, 2012 at 8:49 am #

    Interesting, I can’t get that to work on my test VM which is also running Ubuntu 12.04 server, I may have patched it yesterday though.

    However, I just tried an old server I had, which runs Debian 5 Lenny (not patched) and it didn’t work either.

    • Darknet June 13, 2012 at 8:56 am #

      Yah it’s only a few specific versions – it worked on 10.04/12.04 2 days ago – but if you updated yesterday MySQL would be patched.

  4. Godrick June 13, 2012 at 11:18 pm #

    >shitty OS
    >exploit only works on Debian based machines

    pick both

  5. d3m4s1@d0v1v0 June 14, 2012 at 1:05 pm #

    I’ve tested the exploit on my debian wheezy with a not updated MySQL, and wasn’t vulnerable. I leave it running for an hour o so, and couldn’t get access.
    It’s weird that an exploit like this wasn’t discovered before.

    • Darknet June 14, 2012 at 5:59 pm #

      It’s because it’s due to compilation options, it’s not specifically a MySQL error.

  6. Pb June 14, 2012 at 7:00 pm #

    useless and gay.

  7. Shiva June 18, 2012 at 12:07 pm #

    That works only in case when there is no password for local connection.
    I tested it on debian sid and it is non-exploitable.
    I guess it works only when you do leave possibility of login to mysql as root without specifying password. If you do not set to local root connections be passwordless or anything like that I didnt played a lot with mysql options then you can log as root thru the socket passwordlessly.

    • Darknet June 18, 2012 at 12:57 pm #

      No, it works whatever password has been set. It does an incorrect comparison due to compilation options – it works once every 64-128 tries.

  8. Bogwitch June 20, 2012 at 8:39 am #

    “NO ONE should be running root@% – so that would mean the attacker would need local shell access. And well if they have that, it’s pretty much game over anyway.”

    An attacker would need local shell access to login as root BUT, if an attacker has done the usual intelligence gathering, they may well have found a username that WILL work remotely. The only reason root is used in the many and varied examples found on the ‘net is the root user is most likely to exist within SQL, it is most likely the only account to have any form of protection, too!

    • Darknet June 20, 2012 at 10:02 am #

      That’s very true – it’s just that root is the low hanging fruit in this case and it generally has the most access (system tables etc) – where as specific accounts usually have access to only 1 table.

  9. Prashant Pandey July 21, 2012 at 11:42 am #

    Interesting, I call it an easy tool for beginners especially in Indian/ south Asian countries environment where responsible even are not much aware about root access & security. Even if some do than their pirated OS/ software’s revert them a kick.
    Keep writing up man, Nice effort.