用户
搜索
  • TA的每日心情
    擦汗
    2019-1-31 10:58
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    官方账号

    Rank: 7Rank: 7Rank: 7

    230

    主题

    230

    帖子

    1951

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2018-12-21

    i春秋认证

    发表于 2020-1-9 19:04:25 01015

    22.png

    供应商:Fortinet

    产品:FortiSIEM

    测试版本:5.2.5以及5.2.6,旧版本还未确认,但很可能受影响。

    CVE:目前CVE号码还在确认中。

    总结

    FortiSIEM针对用户tunneluser提供了一个硬编码的SSH公钥,所有软件都相同。通过此密钥,攻击者可以以该用户身份登录FortiSIEM Supervisor。该未加密的密钥同时也存储在FortiSIEM镜像中。虽然用户的shell仅限于运行/opt/phoenix/phscripts/bin/tunnelshell脚本,但不影响SSH身份验证。

    时间线

    2019年12月2日:向Fortinet PSIRT发送包含漏洞详细信息的电子邮件。

    2019年12月3日:PSIRT自动回复邮件。

    2019年12月23日:向PSIRT发送了一封关于漏洞确认的提醒邮件。

    2020年1月3日:漏洞公开。

    30天,没有任何Fortinet的人员和我联系。如果我在1月2日之前收到漏洞确认书,那么就还有另外60天来解决这个漏洞(不会发布漏洞详情)。但很可惜我并没有收到这样的答复,所以现在漏洞公开。

    解决方法

    删除Supervisor中的/home/tunneluser/.ssh/authorized_keys文件

    supervisor# echo "" > /home/tunneluser/.ssh/authorized_keys
    
    OR
    
    supervisor# rm /home/tunneluser/.ssh/authorized_keys
    

    另外,确保有防火墙挡在应用前面,只有有限端口可以对外公开。

    细节

    FortiSIEM Supervisor有两个不同的sshd系统服务:一个是在标准的22端口,另一个在19999端口:

    supervisor# netstat -lnp |grep sshd
    tcp0  0 0.0.0.0:22      0.0.0.0:*
    LISTEN  38593/sshd
    tcp0  0 0.0.0.0:19999   0.0.0.0:*
    LISTEN  38615/sshd
    tcp0  0 :::22           :::*
     LISTEN  38593/sshd
    tcp0  0 :::19999        :::*
     LISTEN  38615/sshd
    

    其中19999的tcp端口所开放的sshd服务的配置文件如下:

    Supervisor# ps aux |grep 38615
    root     38615      0.0  0.0  66288   512 ?        Ss   Sep25   0:00
    /usr/sbin/sshd -p 19999 -f /etc/ssh/sshd_config.tunneluser
    

    而在配置文件中查找相关用户时,发现它只为tunneluser服务:

    supervisor# grep -R tunneluser /etc/ssh/
    /etc/ssh/sshd_config.tunneluser:AllowUsers tunneluser@*
    /etc/ssh/sshd_config.tunneluser:DenyUsers "!tunneluser@*,*"
    

    请注意,22端口sshd服务的配置文件并没有拒绝tunneluser的登录,所以理论上你也可以通过22端口进行授权。

    从passwd文件你也可以发现一些端倪:

    supervisor# grep tunneluser /etc/passwd:
    tunneluser:x:501:502::/home/tunneluser:/opt/phoenix/phscripts/bin/tunnelshell
    

    Supervisor可让tunneluser用户通过SSH key进行连接,我也和其他使用者确认过,这个key在所有应用中都是一样的。

    supervisor# cat /home/tunneluser/.ssh/authorized_keys
    permitopen="127.0.0.1:2" ssh-rsa
    AAAAB3NzaC1yc2EAAAABIwAAAQEArtFWNhmJqezB0NC5NAbWGZBDWHpGsB+d0+bI46mIJMVyfLhuIa5s5iZF30ehRxu0tTILp40EDe5S9VkdlOymJFvA3dUTlfuhwKvV1hUHXe/5ARTC8AX+1QeZDGnzUKBp/64in6STyaG/1KZj0U1rKUTH42SJWjTrvE/vHqilrcY9SmPx498mPzR8CvlJKYCm1WvweIUoqiVnIqIAQrZqTR+0ea1LksQ6YP4PqpTZpe495bIhk+f2pwPI6PU2q0X61Ae99kqo07whoktb3NdNSI9y/yWJleKdw/FaR0Cj7Ilqg3KyR8evHQoOTHpWiTRAPOpo82qfbx6W0ykrRjo/QQ==
    builder@ao-build
    

    相对应的SSH私钥在所有节点(Supervisor、Collector等等)中都存在,位于/opt/phoenix/id_rsa.tunneluser文件。通过以下命令你可以验证两个密钥的匹配性:

    # ssh-keygen  -y -f /opt/phoenix/id_rsa.tunneluser
    ssh-rsa
    AAAAB3NzaC1yc2EAAAABIwAAAQEArtFWNhmJqezB0NC5NAbWGZBDWHpGsB+d0+bI46mIJMVyfLhuIa5s5iZF30ehRxu0tTILp40EDe5S9VkdlOymJFvA3dUTlfuhwKvV1hUHXe/5ARTC8AX+1QeZDGnzUKBp/64in6STyaG/1KZj0U1rKUTH42SJWjTrvE/vHqilrcY9SmPx498mPzR8CvlJKYCm1WvweIUoqiVnIqIAQrZqTR+0ea1LksQ6YP4PqpTZpe495bIhk+f2pwPI6PU2q0X61Ae99kqo07whoktb3NdNSI9y/yWJleKdw/FaR0Cj7Ilqg3KyR8evHQoOTHpWiTRAPOpo82qfbx6W0ykrRjo/QQ==
    

    这意味着任何能接触到FortiSIEM镜像的人都能知道公钥和私钥,通过19999端口以tunneluser身份登录FortiSIEM Supervisor。虽然被限制在/opt/phoenix/phsc ripts/bin/tunnelshell脚本,但一旦被绕过,就能获得完整的服务器访问权。

    虽然Supervisor上也有iptables和ip6tables,但并没有有效限制:

    supervisor# iptables -L
    Chain INPUT (policy DROP)
    target prot opt source       destination
    ACCEPT all  --  anywhere     anywhere
    ...
    
    supervisor bin]# ip6tables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source   destination
    ...
    

    感谢你的阅读!

    本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场:https://nosec.org/home/detail/3860.html
    来源:https://seclists.org/fulldisclosure/2020/Jan/10
    
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册