genmai/main.go

98 lines
3.3 KiB
Go
Raw 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.

package main
import (
"main/src/genmai/ArgParser"
"main/src/genmai/FrameWorkCheck"
"fmt"
"flag"
"log"
"strconv"
"strings"
genmai "main/src/genmai"
)
type Vul struct{
ParserNum int //协程数
System string //执行系统漏洞检测
Web string //Web漏洞检测
Kernel string //内核漏洞检测
Fuzz string //Fuzz
BaseLine string //基线检测
Update string //更新软件
Docs string //生成报告
PoolStatNum int //启动协程任务数
IP string //web 制定IP
MD string //生成MD文件
RemoteAssessment string //远程检测
SSHHost string //主机IP
SSHUser string //用户名
SSHPassword string //密码
}
func main(){
var vul Vul //定义vul
vul.PoolStatNum =0
//开始日志打印日志
genmai.LogInit()
//检测系统架构
frameWork:=FrameWorkCheck.FwCheck()
if len(frameWork) > 0{
log.Println("frameWork sure")
}else{
return
}
//识别参数,执行模块
flag.IntVar(&vul.ParserNum, "poolNums", 0, "设置协程的数量默认数量为0最大数量为200")
flag.StringVar(&vul.Web, "web", "false", "使用web漏洞的验证模块可联合其他模块使用")
flag.StringVar(&vul.IP, "ip", "false", "设置ip可设置ip段进行验证")
flag.StringVar(&vul.System, "system", "false", "使用系统漏洞的验证模块,可联合其他模块使用")
flag.StringVar(&vul.Kernel, "kernel", "false", "使用内核漏洞的验证模块,可联合其他模块使用")
flag.StringVar(&vul.BaseLine, "baseline", "false", "使用基线检测模块,可联合其他模块使用")
//远程模块参数
RA := flag.Bool("RA", false, "使用远程检测,只能单独使用模块")
flag.StringVar(&vul.SSHHost, "H", "false", "远程检测指定host")
flag.StringVar(&vul.SSHUser, "user", "false", "远程检测指定用户")
flag.StringVar(&vul.SSHPassword, "passwd", "false", "远程登录密码")
All := flag.Bool("all", false, "只扫描除web模块外的所有模块的所有poc不可联合其他参数使用")
Update := flag.Bool("update", false, "更新程序到最新版本,不可联合其他参数使用")
flag.Parse()
//初始化bool值
sAll :=strconv.FormatBool(*All)
vul.Update=strconv.FormatBool(*Update)
vul.RemoteAssessment=strconv.FormatBool(*RA)
//是否开启远程检测
if vul.RemoteAssessment=="true"{
checkResult:=ArgParser.RemoteArgParser(vul.SSHHost,vul.SSHUser,vul.SSHPassword)
checkResult=strings.TrimSpace(checkResult)
if checkResult=="true"{
fmt.Println("不允许登录root/administrator用户进行验证")
log.Println("不允许登录root/administrator用户进行验证")
}else if checkResult=="false"{
ArgParser.ParameterParser(vul.System,vul.Kernel,vul.Web,vul.BaseLine,sAll,vul.PoolStatNum,vul.ParserNum,vul.Update,vul.IP)
}
}else{
ArgParser.ParameterParser(vul.System,vul.Kernel,vul.Web,vul.BaseLine,sAll,vul.PoolStatNum,vul.ParserNum,vul.Update,vul.IP)
}
return
///////////////////////////////
// test "main/src/genmai"
genmai.Test()
// config := genmai.NewConfig()
fmt.Println(">>")
//fmt.Println(config["id"])
return
}