Thousand of servers running etcd is open to the internet and exposing credentials publically. Etcd is a type of database that stores data across a cluster of machines and is used by many companies in protection environments.
According to the security researcher, Giovanni Collazo shodan search more than 2,200 etcd installations are open on the Internet and exposing credentials for cms_admin, mysql_root, Postgres, etc.
Etcd binaries available for OSX, Linux, Windows, rkt, and Docker. Before etcd version 2.1, it was completely an open system and anyone who accesses to API could change the keys.
To summarize his findings Giovanni downloaded full shodan report and wrote a simple script to call the etcd API and requested all keys.
GET HTTP://<ip address>:2379/v2/keys/?recursive=true
The script is to download the JSON key files from the servers, Giovanni stopped the script after it reaches to 750 MB of data and checked 1,485 from the IP list.
He found a bunch of keys for different kinds of databases that includes AWS secret keys, and API keys. In total he extracts password 8781, aws_secret_access_key 650, secret_key 23, private_key 8.
Giovanni said, “I did not test any of the credentials but if I had to guess I would guess that at least a few of them should work and this is the scary part.”
If the etcd servers are open to the internet without any authentication it allows attackers to extract hundreds of database passwords and allows to install backdoors in the system.
In order to mitigate the attack add authentication to the servers that open to the internet or cut off them from the Internet.
Giovanni says the remote code execution is mostly possible “I’m almost certain that an attacker could write to them using the same API“. Attackers can mess with configurations by stealing credentials and exfiltrate the data.