Provided by: horst_5.0-2_amd64 bug

NAME

       horst - Highly Optimized Radio Scanning Tool

SYNOPSIS

       horst  [-v]  [-h]  [-q]  [-D]  [-a]  [-c file] [-C channel] [-i interface] [-t sec] [-V view] [-d ms] [-b
       bytes] [-M file] [-s] [-u] [-N] [-n IP] [-p port] [-o file] [-X name] [-x command] [-e mac] [-f pkt_name]
       [-m mode] [-B BSSID]

DESCRIPTION

       horst  is a small, lightweight IEEE802.11 wireless LAN analyzer with a text interface. Its basic function
       is similar to tcpdump, Wireshark or Kismet,  but  it's  much  smaller  and  shows  different,  aggregated
       information  which  is not easily available from other tools. It is mainly targeted at debugging wireless
       LANs with a focus on ad-hoc (IBSS) mode in larger mesh networks. It can be useful to get a quick overview
       of what's going on on all wireless LAN channels and to identify problems.

       • Shows signal values per station.

       • Calculates  channel  utilization  ("usage") by adding up the amount of time the packets actually occupy
         the medium.

       • "Spectrum Analyzer" shows signal levels and usage per channel.

       • Text-based "graphical" packet history, with signal, packet type and physical rate

       • Shows all stations per ESSID and the live TSF per node as it is counting.

       • Detects IBSS "splits" (same ESSID but different BSSID - this is a common driver problem).

       • Statistics of packets/bytes per physical rate and per packet type.

       • Has some support for mesh protocols (OLSR and batman).

       • Can filter specific packet types, source MAC addresses or BSSIDs.

       • Client/server support for monitoring on remote nodes.

       • Can be controlled via a named pipe.

       See MONITOR MODE below for more information about the network interface setup.

OPTIONS

       -v     Show version.

       -h     Show summary of options.

       -q     Quiet mode. Don't show user interface. This is only useful in conjunction when running  in  server
              mode (-C) or writing to a file (-o).

       -D     Show  lot's  of debugging output, including a full package dump. Only available when compiled with
              DEBUG=1.

       -a     Always add virtual monitor interface. Don't try to set existing interface to monitor mode.

       -c configfile
              Use configfile instead of the default "/etc/horst.conf".

       -C channel
              Set inital channel (number not frequency).

       -i intf
              Operate on the given network interface instead of the default "wlan0".

       -t sec Timeout (remove) nodes after not receiving packets from them for this time in seconds (default: 60
              sec).

       -V view
              Display   'view'.  Valid  view  names  are  "history",  "hist",  "essid",  "statistics",  "stats",
              "spectrum", "spec".

       -d ms  Display update interval. The default value of 100ms can be increased to reduce CPU load caused  by
              redrawing the screen.

       -b bytes
              Receive buffer size. The receive buffer size can be set to tune memory consumption and reduce lost
              packets under load.

       -M filename
              MAC address to host name mapping file. The file can either be a dhcp.leases file from  dnsmasq  or
              contain  mappings  in  the  form  "MAC<space>name"  (e.g.:  "00:01:02:03:04:05 test") line by line
              (default filename: /tmp/dhcp.leases).

       -s     Show a poor mans "spectrum analyzer". The same can be achieved by  running  horst  as  normal  and
              pressing the button 's' (Spec); then 'c' (Chan) and 'a' (Automatically change channel).

       -u     Upper channel limit for the automatic channel change.

       -N     Allow  client  connections.  Server  mode.  Only  one client connection is supported at the moment
              (default: off).

       -n IP  Connect to a horst instance running in server-mode at the specified IP address.

       -p port
              Use the specified port (default: 4444) for client/server connections.

       -o filename
              Write a information about each received packet into file. Note that you  can  send  to  STDOUT  by
              using -o /dev/stdout. See OUTPUT FILE FORMAT below.

       -X     Accept control commands on a named pipe (default /tmp/horst).

       -X name
              Accept control commands on a named pipe with given name or set pipe name used with -x.

       -x command
              Send  control  command  to  another  horst process who was started with -X and then exit. Multiple
              commands can be concatenated with ';'. Currently implemented commands are:

              pause
                     Pause horst processing

              resume
                     Resume horst processing

              reset
                     Reset all history, statistics and views

              channel=X
                     Set channel channel number

              channel_scan=X
                     Automatically change channels (1 or 0)

              channel_dwell=X
                     Set channel dwell time when automatically changing channel (ms)

              channel_upper=X
                     Set max channel when automatically changing channel

              outfile=X
                     Write  to  outfile  named X. If the file is already open, it is cleared and re-openend.  If
                     filename is not specified ("outfile=") any existing file is closed and no file is written.

       -e MAC Filter all MAC addresses except these, to show only packets originating  from  the  specified  MAC
              addresses. This option can be specified multiple times.

       -f pkt_type
              Filter  all  packets  except  these. This option can be specified multiple times. For valid packet
              names see NAMES AND ABBREVIATIONS below.

       -m (AP|STA|ADH|PRB|WDS|UNKNOWN)
              Only show/include packets and nodes of this mode. Note that the mode is infered by the information
              of  packets we received and it may take some time until a node is properly classified. This option
              can be specified multiple times.

       -B BSSID
              Only show/include packets which belong to the given BSSID.

TEXT USER INTERFACE

       The ncurses-based text interface tries to display a lot of information,  so  it  may  look  confusing  at
       first. Below we describe the different screens and options.

       Main screen

              The  initial  (main)  screen  is split into three parts. The upper area shows a list of aggregated
              "node" information, the most useful information about each sender which was  discovered,  one  per
              line:

                     /
                            "Spinner" to show activity

                     Pk
                            Percentage of this node's packets in relation to all received packets

                     Re%
                            Percentage of retried frames of all frames this node sent

                     Cha
                            Channel number

                     Sig
                            Signal value (RSSI) in dBm

                     RAT
                            Physical data rate

                     TRANSMITTER
                            MAC address of sender

                     MODE
                            Operating Mode (AP, AHD, PRB, STA, WDS), see "NAMES AND ABBREVIATIONS"

                     ENCR
                            Encryption (WPA1, WPA2, WEP)

                     ESSID
                            ESSID

                     INFO
                            Additional info like "BATMAN", IP address...

              The lower area shows a scrolling list of packets as they come in:

                     Cha
                            Channel number

                     Sig
                            Signal value (RSSI) in dBm

                     RAT
                            Physical data rate

                     TRANSMITTER
                            MAC address of sender

                     BSSID
                            BSSID

                     TYPE
                            Packet type, see "NAMES AND ABBREVIATIONS"

                     INFO
                            Additional info like ESSID, TFS, IP address...

              The lower right box shows bar graphs for:

                     Signal of last received packet in green

                     bps    Bits per second of all received packets

                     Usage  Percentage of channel use

              The  lower  edge  is  the menu and status bar, it shows which keys to press for other screens. The
              status shows ">" when horst is running or "=" when it is paused, then "F" when any kind of  filter
              is active, the Channel, the monitor interface in use and the time.

       Pause ('p' or <space>)

              Can be used to pause/resume horst. When horst is paused it will loose packets received in the mean
              time.

       Reset ('r')

              Clears all history and aggregated statistical data.

       History ('h')

              The history screen scrolls from right to left and shows a  bar  for  each  packet  indicating  the
              signal level. In the line below that, the packet type is indicated by one character (See NAMES AND
              ABBREVIATIONS below) and the rough physical data rate is indicated below that in blue.

       ESSID ('e')

              The ESSID screen groups information by ESSID and shows the mode (AP, IBSS), the MAC address of the
              sender, the BSSID, the TSF, the beacon interval, the channel, the signal, a "W" when encrytoion is
              used and the IP address if known.

       Statistics ('a')

              The statistics screen groups packets by physical rate and by packet type and shows other kinds  of
              aggregated and statistical information based on packets.

       Spectrum Analyzer ('s')

              The  "poor  mans spectrum analyzer" screen is only really useful when horst is started with the -s
              option or the "Automatically change channel" option is selected in the  "Chan"  settings,  or  the
              config option channel_scan is set.

              It shows the available channels horizontally and vertical bars for each channel:

                     Signal in green

                     Physical rate in blue

                     Channel usage in orange/brown

       By pressing the 'n' key, the display can be changed to show only the average signal level on each channel
       and the last 4 digits of the MAC address of  the  individual  nodes  at  the  level  (height)  they  were
       received. This can give a quick graphical overview of the distance of nodes.

       Filters ('f')

              This configuration dialog can be used to define the active filters.

       Channel Settings ('c')

              This  configuration  dialog  can  be  used to change the channel changing behaviour of horst or to
              change to a different channel manually.

       Sort ('o')

              Only active in the main screen, can be used to sort the node list in the  upper  area  by  Signal,
              Time, BSSID or Channel.

NAMES AND ABBREVIATIONS

       802.11 standard frames

                       Management frames
              ──┬────────┬────────────────────────
              a │ ASOCRQ │ Association request
              A │ ASOCRP │ Associaion response
              a │ REASRQ │ Reassociation request
              A │ REASRP │ Reassociation response

              p │ PROBRQ │ Probe request
              P │ PROBRP │ Probe response
              T │ TIMING │ Timing Advertisement
              B │ BEACON │ Beacon
              t │ ATIM   │ ATIM
              D │ DISASC │ Disassociation
              u │ AUTH   │ Authentication
              U │ DEAUTH │ Deauthentication
              C │ ACTION │ Action
              c │ ACTNOA │ Action No Ack

                      Control frames
              ──┬────────┬───────────────────
              w │ CTWRAP │ Control Wrapper
              b │ BACKRQ │ Block Ack Request
              B │ BACK   │ Block Ack
              s │ PSPOLL │ PS-Poll
              R │ RTS    │ RTS
              C │ CTS    │ CTS
              K │ ACK    │ ACK
              f │ CFEND  │ CF-End
              f │ CFENDK │ CF-End + CF-Ack

                              Data frames
              ──┬────────┬────────────────────────────────
              D │ DATA   │ Data
              F │ DCFACK │ Data + CF-Ack
              F │ DCFPLL │ Data + CF-Poll
              F │ DCFKPL │ Data + CF-Ack + CF-Poll
              n │ NULL   │ Null (no data)
              f │ CFACK  │ CF-Ack (no data)
              f │ CFPOLL │ CF-Poll (no data)
              f │ CFCKPL │ CF-Ack + CF-Poll (no data)
              Q │ QDATA  │ QoS Data
              F │ QDCFCK │ QoS Data + CF-Ack
              F │ QDCFPL │ QoS Data + CF-Poll
              F │ QDCFKP │ QoS Data + CF-Ack + CF-Poll
              N │ QDNULL │ QoS Null (no data)
              f │ QCFPLL │ QoS CF-Poll (no data)
              f │ QCFKPL │ QoS CF-Ack + CF-Poll (no data)
              * │ BADFCS │ Bad frame checksum

       Packet types

              Similar to 802.11 frames above but higher level and as a bit field (types can overlap, e.g. DATA +
              IP) and including more information, like IP, ARP, BATMAN, OLSR...

                                       Packet types
              ───────┬──────────┬────────────────────────────────────────────
              CTRL   │ 0x000001 │ WLAN Control frame
              MGMT   │ 0x000002 │ WLAN Management frame
              DATA   │ 0x000004 │ WLAN Data frame
              BADFCS │ 0x000008 │ WLAN frame checksum (FCS) bad
              BEACON │ 0x000010 │ WLAN beacon frame
              PROBE  │ 0x000020 │ WLAN probe request or response
              ASSOC  │ 0x000040 │ WLAN associaction request/response frame
              AUTH   │ 0x000080 │ WLAN authentication frame
              RTSCTS │ 0x000100 │ WLAN RTS or CTS
              ACK    │ 0x000200 │ WLAN ACK or BlockACK
              NULL   │ 0x000400 │ WLAN NULL Data frame

              QDATA  │ 0x000800 │ WLAN QoS Data frame (WME/WMM)
              ARP    │ 0x001000 │ ARP packet
              IP     │ 0x002000 │ IP packet
              ICMP   │ 0x004000 │ IP ICMP packet
              UDP    │ 0x008000 │ IP UDP
              TCP    │ 0x010000 │ IP TCP
              OLSR   │ 0x020000 │ OLSR protocol
              BATMAN │ 0x040000 │ BATMAND Layer3 or BATMAN-ADV Layer 2 frame
              MESHZ  │ 0x080000 │ MeshCruzer protocol

       Operating modes

              Bit field of operating mode type which is infered from received packets. Modes may  overlap,  i.e.
              it is common to see STA and PRB at the same time.

                            Operating modes
              ────────┬──────┬─────────────────────────────
              AP      │ 0x01 │ Access Point (AP)
              ADH     │ 0x02 │ Ad-hoc node
              STA     │ 0x04 │ Station (AP client)
              PRB     │ 0x08 │ Sent PROBE requests
              WDS     │ 0x10 │ WDS or 4 Address frames
              UNKNOWN │ 0x20 │ Unknown e.g. RTS/CTS or ACK

MONITOR MODE

       To  capture  and  analyze 802.11 traffic, the interface needs to be in monitor mode. You can either setup
       the interface manually beforehand  or  let  horst  setup  it  automatically  at  startup.  Usually,  root
       privileges are required to modify an interface setup.

       horst  should  work  with  any  wireleass  LAN  card  and driver which supports monitor mode, with either
       "prism2" or "radiotap" headers. This includes most modern mac80211-based drivers.

       If the interface is not in monitor mode at startup, horst first tries to put  the  interface  in  monitor
       mode.  If  it  fails  (for example when the interface is already in use), a new virtual monitor interface
       (horst0) is added and used instead. The virtual monitor interface is removed when horst exits. Note  that
       changing the channel via a virtual monitor interface is not allowed by the wireless driver, so options -C
       and -s do not work when virtual monitor interface is used.

       Examples of how to setup an interface manually:

       Using iw:
              iw wlan0 interface add mon0 type monitor

              or

              sudo iw wlan1 set type monitor
              sudo iw wlan1 set channel 6

       Using iwconfig:
              iwconfig wlan0 mode monitor
              iwconfig wlan0 channel 1
              ifconfig wlan0 up

       Using madwifi:
              wlanconfig wlan0 create wlandev wifi0 wlanmode monitor

       Using hostap:
              iwconfig wlan0 mode monitor
              iwpriv wlan0 monitor_type 1

NOTES

       Signal values and ranges may differ between wireless drivers and versions.

OUTPUT FILE FORMAT

       The format of the output file (-o flag) is a  comma  separated  list  of  the  following  fields  in  the
       following order, one packet each line.

       timestamp
              Local time, including microseconds (e.g. 2015-05-16 15:05:44.338806 +0300)

       packet_type
              802.11 MAC packet type name as defined in the section "NAMES AND ABBREVIATIONS".

       wlan_src
              Source MAC address

       wlan_dst
              Destination MAC address

       wlan_bssid
              BSSID

       pkt_types
              Higher level packet name as defined in section "NAMES AND ABBREVIATIONS".

       phy_signal
              Signal strength in dBm

       wlan_len
              Packet length (MAC)

       phy_rate
              Physical data rate

       phy_freq
              Received while tuned to this frequency.

       wlan_tsf
              TFS timer value

       wlan_essid
              ESSID, network name

       wlan_mode
              Operating modes as defined in "NAMES AND ABBREVIATIONS".

       wlan_channel
              Channel number

       wlan_wep
              Encryption in use

       wlan_wpa
              WPA1 Encryption in use

       wlan_rsn
              RSN (WPA2) Encryption in use

       ip_src IP source address (if available)

       ip_dst IP destionation address (if available)

SEE ALSO

       horst.conf(5), tcpdump(1), wireshark(1), kismet(1), README, http://br1.einfach.org/tech/horst

AUTHOR

       horst was written by Bruno Randolf <br1@einfach.org>.

       This  manual page was written by Antoine Beaupré <anarcat@debian.org>, for the Debian project (and may be
       used by others).

                                                  July 22, 2015                                         HORST(8)