SiteOmat
卡巴斯基实验室高级安全研究员Ido Naor和以色列安全研究员Amihai Neiderman在卡巴斯位于墨西哥坎昆举行的安全分析师峰会期间,就加油站的安全问题展开了全面分析。他们的研究表明,攻击者可以改变汽油价格,窃取记录在控制器上的信用卡信息,获取车牌号码,造成油料泄露,调整温度监控器等等。
当攻击者获得root权限时,他们可以做很多任何想做的事。因为密码安全性较低,可以通过互联网远程连接这些加油站的控制器。
此次事件的主角是Orpak 公司的 SiteOmat,该软件专门为运行在嵌入式 Linux 设备或标准 PC 之上而设计,能够提供“完整且安全的现场自动化、管理分配、支付终端、前院设备与燃料箱控制功能,从而全面监督并记录一切交易活动。”
这些安全漏洞还允许黑客在目标企业的网络内横向移动,访问支付系统、窃取财务数据并获取客户信息(例如车牌号以及司机身份数据)。
在测试中,Neiderman和Naor能够在一台加油机上将每升燃气的价格从6.54ILS(以色列新锡克尔)远程修改为6.66ILS。Neiderman写了一个脚本来自动修改价格,并可以通过使用手机来触发。

图片来源:http://www.sohu.com/a/220834929_100066938 黑客世界

图片来源:http://www.sohu.com/a/220834929_100066938 黑客世界
对漏洞的分析:
首先下载文中所提到的用户手册。虽然公司已经声明他们已经撤回官网的手册,但是利用Google搜索还是能够找到。通过查看手册,我们能够知道默认用户名(Admin)+登录密码(Admin),如下图:

并且由于目前有大量加油站系统暴露在互联网上,所以我们通过shodan可以查看到许多有用的信息,如下图:

当前暴露在互联网上的设备,统计如下:

以下部分操作请勿模仿。
下面的登录界面是直接Google到的。通过输入正确的用户名密码可以登录进去。管理员登录界面,如图:

登入后的系统,如图:

下图是用户手册上的截图,这个截图是该公司提供的用户登录进系统的界面。用户手册提供了软件详细的使用流程:

具体分析本次暴露出的几个漏洞:
1、硬编码凭证:硬编码是将可变变量用一个固定值来代替的方法。用这种方法编译后,如果以后需要更改此变量就非常困难了。该系统存在的问题是嵌入在SiteOmat源代码中的后门,带有硬编码的用户名和密码。这将允许远程黑客绕过系统的前端密码保护,并访问任何Orpak加油站,无论加油站所有者是否更改了默认密码。后门提供了对SiteOmat网页管理界面的全面管理访问,包括修改燃油价格和其他设置的权限。SiteOmat实际上并不需要管理权限来修改燃油价格,任何有权限访问系统的人都可以在没有授权的情况下对燃油价格进行修改。总结:导致该漏洞的原因是不严谨的编码和控制代理管理机制的访问不完善。
2、缓冲区溢出漏洞:可取得系统特殊权限,进行非法操作。尽管系统跟踪日志会记录价格的变化,但实验人员发现的缓冲区溢出漏洞使得攻击者能够控制系统并删除所有日志。
3、持久性XSS:攻击行为伴随着攻击数据一直存在,同时向浏览器传送一个cookie,(即使是使用了session验证的方法,还是需要客户端支持cookie), cookie会保存会话连接中的数据,Session ID作为会话标识,浏览器的后续请求就会基于后续请求,攻击者可以提供一个攻击链接,用户点击该链接时,向攻击者自己的服务器发送一条保存有session id 的信息,这样就窃取到用户的session id,得到用户的登录权限了。将攻击行为存入数据库,攻击者在会话有效期内即可获得admin的用户权限,并且由于攻击数据已经在数据库,所以不删除数据库里的记录,还是会有可能受到攻击。
4、不安全通信:SiteOmat以非加密格式存储用户信息,如用户名和密码,并使用未签名和未加密的固件,这意味着攻击者可以使用受感染的SiteOmat软件来覆盖合法版本。最终wireshark证实系统采用明文传输,未加密。
5、SQL注入
6、代码注入
7、远程代码执行等
此次攻击所利用到的漏洞列出如下:
硬编码凭证(CNNVD-201709-1067、CVE-2017-14728)、
持久性XSS(CNNVD-201709-1192、CVE-2017-14850)、
SQL注入(CNNVD-201709-1191、CVE-2017-14851)、
不安全通信(CNNVD-201709-1190、CVE-2017-14852)、
代码注入(CNNVD-201709-1189、CVE-2017-14853)、
远程代码执行(CNNVD-201709-1188、CVE-2017-14854)等。
SiteOmat的更多相关文章
随机推荐
- 解析Python编程中的包结构
解析Python编程中的包结构 假设你想设计一个模块集(也就是一个"包")来统一处理声音文件和声音数据.通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能 ...
- Jmeter安装及配置(傻瓜模式)
接下来将以傻瓜模式进行安装,跟着流程走,没错的~ 1.首先进入到apache官网https://www.apache.org/dist/jmeter/binaries下载Windows版本JMeter ...
- Docker一
Docker 简介一 背景开发和运维之间因为环境不同而导致的矛盾集群环境下每台机器部署相同的应用DevOps(Development and Operations) 简介 Docker是一个开源的应用 ...
- 齐治堡垒机前台远程命令执行漏洞(CNVD-2019-20835)分析
一.基本信息 漏洞公告:https://www.cnvd.org.cn/flaw/show/1632201 补丁信息:该漏洞的修复补丁已发布,如果客户尚未修复该补丁,可联系齐治科技的技术支持人员获得具 ...
- 【DSP开发】硬件信号量在多核处理器核间通信中的应用
硬件信号量在多核处理器核间通信中的应用 刘德保1,汪安民1,韩道文2 1.同方电子科技有限公司研究所,九江 332009:2.解放军电子工程学院 摘要: 在多核处理器的软件设计中,核间通信机制是关键所 ...
- go module配置
参考文章: http://c.biancheng.net/view/4774.html 1.
- Nginx 小入门记录 之 初识Nginx和环境准备(一)
前置知识准备: 如果还不知道服务器是干什么的,只是刚踏入程序员之路的,大家还是先学习基础,虽然以下文档很简单,但至少知道为什么要学: 一般服务器环境现在基本上都是放在Linux系统上了,如果对Linu ...
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控(centos7环境)
前提条件,已经安装jmeter并可以运行 1.安装influxdata wget et https://dl.influxdata.com/influxdb/releases/influxdb-1.7 ...
- 对称加密、非对称加密、数字签名、数字证书、SSL是什么
非对称密钥加解密 对于一份数据,通过一种算法,基于传入的密钥(一串由数字或字符组成的字符串,也称key),将明文数据转换成了不可阅读的密文,这就是“加密”,同样的,密文到达目的地后,需要再以相应的算法 ...
- java统计字符串中每个字符出现的次数
package MapTest; import java.util.HashMap; public class MapTest { public static void Count(String st ...