author:朋与厌
Ascotbe分享的《利用树莓派来监听任务目标》
想必大家看完还觉得不过瘾
前段时间自己开发了一个简陋的扫描器
一直放在树莓派中运行每次扫描到漏洞都完美错过
DNSlog平台挂了也不知道。
所以我就去找了一个消息推送平台
这次我将使用树莓派安装 Linux Kali-2020
部署分布式扫描器节点
通过Server酱检测到漏洞自动及时的发送到微信通知。
硬件清单
· 树莓派RaspberryPI (这可不是吃的树莓派!
· 树莓派供电设备
· 读卡器与MiniSD Card
· 显示器 *可选
所需软件
· Linux Kali系统镜像 https://www.offensive-security.com/kali-linux-arm-images/#1493408272250-e17e9049-9ce8
· balenaEtcher 启动盘制作工具 https[://]www.balena.io
在树莓派安装Kali Linux
这里也不赘述树莓派到底是个啥
总而言之 此物虽小五脏俱全
找到所需要准备的硬件和软件
我们就将要对树莓派开始调教啦.
首先根据树莓派型号需求下载相关的镜像
我的设备是RaspberryPi 3 所以我就选择最后一个点击标题是下载压缩包文件
也可以选择 Torrent 资源种子
系统镜像下载完成后需要解压(没解压直接烧录半天没进入系统)
使用 balenaEtcher烧录镜像到MiniSD Card
插上读卡器这样然后再那样最后就完成啦。?(镜像比较大 一个漫长且充满期待的过程......
接下来像这样将Mini SD卡插入树莓派的这个位置并连接电源连上显示屏。
当设备首次启动时是这样的 然后就没了。。。
当然那个只是错误操作没有解压缩镜像文件...
再次强调一定要解压文件?
激动人心的时刻。
成功启动Linux系统后熟悉的界面。❤️
[默认账户密码:root:toor]
接下来我们将要做事情
- 接入网络
- 配置kali应用更新源
- 配置中文环境
- just do.
接入无线网络 WIFI标识 => 选择需要接入的WIFI SSID 输入密码可连接。
配置kali更新源 WIFI标识 => 选择需要接入的WIFI SSID 输入密码可连接。
嫌难得打字的话可以在局域网电脑开启一个python的http服务 默认端口为8000 创建文本为1.txt 树莓派访问局域网192.168.0.123:8000 (为什么不直接访问百度呢?因为不支持中文乱码~
开启Web服务的电脑
树莓派通过curl访问
nano /etc/apt/sources.list
# 打开后文件后注释前两条自带的配置写入下方的 清华源。
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
完事按Ctrl+X
保存退出,然后执行更新源命令( 又是一个漫长的等待...
apt-get update
apt-get upgrade
稳住我们能赢!
安装字体配置中文语言环境
# 安装中文字体
apt-get install ttf-wqy-zenhei
# 配置区域
dpkg-reconfigure locales
在配置区域设置中找到这几样,用空格选择
[*] en_US.UTF-8 UTF-8
[*] zh_CN.GBK GBK
[*] zh_CN.UTF-8 UTF-8
选择完成后,按TAB
键切换到选择(select)
键。按OK
到下一步
下一步选择zh_CH.UTF-8
然后输入reboot
命令 重新启动 就可以看到全中文的kali系统啦。
最后就是安装Kali 全家桶 官方社区显示有9.0G 建议还是需要什么装什么。
有点跑题~
再来介绍一下Server酱 ?
「Server酱就是从服务器推报警和日志到手机的工具。」
开通并使用上它,只需要一分钟:
大概就是通过Server酱的api接口发送我们的漏洞信息
同步到我们绑定的微信号就可以收到通知啦。
实现代码:
import requests
import logging
def push_ftqq(self,warning_info,vuln_name):
"""同步通知"""
data_raw = {"text":"[朋与厌 VulScan] vuln monitor","desp":"\r\n**漏洞信息**\r\n {} \r\n \r\n<br/>\r\n **漏洞详情** \r\n~~~visual basic\r\n{}~~~\r\n".format(vuln_name,warning_info)}
req = requests.post("https://sc.ftqq.com/{SCKEY}.send",data=data_raw)
if req.json()["errno"] !=0:
logging.warning("消息同步失败")
代码运行到扫描器
最终实现如下: