Goqi / Erfrp

Erfrp-frp二开-免杀与隐藏
Apache License 2.0
570 stars 87 forks source link

aes key配置 #1

Open ssrsec opened 1 year ago

ssrsec commented 1 year ago

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

sv3nbeast commented 1 year ago

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

0e0w commented 1 year ago

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

0e0w commented 1 year ago

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

tdtc7 commented 1 year ago

如何生成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/cobra@v1.6.1/command.go:940 +0x862
github.com/Gogods/cobra.(*Command).ExecuteC(0x1461b20)
        C:/Users/12529/go/pkg/mod/github.com/!gogods/cobra@v1.6.1/command.go:1068 +0x3bc
github.com/Gogods/cobra.(*Command).Execute(...)
        C:/Users/12529/go/pkg/mod/github.com/!gogods/cobra@v1.6.1/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
0e0w commented 1 year ago

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

tdtc7 commented 1 year ago

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

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

tdtc7 commented 1 year ago

谢谢哈,搞定了,把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==
RookieTerry commented 1 year ago

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

RookieTerry commented 1 year ago

RookieTerry

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

RookieTerry commented 1 year ago

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

0e0w commented 1 year ago

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

RookieTerry commented 1 year ago

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

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

0e0w commented 1 year ago

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

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

建议去了解学习FRP。

RookieTerry commented 1 year ago

@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需要换成之前加密过的吗?

0e0w commented 1 year ago

@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在服务端,不影响。

RookieTerry commented 1 year ago

@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 commented 1 year ago

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

0e0w commented 1 year ago

@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的说明文档。

RookieTerry commented 1 year ago

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

HackBraid commented 1 year ago

谢谢哈,搞定了,把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?”,遇到过没?