2.9 KiB
2.9 KiB
Vulnerable Application
etcd is a distributed reliable key-value store, which when used in an open and default configuration gives unauthenticated users access to the data stored via HTTP API.
Centos 7.1
yum install etcd
vi /etc/etcd/etcd.conf
replace (and uncomment) items withlocalhost
for your IP.systemctl start etcd; systemctl enable etcd
- On Centos 7.1 you need to mod (or disable) the firewall:
systemctl stop firewalld
- Lastly, lets add a key-value for interest:
curl http://[IP]:2379/v2/keys/supersecret -XPUT -d value="password!"
Docker
docker run -p 2379:2379 miguelgrinberg/easy-etcd
Verification Steps
- Install the application
- Start msfconsole
- Do:
use auxiliary/scanner/etcd/open_key_scanner
- Do:
set rhosts [IPs]
- Do:
run
- You should get a JSON response, and the data saved to
loot
.
Scenarios
etcd 3.2.15 on CentOS 7.1
msf5 > use auxiliary/scanner/etcd/open_key_scanner
msf5 auxiliary(scanner/etcd/open_key_scanner) > set rhosts 2.2.2.2
rhosts => 2.2.2.2
msf5 auxiliary(scanner/etcd/open_key_scanner) > run
[+] 2.2.2.2:2379
Version: {"etcdserver":"3.2.15","etcdcluster":"3.2.0"}
Data: {
"action": "get",
"node": {
"dir": true,
"nodes": [
{
"key": "/supersecret",
"value": "password",
"modifiedIndex": 6,
"createdIndex": 6
}
]
}
}
Loot
====
host service type name content info path
---- ------- ---- ---- ------- ---- ----
2.2.2.2 etcd.data etcd.keys text/plain etcd keys /root/.msf4/loot/20180325144351_default_2.2.2.2_etcd.data_425280.txt
msf5 auxiliary(scanner/etcd/open_key_scanner) > services
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
2.2.2.2 2379 tcp etcd open {"etcdserver":"3.2.15","etcdcluster":"3.2.0"}
etcd in Docker
msf5 > use auxiliary/scanner/etcd/open_key_scanner
msf5 auxiliary(scanner/etcd/open_key_scanner) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf5 auxiliary(scanner/etcd/open_key_scanner) > run
[+] 127.0.0.1:2379
Version: {"etcdserver":"3.1.3","etcdcluster":"3.1.0"}
Data: {
"action": "get",
"node": {
"dir": true
}
}
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/etcd/open_key_scanner) > loot
Loot
====
host service type name content info path
---- ------- ---- ---- ------- ---- ----
127.0.0.1 etcd.data etcd.keys text/json etcd keys /root/.msf4/loot/20180328092245_default_127.0.0.1_etcd.data_260058.txt
msf5 auxiliary(scanner/etcd/open_key_scanner) > services
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
127.0.0.1 2379 tcp etcd open {"etcdserver":"3.1.3","etcdcluster":"3.1.0"}