Saturday, 28 March 2020

Cisco ASA packet capture

Packet Capture in Cisco ASA using ASDM & CLI


Introduction
This Post will describes how to configure the Cisco Adaptive Security Appliance (ASA) Next-
Generation Firewall in order to capture the desired packets with either the Cisco Adaptive Security
Device Manager (ASDM) or the CLI.

This configuration can be used with these Cisco products:
Cisco ASA Versions 9.1(5) and later
Cisco ASDM Version 7.2.1

The packet capture process is useful when you troubleshoot connectivity problems or monitor
suspicious activity. In addition, you can create multiple captures in order to analyze different types
of traffic on multiple interfaces.




















































In the new window, provide the parameters that are used in order to capture the INGRESS
traffic. Select inside for the Ingress Interface and provide the source and the destination IP
addresses of the packets to be captured, along with their subnet mask, in the respective
space provided. Also, choose the packet type to be captured by the ASA (IP is the packet
type chosen here), as shown below:























Select outside for the Egress Interface and provide the source and the destination IP
addresses, along with their subnet mask, in the respective spaces provided. If Network
Address Translation (NAT) is performed on the Firewall, take this into consideration as well.























Enter the appropriate Packet Size and the Buffer Size in the respective space provided, as
this data is required in order for the capture to take place. Also, remember to check the Use
circular buffer check box if you want to use the circular buffer option. Circular buffers never
fill up. As the buffer reaches its maximum size, older data is discarded and the capture
continues. In this example, circular buffer is not used, so the check box is not checked.
























This window shows the Access-lists that must be configured on the ASA so that the desired
packets are captured, and it shows the type of packets to be captured (IP packets are
captured in this example) :-


























Click Start in order to start the packet capture, as shown here:-































As the packet capture is started, attempt to ping the outside network from the inside network
so that the packets that flow between the source and the destination IP addresses are
captured by the ASA capture buffer.

Click Get Capture Buffer in order to view the packets that are captured by the ASA capture
buffer.






























The captured packets are shown in this window for both the ingress and egress traffic.
Click Save captures in order to save the capture information.




From the Save Captures window, choose the required format in which the capture buffer is
to be saved. This is either ASCII or PCAP. Click the radio button next to the format names.
Then, click Save ingress capture or Save egress capture as required. The PCAP files
can be opened with capture analyzers, such as Wireshark, and it is the preferred method.



























From the Save capture file window, provide the file name and the location to where the
capture file is to be saved. Click Save.





























Configure Packet Capture with the CLI

Complete these steps in order to configure the packet capture feature on the ASA with the CLI:

1. Configure the inside and outside interfaces as illustrated in the network diagram, with the
correct IP address and security levels.

2. Start the packet capture process with the capture command in privileged EXEC mode. In
this configuration example, the capture named capin is defined. Bind it to the inside
interface, and specify with the match keyword that only the packets that match the traffic of
interest are captured:

ASA# capture capin interface inside match ip 192.168.10.10 255.255.255.255 203.0.113.3 255.255.255.255

3. Similarly, the capture named capout is defined. Bind it to the outside interface, and specify
with the match keyword that only the packets that match the traffic of interest are captured:

ASA# capture capout interface outside match ip 192.168.10.10 255.255.255.255 203.0.113.3 255.255.255.255

The ASA now begins to capture the traffic flow between the interfaces. In order to stop the

capture at anytime, enter the no capture command followed by the capture name.
Here is an example:

no capture capin interface inside
no capture capout interface outside


Available Capture Types on the ASA

This section describes the different types of captures that are available on the ASA.

  • asa_dataplane - Captures packets on the ASA backplane that pass between the ASA and a

module that uses the backplane, such as the ASA CX or IPS module.

ASA# cap asa_dataplace interface asa_dataplane
ASA# show capture

capture asa_dataplace type raw-data interface asa_dataplane [Capturing - 0 bytes]


  • asp-drop drop-code - Captures packets that are dropped by the accelerated security path.The drop-code specifies the type of traffic that is dropped by the accelerated security path.

ASA# capture asp-drop type asp-drop acl-drop
ASA# show cap
ASA# show capture asp-drop

2 packets captured

1: 04:12:10.428093 192.168.10.10.34327 > 10.94.0.51.15868: S2669456341:2669456341(0) win 4128 <mss 536> Drop-reason: (acl-drop)
Flow is denied by configured rule

2: 04:12:12.427330 192.168.10.10.34327 > 10.94.0.51.15868: S2669456341:2669456341(0) win 4128 <mss 536> Drop-reason: (acl-drop)
Flow is denied by configured rule

2 packets shown

ASA# show capture asp-drop

2 packets captured

1: 04:12:10.428093 192.168.10.10.34327 > 10.94.0.51.15868: S2669456341:2669456341(0) win 4128 <mss 536> Drop-reason: (acl-drop)
Flow is denied by configured rule
2: 04:12:12.427330 192.168.10.10.34327 > 10.94.0.51.15868: S2669456341:2669456341(0) win 4128 <mss 536> Drop-reason: (acl-drop)
Flow is denied by configured rule

2 packets shown


ethernet-type type - Selects an Ethernet type to capture. Supported Ethernet types include 8021Q, ARP, IP, IP6, IPX, LACP, PPPOED, PPPOES, RARP, and VLAN.

This example show how to capture ARP traffic:

ASA# cap arp ethernet-type ?

exec mode commands/options:
802.1Q
<0-65535> Ethernet type
arp
ip
ip6
ipx
pppoed
pppoes
rarp
vlan

cap arp ethernet-type arp interface inside

ASA# show cap arp

22 packets captured

1: 05:32:52.119485 arp who-has 10.10.3.13 tell 10.10.3.12
2: 05:32:52.481862 arp who-has 192.168.10.123 tell 192.168.100.100
3: 05:32:52.481878 arp who-has 192.168.10.50 tell 192.168.100.10
4: 05:32:53.409723 arp who-has 10.106.44.135 tell 10.106.44.244
5: 05:32:53.772085 arp who-has 10.106.44.108 tell 10.106.44.248
6: 05:32:54.782429 arp who-has 10.106.44.135 tell 10.106.44.244
7: 05:32:54.784695 arp who-has 10.106.44.1 tell 11.11.11.112:


  • real-time - Displays the captured packets continuously in real-time. In order to terminate a real-time packet capture, press Ctrl-C. In order to permanently remove the capture, use the no form of this command. This option is not supported when you use the cluster exec capture command.

ASA# cap capin interface inside real-time

Warning: using this option with a slow console connection may
result in an excessive amount of non-displayed packets
due to performance limitations.

Use ctrl-c to terminate real-time capture

Trace - Traces the captured packets in a manner similar to the ASA packet tracer feature.

ASA#cap in interface Webserver trace match tcp any any eq 80

// Initiate Traffic

1: 07:11:54.670299 192.168.10.10.49498 > 198.51.100.88.80: S
2322784363:2322784363(0) win 8192
<mss 1460,nop,wscale 2,nop,nop,sackOK>

Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list

Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list

Phase: 3
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in 0.0.0.0 0.0.0.0 outside

Phase: 4
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group any in interface inside
access-list any extended permit ip any4 any4 log
Additional Information:

Phase: 5
Type: NAT
Subtype:
Result: ALLOW
Config:
object network obj-10.0.0.0
nat (inside,outside) dynamic interface
Additional Information:
Dynamic translate 192.168.10.10/49498 to 203.0.113.2/49498

Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:

Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 8
Type:
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 9
Type: ESTABLISHED
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 10
Type:
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 11
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:

Phase: 12
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 13
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 41134, packet dispatched to next module

Phase: 14
Type: ROUTE-LOOKUP
Subtype: output and adjacency
Result: ALLOW
Config:
Additional Information:
found next-hop 203.0.113.1 using egress ifc outside
adjacency Active
next-hop mac address 0007.7d54.1300 hits 3170

Result:
output-interface: outside
output-status: up
output-line-status: up
Action: allow



ikev1/ikev2 - Captures only Internet Key Exchange Version 1 (IKEv1) or IKEv2 protocol
information.

isakmp - Captures Internet Security Association and Key Management Protocol (ISAKMP)
traffic for VPN connections. The ISAKMP subsystem does not have access to the upper-layer
protocols. The capture is a pseudo capture, with the physical, IP, and UDP layers combined
together in order to satisfy a PCAP parser. The peer addresses are obtained from the SA
exchange and are stored in the IP layer.

lacp - Captures Link Aggregation Control Protocol (LACP) traffic. If configured, the interface
name is the physical interface name. This might be useful when you work with Etherchannels
in order to identify the present behavior of LACP.

tls-proxy - Captures decrypted inbound and outbound data from the Transport Layer Security
(TLS) proxy on one or more interfaces.

webvpn - Captures WebVPN data for a specific WebVPN connection.

Caution: When you enable WebVPN capture, it affects the performance of the security
appliance. Ensure that you disable the capture after you generate the capture files that are
needed in order to troubleshoot.

Defaults
These are the ASA system default values:

The default type is raw-data.
The default buffer size is 512 KB.
The default Ethernet type is IP packets.
The default packet-length is 1,518 bytes.

View the Captured Packets

On the ASA

In order to view the captured packets, enter the show capture command followed by the capture
name. This section provides the show command outputs of the capture buffer contents. The show
capture capin command shows the contents of the capture buffer named capin:

ASA# show cap capin
8 packets captured
1: 03:24:35.526812 192.168.10.10 > 203.0.113.3: icmp: echo request
2: 03:24:35.527224 203.0.113.3 > 192.168.10.10: icmp: echo reply
3: 03:24:35.528247 192.168.10.10 > 203.0.113.3: icmp: echo request
4: 03:24:35.528582 203.0.113.3 > 192.168.10.10: icmp: echo reply
5: 03:24:35.529345 192.168.10.10 > 203.0.113.3: icmp: echo request
6: 03:24:35.529681 203.0.113.3 > 192.168.10.10: icmp: echo reply
7: 03:24:57.440162 192.168.10.10 > 203.0.113.3: icmp: echo request
8: 03:24:57.440757 203.0.113.3 > 192.168.10.10: icmp: echo reply

The show capture capout command shows the contents of the capture buffer named capout:

ASA# show cap capout
8 packets captured
1: 03:24:35.526843 192.168.10.10 > 203.0.113.3: icmp: echo request
2: 03:24:35.527179 203.0.113.3 > 192.168.10.10: icmp: echo reply
3: 03:24:35.528262 192.168.10.10 > 203.0.113.3: icmp: echo request
4: 03:24:35.528567 203.0.113.3 > 192.168.10.10: icmp: echo reply
5: 03:24:35.529361 192.168.10.10 > 203.0.113.3: icmp: echo request
6: 03:24:35.529666 203.0.113.3 > 192.168.10.10: icmp: echo reply
7: 03:24:47.014098 203.0.113.3 > 203.0.113.2: icmp: echo request
8: 03:24:47.014510 203.0.113.2 > 203.0.113.3: icmp: echo reply


Download from the ASA for Offline Analysis

There are a couple of ways to download the packet captures for analysis offline:

1). Navigate to https://<ip_of_asa>/admin/capture/<capture_name>/pcap on any browser.
Tip: If you leave out the pcap keyword, then only the equivalent of the show capture
<cap_name> command output is provided.

2). Enter the copy capture command and your preferred file transfer protocol in order to
download the capture:

copy /pcap capture:<capture-name> tftp://<server-ip-address>

Tip: When you troubleshoot an issue with the use of packet captures, Cisco recommends
that you download the captures for offline analysis.

Clear a Capture

In order to clear the capture buffer, enter the clear capture <capture-name> command:

ASA# show capture
capture capin type raw-data interface inside [Capturing - 8190 bytes]
match icmp any any
capture capout type raw-data interface outside [Capturing - 11440 bytes]
match icmp any any

ASA# clear cap capin
ASA# clear cap capout

ASA# show capture
capture capin type raw-data interface inside [Capturing - 0 bytes]
match icmp any any
capture capout type raw-data interface outside [Capturing - 0 bytes]
match icmp any any

Enter the clear capture /all command in order to clear the buffer for all captures:

ASA# clear capture /all

Stop a Capture

The only way to stop a capture on the ASA is to disable it completely with this command:

no capture <capture-name>

Cisco bug ID CSCuv74549 has been filed to add the ability to stop a capture without completely
disabling it and to control when a capture starts to capture traffic.

Verify

There is currently no verification procedure available for this configuration.

Troubleshoot


There is currently no specific troubleshooting information available for this configuration.