justintimperio / gomap Goto Github PK
View Code? Open in Web Editor NEWA fully self-contained Nmap like parallel port scanning module in pure Golang that supports SYN-ACK (Silent Scans)
License: MIT License
A fully self-contained Nmap like parallel port scanning module in pure Golang that supports SYN-ACK (Silent Scans)
License: MIT License
Additionally, for my solution to #11 I expanded the "slow" scan (i.e. fastscan==false) option so it scans all 65536 ports. This does take longer (6.5 minutes in my case) but that is still short enough to be useful. So maybe there are three options instead of two:
fastscan: 72 common ports
mediumscan: 3000+ less common ports
fullcan: all 65536 possible ports
I've created a local version that modifies func (results *IPScanResult) String() string
so that it sorts the result table by port number.
I find this handy for scanning a large list of open ports.
I can supply a PR if you like.
Just a cursory look at the implementation of the code, I reckon the UDP port scan would not work just because of how UDP protocol works. If the the code dials the target with UDP protocol e.g. conn, err = net.Dial("udp", raddr)
, there will not be any error message from the target server just because UDP is connectionless. A server will only reply when a "meaningful" packet is sent to the UDP port on the target. For more info - https://serverfault.com/a/416269
By the current way of checking for open/close UDP port i.e. presence of error dialing the target, all UDP ports would be open. Which defeats the purpose of a port scan.
Alternatively, can refer to how nmap
implements its UDP probe - https://nmap.org/book/scan-methods-udp-scan.html
is it possible to support proxy dialer instead? for HTTP and SOCKS5
Brother, can this support multithreading
In my local copy I've made modifications so that the portResult distinguishes between these three cases:
Connect OK - LISTEN process on the other end made a connection
Timeout - Firewall blocked connection
Connection Refused - Firewall did not block connection, but no LISTENing process on the other end. Thus this port could be used for a new server process
I find this handy because I don't want to have to open new ports in the firewall, and so I need to see what ports are open without having to run a listening process on all ports.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.