genmai/main.go

86 lines
3.1 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"
"fmt"
"flag"
"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(){
//检测架构是否符合漏扫架构
// result:=Actuator.OsCheck()
// if result=="flase"{
// fmt.Println("不支持其他架构")
// return
// }
var vul Vul
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", "使用基线检测模块,可联合其他模块使用")
var RA = flag.Bool("RA", false, "使用远程检测,只能单独使用模块")
flag.StringVar(&vul.SSHHost, "H", "false", "远程检测指定host")
flag.StringVar(&vul.SSHUser, "user", "false", "远程检测指定用户")
flag.StringVar(&vul.SSHPassword, "passwd", "false", "远程登录密码")
var All = flag.Bool("all", false, "只扫描除web模块外的所有模块的所有poc不可联合其他参数使用")
var Update = flag.Bool("update", false, "更新程序到最新版本,不可联合其他参数使用")
vul.PoolStatNum =0
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用户进行验证")
}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
}