捕捉 android 网络流量及中间人攻击
作为开发者或者安全研究员,开发或分析一些与网络相关的程序时,必然要涉及到 HTTP 协议,而了解信息的传输,是非常必要的。所以我们需要抓取并控制到网路流量,并且需要对中间人攻击有一定的认识。
TOC:
- 前言
- 捕捉网络流量
- Charles抓包工具
- 利用ettercap进行中间人
- MITM工具
- 中间人的利用
- 参考链接
0x02 捕捉网络流量
需要一些nc、wireshark、tcpdump for Android软件。
wireshark可通过以下代码进行安装:
brew cask install wireshark
netcat可通过以下代码进行安装;
brew install netcat
然后下载好TCPdump for android,注意是可执行文件,不是文件扩展名为bin的。
然后usb线连接好设备,或者启动虚拟机。
进入platform-tools文件夹,输入以下的命令:
查看连接的设备:
./adb devices
通过adb执行android命令
./adb shell
su
mkdir /data/tcpdump/
chmod 755 /data/tcpdump/
通过数据线或者其他adb push的方式,将tcpdump复制到设备的**/data/tcpdump/**文件夹。
在android设备里执行以下命令:
./adb shell
su
chmod 755 /data/tcpdump/tcpdump
或者是以下这个:
./adb shell chmod 755 /data/tcpdump/tcpdump
然后确认一下android设备中是否安装有netcat,可以通过nc命令来判断是否安装。
以下是:在android端转发流量的命令
./data/tcpdump/tcpdump -w - | nc -l -p 31337
需要配置adb的端口转发:
./adb forward tcp:12345 tcp:31337
然后pc端需要nc转发流量,然后wireshark进行分析。
netcat 127.0.0.1 12345 | wireshark -k -S -i -
安装配置好捕捉流量,wireshark分析:
0x03 Charles抓包工具的使用
安装并配置Charles。
brew cask install charles
捕捉HTTP流量:
手机上设置代理,如下所示:
捕捉HTTPS流量:
安装证书:
下载Charles证书http://www.charlesproxy.com/getssl/,输入文件名进行安装。
在Charles的工具栏上点击设置按钮,选择SSL Proxy Settings;选项卡的Locations表单可以填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填*,Port填443。默认的空值表示应用于所有地址。
0x04 利用ettercap进行中间人 ettercap是linux上常用的一种中间人工具,作为网上的一种sniffer,曾经利用其接收到机房的广播出来的数据包。
MAC系统上如何利用其进行中间人攻击呢?
ettercap安装与配置:
sudo brew install ettercap --with-gtk+
sudo port install driftnet
而driftnet是一款简单而使用的图片捕获工具,可以很方便的在网络数据包中抓取图片。可以利用其和ettercap进行抓取局域网中的图片。
ARP欺骗:
ettercap -i eth0 -T -M arp:remote /10.0.0.1/ // 欺骗局域网内所有主机
其他的命令可以通过-h --help来查看帮助。
0x05 MITM工具
常见的有dSploit,zANTI。
android设备使用dSploit进行中间人攻击: