Siemens PLC指纹提取方法汇总

随着信息技术和智能制造技术的发展,越来越多的工控厂商如西门子、ABB、研华等在内的各类工业控制设备或系统暴露在互联网的网络空间中,易被黑客利用其设备漏洞进行攻击,引发严重后果。

为了对接入互联网内的工控设备或系统进行快速搜索监测,掌握其设备的种类、规模及地理分布,迫切需要采用相关技术对联网工控系统或设备进行识别。

由于联网工控设备和系统在网络上具有其相应的特定属性:主要包括使用的IP地址,相应的端口和基于TCP/IP协议的特定工业通信控制协议,所以目前识别联网工业控制系统或设备的通用方法是:

  • 首先明确联网设备所在IP地址段;
  • 针对该IP地址段中的每一个IP及相关端口,依次根据各类联网工控系统和设备工控协议所对应的端口发起相应数据包,建立控制协议连接;
  • 如主机不可到达或端口不开放则主机和端口不存活,需等待TIMEOUT(超时)时间,如主机可到达或端口开放,主机和端口存活,联网工控系统或设备返回数据包;
  • 接收到返回数据包,解析其内容,根据内容中的关键报文与工控设备指纹库里的指纹进行匹配并进行工控系统或设备进行识别;
  • 如没有接收到返回数据包,则依次使用下一工控协议,对IP和端口建立控制协议连接。

现有技术中采用IP和端口直接进行TCP的三次握手连接,成功则发送工控设备指纹探测数据包,失败则进入下一个IP+端口的设备探测,导致主机不可到达或端口未开放带来的TIMEOUT(超时)时间过长问题,同时没有构建完善的工控设备指纹库,导致不能快速准确识别工控设备的类型和型号等。

目前亟待解决的技术难题是:针对上述存在的问题,提供一种快速识别联网工控设备的方法。因此,本文以西门之PLC为例进行探讨Siemens PLC指纹识别方法。

方法一:Nmap指纹识别

  • 开启西门子S7 PLC协议仿真软件
  • 发现网段中开放102端口的ip
nmap -p102 -n 192.168.163.1/24 --open
  • 如果是西门子PLC,可以进一步使用Nmap的s7-info.nse脚本进行指纹探测

方法二:PLC连接测试工具

  • 还可以使用PLC采集软件进行连接,获取PLC详细指纹

方法三:基于Wireshark流量分析获取PLC指纹信息

  • 使用Wireshark获取PLC指纹信息

方法:打开wireshark,筛选cotp,点击S7 PLC连接工具“连接”,此时Wireshark抓到一些数据包。

编号217号数据包:请求通讯;

编号220号数据包:配置通讯;

编号224号数据包:发送数据进行通讯;

编号226号数据包中可以看到PLC的CPU型号、序列号等指纹信息。

方法四:自定义Python脚本探测PLC指纹

  • Python脚本提取指纹

讲以上请求报文复制为hex stream.

import socket
from binascii import unhexlify,hexlify

def getSZL001c(Respons):
    for i in range(int(len(Respons)/68)):
        data = Respons[i*68+4:i*68+68].replace("00","")
        try:
            if unhexlify(data).decode("utf-8", "ignore") != "":
                print (unhexlify(data).decode("utf-8", "ignore"))
        except:
            pass
def getSZL0011(Respons):
    for i in range(int(len(Respons)/56)):
        data = Respons[i*56+4:i*56+56].replace("00","")
        try:
            if unhexlify(data).decode("utf-8", "ignore") != "":
                print (unhexlify(data).decode("utf-8", "ignore"))
        except:
            pass

def main():
    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sock.connect(("192.168.163.137",102))
    sock.send(unhexlify("0300001611e00000000100c0010ac1020100c2020102"))
    sock.recv(1024)
    sock.send(unhexlify("0300001902f08032010000080000080000f0000001000101e0"))
    sock.recv(1024)
    sock.send(unhexlify("0300002102f080320700000a00000800080001120411440100ff090004001c0000"))
    Respons = (hexlify(sock.recv(1024)).decode())[82:]
    getSZL001c(Respons)
    sock.send(unhexlify("0300002102f080320700000a00000800080001120411440100ff09000400110000"))
    Respons = (hexlify(sock.recv(1024)).decode())[82:]
    getSZL0011(Respons)
    sock.close()

if __name__ == '__main__':
    main()

方法五:plcscan脚本探测

  • plcscan脚本探测

下载链接:https://github.com/yanlinlin82/plcscan

总结

由于我的技术水平有限,所写文章难免有不足之处,恳请各位大佬批评和指正,今后还会继续分享有关工控安全技术文章。 在此,特别感谢烽台科技灯塔实验室举办的工业互联网安全知识分享讲座,跟着几位大佬学到了很多知识,PPT和现场实验演示都准备的很精心,让我收获颇丰,以后还会继续跟随大佬们的脚步努力学习,感谢!

参考链接

http://www.xjishu.com/zhuanli/62/201611189629.html

http://plcscan.org/blog/2017/03/fingerprint-identification-technology-of-industrial-control-system/

本文中使用到的仿真+采集工具,请在公众号回复"工控指纹"获得。

关注我们

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或长按二维码关注公众号:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 加密协议 安全性 工控 ICS 协议分类 标准协议: Modbus DNP3 IEC104 IEC61850 私有...
    yunpiao阅读 7,321评论 0 5
  • 后期整理字体以及排版问题,修订不适合的翻译 “A wealth of information. Smart, ye...
    iamzzz阅读 711评论 0 0
  • Nmap扫描原理与用法 1Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(...
    y0ungta1a阅读 5,279评论 0 50
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    JasonShi6306421阅读 1,205评论 0 1
  • 默 是一位医生 还是在医院实习的那种 某日 是的科室来了母女两个医患 但是从来不说话 默特意观察过母女两个 每次巡...
    南城有酒阅读 299评论 0 1