• 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/ 如出现转载未声明 将追究法律责任~谢谢合作
  • 相关阅读:
    DevExpress應用皮膚
    .net组件开发DesignerSerializationVisibility
    使用LINQ实现分组统计
    WIN7打开任何快捷方式都安全警告
    WinMount是一款国产免费且功能强大Windows小工具,具备压缩解压和虚拟光驱(CD/DVD)的双重功能
    AForge.NET Framework
    繼承DevExpress.XtraGrid.GridControl參考
    系统找不到指定的路径”和“找不到preview.msi旧版本卸载失败”的解决办法
    GRIDVIEW設置滾動條
    C# 3.0新特征之创建和初始化集合对象
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/14610219.html
Copyright © 2020-2023  润新知