工控渗透框架ISF介绍 ——信息收集篇

工控渗透框架ISF介绍 ——信息收集篇

时间:2020-06-01 作者:安帝科技

01框架介绍

    声明:ISF该框架是北京安帝科技基于开源框架自研的一套工控渗透框架,仅用于工控安全教学,公司实验箱产品的安全研究,使用该框架进行非法操作产生的一切后果公司一概不负责。

    框架主要使用Python语言开发,通过集成ShadowBroker释放的NSA工具Fuzzbunch攻击框架,开发一款适合工控漏洞利用的框架。由于Fuzzbunch攻击框架仅适用于Python2.6,很多核心的功能都封装成了DLL,通过函数进行调用,不便于后期的移植和使用。但是,Fuzzbunch的命令行使用的确很方便,所以就有了现如今这款适合工控漏洞利用的框架,取名isf。

环境准备:

环境说明 软件名称/版本
操作系统 Centos8 x64
语言环境 Python2.7.16
工具 pip2
依赖库 gnureadline
pycrypto

注:如果想在windows平台上安装,除了需要安装这两个依赖:pypiwin32、dnet==1.12以外,window平台和linux平台下的使用没有什么区别。

命令行启动:

    这里所说的安装,其实是该工具所需环境的安装与配置,当运行环境配置好后,只需要在网站[https://github.com/w3h/isf]下载该工具,然后在项目目录下运行python2 isf.py即可。出现如下图所示证明安装成功。

02WEB启动

    该构架不仅可以通过命令行进行操作,还可以通过WEB的方式运行,通过WEB的方式进行操作,可以做到只需要部署一套环境,多个人同时使用的效果,且其他人不需要安装和配置,只需要通过浏览器的方式即可拥有一套工控攻击框架。

    WEB启动分为两种,一种是通过docker容器方式进行部署,一种是直接在宿主机上运行,两种方式本质上是一样的,只是运行的宿主不一样而已。

Docker部署:

不懂docker的请向下看宿主部署章节

mkdir-p/root/isfdocker
cd /root/isfdocker
wget https://github.com/w3h/isf/raw/master/docker/Dockerfile
docker build -t isf:v1 .
# 构建一个isf:v1的docker容器,并使用Dockerfile安装好相关依赖
docker run –net=host isf:v1 butterfly.server.py –host=’0.0.0.0′ –unsecure
#or 新版的docker使用下面命令
docker run –network=host isf:v1 butterfly.server.py –host=’0.0.0.0′ –unsecur

    运行完上面的命令之后,在浏览器中输入http://192.168.223.129:57575输入默认密码:123456,即可登录.

宿主部署:

    如果是通过上面的docker方式进行部署,那么只需要按照命令执行即可,所需依赖都将通过Dockerfile进行安装。如果想在宿主机上直接使用WEB控制台的方式进行访问的话,就需要安装butterfly依赖,命令pip2 install butterfly,安装好后,通过butterfly.server.py –host=”0.0.0.0″ –port=”55555″启动WEB控制台。然后就与docker的方式一样,通过浏览器访问。

代码解释:

–host=”0.0.0.0″是在所有网卡上启用
–port=”55555″通过55555端口进行访问(默认是57575)

03isf使用

    不管是docker的方式,还是宿主的方式,只要能正常运行,那么使用时就与上面章节中“命令行启动”的方式一模一样。多种安装方式介绍完之后,那我们就来看看isf的具体功能以及如何使用。

help:

    虽然该工具不大,但是它的功能也不少,所以一个章节不能完全掌握它的全部功能,我们决定将该工具的使用分多个章节进行讲解。
首先,通过help命令查看isf都有哪些功能:

    结果是不是很惊喜,居然有这么多功能!小伙伴们不要着急,通过后面章节,我们会一一讲解每个命令的用途。

    今天我们就通过一个实例来演示一下,这个框架的简单用法,以及它在工控系统中的实际作用。

use:

    可以通过use加tab键的方式,查看可用模块,当前版本共有9个功能模块。如果你是工控安全大牛,那么你也可以通过向该框架贡献各种exp的方式丰富该框架的攻击面。

use plcscan:

我们先通过plcscan小试牛刀

    当输入use plcscan后,提示我们是否设置变量,这里当然要先yes了,因为我们还没有设置targetIp的值呢,它怎么知道要扫描哪个目标呢?所以按回车键后,提示我们输入targetIp。

    这里我们就以公司自研的工控实验箱为攻击目标,扫描实验箱中目标系统的相关信息,下图为公司自研的工控实验箱示意图:

输入目标系统IP地址(192.168.1.100),如下图所示:

    因为目前我们的工具只集成了Siemens和modbus设备,所以它需要你选择目标设备的品牌,这里我们选择0,即直接按回车。

    后面会需要设置目标系统的端口号,Siemens默认是102,这里直接回车即可。后面还有几个参数,想必很多人都不知道这些参数是干什么的,大家暂时先不用管,后期随着对工控系统的了解,你会知道每个参数的含义,这里我们全部选择默认即可。

    当最后一个回车键入之后,系统就列出你刚才输入的所有参数,如果没有错误的话,直接回车即可开始扫描。

当扫描结果后,系统会返回该目标设备的详细信息,或者是失败。

    这里我们成功识别出该目标系统的详细信息,如品牌是Siemens,型号是S7-200等,是不是方便。说到这里想必有些人会问,识别到目标系统的这些信息后能做什么?看来你不是做安全的,做安全的都知道前期的信息收集是多么的重要,知道了目标系统的品牌、型号等信息之后,就可以使用公开或未公开的漏洞进行攻击。

    今天只是带大家粗略地认识了一下该个工具的安装及简单使用,后续更多使用方法,敬请期待后续文章。