[
  {
    "FileName": "7ea93753eb0d18e41b2ad321b48720e949cb89ff1835d9ab97c56181d97f3c5b",
    "FilePath": "/root/DataDocuments/Reconnaissance/LourDodeen/KeysCertificates/Mahmoud_Dodeen_CV_2021.cert.html",
    "LineContent": "\u003Chtml\u003E\u003Cbody\u003E\r\n\u003Ch2\u003EHx7 Cryptography Certificate\u003C/h2\u003E\r\n\u003Cp\u003E\u003Cb\u003ESource File:\u003C/b\u003E D:\\osint\\Lour dodeen\\Mahmoud_Dodeen_CV_2021.pdf\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EEncrypted File:\u003C/b\u003E D:\\osint\\Lour dodeen\\Mahmoud_Dodeen_CV_2021.pdf.enc\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EMode:\u003C/b\u003E Password Protection\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EFinal Key (Base64):\u003C/b\u003E\u003Cbr\u003EGssllr0PVl0dEi2NujIywcBBVfsr3XCduzmSjf76shpeFaY6UUmJoKUvdaNcV98y9y7E/zqnK6CTNXDW\u003C/p\u003E\r\n\u003C/body\u003E\u003C/html\u003E\r\n",
    "Score": "0.493",
    "Query": "test",
    "Time": "2026-06-01 19:21:39"
  },
  {
    "FileName": "5953725f546fa48bb811b2d159dae514d8d2d37bc22bf8e43b23ee81f7c566bc",
    "FilePath": "/root/DataDocuments/Reconnaissance/LourDodeen/KeysCertificates/Lour_Dodeen_Instagram_Profile.cert.html",
    "LineContent": "\u003Chtml\u003E\u003Cbody\u003E\r\n\u003Ch2\u003EHx7 Cryptography Certificate\u003C/h2\u003E\r\n\u003Cp\u003E\u003Cb\u003ESource File:\u003C/b\u003E D:\\osint\\Lour dodeen\\Lour_Dodeen_Instagram_Profile.jpg\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EEncrypted File:\u003C/b\u003E D:\\osint\\Lour dodeen\\Lour_Dodeen_Instagram_Profile.jpg.enc\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EMode:\u003C/b\u003E Password Protection\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EFinal Key (Base64):\u003C/b\u003E\u003Cbr\u003EYY\u002BPsH0MKdlEsGBiu086wB4AGa1acSllFpO95AzMn/LhKbaYgb7RTRWcXwV2d7Qr2d2MlmMtzWfs\u002B8Zh\u003C/p\u003E\r\n\u003C/body\u003E\u003C/html\u003E\r\n",
    "Score": "0.481",
    "Query": "test",
    "Time": "2026-06-01 19:21:39"
  },
  {
    "FileName": "061cee79d2beec395d310f0fdfe54dc43a9bf0bc24c222c39b7cc47452719232",
    "FilePath": "/root/Hx7-SearchEngine/SearchENfront/Pages/Download.cshtml.cs",
    "LineContent": "using System;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Threading.Tasks;\nusing Microsoft.AspNetCore.Http;\nusing Microsoft.AspNetCore.Mvc;\nusing Microsoft.AspNetCore.Mvc.RazorPages;\n\nnamespace SearchENfront.Pages\n{\n    [IgnoreAntiforgeryToken]\n    public class DownloadModel : PageModel\n    {\n        public string FilePath { get; set; } = \u0022\u0022;\n        public string ServerIp { get; set; } = \u0022178.104.172.69\u0022;\n        public string ErrorMsg { get; set; } = \u0022\u0022;\n        public bool DownloadComplete { get; set; }\n        public bool IsPostBack { get; set; }\n        public bool LocalMode { get; set; }\n\n        public async Task\u003CIActionResult\u003E OnGet(string path, string ip, bool local)\n        {\n            FilePath = path ?? \u0022\u0022;\n            if (!string.IsNullOrWhiteSpace(ip)) ServerIp = ip.Trim();\n            LocalMode = local;\n\n            if (LocalMode \u0026\u0026 !string.IsNullOrWhiteSpace(FilePath))\n            {\n                return await StreamLocalFile(FilePath);\n            }\n\n            return Page();\n        }\n\n        public async Task\u003CIActionResult\u003E OnPostAsync(\n            string filePath, string serverIp,\n            string username, string password,\n            IFormFile privateKeyFile, bool local)\n        {\n            IsPostBack = true;\n            FilePath = filePath ?? \u0022\u0022;\n            ServerIp = string.IsNullOrWhiteSpace(serverIp) ? \u0022178.104.172.69\u0022 : serverIp.Trim();\n            LocalMode = local;\n\n            if (LocalMode \u0026\u0026 !string.IsNullOrWhiteSpace(FilePath))\n            {\n                return await StreamLocalFile(FilePath);\n            }\n\n            if (string.IsNullOrWhiteSpace(filePath))\n            {\n                ErrorMsg = \u0022[-] File path is required.\u0022;\n                return Page();\n            }\n\n            if (string.IsNullOrWhiteSpace(username))\n            {\n                ErrorMsg = \u0022[-] SSH username is required.\u0022;\n                return Page();\n            }\n\n            bool useKeyFile = privateKeyFile != null \u0026\u0026 privateKeyFile.Length \u003E 0;\n            if (string.IsNullOrWhiteSpace(password) \u0026\u0026 !useKeyFile)\n            {\n                ErrorMsg = \u0022[-] Provide either a password or a private key file.\u0022;\n                return Page();\n            }\n\n            string tempKeyPath = null;\n            try\n            {\n                string userHost = $\u0022{username}@{ServerIp}\u0022;\n                var sshBaseArgs = $\u0022-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null {userHost}\u0022;\n                if (useKeyFile)\n                {\n                    tempKeyPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() \u002B \u0022.pem\u0022);\n                    using (var stream = new FileStream(tempKeyPath, FileMode.Create))\n                    {\n                        await privateKeyFile.CopyToAsync(stream);\n                    }\n                    sshBaseArgs = $\u0022-i {tempKeyPath} {sshBaseArgs}\u0022;\n                }\n\n                // Step 1: Validate credentials\n                var validateArgs = useKeyFile\n                    ? $\u0022{sshBaseArgs} exit\u0022\n                    : $\u0022-p {password} ssh {sshBaseArgs} exit\u0022;\n                var validatePsi = new ProcessStartInfo\n                {\n                    FileName = useKeyFile ? \u0022ssh\u0022 : \u0022sshpass\u0022,\n                    Arguments = validateArgs,\n                    RedirectStandardOutput = true,\n                    RedirectStandardError = true,\n                    UseShellExecute = false,\n                    CreateNoWindow = true\n                };\n\n                using (var proc = Process.Start(validatePsi))\n                {\n                    proc.WaitForExit(15000);\n                    if (proc.ExitCode != 0)\n                    {\n                        string err = proc.StandardError.ReadToEnd();\n                        ErrorMsg = $\u0022[-] SSH authentication failed. {err.Trim()}\u0022;\n                        return Page();\n                    }\n                }\n\n                // Step 2: Stream the file via SSH\n                string fileName = Path.GetFileName(filePath);\n                Response.Headers[\u0022Content-Disposition\u0022] = $\u0022attachment; filename=\\\u0022{fileName}\\\u0022\u0022;\n\n                string escapedPath = filePath.Contains(\u0022\u0027\u0022) ? $\u0022\\\u0022{filePath}\\\u0022\u0022 : $\u0022\u0027{filePath}\u0027\u0022;\n                var downloadArgs = useKeyFile\n                    ? $\u0022{sshBaseArgs} cat {escapedPath}\u0022\n                    : $\u0022-p {password} ssh {sshBaseArgs} cat {escapedPath}\u0022;\n                var downloadPsi = new ProcessStartInfo\n                {\n                    FileName = useKeyFile ? \u0022ssh\u0022 : \u0022sshpass\u0022,\n                    Arguments = downloadArgs,\n                    RedirectStandardOutput = true,\n                    RedirectStandardError = true,\n                    UseShellExecute = false,\n                    CreateNoWindow = true\n                };\n\n                using (var proc = Process.Start(downloadPsi))\n                {\n                    await proc.StandardOutput.BaseStream.CopyToAsync(Response.Body);\n                    await Response.Bo\n... [TRUNCATED]",
    "Score": "0.481",
    "Query": "test",
    "Time": "2026-06-01 19:21:39"
  }
]