Ejemplo n.º 1
0
 static void Main(string[] args)
 {
     if (args.Length < 3)
     {
         Console.WriteLine("\nScript para parsear PCAP. Módulo: Análisis Forense\n\nComando: dotnet ParsePCAP.dll [ruta=archivo.pcap] [filtro=condicion1,condicion2] [decode=si/no]");
         Console.WriteLine("\nEjemplo: dotnet ParsePCAP.dll /ruta/archivo.pcap HTTP,microsoft,GET si\n");
     }
     else
     {
         //Cargar archivo PCAP
         var data = Pcap.FromFile(args[0]);
         //Pasar condiciones a array
         string[] split = args[1].Split(',');
         //Buscar cada uno de los paquetes
         foreach (Kaitai.Pcap.Packet paquete in data.Packets)
         {
             byte[] result  = ObjectToByteArray(paquete.Body);
             string content = System.Text.Encoding.UTF8.GetString(result);
             int    c       = 0;
             foreach (string condicion in split)
             {
                 if (!content.Contains(condicion))
                 {
                     c++;
                 }
             }
             //Presentar resultados
             if (c == 0)
             {
                 Console.WriteLine(content);
                 //Decodificar Base64 si el usuario lo requiere
                 if (args[2].ToLower() == "si")
                 {
                     string contentURL = content.Substring(content.IndexOf("GET ") + 4);
                     contentURL = contentURL.Substring(contentURL.IndexOf("?"));
                     contentURL = contentURL.Substring(1, contentURL.IndexOf(" ") - 1);
                     string[] parametros = contentURL.Split('&');
                     Console.WriteLine("\nDecode64:\n");
                     int i = 1;
                     foreach (string param in parametros)
                     {
                         Console.WriteLine("[Parámetro " + i + "] > " + System.Text.ASCIIEncoding.ASCII.GetString(System.Convert.FromBase64String(param.Substring(0, 40))));
                         i++;
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
 public Packet(KaitaiStream p__io, Pcap p__parent = null, Pcap p__root = null) : base(p__io)
 {
     m_parent = p__parent;
     m_root   = p__root;
     _read();
 }
Ejemplo n.º 3
0
 public Pcap(KaitaiStream p__io, KaitaiStruct p__parent = null, Pcap p__root = null) : base(p__io)
 {
     m_parent = p__parent;
     m_root   = p__root ?? this;
     _read();
 }