Skip to content
A pure implementation of Nmap for Nim
Branch: master
Clone or download
Latest commit 9bd5c2e Feb 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
CHANGELOG.md
LICENSE
README.md
nmap.nimble

README.md

nim-nmap v0.1.4

A pure implementation of Nmap for Nim.

Documentation will be added as this project progresses as well as commented sections in the source code.

Commands

  • nmapIface()
    • Non-functional in current state
    • Native implementation without ExecCmd
  • nmapScan(host: string, Port(port: int)
  • nmapScan(host: string, Port(port: int, aType: Domain, sType: SockType, nType: Protocol)
  • nmapHostDisc()
    • Determines local router and host on network
  • portList.add(port: int)

Arguments

  • Host
    • IP Address
  • Port
    • 0 - Custom ports using portList
    • SSH - 22
    • TELNET 23
    • HTTP - 80
    • HTTPS - 443
    • int - any integer
  • Domain
    • IPv4
    • IPv6
  • SockType
    • STREAM
    • DGRAM
    • SRAW
    • SEQPACKET
  • Protocol
    • TCP
    • UDP
    • RAW
    • ICMP

Roadmap to v1.0

[x] Basic socket support [x] Basic Port Scanner [ ] Read packet information(i.e. TTL, WindowSize) [ ] Test if Ports are filtered or not [x] Host Discovery [ ] OS Fingerprinting [ ] nmapIface() [x] NetMask support for host: string

Examples

NetMask via createMask()

import nmap
createMask("192.168.1.1/24") 
for i in netMask:
    nmapScan(i, 80)

Result will be something like this.

192.168.1.1 Connected succesfully on 80
192.168.1.2 No route to host on 80
192.168.1.3 No route to host on 80

nmapHostDisc()

import nmap
for p in countup(1, 999):
    portList.add(p)
    nmapHostDisc()

or

import nmap
portList.add(22)
nmapHostDisc()

Bugs in portList with Host Discovery

Adding too many ports(700+) results in too many files open.

Looking for developers

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.