Pseudo Tunnel

A demonstration of a UDP-in-UDP crafted packet from Node-B to the internal network of Node A (the 11.11.11.0/24 subnet).

  • GitHub Link: https://github.com/packetcord/packetcord.io/tree/main/apps/l3_pseudo_tunnel
  • Topology File: topology_examples/l3_pseudo_tunnel_example.json

Topology diagram

TOP

Encapsulation

TOP

Steps

Build the project (all examples)

cd packetcord.io
mkdir build
cd build
cmake .. --fresh
make

Start the topology

Load the exampe topology project file. Then Validate, Generate and Launch the topology.

Inside the shell of Node A

Run the following netcat command and leave the shell open:

nc -n -u -l -p 8765 -s 11.11.11.100 -v

Inside the shell of TEP

Run the following commands and leave the shell open:

cd /root
./l3_pseudo_tunnel_tep_app

The pseudo tunnel TEP should start with the following log:

[CordApp] Launching the PacketCord Pseudo Tunnel!
[CordL4UdpFlowPoint] Successfully bound to port 50000

Inside the shell of Node B

Run the following commands:

cd /root
./l3_pseudo_tunnel_client_app

And the log on the console should be:

[CordApp] Transmitting the crafted pseudo-tunnel packet...
[CordApp] Destroying all objects!

Result

Open the tab with with the Node A shell. You should see the following:

# nc -n -u -l -p 8765 -s 11.11.11.100 -v
Bound on 11.11.11.100 8765
Connection received on 192.168.111.100 1234
PacketCord.io Tunneled Hello!!!

The PacketCord.io Tunneled Hello!!! string has been successfully delivered over the UDP pseudo tunnel.

Terminate

Use the Destroy button to terminate the emulation.