欲善其事必先利其器,python作为一门拥有丰富第三方库的语言自然是编写渗透工具的优选之一,从今天开始此合集将学习多种渗透工具的基本原理,初出茅庐,如有错误望各位不吝赐教。
信息收集,分为被动收集和主动收集两种方式:
被动信息收集:利用第三方的服务对目标进行访问:Google搜索、Shodan搜索等,被动信息收集是指尽可能多低收集与目标相关的信息。
主动信息收集:通过直接扫描目标主机或者网站,获取信息,目标系统可能会记录操作信息。
利用python进行主动信息收集,本文主要分为两个部分:web信息收集与系统信息收集。
web信息收集中主要收集的信息有:目标主机的DNS信息
、目标IP地址
、子域名
、旁站和C段
、CMS类型
、敏感目录
、端口信息
、操作系统版本
、网站架构
、漏洞信息
、服务器与中间件信息
、邮箱
、人员
、地址。
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)
使用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'))
Scrapy是一个基于Python的网络爬虫框架,可以帮助用户快速高效地从互联网上收集信息。下面是一些基本的步骤:
1、创建Scrapy项目 在终端中输入以下命令创建Scrapy项目:
scrapy startproject
注意:<project_name>
是项目名称。
2、创建爬虫 在Scrapy项目中,需要创建一个爬虫,以便从网站上收集信息。在终端中输入以下命令创建一个名为<spider_name>
的爬虫:
scrapy genspider
注意:<spider_name>
是的爬虫名称,<website_url>
是要爬取的网站 URL。
3、编写爬虫代码 打开您刚才创建的爬虫文件
(位于<project_name>/spiders/<spider_name>.py
)在此文件中,需要编写爬虫代码,包括定义要爬取的页面、如何解析页面以及将爬取到的信息保存到文件或数据库中。
4、运行Scrapy爬虫 在终端中输入以下命令运行爬虫:
scrapy crawl
注意:<spider_name>
是的爬虫名称。
以上就是使用Scrapy进行信息收集的基本步骤。可以根据自己的需求进行修改和优化。
import os
# 获取CPU数量
print("CPU核心数:", os.cpu_count())
# 获取系统名称
print("系统名称:", os.name)
# 获取当前工作目录
print("工作目录:", os.getcwd())
# 获取系统环境变量
print("系统环境变量:", os.environ)
import platform
# 获取操作系统名称及版本号
print("操作系统名称及版本号:", platform.platform())
# 获取操作系统版本号
print("操作系统版本号:", platform.version())
# 获取系统位数
print("系统位数:", platform.architecture()[0])
# 判断操作系统类型
print("操作系统类型:", platform.system())
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网络编程,就可以尝试打造基本的信息收集工具了。