nmap的安装以及python简单使用

1.概念

Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。

2.简介

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。
Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。
 
3.安装
1. 先安装nmap
yum install nmap

wget http://nmap.org/dist/nmap-7.40.tar.bz2
tar -xvf nmap-7.01.tar.bz2 
cd nmap-7.01/
./configure
make
make install 

2.再安装python-nmap
sudo pip install python-nmap

4.命令行使用

a.进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
nmap -sP 192.168.1.0/24

b.仅列出指定网络上的每台主机,不发送任何报文到目标主机:

nmap -sL 192.168.1.0/24

探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):  

nmap -PS 192.168.1.234

使用UDP ping探测主机:

nmap -PU 192.168.1.0/24

使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:

nmap -sS 192.168.1.0/24

5.选项 :

-sP :使用ping扫描,打印出对扫描做出响应的主机。
-Sn:只进行主机发现,不进行端口扫描
-sS:使用频率最高的扫描选项,sw扫描,他不打开一个完全的TCP连接,因此执行速度较快。
-sT:全连接扫描
-sU:UDP扫描
-sO:获取服务器支持哪些协议
-SV:探测开放端口的服务和版本信息
-Pn:深层次扫描
-A: 使用带有攻击性方式扫描
-O:操作系统识别
-T4:指定扫描过程中使用的时序
-v: 显示冗长信息

应用简单案例

import nmap

nm = nmap.PortScanner()
ret = nm.scan('115.239.210.26','20')
print ret

返回格式如下:
{'nmap': {'scanstats': 
{'uphosts': '1', 'timestr': 'Tue Oct 25 11:30:47 2016', 'downhosts': '0', 'totalhosts': '1', 'elapsed': '1.11'},
 'scaninfo': {'tcp': {'services': '20', 'method': 'connect'}}, 'command_line': 'nmap -oX - -p 20 -sV 115.239.210.26'},
 'scan': {'115.239.210.26': {'status': {'state': 'up', 'reason': 'syn-ack'}, 'hostnames': [{'type': '', 'name': ''}],
 'vendor': {}, 'addresses': {'ipv4': '115.239.210.26'},
 'tcp': {20: {'product': '', 'state': 'filtered', 'version': '', 'name': 'ftp-data', 'conf': '3', 'extrainfo': '', 
'reason': 'no-response', 'cpe': ''}
}
}
}
}

扫描存活ip及mac地址 

def nmap_ping_scan(network_prefix):
    # network_prefix '192.168.6.1-4'或者'192.168.6.1/24'
    nm = nmap.PortScanner()  # 设置为nmap扫描状态。
    ping_scan_raw = nm.scan(hosts=network_prefix, arguments='-sn') # arguments就是运用什么方式扫描
    host_list_ip = []
    for result in ping_scan_raw['scan'].values():  # 将scan下面的数值赋值给result,并开始遍历
        if result['status']['state'] == 'up':   # 如果是up则表明对方主机是存活的
            host_list_ip.append(result['addresses'])  # 在addresses层下的ipv4,也就是IP地址添加到result字典中
    return host_list_ip

使用图示

1.ping扫描:扫描192.168.0.0/24网段上有哪些主机是存活的;

[root@laolinux ~]# nmap -sP 192.168.0.0/24
  Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-25 06:59 CST
  Host laolinux (192.168.0.3) appears to be up.
  Host 192.168.0.20 appears to be up.
  MAC Address: 00:1E:4F:CD:C6:0E (Unknown)
  Host 192.168.0.108 appearxprobe2、 p0f
# 安装

  

使用说明

扫描存活ip及mac地址

def nmap_ping_scan(network_prefix):
    # network_prefix '192.168.6.1-4'或者'192.168.6.1/24'
    nm = nmap.PortScanner()  # 设置为nmap扫描状态。
    ping_scan_raw = nm.scan(hosts=network_prefix, arguments='-sn') # arguments就是运用什么方式扫描
    host_list_ip = []
    for result in ping_scan_raw['scan'].values():  # 将scan下面的数值赋值给result,并开始遍历
        if result['status']['state'] == 'up':   # 如果是up则表明对方主机是存活的
            host_list_ip.append(result['addresses'])  # 在addresses层下的ipv4,也就是IP地址添加到result字典中
    return host_list_ip

  

1.ping扫描:扫描192.168.0.0/24网段上有哪些主机是存活的;

[root@laolinux ~]# nmap -sP 192.168.0.0/24
  Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-25 06:59 CST
  Host laolinux (192.168.0.3) appears to be up.
  Host 192.168.0.20 appears to be up.
  MAC Address: 00:1E:4F:CD:C6:0E (Unknown)
  Host 192.168.0.108 appears to be up.
  MAC Address: 00:E3:74:27:05:B7 (Unknown)
  Host 192.168.0.109 appears to be up.
  MAC Address: 00:E0:E4:A6:14:6F (Fanuc Robotics North America)

  

2、端口扫描:扫描192.168.0.3这台主机开放了哪些端口;

[root@laolinux ~]# nmap -sT 192.168.0.3
  Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-25 07:02 CST
  Interesting ports on laolinux (192.168.0.3):
  Not shown: 1667 closed ports
  PORT      STATE SERVICE
  21/tcp    open  ftp
  22/tcp    open  ssh
  25/tcp    open  smtp
  53/tcp    open  domain
  80/tcp    open  http
  110/tcp   open  pop3
  111/tcp   open  rpcbind
  143/tcp   open  imap
  964/tcp   open  unknown
  993/tcp   open  imaps
  995/tcp   open  pop3s
  3306/tcp  open  mysql
  10000/tcp open  snet-sensor-mgmt
  Nmap finished: 1 IP address (1 host up) scanned in 4.755 seconds

  

3、隐藏扫描,只在目标主机上留下很少的日志信息:隐藏扫描

[root@laolinux ~]# nmap -sS 192.168.0.127
  Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-25 07:08 CST
  Interesting ports on 192.168.0.127:
  Not shown: 1675 closed ports
  PORT    STATE SERVICE
  21/tcp  open  ftp
  135/tcp open  msrpc
  139/tcp open  netbios-ssn
  445/tcp open  microsoft-ds
  912/tcp open  unknown
  MAC Address: 00:11:1A:35:38:62 (Motorola BCS)
  Nmap finished: 1 IP address (1 host up) scanned in 3.121 seconds

  

4、UDP端口扫描:扫描192.168.0.127开放了哪些UDP端口;

[root@laolinux ~]# nmap -sU 192.168.0.127
  Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-25 07:08 CST
  Interesting ports on 192.168.0.127:
  Not shown: 1480 closed ports
  PORT     STATE         SERVICE
  123/udp  open|filtered ntp
  137/udp  open|filtered netbios-ns
  138/udp  open|filtered netbios-dgm
  445/udp  open|filtered microsoft-ds
  500/udp  open|filtered isakmp
  1900/udp open|filtered UPnP
  4500/udp open|filtered sae-urn
  MAC Address: 00:11:1A:35:38:62 (Motorola BCS)
  Nmap finished: 1 IP address (1 host up) scanned in 2.947 seconds

 

5、操作系统识别:

[root@laolinux ~]# nmap -sS -O  192.168.0.127
  Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-25 07:09 CST
  Interesting ports on 192.168.0.127:
  Not shown: 1675 closed ports
  PORT    STATE SERVICE
  21/tcp  open  ftp
  135/tcp open  msrpc
  139/tcp open  netbios-ssn
  445/tcp open  microsoft-ds
  912/tcp open  unknown
  MAC Address: 00:11:1A:35:38:62 (Motorola BCS)
  Device type: general purpose
  Running: Microsoft Windows 2003/.NET|NT/2K/XP
  OS details: Microsoft Windows 2003 Server or XP SP2
  Nmap finished: 1 IP address (1 host up) scanned in 5.687 seconds

  


  

官方文档:https://nmap.org/man/zh/index.html
参考链接Blog:https://www.cnblogs.com/zhaijiahui/p/8367327.html
参考链接Blog:https://my.oschina.net/u/4518087/blog/4728442?hmsr=kaifa_page
 
 
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作
原文地址:https://www.cnblogs.com/chenxiaomeng/p/14610219.html