惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
T
Threat Research - Cisco Blogs
N
News and Events Feed by Topic
Hacker News: Ask HN
Hacker News: Ask HN
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
Security Latest
Security Latest
Spread Privacy
Spread Privacy
aimingoo的专栏
aimingoo的专栏
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
U
Unit 42
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Scott Helme
Scott Helme
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
爱范儿
爱范儿
S
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Schneier on Security
Schneier on Security
Latest news
Latest news
GbyAI
GbyAI
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
WordPress大学
WordPress大学
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
PCI Perspectives
PCI Perspectives
Jina AI
Jina AI
AI
AI
NISL@THU
NISL@THU
I
Intezer
G
GRAHAM CLULEY
B
Blog
S
Secure Thoughts
IT之家
IT之家
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
V2EX - 技术
V2EX - 技术
Recorded Future
Recorded Future
Hacker News - Newest:
Hacker News - Newest: "LLM"

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
入侵的艺术: 对树莓派、CodeLab Adapter 和 Home Assistant 做渗透测试
种瓜 · 2019-10-01 · via 夜行人

文章目录

在美洲森林里要骄横为害的人,在王座上大概也不会善良很多;在王座上,恐怕他将找出学问、宗教为他对臣民所做的一切事情辩护,凡有胆敢提出怀疑的人,利剑立刻叫他们噤声。 – 伯特兰·罗素《西方哲学史》

前言

安全的兴趣由来已久。

近来在技术上的工作,主要与以下三个项目有关:

  • 树莓派
  • CodeLab Adapter
  • Home Assistant

因为考虑将这些项目产品化,这几个项目都有很强的可扩展性和连接能力,它们的安全性就是需要纳入考虑的话题。防御的最好方式之一是理解潜在的攻击行为,所以计划陆续抽出一些时间对它们做渗透入侵测试。

着重关注以下几个方面:

  • Linux 系统安全性
  • 暴力破解
  • 中间人攻击
  • IoT 的安全性
    • 工业物联网安全
    • MQTT
    • zigbee
    • wifi
    • bluetooth
  • web 安全
    • https
  • 逆向工程

以下是笔记。

前置工作

由于是内部测试,避免了很多麻烦,不必使用 tor 之类的工具保护自己。

准备使用 Kali Linux 作为工作环境,关于环境的搭建,可以参考此前的笔记:在 mac 虚拟机中安装 Kali Linux

我目前在用VMware,对应的虚拟镜像下载链接为:https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/

下载之后记得检验SHA256Sum

启动之后,默认的用户名密码是:root:toor

Kali Linux

Kali Linux 是基于 Debian 的 Linux 发行版,设计用于数字鉴识和渗透测试。

Kali 有 arm 版本,可用于树莓派。

Kali Linux 拥有超过 600 个预装的渗透测试程序.

Kali Linux 包含许多的安全工具,比如:

  • Aircrack-ng
  • Burp suite
  • Cisco Global Exploiter
  • Ettercap
  • John the Ripper
  • Kismet
  • Maltego
  • Metasploit framework
  • Nmap
  • OWASP ZAP
  • Social engineering tools.
  • Wireshark
  • Hydra
  • Reverse Engineering tools
  • Forensics tools like Binwalk, Foremost, Volatility e.t.c

流程

攻击的流程主要参考Metasploit 渗透测试指南, 很喜欢这本书。

Metasploit

Metasploit项目是一个旨在提供安全漏洞信息计算机安全项目,可以协助安全工程师进行渗透测试(penetration testing)及入侵检测系统签名开发。

维基百科对其介绍简明扼要,引用过来,方便读者参考:

使用Metasploit框架的基本步骤包括:

  • 选择并配置一个攻击代码(exploit, 利用漏洞来进入目标系统的代码);
  • (可选)检查目标系统是否会被此代码影响;
  • 选择并配置一个有效负载 (payload, 在成功进入后在目标系统上执行的代码;例如,一个远端壳层或一个VNC服务器);
  • 选择编码方式,使入侵预防系统,忽略已被编码的有效负载;
  • 执行攻击代码。

这种允许任何攻击代码和任何有效负载进行随意组合的模块化的结构是Metasploit框架的主要优势。用户可以通过不同的搭配在有限的漏洞下导入不同的负载。Metasploit框架可以通过添加模块实现扩展,允许用户,攻击代码作者和有效负载的作者专注于写出所需的功能,而无需处理其他问题。

选择攻击代码和有效负载需要目标系统的部分信息,比如其操作系统的版本和安装的网络服务。这些信息可被类似于Nmap的端口扫描和操作系统分析工具收集到。类似于Nexpose或Nessus的弱点扫描工具可以探测到目标系统的弱点。Metasploit可以导入弱点扫描数据并通过对比已发现的弱点和拥有的攻击代码模块来进行准确的攻击。

Armitage

Armitage是一个拥有图形用户界面的Metasploit管理工具,Armitage对初学者比较友好。

我当前的系统(2019-03)没有内置Armitage(早年的kali是自带的)),需要自行安装apt-get install armitage

安装完之后,可在Metasploit交互界面里启用armitage。


结下来让我们开始渗透之旅 :)

扫描网络

我们先来做下前期交互和情报搜集工作。

使用Zenmap简单扫描一下网络:192.168.31.0/24(Quick Scan),找到局域网里存活的主机(手机上的应用Fing也是很好的工具)。

Zenmap是Nmap的图形界面,如果想对扫描过程做更多精细操作,参考Nmap文档。一般来说,Intense scan可以满足一般扫描需求。

可以看出网络里有2个主机跑着VNC服务,它们是Neverland里的2台树莓派, 它们是主从关系 :)

也可使用fping -g 192.168.31.0/24来发现局域网存活主机(速度比较快)。

确定目标

确定我们的目标主机地址:rpi4.codelab.club,2个树莓派中的一台。

对目标主机做更全面的扫描(Intense scan, all TCP ports):nmap -p 1-65535 -T4 -A -v rpi4.codelab.club

扫描到了一些有用的信息:

我们发现了这个树莓派上开放的端口、端口上跑的服务、服务相关的技术栈(Python/Nginx)以及系统信息。

尝试ssh暴力破解

既然ssh服务是开放的,我们来试试暴力破解,说不定是默认密码或者弱密码。

打了捡便宜的心态,测试了一下pi:raspberry默认密码,没有捡到便宜。

我们使用著名的hydra来碰碰运气,hydra是著名黑客组织thc的一款开源的暴力密码破解工具,已经内置在Kali Linux中。

这儿使用hydra的图形界面来操作。

暴力破解的精髓是用户名/密码字典, 我们随便选择metasploit自带的字典/usr/share/wordlists/metasploit碰碰运气。

可惜,没有使用123456/admin/...之类的弱密码。 我们接下来把真实密码放在字典的最后一行来品尝暴力破解的快感:)

哈哈 成功爆破:

ps: 社会工程学往往是破解密码很好的思路,在这个意义上,优秀的黑客是一个具有心理学兴趣的人文工作者。

树莓派的安全性

树莓派是黑客的宠儿,黑客群体是它的铁杆粉,所以树莓派自身当然拥有很高的安全性。

树莓派的安全风险主要由使用者造成,弱密码首当其冲。

一些简单的策略可以大大提高树莓派的安全风险:

  • 使用最新的官方系统
  • 关闭非必要的服务和端口
    • VNC
    • ftp
  • 修改ssh端口,禁用密码登陆,使用证书登陆
  • 确保自定义服务的安全性

接下来我们便来开始聊聊自定义服务的安全性。

ps: 对树莓派更完整的渗透,留待后边讲到metasploit时再说。

渗透自定义服务

目前我们的树莓派里跑着两个自定义服务,正是我们的渗透目标。

  • CodeLab Adapter
  • Home Assistant

两者都对外提供web服务,又都与IoT有关,而IoT整个领域以安全漏洞多著称,我们接下来看看从它们身上能收获什么。据此思考如何提高它们的安全性。


waiting…

参考