type
status
date
slug
summary
tags
category
icon
password
前言:
语言是一种表达,一直希望自己能够用语言协助学习。那我该如何编写呢?着手于基础语言几剖析一些开源工具,运行环境为kali Linux。这系列笔记仅作学习参考和记录~
温馨提醒:请在获得授权的前提下进行该活动。
参考文档
https://blog.csdn.net/weixin_49511463/article/details/134860213?spm=1001.2014.3001.5502
0-基本概念
信息收集分为主动收集和被动收集。
主动收集:直接扫描目标主机或网站,获取信息。常利用端口扫描工具(Nmap…)、自动化漏洞扫描工具(Nessus、OpenVAS…)等当时进行,同时目标系统可能会记录操作信息,会触发安全警报或留下访问记录。
被动收集:不直接与目标交互的情况下收集信息。常利用第三方服务队目标进行访问,包括但不限于Google搜索、Shodan搜索、鹰图搜索、社交媒体、捕获分析网络数据包、WHOIS、DNS记录查找等,被动信息收集是指尽可能多地收集与目标相关的信息。这类收集通常不会被目标发现,因为它不涉及直接向目标发送数据包或请求。
被动收集可通过以上的方式进行,本文是利用python进行主动信息收集(web信息收集、系统信息收集)
1.1-web信息收集
web信息收集中主要收集的信息有:
- 目标主机的DNS信息
- 目标IP地址
- 子域名
- 旁站和C段
- CMS类型
- 敏感目录
- 端口信息
- 操作系统版本
- 网站架构
- 漏洞信息
- 服务器与中间件信息
- 邮箱
- 人员
- 地址
而在python中也有相应的库处理这些信息
- Requests:用于发送HTTP请求和处理响应
- BeautifulSoup:用于解析HTML和XML文档
- Scrapy:用于爬取网站的框架,可以提高强大的抓取和处理网站数据的功能
- Selenium:用于模拟用户的行为在web浏览器中,可以用来实现自动化测试、网页截图和数据采集等功能
- PyQuery:类似jQuery库,可以简化HTML和XML文档的解析过程
1.1.1 Requests库
requests库是一个用于发送HTTP请求的python库,简单易用且功能强大,广泛应用于web开发、爬虫开发、API测试等领域;同时支持多种请求方法,如GET、POST、PUT、DELETE等。
1.1.1.1 发送HTTP请求
- 发送GET请求,以获取一个URL内容
- 向服务器发送数据,使用requests库发送POST请求
1.1.1.2 处理HTTP响应
- 处理从服务器接收到的HTTP响应
- 自定义HTTP请求体,伪造用户代理或其他信息
- 使用代理服务器
指定代理服务器,使用其网络流量
此处没开代理,不做演示。
1.1.2 BeautifulSoup库
从HTML或XML提取数据,可以便利解析树,并自动处理各种编码问题,适用于网页抓取,即自动收集信息
- 例1
- 例2
遍历找到的所有段落标签,并打印它们的文本内容
1.1.3 Scrapy框架
Scrapy是一个网络爬虫框架,可以快速收集信息。
架构图:
基本步骤-共四步:
·S1:新建项目
*project_name 是项目名
·S2:明确目标
在item.py中新建一个类并构建item模型,用于定义结构化数据字段,保存爬取到的数据
·S3:制作爬虫
1-爬数据
创建爬虫,指定爬取范围
· spider_name 为爬虫名称
· url 为爬取的网站
编写spider_name.py,定义爬取的页面、如何解析页面以及将爬取到的信息保存到文件或数
2-取数据
可以用xpath定位
·S4:存储内容
-o 指定输出格式
2.1-系统信息收集
2.1.1 os库
提供与操作系统交互的功能,能够执行文件和目录操作、管理环境变量、处理路径等常见任务。
2.1.2 platform库
提供了跨平台访问底层平台数据的功能,包括操作系统名称、版本、架构,以及 Python 的编译器信息等。它是一个只读模块,非常适合在需要检测运行环境的情况下使用。如果需要动态操作,需要结合其他模块(os…)
2.1.3 psutil库
一个跨平台的系统监控库,提供了查询系统进程和资源使用(如 CPU、内存、磁盘、网络等)的功能。它非常适合开发性能监控工具或分析系统状态。
例 系统监控脚本
综上,结合socket,就可以尝试打造信息收集工具了。
- 作者:fnigkl
- 链接:https://www.fnigkl.com/article/013
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。