【Python安全攻防】【網絡安全】一、常見被動信息搜集手段

一、IP查詢

原理:通過目標URL查詢目標的IP地址。
所需庫socket
Python代碼示例:

import socketip = socket.gethostbyname('www.163.com')
print(ip)

上述代碼中,使用gethostbyname函數。該函數位于Python內置的socket庫中,其原型如下:

def gethostbyname(host): # real signature unknown; restored from __doc__"""gethostbyname(host) -> addressReturn the IP address (a string of the form '255.255.255.255') for a host."""pass

參數host為目標的URL,返回對應的ip地址。

示例代碼輸出:

125.39.47.211Process finished with exit code 0

二、Whois查詢

原理:用來查詢域名是否已經被注冊,以及注冊域名的詳細信息。
所需庫:whois
安裝whois模塊:

pip install python-whois

在這里插入圖片描述

記錄
執行上述命令后,導入會報錯(找不到Whois模塊)(在PyCharm中,IDLE則未出現此問題),需要在報錯處再次執行安裝命令。另一個方法是在終端中直接執行安裝命令,并在IDLE中運行代碼:
在這里插入圖片描述
在這里插入圖片描述

Python代碼示例:

from whois import whois
data = whois("www.163.com")print(data)

示例代碼輸出(含注釋說明):

{"domain_name": [  # 域名:163.com"163.COM","163.com"],"registrar": "MarkMonitor Information Technology (Shanghai) Co., Ltd.",  # 注冊公司"whois_server": "whois.markmonitor.com",  # whois服務器地址"referral_url": null,"updated_date": [  # 更新日期和時間"2023-09-22 06:35:34","2024-04-29 01:59:31+00:00"],"creation_date": [  # 創建日期和時間"1997-09-15 04:00:00","1997-09-15 04:00:00+00:00"],"expiration_date": [  # 過期日期和時間"2027-09-14 04:00:00","2027-09-14 04:00:00+00:00"],"name_servers": [  # DNS解析服務器地址"NS1.NEASE.NET","NS2.166.COM","NS3.NEASE.NET","NS4.NEASE.NET","NS5.NEASE.NET","NS6.NEASE.NET","NS8.166.COM","ns4.nease.net","ns2.166.com","ns1.nease.net","ns6.nease.net","ns5.nease.net","ns8.166.com","ns3.nease.net"],"status": [  # 服務器狀態"clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited","clientTransferProhibited https://icann.org/epp#clientTransferProhibited","clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited","serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited","serverTransferProhibited https://icann.org/epp#serverTransferProhibited","serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited","clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited)","clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited)","clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited)"],"emails": [  # 聯絡郵箱"abusecomplaints@markmonitor.com","whoisrequest@markmonitor.com"],"dnssec": "unsigned","name": null,"org":  "\u5e7f\u5dde\u7f51\u6613\u8ba1\u7b97\u673a\u7cfb\u7edf\u6709\u9650\u516c\u53f8","address": null,"city": null,"state": "Guang Dong",  # 城市(對應美國的“州”):廣東"registrant_postal_code": null,  # 注冊者郵編(無)"country": "CN"  # 國家碼
}

三、子域名挖掘

通過必應(必應搜索引擎)進行子域名搜集:
首先確保安裝有requests庫、bs4庫、urllib庫,安裝這些庫的命令和過程如下:
在這里插入圖片描述
在這里插入圖片描述
Python代碼示例:

import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse
import sysdef bing_search(site, pages):Subdomain = []headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0","Accept": "text/html,application/xhtml+xml, application/xml;q=0.9,*/*;q=0.8","Referer": "https://cn.bing.com"}for i in range(1, int(pages)+1):url = "https://cn.bing.com/search?q=site%3a"+site+"&go=Search&qs=ds&first="+ str((int(i)-1) * 10) + "&FROM=PERE"html = requests.get(url, headers=headers)soup = BeautifulSoup(html.content, 'html.parser')job_bt = soup.findAll('h2')for i in job_bt:link = i.a.get('href')domain = str(urlparse(link).scheme + "://" + urlparse(link).netloc)if domain in Subdomain:passelse:Subdomain.append(domain)print(domain)if __name__ == '__main__':if len(sys.argv) == 3:site = sys.argv[1]  # 參數1:網址page = sys.argv[2]  # 參數2:獲取搜索引擎頁數else:print("usage: %s baidu.com 10" % sys.argv[0])sys.exit(-1)Subdomain = bing_search(site,page)

對域名baidu.com進行子域名收集,獲取50頁搜索結果:
在這里插入圖片描述

參考書目

《Python安全攻防——滲透測試實戰指南》,MS08067安全實驗室 編著,北京,機械工業出版社,2021年10月第1版。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18177.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18177.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18177.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

廣場舞團|基于SprinBoot+vue的廣場舞團系統(源碼+數據庫+文檔)

廣場舞團系統 目錄 基于SprinBootvue的廣場舞團系統 一、前言 二、系統設計 三、系統功能設計 1 系統功能模塊 2 后臺登錄模塊 5.2.1管理員功能模塊 5.2.2社團功能模塊 5.2.3用戶功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推…

Pytorch-06 使用GPU加速計算

要在PyTorch中使用GPU加速計算,需要將模型和數據移動到GPU上進行處理。以下是上一節演示修改后的示例代碼,展示了如何在訓練過程中利用GPU加速計算: import torch import torch.nn as nn import torch.optim as optim import time# 檢查GPU是…

2024-05-28 問AI: 在深度學習中,什么是反向隨機失活?

文心一言 在深度學習中,反向隨機失活(Inverse Randomized Elimination,通常稱為Dropout)是一種在訓練深度神經網絡時常用的正則化技術,用于防止過擬合。該技術通過隨機將神經網絡中的一部分神經元“失活”或“丟棄”來…

深度剖析:為什么 Spring 和 IDEA 都不推薦使用 @Autowired 注解

目錄 依賴注入簡介 Autowired 注解的優缺點 Spring 和 IDEA 不推薦使用 Autowired 的原因 構造器注入的優勢 Autowired 注解的局限性 可讀性和可測試性的問題 推薦的替代方案 構造器注入 Setter 注入 Java Config Bean 注解 項目示例:Autowired vs 構造器…

Android 項目Gradle文件講解(Groovy和Kotlin)

Android 項目Gradle文件講解(Groovy和Kotlin) 前言正文一、Gradle的作用二、Gradle的種類① 工程build.gradle② 項目build.gradle③ settings.gradle④ gradle.properties⑤ gradle-wrapper.properties⑥ local.properties 三、Groovy和Kotlin的語言對比…

裝飾模式:雞腿堡

文章目錄 UML類圖目錄結構Humburger.javaChickenBurger.javaCondiment.javaChuilli.javaLettuce.javaTest.java深度理解test怎么寫 UML類圖 目錄結構 我們從指向最多的開始寫 Humburger.java package zsms;public abstract class Humburger {protected String name;public S…

【接口自動化_05課_Pytest接口自動化簡單封裝與Logging應用】

一、關鍵字驅動--設計框架的常用的思路 封裝的作用:在編程中,封裝一個方法(函數)主要有以下幾個作用:1. **代碼重用**:通過封裝重復使用的代碼到一個方法中,你可以在多個地方調用這個方法而不是…

C++貪心算法(3)

整數區間 #include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;int a[110][10]{0};for(int i0;i<n;i){cin>>a[i][1]>>a[i][2];}int cnt[110]{0};int mi99999;int mii-1;bool f[110]{false,false,false,false,false,false,false,…

debian讓dotnet 程序以守護進程方式運行,如果意外退出主動開啟

創建服務文件: 打開一個新的.service文件在/etc/systemd/system/目錄下&#xff0c;例如myapp.service sudo nano /etc/systemd/system/myapp.service編輯服務文件: 添加以下內容到myapp.service文件&#xff0c;確保修改ExecStart以指向你的.NET Core應用程序的可執行文件&am…

JVM-調優之-高內存占用問題排查

排查思路 1&#xff09;檢查jvm內存的分配情況 2&#xff09;檢查jvm的gc情況 3&#xff09; 找出占用量比較大的對象 第一步&#xff1a;jmap -heap PID 查看jvm內存使用情況 jmap -heap 2525 可以看到老年代年輕代等其他內存區域內存使用率百分比 第二步&#xff1a;jsta…

Golang:使用roylee0704/gron實現定時任務

可以使用roylee0704/gron實現定時任務 文檔 https://github.com/roylee0704/gronhttps://pkg.go.dev/github.com/roylee0704/gron 安裝 go get github.com/roylee0704/gron代碼示例 package mainimport ("fmt""time""github.com/roylee0704/gron…

如何用分立器件設計一個過流保護電路

過流保護電路是指當后級負載電流過大或者發生短路時&#xff0c;自動切斷電源與后級負載&#xff0c;從而防止大電流損害電源電路&#xff0c;過流保護又叫OCP。 常見的過流保護電路有保險絲過流保護&#xff0c;集成的過流保護芯片&#xff0c;還有這種分立器件搭建的過流保護…

Browserify:將 Node.js 模塊轉換為瀏覽器可用的 JavaScript

什么是 Browserify&#xff1f; Browserify 是一個 JavaScript 工具&#xff0c;用于將 Node.js 模塊轉換為在瀏覽器環境中可用的單個 JavaScript 文件。通過 Browserify&#xff0c;您可以使用 require() 函數引入其他模塊&#xff0c;就像在 Node.js 中一樣&#xff0c;而不…

詳解 Scala 的隱式轉換

當編譯器第一次編譯失敗的時候&#xff0c;會在當前的環境中查找能讓代碼編譯通過的方法&#xff0c;用于將某個類型進行轉換&#xff0c;實現二次編譯通過 一、隱式函數 隱式函數可以在不修改任何代碼的情況下&#xff0c;擴展某個類的功能 /**聲明語法&#xff1a;implicit d…

Ubuntu上安裝Maven

在Ubuntu上安裝Maven的步驟如下&#xff1a; 更新包索引&#xff1a; sudo apt update 安裝Maven&#xff1a; sudo apt install maven 驗證安裝是否成功&#xff1a; mvn -version 以上步驟將會安裝Maven并添加到系統路徑中&#xff0c;你可以通過運行mvn -version來驗…

TIM輸出比較

一、OC&#xff08;Output Compare&#xff09;輸出比較 1、輸出比較可以通過比較CNT&#xff08;計數器&#xff09;與CCR&#xff08;捕獲/比較寄存器&#xff09;寄存器值的關系&#xff0c;來對輸出電平進行置1、置0或翻轉的操作&#xff0c;用于輸出一定頻率和占空比的PW…

微信小程序連接阿里云快速入門【物聯網】

一、前言 1.1 項目背景 隨著5G的逐漸普及&#xff0c;萬物互聯的浪潮已經席卷而來。在萬物互聯的場景下&#xff0c;如何實現設備之間的互聯互通&#xff0c;成為了一個亟待解決的問題。 微信小程序作為一款輕量級的小程序開發框架&#xff0c;以其簡潔的語法和豐富的組件庫…

08、SpringBoot 源碼分析 - 自動配置深度分析一

SpringBoot 源碼分析 - 自動配置深度分析一 refresh和自動配置大致流程如何自動配置SpringBootApplication注解EnableAutoConfiguration注解AutoConfigurationImportSelector自動配置導入選擇器DeferredImportSelectorHandler的handleDeferredImportSelectorGroupingHandler的r…

【學習筆記】C++每日一記[20240520]

簡述幾種內存泄漏的預防機制 用智能指針代替普通指針&#xff0c;由于智能指針自帶引用計數功能&#xff0c;能夠記錄動態分配空間的引用數量&#xff0c;在引用計數為零時&#xff0c;自動調用析構函數釋放空間。 借助一些內存泄漏檢測工具&#xff0c;例如Valgrind、Memche…

DNS 解析過程

文章目錄 簡介特點查詢方式??1. 瀏覽器緩存2. 系統緩存&#xff08;hosts文件&#xff09;3. 路由器緩存4. 本地域名服務器5. 根域名服務器6. 頂級域名服務器7. 權限域名服務器8. 本地域名服務器緩存并返回9. 操作系統緩存并返回10. 瀏覽器緩存并訪問流程圖 總結 簡介 DNS&a…