【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.mzph.cn/bicheng/18177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

广场舞团|基于SprinBoot+vue的广场舞团系统(源码+数据库+文档)

广场舞团系统 目录 基于SprinBootvue的广场舞团系统 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 后台登录模块 5.2.1管理员功能模块 5.2.2社团功能模块 5.2.3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

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,…

如何用分立器件设计一个过流保护电路

过流保护电路是指当后级负载电流过大或者发生短路时&#xff0c;自动切断电源与后级负载&#xff0c;从而防止大电流损害电源电路&#xff0c;过流保护又叫OCP。 常见的过流保护电路有保险丝过流保护&#xff0c;集成的过流保护芯片&#xff0c;还有这种分立器件搭建的过流保护…

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…

DNS 解析过程

文章目录 简介特点查询方式⚡️1. 浏览器缓存2. 系统缓存&#xff08;hosts文件&#xff09;3. 路由器缓存4. 本地域名服务器5. 根域名服务器6. 顶级域名服务器7. 权限域名服务器8. 本地域名服务器缓存并返回9. 操作系统缓存并返回10. 浏览器缓存并访问流程图 总结 简介 DNS&a…

Enable Full Line suggestions 启用全行建议

开启后效果如下&#xff1a; 直接提示可能要输入的参数

基于 Solana 的 Drift Protocol 快速崛起,重新定义去中心化衍生品市场

随着区块链技术的快速发展&#xff0c;加密市场的格局正在悄然改变。投资者对透明度、效率和去中心化的需求愈发强烈&#xff0c;之前完全由中心化交易主导的加密货币交易&#xff0c;开始向链上转移。 根据 Coingecko 的最新数据&#xff0c;CEX 和 DEX 的现货交易量已经达到了…

WWW24因果论文(3/8) |通过因果干预实现图分布外泛化

【摘要】由于图神经网络 (GNN) 通常会随着分布变化而出现性能下降&#xff0c;因此分布外 (OOD) 泛化在图学习中引起了越来越多的关注。挑战在于&#xff0c;图上的分布变化涉及节点之间错综复杂的互连&#xff0c;并且数据中通常不存在环境标签。在本文中&#xff0c;我们采用…

系统开发与运行知识

系统开发与运行知识 导航 文章目录 系统开发与运行知识导航一、软件工程二、软件生命周期三、开发模型四、开发方法五、需求分析结构化分析 六、数据流图分层数据流图的画法设计注意事项 七、数据字典数据字典的内容 八、系统设计九、结构化设计常用工具十、面向对象十一、UML…

B+树和B*树

B树和B*树 一、B树的简单介绍二、B树的插入过程三、B*树的简单介绍四、B树、B树、B*树总结五、B树的应用1、MyISAM索引实现2、InnoDB索引实现 一、B树的简单介绍 B树是B树的变形&#xff0c;是在B树基础上优化的多路平衡搜索树&#xff0c;B树的规则跟B树基本类似&#xff0c;但…

芯片固定uv胶有什么优点?

芯片固定uv胶有什么优点&#xff1f; 芯片固定UV胶具有多种优点&#xff0c;这些优点使得它在半导体封装和芯片固定等应用中成为理想的选择。以下是芯片固定UV胶的一些主要优点&#xff1a; 固化速度快&#xff1a;UV胶在紫外线照射下能迅速固化&#xff0c;通常在几秒到几十秒…

springcloud-服务拆分与远程调用

一 微服务 1.1简单了解 SpringCloud SpringCloud是目前国内使用最广泛的微服务框架。官网地址&#xff1a;Spring Cloud。 SpringCloud集成了各种微服务功能组件&#xff0c;并基于SpringBoot实现了这些组件的自动装配&#xff0c;从而提供了良好的开箱即用体验&#xff1a…

ubuntu24.04LVM扩容问题

目录 一、 开机前设置&#xff1a;扩展 二、 开机后设置&#xff1a;分区管理 通过gparted管理分区有效做法。 一、 开机前设置&#xff1a;扩展 虚拟机关机。打开虚拟机设置。 挂起状态是不能扩容的 这里选择扩容到40G 二、 开机后设置&#xff1a;分区管理 使用gpar…

英语学习笔记20——Look at them!

Look at them! 看看他们&#xff01; 词汇 Vocabulary big a. 大的&#xff08;尺寸&#xff0c;年龄&#xff0c;音量……&#xff09; 搭配&#xff1a;big cheese 大人物    big mouth 大嘴巴&#xff08;传话的人&#xff09;    big talker 吹牛的人 例句&#xf…

STL源码刨析:序列式容器之list

目录 1.前言 2.list的节点定义和结构 3.list的迭代器定义和结构 4.list的定义和结构 5.list的内存管理 6.list的元素操作 前言 在刨析了vector容器的源码后&#xff0c;list容器相比与vector容器&#xff0c;其元素的插入和删除较快&#xff0c;不需要对原本容器中的元…