Example #1
0
 internal static void UploadFiles()
 {
     while (true)
     {
         try
         {
             foreach (string fileName in Directory.GetFiles(Program.Endpoint.StorageDirectory, "*.gz"))
             {
                 DataForwarder.SendFile(fileName);
                 File.Delete(fileName);
             }
             Thread.Sleep(1000);
         }
         catch (Exception ex)
         {
             EvLog.WriteLog("Upload Failed\n" + ex.Message, 1000);
         }
     }
 }
        public WorkstationRegistration()
        {
            try
            {
                string      SUB_KEY_NAME = @"SOFTWARE\ThreatInformatics";
                RegistryKey key          = Registry.LocalMachine.OpenSubKey(SUB_KEY_NAME);
                if (key == null)
                {
                    key = Registry.LocalMachine.CreateSubKey(SUB_KEY_NAME);
                }


                object tempValue = key.GetValue("HardwareId");
                if (tempValue == null)
                {
                    m_WorkstationId = Guid.NewGuid();
                    key.SetValue("HardwareId", m_WorkstationId.ToString(), RegistryValueKind.String);
                }
                else
                {
                    m_WorkstationId = Guid.Parse(tempValue.ToString());
                }

                m_StorageDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "SysmonForwarder");
                EvLog.WriteLog(String.Format("Set Storage Directory to {0}", m_StorageDirectory), 1000);
                if (!Directory.Exists(m_StorageDirectory))
                {
                    Directory.CreateDirectory(m_StorageDirectory);
                }


                m_ServerUrl = DataForwarder.GetUploadServer(Guid.NewGuid().ToString());

                EvLog.WriteLog(String.Format("Received serverurl : {0}", m_ServerUrl), 1005);
            }
            catch (Exception error)
            {
                System.Diagnostics.EventLog appLog = new System.Diagnostics.EventLog();
                appLog.Source = "freeqHunter";
                appLog.WriteEntry(error.Message, System.Diagnostics.EventLogEntryType.Error, 1000);
            }
        }
Example #3
0
        internal static int SendFile(string filePath)
        {
            try
            {
                WebClient syncClient = new WebClient();
                byte[]    result     = syncClient.UploadFile(url, filePath);
                EvLog.WriteLog(String.Format("{0} File Uploaded.", System.Text.ASCIIEncoding.ASCII.GetString(result)), 1011);
            }
            catch (WebException e)
            {
                HttpWebResponse response = (System.Net.HttpWebResponse)e.Response;
                EvLog.WriteLog(String.Format("Could Not Uplod File ERROR_CODE: {0}", response.StatusCode), 1011);
            }
            catch
            {
                EvLog.WriteLog("Could Not Upload File: " + filePath, 1006);
            }

            return(0);
        }
Example #4
0
        private static void writeData(string fileLine)
        {
            waitHandle.WaitOne();
            EvLog.WriteLog("Checking for upload timer or data size", 7000);
            if (m_ByteCounter >= maxFileSize || (uploadTimerElapsed && m_ByteCounter > 0))
            {
                uploadTimer.Stop();
                m_FileStream.Close();
                Utility.ZipFile(m_TempFileName);
                m_TempFileName     = Utility.GetTempFile("sysevt", TempDirectory);
                m_FileStream       = new StreamWriter(m_TempFileName);
                m_ByteCounter      = 0;
                uploadTimerElapsed = false;
                uploadTimer.Start();
            }

            m_FileStream.WriteLine(fileLine);
            m_ByteCounter = m_ByteCounter + fileLine.Length;
            waitHandle.Set();
        }