Skip to main content

基于模块的python安全工具包框架

项目描述

rm-sec-工具包

PyPI 版本 Docker 镜像版本(按日期最新) 码头工人拉 GitHub 上次提交

python安全脚本的工具包和框架。

特征

  • 基于模块的安全框架
  • 控制台脚本 rm-sec-toolkit
  • 项目处理
  • 项目中的笔记处理
  • 自定义脚本位置
  • 项目的 ctf 标志功能
  • 易于创建自定义模型

安装

点子

pip install rm-sec-toolkit

第一次启动时,rm-sec-toolkit 脚本会从 github 加载模块,因此第一次启动可能需要更长的时间。

码头工人

您可以将 rm-sec-toolkit 与提供的 docker 映像一起使用。如果您想使用服务器模块,请不要忘记使用端口映射。

docker run -t -i rame22/rm-sec-toolkit

端口扫描示例

docker run -t -i rame22/rm-sec-toolkit -m remote/gathering/scanner/tcp_syn_scan --rhosts 192.168.0.100 --rports 1-1000 -r

服务器示例

公开并映射希望的端口。比将您想要的目录映射到 /app 目录。

docker run -t -i --expose 12345 \
-p 12345:12345 \
-v "$(pwd)":/app rame22/rm-sec-toolkit \
-m local/server/http_file_server --lport 12345 -r

用法

Usage
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
rm-sec-toolkit

Required Options
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Optional Options
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
--add -a: add a resource {multiple values possible}
--create -c: create a resource {multiple values possible}
--flag -f: add a flag for ctf's {multiple values possible}
--help -h: show usage
--interactive -i: use the interactive mode (default)
--module -m: choose a module {multiple values possible}
--note -n: add a note {multiple values possible}
--version -v: show the current version {multiple values possible}

例子

直接运行一个模块

使用 TCP Scanner 模块并立即运行它

rm-sec-toolkit -m remote/gathering/scanner/tcp_syn_scan --rhosts 192.168.0.100 --rports 22-100 -r

-m直接使用指定的模块。它后面的所有其他选项,将传递给模块参数
-r立即运行模块而不是首先打印模块菜单

创建项目

rm-sec-toolkit -c project

在项目注释中添加一些内容

rm-sec-toolkit -n -r

-r只用来直接运行,因为add notes选项也是常规模块

为 ctf 添加一个标志

rm-sec-toolkit -a flag -n user_flag -f e3b98a4da31a127d4bde6e43033f66ba274cab0eb7eb1c70ec41402bf6273dd8 -r

在本地网络中提供目录

有时 ctf 需要在本地网络中提供一些脚本以将其下载到目标机器上。这可以通过 http_file_server 模块轻松完成。

rm-sec-toolkit -m local/server/http_file_server --lport 12345 -r

不使用 rm-sec-toolkit 控制台直接运行脚本

python3 /usr/local/share/rm-sec-toolkit/modules/remote/gathering/scanner/tcp_syn_scan/tcp_syn_scan.py --rhosts 192.168.0.100 -r

/usr/local/share/rm-sec-toolkit是默认模块位置

更新

您可以使用菜单中的更新功能更新 rm-sec-toolkit。

启动 rm-sec-toolkit

rm-sec-toolkit

Contents
--------------------
(1) - others (C)
(2) - local (C)
(3) - remote (C)
--------------------
(u) - check for new updates
(q) - quit

Please choose one element: 

使用该u选项,您可以检查更新、更新工具包或仅更新模块。

先进的可能性

自定义脚本路径

将自定义脚本的路径添加到~/.rmsectk_custom_paths文件中。

echo "~/my_custom_scripts_folder" >> ~/.rmsectk_custom_paths

您还可以为每个项目添加自定义脚本路径。

cd yourProject
echo "/any/path/" >> .rm_sec_proj/.rmsectk_custom_paths

任何项目都包含该project_scripts文件夹。此文件夹会自动添加到.rm_sec_proj/.rmsectk_custom_paths文件中。您在这里放入的每个模块,您都可以在project_scripts.

编写自己的脚本

使用 create module 命令创建模块

您可以使用工具包本身轻松创建新模块。

rm-sec-toolkit -c module -a Your Name -d Any Description -n fancy_module -sn fmodule

您有以下选择。

--author -a: module's author {value needed}
--class-name -c: name of the class {value needed} {default: CustomModule}
--description -d: module description {value needed}
--name -n: module name {value needed}
--short-name -sn: module short name {value needed}
--super-class -s: super class {value needed} {default: BaseModule}
--super-class-path -sp: super class path {value needed} {default: rmsectkf.core.modules.base_module}

手动创建一个模块

创建一个包含以下内容的文件夹。

  • init .py(只是将其标记为包)
  • rm_module.json
  • 你的模块.py

rm_module.json

{
    "name": "Your Module Name",
    "description": "Description",
    "version": 1.0,
    "author": "Your Name",
    "module": "your_module.py"
}

你的模块.py

#!/usr/bin/env python3
from rmsectkf.core.modules.remote.gathering.scanner.scanner_module import ScannerModule

'''
Your super cool scanner
'''


class YourScanner(ScannerModule):
    def __init__(self):
        ScannerModule.__init__(self)

    # do init stuff here like define the options you need
    def init_module(self):
        #define the options you need (rm-options package)
        self.option_your_option = self.option_handler.create_option("your-option", "your super cool option", needs_value=True, required=True)
        pass

    # this is the part where you put your code
    def run_module(self):
        if super().run_module() == False:
            return False

        #do some cool stuff here
        your_option_value = self.option_your_option.value

# just return your module here
def get_module():
    return YourScanner()


# start the module if it's executed directly
if __name__ == "__main__":
    module = get_module()
    module.init_module()
    module.start_module()

例子

TCP-Syn-Scanner

#!/usr/bin/env python3
from rmsectkf.core.modules.remote.gathering.scanner.scanner_module import ScannerModule
from rmsectkf.core.network.port import Port
from scapy.all import *

'''
TCP Syn Port Scanner
'''


class TCPSynScan(ScannerModule):
    def __init__(self):
        ScannerModule.__init__(self)

    def init_module(self):
        super().init_module()
        self.option_rhosts.required = True
        self.option_rports.default_value = "1-1000"
        self.option_rports.required = True

    def run_module(self):
        if super().run_module() == False:
            return False

        # do the scan for each host
        for host in self.option_rhosts.value:
            print("\nresults for {}:".format(host))
            for port in self.option_rports.value:
                ip = IP(dst=host)  # host ip
                tcp = TCP(dport=port, flags='S')  # specify port and the SYN flag

                # do the request, and get the response
                for request, response in sr(ip / tcp, verbose=0, timeout=0.1)[0]:
                    # check if the response has a tcp layer and check if the flag is a (SYN, ACK) flag.
                    # in that case the port is open
                    if response.haslayer(TCP) and response.getlayer(TCP).flags == 0x12:
                        print(
                            "\tport {} is open (possible service: {})".format(port, Port.get_service_with_number(port)))


def get_module():
    return TCPSynScan()


# start the module if it's executed directly
if __name__ == "__main__":
    module = get_module()
    module.init_module()
    module.start_module()

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

rm-sec-toolkit-0.2.4.tar.gz (66.0 kB 查看哈希

已上传 source

内置分布

rm_sec_toolkit-0.2.4-py3-none-any.whl (74.6 kB 查看哈希

已上传 py3