mirror of
https://github.com/reconurge/flowsint.git
synced 2026-07-15 21:23:01 -05:00
[PR #183] [MERGED] feat(types,enrichers): add Technology type and tech_detect transformer #3439
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/reconurge/flowsint/pull/183
Author: @rachit367
Created: 6/9/2026
Status: ✅ Merged
Merged: 6/20/2026
Merged by: @dextmorgn
Base:
main← Head:feat/technology-type-and-tech-detect📝 Commits (1)
63a97a7feat(types,enrichers): add Technology type and tech_detect transformer📊 Changes
4 files changed (+305 additions, -0 deletions)
View changed files
➕
flowsint-enrichers/src/flowsint_enrichers/website/to_technologies.py(+133 -0)➕
flowsint-enrichers/tests/enrichers/test_tech_detect.py(+112 -0)📝
flowsint-types/src/flowsint_types/__init__.py(+3 -0)➕
flowsint-types/src/flowsint_types/technology.py(+57 -0)📄 Description
What
Adds application-level technology fingerprinting as requested in #59:
Technologytype, andtech_detecttransformer (Website→Technology) built on the existinghttpxtool.Closes #59
Why
Flowsint already models infrastructure (
ip,port,website,ssl_certificate). This extends coverage into the application layer — what software/frameworks a site runs — which complements port/website data and lays groundwork for stack mapping and vuln correlation (the benefits called out in the issue).Changes
flowsint-types/technology.py(new) —Technology(name, version, category, source), modeled on the existingWebTrackertype. Registered via@flowsint_type, exported fromflowsint_types/__init__.py, and added toTYPE_TO_MODEL.from_stringaccepts both bare names (nginx) and wappalyzer-stylename:versionpairs (PHP:8.1).flowsint-enrichers/website/to_technologies.py(new) —TechDetectEnricher(name = "tech_detect"), auto-registered. InputWebsite, outputTechnology. Runs the existingHttpxToolwith-td(httpx's wappalyzer-based tech detection), reads thetechfield from the JSON output, de-dupes per probe, and links each technology to the source website with aUSES_TECHNOLOGYrelationship. Follows the established tool-backed enricher pattern (e.g.website_to_webtrackers,ip_to_ports).The
techJSON field and the-tdflag are per httpx'srunner.Resultstruct (Technologies []string+"json:\"tech\""+`).Testing
Tests cover the
Technologytype (label,from_string, registry membership), the tech-entry parser, enricher registration/metadata, andscan()with thehttpxDocker tool mocked — so the suite needs no Docker daemon.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
[PR #183] feat(types,enrichers): add Technology type and tech_detect transformerto [PR #183] [MERGED] feat(types,enrichers): add Technology type and tech_detect transformer