在滲透測驗初期,需要進行大量的資訊收集,一般情況下,資訊收集可以分為兩大類————被動資訊收集和主動資訊收集,
其中,被動資訊收集主要是通過各種公開的渠道來獲取目標系統的資訊,例如:站長工具、Google hack等,這類資訊收集的特點是不與目標系統產生直接的互動,從而避免留下痕跡,但帶來的缺點就是收集的資訊可能是一些過時的資訊,不夠準確,
相反,主動資訊收集是與目標系統進行直接的互動,進而得到更為準確的及時資訊,例如:AWVS、Appscan等漏洞掃描工具對目標站點進行的掃描,但不可避免的就是可能會在目標系統中留下痕跡,可能會被封殺,
在利用python來進行資訊收集,主要是體現在了主動資訊收集方面,
在主動資訊收集中,主要內容是主機發現、埠掃描、指紋識別,
在主機發現部分,主動資訊收集主要是通過掃描來實作的,其中掃描是可以在不同的網路層次中實作,包括資料鏈路層主機發現、網路層主機發現和傳輸層主機發現,
下面先介紹二層主機發現,
主機發現,顧名思義,就是確定一個IP范圍記憶體活的主機,找到潛在攻擊的目標,二層主機發現主要利用的協議是ARP協議,主要用于在內網中進行探測,發現與攻擊者在同一個網段內的主機,二層的主機發現,一般掃描速度都很快,并且可靠性較高,因為即便是安裝了安全軟體,安全軟體都是默認沒有防御ARP攻擊的,
在Kali中,我們只要執行arping命令,就可以對外發送ARP回應包來進行主機的探測了,只要我們收到回應,即可判斷對方主機在線,
我們要用到的python第一個模塊,是subprocess模塊,subprocess模塊可以用來創建一個子行程,并且運行一個外部的程式,一般使用subprocess模塊中的check_output()方法來呼叫系統命令,
如下:

上面是呼叫python模塊實作的單個陳述句判斷主機是否在線,如果使用python腳本來實作的話,如下所示:
代碼如下
import subprocess
import sys
import time
from threading import Thread
def arping(ip):
try:
subprocess.check_output('arping -c 1 ' + str(ip),shell=True)
time.sleep(0,1)
print ip,'在線'
return
except:
return
def main():
host = str(sys.argv[1]).strip()
addr=host.split(".")[0]+"."+host.split(".")[1]+"."+host.split(".")[2]+"."
for i in range(1,255):
ip = addr + str(i)
t=Thread(target=arping,args=(ip,))
t.start()
if __name__=='__main__':
main()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21032.html
標籤:其他
