chux0r / netbang

Scrappy scanner written in Go. Exploring the relevance of "scanning" in the new realm, what redteams need, and what methods can get us what we need quickly and, if at all possible, silently.
https://github.com/chux0r/netbang
GNU General Public License v2.0
2 stars 1 forks source link

tcp/udp --portsfile does not seem to work. ALSO: UDP defaults to TCP list #24

Closed chux0r closed 5 months ago

chux0r commented 5 months ago

It uses the default list. In fact, looks like it's using the default port list for TCP.

echo "53,161,10000" > ./ports.tmp && ./netbang --proto udp --portsfile ./ports.tmp -t 500 127.0.0.1 && rm ./ports.tmp

Bang target: [127.0.0.1], Portcount: [65]

UDP portbangers unleashed...💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀 Jobs run: 65 127.0.0.1 Scan Results

(ports used in this job: ===== 8443] 20] - 21] - 22] - 23] - 25] - 43] - 53] - 67] - 68] - 69] - 79] - 80] - 989] 111] 113] 119] 135] 137] 139] 143] 177] 179] 389] 443] 445] 464] 512] 513] 514] 515] 546] 547] 587] 593] 636] 853] 873] 2484] 990] 993] 995] 1270] 1337] 1433] 1434] 1521] 2222] 2323] 2375] 2483] 5432] 3306] 3333] 3389] 110] 5060] 5800] 5900] 8008] 8080] 8081] 8088] 88] - 5061

chux0r commented 5 months ago

Bug found during testing. See #27

chux0r commented 5 months ago

Validated --ports -p works as intended with in-scope numbers. out-of-scope numbers are passed (see issue #27) and legal named lists are rejected

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,111,10000 --debug scanme.org
DEBUG: buildPortsList(): Process input [ 80,111,10000 ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing " 80,111,10000 "
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]

DEBUG: parsePortsCdl() Port range def string:  80,111,10000

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  []

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): Resulting PortList [ [80 111 10000] ]

Bang target: [scanme.org], Portcount: [3]
=====================================================
TCP portbangers unleashed...😎💀💀
Jobs run: 3
scanme.org Scan Results
================================================================================
[scanme.org:80] -->     [😎] OPEN
[scanme.org:10000] -->  [💀] ERROR: dial tcp 45.33.32.156:10000: connect: connection refused
[scanme.org:111] -->    [💀] ERROR: dial tcp 45.33.32.156:111: i/o timeout

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,tcp_short,111,10000, --debug 127.0.0.1
DEBUG: buildPortsList(): Process input [ 80,tcp_short,111,10000, ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing " 80,tcp_short,111,10000, "
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ tcp_short ]
DEBUG: parsePortsCDL(): [ tcp_short ] result: NAN
DEBUG: parsePortsCDL():  Item [ tcp_short ], is a non-number, non-range string. Assumed Named List. Returning for eval.
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]
DEBUG: parsePortsCDL(): Evaluating item [  ]
DEBUG: parsePortsCDL(): [  ] result: NAN
DEBUG: parsePortsCDL():  Item [  ], is a non-number, non-range string. Assumed Named List. Returning for eval.

DEBUG: parsePortsCdl() Port range def string:  80,tcp_short,111,10000,

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  [tcp_short ]

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): Add ports in named list [ [tcp_short ] ] to ThisScan...Portlist
2024/03/28 15:22:42 Error: Undefined list given: ""
chux0r commented 5 months ago

Trailing comma in -p args causes eval to add in empty string as an arg, which then fails. Removed comma from last to verity:

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,tcp_short,111,10000 --debug 127.0.0.1
DEBUG: buildPortsList(): Process input [ 80,tcp_short,111,10000 ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing " 80,tcp_short,111,10000 "
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ tcp_short ]
DEBUG: parsePortsCDL(): [ tcp_short ] result: NAN
DEBUG: parsePortsCDL():  Item [ tcp_short ], is a non-number, non-range string. Assumed Named List. Returning for eval.
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]

DEBUG: parsePortsCdl() Port range def string:  80,tcp_short,111,10000

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  [tcp_short]

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): Add ports in named list [ [tcp_short] ] to ThisScan...Portlist
DEBUG: buildPortsList(): Resulting PortList [ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ]

Bang target: [127.0.0.1], Portcount: [65]
=====================================================
TCP portbangers unleashed...💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Jobs run: 65
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:119] -->     [💀] ERROR: dial tcp 127.0.0.1:119: connect: connection refused
[127.0.0.1:113] -->     [💀] ERROR: dial tcp 127.0.0.1:113: connect: connection refused
[127.0.0.1:111] -->     [💀] ERROR: dial tcp 127.0.0.1:111: connect: connection refused
[127.0.0.1:110] -->     [💀] ERROR: dial tcp 127.0.0.1:110: connect: connection refused
[127.0.0.1:88] -->      [💀] ERROR: dial tcp 127.0.0.1:88: connect: connection refused
[127.0.0.1:80] -->      [💀] ERROR: dial tcp 127.0.0.1:80: connect: connection refused
[127.0.0.1:79] -->      [💀] ERROR: dial tcp 127.0.0.1:79: connect: connection refused
[127.0.0.1:69] -->      [💀] ERROR: dial tcp 127.0.0.1:69: connect: connection refused
[127.0.0.1:68] -->      [💀] ERROR: dial tcp 127.0.0.1:68: connect: connection refused
[127.0.0.1:67] -->      [💀] ERROR: dial tcp 127.0.0.1:67: connect: connection refused
[127.0.0.1:53] -->      [💀] ERROR: dial tcp 127.0.0.1:53: connect: connection refused
[127.0.0.1:43] -->      [💀] ERROR: dial tcp 127.0.0.1:43: connect: connection refused
[127.0.0.1:25] -->      [💀] ERROR: dial tcp 127.0.0.1:25: connect: connection refused
[127.0.0.1:23] -->      [💀] ERROR: dial tcp 127.0.0.1:23: connect: connection refused
[127.0.0.1:22] -->      [💀] ERROR: dial tcp 127.0.0.1:22: connect: connection refused
[127.0.0.1:21] -->      [💀] ERROR: dial tcp 127.0.0.1:21: connect: connection refused
[127.0.0.1:20] -->      [💀] ERROR: dial tcp 127.0.0.1:20: connect: connection refused
[127.0.0.1:8443] -->    [💀] ERROR: dial tcp 127.0.0.1:8443: connect: connection refused
[127.0.0.1:1337] -->    [💀] ERROR: dial tcp 127.0.0.1:1337: connect: connection refused
[127.0.0.1:1270] -->    [💀] ERROR: dial tcp 127.0.0.1:1270: connect: connection refused
[127.0.0.1:995] -->     [💀] ERROR: dial tcp 127.0.0.1:995: connect: connection refused
[127.0.0.1:993] -->     [💀] ERROR: dial tcp 127.0.0.1:993: connect: connection refused
[127.0.0.1:990] -->     [💀] ERROR: dial tcp 127.0.0.1:990: connect: connection refused
[127.0.0.1:989] -->     [💀] ERROR: dial tcp 127.0.0.1:989: connect: connection refused
[127.0.0.1:873] -->     [💀] ERROR: dial tcp 127.0.0.1:873: connect: connection refused
[127.0.0.1:853] -->     [💀] ERROR: dial tcp 127.0.0.1:853: connect: connection refused
[127.0.0.1:636] -->     [💀] ERROR: dial tcp 127.0.0.1:636: connect: connection refused
[127.0.0.1:593] -->     [💀] ERROR: dial tcp 127.0.0.1:593: connect: connection refused
[127.0.0.1:587] -->     [💀] ERROR: dial tcp 127.0.0.1:587: connect: connection refused
[127.0.0.1:547] -->     [💀] ERROR: dial tcp 127.0.0.1:547: connect: connection refused
[127.0.0.1:546] -->     [💀] ERROR: dial tcp 127.0.0.1:546: connect: connection refused
[127.0.0.1:515] -->     [💀] ERROR: dial tcp 127.0.0.1:515: connect: connection refused
[127.0.0.1:514] -->     [💀] ERROR: dial tcp 127.0.0.1:514: connect: connection refused
[127.0.0.1:513] -->     [💀] ERROR: dial tcp 127.0.0.1:513: connect: connection refused
[127.0.0.1:512] -->     [💀] ERROR: dial tcp 127.0.0.1:512: connect: connection refused
[127.0.0.1:464] -->     [💀] ERROR: dial tcp 127.0.0.1:464: connect: connection refused
[127.0.0.1:445] -->     [💀] ERROR: dial tcp 127.0.0.1:445: connect: connection refused
[127.0.0.1:443] -->     [💀] ERROR: dial tcp 127.0.0.1:443: connect: connection refused
[127.0.0.1:389] -->     [💀] ERROR: dial tcp 127.0.0.1:389: connect: connection refused
[127.0.0.1:179] -->     [💀] ERROR: dial tcp 127.0.0.1:179: connect: connection refused
[127.0.0.1:177] -->     [💀] ERROR: dial tcp 127.0.0.1:177: connect: connection refused
[127.0.0.1:143] -->     [💀] ERROR: dial tcp 127.0.0.1:143: connect: connection refused
[127.0.0.1:139] -->     [💀] ERROR: dial tcp 127.0.0.1:139: connect: connection refused
[127.0.0.1:137] -->     [💀] ERROR: dial tcp 127.0.0.1:137: connect: connection refused
[127.0.0.1:135] -->     [💀] ERROR: dial tcp 127.0.0.1:135: connect: connection refused
[127.0.0.1:2484] -->    [💀] ERROR: dial tcp 127.0.0.1:2484: connect: connection refused
[127.0.0.1:2483] -->    [💀] ERROR: dial tcp 127.0.0.1:2483: connect: connection refused
[127.0.0.1:2375] -->    [💀] ERROR: dial tcp 127.0.0.1:2375: connect: connection refused
[127.0.0.1:2323] -->    [💀] ERROR: dial tcp 127.0.0.1:2323: connect: connection refused
[127.0.0.1:2222] -->    [💀] ERROR: dial tcp 127.0.0.1:2222: connect: connection refused
[127.0.0.1:1521] -->    [💀] ERROR: dial tcp 127.0.0.1:1521: connect: connection refused
[127.0.0.1:1434] -->    [💀] ERROR: dial tcp 127.0.0.1:1434: connect: connection refused
[127.0.0.1:1433] -->    [💀] ERROR: dial tcp 127.0.0.1:1433: connect: connection refused
[127.0.0.1:3333] -->    [💀] ERROR: dial tcp 127.0.0.1:3333: connect: connection refused
[127.0.0.1:3389] -->    [💀] ERROR: dial tcp 127.0.0.1:3389: connect: connection refused
[127.0.0.1:3306] -->    [💀] ERROR: dial tcp 127.0.0.1:3306: connect: connection refused
[127.0.0.1:8088] -->    [💀] ERROR: dial tcp 127.0.0.1:8088: connect: connection refused
[127.0.0.1:5800] -->    [💀] ERROR: dial tcp 127.0.0.1:5800: connect: connection refused
[127.0.0.1:5432] -->    [💀] ERROR: dial tcp 127.0.0.1:5432: connect: connection refused
[127.0.0.1:8080] -->    [💀] ERROR: dial tcp 127.0.0.1:8080: connect: connection refused
[127.0.0.1:8008] -->    [💀] ERROR: dial tcp 127.0.0.1:8008: connect: connection refused
[127.0.0.1:8081] -->    [💀] ERROR: dial tcp 127.0.0.1:8081: connect: connection refused
[127.0.0.1:5900] -->    [💀] ERROR: dial tcp 127.0.0.1:5900: connect: connection refused
[127.0.0.1:5061] -->    [💀] ERROR: dial tcp 127.0.0.1:5061: connect: connection refused
[127.0.0.1:5060] -->    [💀] ERROR: dial tcp 127.0.0.1:5060: connect: connection refused
chux0r commented 5 months ago

fixed wayward comma problem. New problem: portlist is wrong. tcp_short is parsed and added, but custom ports are not inlcuded. Overwritten? (notice 10000 is not in the resulting scan - also notice comma inclusion does not fubar the scan setup =) )

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,tcp_short,111,10000, --debug 127.0.0.1
DEBUG: buildPortsList(): Process input [ 80,tcp_short,111,10000, ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 80,tcp_short,111,10000, ]
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ tcp_short ]
DEBUG: parsePortsCDL(): [ tcp_short ] result: NAN
DEBUG: parsePortsCDL():  Item [ tcp_short ], is a non-number, non-range string. Assumed Named List. Returning for eval.
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]

DEBUG: parsePortsCdl() Port range def string:  80,tcp_short,111,10000,

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  [tcp_short]

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): Add ports in named list [ [tcp_short] ] to ThisScan...Portlist
DEBUG: buildPortsList(): Resulting PortList [ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ]

Bang target: [127.0.0.1], Portcount: [65]
=====================================================
TCP portbangers unleashed...💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Jobs run: 65
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:22] -->      [💀] ERROR: dial tcp 127.0.0.1:22: connect: connection refused
[127.0.0.1:53] -->      [💀] ERROR: dial tcp 127.0.0.1:53: connect: connection refused
[127.0.0.1:21] -->      [💀] ERROR: dial tcp 127.0.0.1:21: connect: connection refused
[127.0.0.1:43] -->      [💀] ERROR: dial tcp 127.0.0.1:43: connect: connection refused
[127.0.0.1:20] -->      [💀] ERROR: dial tcp 127.0.0.1:20: connect: connection refused
[127.0.0.1:25] -->      [💀] ERROR: dial tcp 127.0.0.1:25: connect: connection refused
[127.0.0.1:8443] -->    [💀] ERROR: dial tcp 127.0.0.1:8443: connect: connection refused
[127.0.0.1:23] -->      [💀] ERROR: dial tcp 127.0.0.1:23: connect: connection refused
[127.0.0.1:69] -->      [💀] ERROR: dial tcp 127.0.0.1:69: connect: connection refused
[127.0.0.1:68] -->      [💀] ERROR: dial tcp 127.0.0.1:68: connect: connection refused
[127.0.0.1:67] -->      [💀] ERROR: dial tcp 127.0.0.1:67: connect: connection refused
[127.0.0.1:80] -->      [💀] ERROR: dial tcp 127.0.0.1:80: connect: connection refused
[127.0.0.1:79] -->      [💀] ERROR: dial tcp 127.0.0.1:79: connect: connection refused
[127.0.0.1:88] -->      [💀] ERROR: dial tcp 127.0.0.1:88: connect: connection refused
[127.0.0.1:873] -->     [💀] ERROR: dial tcp 127.0.0.1:873: connect: connection refused
[127.0.0.1:8088] -->    [💀] ERROR: dial tcp 127.0.0.1:8088: connect: connection refused
[127.0.0.1:2483] -->    [💀] ERROR: dial tcp 127.0.0.1:2483: connect: connection refused
[127.0.0.1:853] -->     [💀] ERROR: dial tcp 127.0.0.1:853: connect: connection refused
[127.0.0.1:8080] -->    [💀] ERROR: dial tcp 127.0.0.1:8080: connect: connection refused
[127.0.0.1:636] -->     [💀] ERROR: dial tcp 127.0.0.1:636: connect: connection refused
[127.0.0.1:8008] -->    [💀] ERROR: dial tcp 127.0.0.1:8008: connect: connection refused
[127.0.0.1:593] -->     [💀] ERROR: dial tcp 127.0.0.1:593: connect: connection refused
[127.0.0.1:5900] -->    [💀] ERROR: dial tcp 127.0.0.1:5900: connect: connection refused
[127.0.0.1:587] -->     [💀] ERROR: dial tcp 127.0.0.1:587: connect: connection refused
[127.0.0.1:5800] -->    [💀] ERROR: dial tcp 127.0.0.1:5800: connect: connection refused
[127.0.0.1:443] -->     [💀] ERROR: dial tcp 127.0.0.1:443: connect: connection refused
[127.0.0.1:5432] -->    [💀] ERROR: dial tcp 127.0.0.1:5432: connect: connection refused
[127.0.0.1:546] -->     [💀] ERROR: dial tcp 127.0.0.1:546: connect: connection refused
[127.0.0.1:5061] -->    [💀] ERROR: dial tcp 127.0.0.1:5061: connect: connection refused
[127.0.0.1:515] -->     [💀] ERROR: dial tcp 127.0.0.1:515: connect: connection refused
[127.0.0.1:5060] -->    [💀] ERROR: dial tcp 127.0.0.1:5060: connect: connection refused
[127.0.0.1:514] -->     [💀] ERROR: dial tcp 127.0.0.1:514: connect: connection refused
[127.0.0.1:3389] -->    [💀] ERROR: dial tcp 127.0.0.1:3389: connect: connection refused
[127.0.0.1:2375] -->    [💀] ERROR: dial tcp 127.0.0.1:2375: connect: connection refused
[127.0.0.1:3333] -->    [💀] ERROR: dial tcp 127.0.0.1:3333: connect: connection refused
[127.0.0.1:512] -->     [💀] ERROR: dial tcp 127.0.0.1:512: connect: connection refused
[127.0.0.1:3306] -->    [💀] ERROR: dial tcp 127.0.0.1:3306: connect: connection refused
[127.0.0.1:464] -->     [💀] ERROR: dial tcp 127.0.0.1:464: connect: connection refused
[127.0.0.1:2484] -->    [💀] ERROR: dial tcp 127.0.0.1:2484: connect: connection refused
[127.0.0.1:389] -->     [💀] ERROR: dial tcp 127.0.0.1:389: connect: connection refused
[127.0.0.1:8081] -->    [💀] ERROR: dial tcp 127.0.0.1:8081: connect: connection refused
[127.0.0.1:135] -->     [💀] ERROR: dial tcp 127.0.0.1:135: connect: connection refused
[127.0.0.1:2323] -->    [💀] ERROR: dial tcp 127.0.0.1:2323: connect: connection refused
[127.0.0.1:179] -->     [💀] ERROR: dial tcp 127.0.0.1:179: connect: connection refused
[127.0.0.1:177] -->     [💀] ERROR: dial tcp 127.0.0.1:177: connect: connection refused
[127.0.0.1:2222] -->    [💀] ERROR: dial tcp 127.0.0.1:2222: connect: connection refused
[127.0.0.1:143] -->     [💀] ERROR: dial tcp 127.0.0.1:143: connect: connection refused
[127.0.0.1:1270] -->    [💀] ERROR: dial tcp 127.0.0.1:1270: connect: connection refused
[127.0.0.1:1521] -->    [💀] ERROR: dial tcp 127.0.0.1:1521: connect: connection refused
[127.0.0.1:139] -->     [💀] ERROR: dial tcp 127.0.0.1:139: connect: connection refused
[127.0.0.1:1434] -->    [💀] ERROR: dial tcp 127.0.0.1:1434: connect: connection refused
[127.0.0.1:137] -->     [💀] ERROR: dial tcp 127.0.0.1:137: connect: connection refused
[127.0.0.1:1433] -->    [💀] ERROR: dial tcp 127.0.0.1:1433: connect: connection refused
[127.0.0.1:1337] -->    [💀] ERROR: dial tcp 127.0.0.1:1337: connect: connection refused
[127.0.0.1:989] -->     [💀] ERROR: dial tcp 127.0.0.1:989: connect: connection refused
[127.0.0.1:119] -->     [💀] ERROR: dial tcp 127.0.0.1:119: connect: connection refused
[127.0.0.1:995] -->     [💀] ERROR: dial tcp 127.0.0.1:995: connect: connection refused
[127.0.0.1:993] -->     [💀] ERROR: dial tcp 127.0.0.1:993: connect: connection refused
[127.0.0.1:110] -->     [💀] ERROR: dial tcp 127.0.0.1:110: connect: connection refused
[127.0.0.1:990] -->     [💀] ERROR: dial tcp 127.0.0.1:990: connect: connection refused
[127.0.0.1:547] -->     [💀] ERROR: dial tcp 127.0.0.1:547: connect: connection refused
[127.0.0.1:513] -->     [💀] ERROR: dial tcp 127.0.0.1:513: connect: connection refused
[127.0.0.1:445] -->     [💀] ERROR: dial tcp 127.0.0.1:445: connect: connection refused
[127.0.0.1:111] -->     [💀] ERROR: dial tcp 127.0.0.1:111: connect: connection refused
[127.0.0.1:113] -->     [💀] ERROR: dial tcp 127.0.0.1:113: connect: connection refused
chux0r commented 5 months ago

verified custom portlist spec with -p still works ok:

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,111,10000, --debug 127.0.0.1
DEBUG: buildPortsList(): Process input [ 80,111,10000, ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 80,111,10000, ]
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]

DEBUG: parsePortsCdl() Port range def string:  80,111,10000,

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  []

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): Resulting PortList [ [80 111 10000] ]

Bang target: [127.0.0.1], Portcount: [3]
=====================================================
TCP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:111] -->     [💀] ERROR: dial tcp 127.0.0.1:111: connect: connection refused
[127.0.0.1:80] -->      [💀] ERROR: dial tcp 127.0.0.1:80: connect: connection refused
[127.0.0.1:10000] -->   [💀] ERROR: dial tcp 127.0.0.1:10000: connect: connection refused
chux0r commented 5 months ago

problem looks like it's in buildPortsList(). Output shows that custom portdefs made it into ThisScan...PortList but were wiped out when "tcp_short" was portfu.PortList.Add'ed:

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,tcp_short,111,10000, --debug 127.0.0.1
DEBUG: buildPortsList(): Process input [ 80,tcp_short,111,10000, ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 80,tcp_short,111,10000, ]
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ tcp_short ]
DEBUG: parsePortsCDL(): [ tcp_short ] result: NAN
DEBUG: parsePortsCDL():  Item [ tcp_short ], is a non-number, non-range string. Assumed Named List. Returning for eval.
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]

DEBUG: parsePortsCdl() Port range def string:  80,tcp_short,111,10000,

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  [tcp_short]

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): ThisScan...Portlist, current: [ [80 111 10000] ]
DEBUG: buildPortsList(): Add ports in named list [ [tcp_short] ] to ThisScan...Portlist
DEBUG: buildPortsList(): Resulting PortList [ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ]
chux0r commented 5 months ago

buildPortsList was clobbering the list. Took out the fancy "copy-measure-makenew-copy-append" and replaced it with just plain ol "append" to fix. To the point of the original deign, it does not have the "what if we outstrip golangs build-in slice smarts" approach left anywhere. But if my hunch is correct, we'd need to beat the snot out of it a lot harder than a maxsize 65535 []uint16 could manage. Maybe we just put in a maxlen limiter when we get the size of the exiting and the input list for some cheap insurance instead?

anyway, fixed output below. Oh, and maybe add some dedup later on the ports as well.

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang -p 80,tcp_short,111,10000, --debug 127.0.0.1
DEBUG: PortList pl[ &[] ] *pl[ [] ] &pl[ 0xc000014040 ]
DEBUG: The ports to ADD: [ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ]
DEBUG: After COPY tmp INTO: pl[ &[20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] *pl[ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] &pl[ 0xc000014040 ]
DEBUG: After APPEND NEW PORTS pl[ &[20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] *pl[ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] &pl[ 0xc000014040 ]
DEBUG: buildPortsList(): Process input [ 80,tcp_short,111,10000, ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 80,tcp_short,111,10000, ]
DEBUG: parsePortsCDL(): Evaluating item [ 80 ]
DEBUG: parsePortsCDL(): Item [ 80 ] is a number [ 80 ]. Appended. Current port slice [ [80] ]
DEBUG: parsePortsCDL(): Evaluating item [ tcp_short ]
DEBUG: parsePortsCDL(): [ tcp_short ] result: NAN
DEBUG: parsePortsCDL():  Item [ tcp_short ], is a non-number, non-range string. Assumed Named List. Returning for eval.
DEBUG: parsePortsCDL(): Evaluating item [ 111 ]
DEBUG: parsePortsCDL(): Item [ 111 ] is a number [ 111 ]. Appended. Current port slice [ [80 111] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000 ]
DEBUG: parsePortsCDL(): Item [ 10000 ] is a number [ 10000 ]. Appended. Current port slice [ [80 111 10000] ]

DEBUG: parsePortsCdl() Port range def string:  80,tcp_short,111,10000,

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  [tcp_short]

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [80 111 10000]
DEBUG: buildPortsList(): Adding [ [80 111 10000] ] to ThisScan...Portlist.
DEBUG: PortList pl[ &[] ] *pl[ [] ] &pl[ 0xc000014050 ]
DEBUG: The ports to ADD: [ [80 111 10000] ]
DEBUG: After COPY tmp INTO: pl[ &[80 111 10000] ] *pl[ [80 111 10000] ] &pl[ 0xc000014050 ]
DEBUG: After APPEND NEW PORTS pl[ &[80 111 10000] ] *pl[ [80 111 10000] ] &pl[ 0xc000014050 ]
DEBUG: buildPortsList(): ThisScan...Portlist, current: [ [80 111 10000] ]
DEBUG: buildPortsList(): Add ports in named list [ [tcp_short] ] to ThisScan...Portlist
DEBUG: PortList pl[ &[80 111 10000] ] *pl[ [80 111 10000] ] &pl[ 0xc000014058 ]
DEBUG: The ports to ADD: [ [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ]
DEBUG: After COPY tmp INTO: pl[ &[80 111 10000 20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] *pl[ [80 111 10000 20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] &pl[ 0xc000014058 ]
DEBUG: After APPEND NEW PORTS pl[ &[80 111 10000 20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] *pl[ [80 111 10000 20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ] &pl[ 0xc000014058 ]
DEBUG: buildPortsList(): Resulting PortList [ [80 111 10000 20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] ]

Bang target: [127.0.0.1], Portcount: [68]
=====================================================
TCP portbangers unleashed...💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Jobs run: 68
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:8081] -->    [💀] ERROR: dial tcp 127.0.0.1:8081: connect: connection refused
[127.0.0.1:8080] -->    [💀] ERROR: dial tcp 127.0.0.1:8080: connect: connection refused
[127.0.0.1:8008] -->    [💀] ERROR: dial tcp 127.0.0.1:8008: connect: connection refused
[127.0.0.1:5900] -->    [💀] ERROR: dial tcp 127.0.0.1:5900: connect: connection refused
[127.0.0.1:5800] -->    [💀] ERROR: dial tcp 127.0.0.1:5800: connect: connection refused
[127.0.0.1:5432] -->    [💀] ERROR: dial tcp 127.0.0.1:5432: connect: connection refused
[127.0.0.1:5061] -->    [💀] ERROR: dial tcp 127.0.0.1:5061: connect: connection refused
[127.0.0.1:5060] -->    [💀] ERROR: dial tcp 127.0.0.1:5060: connect: connection refused
[127.0.0.1:3389] -->    [💀] ERROR: dial tcp 127.0.0.1:3389: connect: connection refused
[127.0.0.1:3333] -->    [💀] ERROR: dial tcp 127.0.0.1:3333: connect: connection refused
[127.0.0.1:3306] -->    [💀] ERROR: dial tcp 127.0.0.1:3306: connect: connection refused
[127.0.0.1:2484] -->    [💀] ERROR: dial tcp 127.0.0.1:2484: connect: connection refused
[127.0.0.1:2483] -->    [💀] ERROR: dial tcp 127.0.0.1:2483: connect: connection refused
[127.0.0.1:2375] -->    [💀] ERROR: dial tcp 127.0.0.1:2375: connect: connection refused
[127.0.0.1:2323] -->    [💀] ERROR: dial tcp 127.0.0.1:2323: connect: connection refused
[127.0.0.1:2222] -->    [💀] ERROR: dial tcp 127.0.0.1:2222: connect: connection refused
[127.0.0.1:1521] -->    [💀] ERROR: dial tcp 127.0.0.1:1521: connect: connection refused
[127.0.0.1:1434] -->    [💀] ERROR: dial tcp 127.0.0.1:1434: connect: connection refused
[127.0.0.1:1433] -->    [💀] ERROR: dial tcp 127.0.0.1:1433: connect: connection refused
[127.0.0.1:1337] -->    [💀] ERROR: dial tcp 127.0.0.1:1337: connect: connection refused
[127.0.0.1:1270] -->    [💀] ERROR: dial tcp 127.0.0.1:1270: connect: connection refused
[127.0.0.1:995] -->     [💀] ERROR: dial tcp 127.0.0.1:995: connect: connection refused
[127.0.0.1:993] -->     [💀] ERROR: dial tcp 127.0.0.1:993: connect: connection refused
[127.0.0.1:990] -->     [💀] ERROR: dial tcp 127.0.0.1:990: connect: connection refused
[127.0.0.1:989] -->     [💀] ERROR: dial tcp 127.0.0.1:989: connect: connection refused
[127.0.0.1:873] -->     [💀] ERROR: dial tcp 127.0.0.1:873: connect: connection refused
[127.0.0.1:853] -->     [💀] ERROR: dial tcp 127.0.0.1:853: connect: connection refused
[127.0.0.1:636] -->     [💀] ERROR: dial tcp 127.0.0.1:636: connect: connection refused
[127.0.0.1:593] -->     [💀] ERROR: dial tcp 127.0.0.1:593: connect: connection refused
[127.0.0.1:587] -->     [💀] ERROR: dial tcp 127.0.0.1:587: connect: connection refused
[127.0.0.1:547] -->     [💀] ERROR: dial tcp 127.0.0.1:547: connect: connection refused
[127.0.0.1:546] -->     [💀] ERROR: dial tcp 127.0.0.1:546: connect: connection refused
[127.0.0.1:515] -->     [💀] ERROR: dial tcp 127.0.0.1:515: connect: connection refused
[127.0.0.1:514] -->     [💀] ERROR: dial tcp 127.0.0.1:514: connect: connection refused
[127.0.0.1:513] -->     [💀] ERROR: dial tcp 127.0.0.1:513: connect: connection refused
[127.0.0.1:512] -->     [💀] ERROR: dial tcp 127.0.0.1:512: connect: connection refused
[127.0.0.1:464] -->     [💀] ERROR: dial tcp 127.0.0.1:464: connect: connection refused
[127.0.0.1:445] -->     [💀] ERROR: dial tcp 127.0.0.1:445: connect: connection refused
[127.0.0.1:443] -->     [💀] ERROR: dial tcp 127.0.0.1:443: connect: connection refused
[127.0.0.1:389] -->     [💀] ERROR: dial tcp 127.0.0.1:389: connect: connection refused
[127.0.0.1:179] -->     [💀] ERROR: dial tcp 127.0.0.1:179: connect: connection refused
[127.0.0.1:177] -->     [💀] ERROR: dial tcp 127.0.0.1:177: connect: connection refused
[127.0.0.1:143] -->     [💀] ERROR: dial tcp 127.0.0.1:143: connect: connection refused
[127.0.0.1:139] -->     [💀] ERROR: dial tcp 127.0.0.1:139: connect: connection refused
[127.0.0.1:137] -->     [💀] ERROR: dial tcp 127.0.0.1:137: connect: connection refused
[127.0.0.1:135] -->     [💀] ERROR: dial tcp 127.0.0.1:135: connect: connection refused
[127.0.0.1:119] -->     [💀] ERROR: dial tcp 127.0.0.1:119: connect: connection refused
[127.0.0.1:113] -->     [💀] ERROR: dial tcp 127.0.0.1:113: connect: connection refused
[127.0.0.1:111] -->     [💀] ERROR: dial tcp 127.0.0.1:111: connect: connection refused
[127.0.0.1:110] -->     [💀] ERROR: dial tcp 127.0.0.1:110: connect: connection refused
[127.0.0.1:88] -->      [💀] ERROR: dial tcp 127.0.0.1:88: connect: connection refused
[127.0.0.1:80] -->      [💀] ERROR: dial tcp 127.0.0.1:80: connect: connection refused
[127.0.0.1:79] -->      [💀] ERROR: dial tcp 127.0.0.1:79: connect: connection refused
[127.0.0.1:69] -->      [💀] ERROR: dial tcp 127.0.0.1:69: connect: connection refused
[127.0.0.1:68] -->      [💀] ERROR: dial tcp 127.0.0.1:68: connect: connection refused
[127.0.0.1:67] -->      [💀] ERROR: dial tcp 127.0.0.1:67: connect: connection refused
[127.0.0.1:53] -->      [💀] ERROR: dial tcp 127.0.0.1:53: connect: connection refused
[127.0.0.1:43] -->      [💀] ERROR: dial tcp 127.0.0.1:43: connect: connection refused
[127.0.0.1:25] -->      [💀] ERROR: dial tcp 127.0.0.1:25: connect: connection refused
[127.0.0.1:23] -->      [💀] ERROR: dial tcp 127.0.0.1:23: connect: connection refused
[127.0.0.1:22] -->      [💀] ERROR: dial tcp 127.0.0.1:22: connect: connection refused
[127.0.0.1:21] -->      [💀] ERROR: dial tcp 127.0.0.1:21: connect: connection refused
[127.0.0.1:20] -->      [💀] ERROR: dial tcp 127.0.0.1:20: connect: connection refused
[127.0.0.1:10000] -->   [💀] ERROR: dial tcp 127.0.0.1:10000: connect: connection refused
[127.0.0.1:111] -->     [💀] ERROR: dial tcp 127.0.0.1:111: connect: connection refused
[127.0.0.1:80] -->      [💀] ERROR: dial tcp 127.0.0.1:80: connect: connection refused
[127.0.0.1:8443] -->    [💀] ERROR: dial tcp 127.0.0.1:8443: connect: connection refused
[127.0.0.1:8088] -->    [💀] ERROR: dial tcp 127.0.0.1:8088: connect: connection refused
chux0r commented 5 months ago

found it

OMG I didn't implement --portsfile -> *portsfileDo2 --pf works, just not --portsfile

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --pf ../nb_test.conf --debug 127.0.0.1
DEBUG: flags set: [ 2 ]
DEBUG: Flag [debug]: SET
        VALUE -> [true]
DEBUG: Flag [pf]: SET
        VALUE -> [../nb_test.conf]
DEBUG: constructor() complete. 
        TARGET NETWORK DETAIL: [ {tcp [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] []} ]
        TARGET: [ 127.0.0.1 ]
DEBUG: PortList: RESET/EMPTY
        TARGET NETWORK DETAIL: [ {tcp [] []} ]
        TARGET: [ 127.0.0.1 ]
2024/03/29 15:12:03 Opening user-defined port config file [../nb_test.conf].

Data read from cf file: >> 21,53,10000
DEBUG: buildPortsList(): Process input [ 21,53,10000
 ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 21,53,10000
 ]
DEBUG: parsePortsCDL(): Evaluating item [ 21 ]
DEBUG: parsePortsCDL(): Item [ 21 ] is a number [ 21 ]. Appended. Current port slice [ [21] ]
DEBUG: parsePortsCDL(): Evaluating item [ 53 ]
DEBUG: parsePortsCDL(): Item [ 53 ] is a number [ 53 ]. Appended. Current port slice [ [21 53] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000
 ]
DEBUG: parsePortsCDL(): Item [ 10000
 ] is a number [ 10000 ]. Appended. Current port slice [ [21 53 10000] ]

DEBUG: parsePortsCdl() Port range def string:  21,53,10000

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  []

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [21 53 10000]
DEBUG: buildPortsList(): Adding [ [21 53 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): ThisScan...Portlist, current: [ [21 53 10000] ]
DEBUG: buildPortsList(): Resulting PortList [ [21 53 10000] ]

Bang target: [127.0.0.1], Portcount: [3]
=====================================================
TCP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:21] -->      [💀] ERROR: dial tcp 127.0.0.1:21: connect: connection refused
[127.0.0.1:10000] -->   [💀] ERROR: dial tcp 127.0.0.1:10000: connect: connection refused
[127.0.0.1:53] -->      [💀] ERROR: dial tcp 127.0.0.1:53: connect: connection refused
chux0r commented 5 months ago

fixed. Added *portsfileDo2 file read->PortsList code to netbang main; tested ok

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --pf ../nb_test.conf --debug 127.0.0.1
DEBUG: flags set: [ 2 ]
DEBUG: Flag [debug]: SET
        VALUE -> [true]
DEBUG: Flag [pf]: SET
        VALUE -> [../nb_test.conf]
DEBUG: constructor() complete. 
        TARGET NETWORK DETAIL: [ {tcp [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] []} ]
        TARGET: [ 127.0.0.1 ]
DEBUG: PortList: RESET/EMPTY
        TARGET NETWORK DETAIL: [ {tcp [] []} ]
        TARGET: [ 127.0.0.1 ]
2024/03/29 15:12:03 Opening user-defined port config file [../nb_test.conf].

Data read from cf file: >> 21,53,10000
DEBUG: buildPortsList(): Process input [ 21,53,10000
 ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 21,53,10000
 ]
DEBUG: parsePortsCDL(): Evaluating item [ 21 ]
DEBUG: parsePortsCDL(): Item [ 21 ] is a number [ 21 ]. Appended. Current port slice [ [21] ]
DEBUG: parsePortsCDL(): Evaluating item [ 53 ]
DEBUG: parsePortsCDL(): Item [ 53 ] is a number [ 53 ]. Appended. Current port slice [ [21 53] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000
 ]
DEBUG: parsePortsCDL(): Item [ 10000
 ] is a number [ 10000 ]. Appended. Current port slice [ [21 53 10000] ]

DEBUG: parsePortsCdl() Port range def string:  21,53,10000

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  []

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [21 53 10000]
DEBUG: buildPortsList(): Adding [ [21 53 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): ThisScan...Portlist, current: [ [21 53 10000] ]
DEBUG: buildPortsList(): Resulting PortList [ [21 53 10000] ]

Bang target: [127.0.0.1], Portcount: [3]
=====================================================
TCP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:21] -->      [💀] ERROR: dial tcp 127.0.0.1:21: connect: connection refused
[127.0.0.1:10000] -->   [💀] ERROR: dial tcp 127.0.0.1:10000: connect: connection refused
[127.0.0.1:53] -->      [💀] ERROR: dial tcp 127.0.0.1:53: connect: connection refused
mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ go build netbang.go recon.go resolver.go 
mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --portsfile ../nb_test.conf --debug 127.0.0.1
DEBUG: flags set: [ 2 ]
DEBUG: Flag [debug]: SET
        VALUE -> [true]
DEBUG: Flag [portsfile]: SET
        VALUE -> [../nb_test.conf]
DEBUG: constructor() complete. 
        TARGET NETWORK DETAIL: [ {tcp [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] []} ]
        TARGET: [ 127.0.0.1 ]
DEBUG: CUSTOM PORTDEF->PortList: RESET
        TARGET NETWORK DETAIL: [ {tcp [] []} ]
        TARGET: [ 127.0.0.1 ]
2024/03/29 15:19:54 Opening user-defined port config file [../nb_test.conf].

Data read from cf file: >> 21,53,10000
DEBUG: buildPortsList(): Process input [ 21,53,10000
 ] with parsePortsCdl()
DEBUG: parsePortsCDL(): parsing [ 21,53,10000
 ]
DEBUG: parsePortsCDL(): Evaluating item [ 21 ]
DEBUG: parsePortsCDL(): Item [ 21 ] is a number [ 21 ]. Appended. Current port slice [ [21] ]
DEBUG: parsePortsCDL(): Evaluating item [ 53 ]
DEBUG: parsePortsCDL(): Item [ 53 ] is a number [ 53 ]. Appended. Current port slice [ [21 53] ]
DEBUG: parsePortsCDL(): Evaluating item [ 10000
 ]
DEBUG: parsePortsCDL(): Item [ 10000
 ] is a number [ 10000 ]. Appended. Current port slice [ [21 53 10000] ]

DEBUG: parsePortsCdl() Port range def string:  21,53,10000

DEBUG: parsePortsCdl() RETURN-> Named portlist strings slice:  []

DEBUG: parsePortsCdl() RETURN-> Uint16 ports slice:  [21 53 10000]
DEBUG: buildPortsList(): Adding [ [21 53 10000] ] to ThisScan...Portlist.
DEBUG: buildPortsList(): ThisScan...Portlist, current: [ [21 53 10000] ]
DEBUG: buildPortsList(): Resulting PortList [ [21 53 10000] ]
DEBUG: CUSTOM PORTDEF->buildPortsList() COMPLETE:
        TARGET NETWORK DETAIL: [ {tcp [21 53 10000] []} ]
        TARGET: [ 127.0.0.1 ]

Bang target: [127.0.0.1], Portcount: [3]
=====================================================
TCP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:53] -->      [💀] ERROR: dial tcp 127.0.0.1:53: connect: connection refused
[127.0.0.1:21] -->      [💀] ERROR: dial tcp 127.0.0.1:21: connect: connection refused
[127.0.0.1:10000] -->   [💀] ERROR: dial tcp 127.0.0.1:10000: connect: connection refused
chux0r commented 5 months ago

Dammit. something is still messing up when specifying --proto udp Uses tcp_short default list, and not the listfile given

ORDERING PROB SUSPECTED: --proto UDP at end of the CLI? ALL GOOD --proto udp at the beginning? NO BUENO so, this works: ./netbang --portsfile ../nb_test.conf --proto udp --debug 127.0.0.1 and this doesn't: ./netbang --debug --proto udp --portsfile ../nb_test.conf -t 500 127.0.0.1

...ignores --debug flag too.

.hm

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --portsfile ../nb_test.conf --proto udp --debug 127.0.0.1
2024/03/29 15:28:42 Opening user-defined port config file [../nb_test.conf].

Data read from cf file: >> 21,53,10000

Bang target: [127.0.0.1], Portcount: [3]
=====================================================
UDP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:10000] -->   [💀] ERROR: read udp 127.0.0.1:56722->127.0.0.1:10000: read: connection refused
[127.0.0.1:53] -->      [💀] ERROR: read udp 127.0.0.1:52953->127.0.0.1:53: read: connection refused
[127.0.0.1:21] -->      [💀] ERROR: read udp 127.0.0.1:42757->127.0.0.1:21: read: connection refused
mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --debug --proto udp --portsfile ../netbang_ports.tmp -t 500 127.0.0.1
DEBUG: flags set: [ 2 ]
DEBUG: Flag [debug]: SET
        VALUE -> [true]
DEBUG: Flag [proto]: SET
        VALUE -> [true]
DEBUG: constructor() complete. 
        TARGET NETWORK DETAIL: [ {tcp [20 21 22 23 25 43 53 67 68 69 79 80 88 110 111 113 119 135 137 139 143 177 179 389 443 445 464 512 513 514 515 546 547 587 593 636 853 873 989 990 993 995 1270 1337 1433 1434 1521 2222 2323 2375 2483 2484 3306 3333 3389 5060 5061 5432 5800 5900 8008 8080 8081 8088 8443] []} ]
        TARGET: [ 127.0.0.1 ]

Bang target: [127.0.0.1], Portcount: [65]
=====================================================
UDP portbangers unleashed...💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Jobs run: 65
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:23] -->      [💀] ERROR: read udp 127.0.0.1:49047->127.0.0.1:23: read: connection refused
[127.0.0.1:20] -->      [💀] ERROR: read udp 127.0.0.1:50433->127.0.0.1:20: read: connection refused
=======================*CUT OUT RESULTS TO SHORTEN. ACTUAL TOTAL IS 65* --ctg ======================
[127.0.0.1:8088] -->    [💀] ERROR: read udp 127.0.0.1:38851->127.0.0.1:8088: read: connection refused
[127.0.0.1:110] -->     [💀] ERROR: read udp 127.0.0.1:57861->127.0.0.1:110: read: connection refused
chux0r commented 5 months ago

demo

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --portsfile ../nb_test.conf --proto udp --debug 127.0.0.1
2024/03/29 15:28:42 Opening user-defined port config file [../nb_test.conf].

Data read from cf file: >> 21,53,10000

Bang target: [127.0.0.1], Portcount: [3]
=====================================================
UDP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:10000] -->   [💀] ERROR: read udp 127.0.0.1:56722->127.0.0.1:10000: read: connection refused
[127.0.0.1:53] -->      [💀] ERROR: read udp 127.0.0.1:52953->127.0.0.1:53: read: connection refused
[127.0.0.1:21] -->      [💀] ERROR: read udp 127.0.0.1:42757->127.0.0.1:21: read: connection refused

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./netbang --proto udp --debug --portsfile ../nb_test.conf 127.0.0.1

Bang target: [127.0.0.1], Portcount: [65]
=====================================================
UDP portbangers unleashed...💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Jobs run: 65
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:8443] -->    [💀] ERROR: read udp 127.0.0.1:55432->127.0.0.1:8443: read: connection refused
[127.0.0.1:20] -->      [💀] ERROR: read udp 127.0.0.1:45213->127.0.0.1:20: read: connection refused
---8<--------------CUTTT----------8<------------------------------8<-------------
[127.0.0.1:8088] -->    [💀] ERROR: read udp 127.0.0.1:51682->127.0.0.1:8088: read: connection refused
chux0r commented 5 months ago

confirmed: ANY --proto specification at the beginning of the CLI string will use portlist "tcp_short" (65 ports), and nothing else (the constructor() default)

chux0r commented 5 months ago

--proto was set as type flag.Bool, but was processing Strings, as Args. This introduced some weirdness, paired with the fact that it was explicitly setting bangMode = 1 (scanning), which I'm not sure should be implied when setting the protocols you're focusing on.

It also pointed out that defaulting to "safety OFF" or "not scanning" as the default led us down this interesting path.

Here's how I fixed it. I defaulted netBang to "assume we're scanning unless we invoke a non-scanning context, like (recon)". Switched --proto to flag.String, defaulting to ""(empty) in the flag definition. We don't have to set it anyway, since the constructor sets the default ("tcp") anyway.

All works, finally.

mongoose@thoughtcrime:~/workbench/dev/golang/netbang$ ./test.bash 
Build test by: mongoose@thoughtcrime:/home/mongoose/workbench/dev/golang/netbang
Date:Fri Mar 29 04:32:19 PM CDT 2024
 -- GO version: go version go1.20.3 linux/amd64
 -- Platform OS/arch details: Linux thoughtcrime 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

=============BUILD: go build ./netbang.go ./recon.go ./resolver.go
NETBANG TEST CASES:
./netbang

    USAGE:
    netbang [-h|--help]
        Print this help screen.
    netbang [-l|--lists] [<Listname>] 
        Print all usable pre-configured TCP and UDP port group lists and names. With <Listname>, show detailed port listing within <Listname>. 

    netbang [[FLAGS] <object(,optionals)>] <TARGET>
        CONFIG FLAGS
            [--debug]
            Enable detailed debug output.
            [--env]
            Print local client environment details.
            [--ns] <IP(:port)> 
            Set DNS resolver to IP (and optionally port, 53 is default). Default setup uses 1.1.1.1:53 (Cloudflare).

        SCANNING FLAGS
            [-p|--ports] <num0(,num1,num2,...numN,numA-numZ,named_list)> 
            Specify port numbers, port ranges, and/or named portlists to use. TCP or UDP proto only. 
            (View named portlists with --lists)

            [-pf|--portsfile] <(directory path/)filename>
            Input from file a comma-delimited list of port numbers to scan. TCP or UDP proto only.

            [--proto] <tcp|udp>
            Specify protocol to use, tcp, udp, or icmp. Default is "tcp".

            [-t] <timeout, in ms>
            Network connect timeout to use. Defaults to 3 seconds (3000ms). To use network-defined timeout, set to -1.

        RECON FLAGS
            [--recon] <list> | [--recon] <service> <method> <apikey>
            Ninja recon module. List available modules with "list" or, specify a service, method, and optionally, API keys if needed. 

        <TARGET> 
            Object of scan or recon. Target must be an IP address, an IP/CIDR range, or a valid hostname.

        NOTE: Scanning and Recon are mutually exclusive. Setting scanning flags and recon flags together in the same invocation will behave unpredictably.

=============BASIC SCAN-BY-HOSTNAME: ./netbang scanme.org

Bang target: [scanme.org], Portcount: [65]
=====================================================
TCP portbangers unleashed...😎😎💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Jobs run: 65
scanme.org Scan Results
================================================================================
[scanme.org:22] --> [😎] OPEN
[scanme.org:80] --> [😎] OPEN
[scanme.org:23] --> [💀] ERROR: dial tcp 45.33.32.156:23: connect: connection refused
[scanme.org:53] --> [💀] ERROR: dial tcp 45.33.32.156:53: connect: connection refused
[scanme.org:68] --> [💀] ERROR: dial tcp 45.33.32.156:68: connect: connection refused
[scanme.org:547] -->    [💀] ERROR: dial tcp 45.33.32.156:547: connect: connection refused
[scanme.org:43] --> [💀] ERROR: dial tcp 45.33.32.156:43: connect: connection refused
[scanme.org:79] --> [💀] ERROR: dial tcp 45.33.32.156:79: connect: connection refused
[scanme.org:67] --> [💀] ERROR: dial tcp 45.33.32.156:67: connect: connection refused
[scanme.org:110] -->    [💀] ERROR: dial tcp 45.33.32.156:110: connect: connection refused
[scanme.org:8443] -->   [💀] ERROR: dial tcp 45.33.32.156:8443: connect: connection refused
[scanme.org:593] -->    [💀] ERROR: dial tcp 45.33.32.156:593: connect: connection refused
[scanme.org:636] -->    [💀] ERROR: dial tcp 45.33.32.156:636: connect: connection refused
[scanme.org:8088] -->   [💀] ERROR: dial tcp 45.33.32.156:8088: connect: connection refused
[scanme.org:515] -->    [💀] ERROR: dial tcp 45.33.32.156:515: connect: connection refused
[scanme.org:546] -->    [💀] ERROR: dial tcp 45.33.32.156:546: connect: connection refused
[scanme.org:25] --> [💀] ERROR: dial tcp 45.33.32.156:25: connect: connection refused
[scanme.org:113] -->    [💀] ERROR: dial tcp 45.33.32.156:113: connect: connection refused
[scanme.org:20] --> [💀] ERROR: dial tcp 45.33.32.156:20: connect: connection refused
[scanme.org:88] --> [💀] ERROR: dial tcp 45.33.32.156:88: connect: connection refused
[scanme.org:587] -->    [💀] ERROR: dial tcp 45.33.32.156:587: connect: connection refused
[scanme.org:119] -->    [💀] ERROR: dial tcp 45.33.32.156:119: connect: connection refused
[scanme.org:143] -->    [💀] ERROR: dial tcp 45.33.32.156:143: connect: connection refused
[scanme.org:389] -->    [💀] ERROR: dial tcp 45.33.32.156:389: connect: connection refused
[scanme.org:989] -->    [💀] ERROR: dial tcp 45.33.32.156:989: connect: connection refused
[scanme.org:853] -->    [💀] ERROR: dial tcp 45.33.32.156:853: connect: connection refused
[scanme.org:873] -->    [💀] ERROR: dial tcp 45.33.32.156:873: connect: connection refused
[scanme.org:464] -->    [💀] ERROR: dial tcp 45.33.32.156:464: connect: connection refused
[scanme.org:512] -->    [💀] ERROR: dial tcp 45.33.32.156:512: connect: connection refused
[scanme.org:69] --> [💀] ERROR: dial tcp 45.33.32.156:69: connect: connection refused
[scanme.org:990] -->    [💀] ERROR: dial tcp 45.33.32.156:990: connect: connection refused
[scanme.org:177] -->    [💀] ERROR: dial tcp 45.33.32.156:177: connect: connection refused
[scanme.org:443] -->    [💀] ERROR: dial tcp 45.33.32.156:443: connect: connection refused
[scanme.org:513] -->    [💀] ERROR: dial tcp 45.33.32.156:513: connect: connection refused
[scanme.org:179] -->    [💀] ERROR: dial tcp 45.33.32.156:179: connect: connection refused
[scanme.org:2484] -->   [💀] ERROR: dial tcp 45.33.32.156:2484: connect: connection refused
[scanme.org:1270] -->   [💀] ERROR: dial tcp 45.33.32.156:1270: connect: connection refused
[scanme.org:1434] -->   [💀] ERROR: dial tcp 45.33.32.156:1434: connect: connection refused
[scanme.org:1521] -->   [💀] ERROR: dial tcp 45.33.32.156:1521: connect: connection refused
[scanme.org:995] -->    [💀] ERROR: dial tcp 45.33.32.156:995: connect: connection refused
[scanme.org:993] -->    [💀] ERROR: dial tcp 45.33.32.156:993: connect: connection refused
[scanme.org:3306] -->   [💀] ERROR: dial tcp 45.33.32.156:3306: connect: connection refused
[scanme.org:514] -->    [💀] ERROR: dial tcp 45.33.32.156:514: connect: connection refused
[scanme.org:1433] -->   [💀] ERROR: dial tcp 45.33.32.156:1433: connect: connection refused
[scanme.org:2222] -->   [💀] ERROR: dial tcp 45.33.32.156:2222: connect: connection refused
[scanme.org:5061] -->   [💀] ERROR: dial tcp 45.33.32.156:5061: connect: connection refused
[scanme.org:1337] -->   [💀] ERROR: dial tcp 45.33.32.156:1337: connect: connection refused
[scanme.org:3389] -->   [💀] ERROR: dial tcp 45.33.32.156:3389: connect: connection refused
[scanme.org:5060] -->   [💀] ERROR: dial tcp 45.33.32.156:5060: connect: connection refused
[scanme.org:5432] -->   [💀] ERROR: dial tcp 45.33.32.156:5432: connect: connection refused
[scanme.org:3333] -->   [💀] ERROR: dial tcp 45.33.32.156:3333: connect: connection refused
[scanme.org:5900] -->   [💀] ERROR: dial tcp 45.33.32.156:5900: connect: connection refused
[scanme.org:2323] -->   [💀] ERROR: dial tcp 45.33.32.156:2323: connect: connection refused
[scanme.org:2483] -->   [💀] ERROR: dial tcp 45.33.32.156:2483: connect: connection refused
[scanme.org:5800] -->   [💀] ERROR: dial tcp 45.33.32.156:5800: connect: connection refused
[scanme.org:2375] -->   [💀] ERROR: dial tcp 45.33.32.156:2375: connect: connection refused
[scanme.org:8008] -->   [💀] ERROR: dial tcp 45.33.32.156:8008: connect: connection refused
[scanme.org:8080] -->   [💀] ERROR: dial tcp 45.33.32.156:8080: connect: connection refused
[scanme.org:8081] -->   [💀] ERROR: dial tcp 45.33.32.156:8081: connect: connection refused
[scanme.org:445] -->    [💀] ERROR: dial tcp 45.33.32.156:445: i/o timeout
[scanme.org:21] --> [💀] ERROR: dial tcp 45.33.32.156:21: i/o timeout
[scanme.org:111] -->    [💀] ERROR: dial tcp 45.33.32.156:111: i/o timeout
[scanme.org:135] -->    [💀] ERROR: dial tcp 45.33.32.156:135: i/o timeout
[scanme.org:137] -->    [💀] ERROR: dial tcp 45.33.32.156:137: i/o timeout
[scanme.org:139] -->    [💀] ERROR: dial tcp 45.33.32.156:139: i/o timeout

=============UDP SCAN, PORTS DEFINED IN FILE, CUSTOM TIMEOUT ./netbang --proto udp --portsfile ../netbang_ports.tmp -t 500 127.0.0.1

    FILE INJECT ../netbang_ports.tmp:53,161,10000
2024/03/29 16:32:22 Opening user-defined port config file [../netbang_ports.tmp].

Data read from cf file: >> 53,161,10000
Bang target: [127.0.0.1], Portcount: [3]
=====================================================
UDP portbangers unleashed...💀💀💀
Jobs run: 3
127.0.0.1 Scan Results
================================================================================
[127.0.0.1:10000] -->   [💀] ERROR: read udp 127.0.0.1:53573->127.0.0.1:10000: read: connection refused
[127.0.0.1:161] --> [💀] ERROR: read udp 127.0.0.1:35921->127.0.0.1:161: read: connection refused
[127.0.0.1:53] -->  [💀] ERROR: read udp 127.0.0.1:37041->127.0.0.1:53: read: connection refused

=============EXECUTE: ./netbang --recon list

Ninja recon services and methods available:
    [shodan] :: Shodan is a search engine for Internet-connected devices. Requires API key. See https://developer.shodan.io/api
    [dns]    :: DNS performs a lookup on a hostname, reverse lookup on an IP address.

=============EXECUTE: ./netbang --recon dns amazon.com

DNS lookup: [amazon.com] Resolver: [1.1.1.1] Port: 53
Host [amazon.com] resolves as:
    IP #1: 205.251.242.103
    IP #2: 54.239.28.85
    IP #3: 52.94.236.248

=============EXECUTE: ./netbang --recon dns --ns 8.8.8.8 github.com
2024/03/29 16:32:22 Nameserver-set host IP: [8.8.8.8]
Custom DNS resolver:  8.8.8.8

DNS lookup: [github.com] Resolver: [8.8.8.8] Port: 53
Host [github.com] resolves as:
    IP #1: 140.82.112.3

=============EXECUTE: ./netbang --recon shodan hostip 1.1.1.1

Unparsed Shodan data for target 1.1.1.1:
&{ [161 2082 2083 2052 69 2086 2087 2095 80 8880 8080 53 8443 443 2096] 1.1.1.1 Cloudflare, Inc. [one.one.one.one] APNIC and Cloudflare DNS Resolver project [] AS13335 2024-03-29T16:29:46.208910 [0xc0004e4180 0xc0004e4300 0xc0004e4480 0xc0004e4600 0xc0004e4780 0xc0004e4900 0xc0004e4a80 0xc0004e4c00 0xc0004e4d80 0xc0004e4f00 0xc0004e5080 0xc0004e5200 0xc0004e5380 0xc0004e5500 0xc0004e5680 0xc0004e5800] {The Rocks NSW 0 -33.85923 151.2081 Australia AU   0}}