nemo_go icon indicating copy to clipboard operation
nemo_go copied to clipboard

想请教一下,这个前端要怎么修改或编写?

Open shadow1ng opened this issue 2 years ago • 9 comments

shadow1ng avatar Nov 20 '21 03:11 shadow1ng

是用哪个框架写的前端嘛?

shadow1ng avatar Nov 20 '21 03:11 shadow1ng

实在抱歉,不擅长前端,用的是传统的beego+模板的方式(Vali Admin的主题)。之前也想做前后端分离(Vue),因为学习成本和时间的原因放弃。

hanc00l avatar Nov 20 '21 10:11 hanc00l

func InitDB()  {
	GlobalDB = GetDB()
	err := GlobalDB.AutoMigrate(&Task{}, &Domain{}, DomainAttr{}, DomainMemo{}, Ip{}, IpAttr{}, IpColorTag{}, IpMemo{}, Organization{}, Port{}, PortAttr{}, PortInfo{}, Task{}, Vulnerability{})
	if err != nil {
		log.Fatalf("db.Setup err: %v", err)
	}
}

这个函数可以初始化数据库,可以代替手动导入nemo.sql。 师傅的test.go真多,用得真爽

shadow1ng avatar Dec 01 '21 09:12 shadow1ng

@shadow1ng 最近在考虑完善一些功能,包括:重构组织这一块,通过爱企查等接口获取企业的相关信息,将域名和IP进行关联;引入其它一些比较好的指纹库完善指纹信息;域名的CDN、IP的云服务等识别和标记。最近在实战中突然想到,如果fscan能输出JSON的扫描结果,导入到nemo中是不是更妙?

hanc00l avatar Dec 01 '21 14:12 hanc00l

我可以试着弄弄,json output。然后还有个地方可以优化,whatweb、Wappalyzer、httpx都得访问 /,加上截图,得访问四次了。前面3个可以合并一下。http访问后获取到的数据包可以直接放入Wappalyzer识别,不需要重新访问web

shadow1ng avatar Dec 01 '21 14:12 shadow1ng

我看了下,数据库查询这块,好像查询得有点慢,估计是循环的东西太多了,得简化一下,有时候得查询一分钟,才能出结果。

shadow1ng avatar Dec 01 '21 14:12 shadow1ng

端口这块,字段数可以弄多一点,一行能存多点东西,把httpx、Wappalyzer的内容放到一行的话,能直观一点,不然很多重复数据

type Port struct {
	Id             int       `gorm:"primaryKey"`
	IpId           int       `gorm:"column:ip_id"`
	PortNum        int       `gorm:"column:port"`
	Status         string    `gorm:"column:status"`

	Ip         	   string    `gorm:"column:ip"`
	App            string    `gorm:"column:App"`       //指纹信息
	Title          string    `gorm:"column:title"`
	Service        string    `gorm:"column:service"`
	Protocol       string    `gorm:"column:protocol"`  //http或https
	TlsInfo        string    `gorm:"column:tlsinfo"`   //保留tls证书信息
	Waf            string    `gorm:"column:Waf"`
	Cdn            string    `gorm:"column:cdn"`


	CreateDatetime time.Time `gorm:"column:create_datetime"`
	UpdateDatetime time.Time `gorm:"column:update_datetime"`
}

shadow1ng avatar Dec 01 '21 14:12 shadow1ng

可以用Http+数据包传入Wappalyzer代替httpx 访问+Wappalyzer访问

resp,err := req.Get(Url)
	if err != nil{
		return
	}
	data := resp.Content()
	wappalyzerClient, err := wappalyzer.New()
	fingerprints := wappalyzerClient.Fingerprint(resp.R.Header, data)

shadow1ng avatar Dec 01 '21 14:12 shadow1ng

之前主要是把一些基本功能和想法实现,现在的确是还有很多地方可以完善和优化。

hanc00l avatar Dec 01 '21 15:12 hanc00l