shadowbrokers-exploits/windows/Resources/Ep/Commands/Schemas/RemoteCommand_Comms.xsd
2017-04-14 11:45:07 +02:00

182 lines
No EOL
5.8 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="AddressType">
<xs:sequence>
<xs:element name="Ip" type="xs:string" />
<xs:element name="Port" type="xs:unsignedShort" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="EmptyElement">
<xs:restriction base="xs:string">
<xs:enumeration value="" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="variableTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="bool" />
<xs:enumeration value="int" />
<xs:enumeration value="string" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="TripleInfo">
<xs:sequence>
<xs:element name="Build" type="xs:int" />
<xs:element name="Major" type="xs:int" />
<xs:element name="Minor" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PathType">
<xs:sequence>
<xs:element name="Source" type="xs:string" />
<xs:element name="Destination" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResultType">
<xs:sequence>
<xs:choice>
<xs:element name="Success" type="EmptyElement" />
<xs:element name="Failure" type="EmptyElement" />
<xs:element name="Running" type="EmptyElement" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CommandResponseType">
<xs:sequence>
<xs:element name="CommandNum" type="xs:int" />
<xs:element name="ExitStatus">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="Success" type="EmptyElement" />
<xs:element name="Failure" type="EmptyElement" />
<!--<xs:element name="Running" type="EmptyElement" />-->
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CommandData" minOccurs="0">
<xs:complexType>
<xs:choice minOccurs="0">
<xs:element name="Xml" type="xs:string" />
<xs:element name="StorageNodes" type="Variables" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LogQuery">
<xs:choice>
<xs:element name="CmdNum" type="xs:nonNegativeInteger" />
<xs:element name="LogName" type="xs:string"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="Variables">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Variable" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence></xs:sequence>
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="type" type="variableTypes" />
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CommandInfo">
<xs:sequence>
<xs:element name="CmdNum" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="PluginComms">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="PingQuery">
<xs:complexType>
<xs:sequence>
<xs:element name="Version" type="xs:int" />
<xs:element name="Address" type="AddressType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PingResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="Version" type="xs:int" />
<xs:element name="Address" type="AddressType" />
<xs:element name="ToolName" type="xs:string" />
<xs:element name="BuildInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="Base" type="TripleInfo" />
<xs:element name="Plugins" type="TripleInfo" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RunCommand">
<xs:complexType>
<xs:sequence>
<xs:element name="Command" type="xs:string" />
<xs:element name="Background" type="EmptyElement" minOccurs="0" />
<xs:element name="Raw" type="EmptyElement" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CommandResponse" type="CommandResponseType"></xs:element>
<xs:element name="Error">
<xs:complexType>
<xs:sequence></xs:sequence>
<xs:attribute name="os" type="xs:int" />
<xs:attribute name="plugin" type="xs:int" />
</xs:complexType>
</xs:element>
<xs:element name="GetLogFile" type="LogQuery"></xs:element>
<xs:element name="StopCommand" type="CommandInfo"></xs:element>
<xs:element name="StopResponse" type="xs:int"></xs:element>
<xs:element name="IsCommandRunning" type="CommandInfo"></xs:element>
<xs:element name="RunningResponse">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="Running" type="EmptyElement" />
<xs:element name="NotRunning" type="EmptyElement" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetRunningCommands" minOccurs="0" type="EmptyElement"/>
<xs:element name="RunningCommandsResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="Command" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:nonNegativeInteger" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetLogFileNames" type="EmptyElement" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>