
前言: Python初學(xué)者,希望各位大佬看了文章后能指出錯(cuò)誤或者給些建議! 如有雷同,純屬巧合! = =! 環(huán)境 linux python3 安裝 pip3 install ...
前言: Python初學(xué)者,希望各位大佬看了文章后能指出錯(cuò)誤或者給些建議! 如有雷同,純屬巧合! = =! 環(huán)境 linux python3 Matplotlib條形圖 簡(jiǎn)單...
這個(gè)掃描器用的是:
TCP全連接掃描!
TCP全連接脖阵,即完成一次完整的TCP連接污秆!經(jīng)過(guò)三次握手后來(lái)判斷目標(biāo)端口是否開(kāi)放劈猪!
三次握手:
A 向 B發(fā)送一個(gè)帶有SYN的TCP報(bào)文請(qǐng)求連接!
B 收到后向 A 發(fā)送一個(gè)帶有ACK和SYN的TCP報(bào)文表示確認(rèn)和請(qǐng)求連接混狠!
A 收到后向 B發(fā)送一個(gè)帶有ACK的TCP報(bào)文表示確認(rèn)并正式開(kāi)始連接岸霹!
ef2a33fa1ae6 評(píng)論自Python掃描器
給那些初學(xué)掃描器的小白們~~~
#-*- coding:utf-8 -*-
from socket import *
def portScanner(host,port):
try:
s = socket(AN_INET,SOCK_STREAM)
s.connect((host,port))
print('[+] %d open' % port)
s.close()
except:
print('[-] %d close' % port )
def main():
setdefaulttimeout(1)
for p in range(1,1024):
portScanner('127.0.0.1',p)
if __name__ == '__main__':
main()
ef2a33fa1ae6 評(píng)論自Python掃描器
拓展~
import optparse
from threading import *
from socket import *
setdefaulttimeout(5)
screenLock = Semaphore(value=1)
def connScan(tgtip,port):
ip_port = (tgtip,port)
sk = socket(AF_INET,SOCK_STREAM)
try:
sk.connect(ip_port)
sk.send("The is test!")
banner=sk.recv(100)
screenLock.acquire()
print "[+]Port %d Open"%(int(port))
print "[+]"+str(banner)
except Exception,sk_error:
screenLock.acquire()
#print sk_error
print "[-]Port %d Close"%(port)
finally:
screenLock.release()
sk.close()
def portScann(tgtHost,tgtPort):
try:
tgtip = gethostbyname(tgtHost)
print "[+]Scanner Host:"+str(tgtip)
for port in tgtPort:
print "[+]Scanner Port %d " %(int(port))
t = Thread(target=connScan,args=(tgtip,int(port)))
t.start()
except:
print "[-]Unknow The Host:"+str(tgtHost)
exit(0)
def main():
parser = optparse.OptionParser("Please Enter Option!")
parser.add_option("-H",dest="tgtHost",type="string",
help="Enter You Target!")
parser.add_option("-P",dest="tgtPort",type="string",
help="Enter Scanner Port!10,20!")
(options,args) = parser.parse_args()
if (options.tgtHost == None) | (options.tgtPort == None):
print parser.usage
exit(0)
tgtHost = options.tgtHost
tgtPort = options.tgtPort.split(',')
portScann(tgtHost,tgtPort)
if __name__ == '__main__':
main()
ef2a33fa1ae6 評(píng)論自Python掃描器
裝飾器的主要作用:代碼復(fù)用蚓庭、裝飾函數(shù)! 簡(jiǎn)單裝飾器 現(xiàn)在有三個(gè)函數(shù) 每個(gè)函數(shù)都有自己的功能! 這時(shí)我想讓這些函數(shù)在執(zhí)行時(shí)都打印一句"Hello World!",當(dāng)然!可以在每...
裝飾器的主要作用:代碼復(fù)用致讥、裝飾函數(shù)! 簡(jiǎn)單裝飾器 現(xiàn)在有三個(gè)函數(shù) 每個(gè)函數(shù)都有自己的功能! 這時(shí)我想讓這些函數(shù)在執(zhí)行時(shí)都打印一句"Hello World!",當(dāng)然!可以在每...
注意格式~
Python掃描器新手小白們可以去看我發(fā)布的一些Python基礎(chǔ)文章港柜,看完之后再學(xué)習(xí)Python掃描器事半功倍哦~ Python環(huán)境 我推薦使用Linux系統(tǒng)環(huán)境例如:Ubuntu请契、kali之...