Open ssrsec opened 2 years ago
不建议启动时传参方式加载配置文件
@heikanet 感谢师傅的关注。AESKey放到frpc.ini里面,frpc.ini在客户端。这样岂不是泄露了?等于远程的IP没隐藏。
@sv3nbeast 感谢师傅的关注。可以通过传参方式进行加载,也可以通过配置文件加载。或者是修复frpc代码,都写到代码里面, 就不用考虑远程ip的隐藏问题了。
如何生成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
@tdtc7 目前使用方法:在代码中修改AESKey和AESencryptCode的值为自己的。AESKey可不修改,默认使用Erfrp的md5值。在frpc.ini中将server_addr的值修改为AESencryptCode。AES加密参考aes.go
@tdtc7 目前使用方法:在代码中修改AESKey和AESencryptCode的值为自己的。AESKey可不修改,默认使用Erfrp的md5值。在frpc.ini中将server_addr的值修改为AESencryptCode。AES加密参考aes.go
感谢师傅! 如何运行aes.go生成AESencryptCode呢?
谢谢哈,搞定了,把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==
在frpc.ini中将server_addr的值修改为AESencryptCode
请问这句话里的frpc.ini在哪个文件夹中?
RookieTerry
在哪里把ip替换为加密后的?
还有,请问源码里的哪个文件可以修改生成的frpc.ini
里面的plugin_user
,plugin_passwd
和其它参数呢?
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
那plugin_user
和plugin_passwd
这两个参数有什么用呢?可以不设置吗?
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
那
plugin_user
和plugin_passwd
这两个参数有什么用呢?可以不设置吗?
建议去了解学习FRP。
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
那
plugin_user
和plugin_passwd
这两个参数有什么用呢?可以不设置吗?建议去了解学习FRP。
了解,frps.ini
里的bind_addr
需要换成之前加密过的吗?
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
那
plugin_user
和plugin_passwd
这两个参数有什么用呢?可以不设置吗?建议去了解学习FRP。
了解,
frps.ini
里的bind_addr
需要换成之前加密过的吗?
不需要。次功能目的是隐藏frps的IP,frps.ini在服务端,不影响。
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
那
plugin_user
和plugin_passwd
这两个参数有什么用呢?可以不设置吗?建议去了解学习FRP。
了解,
frps.ini
里的bind_addr
需要换成之前加密过的吗?不需要。次功能目的是隐藏frps的IP,frps.ini在服务端,不影响。
好的,谢谢师傅解答!另外问一下,跳板机上运行了frp客户端,那怎样访问跳板机内网中的域名呢?攻击机的浏览器挂代理访问内网域名对应的内网ip是不行的
修改攻击机的hosts文件也不行
@RookieTerry 1.运行frpc.exe,程序自动在当前目录生成frpc.ini 2.frpc.ini中的server_addr参数。例子:server_addr = J6X+PfMnVldSaM1tpjaNKw== 3.pkg\config\DefaultiniBytefrpc.go
那
plugin_user
和plugin_passwd
这两个参数有什么用呢?可以不设置吗?建议去了解学习FRP。
了解,
frps.ini
里的bind_addr
需要换成之前加密过的吗?不需要。次功能目的是隐藏frps的IP,frps.ini在服务端,不影响。
好的,谢谢师傅解答!另外问一下,跳板机上运行了frp客户端,那怎样访问跳板机内网中的域名呢?攻击机的浏览器挂代理访问内网域名对应的内网ip是不行的
感觉是你代理没有设置正确,建议去认真看下FRP的说明文档。
是服务端的问题,还是客户端的问题?kali挂服务端的代理扫内网是正常的
谢谢哈,搞定了,把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?”,遇到过没?
建议放在frpc.ini里面,方便随时修改。通常安全设备会加入一些默认的key或者捕获较多样本所提取的key去识别,每次改来改去麻烦