基于国密 TLS(GMSSL)内网穿透工具
GMPF - 国密 TLS 内网穿透工具基于 tjfoc/gmsm 的国密 TLS 内网穿透工具,把内网服务映射到公网端口。 架构12外部用户 ──→ Server:expose_port ──[GMSSL]──→ Client ──→ 127.0.0.1:target_port (公网) (公网机器) (内网机器) (内网服务) Client 在内网主动连接 Server,注册隧道 Server 监听公网端口,收到连接后通知 Client 建立数据通道 每个连接独立一条 GMSSL 数据通道,互不干扰 快速开始启动服务端(公网机器)12cd gmpf/servergo run main.go 参数 环境变量 说明 默认值 — GMPF_LISTEN GMSSL 监听地址 0.0.0.0:8443 自定义监听地址: 1GMPF_LISTEN=0.0.0.0:9443 go run main.go 启动客户端(内网机器)方式一:命令行参数 12cd gmpf/clientgo run ma...
基于国密 TLS(GMSSL)双向认证加密通信 Demo
一个基于 TJFOC/GMSM 库实现的国密 TLS(GMSSL)双向认证加密通信的小Demo,用于学习和后续的实践,包含客户端和服务端两个部分。 用到了国密算法三件套: 算法 类型 在本项目中的作用 SM2 非对称椭圆曲线 TLS 握手阶段的身份认证与密钥交换 SM3 密码学哈希(256bit) 消息完整性校验(等价于 SHA-256) SM4 对称分组加密(128bit) 加密传输的实际数据(SM4-CBC 模式) 证书体系项目使用一套完整的 PKI 证书链,所有证书通过 certgen/ 工具生成: 服务端和客户端均持有 CA 根证书用于验证对端证书的合法性。服务端配置 ClientCAs 表示信任该 CA 签发的客户端证书(实际因 NoClientCert 未强制要求);客户端配置 RootCAs 信任该 CA 签发的服务端证书。 Server导入包 123456789101112131415package mainimport ( "bufio" // 按行读取 TCP 流 "...
QClaw + 自定义Python工具
QClaw + 自定义Python工具关于 QClaw 的相关信息,可以从官网查看,本文主要是记录一下将之前 Python 写的一个日志分析工具,封装成 QClaw 可接受的skill,并且安装到 QClaw 中使用。 skill安装简单粗暴的方式 看一下文件结构 1234567891011121314linux-skill/├── SKILL.md # 技能说明文档└── scripts/ ├── ssh_log/ │ ├── ssh_analyzer_pro.sh # SSH 日志分析主脚本 │ └── ssh_analyzer.sh # 简化版 ├── linux_backdoor_emergency/ │ ├── linuxbackdoor.sh # 完整后门扫描脚本 │ ├── backdoor_scan.sh # 单项扫描脚本 │ └── linux_backdoor.sh # 备用脚本 └── func/ ├── ssh_...
OpenClaw 使用本地 Ollama 调用 qwen3 大模型
OpenClaw使用本地Ollama调用qwen3大模型这次依旧是虚拟机(Linux)运行OpenClaw server,然后物理机运行Ollama,本地模型使用qwen3:30b 虚拟机:Linux kali 6.16.8+kali-arm64 物理机:Darwin bogon 25.3.0 Darwin Kernel Version 25.3.0 Ollama安装Ollama官网 官网给了一个直接Ollama加载OpenClaw的方法,但是在安装ollama的本地检测是否部署了openclaw,然后启动,这里因为openclaw和ollama不在同一台机器上,所以不用这种方法。 安装好后下载模型,我这里用的是qwen3:30b,因为本地模型肯定是不如在线模型好,尽量选参数量大一点的 然后设置里面打开网络访问,OpenClaw要求模型上下文窗口≥16000 tokens,而Ollama拉取的基础模型默认上下文窗口仅4096 tokens,所以需要将上下文窗口扩展至32768 tokens OpenClaw配置OpenClaw 需要一个API Key来识别 Ollama 服...
Linux(kali) 部署 OpenClaw
Linux(kali) 部署 OpenClaw官网 主机 MacOS m1 虚拟机 Kali 2025-04 1Linux kali 6.16.8+kali-arm64 #1 SMP PREEMPT Kali 6.16.8-1kali1 (2025-09-24) aarch64 GNU/Linux 一、命令行安装官网一键安装脚本curl -sSL https://openclaw.ai/install.sh | bash 二、进入安装向导进入安装向导 123◆ I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue? │ ● Yes / ○ No 第一步默认个人使用,选Yes 类似于安装模型吧,选Manual 本地测试的话就选Local gateway 一个默认的工作空...
SSH日志分析
ssh日志分析一、可以登录 SSH 的账号数量查看ssh配置文件 1cat /etc/ssh/sshd_config 允许登录的组是SSHD_USER和root,然后查看组的用户 1cat /etc/group 可以看到有两个用户,一个是toor,一个是root 二、SSH日志中登录成功的日志条数ssh日志文件路径/var/log 解压gzip -d auth.log.2.gz 查看日志文件内容,筛选成功的用户 1grep "Accept" auth.log auth.log.1 auth.log.2 | wc -l 三、登录次数最多的用户加一个筛选 1grep "Accepted" auth.log.1 auth.log.2 | awk '{print $9}' | sort | uniq -c | sort -nr 四、SSH日志中登录失败次数最多的用户以及登录使用的ip是什么12grep "Failed" auth.log auth.log.1 auth....
xxe利用总结
XXE利用方法总结CTF 中,XXE 是常出现在: XML 文件上传 SOAP 接口 RSS 订阅 配置文件解析 图片/文档元数据解析(如 .docx, .svg) XXE 利用前提 条件 说明 服务接收 XML 输入 如 POST /upload、GET /xml 使用不安全的 XML 解析器 如 Python xml.etree, Java DocumentBuilder 未禁用 DTD/外部实体 默认解析器常开启 external entities 有回显 / 无回显 决定利用方式 有回显 XXE基础利用模板12345<?xml version="1.0"?><!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd">]><root>&xxe;</root> 服务器返回: 123<root>root:x:0:0:root:/root:/...
伪终端绕过tty限制
过程复现记一道CTF题目的sudo提权方法,伪终端绕过tty限制 获取权限的步骤省略,直接 先sudo -l看一下,普通sudo无法提权 然后执行ps -ef查看是否有root权限运行的进程 1script -q -f -c bash -li -c "echo mRSUAlI | sudo -S -v >/dev/null 2>&1; sleep infinity" /dev/null 这条命令用script启动一个伪终端(PTY),嵌套调用bash启动交互式终端,输出字符串 mRSUAlI作为sudo的密码,然后sudo -S -v从标准输入读取密码,不执行命令,只是验证并缓存sudo权限。 因为sleep infinity让这个会话保持了睡眠,所以复用这个语句仍然有sudo权限 分析这里可以看到直接执行sudo -n whoami这个命令还是不行,返回了sudo: sorry, you must have a tty to run sudo 因为在/etc/sudoers文件当中,设置了requiretty,是 sudo 的...
AI Agent Note (智能体创建)
之前实现了大模型对工具的调用,现在实现初始化一个智能体,然后对工具进行调用。 这里有一个问题,智能体是基于大模型对工具进行调用,这二者有什么区别? 这是一个非常关键、也是很多人容易混淆的问题。大模型调用工具和智能体调用工具看起来都能触发外部函数/接口,但它们的行为模型、执行流程、决策机制和适用场景完全不同。 LLM 只做一次决策:选哪个工具 + 给参数 → 工具执行 → 直接返回结果。它本身不会思考“下一步该怎么办”。 Agent 是可以持续推理、规划、循环执行的系统,它会根据工具结果重新思考、再调用工具、多轮执行并最终形成任务完成闭环。 理论先摆在这,,,下面创建一个智能体,然后实现调用工具进行数学计算,最后与前面大模型调用工具进行对比。 智能体创建初始化智能体12345678from app.bailian.commom import create_calc_tools, llm, chat_prompt_templateagent = initialize_agent( tools=create_calc_tools(), llm=llm, ag...
AI Agent Note (绑定自定义工具)
绑定自定义工具一、工具函数123def add(a, b): print("调用了函数add:") return a + b 二、将工具函数转换为LangChain Tool对象引入from langchain_core.tools import Tool,通过这个可以把函数转化为大模型能够理解的工具 123456789def add(a, b): print("调用了函数add:") return a + badd_tools = Tool.from_function( func=add, name="add", description="两个数相加") 三、大模型和Tool对象绑定12llm_with_tools = llm.bind_tools([add_tools])chain = chat_prompt_template | llm_with_tools 四、调用大模型123resp = chain.invoke(input={&qu...
