python渗透工具编写学习笔记:1、信息收集

本文介绍了如何利用Python及其库(如Requests、BeautifulSoup、Scrapy)进行被动和主动信息收集,重点关注web信息收集(DNS、IP、子域等)和系统信息(CPU、内存、磁盘、操作系统)。同时展示了os、platform和psutil模块在系统信息收集中的应用。
摘要由CSDN通过智能技术生成

前言

    欲善其事必先利其器,python作为一门拥有丰富第三方库的语言自然是编写渗透工具的优选之一,从今天开始此合集将学习多种渗透工具的基本原理,初出茅庐,如有错误望各位不吝赐教。

1.1 基本概念

    信息收集,分为被动收集和主动收集两种方式:

被动信息收集:利用第三方的服务对目标进行访问:Google搜索、Shodan搜索等,被动信息收集是指尽可能多低收集与目标相关的信息。

主动信息收集:通过直接扫描目标主机或者网站,获取信息,目标系统可能会记录操作信息。

利用python进行主动信息收集,本文主要分为两个部分:web信息收集系统信息收集。

1.2 web信息收集

    web信息收集中主要收集的信息有:目标主机的DNS信息目标IP地址子域名旁站和C段CMS类型敏感目录端口信息操作系统版本网站架构漏洞信息服务器与中间件信息邮箱人员地址。

  1. Requests:用于发送HTTP请求和处理响应的库。
  2. BeautifulSoup:用于解析HTML和XML文档的库。
  3. Scrapy:用于爬取网站的框架,可以提供强大的抓取和处理网站数据的功能。
  4. Selenium:用于模拟用户的行为在Web浏览器中,可以用来实现自动化测试,网页截图和数据采集等功能。
  5. PyQuery:类似于jQuery的库,可以简化HTML和XML文档的解析过程。

1.2.1 Requests

requests是Python中流行的HTTP请求库,它可以发送HTTP请求并返回响应。可以使用requests库进行信息收集如下:

发送HTTP GET请求:

可以使用requests库发送HTTP GET请求,以获取一个URL的内容:

import requests
url = 'http://www.example.com'
response = requests.get(url)
print(response.content)

如果需要向服务器发送数据,可以使用requests库发送POST请求:

import requests
url = 'http://www.example.com'
data = {'username': 'user1', 'password': 'pass1'}
response = requests.post(url, data=data)
print(response.content)

处理HTTP响应:

可以使用requests库处理从服务器接收到的HTTP响应:

import requests
url = 'http://www.example.com'
response = requests.get(url)
if response.status_code == 200:
    print('Response OK')

自定义HTTP请求头:

可以使用requests库自定义HTTP请求头。可以添加自定义头以伪造用户代理或其他信息:

import requests
url = 'http://www.example.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
print(response.content)

使用代理服务器: 

 可以使用requests库代理服务器的网络流量。可以在代码中指定代理服务器:

import requests
url = 'http://www.example.com'
proxies = {'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'}
response = requests.get(url, proxies=proxies)
print(response.content)

1.2.2 BeautifulSoup

     使用BeautifulSoup可以轻松地从HTML或XML文档中提取信息。帮助我们在网页中提取出我们需要的信息:

1、首先我们利用Requests给网站发送get请求: 

url = "https://www.example.com"
response = requests.get(url)
html_content = response.content
 

2、利用BeautifulSoup解析网页内容:

soup = BeautifulSoup(html_content, 'html.parser')
 

3、使用BeautifulSoup提取信息:

  • find():查找符合条件的第一个元素
  • find_all():查找符合条件的所有元素
  • select():查找符合CSS选择器的元素 

例如以下示例我们可以获取 网页中所有链接:

for link in soup.find_all('a'):
    print(link.get('href'))
 

1.2.3 Scrapy

    Scrapy是一个基于Python的网络爬虫框架,可以帮助用户快速高效地从互联网上收集信息。下面是一些基本的步骤:

1、创建Scrapy项目 在终端中输入以下命令创建Scrapy项目:

scrapy startproject <project_name>

注意:&lt;project_name>是项目名称。

2、创建爬虫 在Scrapy项目中,需要创建一个爬虫,以便从网站上收集信息。在终端中输入以下命令创建一个名为&lt;spider_name>的爬虫:

scrapy genspider <spider_name> <website_url>

注意:&lt;spider_name>是的爬虫名称,&lt;website_url>是要爬取的网站 URL。

3、编写爬虫代码 打开您刚才创建的爬虫文件

(位于&lt;project_name>/spiders/&lt;spider_name>.py)在此文件中,需要编写爬虫代码,包括定义要爬取的页面、如何解析页面以及将爬取到的信息保存到文件或数据库中。

4、运行Scrapy爬虫 在终端中输入以下命令运行爬虫:

scrapy crawl <spider_name>

注意:&lt;spider_name>是的爬虫名称。

以上就是使用Scrapy进行信息收集的基本步骤。可以根据自己的需求进行修改和优化。

1.3系统信息收集

1.3.1 os

import os

# 获取CPU数量
print("CPU核心数:", os.cpu_count())

# 获取系统名称
print("系统名称:", os.name)

# 获取当前工作目录
print("工作目录:", os.getcwd())

# 获取系统环境变量
print("系统环境变量:", os.environ)
 

1.3.2 platform

import platform

# 获取操作系统名称及版本号
print("操作系统名称及版本号:", platform.platform())

# 获取操作系统版本号
print("操作系统版本号:", platform.version())

# 获取系统位数
print("系统位数:", platform.architecture()[0])

# 判断操作系统类型
print("操作系统类型:", platform.system())
 

1.3.3 psutil

import psutil

# 获取CPU使用率
print("CPU使用率:", psutil.cpu_percent(interval=1))

# 获取内存信息
print("内存总量:", psutil.virtual_memory().total)
print("内存使用量:", psutil.virtual_memory().used)
print("内存空闲量:", psutil.virtual_memory().available)

# 获取磁盘信息
print("磁盘总量:", psutil.disk_usage('/').total)
print("磁盘使用量:", psutil.disk_usage('/').used)
print("磁盘空闲量:", psutil.disk_usage('/').free)
 

综合以上内容,再添加socket网络编程,就可以尝试打造基本的信息收集工具了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值