Golang 编写的瑞士军刀式 Web 服务器。 保持像 Python SimpleHTTPServer 一样的简洁,但拥有众多功能

如果你不想自己构建,可以从 https://github.com/nodauf/Swego/releases 获取现成的二进制文件。
否则,需要安装 build-essential 并配置好 GOPATH:
git clone https://github.com/nodauf/Swego.git
cd Swego/src
make compileLinux # 或 make compileWindows
web 子命令:
$ ./webserver web --help
启动 Web 服务器(默认子命令)
用法:
Swego web [标志]
标志:
-b, --bind int 绑定端口(默认 8080)
-c, --certificate string HTTPS 证书:openssl req -new -x509 -sha256 -key server.key -out server.crt -days 365
-d, --disableListing 禁用目录列表
-g, --gzip 启用 gzip/zlib 压缩(默认 true)
--ip string 绑定 IP(默认 "0.0.0.0")
-k, --key string HTTPS 密钥:openssl genrsa -out server.key 2048
-o, --oneliners 生成一键下载文件的命令行
-p, --password string HTTP 基本认证的密码(默认 "notsecure")
--private string 需要基本认证的私有文件夹(默认 "/home/florian/dev/SimpleHTTPServer-golang/src/private")
--promptPassword 交互式输入基本认证的密码
-r, --root string 根目录(默认 "/home/florian/dev/SimpleHTTPServer-golang/src")
-s, --searchAndReplace string 在嵌入式文本文件中查找并替换字符串
--tls 启用 HTTPS
-u, --username string HTTP 基本认证的用户名(默认 "admin")
全局标志:
--config string 配置文件(默认为 $HOME/.Swego.yaml)
-h, --help 帮助信息
run 子命令:
$ ./webserver web --help
运行嵌入式二进制文件
用法:
Swego run [标志]
标志:
-a, --args string 传递给二进制文件的参数
-b, --binary string 要执行的二进制文件
-l, --list 列出嵌入式二进制文件
全局标志:
--config string 配置文件(默认为 $HOME/.Swego.yaml)
-h, --help 帮助信息
$ ./webserver
正在共享 /tmp/ 于 8080 端口 ...
正在共享 /tmp/private 于 8080 端口 ...
$ openssl genrsa -out server.key 2048
生成 RSA 私钥,2048 位长模数(2 个素数)
..........................................+++++
.................................................................................................................+++++
e 为 65537(0x010001)
$ openssl req -new -x509 -sha256 -key server.key -out server.crt -days 365
您即将被要求输入将包含在证书请求中的信息。
您即将输入的内容称为可分辨名称或 DN。
有相当多的字段,但您可以留空某些字段。
对于某些字段,将有一个默认值,
如果您输入 '.',该字段将留空。
-----
国家名称(2 字母代码)[AU]:
州或省名称(全名)[Some-State]:
本地名称(例如城市)[]:
组织名称(例如公司)[Internet Widgits Pty Ltd]:
组织单位名称(例如部门)[]:
通用名称(例如服务器 FQDN 或您的名字)[]:
电子邮件地址 []:
$ ./webserver web --tls --key server.key --certificate server.crt
正在共享 /tmp/ 于 8080 端口 ...
正在共享 /tmp/private 于 8080 端口 ...
$ ./webserver-linux-amd64 web --private ThePrivateFolder --username nodauf --password nodauf
正在共享 /tmp/ 于 8080 端口 ...
正在共享 /tmp/ThePrivateFolder 于 8080 端口 ...
$ ./webserver-linux-amd64 web --private /tmp/private --root /home/nodauf --username nodauf --password nodauf
正在共享 /home/nodauf 于 8080 端口 ...
正在共享 /tmp/private 于 8080 端口 ...
C:\Users\Nodauf>.\webserver.exe run
用法:
Swego run [标志]
标志:
-a, --args string 传递给二进制文件的参数
-b, --binary string 要执行的二进制文件
-l, --list 列出嵌入式二进制文件
全局标志:
--config string 配置文件(默认为 $HOME/.Swego.yaml)
-h, --help 帮助信息
C:\Users\Nodauf>.\webserver.exe run --binary mimikatz.exe --args "privilege::debug sekurlsa::logonpasswords"
....
以这种方式运行二进制文件可能有助于绕过防病毒保护。有时传递给二进制文件的参数可能会被防病毒软件捕获,如果可以,请使用二进制文件的交互式 CLI(如 mimikatz)或重新编译二进制文件以更改参数名称。