nmap 网络扫描工具用法。以下是 nmap 常用的一些用法:

  1. 扫描单个主机或 IP 地址:

nmap [options] <target>

例如:nmap 192.168.0.1

  1. 扫描多个主机或 IP 地址:

nmap [options] <target1> <target2> ...

例如:nmap 192.168.0.1 192.168.0.2

  1. 扫描整个网段:

nmap [options] <IP/mask>

例如:nmap 192.168.0.0/24

  1. 扫描多个端口:

nmap [options] -p <port1,port2,...> <target>

例如:nmap -p 80,443,8080 192.168.0.1

  1. 扫描指定端口范围:

nmap [options] -p <port1-port2> <target>

例如:nmap -p 1-1000 192.168.0.1

  1. 扫描所有端口:

nmap [options] -p- <target>

例如:nmap -p- 192.168.0.1

  1. 扫描指定协议:

nmap [options] -sU <target> # 扫描 UDP 端口nmap [options] -sT <target> # 扫描 TCP 端口(默认)

例如:nmap -sU 192.168.0.1

  1. 扫描操作系统:

nmap [options] -O <target>

例如:nmap -O 192.168.0.1

  1. 扫描服务和应用程序:

nmap [options] -sV <target>

例如:nmap -sV 192.168.0.1

10 扫描等级:

nmap [options] -T <target>

例如:nmap -T0`5 192.168.0.1

0 ( Paranoid )

1 ( Sneaky )

2 ( Polite )

3 ( Normal )

4 ( Aggressive )

5 ( Insane )

  • Paranoid(慢速):尽量减少扫描器对目标系统的影响,发送最少的数据包,最小化扫描器的输出。可以使用此模式进行轻松的探测。

  • Sneaky(隐蔽):与 Paranoid 模式相似,但可以发送更多的数据包,具有更高的扫描速度。这种模式可以用于更深入的扫描,但需要扫描器的运行时尽可能不被目标系统检测到。

  • Polite(礼貌):在不影响目标系统的情况下,发送足够的数据包以提供有用的输出。这是最常用的模式之一,适用于大多数情况。

  • Normal(正常):在短时间内发送大量的数据包,以实现较快的扫描速度。默认模式。

  • Aggressive(侵略):发送更多的数据包以提供更详细的输出,并尝试探测更多的端口。这种模式可以帮助识别那些被隐藏的服务或主机,但会对目标系统产生更多的影响,可能会被检测到。

  • Insane(疯狂):以最快的速度发送最多的数据包,以实现最快的扫描速度和最完整的扫描。这种模式可能会对目标系统产生严重的影响,可能会被检测到。

以上是 nmap 的一些常用用法,还有很多其它参数和选项可以使用,具体可以查看 nmap 的官方文档或使用 nmap --help 命令查看。

以下是用python调用nmap实现扫描的代码

import nmap

# 接收用户输入的 IP 和端口
ip_address = input('请输入要扫描的 IP 地址:')
port = input('请输入要扫描的端口号:')

try:
    # 创建端口扫描对象
    nm = nmap.PortScanner()
except nmap.PortScannerError:
    print('Nmap not found', sys.exc_info()[0])
    sys.exit(0)
except:
    print("Unexpected error:", sys.exc_info()[0])
    sys.exit(0)

try:
    # 调用扫描方法,参数指定扫描主机 hosts,nmap 扫描命令行参数 arguments
    nm.scan(hosts=ip_address, arguments='-v -sS -p '+port)
except Exception as e:
    print("Scan erro:" + str(e))

# 遍历扫描主机
for host in nm.all_hosts():
    print('----------------------------------------------------')
    # 输出主机及主机名
    print('Host : %s (%s)' % (host, nm[host].hostname()))
    # 输出主机状态,如 up、down
    print('State : %s' % nm[host].state())
    for proto in nm[host].all_protocols():
        # 遍历扫描协议,如 tcp、udp
        print('----------')
        # 输入协议名
        print('Protocol : %s' % proto)
        # 获取协议的所有扫描端口
        lport = nm[host][proto].keys()
        # 端口列表排序
        list(lport).sort()
        # 遍历端口及输出端口与状态、类型、服务
        for port in lport:
            print('port : %s\tstate : %s\ttype : %s\tservice : %s' % (port, nm[host][proto][port]['state'], nm[host][proto][port]['product'], nm[host][proto][port]['name']))

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘天远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值