
安装包及教程地址:dnmap分布式集群扫描-网络安全文档类资源-CSDN下载
DNMAP 集群简介
dnmap是一个用 python 写的进行分布式扫描的 nmap 扫描框架,我们可以用dnmap来通过多个台机器发起一个大规模的扫描,dnmap采用C/S结构,执行大量扫描任务时非常便捷,扫描结果可以统一管理。
使用3台位于不同区域的kali服务器对A类网段进行扫描
用户在服务器端设定好nmap执行的命令,dnmap会自动的分配给客户端进行扫描,并将扫描结果提交给服务器。
dnmap有两个可执行文件,分别是 dnmap_client 和 dnmap_server,在进行一个分布式nmap扫描之前,我们可以用dnmap_server 来生成一个dnmap的服务端,然后在其他机器用
dnmap_client 进行连接。然后就能进行分布式的 nmap 扫描了。+
生成证书文件
解压dnmap_v0.6.tgz
┌──(root💀kali)-[~]
└─# tar zxf dnmap_v0.6.tgz
进入查看
──(root💀kali)-[~]
└─# cd dnmap_v0.6
┌──(root💀kali)-[~/dnmap_v0.6]
└─# ls
dnmap_client.py dnmap_server.py README server.pem
因为dnmap自带的用于TLS连接的 pem文件证书太过久远,必须要重新生成一个pem 证书客户端和服务器才能正常连接。
┌──(root💀kali)-[~/dnmap_v0.6]
└─# openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out server.pem
Generating a RSA private key
.......................................+++++
...............................................................................................+++++
writing new private key to 'key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:changping
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cwillchris
Organizational Unit Name (eg, section) []:xue
Common Name (e.g. server FQDN or YOUR name) []:Cwillchris
Email Address []:123@163.com
以上信息可以按照要求填写也可以随意填写。
将新生成的私钥追加到server.pem 证书后面
┌──(root💀kali)-[~/dnmap_v0.6]
└─# ls
dnmap_client.py dnmap_server.py key.pem README server.pem
┌──(root💀kali)-[~/dnmap_v0.6]
└─# cat key.pem >> server.pem
创建 NMAP命令文件
这一步很简单我们只需要将扫描的命令添加到一个文件中即可,每行一条命令。客户端启动后会主动找服务端要任务。当客户端执行完后,会再找服务端要任务。
┌──(root💀kali)-[~/dnmap_v0.6]
└─# vim nmap.txt #插入以下内容
nmap101.200.128.30-31
nmap101.200.128.32-33
nmap101.200.128.34-35
nmap101.200.128.36-37
nmap 101.200.128.38-40
6.2.4 启动 DNMAP 集群
1、使用 dnmap_server 启动 dnmap 的服务端
选项:
-f, 跟一个待会要执行的 nmap 命令的文件
-P, 跟一个用于 TLS 连接的 pem 文件,默认是使用随服务器提供的 server.pem
┌──(root💀kali)-[~/dnmap_v0.6]
└─# python dnmap_server.py -f nmap.txt -P server.pem
提示需要 twisted 库,安装下 twisted
┌──(root💀kali)-[~/dnmap_v0.6]
└─# apt-get install python-twisted-bin python-twisted-core
提示无法定位,由于 Kali2021.1 已经完全是 python3 环境,apt 源已经不提供 python2 相关的依赖包,dnmap
使用的是 python2,所以无法通过在线安装相关的依赖,由于 python-twisted-bin 和 pythontwisted-core 还需要其他的依赖,所以需要离线安装相关的依赖。
注:在安装相关依赖之前,先将 Kali 系统做好快照,因为安装完这些依赖,会导致 Kali 系统无法升级。
将依赖包上传到 Kali,进行安装
安装相关依赖(注意请按照我的顺序,顺序错误会出错)
┌──(root kali)-[~]
└─# dpkg -i python-pkg-resources_40.8.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-zope.interface_4.3.2-1+b2_amd64.deb
┌──(root kali)-[~]
└─# dpkg -i python-attr_18.2.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-six_1.12.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-automat_0.6.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-constantly_15.1.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-hyperlink_17.3.1-2_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-incremental_16.10.1-3_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-asn1crypto_0.24.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i libffi6_3.2.1-9_amd64.deb
┌──(root kali)-[~]
└─# dpkg -i python-cffi-backend_1.12.2-1_amd64.deb
┌──(root kali)-[~]
└─# dpkg -i python-enum34_1.1.6-2_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-ipaddress_1.0.17-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-cryptography_2.6.1-3+deb10u2_amd64.deb
这儿提示报错,卸载 offsec-awae-python2
┌──(root kali)-[~]
└─# dpkg -r offsec-awae-python2
再次安装 python-cryptography_2.6.1-3+deb10u2_amd64.deb
┌──(root kali)-[~]
└─# dpkg -i python-cryptography_2.6.1-3+deb10u2_amd64.deb
┌──(root kali)-[~]
└─# dpkg -i python-openssl_19.0.0-1_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-pyasn1_0.4.2-3_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-pyasn1-modules_0.2.1-0.2_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-service-identity_16.0.0-2_all.deb
┌──(root kali)-[~]
└─# dpkg -i python-twisted-bin_18.9.0-3_amd64.deb
┌──(root kali)-[~]
└─# dpkg -i python-twisted-core_18.9.0-3_all.deb
启动 dnmap 服务端
┌──(root kali)-[~/dnmap_v0.6]
└─# python dnmap_server.py -f nmap.txt -P server.pem
查看服务器端口:
┌──(root kali)-[~]
└─# netstat -antup | grep 460
2、使用 dnmap_client 启动 dnmap 的多个客户端
注:我们没有 4 台 Kali 系统。所以我们将 dnmap 服务端和 2 客户端运行在一台机器上。
一共打开 3个 终端窗口。使用 Ctrl+shift+t 可以打开新的终端。
dnmap_client 的参数:
-s, 输入 dnmap 的服务器地址. -p, dnmap 服务的端口号,默认是 46001
打开两个终端,每个终端上执行下面命令: #运行第 1 个 dnmap 客户端
┌──(root kali)-[~/dnmap_v0.6]
└─# python dnmap_client.py -s 192.168.1.53 # -oA 表示将执行结果导出到文件中
#运行第 2 个 dnmap 客户端
┌──(root kali)-[~/dnmap_v0.6]
└─# python dnmap_client.py -s 192.168.1.53
客户端连接成功之后就会执行 namp.txt 中的命令
然后服务端就会输出以下信息
我们可以看到两条命令都执行完成了
我们再打开一个终端 Ctrl+shift+t
┌──(root kali)-[~/dnmap_v0.6]
└─# ls
┌──(root kali)-[~/dnmap_v0.6]
└─# cd nmap_results/
┌──(root kali)-[~/dnmap_v0.6/nmap_results]
└─# ls
20311509.nmap 23080905.nmap 34059114.nmap 66903887.nmap 7944810.nmap
这几个文件名和客户端输出的信息是一致的。我们可以查看一下文件的具体内容
┌──(root kali)-[~/dnmap_v0.6/nmap_results]
└─# cat 93929059.nmap
输出的信息和我们手动执行命令是一致的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)