add scanPort template , detectScanDest

This commit is contained in:
MaineK00n
2020-10-14 17:29:15 +09:00
parent 3112cbe886
commit ad67c5bd15
2 changed files with 59 additions and 0 deletions

View File

@@ -729,6 +729,57 @@ func (l *base) detectWpPlugins() ([]models.WpPackage, error) {
return plugins, nil
}
func (l *base) scanPorts() (err error) {
dest := l.detectScanDest()
fmt.Printf("%s\n", dest)
return nil
}
func (l *base) detectScanDest() []string {
portsMap := map[string][]string{}
for _, p := range l.osPackages.Packages {
if p.AffectedProcs == nil {
continue
}
for _, proc := range p.AffectedProcs {
if proc.ListenPorts == nil {
continue
}
for _, port := range proc.ListenPorts {
portsMap[port.Address] = append(portsMap[port.Address], port.Port)
}
}
}
d := []string{}
for i, ports := range portsMap {
if i == "*" {
for _, addr := range l.ServerInfo.IPv4Addrs {
for _, port := range ports {
d = append(d, addr+":"+port)
}
}
} else {
for _, port := range ports {
d = append(d, i+":"+port)
}
}
}
m := map[string]bool{}
dest := []string{}
for _, e := range d {
if !m[e] {
m[e] = true
dest = append(dest, e)
}
}
return dest
}
func (l *base) ps() (stdout string, err error) {
cmd := `LANGUAGE=en_US.UTF-8 ps --no-headers --ppid 2 -p 2 --deselect -o pid,comm`
r := l.exec(util.PrependProxyEnv(cmd), noSudo)

View File

@@ -48,6 +48,7 @@ type osTypeInterface interface {
postScan() error
scanWordPress() error
scanLibraries() error
scanPorts() error
scanPackages() error
convertToModel() models.ScanResult
@@ -637,11 +638,18 @@ func GetScanResults(scannedAt time.Time, timeoutSec int) (results models.ScanRes
return nil
}, timeoutSec)
for _, s := range servers {
if err = s.scanPorts(); err != nil {
util.Log.Errorf("Failed to scan Ports: %+v", err)
}
}
hostname, _ := os.Hostname()
ipv4s, ipv6s, err := util.IP()
if err != nil {
util.Log.Errorf("Failed to fetch scannedIPs. err: %+v", err)
}
for _, s := range append(servers, errServers...) {
r := s.convertToModel()
r.ScannedAt = scannedAt