Skip to content

Releases: BadPixel89/ldGO

v0.3a

30 Sep 22:42
Compare
Choose a tag to compare

ldGo

Cross platform command line link discovery tool written in GoLang, working in Windows 11 / Linux / Mac

Depends on nPcap / libPcap see below for install instructions

WINDOWS:

Download and install nPcap:

https://npcap.com/#download

LINUX:

Install libpcap0.8 to run the tool:

sudo apt install libpcap0.8 

Install libpcap-dev to build the project:

sudo apt install libpcap-dev

If you install libpcap0.8 and the program still fails, try installing the dev version as well.

MAC:

I didn't have any issues with Mac "Just Working" which apparently is the Mac way. However, network interfaces don't have descriptions, so you may need to find your network adapter name.

To do this, click the Apple icon top left, hold option to make "About" change to "System Information" and click it. Find "Network". You should see the names of your adapters on that page.

Screenshot 2024-09-30 at 23 05 42

I need to look into a more platform agnostic way to easily identify NICs.

Basic Usage

Navigate a command line terminal to the folder containing the ldGo executable and run it.

Windows

.\ldgo-win.exe

Linux

./ldgo-linux

Mac

./ldgo-mac

For the rest of this document, 'ldgo' just refers to your version of the executable. I don't want to write every command three times. Rename it ldgo if you want it to match :)

To listen for packets, you will need the ID or name of the NIC, as returned by this program. The default behaviour is to prompt the user to run help and list the adapors.

The ID should always be the same unless you add/remove an adapter because the list is sorted alphabetically before being displayed.

To only list the adaptors Run:

ldgo -l 

You should see an output similar to the below:

image

You can now run:

ldgo -i 4

To listen on the Ethernet interface shown.

You can also select an interface by specifying a substring of the Name or Description.

ldgo -n enp0

While this readme covers the basics, use the following command to list all available flags:

ldgo -h

Known issues Linux

On Linux the program always waits for the timer to complete, even if a packet is captured. You can ctrl+c to cancel the operation but this is not desired behaviour. I think this is related to how one-way channels are handled, no further packets are captured after the first.

Similar to Mac, the description field is blank, but Linux does show IPV4 addresses where I've tested it, so you can identify the connected NIC using that for now. Depending on your distro there's probably a bunch of ways to find this info.

Running in WSL, at least in my setup, I was unable to capture packets on any interface, I will test this further but it may be something unique to my environment. I also cannot resolve local network hostnames in this environment.

Known issues Mac

Above mentioned issue with network adapter names. From this release onward relegated to "known issue" until I look at it more.

ldGo-v0.1b

21 Sep 00:45
Compare
Choose a tag to compare

First built version released publicly

This is intended as a command line tool.

Changes:

  • initial commit
  • added icmp capture for troubleshooting

Known issue with Linux version:

  • Does not seem to capture packets running under WSL, does work on a native linux install
  • Always waits out the timer, even when a packet is captured, can be safely quit with ctrl+c once a packet is displayed.

REQUIRES NPCAP on Windows or LIBPCAP on Linux

Windows

nPcap: https://npcap.com/#download

Linux:

sudo apt install libpcap0.8

If this does not allow you to run, you may need to install libpcap-dev using

sudo apt install libpcap-dev

Known Issues:

  • Windows version coming soon - windows is the primary target I just didn't want to reboot to build