这篇文章主要介绍了IoTMap是一款什么工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
IoTMap
IoTMap是一款支持多协议的物联网网络模型构建工具,该工具可以同时使用一个或多个协议来对物联网IoT网络进行模型构建。该项目目前仍处于开发阶段,主要针对的是物联网设备安全。这个项目目前会定期更新,当前版本的IoTMap支持三个协议,即BLE、ZigBee和OS4I,并且将来还会支持更多协议。
工具要求
Python 3依赖:
1、Python > 3.5 2、Scapy(可以通过requirements文件进行安装,但建议使用最新版本源码进行项目构建) 3、neo4j-1.7.6 4、docopt-0.6.2 5、prompt-toolkit-3.0.5 6、terminaltables-3.1.0 7、pycryptodomex-3.9.7
广大研究人员可以使用下列命令和requirements.txt文件来安装依赖包:
pip3 install -r requirements.txt
OS库
除了上述依赖组件之外,我们还需要安装libgcrypt20-dev(用于网络嗅探),这里可以使用下列命令,具体取决于你所使用的操作系统:
sudo apt-get install libgcrypt20-dev # (debian-based distribs) sudo pacman -S libgcrypt # (archlinux-based distribs)
工具安装
广大研究人员可以使用下列命令将项目源码克隆至本地,并安装上述所有的依赖组件:
# 针对任意系统的发布版本呢 git clone https://github.com/AlgoSecure/iotmap.git cd iotmap sudo pip install -r requirements.txt # 基于Debian的系统 sudo apt-get install libgcrypt20-dev # 基于ArchLinux的系统 sudo pacman -S libgcrypt
接下来,我们还需要安装Neo4J,大多数的Linux发行版系统都可以通过内置的包管理器来安装Neo4J。当然了,我们也可以通过tarball来安装和使用该工具:
cd /path/to/iotmap cd database # 如果有必要的话,可以在URL中替换最新版本的版本号参数 wget -O neo4j-community.tar "https://neo4j.com/artifact.php?name=neo4j-community-3.5.9-unix.tar.gz" mkdir neo4j-community && tar xvf neo4j-community.tar -C neo4j-community --strip-components 1
首次运行
如果你是第一次运行该工具的话,你还需要定义一个数据库的用户名和密码,你可以使用下列命令开启数据库:
cd database ./neo4j-community/bin/neo4j console
此时,Neo4J将会运行,并可以通过http://localhost:7474来访问。默认的用户名和密码均为neo4j。IoTMap使用的是默认用户名和密码(iotmap)。
如果你想要设置不同的凭证,你则需要更新core/databaseController.py文件中第46行的参数值:
model = Model("bolt:http://localhost:7474", "username", "password")
工具使用
我们可以使用下列命令来运行和开启该框架:
python3 iotmap.py
IoTMap将会在运行之前开启neo4j数据库,不过数据库并非立即可用,因为数据库需要大约10秒的初始化时间。
IoTMap提供了三个模块,即数据库模块(Datebase)、模型模块(Modelling)和嗅探模块(Sniffing)。Sniffing模块目前仍处于开发阶段,可能某些选项还不可用。如需切换模块,可以直接输入模块名即可:
python3 iotmap.py Starting the database Database is available at http://localhost:7474/ IIIIIIIIII TTTTTTTTTTTTTTTTTTTTTTTMMMMMMMM MMMMMMMM I::::::::I T:::::::::::::::::::::TM:::::::M M:::::::M I::::::::I T:::::::::::::::::::::TM::::::::M M::::::::M II::::::II T:::::TT:::::::TT:::::TM:::::::::M M:::::::::M I::::I oooooooooooTTTTTT T:::::T TTTTTTM::::::::::M M::::::::::M aaaaaaaaaaaaa ppppp ppppppppp I::::I oo:::::::::::oo T:::::T M:::::::::::M M:::::::::::M a::::::::::::a p::::ppp:::::::::p I::::I o:::::::::::::::o T:::::T M:::::::M::::M M::::M:::::::M aaaaaaaaa:::::ap:::::::::::::::::p I::::I o:::::ooooo:::::o T:::::T M::::::M M::::M M::::M M::::::M a::::app::::::ppppp::::::p I::::I o::::o o::::o T:::::T M::::::M M::::M::::M M::::::M aaaaaaa:::::a p:::::p p:::::p I::::I o::::o o::::o T:::::T M::::::M M:::::::M M::::::M aa::::::::::::a p:::::p p:::::p I::::I o::::o o::::o T:::::T M::::::M M:::::M M::::::M a::::aaaa::::::a p:::::p p:::::p I::::I o::::o o::::o T:::::T M::::::M MMMMM M::::::Ma::::a a:::::a p:::::p p::::::p II::::::IIo:::::ooooo:::::o TT:::::::TT M::::::M M::::::Ma::::a a:::::a p:::::ppppp:::::::p I::::::::Io:::::::::::::::o T:::::::::T M::::::M M::::::Ma:::::aaaa::::::a p::::::::::::::::p I::::::::I oo:::::::::::oo T:::::::::T M::::::M M::::::M a::::::::::aa:::ap::::::::::::::pp IIIIIIIIII ooooooooooo TTTTTTTTTTT MMMMMMMM MMMMMMMM aaaaaaaaaa aaaap::::::pppppppp p:::::p p:::::p p:::::::p p:::::::p p:::::::p ppppppppp Version=0.1 IoTMap > help Core commands ============= Commands Description ------------------------------ database Use database mode. sniffing Use sniffing mode. exploit Use exploit mode. IoTMap >
这里的每一个模块和函数功能都提供了一个帮助菜单,以帮助广大研究人员了解工具的使用方式。
数据库模块(Datebase)
这个模块负责跟neo4j数据库进行交互和管理:
IoTMap > database IoTMap database > help Core commands ============= Commands Description ------------------------------ database Use database mode. sniffing Use sniffing mode. exploit Use exploit mode. Database commands ================= Interact with the neo4j database. List of available commands : addNodes clearDatabase exportDB getNodes help importDB importPcaps mergeNodes removeNode For more information about any commands hit : <command name> -h IoTMap database >
我们可以通过导入现有数据库或Pcap文件来给数据库填充数据。ImportPcaps命令可以将Pcap文件转换成我们用于生成模型时所需的统一格式。这个模块可以根据给定的协议来使用不同的提取器,IoTMap的主程序可以选择相应的提取器,并以多线程形式运行数据包生成器(gen_packets.py)来生成统一格式的pcap文件。
模型模块(Modelling)
IoTMap modelling > help Core commands ============= Commands Description ------------------------------ database Use database mode. sniffing Use sniffing mode. exploit Use exploit mode. Modelling commands ================== Map the network of IoT devices detected by sniffing. List of available commands : appGraph compareTo dlGraph help nwkGraph option run set transGraph For more information about any commands hit : <command name> -h IoTMap modelling >
程序会在创建模型之前开启Neo4J数据库,数据库开启之后,该模块将会运行。首先,它会分析输入的pcap文件,然后提取并创建节点,连接节点的边则为链接节点。模型创建成功之后,我们就可以通过访问http://localhost:7474/来查看结果了。
工具运行截图
感谢你能够认真阅读完这篇文章,希望小编分享的“IoTMap是一款什么工具”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/221661.html