企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

「安全测试」使用python+nmap进行端口扫描

wudianyun 2025-09-29 13:53:53 精选文章 31 ℃

测试说明:

远程服务器中运行着的各种服务及对应的TCP端口和它们的软件版本,攻击者可利用开放的端口或服务找到漏洞并进行攻击,造成不必要的损失,所以端口扫描是一个非常重要的环节,扫描的目的是了解服务器上运行的服务信息(端口号,版本等),针对不同的端口服务进行不同的安全测试。

代码:

import nmap
import sys
import json

def getPortInfo(ip):
    
    # 创建一个扫描实例
    nm = nmap.PortScanner()

    #result = nm.scan(ip,'8060','-sV') #  指定端口扫描

    result = nm.scan(hosts=ip, arguments='-sV')

    print ('返回结果:\n',json.dumps(result,indent=4,ensure_ascii= False))

    # 取键.keys()取值.values()取键值对.items()
    tabal_list = []
    
    for i,j in result['scan'][ip]['tcp'].items():
        
        #print ([i,j['name'],j['product']+j['version'],j['state']])
        version = j['product']+'+'+j['version']

        if version == '+':
            
            version = '空'

        tabal_list.append([i,['tcp'],j['name'],version,j['state']])

    print (tabal_list)


if __name__ == '__main__':

    ip = '192.168.40.145'
    getPortInfo(ip)
'''
扫描参数说明:
# nmap 指定端口扫描nmap -p(port1,port2,…) <target IP>
# nmap自定义扫描 nmap -p20-120 target IP>
# nmap -sV --allports ip 全端口版本检测,相当于0-9
# nmap -sV --version-intensity 9 ip 设置 版本扫描强度,强度必须在0和9之间。 默认是7
# nmap -sV --version-light ip 打开轻量级模式
# nmap -sV --version-all ip 尝试每个探测
# nmap -sV --version-trace ip 显示版本扫描详情(用于调试)
'''

执行:

测试扫描的结果:

最近发表
标签列表