之前只知道在电脑上抓https,但一直不知道怎么在安卓手机上弄,直接看到这篇文章后,测试真的可以抓到https包。简直太棒了。
https://bbs.kanxue.com/thread-260965.htm
电脑抓https的链接如下:
手机端抓包,注意先要使用tcpdump抓包后再使用frida hook打开目标app,要使用su权限。
adb shell
su
tcpdump -w /sdcard/dumpx.pcap
此后再frida hook
frida -U -f "com.tingwen.ddsz" -l sslLogger.js -o C:\\Users\\86153\\Desktop\\keylogfile.txt
//sslLogger.js
function startTLSKeyLogger(SSL_CTX_new, SSL_CTX_set_keylog_callback) {
function keyLogger(ssl, line) {
console.log(new NativePointer(line).readCString());
}
const keyLogCallback = new NativeCallback(keyLogger, 'void', ['pointer', 'pointer']);
Interceptor.attach(SSL_CTX_new, {
onLeave: function(retval) {
const ssl = new NativePointer(retval);
const SSL_CTX_set_keylog_callbackFn = new NativeFunction(SSL_CTX_set_keylog_callback, 'void', ['pointer', 'pointer']);
SSL_CTX_set_keylog_callbackFn(ssl, keyLogCallback);
}
});
}
startTLSKeyLogger(
Module.findExportByName('libssl.so', 'SSL_CTX_new'),
Module.findExportByName('libssl.so', 'SSL_CTX_set_keylog_callback')
)
//frida -U -f "com.xs.fm" -l sslLogger.js --no-pause -o sslkeylogger
//frida -U -f "com.ximalaya.ting.android" -l sslLogger.js --no-pause -o C:\\Users\\86153\\Desktop\\keylogfile.txt
//frida -U -f "com.tingwen.ddsz" -l sslLogger.js --no-pause -o C:\\Users\\86153\\Desktop\\keylogfile.txt
注意keylogfile.txt文件的写入要退出frida窗口之后,不然keylogfile.txt中没有内容。如下图:
之后在wireshark中“编辑”–“首选项”—“协议(Protocols)”,找tls。
adb pull /sdcard/dumpx.pcap
再打开 dumpx.pcap ,就可以找到目标协议了,输入以下命令:
http.request.uri contains "time"
而把keylogfile.txt清空之后,关闭wireshark,重新找开dumpx.pcap包,如下:,再次说明这是一个https包被抓到。
这肯定是一个https://www.ximalaya.com/revision/time,点击https测试专用测试https的。
太好了,终于安卓上抓包又多了一种方式。
wireshark按主机名(域名)搜索。可以不用加引号。
http.host contains “ximalaya”
https://www.cnblogs.com/eleven24/p/8243099.html
另外我通过手机直接连接电脑的热点wifi,测试好像抓不到包。。。。有点奇怪。wifi包。