XMPP Packet Captures

XMPP is the Extensible Messaging and Presence Protocol. It is used in a variety of technologies including instant messaging, WebRTC and in IoT devices. Here is a collection of captures to show the low level packets that clients and servers use to provide messaging and presence with XMPP.

Adium

Adium is a free instant messaging application for macOS that can connect to an XMPP server as well as a variety of others.

  • Adium Version: 1.5.10.4
  • IP: 172.16.0.62

Add Account

Connect Account

Connect Account Incorrect Password

Disconnect Account

Add Contact

Send Message

Create Chatroom

Set Nickname

Set Password

Set vCard

Ping

Ping Hostname

Blather

Blather is a Ruby Library and DSL for XMPP. These captures were taken using the examples provided with the rubygem.

  • Blather Version: 1.2.0
  • IP: 172.16.0.62

MUC_echo.rb

Had to modify this example a bit to make sure the message wasn’t coming from our Blather bot. Otherwise, once it echoed a message from a user it would keep echoing it’s own message back!

echo.rb

execute.rb

ping_pong.rb

rosterprint.rb

stream_only.rb

Default Setup

The ejabberd was used as the XMPP server in these captures. TLS was disabled to capture this network traffic so that we could show the packets without encryption but this should never be disabled in production!

ejabberd XMPP server

  • Operating System: CentOS Linux release 7.0.1406 (Core)
  • ejabberd Version: 17.07-linux-x86_64
  • Virtual Hostname: cs-xmpp.lan
  • IP: 172.16.1.138