使用NMAP端口扫描代码实现
Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。它 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作,因此也常被黑客所青睐。本文以Centos7为例,用python实现NMAP进行端口扫描。
一、安装NMAP
1.下载NMAP源码
cd /usr/src
git clone https://github.com/nmap/nmap.git
2.进行编译安装
cd nmap
./configure

(若安装过程中报错,如make[1]:g++:conmand not found等,则需要安装一下依赖库)
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
接下来进行编译
make
make install

出现以上界面表示安装成功
3.清除安装时生成的临时文件
make clean
4.查看nmap的版本
nmap version

成功安装nmap
二、安装python-nmap
直接通过pip安装(若linux环境下无pip可自行安装)
python -m pip install python-nmap
三、功能实现
安装好以上工具之后,将Nmap import到脚本中,就可以使用Nmap扫描功能了。PortScanner类对象能完成扫描功能,PortScanner类有一个scan()函数,它可将目标和端口的列表作为参数输入,并对他们进行基本的Nmap扫描功能。另外,还可以把目标主机的地址/端口放入数组中备查,并打印出端口的状态。在接下来的部分中,依靠该功能来定位和识别目标。
#!/usr/bin/env Python
import nmap
import optparse def nmapScan(tgtHost,tgtPort):
nmScan=nmap.PortScanner()
nmScan.scan(tgtHost,tgtPort)
state=nmScan[tgtHost]['tcp'][int (tgtPort)]['state']
print("[*]"+tgtHost+" tcp/"+tgtPort+""+state)
def main():
parser=optparse.OptionParser('using%prog'+'-H <target host> -p <target port>')
parser.add_option('-H',dest='tgtHost',type='string',help='specify target host')
parser.add_option('-p',dest='tgtPort',type='string',help='specify target port[s] separated by comma')
(options,args)=parser.parse_args()
tgtHost=options.tgtHost
tgtPorts=str(options.tgtPort).split(',')
if (tgtHost==None)|(tgtPorts[0]==None):
print(parser.usage)
exit(0)
for tgtPort in tgtPorts:
nmapScan(tgtHost,tgtPort)
if __name__ =='__main__':
main()
实例如下:
python scan-nmap.py -H 172.22.32.12 -p 21,1720,88,22,25,49,69,80,107,115,161,163,443,514

使用NMAP端口扫描代码实现的更多相关文章
- linux——nmap端口扫描命令
先安装 nmap :apt-get install nmap 端口扫描命令nmap -sS 172.16.55.100nmap -Pn 172.16.55.100第一组渗透测试指令,用于情报收集. 要 ...
- nmap端口扫描工具安装和使用方法
nmap(Network Mapper)是一款开源免费的针对大型网络的端口扫描工具,nmap可以检测目标主机是否在线.主机端口开放情况.检测主机运行的服务类型及版本信息.检测操作系统与设备类型等信息. ...
- python自动化运维四:nmap端口扫描
p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 端口扫描器: Python的第三方模块python-nmap可以实现高效的端口扫描. ...
- nmap 端口扫描王,查看端口是否可访问,是否对外开放
NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包. 1 安装 apt-get install nmap 2 使用,查看ip下所有对外的端口 $ sudo nmap ...
- nmap 端口扫描工具
nmap工具介绍 一.简介 nmap :也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包. nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务 ...
- nmap端口扫描工具下载和安装使用
1.下载地址 https://nmap.org/download.html 2.下载之后进行安装 选择I Agree 后,建议全选,特别是zenmap,这个是图形化界面,不喜欢命令行格式的可以用zen ...
- cetnos中nmap端口扫描工具的使用
1:安装: yum -y install nmap 2:使用方法: nmap -p 1-65535 1.1.1.1 #扫描1.1.1.1此IP地址的所有端口 nmap -p 80,443 1.1.1. ...
- 如何在linux使用nmap端口扫描工具扫描网段内开放的端口
在另一个linux主机上,使用nmap命令即可 ,比如 我在1.1.1.2上开放了端口1111 -A -j ACCEPT 在1.1.1.1上执行 即可查到
- Nmap目录扫描和漏洞扫描(9.27 第十三天)
目录扫描:扫描站点的目录,寻找敏感文件(目录名.探针文件.后台.robots.txt[].备份文件等) 目录:站点结构,权限控制不严格 探针文件:服务器配置信息,phpinfo.php readm ...
随机推荐
- python3-继承和多态
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Supe ...
- 2019年8月5日~8月11日 第六周JAVA学习总结
本周主要进行了对JAVA基础的学习和PTA代码的编写,平均每天花在学习上的时间约3个小时,花在代码上的时间约2个小时,花在解决问题上的时间约1.5个小时. 下周打算继续JAVA的学习,完成java面向 ...
- cron常用表达式
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11905247.html 推荐一个cron表达式生成的网站:https://www.freeformat ...
- java调用存储过程的方式
1.问号是入参和出参,出参要指定类型 CallableStatement pstmt = conn.prepareCall("{call dbo.UP_CodeUp_***(?,?,?,?, ...
- json对象之间的转化
json字符串转化为 1.使用JSON.parse()函数 使用eval()函数 2.json对象转化为json字符串 使用JSON.stringify()
- Task5.PyTorch实现L1,L2正则化以及Dropout
1.了解知道Dropout原理 深度学习网路中,参数多,可能出现过拟合及费时问题.为了解决这一问题,通过实验,在2012年,Hinton在其论文<Improving neural network ...
- A - Race to 1 Again
题目 Rimi learned a new thing about integers, which is - any positive integer greater than 1 can be di ...
- RabbitMQ绑定、队列、消息、虚拟主机详解(五)
Binding:绑定,Exchange和Exchange.Queue之间的连接关系 Binding中可以包含RoutingKey或者参数 Queue:消息队列,实际存储消息数据 Durability: ...
- JavaScript异步编程助手:Promise模式
:Promises是一种令代码异步行为更加优雅的抽象,它很有可能是JavaScript的下一个编程范式,一个Promise即表示任务结果,无论该任务是否完成. 异步模式在Web编程中变得越来越重要,对 ...
- Oracle Flashback Drop
Ensure that the prerequisites described in Prerequisites of Flashback Drop are met. The following li ...