סורק פורטים שלא עובד
כתבתי את הקוד הבא:
מה שקורה הוא שהסורק לא מראה לי פורטים פתוחים, וזאת למרות ש NMAP מראה לי מספר פורטים פתוחים.
המוזר הוא שכשאני מוריד את ה- threadים ועושה פורט אחד כל פעם, הסריקה מראה לי פורטים פתוחים. גם ב- wireshark אני רואה שיש תגובה בפורטים הפתוחים בשני המצבים (עם ובלי threadים).
מה אני עושה לא נכון?
* אם כבר אז כבר- האם ניתן לייעל את הקוד? אם כן- כיצד?
כמובן תודה מראש!
כתבתי את הקוד הבא:
קוד:
from datetime import datetime
from scapy.all import *
import threading
import random
import Queue
def TCPort(ip_addr, port):
time = 10 # max time to send packages to a port
rndport = random.randint(1024,65500)
pkt = IP(dst=ip_addr)/TCP(dport=port,flags="S", sport=rndport)
ans = sr1(pkt, timeout=time, verbose=0)
if(str(type(ans))=="<type 'NoneType'>"):
#port is closed
pass
elif(ans.haslayer(TCP)):
if(ans.getlayer(TCP).flags == 0x12):
# port sent a SYN or SYN-ACK answer, so answer with RST to close
# the connection and print the port
sr(IP(dst=ip_addr)/TCP(dport=port,flags="AR", sport=rndport), timeout=time, verbose=0)
print port,"open".rjust(9-len(str(port)))
#main
ip_addr = "192.168.1.154"
ports = range(1,1024)
start = datetime.now()
print "Started on", start.strftime('%Y-%m-%d %H:%M:%S')
# port = Queue.Queue()
for port in ports:
t = threading.Thread(target=TCPort, args = (ip_addr,port))
t.start()
t.join()
fin = datetime.now()-start
print "Finished on", fin
# scans: TCP, stealth, XMAS, fin, null, ack, udp.
# done :
המוזר הוא שכשאני מוריד את ה- threadים ועושה פורט אחד כל פעם, הסריקה מראה לי פורטים פתוחים. גם ב- wireshark אני רואה שיש תגובה בפורטים הפתוחים בשני המצבים (עם ובלי threadים).
מה אני עושה לא נכון?
* אם כבר אז כבר- האם ניתן לייעל את הקוד? אם כן- כיצד?
כמובן תודה מראש!