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

框架介绍声明:ISF该框架是北京xx科技基于开源框架自研的一套工控渗透框架,仅用于工控安全教学,公司实验箱产品的安全研究,使用该框架进行非法操作产生的一切后果公司一概不负责 。
框架主要使用Python语言开发,通过集成ShadowBroker释放的NSA工具Fuzzbunch攻击框架,开发一款适合工控漏洞利用的框架 。由于Fuzzbunch攻击框架仅适用于Python2.6,很多核心的功能都封装成了DLL,通过函数进行调用,不便于后期的移植和使用 。但是,Fuzzbunch的命令行使用的确很方便,所以就有了现如今这款适合工控漏洞利用的框架,取名isf 。
环境准备

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

文章插图
 
注:如果想在windows平台上安装,除了需要安装其它两个依赖:pypiwin32、dnet==1.12以外,window平台和linux平台下的使用没有什么区别 。
命令行启动:这里所说的安装,其实是该工具所需环境的安装与配置,当运行环境配置好后,只需要在网站[https://github.com/w3h/isf]下载该工具,然后在项目目录下运行python2 isf.py即可 。出现如下图所示证明安装成功 。
 
工控渗透框架ISF介绍:信息收集篇

文章插图
 
 
WEB启动该构架不仅可以通过命令行进行操作,还可以通过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' –unsecure
运行完上面的命令之后,在浏览器中输入http://192.168.223.129:57575(这里的ip换成自己的)输入默认密码:123456,即可登录,如下图所示:
 
工控渗透框架ISF介绍:信息收集篇

文章插图
 
 
宿主部署如果是通过上面的docker方式进行部署,那么只需要按照命令执行即可,所需依赖都将通过Dockerfile进行安装 。如果想在宿主机上直接使用WEB控制台的方式进行访问的话,就需要安装butterfly依赖,命令pip2 instll butterfly,安装好后,通过butterfly.server.py --host="0.0.0.0" --port="55555"启动WEB控制台 。然后就与docker的方式一样,通过浏览器访问 。
代码解释:
• --host="0.0.0.0"是在所有网卡上启用
• --port="55555"通过55555端口进行访问(默认是57575)
isf使用【工控渗透框架ISF介绍:信息收集篇】不管是docker的方式,还是宿主的方式,只要能正常运行,那么使用时就与上面章节中“命令行启动”的方式一模一样 。多种安装方式介绍完之后,那我们就来看看isf的具体功能以及如何使用 。
help虽然该工具不大,但是它的功能也不少,所以一个章节不能完全掌握它的全部功能,我们决定将该工具的使用分多个章节进行讲解 。
首先,通过help命令查看isf都有哪些功能:
 
工控渗透框架ISF介绍:信息收集篇

文章插图
 
 
结果是不是很惊喜,居然有这么多功能!小伙伴们不要着急,通过后面章节,我们会一一讲解每个命令的用途 。
今天我们就通过一个实例来演示一下,这个框架的简单用法,以及它在工控系统中的实际作用 。
use可以通过use加tab键的方式,查看可用模块,当前版本共有9个功能模块 。如果你是工控安全大牛,那么你也可以通过向该框架贡献各种exp的方式丰富该框架的攻击面 。
 
工控渗透框架ISF介绍:信息收集篇

文章插图
 
 
use plcscan我们先通过plcscan小试牛刀
 
工控渗透框架ISF介绍:信息收集篇

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


推荐阅读