Herschel 项目教程
hershellMultiplatform reverse shell generator项目地址:https://gitcode.com/gh_mirrors/he/hershell
1. 项目的目录结构及介绍
hershell/
├── LICENSE
├── README.md
├── client
│ ├── client.go
│ └── main.go
├── cmd
│ └── hershell.go
├── config
│ └── config.go
├── go.mod
├── go.sum
├── handler
│ └── handler.go
├── listener
│ └── listener.go
├── main.go
├── payload
│ └── payload.go
├── shell
│ └── shell.go
└── utils
└── utils.go
- LICENSE: 项目许可证文件。
- README.md: 项目说明文档。
- client: 客户端相关文件。
- client.go: 客户端实现。
- main.go: 客户端主程序。
- cmd: 命令行工具相关文件。
- hershell.go: 命令行工具实现。
- config: 配置文件相关。
- config.go: 配置文件处理。
- handler: 请求处理相关。
- handler.go: 请求处理器。
- listener: 监听器相关。
- listener.go: 监听器实现。
- main.go: 项目主入口文件。
- payload: 负载相关。
- payload.go: 负载处理。
- shell: 命令行相关。
- shell.go: 命令行实现。
- utils: 工具函数相关。
- utils.go: 工具函数。
2. 项目的启动文件介绍
项目的启动文件是 main.go
,它是整个项目的入口点。该文件负责初始化配置、启动监听器和处理客户端连接。
package main
import (
"log"
"hershell/config"
"hershell/listener"
)
func main() {
cfg, err := config.LoadConfig()
if err != nil {
log.Fatalf("Failed to load config: %v", err)
}
l, err := listener.NewListener(cfg)
if err != nil {
log.Fatalf("Failed to create listener: %v", err)
}
l.Start()
}
3. 项目的配置文件介绍
项目的配置文件处理在 config
目录下的 config.go
文件中。该文件定义了配置的结构体和加载配置的方法。
package config
import (
"encoding/json"
"os"
)
type Config struct {
Host string `json:"host"`
Port int `json:"port"`
}
func LoadConfig() (*Config, error) {
file, err := os.Open("config.json")
if err != nil {
return nil, err
}
defer file.Close()
var cfg Config
decoder := json.NewDecoder(file)
err = decoder.Decode(&cfg)
if err != nil {
return nil, err
}
return &cfg, nil
}
配置文件 config.json
的示例如下:
{
"host": "0.0.0.0",
"port": 8080
}
这个配置文件定义了监听的主机和端口。
hershellMultiplatform reverse shell generator项目地址:https://gitcode.com/gh_mirrors/he/hershell