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的更多相关文章
随机推荐
- Redux 视频教程
视频地址:http://www.imooc.com/learn/744
- python进阶-mock接口
setting.py MYSQL_HOST='192.168.127.139' PASSWORD=' PORT=3306 USER='root' DB='stu' tools.py import py ...
- 微信小程序 左右联动菜单
根据左侧列表,联动跳右侧内容. 效果如图: wxml代码: <view class="page"> <!-- 左侧导航 --> <view class ...
- Flutter的布局方法
重点是什么? Widgets 是用于构建UI的类. Widgets 用于布局和UI元素. 通过简单的widget来构建复杂的widget Flutter布局机制的核心就是widget.在Flutter ...
- 第二章 python之计算机基础
@python基础 零基础就是个幌子,因为零基础什么都干不了. 如果零基础随随便便就把自动化做起来,那自动化测试就不值钱了:因为这种简单的事情,谁都可以做到. 本课程从零基础出发,补足基础后,不仅仅学 ...
- vscode使用Chrome浏览器调试不好用,解决方法!!
1.如果你是刚下载vscode,那么你需要下载两个插件. 1. open in browser(在浏览器中查看,支持五大主流浏览器),下载并启用. 2. view-in-browser (在浏览器中查 ...
- 【miscellaneous】软件加密方法
原文:http://www.jiamisoft.com/blog/3471-ruanjianjiamifangfa.html 软件行业的加密是软件厂商为了保护软件开发的利润而采取的一种软件保护方式.当 ...
- Java集合框架——Map接口
第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...
- lua数据类型的的操作(三)
上一章我们学习了lua的数据类型,以及语法的定义,今天我们学习lua的数据类型操作,其实就是lua库一些api的操作,遇到对数据类型处理时,可以根据lua库提供的操作来实现. 一.字符串操作 1.字符 ...
- [转帖]Linux日期和时间的那些事儿
Linux日期和时间的那些事儿 http://embeddedlinux.org.cn/emb-linux/entry-level/201311/09-2672.html 自己还是稚嫩啊.. 除了年龄 ...