add scanPort template , detectScanDest
This commit is contained in:
51
scan/base.go
51
scan/base.go
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user