Zeek is een open-source en wereldwijd toonaangevend beveiligingsmonitoringprogramma dat wordt gebruikt als netwerkintrusiedetectiesysteem en netwerkverkeeranalyser. Beveiligingsprofessionals gebruiken het om verdachte handtekeningen te detecteren en DNS-, HTTP- en FTP-activiteit te volgen. Zeek registreert netwerkactiviteiten in aparte bestanden. Deze bestanden bevatten alle belangrijke informatie zoals MIME types, server responses, DNS requests, HTTP sessies, aangevraagde URI's, SSL certificaten en meer.
Eerst moet je alle systeempakketten bijwerken naar de meest recent beschikbare versie. Je kunt ze allemaal bijwerken door de volgende opdracht uit te voeren.
dany@pindabook:~$ sudo apt update && sudo apt upgrade -y
[sudo] wachtwoord voor root:
Geraakt:1 http://deb.debian.org/debian bookworm InRelease
Ophalen:2 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]
Ophalen:3 http://security.debian.org/debian-security bookworm-security InRelease [48,0 kB]
Ophalen:4 http://download.opensuse.org/repositories/security:/zeek/Debian_12 InRelease [1.552 B]
Ophalen:5 http://security.debian.org/debian-security bookworm-security/main Sources [97,9 kB]
Ophalen:6 http://security.debian.org/debian-security bookworm-security/main amd64 Packages [158 kB]
Ophalen:7 http://security.debian.org/debian-security bookworm-security/main Translation-en [95,2 kB]
Ophalen:8 http://download.opensuse.org/repositories/security:/zeek/Debian_12 Packages [30,7 kB]
487 kB opgehaald in 1s (617 kB/s)
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
1 pakket kan opgewaardeerd worden. Voer 'apt list --upgradable' uit om het te zien.
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Opwaardering wordt doorgerekend... Klaar
De volgende pakketten zullen opgewaardeerd worden:
libarchive13
1 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 343 kB aan archieven opgehaald worden.
Na deze bewerking zal er 0 B extra schijfruimte gebruikt worden.
Ophalen:1 http://security.debian.org/debian-security bookworm-security/main amd64 libarchive13 amd64 3.6.2-1+deb12u1 [343 kB]
343 kB opgehaald in 0s (5.341 kB/s)
apt-listchanges: De changelogs worden ingelezen...
(Database wordt ingelezen ... 186640 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libarchive13_3.6.2-1+deb12u1_amd64.deb wordt voorbereid...
Bezig met uitpakken van libarchive13:amd64 (3.6.2-1+deb12u1) over (3.6.2-1) ...
Instellen van libarchive13:amd64 (3.6.2-1+deb12u1) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...
Installeer na het bijwerken van alle systeempakketten enkele vereiste pakketten met de volgende opdracht.
dany@pindabook:~$ sudo apt install curl gnupg2 wget
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
curl is reeds de nieuwste versie (7.88.1-10+deb12u5).
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
gnupg2 wget
0 opgewaardeerd, 2 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 1.429 kB aan archieven opgehaald worden.
Na deze bewerking zal er 4.155 kB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n]
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 wget amd64 1.21.3-1+b2 [984 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 gnupg2 all 2.2.40-1.1 [445 kB]
1.429 kB opgehaald in 0s (8.107 kB/s)
Voorheen niet geselecteerd pakket wget wordt geselecteerd.
(Database wordt ingelezen ... 186542 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../wget_1.21.3-1+b2_amd64.deb wordt voorbereid...
Bezig met uitpakken van wget (1.21.3-1+b2) ...
Voorheen niet geselecteerd pakket gnupg2 wordt geselecteerd.
Uitpakken van .../gnupg2_2.2.40-1.1_all.deb wordt voorbereid...
Bezig met uitpakken van gnupg2 (2.2.40-1.1) ...
Instellen van gnupg2 (2.2.40-1.1) ...
Instellen van wget (1.21.3-1+b2) ...
Bezig met afhandelen van triggers voor install-info (6.8-6+b1) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Het Zeek pakket is standaard niet opgenomen in de Debian standaard softwarebronnen. Je moet dus eerst de Zeek softwarebron toevoegen aan APT.
Voeg eerst de Zeek softwarebron toe met de volgende opdracht.
dany@pindabook:~$ echo 'deb http://download.opensuse.org/repositories/security:/zeek/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list
[sudo] wachtwoord voor root:
deb http://download.opensuse.org/repositories/security:/zeek/Debian_12/ /
Download vervolgens de Zeek GPG-sleutel en voeg deze toe met de volgende opdracht.
dany@pindabook:~$ curl -fsSL https://download.opensuse.org/repositories/security:zeek/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null
Werk vervolgens de cache van de softwarebron bij met de volgende opdracht.
dany@pindabook:~$ sudo apt update
Geraakt:1 http://security.debian.org/debian-security bookworm-security InRelease
Geraakt:2 http://deb.debian.org/debian bookworm InRelease
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Ophalen:4 http://download.opensuse.org/repositories/security:/zeek/Debian_12 InRelease [1.552 B]
Ophalen:5 http://download.opensuse.org/repositories/security:/zeek/Debian_12 Packages [30,7 kB]
32,2 kB opgehaald in 1s (40,5 kB/s)
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Alle pakketten zijn up-to-date.
Je kunt nu Zeek installeren door de volgende opdracht uit te voeren.
dany@pindabook:~$ sudo apt install zeek
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
De volgende extra pakketten zullen geïnstalleerd worden:
libbroker-dev libc-ares2 libdbus-1-dev liblockfile1 libmaxminddb-dev libpcap-dev libpcap0.8-dev libpkgconf3 libssl-dev lockfile-progs m4
pkg-config pkgconf pkgconf-bin postfix-mta-sts-resolver python3-aiodns python3-aiohttp python3-aioredis python3-aiosignal python3-aiosqlite
python3-async-timeout python3-attr python3-charset-normalizer python3-deprecated python3-frozenlist python3-git python3-gitdb
python3-hiredis python3-idna python3-multidict python3-packaging python3-pycares python3-redis python3-semantic-version python3-smmap
python3-typing-extensions python3-uvloop python3-wrapt python3-yarl sendmail-base sendmail-bin sendmail-cf zeek-btest zeek-btest-data
zeek-client zeek-core zeek-core-dev zeek-spicy-dev zeek-zkg zeekctl zlib1g-dev
Voorgestelde pakketten:
libssl-doc m4-doc python-aiosqlite-doc python-attr-doc python-git-doc redis-server python-pycares-doc python-semantic-version-doc
python3-nose sendmail-doc logcheck resolvconf sasl2-bin
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
libbroker-dev libc-ares2 libdbus-1-dev liblockfile1 libmaxminddb-dev libpcap-dev libpcap0.8-dev libpkgconf3 libssl-dev lockfile-progs m4
pkg-config pkgconf pkgconf-bin postfix-mta-sts-resolver python3-aiodns python3-aiohttp python3-aioredis python3-aiosignal python3-aiosqlite
python3-async-timeout python3-attr python3-charset-normalizer python3-deprecated python3-frozenlist python3-git python3-gitdb
python3-hiredis python3-idna python3-multidict python3-packaging python3-pycares python3-redis python3-semantic-version python3-smmap
python3-typing-extensions python3-uvloop python3-wrapt python3-yarl sendmail-base sendmail-bin sendmail-cf zeek zeek-btest zeek-btest-data
zeek-client zeek-core zeek-core-dev zeek-spicy-dev zeek-zkg zeekctl zlib1g-dev
0 opgewaardeerd, 52 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 90,7 MB/90,8 MB aan archieven opgehaald worden.
Na deze bewerking zal er 607 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n]
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 python3-idna all 3.3-1 [39,4 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 libc-ares2 amd64 1.18.1-3 [102 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 python3-pycares amd64 4.3.0-2 [30,5 kB]
...
Ophalen:48 http://ftp.gwdg.de/pub/opensuse/repositories/security%3A/zeek/Debian_12 zeek-zkg 6.2.1-0 [518 kB]
Ophalen:49 http://ftp.gwdg.de/pub/opensuse/repositories/security%3A/zeek/Debian_12 zeek-client 6.2.1-0 [488 kB]
Ophalen:50 http://ftp.gwdg.de/pub/opensuse/repositories/security%3A/zeek/Debian_12 zeek 6.2.1-0 [461 kB]
90,7 MB opgehaald in 14s (6.710 kB/s)
Extraheren van sjablonen uit pakketten: 100%
Voorheen niet geselecteerd pakket python3-idna wordt geselecteerd.
(Database wordt ingelezen ... 181702 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-python3-idna_3.3-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-idna (3.3-1) ...
...
Voorheen niet geselecteerd pakket zeek wordt geselecteerd.
Uitpakken van .../51-zeek_6.2.1-0_amd64.deb wordt voorbereid...
Bezig met uitpakken van zeek (6.2.1-0) ...
Instellen van python3-attr (22.2.0-1) ...
Instellen van python3-charset-normalizer (3.0.1-2) ...
Instellen van libmaxminddb-dev:amd64 (1.7.1-1) ...
...
Instellen van pkg-config:amd64 (1.8.1-1) ...
Instellen van python3-redis (4.3.4-3) ...
Instellen van sendmail-base (8.17.1.9-2) ...
adduser: Waarschuwing: de persoonlijke map `/var/lib/sendmail' is niet van de gebruiker die u aan het aanmaken bent.
update-inetd: warning: cannot add service, /etc/inetd.conf does not exist
update-inetd: warning: cannot add service, /etc/inetd.conf does not exist
update-inetd: warning: cannot add service, /etc/inetd.conf does not exist
Instellen van postfix-mta-sts-resolver (1.1.2-1.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/postfix-mta-sts-resolver.service → /lib/systemd/system/postfix-mta-sts-resolver.service.
Instellen van sendmail-bin (8.17.1.9-2) ...
update-alternatives: /usr/libexec/sendmail/sendmail wordt gebruikt om in de automatische modus in /usr/sbin/sendmail-mta (sendmail-mta) te voorzien
update-alternatives: /usr/libexec/sendmail/sendmail wordt gebruikt om in de automatische modus in /usr/sbin/sendmail-msp (sendmail-msp) te voorzien
You are doing a new install, or have erased /etc/mail/sendmail.mc.
If you've accidentaly erased /etc/mail/sendmail.mc, check /var/backups.
I am creating a safe, default sendmail.mc for you and you can
run sendmailconfig later if you need to change the defaults.
Updating sendmail environment ...
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Could not open /etc/mail/databases(No such file or directory), creating it.
Could not open /etc/mail/sendmail.mc(No such file or directory)
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Turning off Host Status collection
Could not open /etc/mail/databases(No such file or directory), creating it.
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Checking filesystem, this may take some time - it will not hang!
... Done.
Checking for installed MDAs...
Adding link for newly extant program (mail.local)
sasl2-bin not installed, not configuring sendmail support.
To enable sendmail SASL2 support at a later date, invoke "/usr/share/sendmail/update_auth"
Creating/Updating SSL(for TLS) information
Creating /etc/mail/tls/starttls.m4...
Creating SSL certificates for sendmail.
*** *** *** WARNING *** WARNING *** WARNING *** WARNING *** *** ***
Everything you need to support STARTTLS (encrypted mail transmission
and user authentication via certificates) is installed and configured
but is *NOT* being used.
To enable sendmail to use STARTTLS, you need to:
1) Add this line to /etc/mail/sendmail.mc and optionally
to /etc/mail/submit.mc:
include(`/etc/mail/tls/starttls.m4')dnl
2) Run sendmailconfig
3) Restart sendmail
Updating /etc/hosts.allow, adding "sendmail: all".
Please edit /etc/hosts.allow and check the rules location to
make sure your security measures have not been overridden -
it is common to move the sendmail:all line to the *end* of
the file, so your more selective rules take precedence.
Checking {sendmail,submit}.mc and related databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/Makefile...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Disabling HOST statistics file(/var/lib/sendmail/host_status).
Creating /etc/mail/sendmail.cf...
Creating /etc/mail/submit.cf...
Informational: confCR_FILE file empty: /etc/mail/relay-domains
Warning: confCT_FILE source file not found: /etc/mail/trusted-users
it was created
Informational: confCT_FILE file empty: /etc/mail/trusted-users
Warning: confCW_FILE source file not found: /etc/mail/local-host-names
it was created
Warning: access_db source file not found: /etc/mail/access
it was created
Updating /etc/mail/access...
Linking /etc/aliases to /etc/mail/aliases
Informational: ALIAS_FILE file empty: /etc/mail/aliases
Updating /etc/mail/aliases...
/etc/mail/aliases: 0 aliases, longest 0 bytes, 0 bytes total
Warning: 3 database(s) sources
were not found, (but were created)
please investigate.
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor sgml-base (1.31) ...
Bezig met afhandelen van triggers voor install-info (6.8-6+b1) ...
Instellen van libpcap0.8-dev:amd64 (1.10.3-1) ...
Instellen van libpcap-dev:amd64 (1.10.3-1) ...
Instellen van zeek-core-dev (6.2.1-0) ...
Instellen van zeek-spicy-dev (6.2.1-0) ...
Instellen van zeek-zkg (6.2.1-0) ...
Instellen van zeek (6.2.1-0) ...
Vervolgens moet je het Zeek installatiepad toevoegen aan je systeemvariabele. Je kunt het met de volgende opdracht toevoegen.
dany@pindabook:~$ echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc
Activeer vervolgens de systeemvariabele met de volgende opdracht.
dany@pindabook:~$ source ~/.bashrc
Je kunt nu de Zeek-versie verifiëren met de volgende opdracht:
dany@pindabook:~$ zeek --version
zeek version 6.2.1
Eerst bepalen we welke netwerkkaarten actief zijn:
dany@pindabook:~$ip a
1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: wlp4s0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether ac:7b:a1:42:e0:5f brd ff:ff:ff:ff:ff:ff inet 192.168.129.29/23 brd 192.168.129.255 scope global dynamic noprefixroute wlp4s0 valid_lft 5597sec preferred_lft 5597sec inet6 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f/64 scope global dynamic noprefixroute valid_lft 86327sec preferred_lft 71927sec inet6 fe80::6865:fb5:500c:e2cd/64 scope link noprefixroute valid_lft forever preferred_lft forever
Op deze computer is enkel wlp4s0 als actieve fysieke netwerkkaart actief. Dit gegeven stellen we in met de opdracht:
dany@pindabook:~$ sudo nano /opt/zeek/etc/node.cfg
En passen we de volgende instelling aan van
interface=eth0
naar
interface=wlp4s0
Sla het bestand op en controleer dan de Zeek configuratie met de volgende opdracht.
dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl check
[sudo] wachtwoord voor root:
Hint: Run the zeekctl "deploy" command to get started.
zeek scripts are ok.
Je kunt Zeek nu inzetten met de volgende opdracht.
dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl deploy
checking configurations ...
installing ...
creating policy directories ...
installing site policies ...
generating standalone-layout.zeek ...
generating local-networks.zeek ...
generating zeekctl-config.zeek ...
generating zeekctl-config.sh ...
stopping ...
stopping zeek ...
starting ...
starting zeek ...
Op dit punt is Zeek geïnstalleerd en geconfigureerd. Je kunt nu de status van Zeek controleren met de volgende opdracht.
dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl status
Name Type Host Status Pid Started
zeek standalone localhost running 2980 03 Jun 18:43:18
Zeek slaat zijn logbestanden op in de map /opt/zeek/logs/current/. Je kunt alle logbestanden controleren met de volgende opdracht.
dany@pindabook:~$ sudo ls -l /opt/zeek/logs/current/
totaal 192
-rw-r--r-- 1 root zeek 250 3 jun 18:44 capture_loss.log
-rw-r--r-- 1 root zeek 6995 3 jun 18:53 conn.log
-rw-r--r-- 1 root zeek 2367 3 jun 18:51 dns.log
-rw-r--r-- 1 root zeek 7316 3 jun 18:53 files.log
-rw-r--r-- 1 root zeek 6439 3 jun 18:53 http.log
-rw-r--r-- 1 root zeek 211 3 jun 18:44 known_hosts.log
-rw-r--r-- 1 root zeek 243 3 jun 18:44 known_services.log
-rw-r--r-- 1 root zeek 33012 3 jun 18:43 loaded_scripts.log
-rw-r--r-- 1 root zeek 753 3 jun 18:44 notice.log
-rw-r--r-- 1 root zeek 837 3 jun 18:45 ntp.log
-rw-r--r-- 1 root zeek 251 3 jun 18:43 packet_filter.log
-rw-r--r-- 1 root zeek 487 3 jun 18:44 software.log
-rw-r--r-- 1 root zeek 917 3 jun 18:53 stats.log
-rw-r--r-- 1 root zeek 21 3 jun 18:43 stderr.log
-rw-r--r-- 1 root zeek 204 3 jun 18:43 stdout.log
-rw-r--r-- 1 root zeek 83820 3 jun 18:53 telemetry.log
Om het DNS logboek van Zeek te controleren, voer je de volgende opdracht uit.
dany@pindabook:~$ sudo tail /opt/zeek/logs/current/dns.log
1717433473.720941 CMf5dq4rmX27y7J3zf 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433473.720941 CiciwFvWGhtftRTD8 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433473.720941 C9b9k81gDzdDfdsYTg 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433655.073790 Ckto9G3u1l3yLHPGZ1 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433655.073790 CA8OYf2rUXtVwkhxF2 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433655.073790 CScUkwLRF8uRjFdgk 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433665.672072 CS5Zr22brsy1JkYK49 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f 5353 ff02::fb 5353 udp 0 -_ipps._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433665.672138 CoG5E930PQnCOKiFC2 192.168.129.29 5353 224.0.0.251 5353 udp 0 - _ipps._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433683.846790 C8ON7I2o5Vo9v52S79 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -_ipp._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433683.846791 ClxBza4fTvIEflRgn7 192.168.129.55 5353 224.0.0.251 5353 udp 0 - _ipp._tcp.local1 C_INTERNET 12 PTR - - F F F F 0 - - F
Om het logboek met verbindingen van Zeek te controleren, voer je de volgende opdracht uit.
dany@pindabook:~$ sudo tail /opt/zeek/logs/current/conn.log
1717433255.244116 CFcqal2qxffjGfkwHl 192.168.129.29 41548 192.168.129.2 80 tcp http 0.006154 88 222 SF T T 0 ShADadFf 6 408 4 438 -
1717433255.261152 CARnVD3t6O3GqLnli5 192.168.129.29 41558 192.168.129.2 80 tcp http 0.004974 91 213 SF T T 0 ShADadFf 6 411 4 429 -
1717433255.277067 CxwaZsct3fhOmjr48 192.168.129.29 41560 192.168.129.2 80 tcp http 0.004240 91 204 SF T T 0 ShADadFf 6 411 4 420 -
1717433292.471349 CR3Bgl1nyhzJnURpik 192.168.129.55 5353 224.0.0.251 5353 udp dns - - - S0 T F 0 D 1 61 0 0 -
1717433292.471349 CNFPTZ1q340CNlelt2 192.168.129.2 5353 224.0.0.251 5353 udp dns - - - S0 T F 0 D 1 71 0 0 -
1717433292.471349 CMOD0b46c5qtpdxAwi 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp dns -- - S0 F F 0 D 1 81 0 0 -
1717433316.309043 CaKMje4SRUXDZScQE5 192.168.129.29 41550 192.168.129.2 80 tcp http 0.012225 88 210 SF T T 0 ShADadFf 6 408 4 426 -
1717433316.330983 CIjYvi1KtAWFCMLlT3 192.168.129.29 41556 192.168.129.2 80 tcp http 0.007987 91 213 SF T T 0 ShADadFf 6 411 4 429 -
1717433316.348028 C8clggPH2BiaA6C8i 192.168.129.29 41570 192.168.129.2 80 tcp http 0.025199 91 204 SF T T 0 ShADadFf 6 411 4 420 -
1717433266.128516 COScHh0OGmo47avAb fe80::f24d:d4ff:fe0a:b6d2 130 ff02::1 131 icmp - - - -OTH T F 0 - 1 76 0 0 -
Een zeer traditionele manier van interactie met Zeek logs is het gebruik van Unix-achtige tekstverwerkingsprogramma's zoals awk. Awk vereist het specificeren van de interessante velden als posities in het logbestand. Kijk nog eens naar het dns.log bestand hierboven en overweeg de parameters die nodig zijn om alleen het bron IP adres, de query en het antwoord te bekijken. Deze waarden verschijnen in het 3e, 10e en 22e veld in de Zeek TSV (Tab Separated Values) logboekvermeldingen. Daarom kunnen we awk aanroepen met de volgende syntaxis:
dany@pindabook:~$ sudo awk '/^[^#]/ {print $3, $10, $22}' /opt/zeek/logs/current/dns.log
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
192.168.129.55 pindadomo.local -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f _ipps._tcp.local -
192.168.129.29 _ipps._tcp.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 _ipp._tcp.local -
192.168.129.55 _ipp._tcp.local -
192.168.129.55 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
192.168.129.55 pindadomo.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
192.168.129.55 pindadomo.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f _ipps._tcp.local -
192.168.129.29 _ipps._tcp.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 _ipp._tcp.local -
192.168.129.55 _ipp._tcp.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.55 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
Nu hebben we een veel compactere weergave, met alleen de velden die we willen. Helaas vereist dit het specificeren van velden per locatie. Als we de loguitvoer zouden wijzigen, of als het Zeek project de loguitvoer zou wijzigen, zouden alle scripts die we gebouwd hebben met awk en veldlocaties aangepast moeten worden. Om deze reden beveelt het Zeek project alternatieven zoals het volgende aan.
Het Zeek project biedt een hulpmiddel genaamd zeek-cut om het voor analisten makkelijker te maken om te werken met Zeek logs in TSV formaat. Het verwerkt de header in elk bestand en stelt de gebruiker in staat om te verwijzen naar de specifieke kolomgegevens die beschikbaar zijn. Dit in tegenstelling tot gereedschappen als awk die de gebruiker vragen om te verwijzen naar velden waarnaar verwezen wordt door hun positie.
Bekijk opnieuw het eerder gebruikte dns.log bestand. Als we het verwerken met zeek-cut, zonder aanpassingen, is dit het resultaat:
dany@pindabook:~$ sudo cat /opt/zeek/logs/current/dns.log | zeek-cut
1717433111.222640 Ckxx6d1VUIO82kzsH4 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433111.222641 CLEMLA1Au53RzA7nH3 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433111.222641 CyAE2N1VBTc7OyVM2i 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433153.661363 CR7mmW3Hmf9157tAT4 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f 5353 ff02::fb 5353 udp 0 -_ipps._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433153.661430 C67WdDYigEcTH8DN7 192.168.129.29 5353 224.0.0.251 5353 udp 0 - _ipps._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433171.842578 Cpnzs9zWvWaq1H1k4 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -_ipp._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433171.843064 C89Sy4wdmWhGJXBr9 192.168.129.55 5353 224.0.0.251 5353 udp 0 - _ipp._tcp.local1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433292.471349 CR3Bgl1nyhzJnURpik 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433292.471349 CNFPTZ1q340CNlelt2 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433292.471349 CMOD0b46c5qtpdxAwi 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433473.720941 CMf5dq4rmX27y7J3zf 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433473.720941 CiciwFvWGhtftRTD8 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433473.720941 C9b9k81gDzdDfdsYTg 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433655.073790 Ckto9G3u1l3yLHPGZ1 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433655.073790 CA8OYf2rUXtVwkhxF2 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433655.073790 CScUkwLRF8uRjFdgk 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433665.672072 CS5Zr22brsy1JkYK49 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f 5353 ff02::fb 5353 udp 0 -_ipps._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433665.672138 CoG5E930PQnCOKiFC2 192.168.129.29 5353 224.0.0.251 5353 udp 0 - _ipps._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433683.846790 C8ON7I2o5Vo9v52S79 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -_ipp._tcp.local 1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433683.846791 ClxBza4fTvIEflRgn7 192.168.129.55 5353 224.0.0.251 5353 udp 0 - _ipp._tcp.local1 C_INTERNET 12 PTR - - F F F F 0 - - F
1717433776.008802 C2TdVs4RGV9SDxoGF5 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433776.008803 CXqEEg2KKgqqxUOsC4 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433776.009226 CHsptQ294fDDoB2tNe 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
1717433896.843253 CJBLS3Re6Tg1JAXUi 192.168.129.55 5353 224.0.0.251 5353 udp 0 - pindadomo.local1 C_INTERNET 1 A - - F F F F 0 - - F
1717433896.843253 CrqAPc1ohffhg9HkY8 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353 ff02::fb 5353 udp 0 -pindadomo.local 1 C_INTERNET 1 A - - F F F F 0 - - F
1717433896.843253 Cf1ndg1TqY0PsHwloe 192.168.129.2 5353 224.0.0.251 5353 udp 0 - pindadomo.local- - - - 0 NOERROR T F F F 0 192.168.129.2 120.000000 F
Dit is de dns.log, zonder de eerder genoemde headervelden. Merk op dat we de opdracht cat in een pijplijn moeten aanroepen om bestanden met zeek-cut te verwerken.
Als we zeek-cut de velden doorgeven die we willen zien, ziet de uitvoer er als volgt uit:
dany@pindabook:~$ sudo cat /opt/zeek/logs/current/dns.log | zeek-cut id.orig_h query answers
192.168.129.29 29.129.168.192.in-addr.arpa -
192.168.129.29 2.129.168.192.in-addr.arpa -
192.168.129.29 pindabook.home -
192.168.129.29 pindabook -
192.168.129.29 251.0.0.224.in-addr.arpa mdns.mcast.net
192.168.129.29 55.129.168.192.in-addr.arpa -
192.168.129.29 b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa -
192.168.129.29 5.e.9.7.c.8.d.2.4.8.1.6.1.4.3.d.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa -
192.168.129.29 f.7.9.0.2.c.3.a.2.0.9.2.a.f.8.a.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa -
192.168.129.29 b.4.f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.1.c.4.8.7.5.0.2.0.a.2.ip6.arpa -
192.168.129.29 pindabook.home -
192.168.129.29 pindabook -
192.168.129.29 2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
192.168.129.29 2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
192.168.129.29 2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
192.168.129.29 d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
192.168.129.29 d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
192.168.129.29 d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f 2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f 2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f 2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa -
192.168.129.2 pindadomo.local 192.168.129.2
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.55 pindadomo.local -
De volgorde van veldnamen doorgegeven aan zeek-cut bepaalt de uitvoervolgorde. Dit betekent dat je zeek-cut ook kunt gebruiken om velden te herschikken. Bijvoorbeeld:
dany@pindabook:~$ sudo cat /opt/zeek/logs/current/dns.log | zeek-cut query answers id.orig_h
29.129.168.192.in-addr.arpa - 192.168.129.29
2.129.168.192.in-addr.arpa - 192.168.129.29
pindabook.home - 192.168.129.29
pindabook - 192.168.129.29
251.0.0.224.in-addr.arpa mdns.mcast.net 192.168.129.29
55.129.168.192.in-addr.arpa - 192.168.129.29
b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa - 192.168.129.29
5.e.9.7.c.8.d.2.4.8.1.6.1.4.3.d.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa - 192.168.129.29
f.7.9.0.2.c.3.a.2.0.9.2.a.f.8.a.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa - 192.168.129.29
b.4.f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.1.c.4.8.7.5.0.2.0.a.2.ip6.arpa - 192.168.129.29
pindabook.home - 192.168.129.29
pindabook - 192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 192.168.129.29
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 192.168.129.29
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 192.168.129.29
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa - 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
pindadomo.local 192.168.129.2 192.168.129.2
pindadomo.local - 2a02:a03f:e02a:8901:d341:6184:2d8c:79e5
pindadomo.local - 192.168.129.55
Dit was maar een korte voorstelling van Zeek. Om alle mogelijkheden van Zeek te leren kennen, raadpleeg je best de uitstekende online documentatie.
dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl stop
[sudo] wachtwoord voor root:
stopping zeek ...
dany@pindabook:~$ sudo apt purge zeek
[sudo] wachtwoord voor root:
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig:
libbroker-dev libdbus-1-dev libmaxminddb-dev libpcap-dev libpcap0.8-dev
libpkgconf3 libssl-dev pkg-config pkgconf pkgconf-bin python3-git
python3-gitdb python3-semantic-version python3-smmap zeek-btest
zeek-btest-data zeek-client zeek-core zeek-core-dev zeek-spicy-dev
zeek-zkg zeekctl zlib1g-dev
Gebruik 'sudo apt autoremove' om ze te verwijderen.
De volgende pakketten zullen VERWIJDERD worden:
zeek*
0 opgewaardeerd, 0 nieuw geïnstalleerd, 1 te verwijderen en 0 niet opgewaardeerd.
Na deze bewerking zal er 467 kB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n]
(Database wordt ingelezen ... 186640 bestanden en mappen momenteel geïnstalleerd.)
zeek (6.2.1-0) wordt verwijderd ...
dany@pindabook:~$ sudo apt autoremove
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
De volgende pakketten zullen VERWIJDERD worden:
libbroker-dev libdbus-1-dev libmaxminddb-dev libpcap-dev libpcap0.8-dev libpkgconf3 libssl-dev
pkg-config pkgconf pkgconf-bin python3-git python3-gitdb python3-semantic-version python3-smmap
zeek-btest zeek-btest-data zeek-client zeek-core zeek-core-dev zeek-spicy-dev zeek-zkg zeekctl
zlib1g-dev
0 opgewaardeerd, 0 nieuw geïnstalleerd, 23 te verwijderen en 0 niet opgewaardeerd.
Na deze bewerking zal er 596 MB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n]
(Database wordt ingelezen ... 186637 bestanden en mappen momenteel geïnstalleerd.)
zeek-zkg (6.2.1-0) wordt verwijderd ...
zeek-core-dev (6.2.1-0) wordt verwijderd ...
libbroker-dev (6.2.1-0) wordt verwijderd ...
zeek-spicy-dev (6.2.1-0) wordt verwijderd ...
libpcap-dev:amd64 (1.10.3-1) wordt verwijderd ...
libpcap0.8-dev:amd64 (1.10.3-1) wordt verwijderd ...
libdbus-1-dev:amd64 (1.14.10-1~deb12u1) wordt verwijderd ...
libmaxminddb-dev:amd64 (1.7.1-1) wordt verwijderd ...
pkg-config:amd64 (1.8.1-1) wordt verwijderd ...
pkgconf:amd64 (1.8.1-1) wordt verwijderd ...
pkgconf-bin (1.8.1-1) wordt verwijderd ...
libpkgconf3:amd64 (1.8.1-1) wordt verwijderd ...
libssl-dev:amd64 (3.0.11-1~deb12u2) wordt verwijderd ...
python3-git (3.1.30-1+deb12u2) wordt verwijderd ...
python3-gitdb (4.0.9-2) wordt verwijderd ...
python3-semantic-version (2.9.0-2) wordt verwijderd ...
python3-smmap (5.0.0-1) wordt verwijderd ...
zeek-btest (6.2.1-0) wordt verwijderd ...
zeek-btest-data (6.2.1-0) wordt verwijderd ...
zeek-client (6.2.1-0) wordt verwijderd ...
zeekctl (6.2.1-0) wordt verwijderd ...
zeek-core (6.2.1-0) wordt verwijderd ...
zlib1g-dev:amd64 (1:1.2.13.dfsg-1) wordt verwijderd ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor sgml-base (1.31) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...
dany@pindabook:~$ sudo rm /etc/apt/sources.list.d/security:zeek.list
dany@pindabook:~$ sudo rm /etc/apt/trusted.gpg.d/security_zeek.gpg
dany@pindabook:~$ sudo rm -r /opt/zeek/