【小迪安全-web滲透測試課程】第76天:Python開發(fā)-內(nèi)外網(wǎng)收集Socket&子域名&DNS

Python開發(fā)-內(nèi)外網(wǎng)收集Socket&子域名&DNS

?

應(yīng)急響應(yīng)靶機(jī)
應(yīng)急響應(yīng)靶機(jī),在“應(yīng)急響應(yīng)資料工具”的壓縮包內(nèi)
過關(guān)的思路與知識點在PDF里
?
Python開發(fā)相關(guān)知識點
1.開發(fā)基礎(chǔ)環(huán)境配置說明
Windows10?+ Pycharm
2.Python開發(fā)學(xué)習(xí)的意義
學(xué)習(xí)相關(guān)安全工具原理
掌握自定義工具及拓展開發(fā)
解決實戰(zhàn)中無工具或手工麻煩批量化等情況
在二次開發(fā)Bypass,日常任務(wù),批量測試?yán)玫确矫婢袔椭?/p>
????如:SRC批量收集并利用,AWD批量利用獲取FLAG,CTF加解密腳本等
3.本篇直播涉及的技術(shù)方向
Socket、爬蟲、正則表達(dá)式、框架開發(fā)等
?
本次直播涉及知識點
Socket部分技術(shù)、進(jìn)程命令執(zhí)行、交互參數(shù)執(zhí)行、NMAP工具模塊使用、異常處理等
?

安裝Python解釋器和集成開發(fā)工具(IDE)PyCharm
https://www.runoob.com/w3cnote/pycharm-windows-install.html
Windows下載python非官方庫
1.運行cmd
2.使用命令安裝指定庫
????pip install [庫名]
3.若是python3.0以上的版本,則使用
????pip3 install [庫名]
4.卸載格式
????pip uninstall [庫名]
5.pip可以通過-i參數(shù)臨時換源
????pip install [庫名] -i [鏡像地址]
6.查看已安裝的庫和版本
????pip list
下載非官方庫并不需要在pip的文件目錄下打開cmd
Windows下永久換源
1.需要在“%HOMEPATH%”下,即“C:\Users\[計算機(jī)用戶名]”下,創(chuàng)建“pip/pip.ini”,并在pip.ini中加入如下信息
????[global]
????timeout = 6000
????index-url = [鏡像地址]
????trusted-host = [鏡像地址,但是沒有前面的“https://”和后面的“/simple”]
2.命令行中執(zhí)行
????pip config set global.index -url [鏡像地址]
?
聲明要用到的庫
方法一
????import [庫名]
????[庫名].[函數(shù)名]([函數(shù)參數(shù)])
方法二
????from [庫名] import [函數(shù)名]
????[函數(shù)名]([函數(shù)參數(shù)])
方法三
????import [庫名] as [庫別名]
????[庫別名].[函數(shù)名]([函數(shù)參數(shù)])
一次導(dǎo)入多個函數(shù),用逗號“,”隔開
?
域名反查IP
????ip=socket.gethostbyname([域名])
????print(ip)
聲明一個變量“ip”,ip的值是域名對應(yīng)的IP地址
?
識別目標(biāo)是否存在CDN
1.命令行指令
????nslookup [域名]
存在CDN:應(yīng)答的名稱不是域名而是某CDN,且IP地址有多個
2.執(zhí)行命令行指令
????os.system([命令行指令])
不推薦使用os.system,因為它只能返回指令是否成功執(zhí)行,無法返回結(jié)果集
????os.popen([命令行指令])
會返回一個object裝載回顯內(nèi)容,建議直接加“.read()”來讀取結(jié)果
3.讀取一個文件的內(nèi)容
????read()
4.統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù)
????count()
5.Python的if語句
????if [條件]:
????????[python語句]
????else:
????????[python語句]
?
端口掃描
自寫socket協(xié)議tcp,udp掃描
????server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
聲明一個變量server,值為套接字。AF_INET(又稱PF_INET)是IPv4網(wǎng)絡(luò)協(xié)議的套接字類型,AF_INET6則是IPv6的,而AF_UNIX則是Unix系統(tǒng)本地通信。SOCK_STREAM是tcp/ip套接字,SOCK_DGRAM為udp/ip套接字
????result = server.connect_ex(‘[服務(wù)器的IP地址]’,[端口號]))
主動連接服務(wù)器,根據(jù)返回的出錯碼判斷是否連接,返回值為0說明連接成功。配合for循環(huán)實現(xiàn)端口掃描
調(diào)用第三方masscan,nmap等掃描
調(diào)用系統(tǒng)工具腳本執(zhí)行
?
whois查詢
利用網(wǎng)上接口查詢或使用第三方庫的函數(shù)
????from whois import whois
????data?=?whois(‘[域名]’)
????print(data)
網(wǎng)絡(luò)接口信息會更全
?
子域名查詢
利用字典加載爆破進(jìn)行查詢
????for zym_data?in open([子域名字典文件]):
????????zym_data?=?zym_data.replace(‘\n’,‘’)
????????url?=?zym_data +?‘.’?+?‘[測試的域名]’
????????try:
????????????ip?=? socket.gethostbyname(url)
????????????print(url + ‘->’?+ ip)
????????????time.sleep(0.1)
????????except exception as e:
????????????pass
子域名字典去掉換行符,和域名拼接成完整的域名。用域名反查的方式檢查是否有該域名,有則輸出ip,沒有的通過異常處理輸出“error”,也可以通過“pass”跳過。為了減輕網(wǎng)絡(luò)負(fù)荷可以加一個延遲(需要time庫)。
利用bing或第三方接口進(jìn)行查詢
利用網(wǎng)絡(luò)查詢,速度快但是結(jié)果不全,有些域名可能查不到
????domain:[域名]
?
通過def函數(shù)定義函數(shù)
定義函數(shù)
????def [函數(shù)名]([參數(shù)]):
????????[函數(shù)體]
????def zym_check(url):
????????[具體功能]
調(diào)用
????if __name__ == '__main__':
????????[函數(shù)名]([參數(shù)])
????if __name__ == '__main__':
????????zym_check([域名])
?
加入交互
通過input函數(shù)輸入?yún)?shù)
通過sys.argv函數(shù)讀取命令行參數(shù)的參數(shù)列表
需要sys庫
????import sys
argv[0]是python的文件名,argv[1]及之后是輸入的參數(shù)。獲取參數(shù)通過if判斷執(zhí)行對應(yīng)的功能
?
內(nèi)網(wǎng)主機(jī)信息探針
利用原生的ping獲取
利用原生的icmp、tcp、udp等獲取
利用nmap等掃描獲取信息
?
內(nèi)網(wǎng)調(diào)用nmap掃描
1.使用第三方nmap庫
2.調(diào)用nmap工具
將nmap工具打包,通過python調(diào)用
?
Py格式解析環(huán)境與可執(zhí)行程序格式轉(zhuǎn)換-Pyinstaller
由于有的電腦沒有python環(huán)境,可以通過Pyinstaller生成可執(zhí)行文件
????pyinstaller.exe -F [python文件]
在dist文件夾下會生成exe文件
?
涉及資源:
PyCharm安裝教程(Windows):https://www.runoob.com/w3cnote/pycharm-windows-install.html
JetBrains Pycharm Pro 2021.3.3 中文專業(yè)免費正式版:https://www.jb51.net/softs/598504.html
python socket.socket()函數(shù) 套接字詳解及TCP、UDP程序示例(粘包等):
https://blog.csdn.net/Dontla/article/details/103679153#socket_11
Python中python-nmap模塊的使用:https://www.cnblogs.com/csnd/p/11807823.html
Python開發(fā)源碼資料:https://pan.baidu.com/s/13y3U6jX3WUYmnfKnXT8abQ 提取碼:xiao
應(yīng)急響應(yīng)資料工具:https://pan.baidu.com/s/1tQS1mUelmEh3I68AL7yXGg 提取碼:xiao