CornerShot 开源项目教程
1. 项目介绍
CornerShot 是一个开源项目,旨在通过多个视角(POV)增强网络可见性。它允许用户从其他主机的角度查看网络访问情况,而无需在这些主机上拥有特殊权限。CornerShot 通过使用标准远程过程调用(RPC)方法来触发从载体主机到目标主机的网络流量,从而确定目标端口的状态。
主要功能
- 网络可见性增强:通过多个主机视角查看网络访问情况。
- 端口状态检测:区分端口的开放、关闭、过滤和未知状态。
- 简化网络部署:使用少量代理即可查询网络中的其他主机。
2. 项目快速启动
安装
首先,确保你已经安装了 Python 3 和 impacket
包。然后,使用 pip
安装 CornerShot:
pip install cornershot
基本使用
以下是一个基本的命令行使用示例,需要提供有效的域用户凭据、域名、载体 IP 和目标 IP:
python -m cornershot <用户名> <密码> <域名> <载体IP> <目标IP>
扫描多个载体和目标
你可以使用子网或 IP 范围来扫描多个载体和目标:
python -m cornershot <用户名> <密码> <域名> 192.168.1.10-192.168.1.20 192.168.5.0/24,192.168.6.0/24
指定端口
默认情况下,CornerShot 会扫描以下端口:135, 445, 3389, 5985, 5986。你可以通过 -tp
参数指定其他端口或端口范围:
python -m cornershot -tp 22,8080,45000-45005 <用户名> <密码> <域名> <载体IP> <目标IP>
作为 Python 包使用
你也可以在代码中使用 CornerShot。以下是一个简单的示例:
from cornershot import CornerShot
cs = CornerShot("username", "password", "fqdn")
cs.add_shots(carriers=["192.168.1.1"], targets=["192.168.1.2", "192.168.1.3"])
results = cs.open_fire()
print(results)
3. 应用案例和最佳实践
单部署实现完整网络可见性
CornerShot 可以通过一个或少量代理来查询网络中的其他主机,从而简化网络传感器的部署。这对于需要快速识别网络中主机之间访问关系的场景非常有用。
验证 BloodHound 路径
安全团队可以使用 BloodHound 来发现和缓解网络中的权限提升路径。CornerShot 可以与 BloodHound 集成,通过实际的网络访问来验证这些路径的有效性。
4. 典型生态项目
ShotHound
ShotHound 是一个将 CornerShot 与 BloodHound 集成的工具,用于发现实际支持网络访问的权限提升路径。它可以帮助安全团队更有效地识别和缓解网络中的安全风险。
Impacket
Impacket 是一个强大的 Python 库,支持多种网络协议的低级访问。CornerShot 依赖于 Impacket 来实现其核心功能,包括远程过程调用(RPC)方法的实现。
通过这些模块的介绍和示例,你应该能够快速上手并使用 CornerShot 项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考