使用 GoScan 枚举网络服务

网络渗透测试中,信息收集是至关重要的初始环节。本文将探讨如何利用 GoScan 工具执行此任务。

虽然诸如 Nmap、zmap 等网络扫描器功能强大,但在处理大型网络时,它们可能需要大量的时间和计算资源,而且学习曲线也较为陡峭。

GoScan 作为一个交互式的网络扫描器,可以自动化许多任务,从而快速地枚举网络和服务。

GoScan 简介

GoScan 是一款具有交互式界面的网络扫描工具,旨在自动执行 Nmap 的某些枚举功能。它配备了智能的选项卡自动完成功能,并使用 SQLite 数据库作为后端,保证连接的稳定性以及数据的可靠性。

与其他网络扫描工具不同,GoScan 不仅仅是一个在各种设备上构建的框架,它更侧重于抽象化和自动化多项任务。GoScan 主要依赖 Nmap 的端口扫描和服务枚举功能,同时也会使用诸如 Nikto 等其他端口扫描器。

GoScan 可以执行网络扫描的几个关键步骤:

  • 主机发现(利用 ARP 和 ping 扫描)
  • DNS 枚举
  • 服务枚举
  • 端口扫描
  • 域名枚举

工具安装

从源代码编译

克隆仓库:

$ git clone https://github.com/marco-lancini/goscan.git

进入 GoScan 目录并进行编译:

$ cd goscan/goscan 
$ make setup 
$ make build

运行以下命令以构建多平台二进制文件:

$ make cross

通过 Docker 安装

$ git clone https://github.com/marco-lancini/goscan.git 
$ cd goscan/ 
$ docker-compose up --build

二进制文件安装

推荐使用此安装方式。 获取二进制文件:

# Linux (64bit)
$ wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_amd64.zip
$ unzip goscan_2.4_linux_amd64.zip

# Linux (32bit)
$ wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_386.zip
$ unzip goscan_2.4_linux_386.zip

# 将可执行文件添加到 PATH
$ chmod +x goscan
$ sudo mv ./goscan /usr/local/bin/goscan

GoScan 的使用方法

快速扫描

GoScan 的易用性得益于其自动命令建议和选项卡补全功能。当您开始输入命令时,会显示带有描述的建议。

首先,我们需要加载目标。我们可以加载多个 IP 地址,或者像我们这里一样,加载单个目标机器的 IP 地址:

[goscan] > load target SINGLE 10.0.1.24

[*] Imported target: 10.0.1.24

接下来,让我们执行一个 ping 扫描:

GoScan 会先创建一个目录来存放扫描结果。目录位置可以自定义,不过默认位置通常足够使用。随后,我们可以看到它使用并执行的 Nmap 命令以及完成扫描所花费的时间。如果浏览到新创建的存储结果的目录,我们可以看到多种不同格式的输出。

端口扫描

GoScan 的端口扫描功能可能是其最强大的功能之一。当键入 portscan 时,我们可以看到它可以执行的多种扫描类型:

可以使用 show 命令查看 GoScan 当前存储的任何信息。例如,我们可以查看目标:

[goscan] > show targets

+------------+---------+
|  ADDRESS   |  STEP   |
+------------+---------+
| 10.0.1.24 | SWEEPED |
+------------+---------+

服务枚举

除了端口扫描,GoScan 还允许我们枚举目标上正在运行的服务。我们可以通过输入 enumerate 来查看可用的模块,包括 FINGER、FTP、HTTP、RDP 和 SMB。

每个服务模块还包括一些选项,例如 DRY (试运行)、POLITE (运行但避免暴力破解) 和 BRUTEFORCE (运行暴力破解)。

特殊扫描

GoScan 提供一些特定的扫描功能,用于侦察。要查看可用选项,请在提示符下输入 special:

[goscan] > special
                    eyewitness  Takes screenshots of websites and open VNC servers 
                    domain      Extracts domain information from enumerated data
                    dns         Performs DNS enumeration

EyeWitness 功能可以截取网页和 VNC 服务器的屏幕截图,并将其包含在目击者扫描中。不过,EyeWitness 必须安装在系统 PATH 中才能运行。域扫描功能可用于枚举域名信息,例如用户、主机和服务器。

总结

GoScan 工具在快速发现网络和服务方面非常有用,但仍有改进的空间。 例如,框架中可以加入更多的服务枚举模块,例如 SNMP 和 SMTP。总的来说,GoScan 是一款出色的工具,可以简化 Nmap 的某些枚举任务。