python開發 思維導圖:

相關知識點:
1.開發基礎環境配置說明
- Windows10 + Pycharm
2.python開發學習的意義
- 學習相關安全工具原理
- 掌握自定義工具及拓展開發
- 解決實戰中無工具或手工麻煩批量化等情況
- 在二次開發Bypass,日常任務,批量測試利用等方面均有幫助
- 如SRC批量收集並利用,AWD批量利用獲取FLAG,CTF加密腳本等
3.本課涉及的技術方向
- Socket、爬蟲、正則表達式、框架開發等
4、本課涉及知識點
- Socket部分技術,進程命令執行,交互參數自學,Nmap工具模塊使用,異常處理等
案例1:外網信息收集-IP查詢&whois查詢&CDN判斷&端口掃描&子域名查詢

# Author:Zheng Na import socket,os,time import sys from whois import whois #需要安裝python-whois模塊 #IP查詢:域名反查IP功能 def ip_check(url): ip=socket.gethostbyname(url) print(ip) #whois查詢 #第三方庫進行whois查詢,也可以利用網上接口查詢 def whois_check(url): whois_data=whois(url) print(whois_data) #CDN判斷-利用返回IP條數進行判斷 #識別目標是否存在CDN def cdn_check(url): # 采用nslookup執行結果進行返回IP解析數目判斷:如果非權威應答地址只有一個,那么這個網站無cnd,否則有cdn # 利用python去調用執行系統命令 ns="nslookup "+url # 方法1:缺點是結果無法讀取操作 # cdn_data=os.system(ns) # print(data) # 方法2: cdn_data = os.popen(ns,'r').read() count=cdn_data.count('.') if count>8: print("CDN 存在") else: print("CDN不存在") #端口掃描 #1.自寫socket協議tcp,udp掃描 #2.調用第三方模塊masscan,nmap等掃描 #3.調用系統工具腳本執行 def port_check(url): ip = socket.gethostbyname(url) ports={21,22,135,443,445,80,1433,3306,3389,1521,8000,8080,7002,7001,9090,8089,4848} server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) for port in ports: result = server.connect_ex((ip,port)) if result == 0: print(str(port)+'|open') else: print(str(port)+'|close') #子域名查詢 #1.利用字典加載爆破進行查詢 #2.利用bing或第三方接口進行查詢 def zym_check(url): urls=url.replace('www.','') for zym_data in open('dic.txt'): zym_data = zym_data.replace('\n','') url = zym_data + '.xueersi.com' try: ip = socket.gethostbyname(url) print(url + '->' + ip) time.sleep(0.1) except Exception as e: pass if __name__ == '__main__': check = sys.argv[1] url = sys.argv[2] print(check) if check =='all': ip_check(url) whois_check(url) cdn_check(url) port_check(url) zym_check(url) # 示例:python3 test.py all www.xiaodi8.com
案例2:內網信息收集-系統判斷&存活主機&端口掃描

# Author:Zheng Na import os from nmap import nmap #需要安裝python-nmap模塊 #系統判斷 #1.基於TTL值進行判斷 #2.基於第三方腳本進行判斷 def os_check(url): data = os.popen("nmap -O " + url,"r").read() print(data) #內網主機信息探針 #1.原生利用ping進行獲取 #2.原生利用icmp,tcp,udp等協議獲取 #3.利用第三方模塊庫nmap等加載掃描獲取 def nmap_scan(url): nm = nmap.PortScanner() try: # data = nm.scan(url, '80,8080','-sV') data = nm.scan(hosts='192.168.73.0/24', arguments='-T4 -F') print(nm.all_hosts()) print(nm.csv()) print(data) except Exception as err: print("error") if __name__ == '__main__': url = 'www.xiaodi8.com' os_check(url) # nmap_scan(url)
案例3:Py格式解析環境與可執行程序格式轉換-Pyinstaller
- 使用pyInstaller可以將python腳本打包成可執行文件,方便在沒有python環境的計算機中執行
- 具體使用方法參考:https://www.cnblogs.com/gopythoner/p/6337543.html
補充: