Safe3-CVS/docs/guide/handbook.md
2024-06-20 16:45:14 +08:00

81 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用手册
!> 森罗主要由Web管理后台slwx、网络空间测绘引擎senluo和万象漏洞扫描器cvs三部分组成其中万象漏洞扫描器又分为扫描器cvs、反连服务器oob-server、漏洞规则调试工具ide。
## :lemon: OOB架设 <!-- {docsify-ignore} -->
OOB全称**Out-of-Band**有很多漏洞测试时并不直接回显任何信息需要在公网架设一台OOB服务器来接收漏洞是否测试成功的结果。通常OOB服务器会接收漏洞测试所触发的dns、http、ldap、rmi、ftp等连接请求并将结果返回给CVS扫描器。
1.首先将oob-server上传到公网可访问的服务器上
2.运行oob-server会自动生成一个名为cfg.yml的配置文件
```bash
./oob-server
```
3.修改配置文件domain为dns服务器要解析的根域名token为CVS扫描器连接OOB服务器的认证tokenexternal_ip为该服务器的公网ipssl为CVS扫描器连接OOB服务器是否启用ssl连接若为true则需要上传pem格式的tls证书server.crt和私钥server.key
```yaml
http_address: :80 //poc成功执行后请求的http地址包括ip和端口。规则中对应格式cvs.oob_url+"-"+poc_info
api_address: :33333 //cvs用来接收回连事件的http api地址包括ip和端口
domain: example.com //poc成功执行后请求的dns规则中对应格式poc_info+"-"+cvs.oob_dns
token: clt5j6r4uu422g7i8rrg //cvs用来与接收回连事件的http api通信的认证token
external_ip: 3.3.3.3 //因国内很多服务器本身ip为内网ip地址该ip对应该服务器的公网ip
ssl: false //CVS扫描器连接OOB服务器的http api通信是否启用ssl连接
log_level: info //日志记录等级fatal、error、info、debug
```
4.放开服务器的8081、53、33333端口访问并将OOB服务器设置为NS解析服务器如阿里云上的域名可以参考[链接](https://help.aliyun.com/zh/dws/user-guide/custom-dns-host)进行配置
```bash
pkill oob-server && ./oob-server &
```
5.进入森罗Web管理后台"系统设置->反连服务",配置对应参数
## :melon: 规则编写 <!-- {docsify-ignore} -->
命令行运行IDE
```sh
ide.exe
```
浏览器打开http://127.0.0.1:777/ 即可看到PoC开发环境该IDE提供了PoC的编写、调试和保存等功能并支持代码补全和智能提示如下图所示
<h3 align="center">
<img src="https://slwx.uusec.com/_media/ide.png" class="sd"/>
<br>
</h3>
上图右上角分别为运行、保存、刷新按钮运行按钮用于调试PoC脚本该脚本语法类似golang图中 **cvs结构体** 在CVS扫描器中会自动根据target.json生成无需实现仅在调试时方便测试自行声明。
此图展示的是CVE-2022-46169无回显漏洞测试脚本的编写过程图中提供了 **debug函数** 用于打印调试信息该函数兼容go语言中fmt.Printf的用法结果显示于下方方框。对于有回显的漏洞可以直接通过 **return true** 返回来确认漏洞存在对于需要返回一些信息的场景如密码破解等可以return一个字符串来保存结果结果位于CVS扫描器生成的result.json中的poc_info字段中。
PoC脚本中的函数兼容Nuclei的帮助函数另外CVS也提供了网络请求相关lib库详见[链接](https://slwx.uusec.com/#/guide/library_CN) 。所以你可以较方便的将Nuclei的漏洞模板转换成CVS的PoC。更多PoC样例可参考CVS扫描器poc目录下的yaml文件。规则调试完毕后即可录入森罗攻击面管理平台。
### cvs结构体示例
```json
{
"host": "3.3.3.3",
"port": "6379",
"address": "3.3.3.3:6379",
"proto": "tcp",
"service": "redis",
"url": "redis://3.3.3.3:6379",
"product": "redis-server",
"version": "5.0.7",
"banner": "$3295\\r\\n# Server\\r\\nredis_version:5.0.7\\r\\nredis_git_sha1:00000000\\r\\nredis_git_dirty:0\\r\\nredis_build_id:636cde3b5c7a3923\\r\\nredis_mode:standalone\\r\\nos:Linux 5.4.260-1.el7.elrepo.x86_64 x86_64\\r\\narch_bits:64\\r\\nmultiplexing_api:epoll\\r\\natomicvar_api:atomic-builtin\\r\\ngcc_version:9.2.1\\r\\nprocess_id:1\\r\\nrun_id:58f63d1f79ea3d6556e90fd7bbd23954ccbd8671\\r\\ntcp_port:6379\\r\\nuptime_in_seconds:4111\\r\\nuptime_in_days:0\\r\\nhz:10\\r\\nconfigured_hz:10\\r\\nlru_clock:8750810\\r\\nexecutable:/redis-server\\r\\nconfig_file:/etc/redis/redis.conf\\r\\n\\r\\n# Clients\\r\\nconn",
"http_status": 0,
"http_title": "",
"http_iconhash": 0,
"tls_info": null,
"oob_url": "",
"oob_dns": ""
}
```