aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Frontend
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-08-02 09:30:39 -0400
committerMichael <[email protected]>2017-08-02 09:30:39 -0400
commit10d2c0bbaa2b5c933a37056c784d3de84fa82eaf (patch)
treee8894d69a359721c1363e32b97d4ff855fd81ef2 /ShiftOS.Frontend
parent52319b29eef65560a737353a71e1e4017dc87c09 (diff)
downloadshiftos_thereturn-10d2c0bbaa2b5c933a37056c784d3de84fa82eaf.tar.gz
shiftos_thereturn-10d2c0bbaa2b5c933a37056c784d3de84fa82eaf.tar.bz2
shiftos_thereturn-10d2c0bbaa2b5c933a37056c784d3de84fa82eaf.zip
sploitset ftpwn mounts ftp directory on breach
Diffstat (limited to 'ShiftOS.Frontend')
-rw-r--r--ShiftOS.Frontend/Apps/FileSkimmer.cs21
-rw-r--r--ShiftOS.Frontend/Hacking/HackableProvider.cs31
-rw-r--r--ShiftOS.Frontend/Hacking/HackingCommands.cs2
3 files changed, 53 insertions, 1 deletions
diff --git a/ShiftOS.Frontend/Apps/FileSkimmer.cs b/ShiftOS.Frontend/Apps/FileSkimmer.cs
index c4dbb09..58a9908 100644
--- a/ShiftOS.Frontend/Apps/FileSkimmer.cs
+++ b/ShiftOS.Frontend/Apps/FileSkimmer.cs
@@ -21,6 +21,27 @@ namespace ShiftOS.Frontend.Apps
public void OnLoad()
{
+ if(Hacking.CurrentHackable != null)
+ {
+ if (Hacking.CurrentHackable.VectorsUnlocked.Contains(Objects.SystemType.FileServer))
+ {
+ if(Mounts.Count > 2)
+ {
+ Mounts.RemoveAt(2);
+ }
+ var dir = new Objects.ShiftFS.Directory();
+ dir.Name = $"{Hacking.CurrentHackable.Data.SystemName} (ftp)";
+ Mounts.Add(dir);
+ foreach (var loot in Hacking.CurrentHackable.ServerFTPLoot)
+ {
+ if(!FileExists("2:/" + loot.LootName))
+ {
+ var bytes = Hacking.GetLootBytes(loot.PointTo);
+ }
+ }
+ }
+ }
+
Width = 720;
Height = 480;
_fList = new GUI.ListBox();
diff --git a/ShiftOS.Frontend/Hacking/HackableProvider.cs b/ShiftOS.Frontend/Hacking/HackableProvider.cs
index e578fb0..83409c5 100644
--- a/ShiftOS.Frontend/Hacking/HackableProvider.cs
+++ b/ShiftOS.Frontend/Hacking/HackableProvider.cs
@@ -11,6 +11,37 @@ namespace ShiftOS.Frontend
{
public class HackableProvider : IHackableProvider
{
+ public byte[] FindLootBytes(string id)
+ {
+ foreach(var res in typeof(Properties.Resources).GetProperties(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static))
+ {
+ if(res.Name == id)
+ {
+ var obj = res.GetValue(null);
+ if(obj is System.Drawing.Image)
+ {
+ var img = (obj as System.Drawing.Bitmap);
+ using(var memstr = new System.IO.MemoryStream())
+ {
+ img.Save(memstr, System.Drawing.Imaging.ImageFormat.Png);
+ return memstr.ToArray();
+ }
+ }
+ else if(obj is System.IO.UnmanagedMemoryStream)
+ {
+ var ms = obj as System.IO.MemoryStream;
+ return ms.ToArray();
+ }
+ else if(obj is string)
+ {
+ var bytes = Encoding.UTF8.GetBytes(obj.ToString());
+ return bytes;
+ }
+ }
+ }
+ return null;
+ }
+
public Hackable[] GetHackables()
{
return JsonConvert.DeserializeObject<Hackable[]>(Properties.Resources.Hackables);
diff --git a/ShiftOS.Frontend/Hacking/HackingCommands.cs b/ShiftOS.Frontend/Hacking/HackingCommands.cs
index 9ebb824..3ecf7fb 100644
--- a/ShiftOS.Frontend/Hacking/HackingCommands.cs
+++ b/ShiftOS.Frontend/Hacking/HackingCommands.cs
@@ -51,12 +51,12 @@ namespace ShiftOS.Frontend
string Port = args["port"].ToString();
string ExploitName = args["id"].ToString();
var ExploitID = Hacking.AvailableExploits.FirstOrDefault(x => x.ID == ExploitName);
- Console.WriteLine(ExploitID.ExploitName);
if (ExploitID == null)
{
Console.WriteLine("[sploitset] invalid exploit.");
return;
}
+ Console.WriteLine(ExploitID.ExploitName);
var ExploitTarget = Hacking.CurrentHackable.PortsToUnlock.First(x => x.Value.ToString() == Port);
if (ExploitTarget == null)
{