Skip to content

Commit

Permalink
docs: update manual && update yarn && fix a little bug (#49)
Browse files Browse the repository at this point in the history
  • Loading branch information
DVKunion authored Jan 25, 2024
1 parent 65ecb61 commit b1e8066
Show file tree
Hide file tree
Showing 21 changed files with 283 additions and 173 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@

> 🌕 月出于云却隐于海
月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 云代理/渗透工具集,致力于开启云原生的渗透模式
月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集,期望利用云原生的优势,实现更简单、更便宜的网络功能

月海之名取自于苏轼的《西江月·顷在黄州》,寓意月海取自于传统安全工具,用之于云,最终达到隐匿于海的效果。
月海之名取自于苏轼的《西江月·顷在黄州》,寓意月海取自于传统工具,用之于云,最终达到隐匿于海的效果。

直白来讲,月海其实就是一款利用云函数来代理/隐匿攻击行踪以及一些安全相关的匿名性对抗
月海基于 Serverless 的动态特性、分别从网络层、应用层实现对应的安全能力,并利用serverless-devs工具来实现快捷的部署/跨厂商操作

想要了解更多,请移步 [官方手册](https://seamoon.dvkunion.cn)

Expand Down
12 changes: 11 additions & 1 deletion cmd/client/control.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,12 @@ func doListen(ctx context.Context, t transfer.Type) error {
var proxyType tunnel.Type
for _, p := range Config().ProxyAddr {
if strings.HasPrefix(p, "ws://") {
proxyAddr = strings.TrimPrefix(p, "ws://")
proxyAddr = p
proxyType = tunnel.WST
break
}
if strings.HasPrefix(p, "wss://") {
proxyAddr = p
proxyType = tunnel.WST
break
}
Expand All @@ -52,6 +57,11 @@ func doListen(ctx context.Context, t transfer.Type) error {
proxyType = tunnel.GRT
break
}
if strings.HasPrefix(p, "grpcs://") {
proxyAddr = p
proxyType = tunnel.GRT
break
}
}
if proxyAddr == "" || proxyType == "" {
return errors.New(consts.PROXY_ADDR_ERROR)
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ features:
- title: 🫥 隐匿
details: 基于 FaaS/BaaS 实现动态IP代理,云上无痕。
- title: 🗃️ 集成
details: 在传统渗透的基础上,集成常用功能,实现渗透一键开火
details: 适配大量云服务商,拒绝服务绑架
- title: 🚀 便携
details: 以 Serverless Devs为基础,实现跨平台快速部署。
---
44 changes: 14 additions & 30 deletions docs/guide/00.概述/00.introduce.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 简介
titleTag: 1.1.3
titleTag: 1.2.0-beta.2
date: 2022-09-28 22:39:36
permalink: /guide/introduce
article: false
Expand All @@ -18,15 +18,11 @@ article: false

> 🌕 月出于云却隐于海
月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 云代理/渗透工具集,致力于开启云原生的渗透模式
月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集,期望利用云原生的优势,实现更简单、更便宜的网络功能

月海之名取自于苏轼的《西江月·顷在黄州》,寓意月海取自于传统安全工具,用之于云,最终达到隐匿于海的效果。
月海之名取自于苏轼的《西江月·顷在黄州》,寓意月海取自于传统工具,用之于云,最终达到隐匿于海的效果。

直白来讲,月海其实就是一款利用云函数来代理/隐匿攻击行踪以及一些安全相关的匿名性对抗。

基于 Serverless 的动态特性、分别从网络层、应用层实现对应的安全能力,并利用serverless-devs工具来实现快捷的部署/跨厂商操作。

真正的实现渗透上云,赋能安全云原生红利。
月海基于 Serverless 的动态特性、分别从网络层、应用层实现对应的安全能力,并利用serverless-devs工具来实现快捷的部署/跨厂商操作。

觉得项目不错的话,[还请给一个star ✨](https://github.com/DVKunion/SeaMoon), 你的支持是更新的最大动力~

Expand All @@ -51,19 +47,6 @@ article: false

**NAT穿透**

### 应用层

月海的应用层能力是基于网络层的思考基础上,实现的真正上层渗透业务。主要分为两个方向:

+ 传统工具云上集成。例如:端口探测,网络反馈等,将传统且重要地渗透步骤打包上云,实现封装。
+ 隐蔽性功能: 重点在于思考如何结合serverless的特性,深入挖掘隐蔽性的一些实现,如:动态webshell连接。

目前应用层功能如下:

| 能力名称 | 原理文档 | 服务端支持 | 客户端支持 |
|--------------|---------------------------------------------------------------|:-----:|:-----:|
| 动态WebShell隐匿 | [WebShell.md](https://seamoon.dvkunion.cn/tech/app/webshell/) | 🐷待开发 | 🐷待开发 |

### 其他特性

| 能力名称 | 原理文档 | 服务端支持 | 客户端支持 |
Expand All @@ -75,14 +58,15 @@ article: false

## 🧭 支持平台

| 平台名称 | 是否支持 | 部署文档 |
|----------|:-----:|:------:|
| 阿里云 || [部署]() |
| 腾讯云 || [部署]() |
| 🔥Sealos || [部署]() |
| 华为云 | 🐷调研中 | [部署]() |
| AWS | 🐷调研中 | [部署]() |
| Google | 🐷调研中 | [部署]() |
| 平台名称 | 是否支持 | 部署文档 |
|----------|:-----:|:------------------------------------------------------:|
| 阿里云 || [部署](https://seamoon.dvkunion.cn/guide/deploy/aliyun) |
| 腾讯云 || [部署](https://seamoon.dvkunion.cn/guide/deploy/tencent) |
| 🔥Sealos || [部署](https://seamoon.dvkunion.cn/guide/deploy/sealos) |
| 华为云 || [部署]() |
| 百度云 || [部署]() |
| AWS | 🐷调研中 | [部署]() |
| Google | 🐷调研中 | [部署]() |

## ➡️ 后续方向

Expand All @@ -102,6 +86,6 @@ article: false

## ❗ 免责声明

本工具仅用于学习serverless以及云原生相关技术,请勿用于其他用途。
本工具仅用于学习 serverless 以及云原生相关技术,请勿用于其他用途。

如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。
75 changes: 50 additions & 25 deletions docs/guide/01.开始使用/01.start.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ article: false
::: tip 写在前面
本页面按照阿里云标准云函数服务进行部署,如果您希望获取到更多自定义的配置和使用方式,[请跳转](https://seamoon.dvkunion.cn/guide/deploy)

🔥 如果您的钱包和预算有限,并且代理IP需求并不是特别高,这里推荐使用[sealos部署服务端](https://seamoon.dvkunion.cn/guide/deploy/sealos)
🔥
如果您的钱包和预算有限,并且代理IP需求并不是特别高,这里推荐使用 [sealos部署服务端](https://seamoon.dvkunion.cn/guide/deploy/sealos)
:::

### 事前准备

+ 云厂商账户(以阿里云为例),并开通对应的serverless服务(阿里云serverless服务名为:函数计算)
+ 云厂商账户AK/SK,并拥有操作FC的全部权限。
+ 云厂商账户 AK/SK,并拥有操作FC的全部权限。
+ 一台存在docker、Nodejs >= 12 的客户端的机器,同时保证 7777、1080、9999端口未被占用,该机器将作为使用的客户端。

### Step.1 安装serverless-devs工具
Expand All @@ -43,6 +44,10 @@ $ s -v

将可以看到serverless-devs版本,表示安装成功。

```shell
@serverless-devs/s3: 0.1.0, s-home: /Users/DVK/.s, darwin-arm64, node-v20.9.0
```

然后通过如下命令开始配置云厂商认证

```shell
Expand Down Expand Up @@ -73,28 +78,41 @@ $ s deploy
稍等片刻,你将会得到部署好的两个地址:

```yaml
SeaMoon-FC-HTTP-Proxy:
.....
url:
system_url: https://http-proxy-seamoon-xxxxxxxxx.run
system_intranet_url: https://http-proxy-seamoon-xxxxxxxxx.fcapp.run
custom_domain:
-
domain: http://http-proxy.seamoon-service.xxxxxxxxx.fc.devsapp.net
triggers:
-
type: http
SeaMoon-WST-Node:
region: cn-hongkong
service:
name: SeaMoon-Service
function:
name: ws-node
runtime: custom
handler: main
memorySize: 128
timeout: 300
cpu: 0.05
diskSize: 512
url:
system_url: https://ws-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run
system_intranet_url: https://ws-node-seamoon-service-xxxxxxxx.cn-hongkong-vpc.fcapp.run
triggers:
- type: http
name: httpTrigger
...
url:
system_url: https://socks-proxy-seamoon-xxxxxxxxx.fcapp.run
system_intranet_url: https://socks-proxy-seamoon-xxxxxxxxx.fcapp.run
custom_domain:
-
domain: http://socks-proxy.seamoon-service.xxxxxxxxx.fc.devsapp.net
triggers:
-
type: http
SeaMoon-GRT-Node:
region: cn-hongkong
service:
name: SeaMoon-Service
function:
name: grpc-node
runtime: custom
handler: main
memorySize: 128
timeout: 300
cpu: 0.05
diskSize: 512
url:
system_url: https://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run
system_intranet_url: https://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong-vpc.fcapp.run
triggers:
- type: http
name: httpTrigger
```
Expand All @@ -107,7 +125,8 @@ SeaMoon-FC-HTTP-Proxy:
### Step.3 开启客户端使用
```shell
$ docker run -it -d --net=host dvkunion/seamoon-client
$ docker run -it -d --net=host dvkunion/seamoon:latest proxy

```

默认使用`--net=host`模式,然后浏览器打开:
Expand All @@ -122,7 +141,13 @@ $ docker run -it -d --net=host dvkunion/seamoon-client

![client-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/66b1b150238e400483adf936649b7ed5.png)

> 注意,此处填写的值为 Step.2 中输出的 domain字段,并去除 http:// 协议头,属于对应域名即可。
::: tip 如何填写地址
我们在步骤2的时候,如果你是使用 s 工具实现的部署,那么最终的 yaml 内可以看到 url 字段,url 字段内的 system_url 即为我们需要的地址。
不要使用带有 vpc 字样的 url, 也就是 system_intranet_url 字段的值,这是内网 vpc 访问的域名。
除此之外,需要自行将协议头 https:// 替换为对应的隧道协议,如: ws:// 或是 grcp:// 。默认两种协议的隧道是都部署了的。
grpc 按照阿里云的要求,还需要自行声明端口,由此,一个 grpc 隧道的填写应该是这样: grpc://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run:8089
8089 是阿里云的固定 grpc 协议端口,不需要改动。
:::

开启socks5代理,并保持默认`:1080`不改变。

Expand Down
8 changes: 8 additions & 0 deletions docs/guide/02.服务部署/01.aliyun.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,13 @@ article: false
[开启客户端并填入配置](https://seamoon.dvkunion.cn/guide/client/), 尽情享用。

::: tip 如何填写地址
将协议头 https:// 替换为对应的隧道协议,如: ws:// 或是 grcp:// 。默认两种协议的隧道是都部署了的。

grpc 按照阿里云的要求,还需要自行声明端口,由此,一个 grpc 隧道的填写应该是这样: grpc://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run:8089

8089 是阿里云的固定 grpc 协议端口,不需要改动。
:::

## 效果展示
![speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7bfff588795a4e41b488694ad4eb5153.png)
Loading

0 comments on commit b1e8066

Please # to comment.