APP與小程序—信息收集(信息收集的小程序)
1. 簡(jiǎn)介
??通常在一些企業(yè)中不單單存在WEB網(wǎng)站可能也會(huì)存在APP軟件與小程序等,這些都是為了更好的為用戶提供服務(wù),但同時(shí)也會(huì)存在很多安全問(wèn)題。
??目前APP應(yīng)用主要分為Android與iOS,但是由于蘋(píng)果的iOS操作系統(tǒng)不是開(kāi)源的,操作系統(tǒng)相較Android比較封閉,同時(shí)在對(duì)iOS系統(tǒng)進(jìn)行反編譯的時(shí)候會(huì)比較困難,所以一般對(duì)APP系統(tǒng)進(jìn)行滲透測(cè)試都是在Android中進(jìn)行測(cè)試。
1.1. APK介紹
??APK是Android的應(yīng)用程序包,當(dāng)然你說(shuō)它是安裝包也可以,主要就是用于分發(fā)與安全移動(dòng)應(yīng)用及中間件。
1.2. APP滲透測(cè)試介紹
??從本質(zhì)上來(lái)說(shuō)APP滲透測(cè)試與WEB滲透測(cè)試基本上是沒(méi)什么區(qū)別的,APP應(yīng)用其實(shí)就是將WEB網(wǎng)站集成到APP中,簡(jiǎn)單來(lái)說(shuō),你用電腦去訪問(wèn)一個(gè)頁(yè)面是"/index.php",如果這個(gè)頁(yè)面中存在相關(guān)的漏洞,那么你用手機(jī)去訪問(wèn)APP中這個(gè)頁(yè)面,那么也會(huì)存在相關(guān)的漏洞。由于,程序在開(kāi)發(fā)的時(shí)候使用的邏輯是一樣的,只是在封裝的時(shí)候,采用了不同的封裝方式,使其你在APP中看到的頁(yè)面仿佛和電腦上看到的WEB頁(yè)面有點(diǎn)差異,但是總歸邏輯上是一致的。
??當(dāng)然如果APP中使用的是http或者h(yuǎn)ttps協(xié)議,那么在抓包的時(shí)候和挖掘WEB漏洞一樣,都可以使用瀏覽器直接進(jìn)行訪問(wèn)進(jìn)行抓包,這樣就可以對(duì)APP進(jìn)行滲透測(cè)試了,但是也不排除一些APP使用的是其它協(xié)議,這時(shí)候就需要使用網(wǎng)絡(luò)接口來(lái)進(jìn)行抓包,對(duì)其內(nèi)容進(jìn)行獲取。
2. 搭建測(cè)試環(huán)境
??這里的搭建測(cè)試環(huán)境,其實(shí)就是搭建一個(gè)模擬器,讓APP應(yīng)用在模擬器上進(jìn)行運(yùn)行,然后對(duì)其進(jìn)行抓包。
2.1. Fiddler
??抓包工具其實(shí)也可以使用Burp,但是Burp在抓app包中,不是那么好用,所以這里使用fiddler來(lái)抓APP的包,后面的測(cè)試當(dāng)然可以在Burp中進(jìn)行測(cè)試。
2.1.1. 下載Fiddler
??這里比較推薦去官網(wǎng)下載Fiddler,而且也沒(méi)什么限制,所以推薦去官網(wǎng)下載。
??Fiddler下載鏈接:Download Fiddler Web Debugging Tool for Free by Telerik
??這里我用頁(yè)面翻譯了一下,前面的英文就是原來(lái)的意思,這些信息填完就可以下載了,這里建議使用一些小手段下載,不然可能會(huì)比較慢。
2.1.2. 安裝完成頁(yè)面
??這里安裝很簡(jiǎn)單,就不介紹了,主要看一下安裝完成的頁(yè)面吧。
2.1.3. 語(yǔ)言
??這里由于頁(yè)面是英文的,如果看起來(lái)不是太方便,可以使用漢化包進(jìn)行漢化,不過(guò)這個(gè)漢化和沒(méi)漢化基本上是一致的,子選項(xiàng)都是沒(méi)漢化的,至于如何使用可以看壓縮包中的使用教程。
??fiddler補(bǔ)丁包提取碼:vqj5
鏈接:https://pan.baidu.com/share/init?surl=c_nD9ynaoUAkzVoaaeHOqA&pwd=vqj5
2.2. 安裝模擬器
??我這里使用的是夜神模擬器,并且把版本調(diào)整到安卓7.0版本,下載安裝我就不說(shuō)了,同時(shí)官網(wǎng)連接我也不放了,這個(gè)官網(wǎng)應(yīng)該都能找到。
2.2.1. 調(diào)整版本
??默認(rèn)下載下來(lái)可能都是比較高的版本,這里我調(diào)整一下版本,打開(kāi)夜神模擬器助手,這個(gè)是連同模擬器是默認(rèn)一起安裝的,點(diǎn)擊右下角添加模擬器》選擇Android7.0(至于位數(shù)隨便)點(diǎn)擊完就會(huì)自動(dòng)下載與安裝,然后開(kāi)機(jī)即可。
2.2.2. 調(diào)整頁(yè)面
??剛下載下來(lái)的模擬器是平板模式,建議調(diào)成手機(jī)模式。
2.2.3. 調(diào)整網(wǎng)絡(luò)
??這里的調(diào)整網(wǎng)絡(luò)是不要設(shè)置成網(wǎng)橋模式,這里一定不要調(diào)成網(wǎng)橋模式,包括后面如果調(diào)試完網(wǎng)絡(luò)不通,請(qǐng)排查一下是否調(diào)整為網(wǎng)橋模式了。
3. 安裝證書(shū)
??這里安全證書(shū)的原因的是由于在抓包過(guò)程中可能會(huì)產(chǎn)生https這類(lèi)協(xié)議,而這類(lèi)數(shù)據(jù)包需要使用到證書(shū)來(lái)進(jìn)行許可。
??但是設(shè)備是android 7.0 的系統(tǒng)同時(shí)應(yīng)用設(shè)置targetSdkVersion >= 24的話,那么應(yīng)用默認(rèn)是不信任安裝的Fiddler用戶證書(shū)的,所以你就沒(méi)法抓到應(yīng)用發(fā)起的https請(qǐng)求,然后你在Fiddler就會(huì)看到一堆200 HTTP Tunnel to xxx.xxx.xxx:443的請(qǐng)求日志,這些都是沒(méi)有成功抓取的https請(qǐng)求。
??下面的辦法就是將Fiddler證書(shū)裝到系統(tǒng)證書(shū)目錄下,偽裝成系統(tǒng)證書(shū),那么就不存在因?yàn)閒iddler證書(shū)不被信任而無(wú)法抓包的問(wèn)題了。
3.1. FiddlercertMaker工具下載
??fiddlercertMaker是Bouncy Castle證書(shū)生成器,因?yàn)樾掳姹镜腁ndroid拒絕超過(guò)兩年有效期的證書(shū),雙擊下載好的fiddlercertmaker.exe(確保已關(guān)閉Fiddler),會(huì)彈出提示導(dǎo)入證書(shū)成功這個(gè)對(duì)話框如果彈出的內(nèi)容是什么版本不對(duì),請(qǐng)下載最新的版本。
fiddlercertMaker下載鏈接:
http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
3.1.1. Fiddler設(shè)置
??這里點(diǎn)擊>tools>options>https>該勾選勾選,出現(xiàn)彈窗選擇yes,在https旁邊的connections中是設(shè)置端口的,默認(rèn)是8888,如果不修改就這樣吧。
3.1.2. 導(dǎo)出證書(shū)
??點(diǎn)擊Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop,導(dǎo)出后在桌面上就能夠看到一個(gè)證書(shū),屆時(shí)我們就需要使用到這個(gè)證書(shū)。
3.2. 下載Window版openssl
??下拉到下面,選擇最上面的64位EXE點(diǎn)擊下載安裝即可。
??openssl下載: Win32/Win64 OpenSSL Installer for Windows – Shining Light Productions
3.2.1. 添加環(huán)境變量
??這里需要在cmd中執(zhí)行,所以需要添加一個(gè)環(huán)境變量。
3.2.2. 執(zhí)行命令
??這里在cmd中中心openssl如果有返回信息,那么就證明操作成功了。
3.3. 證書(shū)格式轉(zhuǎn)換與重命名
3.3.1. 轉(zhuǎn)換為pem證書(shū)
??將Fiddler cer證書(shū)轉(zhuǎn)pem證書(shū),在cmd輸入如下命令進(jìn)行轉(zhuǎn)換:
openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.pem
3.3.2. 查看MD5
??從下面可以看到,咱們生成Fiddler證書(shū)的hash值是e5c3944b
openssl x509 -inform PEM -subject_hash_old -in 證書(shū).pem
3.3.3. 重命名pem證書(shū)
??在桌面上就能夠看到一個(gè)e5c3944b.0的證書(shū)。
ren FiddlerRoot.pem e5c3944b.0
3.4. 上傳證書(shū)
??這里就需要將證書(shū)上傳至模擬器中,這里準(zhǔn)備一臺(tái)Android7.0的模擬器。
3.4.1. 傳輸證書(shū)
??點(diǎn)擊夜神模擬器側(cè)邊欄的電腦圖標(biāo),選擇打開(kāi)電腦文件夾,會(huì)跳轉(zhuǎn)打開(kāi)電腦的目錄C:UsersAdministratorNox_share,將轉(zhuǎn)換好的Fiddler證書(shū)e5c3944b.0復(fù)制到ImageShare目錄下即可
3.4.2. 移動(dòng)證書(shū)
??下載MT管理器,拖拉到模擬器中安裝完成,點(diǎn)擊打開(kāi)應(yīng)用,左邊打開(kāi)Pictures目錄就可以看到剛才電腦ImageShare目錄的Fiddler證書(shū)e5c3944b.0
??這里下載完MT管理器將APK文件上傳到模擬器中即可。
3.4.3. 轉(zhuǎn)移目錄
??右邊點(diǎn)擊進(jìn)入到system/etc/security/cacerts目錄,然后長(zhǎng)按左邊的e5c3944b.0文件,點(diǎn)擊復(fù)制即可復(fù)制到右邊打開(kāi)的目錄那里。
3.4.4. 添加權(quán)限
??你會(huì)發(fā)現(xiàn)跟其他已有的系統(tǒng)證書(shū)相比,e5c3944b.0根本就沒(méi)有讀的權(quán)限,到時(shí)你到信任的憑據(jù)也是沒(méi)法找到這個(gè)Fiddler證書(shū)的,點(diǎn)擊MT管理器的左上角,找到打開(kāi)終端
??進(jìn)入到終端之后,輸入以下命令將e5c3944b.0文件設(shè)置為可讀即可。
??再看看system/etc/security/cacerts目錄下e5c3944b.0文件的權(quán)限,發(fā)現(xiàn)確實(shí)有讀權(quán)限了
3.4.5. 查找證書(shū)
??點(diǎn)擊模擬器的設(shè)置 -> 安全 -> 信任的憑據(jù) -> 系統(tǒng),往下拉終于看到咱們的Fiddler證書(shū),嘗試一下抓包也是沒(méi)問(wèn)題了。
3.5. 模擬器代理設(shè)置
??這里設(shè)置完代理就可以進(jìn)行抓包了。
3.5.1. 設(shè)置網(wǎng)絡(luò)
??設(shè)置->WLAN->長(zhǎng)按網(wǎng)絡(luò)->修改網(wǎng)絡(luò)->保存,這里的代理IP需要寫(xiě)入電腦的IP地址,端口就是fd的設(shè)置端口,默認(rèn)為8888,當(dāng)設(shè)置完后,會(huì)發(fā)現(xiàn)無(wú)法上網(wǎng),那么這里就需要將將Fiddler重啟,一般重啟就好了,再不行重啟電腦也能解決。
3.5.2. 抓包測(cè)試
??這里我在夜神模擬器中的游戲中心打開(kāi)一個(gè)游戲下載頁(yè)面,可以看到成功獲取到頁(yè)面中的圖片信息,并且也是https的理流量,同時(shí)也能夠獲取到http的流量。
4. APP應(yīng)用信息收集
??在正常的WEB滲透測(cè)試過(guò)程中第一步就是對(duì)網(wǎng)站進(jìn)行信息收集,那么在APP滲透測(cè)試中同樣第一步也是信息收集,只不過(guò)APP的信息收集相較于WEB信息收集有點(diǎn)不同,由于APP都是封裝起來(lái)的,所以需要對(duì)apk文件進(jìn)行反編譯或者在訪問(wèn)APP的時(shí)候進(jìn)行抓包來(lái)獲取訪問(wèn)的域名、端口、參數(shù)等信息。
4.1. AppInfoScanner項(xiàng)目
??AppInfoScanner是一款適用于以HW行動(dòng)/紅隊(duì)/滲透測(cè)試團(tuán)隊(duì)為場(chǎng)景的移動(dòng)端(Android、iOS、WEB、H5、靜態(tài)網(wǎng)站)信息收集掃描工具,可以幫助滲透測(cè)試工程師、攻擊隊(duì)成員、紅隊(duì)成員快速收集到移動(dòng)端或者靜態(tài)WEB站點(diǎn)中關(guān)鍵的資產(chǎn)信息并提供基本的信息輸出,如:Title、Domain、CDN、指紋信息、狀態(tài)信息等。
??AppInfoScanner項(xiàng)目:https://gitcode.com/kelvinben/appinfoscanner?utm_source=csdn_github_accelerator&isLogin=1
4.1.1. AppInfoScanner依賴(lài)庫(kù)
??這里首先將文件下載下來(lái),這里的下載我就不演示了,下載完畢后,需要先下載一下依賴(lài)庫(kù),我這里的截圖是已經(jīng)安裝完成的提示,顯示是已滿足要求。
python -m pip install -r requirements.txt
4.1.2. AppInfoScanner使用
??這里我隨便找了一個(gè)apk文件,注意哦,最好不要拿大廠的APP軟件來(lái)進(jìn)行測(cè)試,最好找一些非法的,我這里使用的就是某妃…
??從獲取到的信息中就能夠提權(quán)到相關(guān)的URL地址,可以拿這些URL地址進(jìn)行測(cè)試。
??同時(shí)一般大廠制作的APK程序可能都會(huì)加殼,小廠商就不一定了,加殼主要作用就是防止別人隨意修改APK文件,或者進(jìn)行破解等,避免別人亂搞。
python app.py android -i <Your apk file>
4.1.3. 驗(yàn)證URL
??這里有點(diǎn)尷尬的是,某妃好像不提供服務(wù)了,所以網(wǎng)站都已經(jīng)關(guān)閉了,不過(guò)還是找到一些內(nèi)容,看到這些線路,相比應(yīng)該都懂是什么了吧。
4.1.4. 總結(jié)
??通過(guò)這個(gè)工具能夠在不抓包的情況,通過(guò)APK文件獲取到應(yīng)用包中會(huì)訪問(wèn)的網(wǎng)站地址,URL地址,通過(guò)這些地址在進(jìn)行深層次的滲透測(cè)試。
??當(dāng)然拉也可以用上面提到的FIddler進(jìn)行抓包獲取這些域名,但是需要一個(gè)一個(gè)項(xiàng)目去點(diǎn)擊才能夠?qū)崿F(xiàn),但是所有工具不是百分比都吧包內(nèi)的數(shù)據(jù)獲取全的。
4.2. APK反編譯
??關(guān)于反編譯方面使用到的軟件及工具其實(shí)也很多,但是很多都不更新了,例如Android killer、安卓修改大師等等。
??安卓修改大師好像是復(fù)活了,但是要求呀,而且網(wǎng)上雖然要很多破解版,但是我測(cè)試了好多,都無(wú)法激活成功,同時(shí)在之前安卓修改大師疑似存在供應(yīng)鏈病毒感染,可能最新版的已經(jīng)解決了,但是沒(méi)有最新版的破解,好多都是掛羊頭賣(mài)狗肉,說(shuō)是10 的版本,但是下載后都是8 的版本,同時(shí)下載后,軟件就開(kāi)始調(diào)用cmd,這也是比較疑惑了,運(yùn)行起來(lái)調(diào)用也就罷了,都沒(méi)打開(kāi)就開(kāi)始調(diào)用,所以我也就沒(méi)有使用。
??Android killer是2020.9月就不更新了,本次也還是拿這個(gè)來(lái)演示吧,主要是介紹一下反編譯獲取到的內(nèi)容,不一定就非要用這個(gè),比較不是專(zhuān)業(yè)搞破解的。
??當(dāng)然網(wǎng)上還是有很多APP反編譯的工具的,這里我就不介紹了,可以自行百度搜索。
4.2.1. Android killer下載
??Android killer:https://gitcode.com/liaojack8/androidkiller?utm_source=csdn_github_accelerator&isLogin=1
4.2.2. 基礎(chǔ)配置步驟
??在下載好的Android killer,需要進(jìn)行一些配置才能夠使用。
4.2.2.1. 配置java
??第一次打開(kāi)會(huì)顯示配置java SDK環(huán)境,暫時(shí)不用管他。
??進(jìn)來(lái)后,是英文的,這時(shí)候點(diǎn)擊配置在常規(guī)中能夠看到調(diào)整語(yǔ)言的選項(xiàng),調(diào)整后重啟即可,這里配置java,最好是1.8的java。
4.2.2.2. 更新替換APKtool
??這里需要先更新一下Apktool,直接去官網(wǎng)下載最新的然后替換即可。
??Apktool下載:Apktool | Apktool
??這里可以看到在根目錄下有一個(gè)bin>apktool>apktool就能夠看到一個(gè)apktool_2.4.1,用最新的替換它,我這里下載后最新的是2.7.0版本的。
4.2.2.3. 修改相關(guān)信息
??修改AndroidKiller根目錄下的bin>apktool下的apktool.bat和apktool.ini文件。
??修改apktool.bat,替換里面的原先的apktool_2.4.1.jar,替換后為apktool_2.7.0.jar。
??這個(gè)也是同理。
4.2.2.4. 修改APKtool
??這里修改上面后,測(cè)試并不行,需要在這個(gè)管理器中添加一下才可以,不然會(huì)報(bào)錯(cuò)。
4.2.3. 使用
??很詳細(xì)的反編譯我也不是太懂,我們需要的只是獲取APP中相關(guān)信息,主要其實(shí)就是一些IP把頁(yè)面轉(zhuǎn)換為web界面來(lái)進(jìn)行滲透測(cè)試而已。
4.2.3.1. 工程搜索
??直接將下載下來(lái)的APK文件拖入進(jìn)去分析即可,然后在工程搜索就可以找http://或者h(yuǎn)ttps://開(kāi)頭的地址了。
4.2.3.2. 工程管理器
??在工程管理器這里也可以看到很多頁(yè)面,可以點(diǎn)擊進(jìn)去看看,比如這里就看到了很多的IP地址等。
4.2.4. 加殼
??在一些大公司開(kāi)發(fā)的APP中基本上都會(huì)加殼,就是為了避免被破解或者反編譯,如果加殼了,那么就需要進(jìn)行脫殼,當(dāng)然也有很多一鍵脫殼的,但是可能會(huì)存在一些問(wèn)題,這些就沒(méi)辦法了,只是提供一個(gè)思路。
??當(dāng)然這里也可以直接使用一些查加殼的工具,有殼如果你是授權(quán)的,其實(shí)可以直接找人家測(cè)試,如果非授權(quán)的,并且不是太懂APP開(kāi)發(fā)的這些,就…
4.3. Fiddler信息收集
??關(guān)于這個(gè)fiddler信息收集,其實(shí)就是抓包,直接看效果吧。
??不過(guò)這里還是需要在提一嘴,我發(fā)現(xiàn)模擬器關(guān)閉后,再重啟發(fā)現(xiàn)Fiddler無(wú)法抓包了,直接就獲取不到數(shù)據(jù)了,后來(lái)我排查了一下是我再宿舍的網(wǎng)和辦公室的網(wǎng)絡(luò)的IP是不一樣的,替換后重啟依舊無(wú)效,后來(lái)又把模擬器關(guān)閉代理讓其能夠上網(wǎng),然后再去設(shè)置代理,同時(shí)候又重啟Fiddler才行,所以在Android7.0以上抓包還是比較麻煩的,同時(shí)問(wèn)題也多,但是有沒(méi)辦法。
4.3.1. 獲取數(shù)據(jù)
??這是我測(cè)試某妃的時(shí)候打開(kāi)獲取到的數(shù)據(jù),其實(shí)能夠看到php的版本、IP地址、URL等信息,這些都足以用來(lái)進(jìn)行滲透了。
4.3.2. IP地址利用
??這里獲取到IP地址了,那么是不是可以利用這個(gè)IP地址進(jìn)行滲透測(cè)試呢,可以利用一些在線端口掃描等進(jìn)行測(cè)試。
4.4. 封包監(jiān)聽(tīng)
??在部分情況下可以不同設(shè)置代理就可以監(jiān)聽(tīng)訪問(wèn)的地址與端口,類(lèi)似于本地使用火絨劍,這里工具一樣,我這里使用的夜神模擬器,但是一打開(kāi)封包監(jiān)聽(tīng),工具就自動(dòng)退出,可能是不能使用吧,雷神模擬器好像能用。
??這里我放工具的鏈接,里面也有相關(guān)的教程。
4.5. APK資源提取
??在某些情況下可能獲取不到APK文件的提取,那么就需要使用到APK資源提取工具,這里網(wǎng)上工具很多,我這里就截個(gè)圖,但是好用的APK資源提取暫時(shí)沒(méi)有看到,所以就不提供了,這里看一下效果吧。
4.5.1. 提取
??這里就是將獲取不到的APK文件,打包一下,打包完就可以獲取了。
4.5.2. 查看資源
??這里其實(shí)可以通過(guò)解壓縮方式將APK文件進(jìn)行解壓出來(lái),解壓出來(lái)后就能夠看到相關(guān)的APK資源了。
5. 小程序抓包
??在小程序抓包這里,其實(shí)有點(diǎn)麻煩哦,由于微信問(wèn)題,有些情況下是抓不到包的,同時(shí)默認(rèn)情況下Fiddler抓到的包都是http的,如果想要抓到https的就需要將證書(shū)安裝在默認(rèn)瀏覽器中。
5.1. 安裝證書(shū)
??這里安裝證書(shū)一定要在控制面板中打開(kāi)internet選擇進(jìn)行安裝證書(shū),同時(shí)在安裝的時(shí)候一定要選擇受信任的根證書(shū)頒發(fā)機(jī)構(gòu),這樣安裝的證書(shū)才有效果。
5.2. 抓包測(cè)試
??這里安裝好證書(shū)后,就可以進(jìn)行抓包測(cè)試了,至于信息收集,我這里就不贅述了,和APP的信息收集方式是一樣的。