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信息收集、系统信息收集)
notion image
 

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内容
notion image
notion image
 
  • 向服务器发送数据,使用requests库发送POST请求
notion image
notion image

1.1.1.2 处理HTTP响应

  • 处理从服务器接收到的HTTP响应
notion image
notion image
notion image
notion image
 
  • 自定义HTTP请求体,伪造用户代理或其他信息
notion image
notion image
 
  • 使用代理服务器
指定代理服务器,使用其网络流量
notion image
此处没开代理,不做演示。
 

1.1.2 BeautifulSoup库

从HTML或XML提取数据,可以便利解析树,并自动处理各种编码问题,适用于网页抓取,即自动收集信息
  • 例1
notion image
notion image
  • 例2
遍历找到的所有段落标签,并打印它们的文本内容
notion image
notion image
 

1.1.3 Scrapy框架

Scrapy是一个网络爬虫框架,可以快速收集信息。
架构图:
notion image
notion image
notion image
基本步骤-共四步:
·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,就可以尝试打造信息收集工具了。
 
工具学习-burpsuite篇记一次简单的非域间横向移动练习_PPT