Deep Node

Controls / Navigation

Controls / Navigation

Learn how to navigate inside the console, use advanced features like creating "bots" and saving to PCAP, or how to write your own scripts into the console's Actions menu (e.g., shun IP)

Basic Navigation

Exiting: on Windows and Linux, exit by hitting esc; on Mac, exit by hitting Command + Q

Labels: the console starts up with node labels turned on. The {l} key (lower-case L) toggles them on and off. 

Pruning: when the tree gets too big, the {p} key will prune out pathways with no activity on them.

Clearing: the {c} key will unselect anything that is highlighted, clear out the menu, and center the view - any time; if a blip is selected, the first press simply deselects it, and the second press centers the view.

Time speed: {spacebar} pauses the timewell; it will buffer the incoming stream and freeze every blip - {spacebar} again will resume at normal speed (1x). The [ and ] keys slow down and speed up time... after pausing, for example, you may want to catch up with now. There is a line in the upper right HUD which tells you your current timespeed. Once the timewell catches up with now, the timespeed automatically goes back to 1x.
 
Mouse: moving the mouse over nodes (spheres), blips (cones), or bots (tori) will highlight them and put you in menu mode; clicking the mouse will highlight the closest path - from edge all the way to root - in blue, and the paths which have communicated with it in silver. 

Menu: to use a menu (lower right HUD), hit {enter} to select the highlighted line (when the menu has only one line, it is informational; hit {enter} to get the options). Use up and down arrow keys to move the highlight. 

Moving: move forward (the direction you are facing) with the {x} key; move backward with the {z} key. You can rotate the well with the {e} and {r} keys. {w} and {s} move you along the Z axis (down the well and back in time, or up the well toward now). {a} and {d} move you along the X axis (toward the sides of the well). 

Move speed: the {v} key cycles your movement speed among slow, fast, and turbo.

Path selection: the {i} and {o} keys select the next path over, in either direction; if a bot (pattern) is selected, they select the next bot.

Patterns: {tab} hides/shows the pattern detectors ("bots"); when one is selected, {i} and {o} cycle through them.

Commandline: the console contains a rudimentary shell; {home} displays/hides it; pressing {q} will put you in typing mode; enter "help" for a list of available commands. Press {q} then ENTER to exit the shell. 

Minimize: ALT-TAB will minimize the console - very useful when in full screen mode

Advanced Functionality

Getting the Latest Versions

Make sure you get the new versions, by running, waiting for 30 seconds, then closing and running again (java webstart downloads the new version in the background when you launch, and then is what it runs the next time you launch).

Filtering/Focusing/Flagging

When you highlight a node or bot, the menu has filter, focus, and flag options. These are for pruning out data you don't care about, leaving data you want to analyze further. Filter will remove all matching traffic. Focus will remove all non-matching traffic. Flag will make matching traffic NOT be removed by subsequent filter/focus operations.

The "bots" are patterns generated by Deep Node's trade secret artificial life algorithm, or entered manually by the user. To hide them, hit TAB. To turn them back on, hit TAB again. When you highlight one with the mouse or by cycling through using i and o, all matching traffic highlights in blue. Within the "workspace" section of the timewell, the highlighted bot draws lines to connect to all blips which contain matching traffic.

If you have filtered out traffic and want to get rid of limbs which now have no traffic on them, hit p (prune).

Creating a Bot from the Command Line:

If you go into the command line in the console (hit HOME to show it, q to be able to type into it, HOME to turn it back off - also hitting q turns it on automatically)...

There are commands called "bot", "mark", "filter", "focus", and "flag"; just type "mark from" and hit enter to see the format... you can create a bot for any pattern...  the format for the sniffer feed is:

Network | Subnet/Domain | Host/IP | Protocol/Port

For example:
bot from external|1e100.net|*|* to *|*|*|*

will create a bot that will grab all traffic to and from the 1e100.net domain. This new bot will appear in the middle of the timewell. You can highlight it, and currently there are five options:

- mark bot: mark the blips the bot has already connected to
- automark: mark the current blips and all new blips the bot connects to
- filter: get rid of all matching traffic
- focus: show only matching traffic
- delete: get rid of this bot

Every message that comes in to the timewell has a source and destination; source and destination are each four strings... for example, a tcp packet from google to a local pc might have:

source: external 1e100.net 10.20.30.123 tcp80
destination: internal internal 192.168.1.23 tcp

If you wanted to create a "bot" to highlight this traffic, you could do:

bot from external|1e100.net|10.20.30.123|tcp80 to internal|internal|192.168.1.23|tcp

But it would probably be much more useful to highlight, say, all google traffic:

bot from external|1e100.net|*|* to *|*|*|*

Or, you might want to highlight all external, tcp80 traffic:

bot from external|*|*|tcp80 to *|*|*|*

If you want the bot you create to filter out matching traffic rather than just marking it, use "filter" instead of "bot"; to show ONLY the matching traffic and filter out everything else, use "focus"; to ensure that matching traffic is never filtered, use "flag". Use "mark" to create a bot which is in "automark" mode: marking all matching blips and any new blips that match.

You can create bots using regex also. For example this command:

mark rx from .*(tcp).* to .*

... will mark all tcp traffic. You can also add a regex expression which will be tested against the comma-delimited list of tags, like this:

mark rx from .*(tcp).* to .* with .*(e0:aa:03:7f:b3:25).*

This will mark only tcp traffic, only involving a particular mac address. 

By default, filters simply cause data to not be displayed - but it is still processed and kept in memory so that if you reset a filter, it displays instantly. If you have too much data coming in to the timewell, you may want to use your filters to completely drop matching messages:

The command "gate" will cause filters to drop messages.
The command "nogate" will cause all messages to be processed regardless of filters.


This just introduced you to the command line within the console. You can enter "help" in there to get a list of available commands. Commands which are not built in are passed through to an underlying shell process; so you can do things like "ls" on linux or "dir" on windows.

_h Macro in Command Line

When you select a path in the timewell by clicking the mouse (thus highlighting the selected path in blue, all connected paths in grey, and all corresponding blips in blue), the host level (level 3) of the path is automatically stored in the "_h" macro. This macro is usable in the command line; for example, clicking the path "external|1e100.net|10.11.12.33|tcp80", then hitting "q" to go into typing mode in the command line, and then entering "ping _h" will cause the command line to execute the command "ping 10.11.12.33" in the shell.

Label Nodes

The command "label <node> <string>" will add a text label to the given node. <node> is the full path of the node - like "external|1e100.net". The "_k" macro is really useful here - it gives you the path of the currently highlighted node. Try going into the command line, then highlighting a node with your mouse or gamepad, then typing "label _k Hello". The text "Hello" will appear in gold over the sphere you highlighted. Note that highlight text must not contain spaces.

Saving and Loading Rules

The command "rule dump <filepath>" will save all of your labels and filters (bots that are filtering, focusing, or flagging) to the file you specify. Leave out the filepath to save to the default file, which is automatically loaded when you start up the console.

The command "rule load <filepath>" will load labels and filters from the file you specify.

Saving and Replaying Messages

1) once you have the console loaded up with data you want to save, press "q". This will turn on the command line within the console. Then type "save <filename>" and hit enter, substituting the full path where you want to save the file - like c:\users\bob\dnsave.txt. Once done, you can turn off the command line by pressing HOME key. The console will save only unfiltered messages, to the file you specify.

2) now from some other place and time, where you have that file, you can launch the console, then launch the sniffer - but instead of pressing the "SNIFF ALL" button on the sniffer, press "ADVANCED" and then "LOAD FILE" to select your file...

3) the sniffer will pump the messages from the txt file into the console in rapid ingest mode, and then stop at the end... press "[" or "]" to get things moving and move around in time in the dataset you just loaded.

Peering Inside a Blip

If you highlight a blip and then select "show contents" from the HUD menu, you will be taken to a view of all of the messages contained within the blip. The messages are laid out in a path from oldest to newest, with header and tag information displayed. The width of each message is proportional to the size of the message, and each message has an arrow indicating whether it was inbound (pointing toward you) with respect to the path the blip is on, or outbound (pointing away from you).

The path is laid out so that you can look down a little bit (using the down arrow) and then fly along it with the 'w' key (go backward with 's') to review the entire set of messages. Use 'v' to increase your speed.

If you are using the sniffer feed, built-in sniffer, or you've loaded a PCAP file; and you mouse over a message, and the message is still in the feed's cache, you will receive a histogram showing the contents of the actual packet. Use 'a' and 'd' to move sideways to get into the viewing position you want.

The packet is shown as a 3d histogram. The first byte in the packet is the top-left corner; the last byte is the bottom right corner. Each cell in the histogram has height and brightness proportional to the byte value (255 is highest, 0 is lowest). If a byte is within the ASCII range, the corresponding ASCII character is shown. If the header length is known, the header bytes will be highlighted in blue.

Press 'b' to go back to where you were before you selected "show contents". Press 'c' to clear out the view and go back to the well.

Consolidating and Separating Nodes

If a node and its descendants are taking up too much space, highlight the node and choose "consolidate" from the menu. All descendants of the node will be collapsed down (consolidated) into one line. Blips along that line will accumulate all the messages involving all the descendants.

To undo the consolidation, highlight the node and choose "separate". The descendants will be split back out into individual nodes. The timewell has configurable thresholds for auto consolidation of nodes in the second and third levels from root. Once you "separate" a node, it will no longer be subject to auto consolidation.

"Rewind to Here" Blip Menu Option

Choosing the "rewind to here" option from the menu when you have a blip highlighted will reset the timewell (clear all nodes and traffic) and start it back from the point in time represented by the blip.

Saving a PCAP With the Packets You Want (Pro Version Only)

The blip menu "mark" option will mark all messages contained in the blip. You can browse around, marking the blips you want to research further... then hover over the root node (center of the timewell) or press 'm' for the root menu and choose the "pcap" option to make the sniffer save the packets corresponding to all the marked messages into a file name "dn.pcap" and located in the .deepnode directory. This is a great way to pre-filter a pcap so you aren't overwhelmed with data in other tools.

Turn on the Java Console

Lots of debugging information is written out to the "Java Console" by the Deep Node Console, but the java console is turned off by default. To change this, go into your Java control panel widget, choose the Advanced tab, and select "show console".