[英]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.