Monitoração de pacotes

Num desses dias que começaram o ano, precisei fazer o monitoramente de uma mensagem em SOAP (padrão de comunicação dos sistema de pré-pago com que trabalho).  Estava acostumado ao uso do wireshark pra fazer isso, mas descobri que não tinha o mesmo instalado.

Instalar um wireshark não é nada demais pra quem tem apt-get, mas como eu estava dentro do ambiente da empresa e não queria problemas com a área de segurança da informação, que monitora o download de aplicativos como o wireshark, resolvi fazer direto com tcpdump.

Para isso basta usar os parâmetros "-s 0", para definir tamanho máximo de pacote (não pegar somente alguns bytes), "-l" pra fazer a saída sem bufferização e, finalmente, "-A" para ter uma saída em modo texto dos caractéres ASCII dos pacotes capturados.

Com isso, utilizei o comando "tcpdump -n -s 0 -l -A -i lo port 10066" e pude verificar se meu protocolo SOAP estava enviando os cabeçalhos corretamente.


root@shibboleet:~# tcpdump -n -s 0 -l -A -i eth0 port 10066
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
17:04:12.661207 IP 10.1.2.5.43789 > 10.1.2.5.10066: Flags [S], seq 2942898742, win 32792, options [mss 16396,sackOK,TS val 284979440 ecr 0,nop,wscale 7], length 0
E..<b.@.@...
{..
'R.i.6........KB....@....
..p.........
17:04:12.661232 IP 10.1.2.5.10066 > 10.1.2.5.43789: Flags [S.], seq 2517428391, ack 2942898743, win 32768, options [mss 16396,sackOK,TS val 284979440 ecr 284979440,nop,wscale 7], length 0
E..<..@.@...
{..
.....i.7....KB....@....
..p...p.....
17:04:12.661251 IP 10.1.2.5.43789 > 10.1.2.5.10066: Flags [.], ack 1, win 257, options [nop,nop,TS val 284979440 ecr 284979440], length 0
E..4b.@.@...
{..
'R.i.7........K:.....
..p...p.
17:04:12.661302 IP 10.1.2.5.43789 > 10.1.2.5.10066: Flags [P.], seq 1:1441, ack 1, win 257, options [nop,nop,TS val 284979440 ecr 284979440], length 1440
E...b.@.@..H
{..
'R.i.7........P......
..p...p.POST /Air HTTP/1.1
Accept-Encoding: identity
Content-Length: 1245
Host: air:10066
User-Agent: DSMN/4.4/1.0
Connection: close
Content-Type: text/xml
Authorization: Basic dmFpbGE6c2V1dHJvdXhh

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<methodCall>
<methodName>UpdateOffer</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>originNodeType</name>
<value>
<string>EXT</string>
</value>
</member>
<member>
<name>originHostName</name>
<value>
<string>HELIO</string>
</value>
</member>
<member>
<name>originTransactionID</name>
<value>
<string>410</string>
</value>
</member>
<member>
<name>originTimeStamp</name>
<value>
<dateTime.iso8601>20130115T17:04:12+0000</dateTime.iso8601>
</value>
</member>
<member>
<name>subscriberNumber</name>
<value>
<string>5511912345678</string>
</value>
</member>
<member>
<name>offerID</name>
<value>
<int>11</int>
</value>
</member>
<member>
<name>offerType</name>
<value>
<int>0</int>
</value>
</member>
<member>
<name>expiryDate</name>
<value>
<dateTime.iso8601>20131027T12:00:00+0000</dateTime.iso8601>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

17:04:12.661312 IP 10.1.2.5.10066 > 10.1.2.5.43789: Flags [.], ack 1441, win 256, options [nop,nop,TS val 284979440 ecr 284979440], length 0
E..4.X@.@.WX
{..
.....i......K:.....
..p...p.
17:04:12.829800 IP 10.1.2.5.10066 > 10.1.2.5.43789: Flags [P.], seq 1:836, ack 1441, win 256, options [nop,nop,TS val 284979609 ecr 284979440], length 835
E..w.Y@.@.T.
{..
.....i......N}.....
..q...p.HTTP/1.1 200 OK
Content-Length: 681
Content-Type: text/xml
X-Powered-By: AIR-XmlRpc Server 3.2
Server: air
Date: Tue, 15 Jan 2013 19:04:24 GMT

<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>expiryDate</name>
<value><dateTime.iso8601>20131027T12:00:00+0000</dateTime.iso8601></value>
</member>
<member>
<name>offerID</name>
<value><i4>11</i4></value>
</member>
<member>
<name>offerType</name>
<value><i4>0</i4></value>
</member>
<member>
<name>originTransactionID</name>
<value><string>410</string></value>
</member>
<member>
<name>responseCode</name>
<value><i4>0</i4></value>
</member>
<member>
<name>startDate</name>
<value><dateTime.iso8601>20130115T12:00:00+0000</dateTime.iso8601></value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
17:04:12.829865 IP 10.1.2.5.43789 > 10.1.2.5.10066: Flags [.], ack 836, win 256, options [nop,nop,TS val 284979609 ecr 284979609], length 0
E..4b.@.@...
{..
'R.i..........K:.....
..q...q.
17:04:12.830228 IP 10.1.2.5.43789 > 10.1.2.5.10066: Flags [F.], seq 1441, ack 836, win 256, options [nop,nop,TS val 284979609 ecr 284979609], length 0
E..4b.@.@...
{..
'R.i..........K:.....
..q...q.
17:04:12.865118 IP 10.1.2.5.10066 > 10.1.2.5.43789: Flags [F.], seq 836, ack 1442, win 256, options [nop,nop,TS val 284979644 ecr 284979609], length 0
E..4.Z@.@.WV
{..
.....i......K:.....
..q...q.
17:04:12.865140 IP 10.1.2.5.43789 > 10.1.2.5.10066: Flags [.], ack 837, win 256, options [nop,nop,TS val 284979644 ecr 284979644], length 0
E..4b.@.@...
{..
'R.i..........K:.....
..q...q.
^C
10 packets captured
20 packets received by filter
0 packets dropped by kernel

Nesse caso é uma aplicação que roda na porta 10066 que foi criada pra atribuir "Offers", ou ofertas de serviços através de um servidor que se chama AIR, Account Information and Refilling.

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.