mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dev Toolsevaluationupdated 26 Aug 2026

fscan review

fscan is a Chinese-first internal-network scanner for authorized security testing; an English README and English interface mode are available. It combines host discovery, port and service identification, web fingerprints, weak-credential checks, vulnerability probes, and post-compromise modules in one Go binary.

+34stars / 7d
Verdict

Our fscan run built in 47 seconds and passed all 21 tests in 136 seconds, so the checked Go code has a clean baseline. Use it only inside a documented assessment where its many active modules are an intentional choice and every finding is independently confirmed. Nmap plus a narrower template scanner is safer for teams that do not need credential, persistence, or exploitation features in the same binary.

We ran it

Lab card: what happened when we ran fscanScreenshot of fscan (github.com/shadow1ng/fscan)
Install✓ · 51s213 packages
Build✓ · 47s
Tests✓ · 136s21 passed · 0 failed of 21 (go test)
Repo987 files~97,033 lines of source · 14.5 MB · 3 CI workflows · tests dir

Answers from our run

Does fscan build from source?

Dependencies installed in 51 seconds (213 packages), and the build succeeded in 47 seconds. We cloned commit bf036fd into a clean Debian container with 3 CPUs and no project-specific setup.

Do fscan's tests pass?

Yes: 21 of 21 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use fscan?

Anyone without written authorization for every target: the tool includes password attempts, command execution, persistence, credential access, and trace-cleaning modules.

What are the alternatives to fscan?

Nmap, Naabu, Nuclei. Our fscan run built in 47 seconds and passed all 21 tests in 136 seconds, so the checked Go code has a clean baseline.

Setup4/551-second dependency install and a clean Go build
Docs3/5Detailed Chinese guide with an English translation
Community4/514,450 stars and a same-week release and issue activity
Maturity3/5Broad modules and tests, with current POC and port reports

Who it’s for

Authorized red teams that need one portable binary for initial internal-network mapping.
Chinese-speaking security engineers who can review scan and proof-of-concept output critically.
Lab operators testing detection controls against a wide set of service plugins.
Platform developers embedding task control and progress callbacks through the Go SDK.

Who it’s NOT for

Anyone without written authorization for every target: the tool includes password attempts, command execution, persistence, credential access, and trace-cleaning modules.
Defenders who need findings to be automatically accepted as evidence: issue 605 shows widespread POC expression and request errors in v2.2.1.
Teams requiring English-first support and issue triage: English documentation exists, but the README, releases, and most current issue reports are primarily Chinese.
Scans where one missed port is unacceptable: issues 214 and 503 report open ports that fscan did not detect in specific environments.
Operators who cannot isolate traffic: broad probes, credential checks, and exploit modules can disrupt services or trigger controls.

Setup reality

Our sandbox installed 213 Go packages in 51 seconds. The build passed in 47 seconds, then all 21 Go tests passed in 136 seconds at commit bf036fd.

The basic binary does not need a service account, but targets, ports, timeouts, concurrency, and proxy settings must be scoped. DNSLog checks require an appropriate external service. Credential and exploitation modules need explicit authorization and controlled inputs.

Run it from a segmented assessment host with rate limits, exclusions, and a written target list. Its default scan covers 133 common ports and several active checks. Output needs confirmation with a second tool before remediation or reporting.

One binary crosses from discovery into exploitation

fscan starts like a network inventory tool. It finds live hosts, scans 133 common ports by default, identifies more than 20 service types, and fingerprints web servers, content systems, middleware, WAFs, and CDNs. It accepts IPs, CIDR ranges, domains, URLs, and target files, with exclusions and separate concurrency controls. Results can be written as text, JSON, or CSV. A Go SDK adds pause, resume, task IDs, and progress callbacks for embedding.

The same binary goes far beyond inventory. It can try weak credentials across 28 service types, run web proof-of-concept checks, test unauthenticated databases, execute authenticated SSH commands, and include modules for persistence, credential access, shells, and log clearing. That breadth saves setup time for a trained red team. It also makes the tool inappropriate for routine asset discovery unless dangerous modules are explicitly disabled and execution is bounded by written authorization.

Chinese is the working language, with an English path

The main README, newest release notes, and most open issue discussions are written primarily in Chinese. An English README is linked at the top, and the program can switch its interface between Chinese and English. A non-Chinese operator can learn the core commands, but subtle POC failures and maintainer discussions may require translation. That matters when deciding whether a result is a confirmed vulnerability, a parser error, or an expected timeout.

Documentation lists the default port groups, protocols, build commands, output formats, and safety disclaimer. It also labels the included lab as unfinished and describes SDK, plugin, and lightweight-client items under a roadmap. Those statements are aspirations, not shipped guarantees. Use the documented current commands and verify the binary's help output for the exact release rather than planning around roadmap entries.

What happened when we ran it

Our sandbox downloaded 213 Go packages in 51 seconds. The build completed in 47 seconds. go test then reported 21 passed and 0 failed in 136 seconds. We tested commit bf036fd in a fresh unprivileged Debian container with Go 1.24, 3 CPUs, 8 GB of RAM, and no secrets. The checkout contained 987 files and roughly 97,033 lines of source.

The repository had 3 CI workflow files and a tests directory, with no Dockerfile at the root. The successful build shows the source produced a binary in that environment. The 21 passing tests establish a clean automated baseline for the measured commit. We did not scan a network, attempt credentials, execute a POC, or measure packet rate and detection accuracy. No throughput or coverage conclusion follows from the 136-second test run.

v2.2.1 repairs missed ports but has a new POC report

Release 2.2.1 arrived on August 25, 2026. Its notes say the default global timeout was removed to prevent large or slow scans from ending early, while -gt remains available for an explicit limit. The release also says adaptive timeout behavior was changed after high-concurrency scans missed open ports. Other fixes cover SSH banners, VNC password behavior, Telnet validation, RDP crashes, TLS identification, and result cleanup on abnormal exit.

One day later, issue 605 reported widespread POC scan errors using the 2.2.1 Linux x64 binary. The supplied output includes expression compilation failures, undeclared helper names, and request timeouts. That mixture does not identify one cause. It does show that a full scan can generate substantial error output alongside normal findings. Operators need to separate a negative result from a check that never executed successfully.

Port results need confirmation from another scanner

Issue 214 reports seeing a target return SYN-ACK packets while fscan failed to list the port during a full-port scan. Issue 503 compares releases and says open ports were missed on a local machine and customer assets. Both reports predate 2.2.1, whose release notes describe fixes for missed ports under concurrency. They remain open, so a buyer should reproduce the relevant scan shape rather than assume the latest change covers every cause.

Confirm important ports with Nmap, a direct protocol client, or packet capture. Do the same for vulnerabilities: a POC result should carry the request, response, affected version, and a manual validation step. fscan's own options for rate, packet totals, thread counts, and timeouts help control a run, but an aggressive configuration can still overload a fragile service or hide results behind timeouts.

Active modules deserve least-privilege handling

Run fscan from a dedicated assessment host with a versioned target file and explicit exclusions. Use a low-privilege network position first. Disable password attempts unless the rules of engagement permit them, and do not package the persistence or credential modules into general IT inventory jobs. Logs and raw output should be retained even when a finding is later rejected, because they show which checks ran and which failed.

The MIT license is permissive, while the README's disclaimer limits intended use to legally authorized enterprise security work. Technical access is not authorization. In many environments, scanning a neighboring segment, trying a default password, or invoking an exploit changes the legal and operational risk sharply. A single all-in-one binary makes those transitions easy to miss in a rushed command.

August activity supports testing, not automatic trust

GitHub showed 14,450 stars, 14 combined issues and pull requests, and a last push on August 25, 2026. Version 2.2.1 was published the same day. The small open queue and recent release suggest active maintenance, while issue 605 shows that current users are still finding breakage immediately after release. Both facts belong in the adoption decision.

fscan is useful when a skilled team wants a portable internal assessment toolkit and accepts responsibility for every active check. Our 47-second build and 21 passing tests make the source easy to trial. The broad privilege and exploitation surface, Chinese-first support, and unresolved accuracy reports keep it out of routine administrator workflows. Start with discovery-only behavior in a lab, then enable modules one at a time under an approved test plan.

Alternatives

ProjectWhat it isPick it when
NmapThe established network mapper for host discovery, port scanning, service detection, and scripts.pick this instead when mature documentation, precise scan control, and broad third-party knowledge matter most.
NaabuA focused Go port scanner designed to feed other security tools.pick this instead when fast port discovery is enough and you want each later step separated.
Nuclei gh↗A template-driven scanner for known exposures and misconfigurations.pick this instead when repeatable template checks and a larger template ecosystem matter more than one-binary internal reconnaissance.

What people are saying

  1. [github-trending] shadow1ng/fscan

Sources

  1. fscan README
  2. fscan repository metadata
  3. fscan v2.2.1 release
  4. v2.2.1 POC error report
  5. Missed port report
  6. Version comparison port report

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →