diff --git a/msf/build.gradle b/msf/build.gradle index 5b04692e32..293032e647 100644 --- a/msf/build.gradle +++ b/msf/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'java' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'junit:junit:4.12' + testCompile 'junit:junit:4.12' compile 'commons-io:commons-io:2.4' compile 'org.apache.commons:commons-lang3:3.4' } \ No newline at end of file diff --git a/msf/src/main/java/org/csploit/msf/arch/Arch.java b/msf/src/main/java/org/csploit/msf/api/Arch.java similarity index 87% rename from msf/src/main/java/org/csploit/msf/arch/Arch.java rename to msf/src/main/java/org/csploit/msf/api/Arch.java index 54e5137ad8..f59b479b40 100644 --- a/msf/src/main/java/org/csploit/msf/arch/Arch.java +++ b/msf/src/main/java/org/csploit/msf/api/Arch.java @@ -1,4 +1,4 @@ -package org.csploit.msf.arch; +package org.csploit.msf.api; /** * Machines architectures @@ -28,5 +28,5 @@ public enum Arch { DALVIK, PYTHON, NODEJS, - FIREFOX; + FIREFOX } \ No newline at end of file diff --git a/msf/src/main/java/org/csploit/msf/api/Author.java b/msf/src/main/java/org/csploit/msf/api/Author.java new file mode 100644 index 0000000000..19e97553ae --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Author.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api; + +/** + * Represent an author + */ +public interface Author { + String getName(); + String getEmail(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/Auxiliary.java b/msf/src/main/java/org/csploit/msf/api/Auxiliary.java new file mode 100644 index 0000000000..2f4738d1f9 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Auxiliary.java @@ -0,0 +1,10 @@ +package org.csploit.msf.api; + +/** + * The auxiliary class acts as a base class for all modules that perform + * reconnaissance, retrieve data, brute force logins, or any other action + * that doesn't fit our concept of an 'exploit' (involving payloads and + * targets and whatnot). + */ +public interface Auxiliary extends Module { +} diff --git a/msf/src/main/java/org/csploit/msf/Customizable.java b/msf/src/main/java/org/csploit/msf/api/Customizable.java similarity index 81% rename from msf/src/main/java/org/csploit/msf/Customizable.java rename to msf/src/main/java/org/csploit/msf/api/Customizable.java index 9bd61b7039..4dea33204b 100644 --- a/msf/src/main/java/org/csploit/msf/Customizable.java +++ b/msf/src/main/java/org/csploit/msf/api/Customizable.java @@ -1,4 +1,6 @@ -package org.csploit.msf; +package org.csploit.msf.api; + +import org.csploit.msf.impl.Option; import java.util.Collection; diff --git a/msf/src/main/java/org/csploit/msf/api/Exploit.java b/msf/src/main/java/org/csploit/msf/api/Exploit.java new file mode 100644 index 0000000000..23c39ea35a --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Exploit.java @@ -0,0 +1,11 @@ +package org.csploit.msf.api; + +import org.csploit.msf.api.module.Target; + +/** + * Represent an exploit module + */ +public interface Exploit extends Module { + Target[] getTargets(); + Target getTarget(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/Framework.java b/msf/src/main/java/org/csploit/msf/api/Framework.java new file mode 100644 index 0000000000..c247738c41 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Framework.java @@ -0,0 +1,11 @@ +package org.csploit.msf.api; + +import java.util.List; + +/** + * A Metasploit Framework interface + */ +public interface Framework { + List getSessions(); + List getJobs(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/Job.java b/msf/src/main/java/org/csploit/msf/api/Job.java new file mode 100644 index 0000000000..99334a5c2e --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Job.java @@ -0,0 +1,13 @@ +package org.csploit.msf.api; + +import java.util.Date; + +/** + * This class is the representation of an abstract job. + */ +public interface Job { + int getId(); + String getName(); + Date getStartTime(); + void stop(); +} diff --git a/msf/src/main/java/org/csploit/msf/License.java b/msf/src/main/java/org/csploit/msf/api/License.java similarity index 95% rename from msf/src/main/java/org/csploit/msf/License.java rename to msf/src/main/java/org/csploit/msf/api/License.java index 4672e34dd3..205820807d 100644 --- a/msf/src/main/java/org/csploit/msf/License.java +++ b/msf/src/main/java/org/csploit/msf/api/License.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.api; /** * A license diff --git a/msf/src/main/java/org/csploit/msf/api/Module.java b/msf/src/main/java/org/csploit/msf/api/Module.java new file mode 100644 index 0000000000..a2f1d9d9ec --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Module.java @@ -0,0 +1,13 @@ +package org.csploit.msf.api; + +/** + * Represent a module of the MSF + */ +public interface Module { + + String getRefname(); + void setRefname(String refname); + + String getFullName(); + String getShortName(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/Option.java b/msf/src/main/java/org/csploit/msf/api/Option.java new file mode 100644 index 0000000000..e0407bdb58 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Option.java @@ -0,0 +1,15 @@ +package org.csploit.msf.api; + +/** + * An option + */ +public interface Option { + boolean isAdvanced(); + boolean haveDefaultValue(); + boolean isEvasion(); + boolean isRequired(); + T getDefaultValue(); + String getDescription(); + String getName(); + Module getOwner(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/Payload.java b/msf/src/main/java/org/csploit/msf/api/Payload.java new file mode 100644 index 0000000000..c46c1fe8f7 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Payload.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api; + +/** + * This class represents the base class for a logical payload. The framework + * automatically generates payload combinations at runtime which are all + * extended for this Payload as a base class. + */ +public interface Payload extends Module { +} diff --git a/msf/src/main/java/org/csploit/msf/api/Post.java b/msf/src/main/java/org/csploit/msf/api/Post.java new file mode 100644 index 0000000000..afdec7dff9 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Post.java @@ -0,0 +1,7 @@ +package org.csploit.msf.api; + +/** + * A Post-exploitation module. + */ +public interface Post extends Module { +} diff --git a/msf/src/main/java/org/csploit/msf/api/Session.java b/msf/src/main/java/org/csploit/msf/api/Session.java new file mode 100644 index 0000000000..700cb743dd --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/Session.java @@ -0,0 +1,29 @@ +package org.csploit.msf.api; + +/** + * The session class represents a post-exploitation, uh, session. + * Sessions can be written to, read from, and interacted with. The + * underlying medium on which they are backed is arbitrary. For + * instance, when an exploit is provided with a command shell, + * either through a network connection or locally, the session's + * read and write operations end up reading from and writing to + * the shell that was spawned. The session object can be seen + * as a general means of interacting with various post-exploitation + * payloads through a common interface that is not necessarily + * tied to a network connection. + */ +public interface Session { + int getId(); + String getLocalTunnel(); + String getPeerTunnel(); + Exploit getExploit(); + Payload getPayload(); + String getDescription(); + String getInfo(); + String getWorkspace(); + String getSessionHost(); + int getSessionPort(); + String getTargetHost(); + String getUsername(); + String getUuid(); +} diff --git a/msf/src/main/java/org/csploit/msf/module/Platform.java b/msf/src/main/java/org/csploit/msf/api/module/Platform.java similarity index 98% rename from msf/src/main/java/org/csploit/msf/module/Platform.java rename to msf/src/main/java/org/csploit/msf/api/module/Platform.java index 083a0893cf..e07f9b735f 100644 --- a/msf/src/main/java/org/csploit/msf/module/Platform.java +++ b/msf/src/main/java/org/csploit/msf/api/module/Platform.java @@ -1,4 +1,4 @@ -package org.csploit.msf.module; +package org.csploit.msf.api.module; /** * A platform diff --git a/msf/src/main/java/org/csploit/msf/module/Rank.java b/msf/src/main/java/org/csploit/msf/api/module/Rank.java similarity index 95% rename from msf/src/main/java/org/csploit/msf/module/Rank.java rename to msf/src/main/java/org/csploit/msf/api/module/Rank.java index b74854255b..74b4c6fa4c 100644 --- a/msf/src/main/java/org/csploit/msf/module/Rank.java +++ b/msf/src/main/java/org/csploit/msf/api/module/Rank.java @@ -1,4 +1,4 @@ -package org.csploit.msf.module; +package org.csploit.msf.api.module; /** * A module rank diff --git a/msf/src/main/java/org/csploit/msf/api/module/Reference.java b/msf/src/main/java/org/csploit/msf/api/module/Reference.java new file mode 100644 index 0000000000..74ecf732d6 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/module/Reference.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.module; + +/** + * A reference to some sort of information. This is typically a URL, but could + * be any type of referential value that people could use to research a topic. + */ +public interface Reference { + String toString(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/module/SiteReference.java b/msf/src/main/java/org/csploit/msf/api/module/SiteReference.java new file mode 100644 index 0000000000..a1c54f0cb7 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/module/SiteReference.java @@ -0,0 +1,8 @@ +package org.csploit.msf.api.module; + +/** + * A reference to a website. + */ +public interface SiteReference extends Reference { + String getUrl(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/module/Target.java b/msf/src/main/java/org/csploit/msf/api/module/Target.java new file mode 100644 index 0000000000..b0203f5f6a --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/module/Target.java @@ -0,0 +1,14 @@ +package org.csploit.msf.api.module; + +import org.csploit.msf.api.Arch; + +import java.util.Set; + +/** + * Represent a target + */ +public interface Target { + String getName(); + Set getPlatform(); + Set getArch(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/AddressOption.java b/msf/src/main/java/org/csploit/msf/api/options/AddressOption.java new file mode 100644 index 0000000000..afb470bb19 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/AddressOption.java @@ -0,0 +1,11 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +import java.net.InetAddress; + +/** + * Network address option. + */ +public interface AddressOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/AddressRangeOption.java b/msf/src/main/java/org/csploit/msf/api/options/AddressRangeOption.java new file mode 100644 index 0000000000..4ad1f2eee4 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/AddressRangeOption.java @@ -0,0 +1,11 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +import java.net.InetAddress; + +/** + * Network address range option. + */ +public interface AddressRangeOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/BooleanOption.java b/msf/src/main/java/org/csploit/msf/api/options/BooleanOption.java new file mode 100644 index 0000000000..a01db9a0df --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/BooleanOption.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +/** + * Boolean option. + */ +public interface BooleanOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/EnumOption.java b/msf/src/main/java/org/csploit/msf/api/options/EnumOption.java new file mode 100644 index 0000000000..3182dc91c9 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/EnumOption.java @@ -0,0 +1,10 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +/** + * Enum option. + */ +public interface EnumOption extends Option { + String[] getValues(); +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/IntegerOption.java b/msf/src/main/java/org/csploit/msf/api/options/IntegerOption.java new file mode 100644 index 0000000000..56a4a0558a --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/IntegerOption.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +/** + * Integer option. + */ +public interface IntegerOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/PathOption.java b/msf/src/main/java/org/csploit/msf/api/options/PathOption.java new file mode 100644 index 0000000000..c70f6cd399 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/PathOption.java @@ -0,0 +1,11 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +import java.io.File; + +/** + * File system path option. + */ +public interface PathOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/PortOption.java b/msf/src/main/java/org/csploit/msf/api/options/PortOption.java new file mode 100644 index 0000000000..15a1c84e37 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/PortOption.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +/** + * Network port option. + */ +public interface PortOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/RawOption.java b/msf/src/main/java/org/csploit/msf/api/options/RawOption.java new file mode 100644 index 0000000000..dbda7dae37 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/RawOption.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +/** + * Raw, arbitrary data option. + */ +public interface RawOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/RegexpOption.java b/msf/src/main/java/org/csploit/msf/api/options/RegexpOption.java new file mode 100644 index 0000000000..203fdbbf89 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/RegexpOption.java @@ -0,0 +1,11 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +import java.util.regex.Pattern; + +/** + * A regex option + */ +public interface RegexpOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/options/StringOption.java b/msf/src/main/java/org/csploit/msf/api/options/StringOption.java new file mode 100644 index 0000000000..239119b255 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/options/StringOption.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.options; + +import org.csploit.msf.api.Option; + +/** + * Option string + */ +public interface StringOption extends Option { +} diff --git a/msf/src/main/java/org/csploit/msf/api/sessions/CommandShell.java b/msf/src/main/java/org/csploit/msf/api/sessions/CommandShell.java new file mode 100644 index 0000000000..2879354d0a --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/sessions/CommandShell.java @@ -0,0 +1,10 @@ +package org.csploit.msf.api.sessions; + +/** + * This class provides basic interaction with a command shell on the remote + * endpoint. This session is initialized with a stream that will be used + * as the pipe for reading and writing the command shell. + */ +public interface CommandShell extends SingleCommandShell, Scriptable { + //TODO +} diff --git a/msf/src/main/java/org/csploit/msf/api/sessions/Meterpreter.java b/msf/src/main/java/org/csploit/msf/api/sessions/Meterpreter.java new file mode 100644 index 0000000000..bd345df82c --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/sessions/Meterpreter.java @@ -0,0 +1,10 @@ +package org.csploit.msf.api.sessions; + +/** + * This class represents a session compatible interface to a meterpreter server + * instance running on a remote machine. It provides the means of interacting + * with the server instance both at an API level as well as at a console level. + */ +public interface Meterpreter extends SingleCommandShell, Scriptable { + //TODO +} diff --git a/msf/src/main/java/org/csploit/msf/session/MultiCommandExecution.java b/msf/src/main/java/org/csploit/msf/api/sessions/MultiCommandExecution.java similarity index 89% rename from msf/src/main/java/org/csploit/msf/session/MultiCommandExecution.java rename to msf/src/main/java/org/csploit/msf/api/sessions/MultiCommandExecution.java index a82bd7c54d..8675a7eba4 100644 --- a/msf/src/main/java/org/csploit/msf/session/MultiCommandExecution.java +++ b/msf/src/main/java/org/csploit/msf/api/sessions/MultiCommandExecution.java @@ -1,4 +1,4 @@ -package org.csploit.msf.session; +package org.csploit.msf.api.sessions; /** * Executes multiple commands and optionally allows for reading/writing I/O diff --git a/msf/src/main/java/org/csploit/msf/session/MultiCommandShell.java b/msf/src/main/java/org/csploit/msf/api/sessions/MultiCommandShell.java similarity index 92% rename from msf/src/main/java/org/csploit/msf/session/MultiCommandShell.java rename to msf/src/main/java/org/csploit/msf/api/sessions/MultiCommandShell.java index 99949732e8..d05162fbee 100644 --- a/msf/src/main/java/org/csploit/msf/session/MultiCommandShell.java +++ b/msf/src/main/java/org/csploit/msf/api/sessions/MultiCommandShell.java @@ -1,4 +1,4 @@ -package org.csploit.msf.session; +package org.csploit.msf.api.sessions; /** * This interface is to be implemented by a session that is capable of diff --git a/msf/src/main/java/org/csploit/msf/session/Scriptable.java b/msf/src/main/java/org/csploit/msf/api/sessions/Scriptable.java similarity index 57% rename from msf/src/main/java/org/csploit/msf/session/Scriptable.java rename to msf/src/main/java/org/csploit/msf/api/sessions/Scriptable.java index 96f46800c0..020b780f91 100644 --- a/msf/src/main/java/org/csploit/msf/session/Scriptable.java +++ b/msf/src/main/java/org/csploit/msf/api/sessions/Scriptable.java @@ -1,9 +1,11 @@ -package org.csploit.msf.session; +package org.csploit.msf.api.sessions; + +import org.csploit.msf.api.Session; /** * Represent a session that can run scripts */ -public interface Scriptable { +public interface Scriptable extends Session { boolean executeFile(String path, String[] args); int executeScript(String scriptName, String[] args); } diff --git a/msf/src/main/java/org/csploit/msf/session/SingleCommandExecution.java b/msf/src/main/java/org/csploit/msf/api/sessions/SingleCommandExecution.java similarity index 70% rename from msf/src/main/java/org/csploit/msf/session/SingleCommandExecution.java rename to msf/src/main/java/org/csploit/msf/api/sessions/SingleCommandExecution.java index 30f43557fb..ac12e34fa7 100644 --- a/msf/src/main/java/org/csploit/msf/session/SingleCommandExecution.java +++ b/msf/src/main/java/org/csploit/msf/api/sessions/SingleCommandExecution.java @@ -1,4 +1,6 @@ -package org.csploit.msf.session; +package org.csploit.msf.api.sessions; + +import org.csploit.msf.api.Session; /** * Executes a single command and optionally allows for reading/writing I/O @@ -6,7 +8,7 @@ * * footnote: I didn't found any implementors of this interface in the framework */ -public interface SingleCommandExecution { +public interface SingleCommandExecution extends Session { void init(String cmd, String[] args); // TODO: options ?? String read(int length); int write(String data); diff --git a/msf/src/main/java/org/csploit/msf/session/SingleCommandShell.java b/msf/src/main/java/org/csploit/msf/api/sessions/SingleCommandShell.java similarity index 63% rename from msf/src/main/java/org/csploit/msf/session/SingleCommandShell.java rename to msf/src/main/java/org/csploit/msf/api/sessions/SingleCommandShell.java index 71248afa26..2fb3d2b609 100644 --- a/msf/src/main/java/org/csploit/msf/session/SingleCommandShell.java +++ b/msf/src/main/java/org/csploit/msf/api/sessions/SingleCommandShell.java @@ -1,10 +1,12 @@ -package org.csploit.msf.session; +package org.csploit.msf.api.sessions; + +import org.csploit.msf.api.Session; /** * This interface is to be implemented by a session that is only capable of * providing an interface to a single command shell. */ -public interface SingleCommandShell { +public interface SingleCommandShell extends Session { void init(); String read(int length); int write(String data); diff --git a/msf/src/main/java/org/csploit/msf/api/sessions/Tty.java b/msf/src/main/java/org/csploit/msf/api/sessions/Tty.java new file mode 100644 index 0000000000..7d719e7640 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/sessions/Tty.java @@ -0,0 +1,9 @@ +package org.csploit.msf.api.sessions; + +/** + * This class provides basic interaction with a command shell on the remote + * endpoint. This session is initialized with a stream that will be used + * as the pipe for reading and writing the command shell. + */ +public interface Tty extends SingleCommandShell { +} diff --git a/msf/src/main/java/org/csploit/msf/api/sessions/VncInject.java b/msf/src/main/java/org/csploit/msf/api/sessions/VncInject.java new file mode 100644 index 0000000000..32db5df9e1 --- /dev/null +++ b/msf/src/main/java/org/csploit/msf/api/sessions/VncInject.java @@ -0,0 +1,7 @@ +package org.csploit.msf.api.sessions; + +import org.csploit.msf.api.Session; + +public interface VncInject extends Session { + //TODO +} diff --git a/msf/src/main/java/org/csploit/msf/Author.java b/msf/src/main/java/org/csploit/msf/impl/Author.java similarity index 65% rename from msf/src/main/java/org/csploit/msf/Author.java rename to msf/src/main/java/org/csploit/msf/impl/Author.java index 7e3b3bd062..34af1a2484 100644 --- a/msf/src/main/java/org/csploit/msf/Author.java +++ b/msf/src/main/java/org/csploit/msf/impl/Author.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -6,17 +6,25 @@ /** * Represent an author */ -public class Author { - private static Pattern MAIL = Pattern.compile("<(.+)>"); +class Author implements org.csploit.msf.api.Author { + private static final Pattern MAIL = Pattern.compile("<(.+)>"); - private String name; - private String email; + private final String name; + private final String email; public Author(String name, String email) { this.name = name; this.email = email; } + public String getName() { + return name; + } + + public String getEmail() { + return email; + } + @Override public String toString() { if(email != null) { diff --git a/msf/src/main/java/org/csploit/msf/Auxiliary.java b/msf/src/main/java/org/csploit/msf/impl/Auxiliary.java similarity index 70% rename from msf/src/main/java/org/csploit/msf/Auxiliary.java rename to msf/src/main/java/org/csploit/msf/impl/Auxiliary.java index 4c04b12aa3..085a827c88 100644 --- a/msf/src/main/java/org/csploit/msf/Auxiliary.java +++ b/msf/src/main/java/org/csploit/msf/impl/Auxiliary.java @@ -1,8 +1,9 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.PlatformList; -import org.csploit.msf.module.Reference; +import org.csploit.msf.api.License; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; +import org.csploit.msf.impl.module.Reference; /** * The auxiliary class acts as a base class for all modules that perform @@ -10,7 +11,7 @@ * that doesn't fit our concept of an 'exploit' (involving payloads and * targets and whatnot). */ -public class Auxiliary extends Module { +class Auxiliary extends Module implements org.csploit.msf.api.Auxiliary { public Auxiliary(String name, String description, String version, Author[] authors, ArchSet arch, PlatformList platform, Reference[] references, boolean privileged, License license) { super(name, description, version, authors, arch, platform, references, privileged, license); diff --git a/msf/src/main/java/org/csploit/msf/DataHolder.java b/msf/src/main/java/org/csploit/msf/impl/DataHolder.java similarity index 77% rename from msf/src/main/java/org/csploit/msf/DataHolder.java rename to msf/src/main/java/org/csploit/msf/impl/DataHolder.java index 65a92a1cda..49d5e33fa6 100644 --- a/msf/src/main/java/org/csploit/msf/DataHolder.java +++ b/msf/src/main/java/org/csploit/msf/impl/DataHolder.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; /** * A class that hold a DataStore instance diff --git a/msf/src/main/java/org/csploit/msf/DataStore.java b/msf/src/main/java/org/csploit/msf/impl/DataStore.java similarity index 96% rename from msf/src/main/java/org/csploit/msf/DataStore.java rename to msf/src/main/java/org/csploit/msf/impl/DataStore.java index 7709c71692..5c3a2d0eb9 100644 --- a/msf/src/main/java/org/csploit/msf/DataStore.java +++ b/msf/src/main/java/org/csploit/msf/impl/DataStore.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.HashMap; import java.util.HashSet; @@ -9,7 +9,7 @@ * The data store is just a bitbucket that holds keyed values. It is used * by various classes to hold option values and other state information. */ -public class DataStore extends HashMap { +class DataStore extends HashMap { protected Set imported = new HashSet<>(); protected Set defaults = new HashSet<>(); diff --git a/msf/src/main/java/org/csploit/msf/Exploit.java b/msf/src/main/java/org/csploit/msf/impl/Exploit.java similarity index 80% rename from msf/src/main/java/org/csploit/msf/Exploit.java rename to msf/src/main/java/org/csploit/msf/impl/Exploit.java index 151793a01f..f848a7d49e 100644 --- a/msf/src/main/java/org/csploit/msf/Exploit.java +++ b/msf/src/main/java/org/csploit/msf/impl/Exploit.java @@ -1,14 +1,15 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.PlatformList; -import org.csploit.msf.module.Reference; -import org.csploit.msf.module.Target; +import org.csploit.msf.api.License; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; +import org.csploit.msf.impl.module.Reference; +import org.csploit.msf.impl.module.Target; /** * Represent an exploit module */ -public class Exploit extends Module { +class Exploit extends Module implements org.csploit.msf.api.Exploit { private Target[] targets; private int defaultTarget = -1; diff --git a/msf/src/main/java/org/csploit/msf/Framework.java b/msf/src/main/java/org/csploit/msf/impl/Framework.java similarity index 58% rename from msf/src/main/java/org/csploit/msf/Framework.java rename to msf/src/main/java/org/csploit/msf/impl/Framework.java index 58d2a5bf2b..73b6d46b88 100644 --- a/msf/src/main/java/org/csploit/msf/Framework.java +++ b/msf/src/main/java/org/csploit/msf/impl/Framework.java @@ -1,11 +1,13 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import java.util.Collection; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** * Represent a MetaSploit Framework instance */ -public class Framework implements DataHolder { +class Framework implements DataHolder, org.csploit.msf.api.Framework { private DataStore dataStore; private ModuleManager moduleManager; @@ -32,8 +34,14 @@ public void setGlobalOption(String key, String value) { getDataStore().put(key, value); } - public Collection getSessions() { - return sessions.values(); + public List getSessions() { + List keys = new ArrayList<>(sessions.keySet()); + Collections.sort(keys); + List result = new ArrayList<>(keys.size()); + for(int k : keys) { + result.add(sessions.get(k)); + } + return result; } public Session getSession(int id) { @@ -44,8 +52,14 @@ public void registerSession(Session session) { sessions.put(session.getId(), session); } - public Collection getJobs() { - return jobs.values(); + public List getJobs() { + List keys = new ArrayList<>(jobs.keySet()); + Collections.sort(keys); + List result = new ArrayList<>(keys.size()); + for(int k : keys) { + result.add(jobs.get(k)); + } + return result; } public Job getJob(int id) { diff --git a/msf/src/main/java/org/csploit/msf/Job.java b/msf/src/main/java/org/csploit/msf/impl/Job.java similarity index 90% rename from msf/src/main/java/org/csploit/msf/Job.java rename to msf/src/main/java/org/csploit/msf/impl/Job.java index e351cc5954..36261e75dc 100644 --- a/msf/src/main/java/org/csploit/msf/Job.java +++ b/msf/src/main/java/org/csploit/msf/impl/Job.java @@ -1,11 +1,11 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.Date; /** * This class is the concrete representation of an abstract job. */ -public class Job { +class Job implements org.csploit.msf.api.Job { private JobContainer container; private int id; diff --git a/msf/src/main/java/org/csploit/msf/JobContainer.java b/msf/src/main/java/org/csploit/msf/impl/JobContainer.java similarity index 91% rename from msf/src/main/java/org/csploit/msf/JobContainer.java rename to msf/src/main/java/org/csploit/msf/impl/JobContainer.java index 3b7ff38e10..0cab32104b 100644 --- a/msf/src/main/java/org/csploit/msf/JobContainer.java +++ b/msf/src/main/java/org/csploit/msf/impl/JobContainer.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.HashMap; diff --git a/msf/src/main/java/org/csploit/msf/Module.java b/msf/src/main/java/org/csploit/msf/impl/Module.java similarity index 88% rename from msf/src/main/java/org/csploit/msf/Module.java rename to msf/src/main/java/org/csploit/msf/impl/Module.java index b4d7626ef3..85d47ce082 100644 --- a/msf/src/main/java/org/csploit/msf/Module.java +++ b/msf/src/main/java/org/csploit/msf/impl/Module.java @@ -1,16 +1,17 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.ModuleDataStore; -import org.csploit.msf.module.PlatformList; -import org.csploit.msf.module.Reference; +import org.csploit.msf.api.Customizable; +import org.csploit.msf.api.License; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; +import org.csploit.msf.impl.module.Reference; import java.util.Collection; /** * Represent a module of the MSF */ -public abstract class Module implements Offspring, DataHolder, Customizable { +abstract class Module implements Offspring, DataHolder, Customizable, org.csploit.msf.api.Module { protected Author[] authors; protected ArchSet arch; protected PlatformList platform; diff --git a/msf/src/main/java/org/csploit/msf/module/ModuleDataStore.java b/msf/src/main/java/org/csploit/msf/impl/ModuleDataStore.java similarity index 85% rename from msf/src/main/java/org/csploit/msf/module/ModuleDataStore.java rename to msf/src/main/java/org/csploit/msf/impl/ModuleDataStore.java index 931a4750de..d06a0b4005 100644 --- a/msf/src/main/java/org/csploit/msf/module/ModuleDataStore.java +++ b/msf/src/main/java/org/csploit/msf/impl/ModuleDataStore.java @@ -1,13 +1,11 @@ -package org.csploit.msf.module; - -import org.csploit.msf.Module; +package org.csploit.msf.impl; /** * DataStore wrapper for modules that will attempt to back values against the * framework's datastore if they aren't found in the module's datastore. This * is done to simulate global data store values. */ -public class ModuleDataStore extends org.csploit.msf.DataStore { +class ModuleDataStore extends DataStore { private Module module; public ModuleDataStore(Module module) { diff --git a/msf/src/main/java/org/csploit/msf/ModuleManager.java b/msf/src/main/java/org/csploit/msf/impl/ModuleManager.java similarity index 96% rename from msf/src/main/java/org/csploit/msf/ModuleManager.java rename to msf/src/main/java/org/csploit/msf/impl/ModuleManager.java index a87a532e93..beeba3a659 100644 --- a/msf/src/main/java/org/csploit/msf/ModuleManager.java +++ b/msf/src/main/java/org/csploit/msf/impl/ModuleManager.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.HashMap; import java.util.Map; @@ -6,7 +6,7 @@ /** * Manage all framework modules */ -public class ModuleManager implements Offspring { +class ModuleManager implements Offspring { private final static String[] validModuleTypes = { "encoder", diff --git a/msf/src/main/java/org/csploit/msf/ModuleSet.java b/msf/src/main/java/org/csploit/msf/impl/ModuleSet.java similarity index 91% rename from msf/src/main/java/org/csploit/msf/ModuleSet.java rename to msf/src/main/java/org/csploit/msf/impl/ModuleSet.java index b7d4612c8c..9dade19ec9 100644 --- a/msf/src/main/java/org/csploit/msf/ModuleSet.java +++ b/msf/src/main/java/org/csploit/msf/impl/ModuleSet.java @@ -1,7 +1,7 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.PlatformList; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; import java.util.HashMap; diff --git a/msf/src/main/java/org/csploit/msf/Offspring.java b/msf/src/main/java/org/csploit/msf/impl/Offspring.java similarity index 85% rename from msf/src/main/java/org/csploit/msf/Offspring.java rename to msf/src/main/java/org/csploit/msf/impl/Offspring.java index b2ba620a86..5e32e4750a 100644 --- a/msf/src/main/java/org/csploit/msf/Offspring.java +++ b/msf/src/main/java/org/csploit/msf/impl/Offspring.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; /** * CLasses that ave a reference to the framework diff --git a/msf/src/main/java/org/csploit/msf/Option.java b/msf/src/main/java/org/csploit/msf/impl/Option.java similarity index 87% rename from msf/src/main/java/org/csploit/msf/Option.java rename to msf/src/main/java/org/csploit/msf/impl/Option.java index c246ce3159..8a78b959b0 100644 --- a/msf/src/main/java/org/csploit/msf/Option.java +++ b/msf/src/main/java/org/csploit/msf/impl/Option.java @@ -1,11 +1,11 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.options.StringOption; +import org.csploit.msf.api.Module; /** * Represent an option */ -public abstract class Option { +public abstract class Option implements org.csploit.msf.api.Option { protected boolean advanced; protected T defaultValue; protected String description; @@ -80,7 +80,7 @@ protected String display(T value) { } protected boolean isValid(T input) { - if(isRequired() && (input == null || input.toString().isEmpty())) { + if(isRequired() && (input == null || input.toString().length() == 0)) { return false; } return true; diff --git a/msf/src/main/java/org/csploit/msf/OptionContainer.java b/msf/src/main/java/org/csploit/msf/impl/OptionContainer.java similarity index 97% rename from msf/src/main/java/org/csploit/msf/OptionContainer.java rename to msf/src/main/java/org/csploit/msf/impl/OptionContainer.java index 68de7115fa..7c24197a9a 100644 --- a/msf/src/main/java/org/csploit/msf/OptionContainer.java +++ b/msf/src/main/java/org/csploit/msf/impl/OptionContainer.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.ArrayList; import java.util.Collection; diff --git a/msf/src/main/java/org/csploit/msf/Payload.java b/msf/src/main/java/org/csploit/msf/impl/Payload.java similarity index 68% rename from msf/src/main/java/org/csploit/msf/Payload.java rename to msf/src/main/java/org/csploit/msf/impl/Payload.java index 1db49409a8..77aa3ac61a 100644 --- a/msf/src/main/java/org/csploit/msf/Payload.java +++ b/msf/src/main/java/org/csploit/msf/impl/Payload.java @@ -1,15 +1,16 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.PlatformList; -import org.csploit.msf.module.Reference; +import org.csploit.msf.api.License; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; +import org.csploit.msf.impl.module.Reference; /** * This class represents the base class for a logical payload. The framework * automatically generates payload combinations at runtime which are all * extended for this Payload as a base class. */ -public class Payload extends Module { +class Payload extends Module implements org.csploit.msf.api.Payload { public Payload(String name, String description, String version, Author[] authors, ArchSet arch, PlatformList platform, Reference[] references, boolean privileged, License license) { super(name, description, version, authors, arch, platform, references, privileged, license); } diff --git a/msf/src/main/java/org/csploit/msf/Post.java b/msf/src/main/java/org/csploit/msf/impl/Post.java similarity index 61% rename from msf/src/main/java/org/csploit/msf/Post.java rename to msf/src/main/java/org/csploit/msf/impl/Post.java index 9804a69cea..4475cc8d8d 100644 --- a/msf/src/main/java/org/csploit/msf/Post.java +++ b/msf/src/main/java/org/csploit/msf/impl/Post.java @@ -1,13 +1,14 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.PlatformList; -import org.csploit.msf.module.Reference; +import org.csploit.msf.api.License; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; +import org.csploit.msf.impl.module.Reference; /** * A Post-exploitation module. */ -public class Post extends Module { +class Post extends Module implements org.csploit.msf.api.Post { public Post(String name, String description, String version, Author[] authors, ArchSet arch, PlatformList platform, Reference[] references, boolean privileged, License license) { super(name, description, version, authors, arch, platform, references, privileged, license); diff --git a/msf/src/main/java/org/csploit/msf/Session.java b/msf/src/main/java/org/csploit/msf/impl/Session.java similarity index 96% rename from msf/src/main/java/org/csploit/msf/Session.java rename to msf/src/main/java/org/csploit/msf/impl/Session.java index 4ea92942f4..3a0ec97198 100644 --- a/msf/src/main/java/org/csploit/msf/Session.java +++ b/msf/src/main/java/org/csploit/msf/impl/Session.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.ArrayList; import java.util.List; @@ -15,7 +15,7 @@ * payloads through a common interface that is not necessarily * tied to a network connection. */ -public abstract class Session implements Offspring { +public abstract class Session implements Offspring, org.csploit.msf.api.Session { private Framework framework; private int id; private String localTunnel; diff --git a/msf/src/main/java/org/csploit/msf/SessionManager.java b/msf/src/main/java/org/csploit/msf/impl/SessionManager.java similarity index 97% rename from msf/src/main/java/org/csploit/msf/SessionManager.java rename to msf/src/main/java/org/csploit/msf/impl/SessionManager.java index d47cde6af8..f8055b00f5 100644 --- a/msf/src/main/java/org/csploit/msf/SessionManager.java +++ b/msf/src/main/java/org/csploit/msf/impl/SessionManager.java @@ -1,4 +1,4 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import java.util.HashMap; diff --git a/msf/src/main/java/org/csploit/msf/module/ArchSet.java b/msf/src/main/java/org/csploit/msf/impl/module/ArchSet.java similarity index 93% rename from msf/src/main/java/org/csploit/msf/module/ArchSet.java rename to msf/src/main/java/org/csploit/msf/impl/module/ArchSet.java index 36c407f490..1c1966fe4a 100644 --- a/msf/src/main/java/org/csploit/msf/module/ArchSet.java +++ b/msf/src/main/java/org/csploit/msf/impl/module/ArchSet.java @@ -1,8 +1,8 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; import java.util.Collection; import java.util.HashSet; -import org.csploit.msf.arch.Arch; +import org.csploit.msf.api.Arch; /** * A container for architectures supported by a module diff --git a/msf/src/main/java/org/csploit/msf/module/PlatformList.java b/msf/src/main/java/org/csploit/msf/impl/module/PlatformList.java similarity index 90% rename from msf/src/main/java/org/csploit/msf/module/PlatformList.java rename to msf/src/main/java/org/csploit/msf/impl/module/PlatformList.java index a4f5cdc464..c5c6e055bc 100644 --- a/msf/src/main/java/org/csploit/msf/module/PlatformList.java +++ b/msf/src/main/java/org/csploit/msf/impl/module/PlatformList.java @@ -1,4 +1,6 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; + +import org.csploit.msf.api.module.Platform; import java.util.HashSet; diff --git a/msf/src/main/java/org/csploit/msf/module/Reference.java b/msf/src/main/java/org/csploit/msf/impl/module/Reference.java similarity index 95% rename from msf/src/main/java/org/csploit/msf/module/Reference.java rename to msf/src/main/java/org/csploit/msf/impl/module/Reference.java index 8ad1c18a23..7ce6e912d3 100644 --- a/msf/src/main/java/org/csploit/msf/module/Reference.java +++ b/msf/src/main/java/org/csploit/msf/impl/module/Reference.java @@ -1,4 +1,4 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; /** * A reference to some sort of information. This is typically a URL, but could diff --git a/msf/src/main/java/org/csploit/msf/module/SiteReference.java b/msf/src/main/java/org/csploit/msf/impl/module/SiteReference.java similarity index 97% rename from msf/src/main/java/org/csploit/msf/module/SiteReference.java rename to msf/src/main/java/org/csploit/msf/impl/module/SiteReference.java index 8b012171a1..ad380e4a35 100644 --- a/msf/src/main/java/org/csploit/msf/module/SiteReference.java +++ b/msf/src/main/java/org/csploit/msf/impl/module/SiteReference.java @@ -1,4 +1,4 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; import java.util.HashMap; import java.util.Map; diff --git a/msf/src/main/java/org/csploit/msf/module/Target.java b/msf/src/main/java/org/csploit/msf/impl/module/Target.java similarity index 83% rename from msf/src/main/java/org/csploit/msf/module/Target.java rename to msf/src/main/java/org/csploit/msf/impl/module/Target.java index 9262f7d25f..b8a140f90e 100644 --- a/msf/src/main/java/org/csploit/msf/module/Target.java +++ b/msf/src/main/java/org/csploit/msf/impl/module/Target.java @@ -1,9 +1,9 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; /** * Represent a target */ -public class Target { +public class Target implements org.csploit.msf.api.module.Target { private String name; private PlatformList platform; private ArchSet arch; diff --git a/msf/src/main/java/org/csploit/msf/options/AddressOption.java b/msf/src/main/java/org/csploit/msf/impl/options/AddressOption.java similarity index 92% rename from msf/src/main/java/org/csploit/msf/options/AddressOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/AddressOption.java index 2c0d502217..c707c38b6e 100644 --- a/msf/src/main/java/org/csploit/msf/options/AddressOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/AddressOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; import java.net.InetAddress; import java.net.UnknownHostException; diff --git a/msf/src/main/java/org/csploit/msf/options/AddressRangeOption.java b/msf/src/main/java/org/csploit/msf/impl/options/AddressRangeOption.java similarity index 94% rename from msf/src/main/java/org/csploit/msf/options/AddressRangeOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/AddressRangeOption.java index 422830b518..4759ca1461 100644 --- a/msf/src/main/java/org/csploit/msf/options/AddressRangeOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/AddressRangeOption.java @@ -1,16 +1,14 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; -import java.net.URI; -import java.net.URISyntaxException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; diff --git a/msf/src/main/java/org/csploit/msf/options/BooleanOption.java b/msf/src/main/java/org/csploit/msf/impl/options/BooleanOption.java similarity index 91% rename from msf/src/main/java/org/csploit/msf/options/BooleanOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/BooleanOption.java index 768553640f..bdac981792 100644 --- a/msf/src/main/java/org/csploit/msf/options/BooleanOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/BooleanOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; import java.util.regex.Pattern; diff --git a/msf/src/main/java/org/csploit/msf/options/EnumOption.java b/msf/src/main/java/org/csploit/msf/impl/options/EnumOption.java similarity index 91% rename from msf/src/main/java/org/csploit/msf/options/EnumOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/EnumOption.java index d7a276710b..221b786a3f 100644 --- a/msf/src/main/java/org/csploit/msf/options/EnumOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/EnumOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; /** * Enum option. diff --git a/msf/src/main/java/org/csploit/msf/options/IntegerOption.java b/msf/src/main/java/org/csploit/msf/impl/options/IntegerOption.java similarity index 89% rename from msf/src/main/java/org/csploit/msf/options/IntegerOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/IntegerOption.java index 72bec85aa3..e777a15d75 100644 --- a/msf/src/main/java/org/csploit/msf/options/IntegerOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/IntegerOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; /** * Integer option. diff --git a/msf/src/main/java/org/csploit/msf/options/PathOption.java b/msf/src/main/java/org/csploit/msf/impl/options/PathOption.java similarity index 90% rename from msf/src/main/java/org/csploit/msf/options/PathOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/PathOption.java index 1443fc09f7..94be05d207 100644 --- a/msf/src/main/java/org/csploit/msf/options/PathOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/PathOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; import java.io.File; diff --git a/msf/src/main/java/org/csploit/msf/options/PortOption.java b/msf/src/main/java/org/csploit/msf/impl/options/PortOption.java similarity index 90% rename from msf/src/main/java/org/csploit/msf/options/PortOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/PortOption.java index 8094bb719f..c4bcbad45d 100644 --- a/msf/src/main/java/org/csploit/msf/options/PortOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/PortOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; /** * Network port option. diff --git a/msf/src/main/java/org/csploit/msf/options/RawOption.java b/msf/src/main/java/org/csploit/msf/impl/options/RawOption.java similarity index 89% rename from msf/src/main/java/org/csploit/msf/options/RawOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/RawOption.java index d6868ba70a..35fab800d4 100644 --- a/msf/src/main/java/org/csploit/msf/options/RawOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/RawOption.java @@ -1,9 +1,8 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; import org.apache.commons.io.IOUtils; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; diff --git a/msf/src/main/java/org/csploit/msf/options/RegexpOption.java b/msf/src/main/java/org/csploit/msf/impl/options/RegexpOption.java similarity index 88% rename from msf/src/main/java/org/csploit/msf/options/RegexpOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/RegexpOption.java index 74d57cde35..6480df5b15 100644 --- a/msf/src/main/java/org/csploit/msf/options/RegexpOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/RegexpOption.java @@ -1,6 +1,6 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; import java.util.regex.Pattern; diff --git a/msf/src/main/java/org/csploit/msf/options/StringOption.java b/msf/src/main/java/org/csploit/msf/impl/options/StringOption.java similarity index 82% rename from msf/src/main/java/org/csploit/msf/options/StringOption.java rename to msf/src/main/java/org/csploit/msf/impl/options/StringOption.java index 449f99da13..263a06dea1 100644 --- a/msf/src/main/java/org/csploit/msf/options/StringOption.java +++ b/msf/src/main/java/org/csploit/msf/impl/options/StringOption.java @@ -1,12 +1,9 @@ -package org.csploit.msf.options; +package org.csploit.msf.impl.options; import org.apache.commons.io.IOUtils; -import org.csploit.msf.Option; +import org.csploit.msf.impl.Option; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; -import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; diff --git a/msf/src/main/java/org/csploit/msf/session/CommandShell.java b/msf/src/main/java/org/csploit/msf/session/CommandShell.java deleted file mode 100644 index 5dfad87e68..0000000000 --- a/msf/src/main/java/org/csploit/msf/session/CommandShell.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.csploit.msf.session; - -import org.csploit.msf.Session; - -/** - * This class provides basic interaction with a command shell on the remote - * endpoint. This session is initialized with a stream that will be used - * as the pipe for reading and writing the command shell. - */ -public abstract class CommandShell extends Session implements SingleCommandShell, Scriptable { - public CommandShell(int id) { - super(id); - } - - @Override - public String getType() { - return "shell"; - } -} diff --git a/msf/src/main/java/org/csploit/msf/session/Meterpreter.java b/msf/src/main/java/org/csploit/msf/session/Meterpreter.java deleted file mode 100644 index 3294cb24f2..0000000000 --- a/msf/src/main/java/org/csploit/msf/session/Meterpreter.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.csploit.msf.session; - -import org.csploit.msf.Session; - -/** - * This class represents a session compatible interface to a meterpreter server - * instance running on a remote machine. It provides the means of interacting - * with the server instance both at an API level as well as at a console level. - */ -public abstract class Meterpreter extends Session implements SingleCommandShell, Scriptable { - public Meterpreter(int id) { - super(id); - } - - @Override - public String getType() { - return "meterpreter"; - } -} diff --git a/msf/src/test/java/org/csploit/msf/DataStoreTest.java b/msf/src/test/java/org/csploit/msf/impl/DataStoreTest.java similarity index 94% rename from msf/src/test/java/org/csploit/msf/DataStoreTest.java rename to msf/src/test/java/org/csploit/msf/impl/DataStoreTest.java index 737ccfe511..6dcf20bacf 100644 --- a/msf/src/test/java/org/csploit/msf/DataStoreTest.java +++ b/msf/src/test/java/org/csploit/msf/impl/DataStoreTest.java @@ -1,6 +1,6 @@ -package org.csploit.msf; +package org.csploit.msf.impl; -import org.csploit.msf.options.StringOption; +import org.csploit.msf.impl.options.StringOption; import org.junit.Test; import java.util.Set; diff --git a/msf/src/test/java/org/csploit/msf/RpcSampleTest.java b/msf/src/test/java/org/csploit/msf/impl/RpcSampleTest.java similarity index 93% rename from msf/src/test/java/org/csploit/msf/RpcSampleTest.java rename to msf/src/test/java/org/csploit/msf/impl/RpcSampleTest.java index a43fd748c4..42a04a9bec 100644 --- a/msf/src/test/java/org/csploit/msf/RpcSampleTest.java +++ b/msf/src/test/java/org/csploit/msf/impl/RpcSampleTest.java @@ -1,16 +1,17 @@ -package org.csploit.msf; +package org.csploit.msf.impl; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; -import org.csploit.msf.module.ArchSet; -import org.csploit.msf.module.PlatformList; -import org.csploit.msf.module.Reference; -import org.csploit.msf.module.SiteReference; -import org.csploit.msf.module.Target; -import org.csploit.msf.options.AddressOption; -import org.csploit.msf.options.BooleanOption; -import org.csploit.msf.options.EnumOption; +import org.csploit.msf.api.License; +import org.csploit.msf.impl.module.ArchSet; +import org.csploit.msf.impl.module.PlatformList; +import org.csploit.msf.impl.module.Reference; +import org.csploit.msf.impl.module.SiteReference; +import org.csploit.msf.impl.module.Target; +import org.csploit.msf.impl.options.AddressOption; +import org.csploit.msf.impl.options.BooleanOption; +import org.csploit.msf.impl.options.EnumOption; import org.junit.Test; import java.util.HashMap; diff --git a/msf/src/test/java/org/csploit/msf/module/PlatformListTest.java b/msf/src/test/java/org/csploit/msf/impl/module/PlatformListTest.java similarity index 93% rename from msf/src/test/java/org/csploit/msf/module/PlatformListTest.java rename to msf/src/test/java/org/csploit/msf/impl/module/PlatformListTest.java index b9bbec1d2d..402e9585e8 100644 --- a/msf/src/test/java/org/csploit/msf/module/PlatformListTest.java +++ b/msf/src/test/java/org/csploit/msf/impl/module/PlatformListTest.java @@ -1,4 +1,4 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; import org.junit.Test; diff --git a/msf/src/test/java/org/csploit/msf/module/PlatformTest.java b/msf/src/test/java/org/csploit/msf/impl/module/PlatformTest.java similarity index 93% rename from msf/src/test/java/org/csploit/msf/module/PlatformTest.java rename to msf/src/test/java/org/csploit/msf/impl/module/PlatformTest.java index 0735e860e4..43225db7fa 100644 --- a/msf/src/test/java/org/csploit/msf/module/PlatformTest.java +++ b/msf/src/test/java/org/csploit/msf/impl/module/PlatformTest.java @@ -1,7 +1,9 @@ -package org.csploit.msf.module; +package org.csploit.msf.impl.module; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; + +import org.csploit.msf.api.module.Platform; import org.junit.Test; /**