The Cyber Center for Security and Analytics 
The Cyber Center for Security and Analytics 
 
ZEEK INTRUSION DETECTION SERIES 
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
 
Document Version:  03-13-2020 
 
 
 
 
 
 
 
“CyberTraining CIP: Cyberinfrastructure Expertise on High-throughput 
Networks for Big Science Data Transfers” 
Award 1829698 
 
 
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
  
1 
1.1 
3 
1.1.1 
1.1.2 
1.1.3 
1.1.4 
Contents 
 
Overview ............................................................................................................................. 3 
Objectives............................................................................................................................ 3 
Lab topology........................................................................................................................ 3 
Lab settings ......................................................................................................................... 3 
Lab roadmap ................................................................................................................... 4 
Introduction to Zeek ................................................................................................... 4 
The Zeek event engine ......................................................................................... 5 
State management ........................................................................................ 5 
Transport layer analyzers .............................................................................. 5 
Application layer analyzers ........................................................................... 5 
Infrastructure ................................................................................................ 5 
The Zeek policy script interpreter ........................................................................ 6 
Zeek analyzers ...................................................................................................... 6 
Signatures ............................................................................................................. 6 
ZeekControl .......................................................................................................... 7 
2  Using ZeekControl to update the status of Zeek ........................................................ 7 
Starting a new instance of Zeek ........................................................................... 9 
Stopping the active instance of Zeek ................................................................. 10 
Introduction to Zeek’s traffic analysis capabilities ................................................... 10 
Processing offline packet capture files .............................................................. 11 
Command format for processing packet capture files ............................... 11 
Leveraging a script to detect brute force attacks present in a pcap file .... 11 
3.2 
Launching Mininet .............................................................................................. 12 
3.3  Generating and analyzing live network traffic capture ..................................... 15 
Leveraging the Tcpdump command utility ................................................. 16 
Capturing live network traffic ..................................................................... 16 
Analyzing the newly captured network traffic ........................................... 18 
References ........................................................................................................................ 20 
 
 
3.3.1 
3.3.2 
3.3.3 
3.1.1 
3.1.2 
1.2 
1.3 
1.4 
1.5 
2.1 
2.2 
3.1 
 
 
 
 
Page 2  
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
  
Overview 
 
This lab introduces Zeek, an open-source network analysis framework primarily used in 
security monitoring and traffic analysis. The primary focus of this lab is to explain Zeek’s 
layered architecture while demonstrating Zeek’s capabilities towards performing network 
traffic analysis.  
 
 
Objectives 
 
By the end of this lab, students should be able to: 
 
1.  Understand Zeek’s layered architecture. 
2.  Start and manage a Zeek instance using the ZeekControl utility. 
3.  Use Zeek to process packet captures files. 
4.  Generate and analyze live network traffic in Zeek. 
 
 
Lab topology 
 
Figure 1 displays the topology of the lab. This lab utilizes the Client machine to host and 
configure the Zeek IDS. The zeek1 and zeek2 virtual machines will be used to generate 
and collect network traffic. 
 
Figure 1. Lab topology. 
 
 
Lab settings 
 
The information (case-sensitive) in the table below provides the credentials necessary to 
access the machines used in this lab.  
 
Table 1. Credentials to access the Client machine 
Device 
Client 
Account 
Password 
admin 
password 
 
 
 
Page 3  
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
  
 
Table 2. Shell variables and their corresponding absolute paths. 
Variable Name 
Absolute Path 
$ZEEK_INSTALL 
/usr/local/zeek 
$ZEEK_TESTING_TRACES 
/home/zeek/zeek/testing/btest/Traces 
$ZEEK_PROTOCOLS_SCRIPT 
/home/zeek/zeek/scripts/policy/protocols 
 
 
Lab roadmap 
 
This lab is organized as follows: 
 
1.  Section 1: Introduction to Zeek.  
2.  Section 2: Using ZeekControl to update the status of Zeek. 
3.  Section 3: Introduction to Zeek’s traffic analysis capabilities. 
Introduction to Zeek 
 
 
1 
 
Zeek is a passive, open-source network traffic analyzer. It is primarily used as a security 
monitor that inspects all traffic on a network link for signs of suspicious activity1. It can 
run  on  commodity  hardware  with  standard  UNIX-based  systems  and  can  be used  as  a 
passive network monitoring tool. 
 
Setting  Zeek  as  a  node  with  an  assigned  IP  address  on  the  monitored  network  is  not 
mandatory. Figure 2 shows Zeek’s layered architecture. Once Zeek receives packets, its 
event  engine  converts  them  into  events.  The  events  are  then  forwarded  to  the  policy 
script interpreter, which generates logs, notifications, and/or actions.  
 
Figure 2. Zeek’s architecture. 
 
 
 
 
Page 4  
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
 
  
The Zeek event engine 
Zeek  uses  the  standard  libpcap  library  for  capturing  packets  to  be  used  in  network 
monitoring and analysis.  
 
 
1.1 
 
The  event  engine  layer  performs  low-level  network  packets  analysis.  It  receives  raw 
packets from the network layer (packet capture), sorts them by connection, reassembles 
data  streams,  and  decodes  application  layer  protocols.  Whenever  it  encounters 
something potentially relevant to the policy layer, it generates an event.  
 
The event engine consists of several analyzers responsible for well-defined tasks. Typical 
tasks  include  decoding  a  specific  protocol,  performing  signature-matching,  identifying 
backdoors, etc. Usually, an analyzer is accompanied by a default script which implements 
some general policy adjustable to the local environment. The event engine can be divided 
into four major parts. 
 
 
1.1.1  State management 
 
Zeek’s  main  data  structure  is  a  connection  which  follows  typical  flow  identification 
mechanisms, such as 5-tuple approaches. The 5-tuple structure consists of the source IP 
address/port number, destination IP address/port number, and the protocol in use. For a 
connection-oriented protocol like TCP, the definition of a connection is more clear-cut, 
however for others such as UDP and ICMP,  Zeek implements a flow-like abstraction to 
aggregate packets. Each packet belongs to exactly one connection. 
 
 
1.1.2  Transport layer analyzers 
 
On the transport layer, Zeek analyzes TCP, UDP packets. In TCP, Zeek’s associated analyzer 
closely  follows  the  various  state  changes,  keeps  track  of  acknowledgments,  handles 
retransmissions and much more.  
 
 
1.1.3  Application layer analyzers 
 
The analysis of the application layer data of a connection depends on the service. There 
are  analyzers  for  a  wide  variety  of  different  protocols,  e.g.  HTTP,  SMTP  or  DNS,  that 
generally conduct detailed analysis of the data stream. 
 
 
1.1.4 
 
The  general 
components, the script interpreter, and data structures. 
includes  the  event  and  timer  management 
Infrastructure 
infrastructure  of  Zeek 
 
 
 
Page 5  
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
  
The Zeek policy script interpreter  
 
 
1.2 
 
While  the  event  engine  itself  is  policy-neutral,  the  top  layer  of  Zeek  defines  the 
environment-specific network security policy. By writing handlers for events that may be 
raised by the event engine, the user can precisely define the constraints within the given 
network. If a security breach is detected, the policy layer generates an alert.  
 
New event handlers can be created in Zeek’s own scripting language. While providing all 
expected  convenience  of  a  powerful  scripting  language,  it  has  been  designed  with 
network intrusion detection in mind. While it is expected that additional policy scripts are 
written by the user, there are nevertheless several default scripts included with the initial 
installation of Zeek. These default scripts already perform a wide range of analyses and 
are easily customizable. 
 
 
1.3 
 
The majority of Zeek’s analyzers are in its event engine with accompanying policy scripts 
that  can  be  customized by  the  user.  Sometimes,  however,  the  analyzer  is  just  a  policy 
script  implementing  multiple  event  handlers.  The  analyzers  perform  application  layer 
decoding, anomaly detection, signature matching and connection analysis. Zeek has been 
designed so that it is easy to add additional analyzers. 
 
 
1.4 
 
Most network intrusion detection systems (NIDS) match a large set of signatures against 
the network traffic. Here, a signature is a pattern of bytes that the NIDS tries to locate in 
the payload of network packets. As soon as a match is found, the system generates an 
alert.  
 
A  well-known  IDS  system  is  Snort;  conversely,  Zeek’s  general  approach  to  intrusion 
detection has a much broader scope than traditional signature-matching, yet still contains 
a  signature  engine  providing  a  functionality  that  is  similar  to  that  of  other  systems. 
Furthermore, while Zeek implements its own flexible signature language, there exists a 
converter which directly translates Snort’s signatures into Zeek’s syntax, as shown below: 
 
Zeek analyzers 
Signatures 
 
 
 
Page 6  
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
  
Figure 3. Example of signature conversion1. (a) Snort’s signature. (b) Zeek’s signature. 
 
 
 
ZeekControl 
1.5 
 
ZeekControl, formerly known as BroControl, is an interactive shell for easily operating 
and managing Zeek installations on a single system or across multiple systems in a traffic-
monitoring cluster. 
 
Figure 4. ZeekControl scheme. 
 
Using ZeekControl to update the status of Zeek 
 
Page 7  
 
 
2 
 
 
 
 
Lab 1:  Introduction to the Capabilities of Zeek 
 
  
Step 1. From the top of the screen, click on the Client button as shown below to enter the 
Client machine. 
 
 
Step 2. The Client machine will now open, and the desktop will be displayed. On the left 
side of the screen, click on the LXTerminal icon as shown below. 
 
 
 
 
Step  3.  Using  the  Terminal,  input  the  following  command  to  enter  the  ZeekControl 
directory. To type capital letters, it is recommended to hold the  Shift key while typing 
rather than using the Caps key. 
 
cd $ZEEK_INSTALL/bin/ 
 
 
The active directory will change, as seen on the second line of the Terminal. Note that 
$ZEEK_INSTALL variable was substituted by its value (/usr/local/zeek) listed in Table 2.  
 
Step 4. Use the following command to view the contents of the active directory. 
 
 
ls 
 
 
The directory contents will be displayed. The green file name portrays an executable file. 
 
Step 5. Use the following command to launch the ZeekControl tool. When prompted 
for a password, type password and hit Enter. 
 
 
 
 
 
Page 8