diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 788ef506c..26d35b863 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,9 +2,8 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="b6a17012-d37a-4cdd-b5ce-aba83b1d5fc7" name="Default" comment=""> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/config.py" afterPath="$PROJECT_DIR$/chaos_monkey/config.py" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/control.py" afterPath="$PROJECT_DIR$/chaos_monkey/control.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/dropper.py" afterPath="$PROJECT_DIR$/chaos_monkey/dropper.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/exploit/__init__.py" afterPath="$PROJECT_DIR$/chaos_monkey/exploit/__init__.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py" afterPath="$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py" afterPath="$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py" /> @@ -12,27 +11,15 @@ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/exploit/tools.py" afterPath="$PROJECT_DIR$/chaos_monkey/exploit/tools.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/exploit/win_ms08_067.py" afterPath="$PROJECT_DIR$/chaos_monkey/exploit/win_ms08_067.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/exploit/wmiexec.py" afterPath="$PROJECT_DIR$/chaos_monkey/exploit/wmiexec.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/model/__init__.py" afterPath="$PROJECT_DIR$/chaos_monkey/model/__init__.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/model/host.py" afterPath="$PROJECT_DIR$/chaos_monkey/model/host.py" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/main.py" afterPath="$PROJECT_DIR$/chaos_monkey/main.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/monkey.py" afterPath="$PROJECT_DIR$/chaos_monkey/monkey.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/monkeyfs.py" afterPath="$PROJECT_DIR$/chaos_monkey/monkeyfs.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/__init__.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/__init__.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/firewall.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/firewall.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/info.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/info.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/network_scanner.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/network_scanner.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/range.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/range.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/smbfinger.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/smbfinger.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/sshfinger.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/sshfinger.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/tcp_scanner.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/tcp_scanner.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/network/tools.py" afterPath="$PROJECT_DIR$/chaos_monkey/network/tools.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/system_singleton.py" afterPath="$PROJECT_DIR$/chaos_monkey/system_singleton.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/transport/__init__.py" afterPath="$PROJECT_DIR$/chaos_monkey/transport/__init__.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/transport/base.py" afterPath="$PROJECT_DIR$/chaos_monkey/transport/base.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/transport/ftp.py" afterPath="$PROJECT_DIR$/chaos_monkey/transport/ftp.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/transport/http.py" afterPath="$PROJECT_DIR$/chaos_monkey/transport/http.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/transport/tcp.py" afterPath="$PROJECT_DIR$/chaos_monkey/transport/tcp.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/chaos_monkey/tunnel.py" afterPath="$PROJECT_DIR$/chaos_monkey/tunnel.py" /> </list> <ignored path="monkey.iws" /> <ignored path=".idea/workspace.xml" /> @@ -57,7 +44,7 @@ <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/sshexec.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="126" column="21" selection-start-line="126" selection-start-column="21" selection-end-line="126" selection-end-column="21" /> + <caret line="24" column="71" selection-start-line="24" selection-start-column="71" selection-end-line="24" selection-end-column="71" /> <folding> <element signature="e#0#15#0" expanded="true" /> </folding> @@ -65,23 +52,33 @@ </provider> </entry> </file> + <file leaf-file-name="network_scanner.py" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/network_scanner.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.5381295"> + <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" /> + <folding> + <element signature="e#0#11#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> <file leaf-file-name="tools.py" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/tools.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" /> - <folding> - <element signature="e#0#9#0" expanded="true" /> - </folding> + <caret line="16" column="52" selection-start-line="16" selection-start-column="52" selection-end-line="16" selection-end-column="52" /> + <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="__init__.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/__init__.py"> + <file leaf-file-name="ping_scanner.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <caret line="5" column="5" selection-start-line="5" selection-start-column="5" selection-end-line="5" selection-end-column="5" /> <folding /> </state> </provider> @@ -91,10 +88,8 @@ <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/win_ms08_067.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="264" column="16" selection-start-line="264" selection-start-column="16" selection-end-line="264" selection-end-column="16" /> - <folding> - <element signature="e#330#340#0" expanded="true" /> - </folding> + <caret line="15" column="16" selection-start-line="15" selection-start-column="16" selection-end-line="15" selection-end-column="16" /> + <folding /> </state> </provider> </entry> @@ -103,7 +98,7 @@ <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/wmiexec.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="109" column="0" selection-start-line="109" selection-start-column="0" selection-end-line="109" selection-end-column="0" /> + <caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" /> <folding> <element signature="e#0#13#0" expanded="true" /> </folding> @@ -111,21 +106,21 @@ </provider> </entry> </file> - <file leaf-file-name="build_windows.bat" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/chaos_monkey/build_windows.bat"> + <file leaf-file-name="range.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/range.py"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.05230769"> - <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> + <state vertical-scroll-proportion="0.0"> + <caret line="4" column="5" selection-start-line="4" selection-start-column="5" selection-end-line="4" selection-end-column="5" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="__init__.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/chaos_monkey/model/__init__.py"> + <file leaf-file-name="rdpgrinder.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> + <caret line="12" column="33" selection-start-line="12" selection-start-column="33" selection-end-line="12" selection-end-column="33" /> <folding /> </state> </provider> @@ -135,22 +130,8 @@ <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/__init__.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="6" column="0" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" /> - <folding> - <element signature="e#0#39#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="rdpgrinder.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="94" column="36" selection-start-line="94" selection-start-column="36" selection-end-line="94" selection-end-column="36" /> - <folding> - <element signature="e#0#11#0" expanded="true" /> - </folding> + <caret line="16" column="43" selection-start-line="16" selection-start-column="43" selection-end-line="16" selection-end-column="43" /> + <folding /> </state> </provider> </entry> @@ -159,7 +140,7 @@ <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <caret line="17" column="24" selection-start-line="17" selection-start-column="24" selection-end-line="17" selection-end-column="24" /> <folding> <element signature="e#0#10#0" expanded="true" /> </folding> @@ -176,45 +157,45 @@ <option name="CHANGED_PATHS"> <list> <option value="$PROJECT_DIR$/monkey_island/cc/main.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/main.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/monkey.py" /> <option value="$PROJECT_DIR$/chaos_monkey/monkeyfs.py" /> <option value="$PROJECT_DIR$/chaos_monkey/system_singleton.py" /> <option value="$PROJECT_DIR$/chaos_monkey/tunnel.py" /> <option value="$PROJECT_DIR$/chaos_monkey/dropper.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/control.py" /> <option value="$PROJECT_DIR$/chaos_monkey/config.py" /> <option value="$PROJECT_DIR$/chaos_monkey/transport/__init__.py" /> <option value="$PROJECT_DIR$/chaos_monkey/transport/base.py" /> <option value="$PROJECT_DIR$/chaos_monkey/transport/ftp.py" /> <option value="$PROJECT_DIR$/chaos_monkey/transport/http.py" /> <option value="$PROJECT_DIR$/chaos_monkey/transport/tcp.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/__init__.py" /> <option value="$PROJECT_DIR$/chaos_monkey/network/firewall.py" /> <option value="$PROJECT_DIR$/chaos_monkey/network/info.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/network_scanner.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/range.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/smbfinger.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/sshfinger.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/network/tcp_scanner.py" /> <option value="$PROJECT_DIR$/chaos_monkey/network/tools.py" /> <option value="$PROJECT_DIR$/chaos_monkey/model/host.py" /> <option value="$PROJECT_DIR$/chaos_monkey/model/__init__.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/exploit/__init__.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/exploit/sshexec.py" /> - <option value="$PROJECT_DIR$/chaos_monkey/exploit/tools.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/monkey.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/control.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/main.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/__init__.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/tcp_scanner.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/smbfinger.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/sshfinger.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/range.py" /> <option value="$PROJECT_DIR$/chaos_monkey/exploit/win_ms08_067.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/exploit/__init__.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/exploit/tools.py" /> <option value="$PROJECT_DIR$/chaos_monkey/exploit/wmiexec.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/exploit/sshexec.py" /> + <option value="$PROJECT_DIR$/chaos_monkey/network/network_scanner.py" /> </list> </option> </component> <component name="ProjectFrameBounds"> <option name="x" value="-10" /> <option name="width" value="1934" /> - <option name="height" value="1030" /> + <option name="height" value="1047" /> </component> <component name="ProjectLevelVcsManager" settingsEditedManually="false"> <OptionsSetting value="true" id="Add" /> @@ -241,7 +222,6 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> - <pane id="Scratches" /> <pane id="ProjectPane"> <subPane> <PATH> @@ -274,6 +254,24 @@ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> </PATH_ELEMENT> </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="monkey" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="monkey" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="chaos_monkey" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="network" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> <PATH> <PATH_ELEMENT> <option name="myItemId" value="monkey" /> @@ -292,31 +290,62 @@ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> </PATH_ELEMENT> </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="monkey" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="monkey" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="chaos_monkey" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="exploit" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> </subPane> </pane> <pane id="Scope" /> + <pane id="Scratches" /> </panes> </component> <component name="PropertiesComponent"> - <property name="last_opened_file_path" value="$PROJECT_DIR$" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="421" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/../guardicore" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="282" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="457" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="306" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="457" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="306" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="1470" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="972" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="421" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="282" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="457" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="306" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="457" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="306" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="1470" /> + <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="972" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" /> + <property name="SearchEverywhereHistoryKey" value="tcp	FILE	file://C:/dev/monkey/chaos_monkey/network/tcp_scanner.py ping	FILE	file://C:/dev/monkey/chaos_monkey/network/ping_scanner.py" /> </component> <component name="RunManager"> + <configuration default="true" type="BashConfigurationType" factoryName="Bash"> + <option name="INTERPRETER_OPTIONS" value="" /> + <option name="INTERPRETER_PATH" value="" /> + <option name="WORKING_DIRECTORY" value="" /> + <option name="PARENT_ENVS" value="true" /> + <option name="SCRIPT_NAME" value="" /> + <option name="PARAMETERS" value="" /> + <module name="" /> + <envs /> + <method /> + </configuration> <configuration default="true" type="PythonConfigurationType" factoryName="Python"> <option name="INTERPRETER_OPTIONS" value="" /> <option name="PARENT_ENVS" value="true" /> @@ -454,15 +483,15 @@ <servers /> </component> <component name="ToolWindowManager"> - <frame x="-10" y="0" width="1934" height="1030" extended-state="0" /> + <frame x="-10" y="0" width="1934" height="1047" extended-state="0" /> <editor active="true" /> <layout> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> - <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24414715" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24371585" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.209202" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20897156" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> @@ -489,7 +518,7 @@ </component> <component name="XDebuggerManager"> <breakpoint-manager> - <option name="time" value="5" /> + <option name="time" value="8" /> </breakpoint-manager> <watches-manager /> </component> @@ -514,7 +543,9 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="104" column="8" selection-start-line="104" selection-start-column="8" selection-end-line="104" selection-end-column="8" /> - <folding /> + <folding> + <element signature="e#0#11#0" expanded="false" /> + </folding> </state> </provider> </entry> @@ -598,23 +629,10 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/monkey.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-17.931034"> - <caret line="178" column="0" selection-start-line="178" selection-start-column="0" selection-end-line="178" selection-end-column="0" /> - <folding> - <element signature="e#0#10#0" expanded="false" /> - </folding> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/chaos_monkey/monkeyfs.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="60" column="0" selection-start-line="60" selection-start-column="0" selection-end-line="60" selection-end-column="0" /> - <folding> - <element signature="e#0#22#0" expanded="true" /> - </folding> </state> </provider> </entry> @@ -628,36 +646,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/main.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="111" column="0" selection-start-line="111" selection-start-column="0" selection-end-line="111" selection-end-column="0" /> - <folding> - <element signature="e#0#9#0" expanded="false" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/dropper.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-15.24138"> - <caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" /> - <folding> - <element signature="e#0#9#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/control.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> - <folding> - <element signature="e#0#11#0" expanded="false" /> - </folding> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/chaos_monkey/config.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> @@ -672,7 +660,6 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding /> </state> </provider> </entry> @@ -680,9 +667,6 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> - <folding> - <element signature="e#0#25#0" expanded="false" /> - </folding> </state> </provider> </entry> @@ -690,7 +674,6 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> - <folding /> </state> </provider> </entry> @@ -718,17 +701,6 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="13" column="29" selection-start-line="13" selection-start-column="29" selection-end-line="13" selection-end-column="29" /> - <folding> - <element signature="e#0#13#0" expanded="false" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" /> - <folding /> </state> </provider> </entry> @@ -742,26 +714,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="25" column="0" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" /> - <folding> - <element signature="e#0#39#0" expanded="false" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/network_scanner.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="18" column="0" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" /> - <folding> - <element signature="e#0#11#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/chaos_monkey/network/info.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> @@ -772,71 +724,10 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="30" column="22" selection-start-line="30" selection-start-column="22" selection-end-line="30" selection-end-column="22" /> - <folding> - <element signature="e#0#9#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/range.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="65" column="0" selection-start-line="65" selection-start-column="0" selection-end-line="65" selection-end-column="0" /> - <folding> - <element signature="e#0#13#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/smbfinger.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding> - <element signature="e#0#13#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/sshfinger.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="24" column="33" selection-start-line="24" selection-start-column="33" selection-end-line="24" selection-end-column="33" /> - <folding> - <element signature="e#0#9#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/network/tcp_scanner.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding> - <element signature="e#0#11#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/chaos_monkey/network/tools.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding> - <element signature="e#0#13#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/model/host.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="38" column="0" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" /> - <folding /> </state> </provider> </entry> @@ -848,51 +739,10 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="6" column="0" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" /> - <folding> - <element signature="e#0#39#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> <entry file="file://C:/Python27/Lib/site-packages/rdpy/core/error.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="2.4323077"> <caret line="93" column="6" selection-start-line="93" selection-start-column="6" selection-end-line="93" selection-end-column="6" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="94" column="36" selection-start-line="94" selection-start-column="36" selection-end-line="94" selection-end-column="36" /> - <folding> - <element signature="e#0#11#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding> - <element signature="e#0#10#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/sshexec.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="126" column="21" selection-start-line="126" selection-start-column="21" selection-end-line="126" selection-end-column="21" /> - <folding> - <element signature="e#0#15#0" expanded="true" /> - </folding> </state> </provider> </entry> @@ -900,17 +750,6 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/tools.py"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" /> - <folding> - <element signature="e#0#9#0" expanded="true" /> - </folding> </state> </provider> </entry> @@ -922,33 +761,191 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/win_ms08_067.py"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/build_windows.bat"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.038331453"> + <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/control.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="264" column="16" selection-start-line="264" selection-start-column="16" selection-end-line="264" selection-end-column="16" /> + <caret line="75" column="58" selection-start-line="75" selection-start-column="58" selection-end-line="75" selection-end-column="58" /> <folding> - <element signature="e#330#340#0" expanded="true" /> + <element signature="e#0#11#0" expanded="false" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/wmiexec.py"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/model/host.py"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="109" column="0" selection-start-line="109" selection-start-column="0" selection-end-line="109" selection-end-column="0" /> + <caret line="31" column="51" selection-start-line="31" selection-start-column="51" selection-end-line="31" selection-end-column="51" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/dropper.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="13" column="9" selection-start-line="13" selection-start-column="9" selection-end-line="13" selection-end-column="9" /> + <folding> + <element signature="e#0#9#0" expanded="false" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/__init__.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/monkey.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-9.965517"> + <caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" /> + <folding> + <element signature="e#0#10#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/main.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="4" column="21" selection-start-line="4" selection-start-column="21" selection-end-line="4" selection-end-column="21" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/__init__.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="22" column="31" selection-start-line="22" selection-start-column="31" selection-end-line="22" selection-end-column="31" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/tcp_scanner.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> + <folding> + <element signature="e#0#11#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/smbfinger.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="21" column="27" selection-start-line="21" selection-start-column="27" selection-end-line="21" selection-end-column="27" /> <folding> <element signature="e#0#13#0" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/chaos_monkey/build_windows.bat"> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/sshfinger.py"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.05230769"> - <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> + <state vertical-scroll-proportion="0.0"> + <caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" /> <folding /> </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/range.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="4" column="5" selection-start-line="4" selection-start-column="5" selection-end-line="4" selection-end-column="5" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/ping_scanner.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="5" column="5" selection-start-line="5" selection-start-column="5" selection-end-line="5" selection-end-column="5" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/win_ms08_067.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="15" column="16" selection-start-line="15" selection-start-column="16" selection-end-line="15" selection-end-column="16" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/__init__.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="16" column="43" selection-start-line="16" selection-start-column="43" selection-end-line="16" selection-end-column="43" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/tools.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="16" column="52" selection-start-line="16" selection-start-column="52" selection-end-line="16" selection-end-column="52" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/wmiexec.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" /> + <folding> + <element signature="e#0#13#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/smbexec.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="17" column="24" selection-start-line="17" selection-start-column="24" selection-end-line="17" selection-end-column="24" /> + <folding> + <element signature="e#0#10#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/rdpgrinder.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="12" column="33" selection-start-line="12" selection-start-column="33" selection-end-line="12" selection-end-column="33" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/exploit/sshexec.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="24" column="71" selection-start-line="24" selection-start-column="71" selection-end-line="24" selection-end-column="71" /> + <folding> + <element signature="e#0#15#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/chaos_monkey/network/network_scanner.py"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.5381295"> + <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" /> + <folding> + <element signature="e#0#11#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> </component> </project> \ No newline at end of file diff --git a/chaos_monkey/control.py b/chaos_monkey/control.py index 1a013a38c..bf5ac7c2a 100644 --- a/chaos_monkey/control.py +++ b/chaos_monkey/control.py @@ -26,10 +26,10 @@ class ControlClient(object): for server in WormConfiguration.command_servers: try: hostname = gethostname() - if None == parent: + if not parent: parent = GUID - WormConfiguration.current_server = server + WormConfiguration.current_server = server monkey = {'guid': GUID, 'hostname': hostname, @@ -41,18 +41,16 @@ class ControlClient(object): if ControlClient.proxies: monkey['tunnel'] = ControlClient.proxies.get('https') - reply = requests.post("https://%s/api/monkey" % (server,), - data=json.dumps(monkey), - headers={'content-type' : 'application/json'}, - verify=False, - proxies=ControlClient.proxies) - + reply = requests.post("https://%s/api/monkey" % (server,), + data=json.dumps(monkey), + headers={'content-type': 'application/json'}, + verify=False, + proxies=ControlClient.proxies) break except Exception, exc: WormConfiguration.current_server = '' - LOG.warn("Error connecting to control server %s: %s", - server, exc) + LOG.warn("Error connecting to control server %s: %s", server, exc) if not WormConfiguration.current_server: if not ControlClient.proxies: @@ -75,7 +73,7 @@ class ControlClient(object): monkey['tunnel'] = ControlClient.proxies.get('https') reply = requests.patch("https://%s/api/monkey/%s" % (WormConfiguration.current_server, GUID), data=json.dumps(monkey), - headers={'content-type' : 'application/json'}, + headers={'content-type': 'application/json'}, verify=False, proxies=ControlClient.proxies) except Exception, exc: @@ -84,14 +82,14 @@ class ControlClient(object): return {} @staticmethod - def send_telemetry(tele_type='general',data=''): + def send_telemetry(tele_type='general', data=''): if not WormConfiguration.current_server: return try: telemetry = {'monkey_guid': GUID, 'telem_type': tele_type, 'data' : data} reply = requests.post("https://%s/api/telemetry" % (WormConfiguration.current_server,), data=json.dumps(telemetry), - headers={'content-type' : 'application/json'}, + headers={'content-type': 'application/json'}, verify=False, proxies=ControlClient.proxies) except Exception, exc: @@ -123,10 +121,10 @@ class ControlClient(object): if not WormConfiguration.current_server: return None try: - reply = requests.post("https://%s/api/monkey/download" % (WormConfiguration.current_server,), - data=json.dumps(host.as_dict()), - headers={'content-type' : 'application/json'}, - verify=False, proxies=ControlClient.proxies) + reply = requests.post("https://%s/api/monkey/download" % (WormConfiguration.current_server,), + data=json.dumps(host.as_dict()), + headers={'content-type': 'application/json'}, + verify=False, proxies=ControlClient.proxies) if 200 == reply.status_code: result_json = reply.json() diff --git a/chaos_monkey/exploit/__init__.py b/chaos_monkey/exploit/__init__.py index 4f1e70cd9..60d815e7d 100644 --- a/chaos_monkey/exploit/__init__.py +++ b/chaos_monkey/exploit/__init__.py @@ -1,9 +1,4 @@ from abc import ABCMeta, abstractmethod -from win_ms08_067 import Ms08_067_Exploiter -from wmiexec import WmiExploiter -from smbexec import SmbExploiter -from rdpgrinder import RdpExploiter -from sshexec import SSHExploiter __author__ = 'itamar' @@ -18,3 +13,9 @@ class HostExploiter(object): @abstractmethod def exploit_host(self, host, src_path=None): raise NotImplementedError() + +from win_ms08_067 import Ms08_067_Exploiter +from wmiexec import WmiExploiter +from smbexec import SmbExploiter +from rdpgrinder import RdpExploiter +from sshexec import SSHExploiter diff --git a/chaos_monkey/exploit/rdpgrinder.py b/chaos_monkey/exploit/rdpgrinder.py index c0db62bd7..5793c17ee 100644 --- a/chaos_monkey/exploit/rdpgrinder.py +++ b/chaos_monkey/exploit/rdpgrinder.py @@ -7,12 +7,12 @@ from rdpy.protocol.rdp import rdp from twisted.internet import reactor from rdpy.core.error import RDPSecurityNegoFail from logging import getLogger -from chaos_monkey.exploit import HostExploiter -from chaos_monkey.exploit.tools import HTTPTools -from chaos_monkey.model import RDP_CMDLINE_HTTP_BITS, RDP_CMDLINE_HTTP_VBS -from chaos_monkey.model.host import VictimHost -from chaos_monkey.network.tools import check_port_tcp -from chaos_monkey.exploit.tools import get_target_monkey +from exploit import HostExploiter +from exploit.tools import HTTPTools +from model import RDP_CMDLINE_HTTP_BITS, RDP_CMDLINE_HTTP_VBS +from model.host import VictimHost +from network.tools import check_port_tcp +from exploit.tools import get_target_monkey __author__ = 'hoffer' KEYS_INTERVAL = 0.1 @@ -236,7 +236,7 @@ class RdpExploiter(HostExploiter): global g_reactor assert isinstance(host, VictimHost) - is_open,_ = check_port_tcp(host.ip_addr, RDP_PORT) + is_open, _ = check_port_tcp(host.ip_addr, RDP_PORT) if not is_open: LOG.info("RDP port is closed on %r, skipping", host) return False diff --git a/chaos_monkey/exploit/smbexec.py b/chaos_monkey/exploit/smbexec.py index 5f7a4315e..92090a61b 100644 --- a/chaos_monkey/exploit/smbexec.py +++ b/chaos_monkey/exploit/smbexec.py @@ -1,11 +1,11 @@ import sys from logging import getLogger -from chaos_monkey.model.host import VictimHost -from chaos_monkey.model import MONKEY_CMDLINE_DETACHED, DROPPER_CMDLINE_DETACHED -from chaos_monkey.exploit import HostExploiter -from chaos_monkey.network.tools import check_port_tcp -from chaos_monkey.exploit.tools import SmbTools, get_target_monkey -from chaos_monkey.network import SMBFinger +from model.host import VictimHost +from model import MONKEY_CMDLINE_DETACHED, DROPPER_CMDLINE_DETACHED +from exploit import HostExploiter +from network.tools import check_port_tcp +from exploit.tools import SmbTools, get_target_monkey +from network import SMBFinger try: from impacket import smb diff --git a/chaos_monkey/exploit/sshexec.py b/chaos_monkey/exploit/sshexec.py index 8296831cb..3adfb4e43 100644 --- a/chaos_monkey/exploit/sshexec.py +++ b/chaos_monkey/exploit/sshexec.py @@ -1,10 +1,10 @@ import paramiko -from chaos_monkey import monkeyfs +import monkeyfs import logging -from chaos_monkey.exploit import HostExploiter -from chaos_monkey.model import MONKEY_ARG -from chaos_monkey.exploit.tools import get_target_monkey -from chaos_monkey.network.tools import check_port_tcp +from exploit import HostExploiter +from model import MONKEY_ARG +from exploit.tools import get_target_monkey +from network.tools import check_port_tcp import time __author__ = 'hoffer' @@ -34,9 +34,9 @@ class SSHExploiter(HostExploiter): # if ssh banner found on different port, use that port. for servkey, servdata in host.services.items(): if servdata.get('name') == 'ssh' and servkey.startswith('tcp-'): - port = int(servkey.replace('tcp-','')) + port = int(servkey.replace('tcp-', '')) - is_open,_ = check_port_tcp(host.ip_addr, port) + is_open, _ = check_port_tcp(host.ip_addr, port) if not is_open: LOG.info("SSH port is closed on %r, skipping", host) return False @@ -95,7 +95,6 @@ class SSHExploiter(HostExploiter): except Exception, exc: LOG.debug("Error running uname machine commad on victim %r: (%s)", host, exc) - src_path = src_path or get_target_monkey(host) if not src_path: @@ -107,7 +106,8 @@ class SSHExploiter(HostExploiter): self._update_timestamp = time.time() with monkeyfs.open(src_path) as file_obj: - ftp.putfo(file_obj, self._config.dropper_target_path_linux, file_size=monkeyfs.getsize(src_path), callback=self.log_transfer) + ftp.putfo(file_obj, self._config.dropper_target_path_linux, file_size=monkeyfs.getsize(src_path), + callback=self.log_transfer) ftp.chmod(self._config.dropper_target_path_linux, 0777) ftp.close() diff --git a/chaos_monkey/exploit/tools.py b/chaos_monkey/exploit/tools.py index f467c4414..6939161bc 100644 --- a/chaos_monkey/exploit/tools.py +++ b/chaos_monkey/exploit/tools.py @@ -4,12 +4,12 @@ import pprint import logging import os.path import urllib -from chaos_monkey import monkeyfs +import monkeyfs from difflib import get_close_matches -from chaos_monkey.network import local_ips -from chaos_monkey.transport import HTTPServer -from chaos_monkey.network.info import get_free_tcp_port -from chaos_monkey.network.firewall import app as firewall +from network import local_ips +from transport import HTTPServer +from network.info import get_free_tcp_port +from network.firewall import app as firewall from impacket.dcerpc.v5 import transport, srvs from impacket.dcerpc.v5.dcom.wmi import DCERPCSessionError from impacket.smbconnection import SMBConnection, SMB_DIALECT diff --git a/chaos_monkey/exploit/win_ms08_067.py b/chaos_monkey/exploit/win_ms08_067.py index 6e79a643f..77454c518 100644 --- a/chaos_monkey/exploit/win_ms08_067.py +++ b/chaos_monkey/exploit/win_ms08_067.py @@ -11,12 +11,12 @@ import time import socket from enum import IntEnum from logging import getLogger -from chaos_monkey.model.host import VictimHost -from chaos_monkey.model import DROPPER_CMDLINE, MONKEY_CMDLINE -from chaos_monkey.exploit import HostExploiter -from chaos_monkey.exploit.tools import SmbTools, get_target_monkey -from chaos_monkey.network.tools import check_port_tcp -from chaos_monkey.network import SMBFinger +from model.host import VictimHost +from model import DROPPER_CMDLINE, MONKEY_CMDLINE +from . import HostExploiter +from exploit.tools import SmbTools, get_target_monkey +from network.tools import check_port_tcp +from network import SMBFinger try: from impacket import smb diff --git a/chaos_monkey/exploit/wmiexec.py b/chaos_monkey/exploit/wmiexec.py index b8a9512e4..cd316480a 100644 --- a/chaos_monkey/exploit/wmiexec.py +++ b/chaos_monkey/exploit/wmiexec.py @@ -2,10 +2,10 @@ import socket import ntpath import logging import traceback -from chaos_monkey.model import DROPPER_CMDLINE, MONKEY_CMDLINE -from chaos_monkey.model.host import VictimHost -from chaos_monkey.exploit import HostExploiter -from chaos_monkey.exploit.tools import SmbTools, WmiTools, AccessDeniedException, get_target_monkey +from model import DROPPER_CMDLINE, MONKEY_CMDLINE +from model.host import VictimHost +from exploit import HostExploiter +from exploit.tools import SmbTools, WmiTools, AccessDeniedException, get_target_monkey LOG = logging.getLogger(__name__) diff --git a/chaos_monkey/main.py b/chaos_monkey/main.py index bf1adf336..b020afcd8 100644 --- a/chaos_monkey/main.py +++ b/chaos_monkey/main.py @@ -10,6 +10,9 @@ from monkey import ChaosMonkey import argparse import json +if __name__ == "__main__": + sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + __author__ = 'itamar' LOG = None diff --git a/chaos_monkey/monkey.py b/chaos_monkey/monkey.py index 15f4e4225..3c12bfe3b 100644 --- a/chaos_monkey/monkey.py +++ b/chaos_monkey/monkey.py @@ -32,7 +32,7 @@ class ChaosMonkey(object): self._fingerprint = None def initialize(self): - LOG.info("WinWorm is initializing...") + LOG.info("Monkey is initializing...") if not self._singleton.try_lock(): raise Exception("Another instance of the monkey is already running") @@ -82,7 +82,7 @@ class ChaosMonkey(object): finger.get_host_fingerprint(machine) ControlClient.send_telemetry('scan', {'machine': machine.as_dict(), - 'scanner' : WormConfiguration.scanner_class.__name__}) + 'scanner': WormConfiguration.scanner_class.__name__}) # skip machines that we've already exploited if machine in self._exploited_machines: @@ -107,16 +107,14 @@ class ChaosMonkey(object): exploiter.__class__.__name__, machine) continue - LOG.info("Trying to exploit %r with exploiter %s...", - machine, exploiter.__class__.__name__) + LOG.info("Trying to exploit %r with exploiter %s...", machine, exploiter.__class__.__name__) try: if exploiter.exploit_host(machine): successful_exploiter = exploiter break else: - LOG.info("Failed exploiting %r with exploiter %s", - machine, exploiter.__class__.__name__) + LOG.info("Failed exploiting %r with exploiter %s", machine, exploiter.__class__.__name__) except Exception, exc: LOG.error("Exception while attacking %s using %s: %s", machine, exploiter.__class__.__name__, exc) diff --git a/chaos_monkey/network/__init__.py b/chaos_monkey/network/__init__.py index 6ea3e7504..44fd4dfd7 100644 --- a/chaos_monkey/network/__init__.py +++ b/chaos_monkey/network/__init__.py @@ -1,10 +1,4 @@ from abc import ABCMeta, abstractmethod -from ping_scanner import PingScanner -from tcp_scanner import TcpScanner -from smbfinger import SMBFinger -from sshfinger import SSHFinger -from info import local_ips -from info import get_free_tcp_port __author__ = 'itamar' @@ -23,3 +17,10 @@ class HostFinger(object): @abstractmethod def get_host_fingerprint(self, host): raise NotImplementedError() + +from ping_scanner import PingScanner +from tcp_scanner import TcpScanner +from smbfinger import SMBFinger +from sshfinger import SSHFinger +from info import local_ips +from info import get_free_tcp_port diff --git a/chaos_monkey/network/network_scanner.py b/chaos_monkey/network/network_scanner.py index 516502432..bef094429 100644 --- a/chaos_monkey/network/network_scanner.py +++ b/chaos_monkey/network/network_scanner.py @@ -1,7 +1,7 @@ import time import logging from . import HostScanner -from chaos_monkey.config import WormConfiguration +from config import WormConfiguration from info import local_ips from range import * diff --git a/chaos_monkey/network/ping_scanner.py b/chaos_monkey/network/ping_scanner.py index 8d43ac475..842a6aee8 100644 --- a/chaos_monkey/network/ping_scanner.py +++ b/chaos_monkey/network/ping_scanner.py @@ -3,7 +3,7 @@ import sys import subprocess import logging from . import HostScanner, HostFinger -from chaos_monkey.model.host import VictimHost +from model.host import VictimHost import re __author__ = 'itamar' diff --git a/chaos_monkey/network/range.py b/chaos_monkey/network/range.py index dd6bedf1f..8bfd4c7fc 100644 --- a/chaos_monkey/network/range.py +++ b/chaos_monkey/network/range.py @@ -2,7 +2,7 @@ import socket import random import struct from abc import ABCMeta, abstractmethod -from chaos_monkey.model.host import VictimHost +from model.host import VictimHost __author__ = 'itamar' diff --git a/chaos_monkey/network/smbfinger.py b/chaos_monkey/network/smbfinger.py index f9f3d6e2b..608f9bea3 100644 --- a/chaos_monkey/network/smbfinger.py +++ b/chaos_monkey/network/smbfinger.py @@ -1,8 +1,8 @@ import socket import struct import logging -from chaos_monkey.network import HostFinger -from chaos_monkey.model.host import VictimHost +from network import HostFinger +from model.host import VictimHost from odict import odict SMB_PORT = 445 diff --git a/chaos_monkey/network/sshfinger.py b/chaos_monkey/network/sshfinger.py index 19cf1dc50..a4d6a010d 100644 --- a/chaos_monkey/network/sshfinger.py +++ b/chaos_monkey/network/sshfinger.py @@ -1,7 +1,7 @@ import re -from chaos_monkey.network import HostFinger -from chaos_monkey.network.tools import check_port_tcp -from chaos_monkey.model.host import VictimHost +from network import HostFinger +from network.tools import check_port_tcp +from model.host import VictimHost SSH_PORT = 22 SSH_SERVICE_DEFAULT = 'tcp-22' diff --git a/chaos_monkey/network/tcp_scanner.py b/chaos_monkey/network/tcp_scanner.py index 9460a234a..0616f5b8e 100644 --- a/chaos_monkey/network/tcp_scanner.py +++ b/chaos_monkey/network/tcp_scanner.py @@ -1,7 +1,7 @@ import time -from chaos_monkey.network import HostScanner, HostFinger -from chaos_monkey.model.host import VictimHost -from chaos_monkey.network.tools import check_port_tcp +from network import HostScanner, HostFinger +from model.host import VictimHost +from network.tools import check_port_tcp __author__ = 'itamar'