ahamedmohamed/HoneyPot-
GitHub: ahamedmohamed/HoneyPot-
一个基于 Python 的 SSH 蜜罐防火墙,通过模拟脆弱服务记录攻击行为并结合传统防火墙机制,实现威胁检测与情报收集。
Stars: 0 | Forks: 0
```python
import socket
import threading
import paramiko
import logging
# 1. 设置日志记录 - 将攻击者活动记录到文件
logging.basicConfig(
filename="honeypot_activity.log",
level=logging.INFO,
format="%(asctime)s - %(message)s"
)
# 2. 定义 SSH 服务器接口
class SSHServer(paramiko.ServerInterface):
def _init_(self):
self.event = threading.Event()
```
def check_auth_password(self, username, password):
# Log the attempted credentials
logging.info(f"Login attempt - Username: {username} | Password: {password}")
# Always return Denied to keep them trying different passwords
return paramiko.AUTH_FAILED
def get_allowed_auths(self, username):
return "password"
```
# 3. 处理传入连接
def handle_connection(client_socket):
try:
# 生成或加载主机密钥(ssh-keygen -t rsa -f server.key)
host_key = paramiko.RSAKey.generate(2048)
transport = paramiko.Transport(client_socket)
transport.add_server_key(host_key)
```
server = SSHServer()
transport.start_server(server=server)
except Exception as e:
print(f"Error: {e}")
finally:
transport.close()
```
# 4. 主监听器
def start_honeypot(port=2222):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(("0.0.0.0", port))
server_socket.listen(100)
```
print(f"[*] Honeypot active on port {port}...")
while True:
client_socket, addr = server_socket.accept()
print(f"[*] Connection detected from {addr[0]}")
client_thread = threading.Thread(target=handle_connection, args=(client_socket,))
client_thread.start()
```
if _name_ == "_main_":
start_honeypot()
```
标签:Cobalt Strike, ETW劫持, Paramiko, Python 网络编程, Socket 编程, SSH 协议, SSH 蜜罐, 凭证捕获, 凭证窃取, 威胁情报, 开发者工具, 攻击诱捕, 日志记录, 模拟服务, 欺骗技术, 端口监听, 网络安全, 蜜罐, 规避防御, 证书利用, 逆向工具, 防火墙, 隐私保护