Portmantool - Port scanning and monitoring tool

portmantool

Port scanning and monitoring tool

Components

runner

while true
do
	run.sh <nmap args...> &
	sleep <scan interval>
	wait $!
done

scanalyzer

This program receives scan reports from the runner and imports them into a database.

The API provides endpoints for retrieving scan results as well as updating the expected state. A Prometheus /metrics endpoint provides metrics useful for alerting.

v1 Endpoints

Path (excl. /v1) Method Description
/diff GET Compute difference between current and expected state
/diff/{id1}[/{id2}] GET Compute difference between scans {id1} and {id2}, if it is given, or the expected state, otherwise
/expected GET Get expected state
/expected PATCH Update expected state
/hello * hello
/run[/{id}] POST (NYI) Run scanner {id} or, in case {id} is not given, all scanners immediately
/scans GET Get list of scan timestamps
/scans[/{keep}] DELETE Delete entries that do not contribute to the current state and, optionally, are older than {keep} (UNIX timestamp)
/scan POST Upload a new scan report
/scan/{id} GET Get result of scan at timestamp {id}

Metrics

Name Description
portmantool_last_import (NYI) Timestamp of last successful import
portmantool_ports Number of unique host/protocol/port combinations in database (labels: host, protocol, state)
portmantool_ports_rogue Number of ports with a state different from the expected (labels: host, protocol)
portmantool_imports_failed_total Total number of failed imports since server was running
portmantool_
Labels
  • host (e.g. "10.23.42.127", "host42.bitsbeats.io")
  • protocol (e.g. "tcp", "udp")
  • state (e.g. "open", "closed")

web

  • Show diff between expected and current state, updated every 5 seconds
  • Show expected state, add and update independent of diff
  • Show (list of) scan results, prune obsolete

Planned

  • Compare scan(s) to current state (backend currently compares to expected state)/each other
  • Show "no diff found" if no entries are returned
  • Show date-time of last successful import
  • Filter tables

Backlog

  • Edit expected state
    • Delete (needs implementation in backend)

Database

see db/types.sql, db/schema.sql

License

Copyright 2020-2022 Thomann Bits & Beats GmbH

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Owner
Similar Resources

Gryffin is a large scale web security scanning platform.

Gryffin (beta) Gryffin is a large scale web security scanning platform. It is not yet another scanner. It was written to solve two specific problems w

Dec 27, 2022

A Large killer focused on intranet scanning

A Large killer focused on intranet scanning

FscanX 其实FscanX的灵感来源于fscan和LodanGo这两个开源项目,首先不得不说fscan和LadonGo两个都是非常优秀的内网扫描器。并且其独自的特色也让其在内网扫描器领域独占鳌头。其中LadonGo的插件式让其在扫描时更加专注,而fscan的傻瓜式则让其对内网的信息搜集更加高效。

Dec 31, 2021

WIP. Converts Azure Container Scan Action output to SARIF, for an easier integration with GitHub Code Scanning

container-scan-to-sarif container-scan-to-sarif converts Azure Container Scan Action output to Static Analysis Results Interchange Format (SARIF), for

Jan 25, 2022

Wrapper to communicate with the wifi scanning protocol on Brother MFC-J430W

Wrapper to communicate with the wifi scanning protocol on Brother MFC-J430W

Brother MFC-J430W protocol wrapper (wifi scanner) Reasons Brother MFC-J430W has already scanner driver and you can download here but that are prebuilt

Dec 20, 2022

Govuln - How to patch a vulnerability indirectly lifted into a Go Lang application in a manner which satsfies Twistlock scanning

govuln Desire to learn how to patch a vulnerability indirectly lifted into a Go

Feb 2, 2022

A port scan and service weakpass brute tool build by golang.

A port scan and service weakpass brute tool build by golang.

A port scan and service weakpass brute tool build by golang.

Jan 5, 2023

This is simple repositry use to detect which port is open. It is a custom tool built in GO LANG.

dynamic-port-scanning-in-GO-lang This is simple repositry use to detect which port is open. It is a custom tool built in GO LANG. This is CUSTOM tool

Jan 25, 2022

Rekor-sidekick - Rekor transparency log monitoring and alerting

🔍 Rekor Sidekick Rekor Sidekick monitors a Rekor signature transparency log and

Nov 26, 2022
Related tags
A fully self-contained Nmap like parallel port scanning module in pure Golang that supports SYN-ACK (Silent Scans)

gomap What is gomap? Gomap is a fully self-contained nmap like module for Golang. Unlike other projects which provide nmap C bindings or rely on other

Dec 10, 2022
Go-basic-port-scanner: Scanning of TCP ports only
Go-basic-port-scanner: Scanning of TCP ports only

go-basic-port-scanner Scanning of TCP ports only. Usage git clone https://git

Jan 22, 2022
Health-go - Web based app for health tracking and monitoring (Go port)

Health Web based app for health tracking and monitoring. Work in progress. Installation Clone the repository: git clone [email protected]:jonathantorr

Dec 31, 2021
EarlyBird is a sensitive data detection tool capable of scanning source code repositories for clear text password violations, PII, outdated cryptography methods, key files and more.
EarlyBird is a sensitive data detection tool capable of scanning source code repositories for clear text password violations, PII, outdated cryptography methods, key files and more.

EarlyBird is a sensitive data detection tool capable of scanning source code repositories for clear text password violations, PII, outdated cryptograp

Dec 10, 2022
Nuclei is a fast tool for configurable targeted vulnerability scanning based on templates offering massive extensibility and ease of use.
Nuclei is a fast tool for configurable targeted vulnerability scanning based on templates offering massive extensibility and ease of use.

Fast and customisable vulnerability scanner based on simple YAML based DSL. How • Install • For Security Engineers • For Developers • Documentation •

Dec 30, 2022
🌘🦊 DalFox(Finder Of XSS) / Parameter Analysis and XSS Scanning tool based on golang
🌘🦊 DalFox(Finder Of XSS) / Parameter Analysis and XSS Scanning tool based on golang

Finder Of XSS, and Dal(달) is the Korean pronunciation of moon. What is DalFox ?? ?? DalFox is a fast, powerful parameter analysis and XSS scanner, bas

Jan 5, 2023
ARP spoofing tool based on go language, supports LAN host scanning, ARP poisoning, man-in-the-middle attack, sensitive information sniffing, HTTP packet sniffing
ARP spoofing tool based on go language, supports LAN host scanning, ARP poisoning, man-in-the-middle attack, sensitive information sniffing, HTTP packet sniffing

[ARP Spoofing] [Usage] Commands: clear clear the screen cut 通过ARP欺骗切断局域网内某台主机的网络 exit exit the program help display help hosts 主机管理功能 loot 查看嗅探到的敏感信息

Dec 30, 2022
A FreeSWITCH specific scanning and exploitation toolkit for CVE-2021-37624 and CVE-2021-41157.

PewSWITCH A FreeSWITCH specific scanning and exploitation toolkit for CVE-2021-37624 and CVE-2021-41157. Related blog: https://0xinfection.github.io/p

Nov 2, 2022
The dynamic infrastructure framework for everybody! Distribute the workload of many different scanning tools with ease, including nmap, ffuf, masscan, nuclei, meg and many more!
The dynamic infrastructure framework for everybody! Distribute the workload of many different scanning tools with ease, including nmap, ffuf, masscan, nuclei, meg and many more!

Axiom is a dynamic infrastructure framework to efficiently work with multi-cloud environments, build and deploy repeatable infrastructure focussed on

Dec 30, 2022