繁体   English   中英

Python端口扫描器只开放80端口

[英]Python port scanner only port 80 open

当我运行我的 python 端口扫描器时,无论 IP 或网站如何,我只看到端口 80 打开。 我在 testphp.vulnweb.com 上测试了代码,所以我预计不仅仅是端口 80 打开。

import socket
from IPy import IP

def scan(target):
    converted_ip = check_ip(target)
    print('\n' + '[-_0 Scanning Target] ' + str(target))
    for port in range(1, 100):
        scan_port(converted_ip, port)

def get_banner(s):
    return s.recv(1024)

def check_ip(ip):
    try:
        IP(ip)
        return(ip)
    except ValueError:
        return socket.gethostbyname(ip)

def scan_port(ipaddress, port):
    try:
        ## define a socket descriptor
        sock = socket.socket()
        sock.settimeout(0.5) ## in order to scan target faster, lose accuracy but gain time
        sock.connect((ipaddress, port))
        try:
            banner = get_banner(sock)
            print('[+] Open port' + str(port) + ' : ' + str(banner))
        except:
            print('[+] Open Port ' + str(port))
    except:
        pass


targets = input('[+] Enter Target/s To Scan (split multiple targets with ,): ')
if ',' in targets:
    for ip_add in targets.split(','):
        scan(ip_add.strip(' '))
else:
    scan(targets)

好吧,可能有更多的端口打开,但你只检查 1 到 100。大多数在野外使用的端口都比这更高。

for port in range(1, 100):
    scan_port(converted_ip, port)

从我的头顶来看,我只知道这个范围内的 4 个常用端口。 SSH(22 人)、SMTP(25 人)、DNS(53 人)和 HTTP(80 人)。

例如,HTTPS 大部分时间在 443 上。MySQL 默认为 3306。Redis 为 6379。

所以你至少应该检查 10000,甚至更高。 允许的最高端口号是 65535。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM