Skip to content

Commit

Permalink
Update: v2.10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
hanc00l committed Aug 3, 2023
1 parent a4b7922 commit e51ecda
Show file tree
Hide file tree
Showing 10 changed files with 216 additions and 32 deletions.
57 changes: 47 additions & 10 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# ChangeLog

## 2.10.0

2023-08-04

### Updated

- 增加runtimelog数据库表,worker的runtime日志通过RPC调用上传并保存,在web增加日志查看和管理功能(需要SuperAdmin权限),*
*从v2.9升级需导入runtimelog.sql**
- 新增worker按任务功能分别运行的模式(见安装手册);
- 增加根据工作空间对Worker进行自定义任务的实现;
- 导出IP与Domain资产功能;
- 对Fofa、quake及hunter的API增加查询限额;
- subfinder对子域名去除泛解析;

### Fix

- quake查询API参数服务器调整导致无法正确搜索结果;Fofa默认分页数与实际不一致导致的重复调用API;
- subfinder v2.6.0异常退出bug
- 导入离线扫描的gogo和fscan
- 域名一键拉黑的时候删除不彻底

### Thirdparty版本

- Httpx:1.3.4
- Subfinder:2.6.1
- Nuclei:2.9.10
- Observe_ward:2023.8.3

## 2.9.4

2023-07-10
Expand All @@ -18,14 +46,16 @@

### Updated

- 集成Goby进行漏洞扫描;需要部署服务器模式的goby,并在worker.yml配置api的地址及认证;docker方式默认会在127.0.0.1:8361启动goby-cmd;
- 集成Goby进行漏洞扫描;需要部署服务器模式的goby,并在worker.yml配置api的地址及认证;docker方式默认会在127.0.0.1:
8361启动goby-cmd;
- 更新thirdparty组件版本;

### Fix

- httpx获取HTTP返回包的header数据,在ip/domain详细显示不自动换行

### Thirdparty版本

- Xray:1.9.11
- Nuclei:2.9.6
- Goby:2.5.2
Expand All @@ -52,12 +82,12 @@

- 子域名被动枚举(Subfinder)配置的provider-config.yaml未生效



## 历史ChangeLog

- 2.9.1:2023-3-10,增加用Httpx获取网站指纹信息时,保存HTTP响应的header与body到数据库及查询功能(由于新增加了数据库表,从v2.9.0升级需导入http.sql)。
- 2.9.0:2023-3-7,增加用户与角色、权限管理,增加工作空间功能,支持多用户和多项目的资源隔离;增加ip/domain资产的置顶功能;更新xray扫描调用的poc规则和使用方式;参数配置增加xray配置、api与token的测试。由于数据库的表有重大调整,从v2.8升级需导入**user_workspace.sql**,并在webfiles目录下新建**b0c79065-7ff7-32ae-cc18-864ccd8f7717**目录(默认的workspace),将原webfiles目录下文件迁移至该默认workspace目录下。
- 2.9.0:2023-3-7,增加用户与角色、权限管理,增加工作空间功能,支持多用户和多项目的资源隔离;增加ip/domain资产的置顶功能;更新xray扫描调用的poc规则和使用方式;参数配置增加xray配置、api与token的测试。由于数据库的表有重大调整,从v2.8升级需导入
**user_workspace.sql**,并在webfiles目录下新建**b0c79065-7ff7-32ae-cc18-864ccd8f7717**
目录(默认的workspace),将原webfiles目录下文件迁移至该默认workspace目录下。
- 2.8.3:2022-12-14,增加按worker的CPU及内存数量设置不同的性能模式(HighPerformance:4核4G内存及以上),降低docker及一般的VPS的并发线程数量(任务执行时间将增加)。
- 2.8.2:2022-12-12,修复Httpx库使用leveldb时,缓存不释放导致的内存泄露;增加fofa结果的关键词全局过滤;修复XSCAN任务的taskId未能显示、漏洞扫描任务结果不能在maintask正常显示。
- 2.8.1:2022-11-30,增加在任务结果里显示新增加资产的数量。
Expand All @@ -67,17 +97,24 @@
- 2.6.1:2022-10-17,在Windows平台运行Nemo的Server与Worker(只测试在win10里代码及功能运行正常,server及worker的依赖环境的安装和配置请参考linux平台;子域名爆破使用的massdns暂不支持在windows平台上运行);
- 2.6.0:2022-8-30,增加Server与Worker之间的文件自动同步功能,重启worker进程(增加后台守护进程功能);
- 2.5.7:2022-8-16,更新crawlergo的代码;移除部份未用的旧代码;增加导入FOFA、Hunter的查询结果的导出文件;
- 2.5.6:2022-8-4,增加导入TXPortMap扫描的文本结果及零零信安(0.zone)导出的csv格式资产;增加资产列表查询时"不看Banner信息"的选项,可以减少无效信息的干扰;在IP资产列表显示增加不看中国大地以外地区信息的选项,以及方便ip和domain列表查询筛选一些需要删除的信息;fofa查询将cert修改为cert.subject以减少干扰信息;
- 2.5.6:2022-8-4,增加导入TXPortMap扫描的文本结果及零零信安(0.zone)导出的csv格式资产;增加资产列表查询时"不看Banner信息"
的选项,可以减少无效信息的干扰;在IP资产列表显示增加不看中国大地以外地区信息的选项,以及方便ip和domain列表查询筛选一些需要删除的信息;fofa查询将cert修改为cert.subject以减少干扰信息;
- 2.5.5:2022-7-24,修复IP扫描和漏洞扫描时,读取目标资产所有开放端口时不能正确读取子网掩码目标的bug(2.5.4版本只需替换server_linux_amd64文件)。
- 2.5.4:2022-7-23,修复ObserverWard不能正确被调用的Bug(2.5.3只需要替换worker_linux_amd64即可)。
- 2.5.3:2022-7-20,增加导入Naabu和Httpx扫描结果导入到平台,以方便在内网渗透时的信息收集和协同;支持IP任务时跳过端口扫描,读取资产已探测的全部端口进行指纹和信息收集;去除效果不太用好的Wappalyzer功能;修复ObserverWard设置工作目录以正确加载指纹库,升级到2022年7月最新版本。
- 2.5.2:2022-7-14,增加域名的Whois查询。注意:由2.5.1版本升级时,需在thirdparty中增加whois目录用于存放whois查询的缓存信息。
- 2.5.1:2022-6-12,更新beego框架至v2.0.3,sessionOn属性修改至app.conf中,更新chromedp至v0.8.2;增加version.txt,记录每次更新后的版本号并在web的“系统设置”-“配置管理”中显示当前的version;导入fscan扫描结果时将结果中的poc-yaml-*漏洞加入到vulnerability中。注意:由2.5.0版本升级时,需在conf/app.conf中增加对应的sessionOn属性。
- 2.5.1:2022-6-12,更新beego框架至v2.0.3,sessionOn属性修改至app.conf中,更新chromedp至v0.8.2;增加version.txt,记录每次更新后的版本号并在web的“系统设置”-“配置管理”中显示当前的version;导入fscan扫描结果时将结果中的poc-yaml-*
漏洞加入到vulnerability中。注意:由2.5.0版本升级时,需在conf/app.conf中增加对应的sessionOn属性。
- 2.5.0:2022-5-30,新增定时任务执行;Docker的Ubuntun升级为20.04LTS、调整Docker时区;新增webfiles路径映射,统一处理server的web目录访问,取消原screenshot、taskresult与imageicon目录映射;注意:本次累积升级有较大的改动,由v2.4.21升级需导入task.sql与task_cron.sql,并修改app.conf与server.yml中staticdir字段。
- 2.4.21:2022-5-25,修复对域名进行查询时没有释放数据库连接,导致在进行大量资产查询后出现数据库连接Too many connecitons导致服务端退出的BUG ;
- 2.4.20:2022-5-24,增加mysql.cnf配置项:max_connections为1000,解决mysql在docker中经常出现连接达上限导致nemo退出;保存icon图标在本地,并在ip和domain的资产列表中进行显示(需要app.conf的staticdir中增加iconimage:/tmp/iconimage,在server.conf的web中增加iconimagePath: /tmp/iconimage,路径可以自定义);
- 2.4.19:2022-4-29,增加[Nuclei](https://github.com/projectdiscovery/nuclei) 漏洞验证方式,默认poc使用[Nuclei-Templates](https://github.com/projectdiscovery/nuclei-templates),worker.yml增加了相关配置选项;增加验证漏洞时读取指定IP已探测的开放端口作为目标的功能;
- 2.4.18:2022-4-27,更新httpx与subfinder,subfinder增加provider-config配置文件(thirdpary/dict/provider-config.yml,对应worker.yml配置文件增加了 providerConfig: provider-config.yml字段,可增加被动收集平台的key);更新xray pocs、fingperprinthub指纹与observer程序;
- 2.4.21:2022-5-25,修复对域名进行查询时没有释放数据库连接,导致在进行大量资产查询后出现数据库连接Too many
connecitons导致服务端退出的BUG ;
- 2.4.20:2022-5-24,增加mysql.cnf配置项:max_connections为1000,解决mysql在docker中经常出现连接达上限导致nemo退出;保存icon图标在本地,并在ip和domain的资产列表中进行显示(需要app.conf的staticdir中增加iconimage:
/tmp/iconimage,在server.conf的web中增加iconimagePath: /tmp/iconimage,路径可以自定义);
- 2.4.19:2022-4-29,增加[Nuclei](https://github.com/projectdiscovery/nuclei)
漏洞验证方式,默认poc使用[Nuclei-Templates](https://github.com/projectdiscovery/nuclei-templates)
,worker.yml增加了相关配置选项;增加验证漏洞时读取指定IP已探测的开放端口作为目标的功能;
- 2.4.18:2022-4-27,更新httpx与subfinder,subfinder增加provider-config配置文件(thirdpary/dict/provider-config.yml,对应worker.yml配置文件增加了
providerConfig: provider-config.yml字段,可增加被动收集平台的key);更新xray pocs、fingperprinthub指纹与observer程序;
- 2.4.17:2022-3-8,增加[Hunter](https://hunter.qianxin.com/)资产接口(在worker.yml中增加hunter的key);
- 2.4.16:2022-2-18,修改Fofa的API接口(fofa.so->fofa.info),去除只获取前1000条的限制(获取的记录数量由API的会员等级决定);
- 2.4.15:2022-1-25,增加[Quake](https://quake.360.cn/)资产接口(需要“会员”级别的API KEY;在worker.yml中增加quake的key);
Expand Down
19 changes: 12 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@

### 4、API接口 (需提供相应的Key)

- [Fofa](https://fofa.info/)
- [ICP备案信息](http://icp.chinaz.com/)
- [Fofa](https://fofa.info/)
- [Quake](https://quake.360.cn)
- [Hunter](https://hunter.qianxin.com/)
- [ICP备案信息](http://icp.chinaz.com/)

### 5、Poc验证与目录扫描

Expand All @@ -53,24 +53,29 @@

### 6、分布式任务

- 分布式、异步任务执行
- 分布式、异步任务执行与定时任务执行
- 多维度任务切分
- 定时任务执行
- Server与Worker通过 [RPC](https://github.com/smallnest/rpcx) 同步
- Server与Worker通过 [RPC](https://github.com/smallnest/rpcx)及消息队列实现通信和解耦
- Server与Worker文件自动同步
- Worker按不同类型的任务分离和组合部署
- 任务执行完成消息通知(钉钉、飞书群机器人及Server酱)

**典型VPS部署架构:**
![nemo_vps](docs/image/nemo_vps.png)



### 7、团队在线协作

- 多用户/角色、多工作空间(项目)支持
- 多用户/角色、多工作空间(项目)支持及资产隔离
- 资产颜色标记、置顶、备忘录协作
- IP/Domain黑名单、一键拉黑

### 8、其它

- Docker支持
- 资产流程化扫描(XSCAN)
- 资产流程化扫描(XSCAN)![xscan](docs/image/9-1.xscan2.png)
- 导出IP与Domain资产

## 演示页面

Expand Down
21 changes: 21 additions & 0 deletions docker/mysql/initdb.d/nemo.sql
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,27 @@ LOCK TABLES `port_attr` WRITE;
/*!40000 ALTER TABLE `port_attr` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `runtimelog`
--

DROP TABLE IF EXISTS `runtimelog`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `runtimelog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`source` varchar(40) NOT NULL,
`file` varchar(80) DEFAULT NULL,
`func` varchar(80) DEFAULT NULL,
`level` varchar(20) NOT NULL,
`level_int` int(11) NOT NULL,
`message` varchar(1000) NOT NULL,
`create_datetime` datetime NOT NULL,
`update_datetime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1208 DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `task_cron`
--
Expand Down
Binary file added docs/image/nemo_vps.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 71 additions & 6 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Nemo安装手册

## v1.0
## v1.1

2023-7-8
2023-8-3


Nemo分为**Server**端和**Worker**端两部份。Server提供Http访问、API接口、RPC接口、消息中间件服务以及文件同步接口。Worker是通过消息中间件从Worker接收任务并执行,通过RPC接口上传任务的结果,并通过文件同步接口接收Server的文件。
Expand Down Expand Up @@ -307,27 +307,34 @@ Worker不会开启任务监听端口(启用goby服务端模式除外),work
```bash
./daemon_worker_linux_amd64
```
1、可选参数
#### 1、可选参数
```bash
-c int
concurrent number of tasks (default 3)
-m string
worker run task mode; 0: all, 1:active, 2:finger, 3:passive, 4:pocscan, 5:custom; run multiple mode separated by "," (default "0")
-ma string
manual file sync auth key
-mh string
manual file sync host address
-mp string
manual file sync port,default is 5002
-nf
disable file sync
disable file sync (default true)
-p int
worker performance,default is autodetect (0: autodetect,1:high,2:normal)
worker performance,default is autodetect (0:autodetect, 1:high, 2:normal)
-w string
workspace guid for custom task; multiple workspace separated by ","
```
- -c参数:worker并发的任务数量,默认为3。
- -mh、mp及ma参数:Server文件同步的host、port及authKey,如果同时指定这三个参数,将执行文件同步功能,从server同步文件到worker。
- nf参数:指定参数则禁用文件同步功能。
- -p参数:worker的的性能模式,默认为0;根据worker的性能模式(1:高性能,2:普通)不同,在任务的并发线程数会有所区别;参数为0则自动判断,判断规则为CPU>=4核、内存>=4G为高性能模式。
- -m worker执行的任务类型
- -w worker执行自定义任务(-m 5)时,自定义任务所在的工作空间GUID
2、Goby的服务端部署模式,需在thirdparty/goby目录下运行:(Docker已自动运行)
#### 2、Goby的服务端部署模式
需在thirdparty/goby目录下运行:(Docker已自动运行)
```bash
./goby-cmd-linux -mode api -bind 127.0.0.1:8361 -apiauth goby:goby
```
Expand All @@ -347,3 +354,61 @@ pocscan:
- 除了本地部署外,可将goby远程部署。
- goby同时只能并发执行一个扫描任务,因此多个任务下worker会查找配置文件中空闲可用的goby,并通过sleep的方式每隔一定间隔测试是否可用。
- 如果goby不可用,goby任务将一直显示执行中,不会被自动结束。
#### 3、worker任务模式
Nemo将任务分为5种类型,worker启动时通过参数-m指定worker执行的任务类型,可以指定一种或多种任务类型;参数分别用1-5,如果为0则表示可执行类型为1-4的任务。
对自定义的任务:-m 5,需要用-w参数指定任务关联的工作空间GUID。
任务类型及数值:
- 1:Active,主动扫描类的任务
- 2:Finger,获取指纹类的任务
- 3:Passive,被动收集信息的任务
- 4:Pocscan,漏洞验证类的任务
- 5:Custom,自定义任务
- 0:同时包含1-4种类型的任务
| |1:Active|2:Finger|3:Passive|4:Pocscan|
| --- | --- | --- | --- | --- | ---
|portscan|| | | |
|batchscan|| | | |
|domainscan|| | | |
|subfinder| | || |
|subdomainbrute| | || |
|subdomaincrawler|| | | |
|iplocation| | || |
|fofa| | || |
|quake| | || |
|hunter| | || |
|xray| | | ||
|dirsearch| | | ||
|nuclei| | | ||
|goby| | | ||
|icpquery| | || |
|whoisquery| | || |
|fingerprint| | | | |
|xportscan|| | | |
|xonlineapi| | || |
|xfofa| | || |
|xquake| | || |
|xhunter| | || |
|xdomainscan| | || |
|xsubfinder| | || |
|xsubdomainbrute| | || |
|xsubdomaincralwer|| | | |
|xfingerprint| || | |
|xxray| | | ||
|xnuclei| | | ||
|xgoby| | | ||
|xorgscan| | | ||
Worker默认启动时参数为-m 0,将会执行所有类型(除custom)的任务;分布式部署的vps可以合理分配资源,如专用于扫描类vps:-m 1,被动信息搜索指纹可以同时执行任务:-m 2,3。
如果需要使用自定义任务,需进行以下配置:
- 在Config-自定义任务工作空间配置中,指定工作空间的GUID并保存;格式为:GUID 备注,如:1a0ca919-7960-4067-9981-9abcb4eaa735 172网段;
- 在命令行启动worker时,指定任务模式为-m 5,同时-w参数指定在上一步中配置的工作空间的GUID;
- 在Nemo的IP或Domain列表视图中,切换到第一步配置的工作空间,在新建任务或XScan任务后,只有启动命令为:-m 5 -w 1a0ca919-7960-4067-9981-9abcb4eaa735的worker才会收到任务并执行。
## 分布式部署的典型架构
![nemo_vps](./image/nemo_vps.png)
6 changes: 3 additions & 3 deletions docs/question.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Nemo常见问题

##v1.0
##v1.1

2023-7-8
2023-8-3

### 1、Docker安装后无法使用

Expand All @@ -20,7 +20,7 @@ Nemo集成的subfinder只支持不需要第三方Key的平台的API接口。

### 4、能否支持资产的导出

目前Nemo提供了简单的统计功能(用于将收集的信息用于其它工具),还没有直接将资产导出的功能
v2.10后,Nemo新增导出功能,根据当前列表视图的搜索条件,将IP或Domain资产导出为csv格式文件;同时提供统计功能,结合导出和统计方便进一步开展渗透测试

### 5、能否支持Arm平台

Expand Down
Loading

0 comments on commit e51ecda

Please sign in to comment.