中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Android Nougat中正確配置Burp Suite

發布時間:2021-12-22 14:29:55 來源:億速云 閱讀:253 作者:柒染 欄目:網絡安全

這期內容當中小編將會給大家帶來有關如何在Android Nougat中正確配置Burp Suite,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我測試一個新的Android app時,遇到了一些關于Burp Suite無法正常工作的問題。為了解決這個問題我花了整整一下午的時間,并決定將我的解決方案分享出來。

背景

此前我已經在Genymotion VM或我的舊版Nexus Tablet,做過不少Android相關的測試。一直以來我都遵循Portswigger的說明文檔,本地運行Burp Suite,并安裝User Cert,配置一個WiFi代理。

然而,當我對這個特定app(需要API level 24 (Android 7.0 - "Nougat"))測試時,突然發現Burp無法正常工作。我回顧了我的配置步驟,并沒有發現遺漏的地方,但在Burp中只看到“connection reset(連接重置)”錯誤:

如何在Android Nougat中正確配置Burp Suite

在經過我幾個小時的折騰后,我終于找出了問題所在。在進一步探討之前,我向大家推薦兩篇優秀的文章,這也是幫我解決該問題的關鍵信息:

  • https://serializethoughts.com/2016/09/10/905/

  • https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html

從Nougat開始,Android更改了對用戶安裝證書的默認信任行為。這意味著,從sdcard安裝Burp CA將無法攔截應用流量。除非另有說明,否則應用程序將只會信任系統級別的CA。

這里有兩種方法可以幫我們繞過它:

  • 將Burp CA作為系統級CA安裝在設備上。這是我認為最簡單的解決方法,但需要一個已經root的設備。還免去了設置鎖屏PIN碼的的麻煩:)

  • 修改manifest清單文件并重新打包應用程序。 操作步驟相對繁瑣,但不需要root權限。

注意:我在Windows 10上使用Burp Suite Pro完成了這些操作,使用的是Android 7.1(API25)Genymotion VM,但這些步驟應適用于任何設置。

將Burp CA作為系統級CA安裝在設備上

對我來說,我認為最簡單的解決方案就是將Burp CA安裝到系統可信證書中。你可以通過Settings -> Security -> Trusted Credentials來查看所有與Android設備捆綁在一起的系統CA。在瀏覽器捆綁中你也能看到類似的CA。

Android的受信任CA以特殊格式存儲在/system/etc/security/cacerts 。如果我們有root權限,可以對這個位置進行寫入放入Burp CA(經過一些修改后)。

導出并轉換Burp CA

第一步是以正確的格式獲取Burp CA。使用Burp Suite,以DER格式導出CA證書。我將它保存為cacert.der

如何在Android Nougat中正確配置Burp Suite

Android喜歡PEM格式證書,并且文件名為subject_hash_old值并以.0結尾。

注意:如果你使用的OpenSSL <1.0,那么將是subject_hash,而不是“old”

使用openssl將DER轉換成PEM,然后輸出subject_hash_old并重命名該文件:

openssl x509 -inform DER -in cacert.der -out cacert.pem  
openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1  
mv cacert.pem <hash>.0

例如,我的證書:

如何在Android Nougat中正確配置Burp Suite

將證書復制到設備

我們可以使用adb來復制證書,但由于必須將其復制到/system文件系統,所以我們需要將它重新掛載為可寫。作為root用戶,adb remount非常簡單。

adb root  
adb remount  
adb push <cert>.0 /sdcard/

進入adb shell將文件移動到/system/etc/security/cacerts,并將文件權限修改為644:

mv /sdcard/<cert>.0 /system/etc/security/cacerts/  
chmod 644 /system/etc/security/cacerts/<cert>.0

最后,我們通過adb reboot命令重啟設備。

如何在Android Nougat中正確配置Burp Suite

重啟設備后,我們瀏覽到Settings -> Security -> Trusted Credentials應該能看到新的“Portswigger CA”已成為系統信任的CA。

如何在Android Nougat中正確配置Burp Suite

現在我們就可以設置代理并通過Burp來攔截所有的應用流量了:)

修改并重新打包應用程序

如果你沒有root權限或不想修改系統可信證書,則你也可以將Burp CA作為用戶證書安裝,然后通過修改特定的APK來實現MitM。

從Nougat開始,應用默認會忽略用戶安裝的證書。通過查看啟動應用時的logcat輸出信息可以驗證這一點:

如何在Android Nougat中正確配置Burp Suite

沒有網絡安全配置,該應用程序將只信任系統CA,并直接忽視用戶安裝的Burp證書。

想要解決這個問題,我們需要以下操作:

  • 拆解APK

  • 添加新的XML源來定義網絡安全配置文件

  • 修改AndroidManifest.xml

  • 重新打包并自簽名APK

拆解并修改APK

首先我們使用apktool來反匯編APK

apktool d TestApp.apk

如何在Android Nougat中正確配置Burp Suite

接下來,通過在res/xml目錄中創建文件network_security_config.xml來添加新的網絡安全配置:

vim TestApp\res\xml\network_security_config.xml

配置需要明確指出,用戶證書是可被接受和信任的。內容如下:

<network-security-config>  
    <base-config> 
        <trust-anchors> 
            <!-- Trust preinstalled CAs --> 
            <certificates src="system" /> 
            <!-- Additionally trust user added CAs --> 
            <certificates src="user" /> 
        </trust-anchors> 
    </base-config> 
</network-security-config>

最后,我們必須在AndroidManifest.xml中定義網絡安全配置。在<application>標簽中,添加指向新XML文件的android:networkSecurityConfig屬性:

<application android:allowBackup="true" android:networkSecurityConfig="@xml/network_security_config" ...etc...>

重新打包并自簽名APK

APK現在必須重建并簽名才能安裝。使用apktool b命令,將在dist/目錄中創建一個新的APK:

apktool b TestApp

為了自簽名應用程序,我們需要使用keytool來創建一個新的密鑰庫和密鑰,然后使用jarsigner簽名新的APK:

keytool -genkey -v -keystore test.keystore -storepass password -alias android -keypass password -keyalg RSA -keysize 2048 -validity 10000


jarsigner.exe -verbose -keystore test.keystore -storepass password -keypass password TestApp\dist\TestApp.apk android

如何在Android Nougat中正確配置Burp Suite

最后,使用adb來安裝新的APK:

adb install TestApp\dist\TestApp.apk

現在,當我們啟動應用程序時,logcat輸出將標示正在使用的新的網絡安全配置:

如何在Android Nougat中正確配置Burp Suite

cheatsheet

安裝系統CA

# Convert DER to PEM
openssl x509 -inform DER -in cacert.der -out cacert.pem

# Get subject_hash_old (or subject_hash if OpenSSL < 1.0)
openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1

# Rename cacert.pem to <hash>.0
mv cacert.pem 9a5ba575.0

# Remount and copy cert to device
adb root  
adb remount  
adb push 9a5ba575.0 /sdcard/  
adb shell  
vbox86p:/ # mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/  
vbox86p:/ # chmod 644 /system/etc/security/cacerts/9a5ba575.0  
vbox86p:/ # reboot

修改APK

apktool d TestApp.apk  
vim TestApp\res\xml\network_security_config.xml  
#Content:
        <network-security-config> 
        <base-config> 
        <trust-anchors> 
        <!-- Trust preinstalled CAs --> 
        <certificates src="system" /> 
        <!-- Additionally trust user added CAs --> 
        <certificates src="user" /> 
        </trust-anchors> 
        </base-config> 
        </network-security-config>

vim TestApp\AndroidManifest.xml  
# Add to <application > tag:
        android:networkSecurityConfig="@xml/network_security_config"

# Rebuild and self-sign
keytool -genkey -v -keystore test.keystore -storepass password -alias android -keypass password -keyalg RSA -keysize 2048 -validity 10000

apktool b TestApp

jarsigner -keystore test.keystore -storepass password -keypass password TestApp\dist\TestApp.apk android

# Install new APK
adb install TestApp\dist\TestApp.apk

# Install Burp CA to User Certs
mv cacert.der cacert.cer  
adb push burpca.cer /mnt/sdcard  
Settings -> Security -> Install from SD Card

上述就是小編為大家分享的如何在Android Nougat中正確配置Burp Suite了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

津市市| 岳池县| 晋州市| 墨竹工卡县| 岗巴县| 太仆寺旗| 谷城县| 通许县| 峨边| 峡江县| 乌鲁木齐县| 巧家县| 仁化县| 营口市| 星子县| 察哈| 资溪县| 舟曲县| 介休市| 铜梁县| 宜君县| 紫阳县| 读书| 奈曼旗| 广饶县| 乳山市| 信宜市| 通许县| 郴州市| 鱼台县| 洛南县| 昌乐县| 泗洪县| 大丰市| 卓资县| 南宁市| 鹤岗市| 武冈市| 黄浦区| 白河县| 苏尼特左旗|