Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Lack of Class E IPv4 support #130

Open
0x2bad opened this issue Jan 1, 2025 · 0 comments
Open

[BUG] Lack of Class E IPv4 support #130

0x2bad opened this issue Jan 1, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@0x2bad
Copy link

0x2bad commented Jan 1, 2025

Describe the bug

Class E IPv4 space which is used to access agent's loopback address is not supported by all operating systems.
This issue also relates to the pull request #117.

To Reproduce

[Agent : victim@labsrv] » tunnel_list
┌───────────────────────────────┐
│ Active tunnels                │
├───┬───────────────┬───────────┤
│ # │ AGENT         │ INTERFACE │
├───┼───────────────┼───────────┤
│ 1 │ victim@labsrv │ ligolo    │
└───┴───────────────┴───────────┘
> Get-NetAdapter -Name ligolo

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
ligolo                    WireGuard Tunnel                             39 Up                                   100 Gbps

> New-NetRoute -InterfaceAlias ligolo -DestinationPrefix 240.0.0.1/32 -NextHop 0.0.0.0

ifIndex DestinationPrefix                              NextHop                                  RouteMetric ifMetric PolicyStore
------- -----------------                              -------                                  ----------- -------- -----------
39      240.0.0.1/32                                   0.0.0.0                                          256 5        ActiveStore
39      240.0.0.1/32                                   0.0.0.0                                          256          Persiste...

> Get-NetRoute -InterfaceAlias ligolo

ifIndex DestinationPrefix                              NextHop                                  RouteMetric ifMetric PolicyStore
------- -----------------                              -------                                  ----------- -------- -----------
39      255.255.255.255/32                             0.0.0.0                                          256 5        ActiveStore
39      240.0.0.1/32                                   0.0.0.0                                          256 5        ActiveStore
39      224.0.0.0/4                                    0.0.0.0                                          256 5        ActiveStore
39      169.254.255.255/32                             0.0.0.0                                          256 5        ActiveStore
39      169.254.181.159/32                             0.0.0.0                                          256 5        ActiveStore
39      169.254.0.0/16                                 0.0.0.0                                          256 5        ActiveStore
39      ff00::/8                                       ::                                               256 5        ActiveStore
39      fe80::fcb2:3c02:dc89:f94d/128                  ::                                               256 5        ActiveStore
39      fe80::/64                                      ::                                               256 5        ActiveStore

> Test-NetConnection -Debug 240.0.0.1
DEBUG: Ping to 240.0.0.1 threw exception: Exception calling "SendPingAsync" with "1" argument(s): "An exception occurred during a Ping request."

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):
WARNING: Ping to 240.0.0.1 failed


ComputerName   : 240.0.0.1
RemoteAddress  : 240.0.0.1
InterfaceAlias :
SourceAddress  :
PingSucceeded  : False

Proxy information:

  • OS: Multiple
  • Architecture: Multiple
  • Version: [Ligolo-ng v0.5.1=<]

Additional context

The class E space has 268 million addresses and would give us in the order of 18 months worth of IPv4 address use. However, many TCP/IP stacks, such as the one in Windows, do not accept addresses from class E space and will not even communicate with correspondents holding those addresses. It is probably too late now to change this behavior on the installed base before the address space would be needed.

Endpoint (aka, users) software that works:

  • Linux distros post 2008
  • Android 2009
  • MacOS/OSX post 2009 (with Apple iOS being included)
  • OpenBSD post October 2022

Endpoint stuff that does not work:

  • All known Windows versions
  • NetBSD/FreeBSD

IP addresses are allocated by the InterNIC, the organization that administers the Internet. These IP addresses are divided into classes. The most common of them are classes A, B, and C. Classes D and E exist, but aren't used by end users.

@nicocha30 nicocha30 added the bug Something isn't working label Jan 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants