美文网首页
扫描端口

扫描端口

作者: 小子考驾照 | 来源:发表于2016-11-10 11:30 被阅读34次
    Paste_Image.png

    查看135端口,不带后边的是查看所有已经打开的端口
    查看端口135使用的进程
    关闭占用135端口的进程

    Tcp端口扫描的几种类型:

    一:Tcp connect扫描:全连接扫描,完成tcp三次握手,结果准确,但速度比较慢,也可轻易被目标系统检测到。
    二:Tcp SYN扫描:半开放扫描,发送一个SYN包,启动一个TCP会话,等待目标响应数据包,如果收到RST包,表明端口关闭,SYN/ACK包,表示端口打开。
    三:Tcp FIN扫描:发送一个表示拆除一个活动的TCP链接的FIN包,让目标关闭连接,如果收到RST表明端口是关闭的。
    四:Tcp XMAS扫描:发送PSH、FIN、URG和TCP标志位被设为1的数据包,如果收到RST包,表明端口是关闭的。

    Tcp connect扫描

    # -*- coding=utf-8 -*-
    import threading
    from socket import *
    import argparse
    lock = threading.Lock()
    openNum = 0
    threads = []
    def portScanner(host,port):
        global openNum
        try:
            s = socket(AF_INET,SOCK_STREAM)
            s.connect((host,port))
            lock.acquire()
            print('端口%d已经打开'%port)
            openNum +=1
            lock.release()
            s.close()
        except:
            # print('端口%d已经关闭'%port)
            pass
    def main():
        p = argparse.ArgumentParser(description='端口扫描!')
        p.add_argument('-H',dest='hosts',type=str)
        p.add_argument('-R',dest='range',type=int)
        args= p.parse_args()
        hostList = args.hosts.split(',')
        port_range = args.range
        setdefaulttimeout(1)
        for host in hostList:
            print('开始扫描%s目标主机'%host)
            for p in range(1,port_range):
                t = threading.Thread(target=portScanner,args=(host,p))
                threads.append(t)
                t.start()
            for t in threads:
                t.join()
            print('扫描结束','总共有%d个端口打开'%openNum)
    if __name__ == '__main__':
        main()
    

    使用nmap扫描

    nm = nmap.PortScanner()
    tmp = nm.scan('www.baidu.com', '0-4564')
    
    :param hosts: 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'
    :param ports: '22,53,110,143-4564'
    :param arguments: '-sU -sX -sC'
    :param sudo: 是否用管理员模式,是True否Flase
    :returns: {
        'scan': {
            '61.135.169.125': {
                'addresses': {
                    'ipv4': '61.135.169.125'
                },
                'tcp': {
                    80: {
                        'version': '',
                        'conf': '10',
                        'product': 'Apachehttpd',
                        'state': 'open',
                        'name': 'http',
                        'cpe': 'cpe: /a: apache: http_server',
                        'reason': 'syn-ack',
                        'extrainfo': ''
                    },
                    443: {
                        'version': '1.0.8.18',
                        'conf': '10',
                        'product': 'BaiduFrontEndhttpd',
                        'state': 'open',
                        'name': 'http',
                        'cpe': '',
                        'reason': 'syn-ack',
                        'extrainfo': ''
                    }
                },
                'status': {
                    'state': 'up',
                    'reason': 'echo-reply'
                },
                'hostnames': [
                    {
                        'type': 'PTR',
                        'name': 'www.baidu.com'
                    }
                ],
                'vendor': {
                    
                }
            }
        },
        'nmap': {
            'command_line': 'nmap-oX--p0-4564-sV61.135.169.125',
            'scaninfo': {
                'tcp': {
                    'services': '0-4564',
                    'method': 'syn'
                }
            },
            'scanstats': {
                'totalhosts': '1',
                'timestr': 'TueNov1517: 53: 032016',
                'downhosts': '0',
                'uphosts': '1',
                'elapsed': '36.20'
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:扫描端口

          本文链接:https://www.haomeiwen.com/subject/ljtxpttx.html