[=] Affected software :
Name : Kojoney
Description : Low interaction SSH honeypot
Version : < 0.0.4.2
Service : TCP/22
[=] Patched version :
[=] Technical details :
Emulation of the wget and curl commands is made via calls to
urllib.urlopen(url). The only sanity check is the following :
if url.find("://") == -1:
url = "http://" + url
This will catch some attempts to access local files like
"file:/etc/hosts" but requesting "file://localhost/foo/bar" is still
Under Linux, this can be used to access "file://localhost/dev/urandom".
The kojoney.py process will then use 100% of CPU and will grow in
memory, until killed by the kernel OOM Killer.
[=] Note :
When exploiting urlopen() related vulnerabilities in Python
applications, some little known features can come handy :
=> returned value is "HelloWorld"
=> returned value is the EICAR test string
And yes, these strings too bypass the "://" Kojoney check ;-)