Erfrp icon indicating copy to clipboard operation
Erfrp copied to clipboard

aes key配置

Open ssrsec opened this issue 3 years ago • 20 comments

建议放在frpc.ini里面,方便随时修改。通常安全设备会加入一些默认的key或者捕获较多样本所提取的key去识别,每次改来改去麻烦

ssrsec avatar Dec 01 '22 02:12 ssrsec

不建议启动时传参方式加载配置文件

sv3nbeast avatar Dec 01 '22 03:12 sv3nbeast

@heikanet 感谢师傅的关注。AESKey放到frpc.ini里面,frpc.ini在客户端。这样岂不是泄露了?等于远程的IP没隐藏。

0e0w avatar Dec 01 '22 11:12 0e0w

@sv3nbeast 感谢师傅的关注。可以通过传参方式进行加载,也可以通过配置文件加载。或者是修复frpc代码,都写到代码里面, 就不用考虑远程ip的隐藏问题了。

0e0w avatar Dec 01 '22 11:12 0e0w

如何生成AESencryptCode的值呢?有没有在具体一点的说明?使用普通的aes加密替换了AESencryptCode后程序会报错。

frpc.exe -c frpc.ini
2022/12/03 14:10:03 [I] [value.go:100] Local load ini file
panic: runtime error: slice bounds out of range [:-33]

goroutine 1 [running]:
Erfrp/pkg/dscrypto.PKCS7UnPadding(...)
        C:/Users/12529/Desktop/Erfrp-main/pkg/dscrypto/aes.go:76
Erfrp/pkg/dscrypto.AesDecrypt({0xf7b357?, 0xc0002aeaf8?}, {0xf8161a, 0x20})
        C:/Users/12529/Desktop/Erfrp-main/pkg/dscrypto/aes.go:61 +0x15b
Erfrp/pkg/client.(*Service).login(0xc000485500)
        C:/Users/12529/Desktop/Erfrp-main/pkg/client/service.go:298 +0xbd1
Erfrp/pkg/client.(*Service).Run(0xc000485500)
        C:/Users/12529/Desktop/Erfrp-main/pkg/client/service.go:130 +0x1b5
Erfrp/cmd/frpc.startService({{{{0xf6d8b1, 0x5}, 0x0, 0x0}, {{0x111f000, 0x0}, {0x111f000, 0x0}, {0x111f000, 0x0}, ...}, ...}, ...}, ...)
        C:/Users/12529/Desktop/Erfrp-main/cmd/frpc/root.go:251 +0x377
Erfrp/cmd/frpc.runClient({0xc0000180c8, 0x8})
        C:/Users/12529/Desktop/Erfrp-main/cmd/frpc/root.go:216 +0x14f
Erfrp/cmd/frpc.glob..func4(0x1461b20?, {0xf697c6?, 0x2?, 0x3?})
        C:/Users/12529/Desktop/Erfrp-main/cmd/frpc/root.go:152 +0x45
github.com/Gogods/cobra.(*Command).execute(0x1461b20, {0xc00002e090, 0x2, 0x3})
        C:/Users/12529/go/pkg/mod/github.com/!gogods/[email protected]/command.go:940 +0x862
github.com/Gogods/cobra.(*Command).ExecuteC(0x1461b20)
        C:/Users/12529/go/pkg/mod/github.com/!gogods/[email protected]/command.go:1068 +0x3bc
github.com/Gogods/cobra.(*Command).Execute(...)
        C:/Users/12529/go/pkg/mod/github.com/!gogods/[email protected]/command.go:992
Erfrp/cmd/frpc.Execute()
        C:/Users/12529/Desktop/Erfrp-main/cmd/frpc/root.go:162 +0x25
main.main()
        C:/Users/12529/Desktop/Erfrp-main/frpc.go:16 +0x17

tdtc7 avatar Dec 03 '22 06:12 tdtc7

@tdtc7 目前使用方法:在代码中修改AESKey和AESencryptCode的值为自己的。AESKey可不修改,默认使用Erfrp的md5值。在frpc.ini中将server_addr的值修改为AESencryptCode。AES加密参考aes.go

0e0w avatar Dec 03 '22 09:12 0e0w

@tdtc7 目前使用方法:在代码中修改AESKey和AESencryptCode的值为自己的。AESKey可不修改,默认使用Erfrp的md5值。在frpc.ini中将server_addr的值修改为AESencryptCode。AES加密参考aes.go

感谢师傅! 如何运行aes.go生成AESencryptCode呢?

tdtc7 avatar Dec 03 '22 14:12 tdtc7

谢谢哈,搞定了,把aes.go修改为main.go,把里面的aes都修改成main.go再运行即可。

package main

import (
	"bytes"
	"crypto/aes"
	"crypto/cipher"
	"encoding/base64"
	"fmt"
)

func main() {
	encryptCode := AesEncrypt("192.168.1.22", "9d9d14b5f6650726afe17e1af4052632")
	fmt.Println(encryptCode)
}
go run .\main.go
J6X+PfMnVldSaM1tpjaNKw==

tdtc7 avatar Dec 03 '22 14:12 tdtc7

在frpc.ini中将server_addr的值修改为AESencryptCode 请问这句话里的frpc.ini在哪个文件夹中?

RookieTerry avatar Dec 07 '22 08:12 RookieTerry

RookieTerry

在哪里把ip替换为加密后的?

RookieTerry avatar Dec 07 '22 08:12 RookieTerry

还有,请问源码里的哪个文件可以修改生成的frpc.ini里面的plugin_user,plugin_passwd和其它参数呢?

RookieTerry avatar Dec 07 '22 09:12 RookieTerry

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

0e0w avatar Dec 07 '22 14:12 0e0w

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

plugin_userplugin_passwd这两个参数有什么用呢?可以不设置吗?

RookieTerry avatar Dec 07 '22 16:12 RookieTerry

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

plugin_userplugin_passwd这两个参数有什么用呢?可以不设置吗?

建议去了解学习FRP。

0e0w avatar Dec 07 '22 23:12 0e0w

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

plugin_userplugin_passwd这两个参数有什么用呢?可以不设置吗?

建议去了解学习FRP。

了解,frps.ini里的bind_addr需要换成之前加密过的吗?

RookieTerry avatar Dec 09 '22 16:12 RookieTerry

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

plugin_userplugin_passwd这两个参数有什么用呢?可以不设置吗?

建议去了解学习FRP。

了解,frps.ini里的bind_addr需要换成之前加密过的吗?

不需要。次功能目的是隐藏frps的IP,frps.ini在服务端,不影响。

0e0w avatar Dec 09 '22 23:12 0e0w

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

plugin_userplugin_passwd这两个参数有什么用呢?可以不设置吗?

建议去了解学习FRP。

了解,frps.ini里的bind_addr需要换成之前加密过的吗?

不需要。次功能目的是隐藏frps的IP,frps.ini在服务端,不影响。

好的,谢谢师傅解答!另外问一下,跳板机上运行了frp客户端,那怎样访问跳板机内网中的域名呢?攻击机的浏览器挂代理访问内网域名对应的内网ip是不行的

RookieTerry avatar Dec 10 '22 09:12 RookieTerry

修改攻击机的hosts文件也不行

RookieTerry avatar Dec 10 '22 09:12 RookieTerry

@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go

plugin_userplugin_passwd这两个参数有什么用呢?可以不设置吗?

建议去了解学习FRP。

了解,frps.ini里的bind_addr需要换成之前加密过的吗?

不需要。次功能目的是隐藏frps的IP,frps.ini在服务端,不影响。

好的,谢谢师傅解答!另外问一下,跳板机上运行了frp客户端,那怎样访问跳板机内网中的域名呢?攻击机的浏览器挂代理访问内网域名对应的内网ip是不行的

感觉是你代理没有设置正确,建议去认真看下FRP的说明文档。

0e0w avatar Dec 10 '22 09:12 0e0w

是服务端的问题,还是客户端的问题?kali挂服务端的代理扫内网是正常的

RookieTerry avatar Dec 10 '22 09:12 RookieTerry

谢谢哈,搞定了,把aes.go修改为main.go,把里面的aes都修改成main.go再运行即可。

package main

import (
	"bytes"
	"crypto/aes"
	"crypto/cipher"
	"encoding/base64"
	"fmt"
)

func main() {
	encryptCode := AesEncrypt("192.168.1.22", "9d9d14b5f6650726afe17e1af4052632")
	fmt.Println(encryptCode)
}
go run .\main.go
J6X+PfMnVldSaM1tpjaNKw==

我试了下,提示“AES:56: maximum nested function level reached; increase FUNCNEST?”,遇到过没?

HackBraid avatar Jun 02 '23 06:06 HackBraid