今天pybeef作为一个课程设计答辩完成了,向老师介绍了很多xss利用相关的场景和技术。
先说一下已经实现了什么,
1, 浏览器版本的判断
这方面只能判断IE和firefox 火狐判断只判断了user-agent ,IE是通过浏览器的特性,关于IE edge 是我根据IE10的一些特性测试得出的,如果判断顺序合理的话肯定是准确的。
后续:肯定要加上chrome浏览器
2,js-shell 命令执行
其实就是一个传过去一个函数,hook端接收执行一下,很鸡肋的一个功能,但是为了让框架完整加上了这种返回的命令控制模块。
3,读取内网的ip
webrtc是一个大坑,勉强给填上了,还是不想再深入了拿到ip地址就好。
后续 :IE不支持webrtc beef用host字段来标识浏览器。
代码放到了github上,欢迎大牛提建议
https://github.com/littleworldwar/pybeef
昨天还发现了一个bug,得到的cookie不能完全传回来,只能传回来一点,虽然老师不能发现,但是对于一个xss工具来说这是一个很致命的错误了,毕竟大家用xss都是为了获取cookie ,这方面我会继续研究下去的。
另一个问题还是架构上的问题,我其实已经模仿了beef 的架构,但是发现自己还是没有领悟精髓。
我主要是用ajax传回数据,beef好像不是这样。
beef的hook端有两种请求,
一是类似hook.js?hook_id=xxxxxxx 特定间隔重复发出 ,用来探测目标是否存活,同时传回命令执行
二是dh?asdasdads (携带了初始的一些重要信息)初始信息发送,其余时候不详
下阶段改进:
1,先把浏览器的判断整全
2,cookie要传回来,hook端请求方式可能要改,不行就用websocket
3, 同样和beef一样要分成两种请求回传数据,现在只有一种post请求
4,多加一些小功能,比如端口扫描,页面欺骗,和反弹shell文件下载等等
未来方向:其实xss框架这方面在市面上好像一种没有什么人关注,可能利用的价值不是很大?
1, 希望整合漏洞扫描 ,先编写一些常见漏洞扫描的python和js版本练练手,特别是在xss控制了很多浏览器的时候就相当于一个分布式的扫描器啊,当然任务调度方面要做好也是很不容易。
2,浏览器溢出,其实先把autopwn集成过来是一个不错的选择,这方面坑实在是太大,毕竟这方面我还是小白,先补一补汇编语言和操作系统,然后再来溢出这边试试水吧。beef中有一个跨协议漏洞利用真的是很神乎其技。