扫描秒工具nmap

python3 安装 nmap

python-nmap 是一个 python 库,它有助于使用 nmap 端口扫描器。
它允许很容易地操作 nmap 扫描结果,支持 nmap 脚本输出。

apt-get install nmap
pip3 isntall python-nmap

nmap 在 python 中的应用,官方方法描述:

import nmap
# 实例化 PortScanner 对象
nm = nmap.PortScanner()
    1. 扫描 127.0.0.1 的22到443端口
nm.scan('127.0.0.1', '22-443')

结果:这里扫描到了两个端口 80 和 22

In [5]: nm.scan('127.0.0.1', '22-443')
Out[5]: 
{'scan': {'127.0.0.1': {'vendor': {},
   'hostnames': [{'type': 'PTR', 'name': 'localhost'}],
   'addresses': {'ipv4': '127.0.0.1'},
   'tcp': {80: {'product': 'nginx',
     'version': '1.10.3',
     'reason': 'syn-ack',
     'extrainfo': 'Ubuntu',
     'state': 'open',
     'cpe': 'cpe:/o:linux:linux_kernel',
     'conf': '10',
     'name': 'http'},
    22: {'product': 'OpenSSH',
     'version': '7.2p2 Ubuntu 4ubuntu2.4',
     'reason': 'syn-ack',
     'extrainfo': 'Ubuntu Linux; protocol 2.0',
     'state': 'open',
     'cpe': 'cpe:/o:linux:linux_kernel',
     'conf': '10',
     'name': 'ssh'}},
   'status': {'state': 'up', 'reason': 'localhost-response'}}},
 'nmap': {'scanstats': {'downhosts': '0',
   'timestr': 'Wed Jan 16 14:51:02 2019',
   'uphosts': '1',
   'totalhosts': '1',
   'elapsed': '8.24'},
  'command_line': 'nmap -oX - -p 22-443 -sV 127.0.0.1',
  'scaninfo': {'tcp': {'services': '22-443', 'method': 'syn'}}}}
    1. 获取上面用于扫描的命令行语句
nm.command_line()
In [6]: nm.command_line()
Out[6]: 'nmap -oX - -p 22-443 -sV 127.0.0.1'
    1. 获取 nmap 的扫描信息
nm.scaninfo()
In [7]: nm.scaninfo()
Out[7]: {'tcp': {'services': '22-443', 'method': 'syn'}}
    1. 获取所有被扫描的主机
nm.all_hosts()
In [8]: nm.all_hosts()
Out[8]: ['127.0.0.1']
    1. 获取主机127.0.0.1的一个主机名,通常是用户记录
nm['127.0.0.1'].hostname()
In [9]: nm['127.0.0.1'].hostname()
Out[9]: 'localhost'
    1. 获取主机127.0.0.1的主机名列表
nm['127.0.0.1'].hostnames()
In [10]: nm['127.0.0.1'].hostnames()
Out[10]: [{'type': 'PTR', 'name': 'localhost'}]
    1. 获取主机127.0.0.1的状态 (up|down|unknown|skipped)
nm['127.0.0.1'].state()
In [11]: nm['127.0.0.1'].state()
Out[11]: 'up'
    1. 获取所有扫描到的协议 ['tcp', 'udp'] in (ip|tcp|udp|sctp)
nm['127.0.0.1'].all_protocols()
In [12]: nm['127.0.0.1'].all_protocols()
Out[12]: ['tcp']
    1. 获取 tcp 协议的所有端口
nm['127.0.0.1']['tcp'].keys()
In [13]: nm['127.0.0.1']['tcp'].keys()
Out[13]: dict_keys([80, 22])
    1. 获取 tcp 协议的所有端口(排序版本)
nm['127.0.0.1'].all_tcp()
In [14]: nm['127.0.0.1'].all_tcp()
Out[14]: [22, 80]
    1. 获取 udp 协议的所有端口(排序版本)
nm['127.0.0.1'].all_udp()
In [15]: nm['127.0.0.1'].all_udp()
Out[15]: []
    1. 获取 ip 协议的所有端口(已排序版本)
nm['127.0.0.1'].all_ip()
In [16]: nm['127.0.0.1'].all_ip()
Out[16]: []
    1. 获取 sctp 协议的所有端口(已排序版本)
nm['127.0.0.1'].all_sctp()
In [17]: nm['127.0.0.1'].all_sctp()
Out[17]: []
    1. 主机 127.0.0.1 上是否有端口 22/tcp 的信息
nm['127.0.0.1'].has_tcp(22)
In [18]: nm['127.0.0.1'].has_tcp(22)
Out[18]: True
    1. 获取关于主机 127.0.0.1 上 tcp 中的端口 22 的信息
nm['127.0.0.1']['tcp'][22]
In [19]: nm['127.0.0.1']['tcp'][22]
Out[19]: 
{'product': 'OpenSSH',
 'version': '7.2p2 Ubuntu 4ubuntu2.4',
 'reason': 'syn-ack',
 'extrainfo': 'Ubuntu Linux; protocol 2.0',
 'state': 'open',
 'cpe': 'cpe:/o:linux:linux_kernel',
 'conf': '10',
 'name': 'ssh'}
    1. 同上
nm['127.0.0.1'].tcp(22)
In [20]: nm['127.0.0.1'].tcp(22)
Out[20]: 
{'product': 'OpenSSH',
 'version': '7.2p2 Ubuntu 4ubuntu2.4',
 'reason': 'syn-ack',
 'extrainfo': 'Ubuntu Linux; protocol 2.0',
 'state': 'open',
 'cpe': 'cpe:/o:linux:linux_kernel',
 'conf': '10',
 'name': 'ssh'}
  • 17 获取主机 127.0.0.1 上端口 22/tcp 的状态
nm['127.0.0.1']['tcp'][22]['state']
In [21]: nm['127.0.0.1']['tcp'][22]['state']
Out[21]: 'open'
    1. 扫描结果以 CSV 格式展现
nm.csv()
In [22]: print(nm.csv())
host;hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe
127.0.0.1;localhost;PTR;tcp;22;ssh;open;OpenSSH;"Ubuntu Linux; protocol 2.0";syn-ack;7.2p2 Ubuntu 4ubuntu2.4;10;cpe:/o:linux:linux_kernel
127.0.0.1;localhost;PTR;tcp;80;http;open;nginx;Ubuntu;syn-ack;1.10.3;10;cpe:/o:linux:linux_kernel
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353