76:Python開發-內外網收集Socket&子域名&DNS


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

補充:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM