nmap全称为Network Mapper。是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。关于工具的使用,网上有很多教程,这里不做具体说明。

以下我用UBUNTU演示

在LINUX环境下,扫描的结果通常是字符形式的如下:

 #sudo nmap -O 192.168.11.114                                   

Starting Nmap 6.40 ( http://nmap.org ) at 2018-10-24 09:27 CST
Nmap scan report for ubuntu-14.04 (192.168.11.114)
Host is up (0.000038s latency).
Not shown: 996 closed ports
PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   filtered http
443/tcp  filtered https
8000/tcp filtered http-alt
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=6.40%E=4%D=10/24%OT=22%CT=1%CU=31262%PV=Y%DS=0%DC=L%G=Y%TM=5BCFCB
OS:0C%P=x86_64-pc-linux-gnu)SEQ(SP=100%GCD=1%ISR=10B%TI=Z%CI=I%TS=8)SEQ(SP=
OS:100%GCD=1%ISR=10B%TI=Z%CI=I%II=I%TS=8)OPS(O1=MFFD7ST11NW7%O2=MFFD7ST11NW
OS:7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFFD7ST11NW7%O6=MFFD7ST11)WIN(W1=A
OS:AAA%W2=AAAA%W3=AAAA%W4=AAAA%W5=AAAA%W6=AAAA)ECN(R=Y%DF=Y%T=40%W=AAAA%O=M
OS:FFD7NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)
OS:T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S
OS:+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=
OS:Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G
OS:%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)

Network Distance: 0 hops

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 112.44 seconds

结果怎么说呢?应该是可以看懂的,但是不够直观。对于新人来说看起来比较费劲。特别是如果你给别人展示的时候。那么有没有现成的工具可以将数据结果可视化呢?还真有。
在GITHUB上发现了Rev3rseSecurity的WebMap项目就可以实现这样的功能

演示如下:

首先安装nmap

安装方式多种多样,如果不需要精确版本利用apt-get 包管理安装即可(CENTOS下YUM)

#sudo apt-get install nmap
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  libtcl8.5 libtk8.5 libxft2 libxrender1 libxss1 ruby1.9.1-examples
Use 'apt-get autoremove' to remove them.
将会安装下列额外的软件包:
  libblas3 liblinear-tools liblinear1 liblua5.2-0
建议安装的软件包:
  libsvm-tools liblinear-dev
下列【新】软件包将被安装:
  libblas3 liblinear-tools liblinear1 liblua5.2-0 nmap
升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 216 个软件包未被升级。
需要下载 4,238 kB 的软件包。
解压缩后会消耗掉 18.6 MB 的额外空间。
您希望继续执行吗? [Y/n] y

安装WEBMAP

由于作者使用DOCKER实现,所以前置需要安装DOCKER(本文不演示DOCKER安装,请自行百度)

#mkdir /tmp/webmap #创建一个目录,启动容器会利用Docker Volume映射宿主机与容器目录
#sudo docker run -d \
         --name webmap \
         -h webmap \
         -p 8000:8000 \
         -v /tmp/webmap:/opt/xml \
         rev3rse/webmap /run.sh
Unable to find image 'rev3rse/webmap:latest' locally
latest: Pulling from rev3rse/webmap
b3aad5be9387: Pull complete 
3e981027b9c7: Pull complete 
Digest: sha256:c09be37b736d0b3b26f9dc98d33baa58a9c8ff55d60123413f21340bcb2773b5
Status: Downloaded newer image for rev3rse/webmap:latest
03c98689abaa664f3519994040006b252aa498476f95f95a6f5bee2a72330e0b

查看容器进程

sudo docker ps |grep webmap
03c98689abaa        rev3rse/webmap                 "/run.sh"              0.0.0.0:8000->8000/tcp    
#容器ID                     容器名                                 执行命令             端口映射

执行nmap结果输出XML文件到/tmp/webmap

sudo nmap -sT -A -T4 -oX /tmp/webmap/myscan.xml 192.168.11.114

Starting Nmap 6.40 ( http://nmap.org ) at 2018-10-24 09:49 CST
Nmap scan report for ubuntu-14.04 (192.168.11.114)
Host is up (0.00025s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        (protocol 2.0)
| ssh-hostkey: 1024 d8:7b:0f:56:71:82:13:a6:6d:8b:27:3a:ce:14:1f:33 (DSA)
| 2048 21:b9:86:cc:a1:38:cc:52:44:37:c8:32:d7:ae:32:dd (RSA)
|_256 c3:72:42:21:46:cd:4c:cd:9d:07:8d:0a:aa:0a:df:d6 (ECDSA)
80/tcp   open  http?
|_http-methods: No Allow or Public header in OPTIONS response (status code 400)
|_http-title: Did not follow redirect to https://ubuntu-14.04/
443/tcp  open  ssl/https?
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
| http-robots.txt: 1 disallowed entry 
|_/
|_http-title: Loading…
| ssl-cert: Subject: commonName=cattle/organizationName=the-ranch
| Not valid before: 2018-09-25T07:42:22+00:00
|_Not valid after:  2019-09-25T07:42:32+00:00
8000/tcp open  http-alt?
|_http-methods: No Allow or Public header in OPTIONS response (status code 500)
|_http-title: ExpatError          at /
4 services unrecognized despite returning data.
...

仅仅是为了演示,我这里只扫描了这台测试机,批量扫描可以按网段进行,当然时间很更久一些

观看结果

因为暴漏了8000端口,打开浏览器输入IP:8000查看即可,比如我这里是http://192.168.11.114:8000/

LINUX下-nmap数据结果的可视化
我台测试机只开放了4个端口,可以参考上述字符输出的内容

下面有一个详细说明
LINUX下-nmap数据结果的可视化

在页面下方可以列出扫描过的所有主机的列表,当然我这里只扫了1台,就只有一个
LINUX下-nmap数据结果的可视化

注意看右下的三角很贴心可以对主机进行标注,比如我当前标注checked
LINUX下-nmap数据结果的可视化

下面还有一个插入标注(Insert note),会在输出PDF的时候进行显示,如下:
LINUX下-nmap数据结果的可视化

当然,如果让所有都通过WEB方式查看也不友好,毕竟给BOSS汇报的时候还是希望附件的方式。别着急,WEBMAP自带的导出PDF的格式
LINUX下-nmap数据结果的可视化

导出结果如下:
LINUX下-nmap数据结果的可视化
LINUX下-nmap数据结果的可视化

当然作者还在不断开发中。最后提供软件的GITHUB地址
webmap