etter的dns欺骗玩法

说在前面

Ubuntu安装etter这一篇,基本说明了ubuntu下怎么安装etter,其它linux发行版也是类似,或者参照我的思路研究下,很简单直白的一个东西。
本篇写个示例,dns欺骗这个插件的使用,因为这个东西还是蛮好玩的,我是为了逗我媳妇才花心思研究了下这个插件的用法。
需要两个工具,一个是安装好的etter,另一个是一个web服务器,可以是apache、tomcat什么等等都行,能返回一个静态页面;我是写了个基本的spring boot工程凑合用,简单省事。

dns欺骗示例

先看下我当前主机网段有哪些IP

sudo ettercap -T -q -s lq
在这里插入图片描述
总共3个,1:是网关,2:是我的手机分配的IP,3:是我当前网段另一个笔记本分配的IP,我本机的IP主机是221,这里不显示
OK,接下来,我需要启动一个WEB服务器,监听80端口。
原理是这样的,当我们打开浏览器,输入一个网址,如:https://blog.csdn.net/x763795151,这里面是没有端口号的吧,默认端口是80。dns欺骗就是主机解析域名的时候,我们返回另一个我们想要返回的IP(比如我的主机IP,而不是从域名服务器返回这个域名实际注册对应的IP)。比如,访问CSDN:https://www.csdn.net/,域名解析的是我本机的IP,则被攻击用户实际访问的地址是:https://192.168.31.221:80。
怎么用spring boot搭建一个web工程,如果是做java web的对这个应该很熟悉,不清楚的网上也有很多资料。可以用自己熟悉的其它web服务器就行,主要是下面这么个意思:
我这里配置拦截所有请求:

@Controller
public class DemoController {

    @RequestMapping("/**")
    public String index() throws InterruptedException {
        return "index";
    }
}

返回的index.html的内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
<h1>早点睡吧,熬夜对手机不好</h1>
</body>
</html>

要监听80端口,如果不是用的其它web服务器,也是像我这样的用的spring boot,80端口普通用户进程是不能占用的,可以考虑用root权限启动或者web服务器监听其它端口,配置80端口转发。
准备工作做的差不多了,就说下怎么配置etter并启动运行了。
dns欺骗插件,需要改个配置,文件路径是:

/etc/ettercap/etter.dns

在这个地方加个配置,如下:
在这里插入图片描述
标红框那个,后面的IP,改成自己本机的IP,这个*号是通配符,加这一行意思就是所有域名查询期望获得这个IP,这个中间的A就dns查询报文的一个类型,就是请求获得查询名的IP,而PTR是指针记录,是根据IP地址获取域名,这个本示例中并不需要,所以不关心。
然后,启动etter,记得是arp欺骗攻击噢,这样流量才能经过我们本机的网卡,我们才有机会嗅探流量,才能玩这个dns欺骗插件。
现在,我要攻击同一网段下另一个笔记本,主机188那个,步骤如下(主要是命令行的方式,GUI的话,自己研究研究,都挺简单的操作):

1.输入命令

sudo ettercap -T -q -M arp:remote /192.168.31.188/ /192.168.31.1/

在这里插入图片描述
2. 然后,输入p(就按下键盘上的p键),激活一个插件:
在这里插入图片描述
3. 可以看到一堆插件,现在输入dns_spoof,上面插件列表中的dns欺骗插件:
在这里插入图片描述
显示,激活这个插件了,下面的日志是我在另一个笔记本上打开浏览器,默认是hao.360.cn,解析到了我本机的IP,然后我又打开百度,用手机拍了个照片,贴上来看下效果。
在这里插入图片描述
那个笔记本用的浏览器是火狐,效果还是蛮预期的无论是打开哪个网站都是这鬼样子了。
其实,这样已经结束了。
现在,说下这个不好用的地方。
1.换其它浏览器,比如谷歌,结果就是不那么预期了,有些会出现无法访问,但是有些网站是很预期的:返回的是早点睡吧。。。
在这里插入图片描述
2.手机端
我手机是自带的小米浏览器,结果也是有些预期,有些不预期,把手机的IP也包含进去:
在这里插入图片描述
在这里插入图片描述
手机打开浏览器有些网站是这样子,顶多就好像是上不网似的,起不了娱乐效果了。
3.容易崩溃
分片错误
在这里插入图片描述
4.这个问题我想了个简单粗暴的方案解决
源码中数据报不分片,超过我网卡MTU值,底层报文传输失败,就报Message too long这种错:
MTU默认1500,我自己这个无线网卡,最大可以设置2000,但是随便打开个大网页,都会超过这个值。
我目前的解决方案是:找到源码的地方,libnet_write.c这个源文件,将源码改一下,在这个方法libnet_write_raw_ipv4()内,代码如下:

        if (size > 1500)
        {
                size=1500;
        }
    c = sendto(l->fd, packet, size, 0, (struct sockaddr *)&sin,
            sizeof(sin));

然后,重新卸载,编译,安装。
判断下发送报文大小 ,超过MTU值(1500),就只发送1500。当然这个方法并不是个好方法,不过只是玩dns欺骗这个插件足够用了,真要花时间改,就自己进行分片吧。

发布了136 篇原创文章 · 获赞 69 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/x763795151/article/details/100867494