Erfrp-frp二开-免杀与隐藏
2022-12-27 11:56:12 Author: 鹏组安全(查看原文) 阅读量:75 收藏

声明:该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。

本项目是frp的二开项目。frp是fatedier开发的一款优秀的反向代理工具,可以将本地服务器暴露在互联网上。但原程序对攻击队而言并不优雅,希望本项目可以为攻击队贡献一个完美的FRP二开项目!

01-项目功能修改

  • 程序运行判断是否存在frpc.ini或frps.ini文件,不存在则自动创建。

  • 全部的参数都从ini文件获取?or 全部的参数都写到go文件中?#Todo
  • 加入命令执行模块#Todo
// 自动生成frpc.ini和frps.inifunc init() {  frpcini := "frpc.ini"  if _, errFileExist := os.Stat(frpcini); errFileExist != nil {    f, err := os.Create(frpcini)    if err != nil {      os.Exit(1)    }    _, err = f.Write(config.DefaultiniBytefrpc)  }
}

02-敏感信息隐藏

  •  配置文件自动删除:frpc.exe --delini

  // 删除配置文件  // 程序运行时添加--delini命令  if delEnable == true {    err := os.Remove(cfgFile)    if err != nil {      return err    }  }
  • 远程加载配置文件:frpc.exe -c http://127.0.0.1/frpc.ini

func GetRenderedConfFromFile(path string) (out []byte, err error) {  var b []byte  rawUrl := path  if strings.Contains(rawUrl, "http") {    log.Info("Remote load ini file")    response, _err1 := http.Get(path)    if _err1 != nil {      return    }    defer response.Body.Close()    body, _err := io.ReadAll(response.Body)    if _err != nil {      return    }    httpContent := string(body)    var content = []byte(httpContent)    out, err = RenderContent(content)    return
} else { log.Info("Local load ini file") b, err = os.ReadFile(path) if err != nil { return } localContent := string(b) var content = []byte(localContent) out, err = RenderContent(content) return }}
  • 服务端IP地址加密:需要在代码上面修改aes的key和加密后的字符

使用说明:在代码中修改AESKey和AESencryptCode的值为自己的。AESKey可不修改,默认使用Erfrp的md5值。在frpc.ini中将server_addr的值修改为AESencryptCode。

package dscrypto
// 对服务器IP进行隐藏需要修改此处的AESKey和AESencryptCode。// 同时需要对frpc.ini中的server_addr进行修改,修改成AESencryptCode。// server_addr支持正常的ip和加密之后的ip,2种形式。var ( VpsIP = "192.168.1.22" AESKey = "9d9d14b5f6650726afe17e1af4052632" //Erfrp AESencryptCode = "J6X+PfMnVldSaM1tpjaNKw==" //AESencryptCode = "2HrQDAPV5JgjckfYkO9u4g==")

03-静态特征修改

  • 去除日志打印相关内容#Todo
  • 去除FRP相关的字段内容#Todo

04-流量特征修改

  • 0x17特征修改
  • 默认开启TLS

05-使用及截图

  • 配置文件自动删除:frpc.exe --delini

  • 服务端IP地址加密:需要在代码上面修改aes的key和加密后的字符
如果本地没有golang环境的,这里给大家找了一个在线的golang编辑器
https://lightly.teamcode.com/
首先生成aes加密的vpsip

然后将生成前的vps填入VpsIP中,密钥填入AESKey中,加密后的VPSIp填入AESencryptCode中
打开终端生成frps和frpc即可

  • 远程加载配置文件:frpc.exe -c http://x.x.x.x/frpc.ini

下载地址

点击下方名片回复"Erfrp"获取

欢迎加入学习

干货 | 渗透知识库

工具|web指纹识别脚本

审计 | SeaCms代码审计getshell

证书 | 第一次申请CVE的全过程

实战 | 记一次授权的渗透测试

应急 | linux实战清理挖矿病毒

好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5NDU3NDA3OQ==&mid=2247488158&idx=1&sn=154b548d88d49635c3bfc8d3d83f9820&chksm=c01cde0ef76b57185243758793fdc511825a3fc7266b16a32b3aa2acf506b286a6dc5d9e8dbd#rd
如有侵权请联系:admin#unsafe.sh