专栏首页FreeBuf借助树莓派上演“窃听风云”

借助树莓派上演“窃听风云”

0x00 前言

在N年前看《窃听风云》时,里面的窃听环节就深深吸引着我,让我记忆深刻。

在N年前对于普通的我们想要实现远程窃听技术需要购买昂贵的设备才能实现。

但最近科技发展飞速,一般家庭宽带的网速已经达到了100M,同时手机的4G已经普及,5G也开始商用了(加油华为,加油China),在这样的环境下实现电影里面的窃听技术就比较容易得多了。

下面请随我一起开始“窃听”之旅。

0x01 所需材料

1.树莓派

2.USB麦克风

3.VPS服务器

一般家庭的宽带都不是公网IP,外网无法直接连接,所以需要使用VPS服务器来实现FRP内网穿透,这样就可以直接访问家庭内部主机了。

4.手机

5.VLC App

VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。

6.耳机

0x02 技术介绍

本文所使用的到的主要技术有:使用nginx+rtmp搭建音频直播流媒体服务器和FRP 内网穿透。

什么是nginx?

Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

什么是RTMP?

RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。

什么是FRP?

FRP是fast reverse proxy的缩写,简单地说,FRP就是一个反向代理软件,它具有体积轻量且功能强大特点,可以使处于内网或防火墙后的设备对外界提供服务。

0x03 环境搭建

3.1 在树莓派上使用nginx+rtmp搭建音频直播流媒体服务器

1.安装所需要的依赖

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

2.安装nginx和rtmp

wget http://nginx.org/download/nginx-1.17.0.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
tar -zxvf nginx-1.17.0.tar.gz
unzip master.zip
cd nginx-1.17.0
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make
sudo make install

3.修改nginx配置文件

执行sudo nano /usr/local/nginx/conf/nginx.conf,追加如下内容。

# RTMP协议
rtmp {
   # 创建一个服务,监听1935端口,这个是RTMP默认的端口
    server {
        listen 1935;   #默认端口
        chunk_size 4096;
        # 创建了一个名为live的应用, 支持直播
        application live {
            live on;
         }
    }
}
4.启动nginx+rtmp流媒体服务器
sudo /usr/local/nginx/sbin/nginx
5.安装ffmpeg
sudo apt install ffmpeg

6.将usb麦克风插入到树莓派的usb口,启动ffmpeg从usb麦克风实时采集音频,并推流到树莓派上搭建好的nginx+rtmp流媒体服务器上。

ffmpeg -f alsa -ac 2 -i hw:1,0 -ar 44100 -f flv rtmp://192.168.1.150/live/audio

参数说明

主要参数:

-f 设定输出格式 -i 设定输入流(hw:1,0为外接的usb音频采集卡设备,hw:1,0的1指的是第一个外部设备,因为树莓派内部没有声卡,所以只能使用外部的usb音频采集卡); -ar 设定采样率(因为输出为flv格式,所以采样率只能选择44100,22050,11025这三种);

注意:192.168.1.150为树莓派的IP地址。

7.在windows客户端中使用VLC软件打开网络串流,地址为“rtmp://192.168.1.150/live/audio”,即可收听到树莓派麦克风上捕获到的声音。

当前,可以在树莓派相同的wifi网络下,可以实现窃听,如果想要实现在任何地方的外网收听,还需要实现下面的FRP内网穿透。

3.2 在树莓派上搭建FRP内网穿透服务

3.2.1 服务端 - frps(VPS服务器)

1.下载程序

我的VPS服务器是unbuntu系统,使用的是arm64架构,所以需要下载arm64架构的frp软件。

wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz

解压

tar -xzvf frp_0.20.0_linux_amd64.tar.gz

新建文件夹

sudo mkdir -p /usr/local/frp

移动

sudo mv frp_0.18.0_linux_amd64 /usr/local/frp
cd /usr/local/frp

确保frps程序具有可执行权限

chmod +x frps

说明:目录下只主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。

2.配置程序

首先删掉frpc、frpc.ini两个文件,然后再进行配置,nano ./frps.ini:

[common]
bindport = 9000           #与客户端绑定的进行通信的端口
auto_token = hell.world      #客户端连接服务器端的口令

验证frps是否安装成功:

./frps -c frps.ini

如果没有出现错误提示就说明配置没有问题,可以正常使用。

接着按下Ctrl + C终止程序运行。

3.使frps开机启动

编辑/etc/rc.local文件,将启动那句命令加到exit 0语句之前(如果有):

nohup /usr/local/frpfrps -c /usr/local/frp/frps.ini &

3.2.2客户端 - frpc (树莓派)

1.下载FRP:

wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_arm.tar.gz

2.修改frpc.ini文件:

[common]

server_addr = XXX.XXX.XXX.XXX  #VPS服务器的公网IP

server_port = 9000                    #与服务端bind_port一致

auto_token = hello.world            #客户端连接服务器端的口令
[RTMP]

type = tcp               #连接协议

local_ip = 127.0.0.1     #内网服务器ip

local_port = 1935         #RTMP默认的端口

remote_port = 6000       #自定义的访问内部RTMP端口号

3.启动frpc:

执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为:

nohup ./frpc -c ./frpc.ini &

到此,FRP内网穿透就搭建完了。

0x04 开始远程监听

使用手机下载VLC Media Player,并将耳机连接到手机上(除非你想让窃听的内容被周围的人听到,当然也可以不连接耳机)。

手机上打开VLC软件,打开网络串流,地址为“rtmp://XXX.XXX.XXX.XXX:6000/live/audio”。

说明:XXX.XXX.XXX.XXX为VPS服务器的IP地址。

稍等一会,在耳机中即可听到远程的实时声音。注意,声音是有延迟的,对于我的网络大概延迟2s左右,具体需要自行测量。

备注:如果连接不成功,可以关闭VLC软件,重试几次即可。

0x05 结束语

当从耳机中听到远程的声音时,内心是无比激动的,希望我的这份愉悦与大家一起分享。

喜欢的话,支持一下吧。

*本文原创作者:xutiejun,本文属于FreeBuf原创奖励计划,未经许可禁止转载

本文分享自微信公众号 - FreeBuf(freebuf),作者:xutiejun

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ModSecurity:一款优秀的开源WAF

    ModSecurity是一个开源的跨平台Web应用程序防火墙(WAF)引擎,用于Apache,IIS和Nginx,由Trustwave的SpiderLabs开发...

    FB客服
  • 你的数据值多少钱?来自暗网市场的调查报告

    近日,全球知名安全厂商Mcafee实验室发布了一份关于暗网市场上出售来自各个行业敏感数据的价格的报告,其中报告指出,目前在暗网市场上,出售的数据类型一般有财物数...

    FB客服
  • BurpSuite下一代渗透检测工具:BurpKit

    有“渗透神器”之称的BurpSuite 是用于渗透测试Web 应用程序的集成平台。作为其丰富的功能之一,插件BurpKit提供了双向JavaScript桥梁AP...

    FB客服
  • 刷屏了的为什么:为什么12306时不时要崩那么一下下?

    前几天12306崩了,很多人在痛骂12306,还有很多人在我公众号的后台问我为什么12306总是动不动就崩溃,和大姨妈一样不给力。

    数据猿
  • 微信版12306来了!用12306微信小程序买票靠谱吗

    很快又要到春运了,最近一款重磅的微信小程序全新出炉,它就是12306!我们知道,如果想要买火车票,基本是离不开12306的了。很多朋友为了在手机买票,都安装了1...

    企鹅号小编
  • Silverlight项目中"自定义控件开发/Style"学习笔记

    本文不涉及高深的设计模式(比如mvc,mvvm之类),也没有太多的编程技巧,只是记录自己做为asp.net开发者学习silverlight中自定义控件开发的一些...

    菩提树下的杨过
  • 为 JavaScript 开发人员准备的 Dart 参考教程

    Dart 是 Flutter 主要的开发语言,这一篇文章主要为 JavaScript 开发人员准备的 Dart 教程,我会用很详细的对比来参考,力争 JavaS...

    icepy
  • 8051的特殊功能寄存器

    版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.ne...

    zy010101
  • 基于Taro的的微信小程序分享图片功能实践

    在各种小程序(微信、百度、支付宝)、H5、NativeApp 纷纷扰扰的当下,给大家强烈安利一款基于React的多终端开发利器:京东Taro(泰罗·奥特曼),T...

    胡哥有话说
  • 1019. 数字黑洞 (20)

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我...

    AI那点小事

扫码关注云+社区

领取腾讯云代金券