You can start Wireshark from the command line, but it can also be started from
most Window managers as well. In this section we will look at starting it from
the command line.
Wireshark supports a large number of command line parameters. To see what they
are, simply enter the command wireshark -h and the help information shown in
Help information available from Wireshark (or something similar) should be printed.
Help information available from Wireshark.
Wireshark 4.5.0 (v4.5.0rc0-1896-g8ec46c963ceb)
Interactively dump and analyze network traffic.
See https://www.wireshark.org for more information.
Usage: wireshark [options] ... [ <infile> ]
Capture interface:
-i <interface>, --interface <interface>
name or idx of interface (def: first non-loopback)
-f <capture filter> packet filter in libpcap filter syntax
-s <snaplen>, --snapshot-length <snaplen>
packet snapshot length (def: appropriate maximum)
-p, --no-promiscuous-mode
don't capture in promiscuous mode
-I, --monitor-mode capture in monitor mode, if available
-B <buffer size>, --buffer-size <buffer size>
size of kernel buffer in MiB (def: 2MiB)
-y <link type>, --linktype <link type>
link layer type (def: first appropriate)
--time-stamp-type <type> timestamp method for interface
-D, --list-interfaces print list of interfaces and exit
-L, --list-data-link-types
print list of link-layer types of iface and exit
--list-time-stamp-types print list of timestamp types for iface and exit
Capture display:
-k start capturing immediately (def: do nothing)
-S update display when new items are captured
-l turn on automatic scrolling while -S is in use
--update-interval interval between updates with new items, in milliseconds (def: 100ms)
Capture stop conditions:
-c <item count> stop after n items (def: infinite)
-a <autostop cond.> ..., --autostop <autostop cond.> ...
duration:NUM - stop after NUM seconds
filesize:NUM - stop this file after NUM KB
files:NUM - stop after NUM files
packets:NUM - stop after NUM packets
Capture output:
-b <ringbuffer opt.> ..., --ring-buffer <ringbuffer opt.>
duration:NUM - switch to next file after NUM secs
filesize:NUM - switch to next file after NUM KB
files:NUM - ringbuffer: replace after NUM files
packets:NUM - switch to next file after NUM packets
interval:NUM - switch to next file when the time is
an exact multiple of NUM secs
Input file:
-r <infile>, --read-file <infile>
set the filename to read from (no pipes or stdin!)
Processing:
-R <read filter>, --read-filter <read filter>
filter in display filter (wireshark-filter(4)) syntax
-n disable all name resolutions (def: all enabled)
-N <name resolve flags> enable specific name resolution(s): "mtndsNvg"
-d <layer_type>==<selector>,<decode_as_protocol> ...
"Decode As", see the man page for details
Example: tcp.port==8888,http
--enable-protocol <proto_name>
enable dissection of proto_name
--disable-protocol <proto_name>
disable dissection of proto_name
--only-protocols <protocols>
Only enable dissection of these protocols, comma
separated. Disable everything else
--disable-all-protocols
Disable dissection of all protocols
--enable-heuristic <short_name>
enable dissection of heuristic protocol
--disable-heuristic <short_name>
disable dissection of heuristic protocol
User interface:
-C <config profile> start with specified configuration profile
-H hide the capture info dialog during capture
-Y <display filter>, --display-filter <display filter>
start with the given display filter
-g <item number> go to specified item number after "-r"
-J <jump filter> jump to the first item matching the display
filter
-j search backwards for a matching item after "-J"
-t (a|ad|adoy|d|dd|e|r|u|ud|udoy)[.[N]]|.[N]
format of time stamps (def: r: rel. to first)
-u s|hms output format of seconds (def: s: seconds)
-X <key>:<value> eXtension options, see man page for details
-z <statistics> show various statistics, see man page for details
Output:
-w <outfile|-> set the output filename (or '-' for stdout)
-F <capture type> set the output file type; default is pcapng.
an empty "-F" option will list the file types.
--capture-comment <comment>
add a capture file comment, if supported
--temp-dir <directory> write temporary files to this directory
(default: /tmp)
Diagnostic output:
--log-level <level> sets the active log level ("critical", "warning", etc.)
--log-fatal <level> sets level to abort the program ("critical" or "warning")
--log-domains <[!]list> comma-separated list of the active log domains
--log-fatal-domains <list>
list of domains that cause the program to abort
--log-debug <[!]list> list of domains with "debug" level
--log-noisy <[!]list> list of domains with "noisy" level
--log-file <path> file to output messages to (in addition to stderr)
Miscellaneous:
-h, --help display this help and exit
-v, --version display version info and exit
-P <key>:<path> persconf:path - personal configuration files
persdata:path - personal data files
-o <name>:<value> ... override preference or recent setting
-K <keytab> keytab file to use for kerberos decryption
--display <X display> X display to use
--fullscreen start Wireshark in full screen
We will examine each of the command line options in turn.
The first thing to notice is that issuing the command wireshark by itself will
launch Wireshark. However, you can include as many of the command line
parameters as you like. Their meanings are as follows ( in alphabetical order ):
- -a <capture autostop condition>, —autostop <capture autostop condition>
-
Specify a criterion that specifies when Wireshark is to stop writing
to a capture file. The criterion is of the form test:value, where test
is one of:- duration:value
- Stop writing to a capture file after value of seconds have elapsed.
- filesize:value
-
Stop writing to a capture file after it reaches a size of value
kilobytes (where a kilobyte is 1000 bytes, not 1024 bytes). If
this option is used together with the -b option, Wireshark will
stop writing to the current capture file and switch to the next
one if filesize is reached. - files:value
-
Stop writing to capture files after value number of files were
written. - packets:value
- Stop writing to a capture file after value number of packets were written.
- -b <capture ring buffer option>
-
If a maximum capture file size was specified, this option causes Wireshark to
run in “ring buffer” mode, with the specified number of files. In “ring
buffer” mode, Wireshark will write to several capture files. Their
name is based on the number of the file and on the creation date and
time.When the first capture file fills up Wireshark will switch to writing
to the next file, and so on. With the files option it’s
also possible to form a “ring buffer.” This will fill up new files until the
number of files specified, at which point the data in the first file will be
discarded so a new file can be written.If the optional duration is specified, Wireshark will also
switch to the next file when the specified number of seconds has elapsed even
if the current file is not completely filled up.- duration:value
-
Switch to the next file after value seconds have elapsed, even
if the current file is not completely filled up. - filesize:value
-
Switch to the next file after it reaches a size of value kilobytes
(where a kilobyte is 1000 bytes, not 1024 bytes). - files:value
-
Begin again with the first file after value number of files were
written (form a ring buffer). - packets:value
-
Switch to the next file after value number of packets were written, even
if the current file is not completely filled up. - interval:value
- Switch to the next file when the time is an exact multiple of value seconds.
- -B <capture buffer size>, —buffer-size <capture buffer size>
-
Set capture buffer size (in MB, default is 2MB). This is used by the capture
driver to buffer packet data until that data can be written to disk. If you
encounter packet drops while capturing, try to increase this size. Not supported
on some platforms. - -C <config profile>
- Start with the specified configuration profile.
- -c <capture packet count>
-
This option specifies the maximum number of packets to capture when capturing
live data. It would be used in conjunction with the-koption. - —capture-comment <comment>
- Add the comment string to the capture file, if supported by the file format.
- -d <layer_type>==<selector>,<decode_as_dissector>
-
«Decode As»: override what protocol is called under specific circumstances.
See Section 11.4.2, “User Specified Decodes” for details about how this feature works.An example of causing TCP traffic on port 8888 to be decoded as HTTP:
wireshark -d tcp.port==8888,http
To see all possible values for <layer_type>, run Wireshark or tshark with
-d help.
You can see all possible values for <decode_as_dissectors> by running
tshark -G dissectorsbut note that not all dissectors can be used at all layers. - -D, —list-interfaces
-
Print a list of the interfaces on which Wireshark can capture, then exit. For
each network interface, a number and an interface name, possibly followed by a
text description of the interface, is printed. The interface name or the number
can be supplied to the-iflag to specify an interface on which to capture.This can be useful on systems that don’t have a command to list them (e.g.,
Windows systems, or UNIX systems lackingifconfig -a). The number can be
especially useful on Windows, where the interface name is a GUID.Note that “can capture” means that Wireshark was able to open that device to
do a live capture. If, on your system, a program doing a network capture must be
run from an account with special privileges, then, if
Wireshark is run with the-Dflag and is not run from such an account, it will
not list any interfaces. - —display <DISPLAY>
-
Set the X display to use, instead of the one defined in the environment, or
the default display. - —enable-protocol <proto_name>, —disable-protocol <proto_name>
- Enable and disable the dissection of the protocol.
- —enable-heuristic <short_name>, —disable-heuristic <short_name>
- Enable and disable the dissection of the heuristic protocol.
- -f <capture filter>
-
This option sets the initial capture filter expression to be used when capturing
packets. - —fullscreen
- Start Wireshark in full screen.
- -g <packet number>
-
After reading in a capture file using the -r flag, go to the given packet
number. - -h, —help
-
This option requests Wireshark to print its version and usage instructions
(as shown here) and exit. - -H
- Hide the capture info dialog during live packet capture.
- -i <capture interface>, —interface <capture interface>
-
Set the name of the network interface or pipe to use for live packet capture.
Network interface names should match one of the names listed in
wireshark -D
(described above). A number, as reported bywireshark -D, can also be used. If
you’re using UNIX,netstat -i,ifconfig -aorip linkmight also work to
list interface names, although not all versions of UNIX support the-aflag to
ifconfig.If no interface is specified, Wireshark searches the list of interfaces,
choosing the first non-loopback interface if there are any non-loopback
interfaces, and choosing the first loopback interface if there are no
non-loopback interfaces; if there are no interfaces, Wireshark reports an error
and doesn’t start the capture.Pipe names should be either the name of a FIFO (named pipe) or “-” to read
data from the standard input. Data read from pipes must be in standard libpcap
format. - -J <jump filter>
-
After reading in a capture file using the
-rflag, jump to the first packet
which matches the filter expression. The filter expression is in display filter
format. If an exact match cannot be found the first packet afterwards is
selected. - -I, —monitor-mode
- Capture wireless packets in monitor mode if available.
- -j
-
Use this option after the
-Joption to search backwards for a first packet to
go to. - -k
-
The
-koption specifies that Wireshark should start capturing packets
immediately. This option requires the use of the-iparameter to specify the
interface that packet capture will occur from. - -K <keytab file>
- Use the specified file for Kerberos decryption.
- -l
-
This option turns on automatic scrolling if the packet list pane is being
updated automatically as packets arrive during a capture (as specified by the
-Sflag). - -L, —list-data-link-types
- List the data link types supported by the interface and exit.
- —list-time-stamp-types
- List timestamp types configurable for the interface and exit.
- -m <font>
- This option sets the name of the font used for most text displayed by Wireshark.
- -n
-
Disable network object name resolution (such as hostname, TCP and UDP port
names). - -N <name resolving flags>
-
Turns on name resolving for particular types of addresses and port numbers. The
argument is a string that may contain the following letters:- N
- Use external name resolver.
- d
- Enable name resolution from captured DNS packets.
- m
- Enable MAC address resolution.
- n
- Enable network address resolution.
- t
- Enable transport layer port number resolution.
- v
- Enable VLAN ID resolution.
- -o <preference or recent settings>
-
Sets a preference or recent value, overriding the default value and any value
read from a preference or recent file. The argument to the flag is a string of
the form prefname:value, where prefname is the name of the preference (which
is the same name that would appear in thepreferencesorrecentfile), and
value is the value to which it should be set. Multiple instances of `-o
<preference settings> ` can be given on a single command line.Preferences and Profiles The preferences you specify on the command line will override any settings
you have changed in any of your profiles; this includes when switching from
one profile to another.If you change a setting using the Preferences dialog
(see Section 11.5, “Preferences”) that you have also set on the command line,
the command line option will then be ignored, and the setting will change
as normal when you switch profiles.An example of setting a single preference would be:
wireshark -o mgcp.display_dissect_tree:TRUE
An example of setting multiple preferences would be:
wireshark -o mgcp.display_dissect_tree:TRUE -o mgcp.udp.callagent_port:2627
You can get a list of all available preference strings from the
preferences file. See Appendix B, Files and Folders for details.User Accessible Tables (UATs) can be overridden using “uat:”
followed by the UAT file name (not the preference name)
and a valid record for the file:wireshark -o "uat:user_dlts:\"User 0 (DLT=147)\",\"http\",\"0\",\"\",\"0\",\"\""
The example above would dissect packets with a libpcap data link type 147 as
HTTP, just as if you had configured it in the DLT_USER protocol preferences.
| Note | |
|---|---|
|
You can only add UAT entries from the command line. You can not |
- -p, —no-promiscuous-mode
-
Don’t put the interface into promiscuous mode. Note that the interface might be
in promiscuous mode for some other reason. Hence,-pcannot be used to ensure
that the only traffic that is captured is traffic sent to or from the machine on
which Wireshark is running, broadcast traffic, and multicast traffic to
addresses received by that machine. - -P <path setting>
-
Special path settings usually detected automatically. This is used for special
cases, e.g., starting Wireshark from a known location on an USB stick.The criterion is of the form key:path, where key is one of:
- persconf:path
- Path of personal configuration files, like the preferences files.
- persdata:path
-
Path of personal data files, it’s the folder initially opened. After the
initialization, the recent file will keep the folder last used.
- -r <infile>, —read-file <infile>
-
This option provides the name of a capture file for Wireshark to read and
display. This capture file can be in one of the formats Wireshark understands. - -R <read (display) filter>, —read-filter <read (display) filter>
-
This option specifies a display filter to be applied when reading packets from a
capture file. The syntax of this filter is that of the display filters discussed
in Section 6.3, “Filtering Packets While Viewing”. Packets not matching the filter
are discarded. - -s <capture snapshot length>, —snapshot-length <capture snapshot length>
-
This option specifies the snapshot length to use when capturing packets.
Wireshark will only capture snaplen bytes of data for each packet. - -S
-
This option specifies that Wireshark will display packets as it captures them.
This is done by capturing in one process and displaying them in a separate
process. This is the same as “Update list of packets in real time” in the
“Capture Options” dialog box. - -t <time stamp format>
-
This option sets the format of packet timestamps that are displayed in the
packet list window. The format can be one of:- r
-
Relative, which specifies timestamps are
displayed relative to the first packet captured. - a
-
Absolute, which specifies that actual times
be displayed for all packets. - ad
-
Absolute with date, which specifies that
actual dates and times be displayed for all packets. - adoy
-
Absolute with YYYY/DOY date, which specifies that
actual dates and times be displayed for all packets. - d
-
Delta, which specifies that timestamps
are relative to the previous packet.
dd: Delta, which specifies that timestamps
are relative to the previous displayed packet.- e
-
Epoch, which specifies that timestamps
are seconds since epoch (Jan 1, 1970 00:00:00) - u
-
Absolute, which specifies that actual times
be displayed for all packets in UTC. - ud
-
Absolute with date, which specifies that
actual dates and times be displayed for all packets in UTC. - udoy
-
Absolute with YYYY/DOY date, which specifies that
actual dates and times be displayed for all packets in UTC.
- -u <s | hms>
- Show timesamps as seconds (“s”, the default) or hours, minutes, and seconds (“hms”)
- -v, —version
-
This option requests Wireshark to print out its version information and
exit. - -w <savefile>
-
This option sets the name of the file to be used to save captured packets.
This can be ‘-‘ for stdout. - -y <capture link type>, —link-type <capture like types>
-
If a capture is started from the command line with
-k, set the data
link type to use while capturing packets. The values reported by-L
are the values that can be used. - —time-stamp-type <type>
-
If a capture is started from the command line with
-k, set the time
stamp type to use while capturing packets. The values reported by
--list-time-stamp-typesare the values that can be used. - -X <eXtension option>
-
Specify an option to be passed to a Wireshark/TShark module. The eXtension
option is in the form extension_key:value, where extension_key can be:- lua_script:<lua_script_filename>
- Tells Wireshark to load the given script in addition to the default Lua scripts.
- lua_script[num]:argument
-
Tells Wireshark to pass the given argument to the lua script identified by
num, which is the number indexed order of the lua_script command. For
example, if only one script was loaded with-X lua_script:my.lua, then-Xwill pass the string foo to the my.lua script. If two
lua_script1:foo
scripts were loaded, such as-X lua_script:my.lua -X lua_script:other.lua
in that order, then a-X lua_script2:barwould pass the
string bar to the second lua script, ie., other.lua. - read_format:<file_type>
-
Tells Wireshark to use a specific input file type, instead of determining it
automatically. - stdin_descr:<description>
-
Define a description for the standard input interface, instead of the default:
«Standard input».
- -Y <display filter>, —display-filter <display filter>
- Start with the given display filter.
- -z <statistics-string>
-
Get Wireshark to collect various types of statistics and display the
result in a window that updates in semi-real time. For the currently
implemented statistics consult the Wireshark manual page.
Введение
В постоянно развивающейся области кибербезопасности (Cybersecurity) понимание и анализ сетевого трафика являются важными для поддержания надежных мер безопасности. В этом руководстве вы узнаете, как использовать командную строку (CLI) Wireshark для захвата и анализа сетевого трафика, связанного с кибербезопасностью (Cybersecurity), что позволит вам приобрести необходимые навыки для улучшения безопасности вашей сети.
Введение в Wireshark и командную строку (CLI)
Wireshark — это мощный анализатор сетевых протоколов, который позволяет захватывать, проверять и анализировать сетевой трафик. Это широко используемый инструмент в области кибербезопасности (cybersecurity) для понимания и устранения проблем, связанных с сетью. Wireshark предоставляет графический интерфейс пользователя (GUI) для своей основной функциональности, но также предлагает командную строку (CLI), известную как tshark, которая позволяет выполнять анализ сетевого трафика из терминала.
Что такое командная строка (CLI) Wireshark (tshark)?
tshark — это командная версия Wireshark, которая предоставляет те же возможности анализа сети, что и версия с графическим интерфейсом, но с текстовым интерфейсом. tshark позволяет захватывать, фильтровать и анализировать сетевой трафик непосредственно из терминала, что делает его ценным инструментом для профессионалов в области кибербезопасности и сетевых администраторов.
Преимущества использования командной строки (CLI) Wireshark (tshark)
- Скриптинг и автоматизация: Командный интерфейс
tsharkпозволяет легче интегрировать его в скрипты и автоматизированные рабочие процессы, что позволяет автоматизировать задачи анализа сетевого трафика. - Удаленный доступ: Вы можете использовать
tsharkдля захвата и анализа сетевого трафика на удаленных системах, что делает его ценным инструментом для реагирования на инциденты и устранения неполадок в сети. - Эффективное использование ресурсов:
tsharkобычно более легковесен и экономит ресурсы, чем полноценный графический интерфейс Wireshark, что делает его подходящим для использования на системах с ограниченными ресурсами. - Целенаправленный анализ: Командный интерфейс
tsharkпозволяет сосредоточиться на конкретных аспектах сетевого трафика, что упрощает проведение целенаправленного анализа и извлечение соответствующей информации.
Установка командной строки (CLI) Wireshark (tshark) на Ubuntu 22.04
Чтобы установить tshark на системе Ubuntu 22.04, выполните следующие шаги:
- Обновите индекс пакетов:
sudo apt-get update
- Установите пакет
tshark:
sudo apt update
sudo apt-get install tshark
- Проверьте установку, проверив версию
tshark:
tshark --version
Вы должны увидеть отображаемую информацию о версии, что указывает на успешную установку.
Захват сетевого трафика с помощью командной строки (CLI) Wireshark
Захват сетевого трафика с помощью tshark
Для захвата сетевого трафика с использованием tshark вы можете использовать следующую команду:
tshark -i <interface> -w <output_file.pcap>
Здесь <interface> — это сетевое интерфейс, на котором вы хотите захватить трафик, а <output_file.pcap> — имя выходного файла, в котором захваченный трафик будет сохранен в формате pcap.
Например, чтобы захватить трафик на интерфейсе eth0 и сохранить его в файл с именем network_traffic.pcap, вы должны использовать следующую команду:
tshark -i eth0 -w network_traffic.pcap
Фильтрация захваченного трафика
tshark предоставляет мощный набор опций фильтрации, которые помогут вам сосредоточиться на конкретном трафике, который вас интересует. Вы можете использовать фильтры отображения для фильтрации захваченного трафика на основе различных критериев, таких как протокол, IP-адрес источника или назначения, номер порта и т. д.
Вот пример того, как захватить трафик и отфильтровать его по HTTP-запросам:
tshark -i eth0 -w http_traffic.pcap -Y "http"
Опция -Y используется для указания фильтра отображения, в данном случае для фильтрации по протоколу HTTP.
Захват трафика в течение определенного времени
Вы также можете захватывать трафик в течение определенного времени, используя опцию -a. Например, чтобы захватить трафик в течение 60 секунд:
tshark -i eth0 -w network_traffic.pcap -a duration:60
Захват трафика с нескольких интерфейсов
Если вам нужно захватить трафик с нескольких сетевых интерфейсов, вы можете использовать опцию -i несколько раз:
tshark -i eth0 -i eth1 -w network_traffic.pcap
Это позволит захватить трафик как с интерфейса eth0, так и с интерфейса eth1 и сохранить его в файл network_traffic.pcap.
Захват трафика в режиме перехвата (promiscuous mode)
Для захвата всего трафика в сети, включая трафик, не предназначенный непосредственно для устройства захвата, вы можете использовать опцию -p для включения режима перехвата (promiscuous mode):
tshark -i eth0 -p -w network_traffic.pcap
Это позволит захватить весь трафик на интерфейсе eth0, независимо от назначения.
Анализ сетевого трафика в области кибербезопасности
Анализ захваченного трафика с помощью tshark
После того, как вы захватили сетевой трафик с помощью tshark, вы можете проанализировать данные, чтобы выявить потенциальные угрозы безопасности или аномалии. tshark предоставляет широкий спектр опций и фильтров, которые помогут вам проанализировать захваченный трафик.
Отображение информации о пакетах
Для отображения захваченных пакетов и их деталей вы можете использовать следующую команду:
tshark -r network_traffic.pcap
Это отобразит информацию о пакетах, включая протокол, адреса источника и назначения, а также другие соответствующие детали.
Фильтрация трафика по протоколу
Вы можете отфильтровать захваченный трафик на основе конкретных протоколов, чтобы сосредоточиться на трафике, релевантном для вашего анализа в области кибербезопасности. Например, чтобы отобразить только HTTP-трафик:
tshark -r network_traffic.pcap -Y "http"
Это отобразит только пакеты, соответствующие протоколу HTTP.
Анализ моделей трафика
tshark можно использовать для анализа моделей трафика и выявления потенциальных угроз безопасности. Например, вы можете искать необычные объемы трафика, подозрительные адреса источника или назначения, или необычное использование протоколов.
Вот пример того, как отобразить «главных разговорщиков» (хосты с наибольшим объемом трафика) в захваченных данных:
tshark -r network_traffic.pcap -q -z conv,ip
Это отобразит таблицу с самыми активными IP-разговорами, которая поможет вам определить хосты, генерирующие большой объем трафика.
Обнаружение аномалий
tshark также можно использовать для обнаружения аномалий в сетевом трафике, таких как необычное использование протоколов, неожиданные номера портов или подозрительные IP-адреса. Вы можете использовать комбинацию фильтров и опций отображения, чтобы выявить эти аномалии.
Например, чтобы обнаружить потенциальную активность сканирования портов, вы можете искать большое количество попыток подключения к разным портам на одном и том же хосте:
tshark -r network_traffic.pcap -Y "tcp.flags.syn == 1 && tcp.flags.ack == 0" -q -z io,phs
Это отобразит гистограмму, показывающую распределение TCP SYN-пакетов, которая поможет вам выявить потенциальную активность сканирования портов.
Интеграция с LabEx
LabEx, ведущий поставщик решений в области кибербезопасности, предлагает ряд инструментов и услуг для улучшения ваших возможностей анализа сетевого трафика. Интегрируя решения LabEx с tshark, вы можете использовать передовые функции и методы для улучшения своей безопасности в области кибербезопасности.
Заключение
По окончании этого руководства вы будете хорошо понимать, как использовать командную строку (CLI) Wireshark для захвата и анализа сетевого трафика в области кибербезопасности (Cybersecurity). Эти знания позволят вам выявлять потенциальные угрозы, расследовать инциденты безопасности и принимать обоснованные решения для укрепления защиты вашей сети от кибербезопасных атак.
Время на прочтение7 мин
Количество просмотров333K
Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:
Устранение неполадок сетевого подключения
- Визуальное отображение потери пакетов
- Анализ ретрансляции TCP
- График по пакетам с большой задержкой ответа
Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)
- Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
- Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
- Просмотр трафика SMTP и POP3, чтение писем
Устранение неполадок DHCP с данными на уровне пакетов
- Изучение трансляций широковещательного DHCP
- Второй шаг обмена DHCP (DHCP Offer) с адресом и параметрами
- Клиентский запрос по предложенному адресу
- Ack от сервера, подтверждающего запрос
Извлечение файлов из сессий HTTP
- Экспорт объектов из HTTP, таких как JavaScript, изображения или даже исполняемые файлы
Извлечение файлов из сессий SMB
- Аналогично опции экспорта HTTP, но извлечение файлов, передаваемых по SMB, протоколу общего доступа к файлам в Windows
Обнаружение и проверка вредоносных программ
- Обнаружение аномального поведения, которое может указывать на вредоносное ПО
- Поиск необычных доменов или конечных IP
- Графики ввода-вывода для обнаружения постоянных соединений (маячков) с управляющими серверами
- Отфильтровка «нормальных» данных и выявление необычных
- Извлечение больших DNS-ответов и прочих аномалий, которые могут указывать на вредоносное ПО
Проверка сканирования портов и других типов сканирования на уязвимости
- Понимание, какой сетевой трафик поступает от сканеров
- Анализ процедур по проверке уязвимостей, чтобы различать ложноположительные и ложноотрицательные срабатывания
Эти примеры — только вершина айсберга. В руководстве мы расскажем, как использовать столь мощный инструмент.
Установка Wireshark
Wireshark работает на различных операционных системах и его несложно установить. Упомянем только Ubuntu Linux, Centos и Windows.
Установка на Ubuntu или Debian
#apt-get update
#apt-get install wireshark tshark
Установка на Fedora или CentOS
#yum install wireshark-gnome
Установка на Windows
На странице загрузки лежит исполняемый файл для установки. Довольно просто ставится и драйвер захвата пакетов, с помощью которого сетевая карта переходит в «неразборчивый» режим (promiscuous mode позволяет принимать все пакеты независимо от того, кому они адресованы).
Начало работы с фильтрами
С первым перехватом вы увидите в интерфейсе Wireshark стандартный шаблон и подробности о пакете.
Как только захватили сессию HTTP, остановите запись и поиграйте с основными фильтрами и настройками Analyze | Follow | HTTP Stream.
Названия фильтров говорят сами за себя. Просто вводите соответствующие выражения в строку фильтра (или в командную строку, если используете tshark). Основное преимущество фильтров — в удалении шума (трафик, который нам не интерестен). Можно фильтровать трафик по MAC-адресу, IP-адресу, подсети или протоколу. Самый простой фильтр — ввести http, так что будет отображаться только трафик HTTP (порт tcp 80).
Примеры фильтров по IP-адресам
ip.addr == 192.168.0.5
!(ip.addr == 192.168.0.0/24)
Примеры фильтров по протоколу
tcp
udp
tcp.port == 80 || udp.port == 80
http
not arp and not (udp.port == 53)
Попробуйте сделать комбинацию фильтров, которая показывает весь исходящий трафик, кроме HTTP и HTTPS, который направляется за пределы локальной сети. Это хороший способ обнаружить программное обеспечение (даже вредоносное), которое взаимодействует с интернетом по необычным протоколам.
Следуйте за потоком
Как только вы захватили несколько HTTP-пакетов, можно применить на одном из них пункт меню Analyze | Follow | HTTP Stream. Он покажет целиком сессию HTTP. В этом новом окне вы увидите HTTP-запрос от браузера и HTTP-ответ от сервера.
Резолвинг DNS в Wireshark
По умолчанию Wireshark не резолвит сетевые адреса в консоли. Это можно изменить в настройках.
Edit | Preferences | Name Resolution | Enable Network Name Resolution
Как и в случае tcpdump, процедура резолвинга замедлит отображение пакетов. Также важно понимать, что при оперативном захвате пакетов DNS-запросы с вашего хоста станут дополнительным трафиком, который могут перехватить.
Tshark для командной строки
Если вы ещё не баловались с tshark, взгляните на наше руководство с примерами фильтров. Эту программу часто игнорируют, хотя она отлично подходит для захвата сессий на удалённой системе. В отличие от tcpdump, она позволяет на лету захватывать и просматривать сессии прикладного уровня: декодеры протоколов Wireshark также доступны для tshark.
Составление правил для файрвола
Вот быстрый способ создания правил из командной строки, чтобы не искать в интернете конкретный синтаксис. Выберите подходящее правило — и перейдите в Tools | Firewall ACL Rules. Поддерживаются различные файрволы, такие как Cisco IOS, ipfilter, ipfw, iptables, pf и даже файрвол Windows через netsh.
Работа с географической базой GeoIP
Если Wireshark скомпилирован с поддержкой GeoIP и у вас есть бесплатные базы Maxmind, то программа может определять местоположение компьютеров по их IP-адресам. Проверьте в About | Wireshark, что программа скомпилирована с той версией, какая у вас в наличии. Если GeoIP присутствует в списке, то проверьте наличие на диске баз GeoLite City, Country и ASNum. Укажите расположение баз в меню Edit | Preferences | Name Resolution.
Проверьте систему на дампе трафика, выбрав опцию Statistics | Endpoints | IPv4. В колонках справа должна появиться информация о местоположении и ASN для IP-адреса.
Другая функция GeoIP — фильтрация трафика по местоположению с помощью фильтра ip.geoip. Например, так можно исключить трафик из конкретной ASN. Нижеуказанная команда исключает пакеты от сетевого блока ASN 63949 (Linode).
ip and not ip.geoip.asnum == 63949
Конечно, тот же фильтр можно применить к отдельным городам и странам. Удалите шум и оставьте только действительно интересный трафик.
Расшифровка сессий SSL/TLS
Один из способов расшифровки сессий SSL/TLS — использовать закрытый ключ с сервера, к которому подключен клиент.
Конечно, у вас не всегда есть доступ к приватному ключу. Но есть другой вариант простого просмотра трафика SSL/TLS на локальной системе. Если Firefox или Chrome загружаются с помощью специальной переменной среды, то симметричные ключи отдельных сеансов SSL/TLS записаны в файл, который Wireshark может прочитать. С помощью этих ключей Wireshark покажет полностью расшифрованную сессию!
1. Настройка переменной среды
Linux / Mac
export SSLKEYLOGFILE=~/sslkeylogfile.log
Windows
На вкладке System Properties | Advanced нажмите кнопку Environment Variables и добавьте имя переменной (SSLKEYLOGFILE), а в качестве значения — путь к файлу.
2. Настройка Wireshark
Из выпадающего меню выберите Edit | Preferences | Protocols | SSL | (Pre)-Master-Secret Log Filename — Browse, указав файл, который вы указали в переменную среды.
Начинайте захват трафика в локальной системе.
3. Перезапуск Firefox или Chrome
После перехода на сайт HTTPS лог-файл начнёт увеличиваться в размере, поскольку записывает симметричные ключи сессии.
Взгляните на ранее запущенную сессию Wireshark. Вы должны увидеть что-то похожее на скриншот внизу с расшифрованными сессиями. Расшифрованные пакеты — на вкладке в нижней панели.
Другой способ просмотра сеанса — через выпадающее меню Analysis | Follow | Stream | SSL. Если сеанс успешно расшифрован, вы увидите опцию для SSL.
Разумеется, будьте осторожны при записи этих ключей и пакетов. Если посторонний получит доступ к лог-файлу, то легко найдёт там ваши пароли и куки аутентификации.
Ещё один вариант выхода на базовый HTTP-трафика — использовать инструмент Burp Suite с загруженным сертификатом CA в браузере. В этом случае прокси расшифровывает соединение на стороне клиента, а затем устанавливает новый сеанс SSL/TLS на сервере. Есть много способов проведения такой MiTM-атаки на себя, это два самых простых.
Извлечение файлов из пакетов с помощью функции экспорта (HTTP или SMB)
Файлы легко извлекаются через меню экспорта.
File | Export Objects | HTTP
Все найденные файлы отобразятся в новом окне. Отсюда же можно сохранить отдельные файлы или сразу все. Аналогичный метод применяется для извлечения файлов из сессий SMB. Как мы уже упоминали, это протокол Microsoft Server Message Block, который используется для общего доступа к файлам под Windows.
Строка состояния
Строка состояния в правой части окна позволяет быстро перейти в нужное место сетевого дампа, щёлкнув по цветовому индикатору. Например, красным цветом в строке состояния помечены пакеты с ошибками.
Образец PCAP
Когда только начинаете работу с Wireshark, хочется посмотреть на какие-нибудь интересные дампы с пакетами. Их можно найти на странице Wireshark Samples. Примеров с разными протоколами там хватит вам на несколько месяцев анализа, есть даже образцы трафика червей и эксплоитов.
Настройка окружения
Внешний вид консоли по умолчанию всячески настраивается. Можно добавлять или удалять столбцы, добавляя даже такие простые вещи как столбец времени UTC, что сразу повышает информативность логов, если анализировать историю пакетов.
Столбцы настраиваются в меню Edit | Preferences | Appearance | Columns. Там же изменяется общий шаблон, шрифт и цвета.
На видео — полезные советы по настройке окружения, в том числе выявление неполадок по порядковым номерам последовательности TCP.
capinfos
В комплекте с Wireshark поставляется удобный инструмент командной строки capinfos. Эта утилита генерирует статистику пакетного дампа, с временем начала/окончания записи и другими подробностями. С опцией -T она выдаёт текст с табуляцией — он подходит для импорта в электронные таблицы или анализа в консоли.
test@ubuntu:~$ capinfos test.pcap
File name: test.pcap
File type: Wireshark/tcpdump/... - pcap
File encapsulation: Ethernet
File timestamp precision: microseconds (6)
Packet size limit: file hdr: 262144 bytes
Number of packets: 341 k
File size: 449 MB
Data size: 444 MB
Capture duration: 3673.413779 seconds
First packet time: 2018-12-01 11:26:53.521929
Last packet time: 2018-12-01 12:28:06.935708
Data byte rate: 120 kBps
Data bit rate: 967 kbps
Average packet size: 1300.72 bytes
Average packet rate: 93 packets/s
SHA256: 989388128d676c329ccdbdec4ed221ab8ecffad81910a16f473ec2c2f54c5d6e
RIPEMD160: 0742b6bbc79735e57904008d6064cce7eb95abc9
SHA1: d725b389bea044d6520470c8dab0de1598b01d89
Strict time order: True
Number of interfaces in file: 1
Заключение
Эта статья изначально была опубликована в 2011 году, затем серьёзно обновилась. Если у вас есть какие-либо комментарии, улучшения или советы для шпаргалки, пишите мне. Wireshark — один из тех незаменимых инструментов, который многие используют, но мало кто владеет в совершенстве. Тут можно углубляться всё дальше и дальше.
Wireshark is the ultimate tool for network sniffing, it’s available for almost any Operating System from MAC OS X, Linux and Microsoft. I think the difference is mainly in Remote Packet Protocol service/driver, because it’s customized for specific OS architecture/hardware.
You can find the download file here: https://www.wireshark.org/#download
They also provide many pages of know-how: https://www.wireshark.org/docs/
So you can go deep.
This slideshow requires JavaScript.
But today or tonight is my plan to show you how to sniff network traffic with Wireshark running in CMD/DOS/terminal style. Why is this good? You can run Wireshark in GUI free systems.
Firstly you need to have installed Wireshark.
I have version 2.0.5 64-bit version and Win.Pcap 4.1.3 (on Windows 10 x64).
Then after the installation check if Service is enabled:
Run/Search > MsConfig
Remote Packet Capture Protocol v.0 (experimental) needs to be enabled.
(if not, computer restart will be needed to service to be enabled)
After we enable the service we need to check if service is running:
Run/Search > Services
Right click on Service: Remote Packet Capture Protocol v.0 (experimental) – select: Start
Check running services in cmd with command:
net start
This slideshow requires JavaScript.
Secondly after we have service running we can start capturing traffic.
Open CMD > Running as Administrator:
You need to get to folder where Wireshark is installed => C:\Program Files\Wireshark
Example in CMD:
- cd\ => this command moves you to root directory C
- then after you’re on C:\ type => cd C:\Program Files\Wireshark to move to directory where installation files are.
- To capture real-time traffic type: tshark -D
- list of network connections will appear
- to select connection type (in my case Wifi) type: tshark -i1
- to end live capture select Ctrl+C (for Windows users)
Take care of your system and network security!
Some credit and help for post from:
http://www.howtogeek.com/106191/5-killer-tricks-to-get-the-most-out-of-wireshark/
Further reading – list of all commands:
https://www.wireshark.org/docs/wsug_html_chunked/ChCustCommandLine.html
Как использовать Wireshark
Oleg
Если Вы обнаружите, что устраняете неполадки в сети, и Вам нужно проверить отдельные пакеты, вам нужно использовать Wireshark.
Давайте рассмотрим некоторые основы-например, где загружать, как захватывать сетевые пакеты, как использовать фильтры Wireshark и многое другое.
Что такое Wireshark?
Wireshark-это программное обеспечение для анализа сетевых протоколов с открытым исходным кодом, запущенное Джеральдом Комбсом в 1998 году. Глобальная организация сетевых специалистов и разработчиков программного обеспечения поддерживает Wireshark и продолжает обновлять новые сетевые технологии и методы шифрования.
Wireshark абсолютно безопасен в использовании. Правительственные учреждения, корпорации, некоммерческие организации и образовательные учреждения используют Wireshark для устранения неполадок и обучения. Нет лучшего способа изучить нетворкинг, чем смотреть на трафик под микроскопом Wireshark.
Есть вопросы о законности Wireshark, так как это мощный анализатор пакетов. Светлая сторона силы говорит, что Вы должны использовать Wireshark только в тех сетях, где у Вас есть разрешение на проверку сетевых пакетов. Использование Wireshark для просмотра пакетов без разрешения — это путь к Темной стороне.
Как работает Wireshark?
Wireshark-это анализатор пакетов и инструмент анализа. Он захватывает сетевой трафик в локальной сети и сохраняет эти данные для автономного анализа. Wireshark захватывает сетевой трафик из Ethernet, Bluetooth, Wireless (IEEE.802.11), Token Ring, Frame Relay connections и многое другое.
Примечание: “пакет” — это одно сообщение из любого сетевого протокола (например, TCP, DNS и т. д.)
Эд. Примечание 2: трафик локальной сети находится в широковещательном режиме, то есть один компьютер с Wireshark может видеть трафик между двумя другими компьютерами. Если Вы хотите видеть трафик на внешний сайт, Вам нужно захватить пакеты на локальном компьютере.
Wireshark позволяет фильтровать журнал либо до начала захвата, либо во время анализа, так что Вы можете сузить и обнулить то, что ищете в сетевой трассировке. Например, можно настроить фильтр для просмотра TCP-трафика между двумя IP-адресами. Вы можете настроить его только для отображения пакетов, отправленных с одного компьютера. Фильтры в Wireshark-одна из основных причин, по которой он стал стандартным инструментом для анализа пакетов.
Как скачать Wireshark
Скачать и установить Wireshark очень просто. Шаг первый-проверить официальную страницу загрузки Wireshark для нужной Вам операционной системы. Базовая версия Wireshark бесплатна.
Wireshark для Windows
Wireshark поставляется в двух вариантах для Windows, 32 — битный и 64-битный. Выберите правильную версию для вашей ОС. Текущая версия-3.4.0 на момент написания этой статьи. Установка проста и не должна вызывать никаких проблем.
Wireshark для Linux
Установка Wireshark на Linux может немного отличаться в зависимости от дистрибутива Linux. Если Вы не используете один из следующих дистрибутивов, пожалуйста, дважды проверьте команды.
Ubuntu
В командной строке терминала выполните следующие команды:
sudo apt-get install wiresharksudo dpkg-reconfigure wireshark-commonsudo adduser $USER wireshark
Эти команды загружают пакет, обновляют его и добавляют права пользователя для запуска Wireshark.
Red Hat Fedora
В командной строке терминала выполните следующие команды:
sudo dnf install wireshark-qtsudo usermod -a -G wireshark username
Первая команда устанавливает GUI и CLI версию Wireshark, а вторая добавляет разрешения на использование Wireshark.
Kali Linux
Wireshark, уже установлен! Это часть базового пакета. Проверьте свое меню, чтобы убедиться. Он находится под пунктом меню “нюхать и подделывать».”
Пакеты данных на Wireshark
Теперь, когда мы установили Wireshark, давайте рассмотрим, как включить анализатор пакетов Wireshark, а затем проанализировать сетевой трафик.
Захват пакетов данных на Wireshark
Когда Вы открываете Wireshark, Вы видите экран, который показывает вам список всех сетевых подключений, которые Вы можете отслеживать. У Вас также есть поле фильтра захвата, поэтому Вы захватываете только тот сетевой трафик, который хотите видеть.
Вы можете выбрать один или несколько сетевых интерфейсов, используя “shift left-click.” Как только Вы выбрали сетевой интерфейс, Вы можете начать захват, и есть несколько способов сделать это.
Нажмите первую кнопку на панели инструментов под названием “начать захват пакетов.”
Вы можете выбрать пункт меню Capture -> Start.
Или Вы можете использовать управление нажатием клавиши – E.
Во время захвата Wireshark покажет Вам пакеты, которые он захватывает в режиме реального времени.
После того, как Вы захватили все необходимые пакеты, Вы используете те же кнопки или параметры меню, чтобы остановить захват.
Лучшая практика гласит, что Вы должны остановить захват пакетов Wireshark перед выполнением анализа.
Анализ пакетов данных на Wireshark
Wireshark показывает Вам три различных панели для проверки пакетных данных. Список пакетов, верхняя панель, представляет собой список всех пакетов в захвате. Когда Вы нажимаете на пакет, две другие панели изменяются, чтобы показать Вам подробную информацию о выбранном пакете. Вы также можете определить, является ли пакет частью разговора. Вот некоторые сведения о каждом столбце в верхней панели:
- No.: это порядок номеров пакета, который был захвачен. Скобка указывает, что этот пакет является частью разговора.
- Time: этот столбец показывает, как долго после начала захвата был захвачен этот пакет. Вы можете изменить это значение в меню настроек, Если вам нужно, чтобы отображалось что-то другое.
- Source: это адрес системы, которая отправила пакет.
- Destination: это адрес пункта назначения этого пакета.
- Protocol: это тип пакета, например TCP, DNS, DHCPv6 или ARP.
- Length: этот столбец показывает длину пакета в байтах.
- Info: этот столбец показывает вам дополнительную информацию о содержимом пакета и будет варьироваться в зависимости от того, что это за пакет.
Сведения о пакете, средняя панель, показывает вам как можно больше читаемой информации о пакете, в зависимости от того, что это за пакет. Вы можете щелкнуть правой кнопкой мыши и создать фильтры на основе выделенного текста в этом поле.
Нижняя панель, Packet Bytes, отображает пакет точно так, как он был захвачен в шестнадцатеричном формате.
Когда Вы смотрите на пакет, который является частью разговора, Вы можете щелкнуть правой кнопкой мыши пакет и выбрать следовать, чтобы увидеть только пакеты, которые являются частью этого разговора.
Фильтры Wireshark
Одной из лучших функций Wireshark являются фильтры захвата Wireshark и фильтры отображения Wireshark. Фильтры позволяют просматривать захват так, как вам нужно, чтобы Вы могли устранить имеющиеся проблемы. Вот несколько фильтров, которые помогут вам начать работу.
Фильтры Захвата Wireshark
Фильтры захвата ограничивают захваченные пакеты фильтром. Это означает, что если пакеты не соответствуют фильтру, Wireshark не сохранит их. Вот несколько примеров фильтров захвата:
host IP-address: этот фильтр ограничивает захват трафика на IP-адрес и обратно.
net 192.168.0.0/24: этот фильтр захватывает весь трафик в подсети.
dst host IP-address: захват пакетов, отправленных на указанный хост.
port 53: захват трафика только на порту 53.
port not 53 and not arp: захват всего трафика, кроме DNS и ARP-трафика.
Фильтры Отображения Wireshark
Фильтры отображения Wireshark изменяют внешний вид захвата во время анализа. После того, как Вы прекратили захват пакетов, Вы используете фильтры отображения, чтобы сузить список пакетов и устранить проблемы.
Самый полезный (по моему опыту) фильтр отображения-это:
ip.src==IP-address and ip.dst==IP-address
Этот фильтр показывает пакеты с одного компьютера (ip.src) на другой (ip.dst). Вы также можете использовать ip.addr для отображения пакетов на этот IP-адрес и обратно. Вот некоторые другие:
- tcp.port eq 25: Этот фильтр покажет Вам весь трафик на порту 25, который обычно является SMTP-трафиком.
- icmp: Этот фильтр покажет Вам только ICMP-трафик в захвате, скорее всего, это пинги.
- ip.addr != IP_address: Этот фильтр показывает весь трафик, за исключением трафика на указанный компьютер или с него.
Аналитики даже создают фильтры для обнаружения конкретных атак, как этот фильтр для обнаружения червя Sasser:
ls_ads.opnum==0x09
Дополнительные Функции Wireshark
Помимо захвата и фильтрации, в Wireshark есть еще несколько функций, которые могут сделать вашу жизнь лучше.
Параметры Раскрашивания Wireshark
Вы можете настроить Wireshark так, чтобы он окрашивал ваши пакеты в списке пакетов в соответствии с фильтром отображения, что позволяет Вам выделять пакеты, которые Вы хотите выделить. Ознакомьтесь с некоторыми примерами здесь.
Wireshark Беспорядочный Режим
По умолчанию Wireshark захватывает только пакеты, идущие к компьютеру, на котором он работает, и от него. Установив флажок для запуска Wireshark в неразборчивом режиме в настройках захвата, Вы можете захватить большую часть трафика в локальной сети.
Командная Строка Wireshark
Wireshark действительно предоставляет интерфейс командной строки (CLI), если Вы работаете с системой без графического интерфейса. Лучше всего было бы использовать CLI для захвата и сохранения журнала, чтобы Вы могли просмотреть журнал с помощью графического интерфейса пользователя.
Команды Помощью Wireshark
- wireshark: запустите Wireshark в графическом режиме
- wireshark –h: показать доступные параметры командной строки для Wireshark
- wireshark –a duration:300 –i eth1 –w wireshark.: захват трафика на интерфейсе Ethernet 1 в течение 5 минут. –а средство автоматически останавливает захват, -уточнил я, какой интерфейс нужно захватить
Метрики и статистика
В пункте меню статистика Вы найдете множество опций для отображения подробной информации о Вашем захвате.
Свойства Файла Захвата:
График Ввода-Вывода Wireshark:
Дополнительные ресурсы Wireshark и учебные пособия
Существует множество учебных пособий и видеороликов, в которых Вы показываете, как использовать Wireshark для конкретных целей. Вы должны начать с главного сайта Wireshark и двигаться дальше оттуда. Вы можете найти официальную документацию и Wiki на этом сайте.
Wireshark – отличный сетевой сниффер и инструмент анализа, однако, на мой взгляд, его лучше всего использовать, когда Вы знаете, что ищете. Вы не собираетесь использовать Wireshark, чтобы найти новую проблему. В сети слишком много шума. Вам нужно что-то вроде Varonis с Edge, чтобы понять общую ситуацию для Вас и указать вам на угрозу для расследования, а затем Вы используете Wireshark, чтобы копнуть глубже, чтобы точно понять, что находится в пакетах, которые опасны.
Например, когда исследователи безопасности Varonis обнаружили norman cryptominer, они получили предупреждение от Varonis, указывающее на подозрительную сетевую и файловую активность с нескольких компьютеров. Во время анализа криптомайнера исследователи Varonis использовали Wireshark для проверки сетевой активности некоторых машин, которые плохо себя вели. Wireshark показал исследовательской группе, что новый cyptominer, Норман, активно общался с серверами command and control (C&C), используя DuckDNS. Команда Varonis смогла увидеть все IP-адреса серверов C&C, которые злоумышленники использовали с Wireshark, чтобы компания могла отключить связь и остановить атаку.
До встречи Друг
