寫了一個子域名接管漏洞批量檢測腳本

0x01 何為子域名接管

子域名接管是注冊不存在的域名以獲得對另一個域的控制權的過程送爸。此過程最常見的情況如下:
域名(例如滞欠,sub.example.com)將CNAME記錄用于另一個域(例如挟秤,sub.example.com CNAME anotherdomain.com)蒂教。在某個時間點弹沽,anotherdomain.com到期并可供任何人注冊追迟。
由于未從example.com DNS區(qū)域刪除CNAME記錄溶其,因此注冊anotherdomain.com的任何人都可以完全控制sub.example.com,直到存在DNS記錄敦间。子域名接管的影響可能非常重要瓶逃。使用子域名接管,攻擊者可以從合法域發(fā)送網(wǎng)絡釣魚電子郵件廓块,執(zhí)行跨站點腳本(XSS)或破壞與域關聯(lián)的品牌聲譽厢绝。
子域名接管不僅限于CNAME記錄。NS带猴,MX甚至A記錄也會受到影響昔汉。


image.png

0x02 常規(guī)域名

使用CNAME記錄的DNS授權對用戶完全透明,它發(fā)生在DNS解析期間的后臺拴清。下圖說明了具有CNAME記錄的域名的Web瀏覽器的行為靶病。


image.png

0x03 子域名接管漏洞批量檢測腳本

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
import sys
version = sys.version_info
if version < (3, 0):
    print('The current version is not supported, you need to use python3')
    sys.exit()

import dns.resolver
import tldextract
import requests
import datetime
from threading import Semaphore
import threading
import queue
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
CurrentTime=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
CurrentTime=str(CurrentTime).replace(' ','-').replace(':','-')
q=queue.Queue()

Multithread=10#線程數(shù)
Suddomain='domain_url.txt' #整理好的子域名文件
count=0

def outinfo(strinfo,status=0):#輸出不換行
    global count
    count=count+1
    if status==1:
        print('\n'+strinfo)
    else:
        sys.stdout.write("\r" + str(strinfo)+' '+str(count))
        sys.stdout.flush()

def filewrite(text,lock):#運行的log記錄實時寫入文件会通。
    lock.acquire()
    outfile=open('Result-' + CurrentTime + '.txt', 'a', encoding='utf-8')
    outfile.write(text+'\n')
    outfile.close()
    lock.release()

def Cname_query(q,lock):#查詢cname地址
    while not q.empty():
        subdomain=q.get()
        try:
            subdomain=subdomain.replace('http://','').replace('https://','').replace('/','')
            cname = dns.resolver.query(subdomain, 'CNAME')
            for i in cname.response.answer:
                for j in i.items:
                    res = tldextract.extract(j.to_text())#提取Cname的主域名
                    domain=res.domain + '.' + res.suffix
                    regurl = 'https://checkapi.aliyun.com/check/checkdomain?domain={}&command=&token=Y3d83b57bc8aca0f156381976a6171f4a&ua=&currency=&site=&bid=&_csrf_token=&callback=jsonp_1569557125267_14652'.format(
                        domain)
                    try:
                        res2 = requests.get(regurl, timeout=5, verify=False)#查詢Cname指向的域是否可注冊
                        if 'avail":1' in str(res2.content):
                            outinfo(subdomain+' ***存在子域名接管漏洞,接管地址:'+domain,1)
                            filewrite(subdomain+' ***存在子域名接管漏洞娄周,接管地址:'+domain,lock)#記錄實時寫入文件
                        else:
                            outinfo(subdomain+' 失敗涕侈,不存在子域名接管漏洞')
                            filewrite(subdomain+' 失敗,不存在子域名接管漏洞',lock)#記錄實時寫入文件
                    except Exception as e:
                        outinfo(e,lock)
        except Exception as e:
            outinfo(subdomain + ' 不存在cname')
            filewrite(subdomain + ' 不存在cname', lock)#記錄實時寫入文件
File=open(Suddomain,'r',encoding='utf-8').read().split('\n')
lock=threading.Lock()
for Url in File:
    q.put(Url)
for M in range(Multithread):
    threading.Thread(target=Cname_query,args=(q,lock,)).start()
q.join()
print('程序執(zhí)行完成煤辨!')


使用

把已經(jīng)搜集好的子域名整理好裳涛,放置在當前目錄的 “domain_url.txt”,使用Python3直接運行腳本即可掷酗,結果的結果會實時保存起來调违。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泻轰,隨后出現(xiàn)的幾起案子技肩,更是在濱河造成了極大的恐慌,老刑警劉巖浮声,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虚婿,死亡現(xiàn)場離奇詭異,居然都是意外死亡泳挥,警方通過查閱死者的電腦和手機然痊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屉符,“玉大人剧浸,你說我怎么就攤上這事〈V樱” “怎么了唆香?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吨艇。 經(jīng)常有香客問我躬它,道長,這世上最難降的妖魔是什么东涡? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任冯吓,我火速辦了婚禮,結果婚禮上疮跑,老公的妹妹穿的比我還像新娘组贺。我一直安慰自己,他們只是感情好祖娘,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布失尖。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雹仿。 梳的紋絲不亂的頭發(fā)上增热,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音胧辽,去河邊找鬼峻仇。 笑死,一個胖子當著我的面吹牛邑商,可吹牛的內(nèi)容都是我干的摄咆。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼人断,長吁一口氣:“原來是場噩夢啊……” “哼吭从!你這毒婦竟也來了?” 一聲冷哼從身側響起恶迈,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤涩金,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后暇仲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體步做,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年奈附,在試婚紗的時候發(fā)現(xiàn)自己被綠了全度。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡斥滤,死狀恐怖将鸵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情佑颇,我是刑警寧澤顶掉,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站漩符,受9級特大地震影響一喘,放射性物質(zhì)發(fā)生泄漏驱还。R本人自食惡果不足惜嗜暴,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望议蟆。 院中可真熱鬧闷沥,春花似錦、人聲如沸咐容。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至路狮,卻和暖如春虫啥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奄妨。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工涂籽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砸抛。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓评雌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親直焙。 傳聞我的和親對象是個殘疾皇子景东,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容