前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >网络空间安全之一个WH的超前沿全栈技术深入学习之路(11)——实战之DNMAP 分布式集群执行大量扫描任务:就怕你学成黑客啦!

网络空间安全之一个WH的超前沿全栈技术深入学习之路(11)——实战之DNMAP 分布式集群执行大量扫描任务:就怕你学成黑客啦!

作者头像
盛透侧视攻城狮
发布2024-11-26 12:17:37
发布2024-11-26 12:17:37
15000
代码可运行
举报
运行总次数:0
代码可运行

2 实战:DNMAP 分布式集群执行大量扫描任务

2.1 DNMAP 集群简介

  • dnmap 是一个用 python 写的进行分布式扫描的 nmap 扫描框架,我们可以用 dnmap 来通过多个台机器发起一个大规模的扫描,dnmap 采用 C/S 结构,执行大量扫描任务时非常便捷,扫描结果可以统一管理。
实验场景:使用 4 台位于不同区域的 kali 服务器对 A 类网段时行扫描。
  • 用户在服务器端设定好 nmap 执行的命令,dnmap 会自动的分配给客户端进行扫描,并将扫描结果提交给服务器。
  • dnmap 有两个可执行文件,分别是 dnmap_client 和 dnmap_server。在进行一个分布式 nmap
  • 扫描之前,我们可以用 dnmap_server 来生成一个 dnmap 的服务端,然后在其他机器用
  • dnmap_client 进行连接。然后就能进行分布式的 nmap 扫描了。
  • 这里我们可以使用 Kali Linux,自带有 dnmap。

2.2 生成证书文件

  • 因为 dnmap 自带的用于 TLS 连接的 pem 文件证书太过久远,必须要重新生成一个 pem 证书客户端和服务器才能正常连接。
  • 以下信息可以按照要求填写也可以随意填写。
代码语言:javascript
代码运行次数:0
复制
# openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out server.pem
Country Name (2 letter code) [AU]: CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:haidian
Organization Name (eg, company) [Internet Widgits Pty Ltd]:xuegod
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:xuegod.cn
Email Address []:mk@163.com
查看新生成的证书server.pem
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# ls /root/server.pem
将新生成的私钥追加到 server.pem 证书后面
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# cat key.pem >> server.pem
2.3 创建 NMAP 命令文件
  • 这一步很简单我们只需要将扫描的命令添加到一个文件中即可,每行一条命令。客户端启动后会主动找服务端要任务。当客户端执行完后,会再找服务端要任务。
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# vim nmap.txt #插入以下内容
nmap 101.200.128.30-31
nmap 101.200.128.32-33
nmap 101.200.128.34-35
nmap 101.200.128.36-37
nmap 101.200.128.38-40
2.4 启动 DNMAP 集群
  • 1、使用 dnmap_server 启动 dnmap 的服务端
  • 选项:
  • -f, 跟一个待会要执行的 nmap 命令的文件
  • -P, 跟一个用于 TLS 连接的 pem 文件,默认是使用随服务器提供的 server.pem
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# /usr/bin/dnmap_server -f nmap.txt -P server.pem
查看服务器端口:
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# netstat -antup | grep 460
tcp 0 0 0.0.0.0:46001 0.0.0.0:* LISTEN 2192/python
2、使用 dnmap_client 启动 dnmap 的多个客户端
注意:
  • 我们没有 4 台 Kali 系统。所以我们将 dnmap 服务端和 2 客户端运行在一台机器上。
实验拓扑图如下:
  • 一共打开 3 终端窗口。使用 Ctrl+shift+t 可以打开新的终端。
  • dnmap_client 的参数:
  • -s, 输入 dnmap 的服务器地址.
  • -p, dnmap 服务的端口号,默认是 46001
  • 打开两个终端,每个终端上执行如下命令:
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# /usr/bin/dnmap_client -s 192.168.1.53 #运行第 1 个 dnmap 客户端

root@xuegod53:~# /usr/bin/dnmap_client -s 192.168.1.53 #运行第 2 个 dnmap 客户端
  • 客户端连接成功之后就会执行 namp.txt 中的命令
然后服务端就会输出以下信息
客户端输出信息
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# cd nmap_results/

root@xuegod53:~/nmap_results# ls
40689039.nmap 8869492.nmap 
  • -oA 表示将执行结果导出到文件中
  • 我们可以看到两条命令都执行完成了
  • 我们再打开一个终端 Ctrl+shift+t
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~# ls
  • 我们到 nmap_results 目录查看执行结果
  • 这两个文件名和客户端输出的信息是一致的。我们可以查看一下文件的具体内容
代码语言:javascript
代码运行次数:0
复制
root@xuegod53:~/nmap_results# cat 8869492.nmap
  • 输出的信息和我们手动执行命令是一致的。

3 NESSUS 漏洞检测

3.1 NESSUS 简介

  • 1998 年,Nessus 的创办人 Renaud Deraison 展开了一项名为"Nessus"的计划,其计划目的是希望能为互联网社群提供一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程式。
  • 2002 年时,Renaud 与 Ron Gula, Jack Huffard 创办了一个名为 Tenable Network Security 机构。
  • 在第三版的 Nessus 释出之时,该机构收回了 Nessus 的版权与程式源代码(原本为开放源代码),并注册了nessus.org 成为该机构的网站。
  • 目前此机构位于美国马里兰州的哥伦比亚。
实验环境:
  • 因为 NESSUS 占用内存比较大,做这个实验需要将 Kali 内存调到 6G 或 8G。
下载地址
  • 因为 NESSUS 从 7 版本开始增加了远程调用的认证,MSF 调用 NESSUS 时会报错,所以我们选择下载 6.12 版本的 64 位 deb 包
  • 如果不使用 MSF 调用 NESSUS,下载任何一个版本都可以。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2 实战:DNMAP 分布式集群执行大量扫描任务
    • 2.1 DNMAP 集群简介
      • 实验场景:使用 4 台位于不同区域的 kali 服务器对 A 类网段时行扫描。
    • 2.2 生成证书文件
      • 查看新生成的证书server.pem
      • 将新生成的私钥追加到 server.pem 证书后面
      • 2.3 创建 NMAP 命令文件
      • 2.4 启动 DNMAP 集群
      • 查看服务器端口:
      • 2、使用 dnmap_client 启动 dnmap 的多个客户端
      • 客户端输出信息
  • 3 NESSUS 漏洞检测
    • 3.1 NESSUS 简介
      • 实验环境:
      • 下载地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档