SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Captura de Informa¸˜o em Rede
                  ca

          Ulisses Ara´jo Costa
                     u


            18 Fevereiro, 2010




     Ulisses Ara´jo Costa
                u           Captura de Informa¸˜o em Rede
                                              ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
NIDS - Network Intrusion Detection System




     Sistema de detec¸˜o de intrus˜o de rede
                     ca           a
     Tenta detectar actividade maliciosa (ataques DoS, DDos, port
     scans, tentativas de cracking )




                   Ulisses Ara´jo Costa
                              u           Captura de Informa¸˜o em Rede
                                                            ca
Como funciona




      An´lise de todos os pacotes
        a
      Tenta encontrar padr˜es suspeitos
                          o

  Exemplo - port scanners
  Se um grande n´mero de pedidos de conec¸˜es TCP para um
                 u                        co
  grande n´mero de portas diferentes num curto espa¸o de tempo
          u                                        c
  ent˜o o NIDS conclu´ que podemos estar a ser alvo de um scan de
     a                ı
  portos.




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Defini¸˜o
     ca



     SNORT is an open source network intrusion prevention
     and detection system utilizing a rule-driven language,
     which combines the benefits of signature, protocol and
     anomaly based inspection methods. With millions of
     downloads to date, Snort is the most widely deployed
     intrusion detection and prevention technology worldwide
     and has become the de facto standard for the industry.


     Modo passivo
     Modo activo = firewall




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Abordagem - Snort




  Usar o Snort para capturar todo o trafego que conseguir em modo
  passivo.
  root@pig:# snort -u snort -g snort -D -d -l /var/log/snort -c /etc/snort/snort.debian.conf -S -i
  eth0



        Grava log em binario (formato tcpdump)




                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Abordagem - Snort - Sintaxe Regras



  O Snort usa regras para poder fazer o matching do tr´fego. O
                                                      a
  cabe¸alho de uma regra cont´m os seguintes campos:
      c                      e
      Ac¸˜o (log, alert)
        ca
      Protocolo (ip, tcp, udp, icmp, any)
      IP origem e Porto
      IP destino e Porto
      Operador de direc¸˜o (− >, ”<>”)
                       ca




                     Ulisses Ara´jo Costa
                                u           Captura de Informa¸˜o em Rede
                                                              ca
Abordagem - Snort - Sintaxe Regras



  Os endere¸os IP de destino ou de origem podem ser:
           c
      Vari´veis ($HOME NET)
          a
      Endere¸os de IP individuais
            c
      blocos CIDR
      Listas do tipo: [192.168.3.12,192.168.3.9]
  Os portos podem ser:
      Portos individuais
      Ranges de portos (”80:85”, ”:1024”, ”1025:”)




                     Ulisses Ara´jo Costa
                                u           Captura de Informa¸˜o em Rede
                                                              ca
Abordagem - Snort - Regras




  alert tcp any any -> 192.168.1.0/24 21 ( content : " user root "; msg : " FTP root
       login ";)
  alert tcp any any -> 192.168.1.0/24 21 ( content : " USER root "; msg : " FTP root
       login ";)


  Estas duas regras dizem ao Snort para quando encontrar tr´fego
                                                           a
  vindo de qualquer host e em direc¸˜o ao IP 192.168.1.0/24 para o
                                   ca
  porto 21 e cujo conte´do tenha a string ”user root”ou ”USER
                       u
  root”ent˜o imprimir no ecran o alerta: ”FTP root login”.
          a




                           Ulisses Ara´jo Costa
                                      u           Captura de Informa¸˜o em Rede
                                                                    ca
Abordagem - Snort - Regras




  A seguinte regra encontra e grava em ficheiro todas as sess˜es
                                                            o
  Telnet que se estabele¸am com o host 192.168.1.0/24.
                        c
  log !192. 168.1.0/24 any <> 192.168.1.0/24 23




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Abordagem - tcpdump
      O tcpdump ´ um programa que corre num computador e
                  e
      grava todos os pacotes que chegam a um interface de rede.
      Ouve tudo o que a interface recebe
      Os ficheiros ficam guardados no formato libpcap.

  Correr o tcpdump ligado a um hub.




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Abordagem - tcpdump

  Correr o tcpdump numa Gateway.




                   Ulisses Ara´jo Costa
                              u           Captura de Informa¸˜o em Rede
                                                            ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Depois de ter o ficheiro. . .




      Implementa¸˜o de filtros segundo determinadas regras
                ca
      Agrega¸˜o de pacotes segundo regras (onde o Snort n˜o
             ca                                          a
      chega)




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Problema - parsing

      Fazer parsing de tcpdump




                   Ulisses Ara´jo Costa
                              u           Captura de Informa¸˜o em Rede
                                                            ca
Exemplo - pacote SSH




               Ulisses Ara´jo Costa
                          u           Captura de Informa¸˜o em Rede
                                                        ca
Implementa¸˜o em Haskell
          ca




  getPacket :: [ Word8 ] -> InPacket
  getPacket bytes = toInPack $ listArray (0 , Prelude . length bytes -1) $ bytes
  -- Ethernet | IP | TCP | X
  getPacketTCP :: [ Word8 ] -> Maybe ( NE . Packet ( NI4 . Packet ( NT . Packet InPacket ) ) )
  getPacketTCP bytes = doParse $ getPacket bytes :: Maybe ( NE . Packet ( NI4 . Packet (
       NT . Packet InPacket ) ) )




                             Ulisses Ara´jo Costa
                                        u           Captura de Informa¸˜o em Rede
                                                                      ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Exemplos


  Mostrar todas as comunica¸˜es com o IP 192.168.74.242
                           co
  root@pig:# tshark -R "ip.addr == 192.168.74.242-r snort.log


  ...
  7750 6079.816123 193.136.19.96 -> 192.168.74.242 SSHv2 Client : Key Exchange Init
  7751 6079.816151 192.168.74.242 -> 193.136.19.96 TCP ssh > 51919 [ ACK ] Seq =37
       Ack =825 Win =7424 Len =0 TSV =131877388 TSER =1789588
  7752 6079.816528 192.168.74.242 -> 193.136.19.96 SSHv2 Server : Key Exchange Init
  7753 6079.817450 193.136.19.96 -> 192.168.74.242 TCP 51919 > ssh [ ACK ] Seq =825
       Ack =741 Win =7264 Len =0 TSV =1789588 TSER =131877389
  7754 6079.817649 193.136.19.96 -> 192.168.74.242 SSHv2 Client : Diffie - Hellman
       GEX Request
  7755 6079.820784 192.168.74.242 -> 193.136.19.96 SSHv2 Server : Diffie - Hellman
       Key Exchange Reply
  7756 6079.829495 193.136.19.96 -> 192.168.74.242 SSHv2 Client : Diffie - Hellman
       GEX Init
  7757 6079.857490 192.168.74.242 -> 193.136.19.96 SSHv2 Server : Diffie - Hellman
       GEX Reply
  7758 6079.884000 193.136.19.96 -> 192.168.74.242 SSHv2 Client : New Keys
  7759 6079.922576 192.168.74.242 -> 193.136.19.96 TCP ssh > 51919 [ ACK ] Seq =1613
       Ack =1009 Win =8960 Len =0 TSV =131877415 TSER =1789605
  ...




                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Exemplos


  Mostrar um triplo com: (tempo,codigo http,tamanho do conte´do
                                                            u
  http), separados por ’,’ e entre aspas.
  root@pig:# tshark -r snort.log -R http.response -T fields -E header=y -E separator=’,’ -E
  quote=d -e frame.time relative -e http.response.code -e http.content length


  ...
  "128.341166000" ,"200" ,"165504"
  "128.580181000" ,"200" ,"75332"
  "128.711618000" ,"200" ,"1202"
  "149.575548000" ,"206" ,"1"
  "149.719938000" ,"304" ,
  "149.882290000" ,"404" ,"338"
  "150.026474000" ,"404" ,"341"
  "150.026686000" ,"404" ,"342"
  "150.170295000" ,"304" ,
  "150.313576000" ,"304" ,
  "150.456650000" ,"304" ,
  ...




                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Exemplos

  Mostrar um tuplo de aridade 4 com: (tempo,ip origem,ip destino,
  tamanho do pacote tcp).
  root@pig:# tshark -r snort.log -R "tcp.len>0-T fields -e frame.time relative -e ip.src -e ip.dst
  -e tcp.len


  ...
  551.751252000      193.136.19.96       192.168.74.242    48
  551.751377000      192.168.74.242      193.136.19.96     144
  551.961545000      193.136.19.96       192.168.74.242    48
  551.961715000      192.168.74.242      193.136.19.96     208
  552.682260000      193.136.19.96       192.168.74.242    48
  552.683955000      192.168.74.242      193.136.19.96     1448
  552.683961000      192.168.74.242      193.136.19.96     1448
  552.683967000      192.168.74.242      193.136.19.96     512
  555.156301000      193.136.19.96       192.168.74.242    48
  555.158474000      192.168.74.242      193.136.19.96     1448
  555.158481000      192.168.74.242      193.136.19.96     1400
  556.021205000      193.136.19.96       192.168.74.242    48
  556.021405000      192.168.74.242      193.136.19.96     160
  558.874202000      193.136.19.96       192.168.74.242    48
  558.876027000      192.168.74.242      193.136.19.96     1448
  ...




                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Exemplos


  Mostrar um triplo com: (ip origem,ip destino, porto do ip destino).
  root@pig:# tshark -r snort.log -Tfields -e ip.src -e ip.dst -e tcp.dstport


  ...
  192. 16 8.7 4.242   193.136.19.96      37602
  192. 16 8.7 4.242   193.136.19.96      37602
  193.136.19.96       192.168.74.242     22
  192. 16 8.7 4.242   193.136.19.96      37602
  193.136.19.96       192.168.74.242     22
  193.136.19.96       192.168.74.242     22
  192. 16 8.7 4.242   193.136.19.96      37602
  192. 16 8.7 4.242   193.136.19.96      37602
  192. 16 8.7 4.242   193.136.19.96      37602
  193.136.19.96       192.168.74.242     22
  193.136.19.96       192.168.74.242     22
  193.136.19.96       192.168.74.242     22
  193.136.19.96       192.168.74.242     22
  192. 16 8.7 4.242   193.136.19.96      37602
  192. 16 8.7 4.242   193.136.19.96      37602
  ...




                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Estat´
     ısticas
  Hierarquia de protocolos
  root@pig:# tshark -r snort.log -q -z io,phs


  frame                                              frames :7780 bytes :1111485
    eth                                              frames :7780 bytes :1111485
      ip                                             frames :3992 bytes :848025
        tcp                                          frames :3908 bytes :830990
           ssh                                       frames :2153 bytes :456686
           http                                      frames :55 bytes :19029
             http                                    frames :5 bytes :3559
                 http                                frames :3 bytes :2781
                   http                              frames :2 bytes :2234
                      http                           frames :2 bytes :2234
             data - text - lines                     frames :10 bytes :5356
           tcp . segments                            frames :3 bytes :1117
             http                                    frames :3 bytes :1117
                 media                               frames :3 bytes :1117
        udp                                          frames :84 bytes :17035
           nbdgm                                     frames :50 bytes :12525
             smb                                     frames :50 bytes :12525
                 mailslot                            frames :50 bytes :12525
                   browser                           frames :50 bytes :12525
           dns                                       frames :34 bytes :4510
      llc                                            frames :3142 bytes :224934
        stp                                          frames :3040 bytes :182400
        cdp                                          frames :102 bytes :42534
      loop                                           frames :608 bytes :36480
        data                                         frames :608 bytes :36480
      arp                                            frames :38 bytes :2046


                              Ulisses Ara´jo Costa
                                         u            Captura de Informa¸˜o em Rede
                                                                        ca
Estat´
     ısticas - Conversations



        Usa-se: -z conv,<tipo>,<filtro>
               Tipo pode ser: eth,tr,fc,fddi,ip,ipx,tcp,udp
               Os filtros servem para restringir as estatisticas

  root@pig:# tshark -r snort.log -q -z conv,ip,tcp.port==80


  ================================================================================
  IPv4 Conversations
  Filter : tcp . port ==80
                                         |       <-       | |     ->      | |     Total     |
                                         | Frames Bytes | | Frames Bytes | | Frames Bytes |
  19 3. 13 6.1 9. 14 8 <-> 19 2.168.74.242 141      13091     202  259651     343    272742
  19 2. 16 8.7 4. 24 2 <-> 128.31.0.36       22      6858      28    4784      50     11642
  ================================================================================




                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Estat´
     ısticas - IO

        Usa-se: -z io,stat,<int>,<filtro>,. . . ,<filtro>

  root@pig:# tshark -r snort.log -q -z io,stat,300,’not (tcp.port=22)’


  ===================================================================
  IO Statistics
  Interval : 300.000 secs
  Column #0:
                    |    Column #0
  Time              | frames | bytes
  000.000 -300.000      2161    543979
  300.000 -600.000      1671    264877
  600.000 -900.000       508     46224
  900.000 -1200.000       185      12885
  1200.000 -1500.000       201      14607
  1500.000 -1800.000       187      13386
  1800.000 -2100.000       189      13887
  2100.000 -2400.000       187      13386
  2400.000 -2700.000       189      13887
  2700.000 -3000.000       187      13386
  3000.000 -3300.000       185      12885
  3300.000 -3600.000       189      13887
  3600.000 -3900.000       210      15546
  3900.000 -4200.000       189      13887
  4200.000 -4500.000       187      13386
  4500.000 -4800.000       185      12885
  4800.000 -5100.000       189      13887
  ===================================================================


                              Ulisses Ara´jo Costa
                                         u           Captura de Informa¸˜o em Rede
                                                                       ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Sess˜es HTTP
    o




  Quando queremos obter determinada informa¸˜o, se for muito
                                              ca
  especifica, o tshark sozinho pode n˜o conseguir l´ chegar. Assim
                                    a             a
  usamos como apoio outras linguagens que suportem o tshark afim
  de conseguir a informa¸˜o que pretendemos.
                         ca
  Neste caso queremos mostrar as sess˜es HTTP de um determinado
                                      o
  utilizador.




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Sess˜es HTTP- implementa¸˜o
    o                   ca



  #!/ usr / bin / bash

  file = $1
  user = $2

  for cookie in ‘ tshark -r $file -R " http . request and http contains $user " -T
       fields -e http . cookie | tr " " " _ " ‘
  do
     sid = ‘ echo $cookie | cut -d ’_ ’ -f 2 | tr -d "015" ‘
     tmpfile =" tmp_ ‘ echo $sid | cut -d ’= ’ -f 2 ‘. cap "
     echo " Processing session cookie $sid to $tmpfile "

     tshark -r $file -w $tmpfile -R ‘ tshark -r $file " http . request and http . cookie
           contains " $sid "" -T fields -e tcp . srcport | awk ’{ printf ("% stcp . port
          ==% s " , sep , $1 ) ; sep ="||"} ’ ‘
  done

  mergecap -w $user . cap ‘ ls -1 tmp_ *. cap ‘
  rm ‘ ls -1 tmp_ *. cap ‘




                             Ulisses Ara´jo Costa
                                        u           Captura de Informa¸˜o em Rede
                                                                      ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Ferramenta




     Ap´s an´lise de v´rias ferramentas
       o    a         a
     Necessidade de criar uma linguagem menor que a que
     descreve frames de rede
     Cada linha representa o estado de uma liga¸˜o
                                               ca




                   Ulisses Ara´jo Costa
                              u           Captura de Informa¸˜o em Rede
                                                            ca
Ferramenta - Sintaxe do input


  2010 -01 -01 -01:18:25.2246   tcp (6)   E   82.3.10.27 4885 192.168.1.50 445: 4207 0
  2010 -01 -01 -01:33:23.8935   tcp (6)   S   82.155.39.149 4827 192.168.1.50 23
  2010 -01 -01 -01:33:26.9242   tcp (6)   E   82.155.39.149 4827 192.168.1.50 23: 0 62
  2010 -01 -01 -03:26:11.9261   tcp (6)   S   124.120.7.119 4900 192.168.1.50 23
  2010 -01 -01 -03:26:13.8581   tcp (6)   E   124.120.7.119 4900 192.168.1.50 23: 0 62
  2010 -01 -01 -03:26:13.8606   tcp (6)   -   124.120.7.119 4900 192.168.1.50 23: 40 R
  2010 -01 -01 -03:36:25.6577   tcp (6)   S   82.155.157.249 4268 192.168.1.50 23
  2010 -01 -01 -03:36:28.6923   tcp (6)   E   82.155.157.249 4268 192.168.1.50 23: 0 78
  2010 -01 -01 -04:34:39.6524   tcp (6)   S   82.155.251.43 3641 192.168.1.50 23
  2010 -01 -01 -04:34:42.7348   tcp (6)   E   82.155.251.43 3641 192.168.1.50 23: 0 62
  2010 -01 -01 -05:45:06.4542   tcp (6)   S   82.155.249.73 64436 192.168.1.50 139
  2010 -01 -01 -05:45:15.6469   tcp (6)   E   82.155.249.73 64436 192.168.1.50 139: 0 0
  2010 -01 -01 -05:57:06.7332   tcp (6)   S   79.25.93.226 44973 192.168.1.50 139
  2010 -01 -01 -05:57:14.3509   tcp (6)   E   79.25.93.226 44973 192.168.1.50 139: 0 0
  2010 -01 -01 -05:57:28.0971   tcp (6)   S   79.25.93.226 46984 192.168.1.50 80
  2010 -01 -01 -05:58:40.3750   tcp (6)   E   79.25.93.226 46984 192.168.1.50 80: 150 1008
  2010 -01 -01 -06:05:42.1734   tcp (6)   S   82.155.249.73 64894 192.168.1.50 139
  2010 -01 -01 -06:05:46.1496   tcp (6)   E   82.155.249.73 64894 192.168.1.50 139: 0 0
  2010 -01 -01 -06:15:14.8449   tcp (6)   S   82.155.249.73 53952 192.168.1.50 139
  2010 -01 -01 -06:15:14.8841   tcp (6)   E   82.155.249.73 53952 192.168.1.50 139: 0 0
  2010 -01 -01 -06:23:25.5025   tcp (6)   S   82.155.249.73 53934 192.168.1.50 139
  2010 -01 -01 -06:23:26.5404   tcp (6)   E   82.155.249.73 53934 192.168.1.50 139: 0 0




                            Ulisses Ara´jo Costa
                                       u              Captura de Informa¸˜o em Rede
                                                                        ca
Ferramenta - Sintaxe do input


            Data              Protocolo    T           IPOrig      PortOrig      IPDst        PortDst   Info
   2009-12-09-06:31:59.3902     tcp(6)     S       88.44.123.210     3637     192.168.1.50      139
   2009-12-07-16:06:28.9343     tcp(6)     S         82.155.0.49    22617     192.168.1.50      139
   2009-12-09-11:41:25.6859     tcp(6)     E        82.155.1.160     4399     192.168.1.50     445:     00
   2009-12-07-16:20:04.5996     tcp(6)     -       82.155.122.18    61582     192.168.1.50     139:     40 R
   2009-12-14-09:04:38.2678    icmp(1)     -         80.236.5.27              192.168.1.50:             3(13): 5
   2009-12-17-01:11:47.6209     tcp(6)     -       82.154.64.174    34507     192.168.1.50     445:     40 RA
   2009-12-19-18:25:03.3130     tcp(6)     -         124.8.74.33     1806     192.168.1.50      25:     70 FPA
   2009-12-14-09:54:27.6131     tcp(6)     -     168.167.152.228    58274     192.168.1.50     445:     52 FA
   2009-12-14-09:54:27.6131     tcp(6)     -     168.167.152.228    58274     192.168.1.50     445:     52 FA
   2009-12-14-09:54:27.6131     tcp(6)     -       82.155.57.245    58274     192.168.1.50     445:     52 PA
   2009-12-14-09:54:27.6131     tcp(6)     -      193.136.19.149    58274     192.168.1.50     445:     52 PA
   2009-12-07-20:59:29.6910     tcp(6)     -       88.175.73.149     4332     192.168.1.50     139:     40 R
   2009-12-09-11:57:04.2741     tcp(6)     -      82.155.137.139     1230     192.168.1.50     445:     40 A
   2009-12-07-18:35:28.4232     tcp(6)     -        82.155.7.176     2794     192.168.1.50     445:     40 A
   2009-12-07-15:34:49.0070     tcp(6)     -      82.155.116.238     3578     192.168.1.50      23:     60 S
   2009-12-07-16:06:29.2781     tcp(6)     -      124.207.41.198    48804     192.168.1.50      23:     40 S
   2009-12-15-22:59:03.4039    udp(17)     -       192.168.1.254      67      192.168.1.50      68:     298




                               Ulisses Ara´jo Costa
                                          u            Captura de Informa¸˜o em Rede
                                                                         ca
Ferramenta - Sintaxe do input




  A coluna da Date tem uma marca temporal de quando a
  comunica¸˜o ocorreu.
            ca
  A coluna Protocolo cont´m informa¸˜o sobre o protocolo de
                            e          ca
  transporte que foi usado, TCP, UDP ou ICMP. Mesmo assim
  quando ´ feita uma pesquisa n˜o comum de rede pode ser um
          e                     a
  outro qualquer protocolo de internet.




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Ferramenta - Sintaxe do input


  A terceira coluna (T) contem a informa¸˜o do tipo de conex˜o:
                                        ca                  a
             S significa que a liga¸˜o come¸ou (Start)
                                  ca      c
            E significa que a liga¸˜o terminou (End)
                                 ca
             - significa que o package n˜o corresponde a nenhuma
                                       a
               conex˜o.
                     a
  As pr´ximas quatro colunas correspondem a informa¸˜o sobre o IP
        o                                             ca
  de destino, o porto de destino, o IP de origem e o porto de origem.
  Para o protocolo ICMP as colunas das portas est˜o vazias porque
                                                    a
  este protocolo n˜o usa portas.
                  a
  A coluna Info cont´m informa¸˜o relativa a uma conex˜o ou um
                     e           ca                       a
  pacote. Quando uma conex˜o termina este cont´m o n´mero de
                              a                    e     u
  bytes recebidos e enviados.



                     Ulisses Ara´jo Costa
                                u           Captura de Informa¸˜o em Rede
                                                              ca
Ferramenta - Sintaxe do input

  Para os pacotes de sondagem estes contˆm informa¸˜o adicional:
                                        e         ca
         TCP O tamanho do pacote e as flags que est˜o no header.
                                                     a
                  F (Fin) - N˜o existe mais informa¸˜o para
                              a                     ca
                          enviar
                 S (Syn) - Sincroniza n´meros de sequenˆncia
                                         u               e
                 R (Rst) - Faz Reset ` conex˜o
                                       a      a
                P (Push) - Esta flag diz ao host receptor para
                          fazer um push a toda a informa¸˜o
                                                          ca
                          para a aplica¸˜o que vai receber a
                                       ca
                          informa¸˜o, b´sicamente diz: ”chega
                                  ca     a
                          por agora”.
                 A (Ack) - Indica que o campo ACKnowledgment
                          est´ preenchido, com o valor do
                             a
                          ACKnowledgment


                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Ferramenta - Sintaxe do input


     U (Urg) - Indica que o campo URGent est´ preenchido. Esta
                                               a
             flag serve para indicar que a informa¸˜o contida
                                                 ca
             neste campo ter´ de ser tratada com uregencia, antes
                             a
             dos pacotes normais serem tratados.
     E (ECE) - Indica que o protocolo TCP ´ capaz de Explicit
                                          e
             Congestion Notification durante o 3-way handshake.
    C (CWR) - Flag de Congestion Window Reduced ´ usada para
                                                  e
            indicar que foi recebida um segmento TCP com a
            flag ECE
       ICMP O c´digo, o tipo e o tamanho do pacote.
               o
        UDP Tamanho do pacote



                   Ulisses Ara´jo Costa
                              u           Captura de Informa¸˜o em Rede
                                                            ca
Ferramenta - Sintaxe do input

  O cabe¸alho de um pacote TCP cont´m espa¸o para todas estas
        c                           e       c
  flags que foram descritas. Como podemos ver na imagem:




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Sum´rio
   a


 1   NIDS


 2   Snort


 3   tcpdump


 4   Parsing


 5   tshark
       Estat´ısticas
       Sess˜es HTTP
            o


 6   Descri¸˜o
           ca
      Uso da ferramenta




                          Ulisses Ara´jo Costa
                                     u           Captura de Informa¸˜o em Rede
                                                                   ca
Ferramenta - output
  Com este programa conseguimos gerar por exemplo as
  comunica¸˜es entre o host 193.136.19.96 e o host 192.168.74.242
           co
  pelo porto 80 (HTTP), em bytes:




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Ferramenta - output
  No seguinte gr´fico conseguimos ver o n´mero de liga¸˜es que
                 a                      u            co
  houve durante um periodo de tempo ` m´quina 192.168.74.242
                                     a a
  por IP de origem:




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Ferramenta - output
  Mostra a quantidade de tr´fego recebido pela m´quina
                           a                    a
  193.136.19.96 no porto 80 (HTTP), vindo de todos os IP’s que
  comunicaram consigo:




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Ferramenta - output
  N´mero de hits no porto 80 do IP 192.168.1.50:
   u




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Ferramenta - output
  N´mero de hits nos portos do IP 192.168.1.50:
   u




                    Ulisses Ara´jo Costa
                               u           Captura de Informa¸˜o em Rede
                                                             ca
Conclus˜es
       o




      tshark ´ o verdadeiro canivete sui¸o de frames de rede
             e                          c
      Todas as ferramentas tiveram pontos fortes
      Nenhuma resolveu totalmente o nosso problema
      Software est´ reparado para ser extendido e suportar outros
                  a
      protocolos de qualquer Layer.
  Desenvolver conversor libpcap para a linguagem utilizada, ver
  relat´rio para sugest˜es de implementa¸˜o.
       o               o                 ca




                     Ulisses Ara´jo Costa
                                u           Captura de Informa¸˜o em Rede
                                                              ca
Fim




                             ?




      Ulisses Ara´jo Costa
                 u               Captura de Informa¸˜o em Rede
                                                   ca

Mais conteúdo relacionado

Destaque

Specifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with CryptolSpecifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with CryptolUlisses Costa
 
Static Code Analyzer - Part III
Static Code Analyzer - Part IIIStatic Code Analyzer - Part III
Static Code Analyzer - Part IIIUlisses Costa
 
Static Code Analyzer - Part IV
Static Code Analyzer - Part IVStatic Code Analyzer - Part IV
Static Code Analyzer - Part IVUlisses Costa
 
Static Code Analyzer - Part I
Static Code Analyzer - Part IStatic Code Analyzer - Part I
Static Code Analyzer - Part IUlisses Costa
 
GD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleGD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleUlisses Costa
 

Destaque (7)

Specifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with CryptolSpecifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with Cryptol
 
Static Code Analyzer - Part III
Static Code Analyzer - Part IIIStatic Code Analyzer - Part III
Static Code Analyzer - Part III
 
Static Code Analyzer - Part IV
Static Code Analyzer - Part IVStatic Code Analyzer - Part IV
Static Code Analyzer - Part IV
 
logCesium01
logCesium01logCesium01
logCesium01
 
Cesium Log ed2
Cesium Log ed2Cesium Log ed2
Cesium Log ed2
 
Static Code Analyzer - Part I
Static Code Analyzer - Part IStatic Code Analyzer - Part I
Static Code Analyzer - Part I
 
GD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleGD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting Module
 

Semelhante a Captura de Informação em Rede

Forense Computacional
Forense ComputacionalForense Computacional
Forense Computacionalrenanwb
 
Arp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesArp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesAndre Peres
 
TOR (The Onion Router): Navegue com privacidade na Internet
TOR (The Onion Router): Navegue com privacidade na InternetTOR (The Onion Router): Navegue com privacidade na Internet
TOR (The Onion Router): Navegue com privacidade na InternetEveraldo Wanderlei Uavniczak
 
Ultrasurf - Entendendo e bloqueando
Ultrasurf - Entendendo e bloqueandoUltrasurf - Entendendo e bloqueando
Ultrasurf - Entendendo e bloqueandomarcusburghardt
 
Ferramentas GPL para segurança de redes - Vanderlei Pollon
Ferramentas GPL para segurança de redes - Vanderlei PollonFerramentas GPL para segurança de redes - Vanderlei Pollon
Ferramentas GPL para segurança de redes - Vanderlei PollonTchelinux
 
Redes -aula_8_-_seguranca_2_
Redes  -aula_8_-_seguranca_2_Redes  -aula_8_-_seguranca_2_
Redes -aula_8_-_seguranca_2_cleitonfcsantos
 
Apresentação de Introdução ao Syslog
Apresentação de Introdução ao SyslogApresentação de Introdução ao Syslog
Apresentação de Introdução ao SyslogIsaque Profeta
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusRodrigo Almeida
 
Manobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
Manobras Evasivas: Técnicas de Evasão para Varreduras com o NmapManobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
Manobras Evasivas: Técnicas de Evasão para Varreduras com o NmapClavis Segurança da Informação
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linuxguest4e5ab
 
Disciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesDisciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesRogério Almeida
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 

Semelhante a Captura de Informação em Rede (20)

Snort "O sniffer"
Snort "O sniffer"Snort "O sniffer"
Snort "O sniffer"
 
Forense Computacional
Forense ComputacionalForense Computacional
Forense Computacional
 
Unidade 2.2.1 nmap
Unidade 2.2.1 nmapUnidade 2.2.1 nmap
Unidade 2.2.1 nmap
 
Arp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesArp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de Ataques
 
TOR (The Onion Router): Navegue com privacidade na Internet
TOR (The Onion Router): Navegue com privacidade na InternetTOR (The Onion Router): Navegue com privacidade na Internet
TOR (The Onion Router): Navegue com privacidade na Internet
 
Ultrasurf - Entendendo e bloqueando
Ultrasurf - Entendendo e bloqueandoUltrasurf - Entendendo e bloqueando
Ultrasurf - Entendendo e bloqueando
 
Ferramentas GPL para segurança de redes - Vanderlei Pollon
Ferramentas GPL para segurança de redes - Vanderlei PollonFerramentas GPL para segurança de redes - Vanderlei Pollon
Ferramentas GPL para segurança de redes - Vanderlei Pollon
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Redes -aula_8_-_seguranca_2_
Redes  -aula_8_-_seguranca_2_Redes  -aula_8_-_seguranca_2_
Redes -aula_8_-_seguranca_2_
 
Apresentação de Introdução ao Syslog
Apresentação de Introdução ao SyslogApresentação de Introdução ao Syslog
Apresentação de Introdução ao Syslog
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virus
 
Manobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
Manobras Evasivas: Técnicas de Evasão para Varreduras com o NmapManobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
Manobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
 
Webinar # 21 – Análise Forense de Redes
 Webinar # 21 – Análise Forense de Redes Webinar # 21 – Análise Forense de Redes
Webinar # 21 – Análise Forense de Redes
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Netfilter + Iptables
Netfilter + IptablesNetfilter + Iptables
Netfilter + Iptables
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linux
 
Gts flowtools
Gts flowtoolsGts flowtools
Gts flowtools
 
Disciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesDisciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
 
06-botnet-mon
06-botnet-mon06-botnet-mon
06-botnet-mon
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 

Mais de Ulisses Costa

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for SpaceUlisses Costa
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for SpaceUlisses Costa
 
Correct sorting with Frama-C
Correct sorting with Frama-CCorrect sorting with Frama-C
Correct sorting with Frama-CUlisses Costa
 
The Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLThe Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLUlisses Costa
 
Splint the C code static checker
Splint the C code static checkerSplint the C code static checker
Splint the C code static checkerUlisses Costa
 
Exploring the Cryptol Toolset
Exploring the Cryptol ToolsetExploring the Cryptol Toolset
Exploring the Cryptol ToolsetUlisses Costa
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolUlisses Costa
 
Snort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeSnort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeUlisses Costa
 
Uso de Honeypots com Honeyd
Uso de Honeypots com HoneydUso de Honeypots com Honeyd
Uso de Honeypots com HoneydUlisses Costa
 
Linux Instalation Party
Linux Instalation PartyLinux Instalation Party
Linux Instalation PartyUlisses Costa
 
Calculador Pointfree
Calculador PointfreeCalculador Pointfree
Calculador PointfreeUlisses Costa
 

Mais de Ulisses Costa (15)

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Cryptol experience
Cryptol experienceCryptol experience
Cryptol experience
 
Correct sorting with Frama-C
Correct sorting with Frama-CCorrect sorting with Frama-C
Correct sorting with Frama-C
 
The Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLThe Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDL
 
Splint the C code static checker
Splint the C code static checkerSplint the C code static checker
Splint the C code static checker
 
Exploring the Cryptol Toolset
Exploring the Cryptol ToolsetExploring the Cryptol Toolset
Exploring the Cryptol Toolset
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in Cryptol
 
Snort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeSnort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da rede
 
LDAP em VDM++
LDAP em VDM++LDAP em VDM++
LDAP em VDM++
 
Uso de Honeypots com Honeyd
Uso de Honeypots com HoneydUso de Honeypots com Honeyd
Uso de Honeypots com Honeyd
 
Apresentacao JML
Apresentacao JMLApresentacao JML
Apresentacao JML
 
Linux Instalation Party
Linux Instalation PartyLinux Instalation Party
Linux Instalation Party
 
Workshop LaTeX
Workshop LaTeXWorkshop LaTeX
Workshop LaTeX
 
Calculador Pointfree
Calculador PointfreeCalculador Pointfree
Calculador Pointfree
 

Captura de Informação em Rede

  • 1. Captura de Informa¸˜o em Rede ca Ulisses Ara´jo Costa u 18 Fevereiro, 2010 Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 2. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 3. NIDS - Network Intrusion Detection System Sistema de detec¸˜o de intrus˜o de rede ca a Tenta detectar actividade maliciosa (ataques DoS, DDos, port scans, tentativas de cracking ) Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 4. Como funciona An´lise de todos os pacotes a Tenta encontrar padr˜es suspeitos o Exemplo - port scanners Se um grande n´mero de pedidos de conec¸˜es TCP para um u co grande n´mero de portas diferentes num curto espa¸o de tempo u c ent˜o o NIDS conclu´ que podemos estar a ser alvo de um scan de a ı portos. Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 5. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 6. Defini¸˜o ca SNORT is an open source network intrusion prevention and detection system utilizing a rule-driven language, which combines the benefits of signature, protocol and anomaly based inspection methods. With millions of downloads to date, Snort is the most widely deployed intrusion detection and prevention technology worldwide and has become the de facto standard for the industry. Modo passivo Modo activo = firewall Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 7. Abordagem - Snort Usar o Snort para capturar todo o trafego que conseguir em modo passivo. root@pig:# snort -u snort -g snort -D -d -l /var/log/snort -c /etc/snort/snort.debian.conf -S -i eth0 Grava log em binario (formato tcpdump) Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 8. Abordagem - Snort - Sintaxe Regras O Snort usa regras para poder fazer o matching do tr´fego. O a cabe¸alho de uma regra cont´m os seguintes campos: c e Ac¸˜o (log, alert) ca Protocolo (ip, tcp, udp, icmp, any) IP origem e Porto IP destino e Porto Operador de direc¸˜o (− >, ”<>”) ca Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 9. Abordagem - Snort - Sintaxe Regras Os endere¸os IP de destino ou de origem podem ser: c Vari´veis ($HOME NET) a Endere¸os de IP individuais c blocos CIDR Listas do tipo: [192.168.3.12,192.168.3.9] Os portos podem ser: Portos individuais Ranges de portos (”80:85”, ”:1024”, ”1025:”) Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 10. Abordagem - Snort - Regras alert tcp any any -> 192.168.1.0/24 21 ( content : " user root "; msg : " FTP root login ";) alert tcp any any -> 192.168.1.0/24 21 ( content : " USER root "; msg : " FTP root login ";) Estas duas regras dizem ao Snort para quando encontrar tr´fego a vindo de qualquer host e em direc¸˜o ao IP 192.168.1.0/24 para o ca porto 21 e cujo conte´do tenha a string ”user root”ou ”USER u root”ent˜o imprimir no ecran o alerta: ”FTP root login”. a Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 11. Abordagem - Snort - Regras A seguinte regra encontra e grava em ficheiro todas as sess˜es o Telnet que se estabele¸am com o host 192.168.1.0/24. c log !192. 168.1.0/24 any <> 192.168.1.0/24 23 Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 12. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 13. Abordagem - tcpdump O tcpdump ´ um programa que corre num computador e e grava todos os pacotes que chegam a um interface de rede. Ouve tudo o que a interface recebe Os ficheiros ficam guardados no formato libpcap. Correr o tcpdump ligado a um hub. Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 14. Abordagem - tcpdump Correr o tcpdump numa Gateway. Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 15. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 16. Depois de ter o ficheiro. . . Implementa¸˜o de filtros segundo determinadas regras ca Agrega¸˜o de pacotes segundo regras (onde o Snort n˜o ca a chega) Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 17. Problema - parsing Fazer parsing de tcpdump Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 18. Exemplo - pacote SSH Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 19. Implementa¸˜o em Haskell ca getPacket :: [ Word8 ] -> InPacket getPacket bytes = toInPack $ listArray (0 , Prelude . length bytes -1) $ bytes -- Ethernet | IP | TCP | X getPacketTCP :: [ Word8 ] -> Maybe ( NE . Packet ( NI4 . Packet ( NT . Packet InPacket ) ) ) getPacketTCP bytes = doParse $ getPacket bytes :: Maybe ( NE . Packet ( NI4 . Packet ( NT . Packet InPacket ) ) ) Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 20. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 21. Exemplos Mostrar todas as comunica¸˜es com o IP 192.168.74.242 co root@pig:# tshark -R "ip.addr == 192.168.74.242-r snort.log ... 7750 6079.816123 193.136.19.96 -> 192.168.74.242 SSHv2 Client : Key Exchange Init 7751 6079.816151 192.168.74.242 -> 193.136.19.96 TCP ssh > 51919 [ ACK ] Seq =37 Ack =825 Win =7424 Len =0 TSV =131877388 TSER =1789588 7752 6079.816528 192.168.74.242 -> 193.136.19.96 SSHv2 Server : Key Exchange Init 7753 6079.817450 193.136.19.96 -> 192.168.74.242 TCP 51919 > ssh [ ACK ] Seq =825 Ack =741 Win =7264 Len =0 TSV =1789588 TSER =131877389 7754 6079.817649 193.136.19.96 -> 192.168.74.242 SSHv2 Client : Diffie - Hellman GEX Request 7755 6079.820784 192.168.74.242 -> 193.136.19.96 SSHv2 Server : Diffie - Hellman Key Exchange Reply 7756 6079.829495 193.136.19.96 -> 192.168.74.242 SSHv2 Client : Diffie - Hellman GEX Init 7757 6079.857490 192.168.74.242 -> 193.136.19.96 SSHv2 Server : Diffie - Hellman GEX Reply 7758 6079.884000 193.136.19.96 -> 192.168.74.242 SSHv2 Client : New Keys 7759 6079.922576 192.168.74.242 -> 193.136.19.96 TCP ssh > 51919 [ ACK ] Seq =1613 Ack =1009 Win =8960 Len =0 TSV =131877415 TSER =1789605 ... Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 22. Exemplos Mostrar um triplo com: (tempo,codigo http,tamanho do conte´do u http), separados por ’,’ e entre aspas. root@pig:# tshark -r snort.log -R http.response -T fields -E header=y -E separator=’,’ -E quote=d -e frame.time relative -e http.response.code -e http.content length ... "128.341166000" ,"200" ,"165504" "128.580181000" ,"200" ,"75332" "128.711618000" ,"200" ,"1202" "149.575548000" ,"206" ,"1" "149.719938000" ,"304" , "149.882290000" ,"404" ,"338" "150.026474000" ,"404" ,"341" "150.026686000" ,"404" ,"342" "150.170295000" ,"304" , "150.313576000" ,"304" , "150.456650000" ,"304" , ... Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 23. Exemplos Mostrar um tuplo de aridade 4 com: (tempo,ip origem,ip destino, tamanho do pacote tcp). root@pig:# tshark -r snort.log -R "tcp.len>0-T fields -e frame.time relative -e ip.src -e ip.dst -e tcp.len ... 551.751252000 193.136.19.96 192.168.74.242 48 551.751377000 192.168.74.242 193.136.19.96 144 551.961545000 193.136.19.96 192.168.74.242 48 551.961715000 192.168.74.242 193.136.19.96 208 552.682260000 193.136.19.96 192.168.74.242 48 552.683955000 192.168.74.242 193.136.19.96 1448 552.683961000 192.168.74.242 193.136.19.96 1448 552.683967000 192.168.74.242 193.136.19.96 512 555.156301000 193.136.19.96 192.168.74.242 48 555.158474000 192.168.74.242 193.136.19.96 1448 555.158481000 192.168.74.242 193.136.19.96 1400 556.021205000 193.136.19.96 192.168.74.242 48 556.021405000 192.168.74.242 193.136.19.96 160 558.874202000 193.136.19.96 192.168.74.242 48 558.876027000 192.168.74.242 193.136.19.96 1448 ... Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 24. Exemplos Mostrar um triplo com: (ip origem,ip destino, porto do ip destino). root@pig:# tshark -r snort.log -Tfields -e ip.src -e ip.dst -e tcp.dstport ... 192. 16 8.7 4.242 193.136.19.96 37602 192. 16 8.7 4.242 193.136.19.96 37602 193.136.19.96 192.168.74.242 22 192. 16 8.7 4.242 193.136.19.96 37602 193.136.19.96 192.168.74.242 22 193.136.19.96 192.168.74.242 22 192. 16 8.7 4.242 193.136.19.96 37602 192. 16 8.7 4.242 193.136.19.96 37602 192. 16 8.7 4.242 193.136.19.96 37602 193.136.19.96 192.168.74.242 22 193.136.19.96 192.168.74.242 22 193.136.19.96 192.168.74.242 22 193.136.19.96 192.168.74.242 22 192. 16 8.7 4.242 193.136.19.96 37602 192. 16 8.7 4.242 193.136.19.96 37602 ... Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 25. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 26. Estat´ ısticas Hierarquia de protocolos root@pig:# tshark -r snort.log -q -z io,phs frame frames :7780 bytes :1111485 eth frames :7780 bytes :1111485 ip frames :3992 bytes :848025 tcp frames :3908 bytes :830990 ssh frames :2153 bytes :456686 http frames :55 bytes :19029 http frames :5 bytes :3559 http frames :3 bytes :2781 http frames :2 bytes :2234 http frames :2 bytes :2234 data - text - lines frames :10 bytes :5356 tcp . segments frames :3 bytes :1117 http frames :3 bytes :1117 media frames :3 bytes :1117 udp frames :84 bytes :17035 nbdgm frames :50 bytes :12525 smb frames :50 bytes :12525 mailslot frames :50 bytes :12525 browser frames :50 bytes :12525 dns frames :34 bytes :4510 llc frames :3142 bytes :224934 stp frames :3040 bytes :182400 cdp frames :102 bytes :42534 loop frames :608 bytes :36480 data frames :608 bytes :36480 arp frames :38 bytes :2046 Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 27. Estat´ ısticas - Conversations Usa-se: -z conv,<tipo>,<filtro> Tipo pode ser: eth,tr,fc,fddi,ip,ipx,tcp,udp Os filtros servem para restringir as estatisticas root@pig:# tshark -r snort.log -q -z conv,ip,tcp.port==80 ================================================================================ IPv4 Conversations Filter : tcp . port ==80 | <- | | -> | | Total | | Frames Bytes | | Frames Bytes | | Frames Bytes | 19 3. 13 6.1 9. 14 8 <-> 19 2.168.74.242 141 13091 202 259651 343 272742 19 2. 16 8.7 4. 24 2 <-> 128.31.0.36 22 6858 28 4784 50 11642 ================================================================================ Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 28. Estat´ ısticas - IO Usa-se: -z io,stat,<int>,<filtro>,. . . ,<filtro> root@pig:# tshark -r snort.log -q -z io,stat,300,’not (tcp.port=22)’ =================================================================== IO Statistics Interval : 300.000 secs Column #0: | Column #0 Time | frames | bytes 000.000 -300.000 2161 543979 300.000 -600.000 1671 264877 600.000 -900.000 508 46224 900.000 -1200.000 185 12885 1200.000 -1500.000 201 14607 1500.000 -1800.000 187 13386 1800.000 -2100.000 189 13887 2100.000 -2400.000 187 13386 2400.000 -2700.000 189 13887 2700.000 -3000.000 187 13386 3000.000 -3300.000 185 12885 3300.000 -3600.000 189 13887 3600.000 -3900.000 210 15546 3900.000 -4200.000 189 13887 4200.000 -4500.000 187 13386 4500.000 -4800.000 185 12885 4800.000 -5100.000 189 13887 =================================================================== Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 29. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 30. Sess˜es HTTP o Quando queremos obter determinada informa¸˜o, se for muito ca especifica, o tshark sozinho pode n˜o conseguir l´ chegar. Assim a a usamos como apoio outras linguagens que suportem o tshark afim de conseguir a informa¸˜o que pretendemos. ca Neste caso queremos mostrar as sess˜es HTTP de um determinado o utilizador. Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 31. Sess˜es HTTP- implementa¸˜o o ca #!/ usr / bin / bash file = $1 user = $2 for cookie in ‘ tshark -r $file -R " http . request and http contains $user " -T fields -e http . cookie | tr " " " _ " ‘ do sid = ‘ echo $cookie | cut -d ’_ ’ -f 2 | tr -d "015" ‘ tmpfile =" tmp_ ‘ echo $sid | cut -d ’= ’ -f 2 ‘. cap " echo " Processing session cookie $sid to $tmpfile " tshark -r $file -w $tmpfile -R ‘ tshark -r $file " http . request and http . cookie contains " $sid "" -T fields -e tcp . srcport | awk ’{ printf ("% stcp . port ==% s " , sep , $1 ) ; sep ="||"} ’ ‘ done mergecap -w $user . cap ‘ ls -1 tmp_ *. cap ‘ rm ‘ ls -1 tmp_ *. cap ‘ Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 32. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 33. Ferramenta Ap´s an´lise de v´rias ferramentas o a a Necessidade de criar uma linguagem menor que a que descreve frames de rede Cada linha representa o estado de uma liga¸˜o ca Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 34. Ferramenta - Sintaxe do input 2010 -01 -01 -01:18:25.2246 tcp (6) E 82.3.10.27 4885 192.168.1.50 445: 4207 0 2010 -01 -01 -01:33:23.8935 tcp (6) S 82.155.39.149 4827 192.168.1.50 23 2010 -01 -01 -01:33:26.9242 tcp (6) E 82.155.39.149 4827 192.168.1.50 23: 0 62 2010 -01 -01 -03:26:11.9261 tcp (6) S 124.120.7.119 4900 192.168.1.50 23 2010 -01 -01 -03:26:13.8581 tcp (6) E 124.120.7.119 4900 192.168.1.50 23: 0 62 2010 -01 -01 -03:26:13.8606 tcp (6) - 124.120.7.119 4900 192.168.1.50 23: 40 R 2010 -01 -01 -03:36:25.6577 tcp (6) S 82.155.157.249 4268 192.168.1.50 23 2010 -01 -01 -03:36:28.6923 tcp (6) E 82.155.157.249 4268 192.168.1.50 23: 0 78 2010 -01 -01 -04:34:39.6524 tcp (6) S 82.155.251.43 3641 192.168.1.50 23 2010 -01 -01 -04:34:42.7348 tcp (6) E 82.155.251.43 3641 192.168.1.50 23: 0 62 2010 -01 -01 -05:45:06.4542 tcp (6) S 82.155.249.73 64436 192.168.1.50 139 2010 -01 -01 -05:45:15.6469 tcp (6) E 82.155.249.73 64436 192.168.1.50 139: 0 0 2010 -01 -01 -05:57:06.7332 tcp (6) S 79.25.93.226 44973 192.168.1.50 139 2010 -01 -01 -05:57:14.3509 tcp (6) E 79.25.93.226 44973 192.168.1.50 139: 0 0 2010 -01 -01 -05:57:28.0971 tcp (6) S 79.25.93.226 46984 192.168.1.50 80 2010 -01 -01 -05:58:40.3750 tcp (6) E 79.25.93.226 46984 192.168.1.50 80: 150 1008 2010 -01 -01 -06:05:42.1734 tcp (6) S 82.155.249.73 64894 192.168.1.50 139 2010 -01 -01 -06:05:46.1496 tcp (6) E 82.155.249.73 64894 192.168.1.50 139: 0 0 2010 -01 -01 -06:15:14.8449 tcp (6) S 82.155.249.73 53952 192.168.1.50 139 2010 -01 -01 -06:15:14.8841 tcp (6) E 82.155.249.73 53952 192.168.1.50 139: 0 0 2010 -01 -01 -06:23:25.5025 tcp (6) S 82.155.249.73 53934 192.168.1.50 139 2010 -01 -01 -06:23:26.5404 tcp (6) E 82.155.249.73 53934 192.168.1.50 139: 0 0 Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 35. Ferramenta - Sintaxe do input Data Protocolo T IPOrig PortOrig IPDst PortDst Info 2009-12-09-06:31:59.3902 tcp(6) S 88.44.123.210 3637 192.168.1.50 139 2009-12-07-16:06:28.9343 tcp(6) S 82.155.0.49 22617 192.168.1.50 139 2009-12-09-11:41:25.6859 tcp(6) E 82.155.1.160 4399 192.168.1.50 445: 00 2009-12-07-16:20:04.5996 tcp(6) - 82.155.122.18 61582 192.168.1.50 139: 40 R 2009-12-14-09:04:38.2678 icmp(1) - 80.236.5.27 192.168.1.50: 3(13): 5 2009-12-17-01:11:47.6209 tcp(6) - 82.154.64.174 34507 192.168.1.50 445: 40 RA 2009-12-19-18:25:03.3130 tcp(6) - 124.8.74.33 1806 192.168.1.50 25: 70 FPA 2009-12-14-09:54:27.6131 tcp(6) - 168.167.152.228 58274 192.168.1.50 445: 52 FA 2009-12-14-09:54:27.6131 tcp(6) - 168.167.152.228 58274 192.168.1.50 445: 52 FA 2009-12-14-09:54:27.6131 tcp(6) - 82.155.57.245 58274 192.168.1.50 445: 52 PA 2009-12-14-09:54:27.6131 tcp(6) - 193.136.19.149 58274 192.168.1.50 445: 52 PA 2009-12-07-20:59:29.6910 tcp(6) - 88.175.73.149 4332 192.168.1.50 139: 40 R 2009-12-09-11:57:04.2741 tcp(6) - 82.155.137.139 1230 192.168.1.50 445: 40 A 2009-12-07-18:35:28.4232 tcp(6) - 82.155.7.176 2794 192.168.1.50 445: 40 A 2009-12-07-15:34:49.0070 tcp(6) - 82.155.116.238 3578 192.168.1.50 23: 60 S 2009-12-07-16:06:29.2781 tcp(6) - 124.207.41.198 48804 192.168.1.50 23: 40 S 2009-12-15-22:59:03.4039 udp(17) - 192.168.1.254 67 192.168.1.50 68: 298 Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 36. Ferramenta - Sintaxe do input A coluna da Date tem uma marca temporal de quando a comunica¸˜o ocorreu. ca A coluna Protocolo cont´m informa¸˜o sobre o protocolo de e ca transporte que foi usado, TCP, UDP ou ICMP. Mesmo assim quando ´ feita uma pesquisa n˜o comum de rede pode ser um e a outro qualquer protocolo de internet. Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 37. Ferramenta - Sintaxe do input A terceira coluna (T) contem a informa¸˜o do tipo de conex˜o: ca a S significa que a liga¸˜o come¸ou (Start) ca c E significa que a liga¸˜o terminou (End) ca - significa que o package n˜o corresponde a nenhuma a conex˜o. a As pr´ximas quatro colunas correspondem a informa¸˜o sobre o IP o ca de destino, o porto de destino, o IP de origem e o porto de origem. Para o protocolo ICMP as colunas das portas est˜o vazias porque a este protocolo n˜o usa portas. a A coluna Info cont´m informa¸˜o relativa a uma conex˜o ou um e ca a pacote. Quando uma conex˜o termina este cont´m o n´mero de a e u bytes recebidos e enviados. Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 38. Ferramenta - Sintaxe do input Para os pacotes de sondagem estes contˆm informa¸˜o adicional: e ca TCP O tamanho do pacote e as flags que est˜o no header. a F (Fin) - N˜o existe mais informa¸˜o para a ca enviar S (Syn) - Sincroniza n´meros de sequenˆncia u e R (Rst) - Faz Reset ` conex˜o a a P (Push) - Esta flag diz ao host receptor para fazer um push a toda a informa¸˜o ca para a aplica¸˜o que vai receber a ca informa¸˜o, b´sicamente diz: ”chega ca a por agora”. A (Ack) - Indica que o campo ACKnowledgment est´ preenchido, com o valor do a ACKnowledgment Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 39. Ferramenta - Sintaxe do input U (Urg) - Indica que o campo URGent est´ preenchido. Esta a flag serve para indicar que a informa¸˜o contida ca neste campo ter´ de ser tratada com uregencia, antes a dos pacotes normais serem tratados. E (ECE) - Indica que o protocolo TCP ´ capaz de Explicit e Congestion Notification durante o 3-way handshake. C (CWR) - Flag de Congestion Window Reduced ´ usada para e indicar que foi recebida um segmento TCP com a flag ECE ICMP O c´digo, o tipo e o tamanho do pacote. o UDP Tamanho do pacote Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 40. Ferramenta - Sintaxe do input O cabe¸alho de um pacote TCP cont´m espa¸o para todas estas c e c flags que foram descritas. Como podemos ver na imagem: Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 41. Sum´rio a 1 NIDS 2 Snort 3 tcpdump 4 Parsing 5 tshark Estat´ısticas Sess˜es HTTP o 6 Descri¸˜o ca Uso da ferramenta Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 42. Ferramenta - output Com este programa conseguimos gerar por exemplo as comunica¸˜es entre o host 193.136.19.96 e o host 192.168.74.242 co pelo porto 80 (HTTP), em bytes: Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 43. Ferramenta - output No seguinte gr´fico conseguimos ver o n´mero de liga¸˜es que a u co houve durante um periodo de tempo ` m´quina 192.168.74.242 a a por IP de origem: Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 44. Ferramenta - output Mostra a quantidade de tr´fego recebido pela m´quina a a 193.136.19.96 no porto 80 (HTTP), vindo de todos os IP’s que comunicaram consigo: Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 45. Ferramenta - output N´mero de hits no porto 80 do IP 192.168.1.50: u Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 46. Ferramenta - output N´mero de hits nos portos do IP 192.168.1.50: u Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 47. Conclus˜es o tshark ´ o verdadeiro canivete sui¸o de frames de rede e c Todas as ferramentas tiveram pontos fortes Nenhuma resolveu totalmente o nosso problema Software est´ reparado para ser extendido e suportar outros a protocolos de qualquer Layer. Desenvolver conversor libpcap para a linguagem utilizada, ver relat´rio para sugest˜es de implementa¸˜o. o o ca Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca
  • 48. Fim ? Ulisses Ara´jo Costa u Captura de Informa¸˜o em Rede ca