當前位置:首頁 » 編程語言 » python掃描

python掃描

發布時間: 2022-06-05 15:13:52

python怎麼將masscan掃描詳情列印出來

你好,下面是一個python解析masscan掃描結果的代碼:
#!/usr/bin/env python
# coding=utf-8

import sys, time
import xmltodict

def main():
with open('./masscan_result.xml') as fp:
xml_obj = xmltodict.parse(fp.read())
nmaprun = xml_obj['nmaprun']
host = nmaprun['host']
for entry in host[:10]: #調試階段只列印前10條記錄
port = entry['ports']['port']
if int(port['@portid']) == 80:
name = entry['address']['@addr']
print 'http://' + name + '/'
elif int(port['@portid']) == 443:
name = entry['address']['@addr']
print 'https://' + name + '/'
elif int(port['@portid']) == 21:
name = entry['address']['@addr']
print 'ftp://' + name + '/'
else:
name = entry['address']['@addr']
print 'http://' + name + ':' + str(port['@portid']) + '/'

if __name__ == '__main__':
time_start = time.time()
try:
main()
except KeyboardInterrupt:
print 'Killed by user'
sys.exit(0)
print "Spend {0} seconds.\n".format(time.time() - time_start)

② python怎麼掃描excel數據按行

python操作office辦公軟體(excel).本文對涉及xls文件讀寫上不方便.如果你需要通過python讀寫xls文件,可

③ python一直在掃描文件索引,怎麼辦

這個索引的目的是為了更新目錄中的文件情況,便於平時快速定位,但有些目錄中可能有太多文件並且我們不會用著,所以這時需要將某些文件太多的目錄排除在索引之外,具體步驟如下:(IDE是pycharm)

1、選擇file/settings

2、選擇project structure,在右側會出現你項目中的目錄結構,選中某個目錄,然後點擊上方的excluded,該目錄則會被添加到最右側的列表中,只要出現在此列表中,則不會進行索引。

④ 如何用Python實現掃描網站的備份文件

config.txt是配置文件
url.txt是要掃描的url
內部配置相關的常見編輯器漏洞和svn源碼泄露漏洞
多線程運行
程序的思路是先檢測漏洞,在掃描備份,文件結果自動保存在當前目錄!

⑤ 怎麼用python編寫掃描器

這里實現的埠掃描器有兩種,一種是使用socket模塊通過與目標主機相應埠建立TCP連接(完成完整的三次握手),來確定埠是否開放。
核心代碼:
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.settimeout(2)
sock.connect((host,port))
sock.send('test socket\n')
result = sock.recv(100)if result: print "某某埠開放"else: print "某某埠關閉"sock.close()1234567891011

另一種是直接利用nmap模塊,直接用它內置的方法PortScanner(),輸出返回信息,nmap支持使用ACK、FIN、SYN-ACK等掃描方式,如向指定埠發送TCP SYN包,等待TCP ACk響應來確定該埠是否開放。
核心代碼:

⑥ python 埠掃描 延時設置多久

#!/usr/bin/python
# -*- coding:utf8 -*-
# Python: 2.7.8
# Platform: Windows
# Authro: wucl
# Program: 埠掃描
# History: 2015.6.1

import socket, time, thread
socket.setdefaulttimeout(3)

def socket_port(ip,port):
"""
輸入IP和埠號,掃描判斷埠是否開放
"""
try:
if port>=65535:
print u'埠掃描結束'
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result=s.connect_ex((ip,port))
if result==0:
lock.acquire()
print ip,u':',port,u'埠開放'
lock.release()
s.close()
except:
print u'埠掃描異常'

def ip_scan(ip):
"""
輸入IP,掃描IP的0-65534埠情況
"""
try:
print u'開始掃描 %s' % ip
start_time=time.time()
for i in range(0,65534):
thread.start_new_thread(socket_port,(ip,int(i)))
print u'掃描埠完成,總共用時 :%.2f' %(time.time()-start_time)
raw_input("Press Enter to Exit")
except:
print u'掃描ip出錯'

if __name__=='__main__':
url=raw_input('Input the ip you want to scan:\n')
lock=thread.allocate_lock()
ip_scan(url)

⑦ Python 實現埠掃描

一、常見埠掃描的原理

0、秘密掃描

秘密掃描是一種不被審計工具所檢測的掃描技術。

它通常用於在通過普通的防火牆或路由器的篩選(filtering)時隱藏自己。

秘密掃描能躲避IDS、防火牆、包過濾器和日誌審計,從而獲取目標埠的開放或關閉的信息。由於沒有包含TCP 3次握手協議的任何部分,所以無法被記錄下來,比半連接掃描更為隱蔽。

但是這種掃描的缺點是掃描結果的不可靠性會增加,而且掃描主機也需要自己構造IP包。現有的秘密掃描有TCP FIN掃描、TCP ACK掃描、NULL掃描、XMAS掃描和SYN/ACK掃描等。

1、Connect()掃描

此掃描試圖與每一個TCP埠進行「三次握手」通信。如果能夠成功建立接連,則證明埠開發,否則為關閉。准確度很高,但是最容易被防火牆和IDS檢測到,並且在目標主機的日誌中會記錄大量的連接請求以及錯誤信息。

TCP connect埠掃描服務端與客戶端建立連接成功(目標埠開放)的過程:

① Client端發送SYN;

② Server端返回SYN/ACK,表明埠開放;

③ Client端返回ACK,表明連接已建立;

④ Client端主動斷開連接。

建立連接成功(目標埠開放)

TCP connect埠掃描服務端與客戶端未建立連接成功(目標埠關閉)過程:

① Client端發送SYN;

② Server端返回RST/ACK,表明埠未開放。

優點:實現簡單,對操作者的許可權沒有嚴格要求(有些類型的埠掃描需要操作者具有root許可權),系統中的任何用戶都有權力使用這個調用,而且如果想要得到從目標埠返回banners信息,也只能採用這一方法。

另一優點是掃描速度快。如果對每個目標埠以線性的方式,使用單獨的connect()調用,可以通過同時打開多個套接字,從而加速掃描。

缺點:是會在目標主機的日誌記錄中留下痕跡,易被發現,並且數據包會被過濾掉。目標主機的logs文件會顯示一連串的連接和連接出錯的服務信息,並且能很快地使它關閉。

2、SYN掃描

掃描器向目標主機的一個埠發送請求連接的SYN包,掃描器在收到SYN/ACK後,不是發送的ACK應答而是發送RST包請求斷開連接。這樣,三次握手就沒有完成,無法建立正常的TCP連接,因此,這次掃描就不會被記錄到系統日誌中。這種掃描技術一般不會在目標主機上留下掃描痕跡。但是,這種掃描需要有root許可權。

·埠開放:(1)Client發送SYN;(2)Server端發送SYN/ACK;(3)Client發送RST斷開(只需要前兩步就可以判斷埠開放)

·埠關閉:(1)Client發送SYN;(2)Server端回復RST(表示埠關閉)

優點:SYN掃描要比TCP Connect()掃描隱蔽一些,SYN僅僅需要發送初始的SYN數據包給目標主機,如果埠開放,則相應SYN-ACK數據包;如果關閉,則響應RST數據包;

3、NULL掃描

反向掃描—-原理是將一個沒有設置任何標志位的數據包發送給TCP埠,在正常的通信中至少要設置一個標志位,根據FRC 793的要求,在埠關閉的情況下,若收到一個沒有設置標志位的數據欄位,那麼主機應該舍棄這個分段,並發送一個RST數據包,否則不會響應發起掃描的客戶端計算機。也就是說,如果TCP埠處於關閉則響應一個RST數據包,若處於開放則無相應。但是應該知道理由NULL掃描要求所有的主機都符合RFC 793規定,但是windows系統主機不遵從RFC 793標准,且只要收到沒有設置任何標志位的數據包時,不管埠是處於開放還是關閉都響應一個RST數據包。但是基於Unix(*nix,如Linux)遵從RFC 793標准,所以可以用NULL掃描。 經過上面的分析,我們知道NULL可以辨別某台主機運行的操作系統是什麼操作系統。

埠開放:Client發送Null,server沒有響應

埠關閉:(1)Client發送NUll;(2)Server回復RST

說明:Null掃描和前面的TCP Connect()和SYN的判斷條件正好相反。在前兩種掃描中,有響應數據包的表示埠開放,但在NUll掃描中,收到響應數據包表示埠關閉。反向掃描比前兩種隱蔽性高些,當精確度也相對低一些。

用途:判斷是否為Windows系統還是Linux。

4、FIN掃描

與NULL有點類似,只是FIN為指示TCP會話結束,在FIN掃描中一個設置了FIN位的數據包被發送後,若響應RST數據包,則表示埠關閉,沒有響應則表示開放。此類掃描同樣不能准確判斷windows系統上埠開發情況。

·埠開放:發送FIN,沒有響應

·埠關閉:(1)發送FIN;(2)回復RST

5、ACK掃描

掃描主機向目標主機發送ACK數據包。根據返回的RST數據包有兩種方法可以得到埠的信息。方法一是: 若返回的RST數據包的TTL值小於或等於64,則埠開放,反之埠關閉。

6、Xmas-Tree掃描

通過發送帶有下列標志位的tcp數據包。

·URG:指示數據時緊急數據,應立即處理。

·PSH:強制將數據壓入緩沖區。

·FIN:在結束TCP會話時使用。

正常情況下,三個標志位不能被同時設置,但在此種掃描中可以用來判斷哪些埠關閉還是開放,與上面的反向掃描情況相同,依然不能判斷windows平台上的埠。

·埠開放:發送URG/PSH/FIN,沒有響應

·埠關閉:(1)發送URG/PSH/FIN,沒有響應;(2)響應RST

XMAS掃描原理和NULL掃描的類似,將TCP數據包中的ACK、FIN、RST、SYN、URG、PSH標志位置1後發送給目標主機。在目標埠開放的情況下,目標主機將不返回任何信息。

7、Dump掃描

也被稱為Idle掃描或反向掃描,在掃描主機時應用了第三方僵屍計算機掃描。由僵屍主機向目標主機發送SYN包。目標主機埠開發時回應SYN|ACK,關閉時返回RST,僵屍主機對SYN|ACK回應RST,對RST不做回應。從僵屍主機上進行掃描時,進行的是一個從本地計算機到僵屍主機的、連續的ping操作。查看僵屍主機返回的Echo響應的ID欄位,能確定目標主機上哪些埠是開放的還是關閉的。

二、Python 代碼實現

1、利用Python的Socket包中的connect方法,直接對目標IP和埠進行連接並且嘗試返回結果,而無需自己構建SYN包。

2、對IP埠進行多線程掃描,注意的是不同的電腦不同的CPU每次最多創建的線程是不一樣的,如果創建過多可能會報錯,需要根據自己電腦情況修改每次掃描的個數或者將seelp的時間加長都可以。

看完了嗎?感覺動手操作一下把!

python學習網,免費的在線學習python平台,歡迎關注!

本文轉自:https://www.jianshu.com/p/243bb7cfc40f

熱點內容
中國首個具有世界影響力的編譯器 發布:2025-02-09 01:56:21 瀏覽:719
tomcat上傳超時 發布:2025-02-09 01:41:42 瀏覽:483
androidactivity豎屏 發布:2025-02-09 01:41:40 瀏覽:377
家庭配置怎麼合理 發布:2025-02-09 01:36:14 瀏覽:807
頭條軍事源碼 發布:2025-02-09 01:31:53 瀏覽:997
androidintent視頻 發布:2025-02-09 01:31:43 瀏覽:858
歐姆龍plc密碼如何設置 發布:2025-02-09 01:24:31 瀏覽:687
php支持jpeg 發布:2025-02-09 01:24:22 瀏覽:803
反編譯去注冊碼 發布:2025-02-09 01:19:48 瀏覽:887
安卓如何查找舊密碼 發布:2025-02-09 01:17:21 瀏覽:418