人,是網路安全全流程中最大的弱點。針對人的攻擊往往有出奇不意的效果。而想要利用人的弱點進行攻擊,那麼對目標的資訊收集與瞭解就是非常重要的了。這篇文章記錄了一些常用的用於對人進行身份資訊收集的技術。這些技術常被用於溯源取證、社工攻擊。
0x00 社工分析中的身份資訊收集
關於人的社工分析有很多維度的資訊都值得被關注。但不管怎樣,開展身份資訊社工工作往往都是從一些關於人的最基本的資訊開始的,身份資訊的收集過程就是儘可能使用有限資訊關聯出其他資訊的過程。
這裡,將關於人的資訊,簡單分為兩大類。
第一類,基本資訊。如:姓名,暱稱,手機號碼,郵箱地址,各類證件,社交賬號。這類資訊能在溯源中幫助確定人的身份。是人在進行社交過程中不可避免使用的資訊,用來在社會中表明他的身份,是在社會中生活的名片。
第二類,其他資訊。如:居住地、愛好、家庭狀況、婚姻狀態、職業。這類資訊能幫助我們更好的瞭解一個人的生活習慣與生活狀態,代表人的特點。在生成定製化的社工字典時很有用。
下面介紹常用到的資訊收集方法。
1 搜尋引擎關鍵字檢索
最傻但往往最有效的辦法,就是關鍵字搜尋。但想要達到比較好的效果,依賴不少條件:
1.關鍵字不能過於過於大眾化,可以選擇多個與目標相關的關鍵字組合;
2.目標必須在網際網路上有一定的活躍度;
3.儘量使用google、duckduckgo等國外搜尋引擎。他們的遮蔽的網頁與結果較少。
2 已註冊網站查詢
網際網路上存在一類網站,這類網站旨在收集並儲存使用者的各種活動資訊用以構建使用者畫像,或收集歷次資訊洩露事件中的資料庫。這裡先不討論此類網站動機如何,是否真實有效,但一定程度上也給其他人提供了獲得目標更多資訊的方式。透過泛社工庫查詢,可以獲得目標註冊過的社交網站、甚至舊密碼。
2.1 REG007
查詢郵箱、手機號註冊過哪些社交平臺:www.reg007.com
2.2 手工查詢
使用個網站的註冊功能輸入目標的郵箱地址或手機號,檢視頁面是否提示該郵箱、手機號被佔用。
3 社工庫查詢
搭建社工庫洩露使用者隱私資料是犯法的。公網上很難找到,提供洩露資料細節的社工庫,如果真的有,那麼其動機也是值得高度懷疑的,使用時輸入的資訊極有可能被記錄,用於溯源與黑吃黑。比較多的是一類脫敏後的網站,幫助使用者查詢自己的資訊是否洩露。這兩種方式都能幫助判斷目標是否註冊了某平臺的賬號。
3.1 洩露檢查查詢
網站名 | 地址 | 可查詢項 |
---|---|---|
Firefox Monitor | https://monitor.firefox.com | 郵箱 |
HaveIBeenPwned | https://haveibeenpwned.com | 郵箱 |
Aleph | https://aleph.occrp.org/ | 名稱、手機號碼、郵箱 |
snusbase | https://snusbase.com/ | 郵箱、名稱、IP、電話、雜湊、密碼 |
checkusernames | https://checkusernames.com/ | 名稱 |
Intelligence X | https://intelx.io/ | 郵箱、IP、CIDR、比特幣地址 |
dehashed | http://www.dehashed.com/ | 郵箱、使用者名稱、IP |
IsLeaked | https://isleaked.com/ | 郵箱 |
KnowEm | https://knowem.com/ | 名稱 |
3.2 社工庫查詢
4 姓名確認術
4.1 透過手機號確定姓名
1> 支付寶
當手機號繫結了支付寶且完成了實名認證時,透過支付寶轉賬功能可以查到對方的姓名。
如果對方的姓名只有兩個字,只需手工猜出姓即可。
如果對方的姓名多於兩個字,可以知道最後一個名,並透過列舉姓的方式確定到姓。
透過以上的方式,能保證在未實際轉賬的情況下獲得姓名中的絕大部分。如果使用支付寶使用工商銀行/網商銀行進行轉賬,且轉賬成功,那麼在銀行app的查詢明細中能看到姓名全稱。
ps: 微信的“銀行卡或手機號轉賬”也有相同的效果,但是開通微信手機號轉賬的人很少。
2> 釘釘
如果目標使用過釘釘,可以使用在釘釘內使用手機號搜尋,可以直接查出使用者名稱。
3> 社工庫
4.2 百家姓頻數表
鑑於有時需要用到姓名猜測,有一個關於姓的頻數統計表還是蠻有作用的,能幫我們從高頻到低頻儘快的猜到正確的姓。
李 王 張 劉 陳 楊 趙 黃 周 吳 徐 孫 胡 朱 高 林 何 郭 馬 羅 梁 宋 鄭 謝 韓 唐 馮 於 董 蕭 程 曹 袁 鄧 許 傅 沈 曾 彭 呂 蘇 盧 蔣 蔡 賈 丁 魏 薛 葉 閻 餘 潘 杜 戴 夏 鍾 汪 田 任 姜 範 方 石 姚 譚 廖 鄒 熊 金 陸 郝 孔 白 崔 康 毛 邱 秦 江 史 顧 侯 邵 孟 龍 萬 段 漕 錢 湯 尹 黎 易 常 武 喬 賀 賴 龔 文 龐 樊 蘭 殷 施 陶 洪 翟 安 顏 倪 嚴 牛 溫 蘆 季 俞 章 魯 葛 伍 韋 申 尤 畢 聶 叢 焦 向 柳 邢 路 嶽 齊 沿 梅 莫 莊 辛 管 祝 左 塗 谷 祁 時 舒 耿 牟 卜 路 詹 關 苗 凌 費 紀 靳 盛 童 歐 甄 項 曲 成 遊 陽 裴 席 衛 查 屈 鮑 位 覃 霍 翁 隋 植 甘 景 薄 單 包 司 柏 寧 柯 阮 桂 閔 歐陽 解 強 柴 華 車 冉 房 邊 滕 晉 苑 鄔 臧 暢 宮 來 苟 全 褚 廉 簡 婁 蓋 符 奚 木 穆 黨 燕 郎 邸 冀 談 姬 屠 連 郜 晏 欒 鬱 商 蒙 計 喻 揭 竇 遲 宇 敖 糜 鄢 冷 卓 花 仇 艾 藍 都 鞏 稽 井 練 仲 樂 虞 卞 封 竺 冼 原 官 衣 楚 佟 慄 匡 宗 應 臺 巫 鞠 僧 桑 荊 諶 銀 揚
5 社交賬號社工術
5.1 微信、支付寶
微信、支付寶直接在新增好友處搜手機號
5.2 QQ、快手、抖音、百度雲網盤、京東、脈脈、網易雲、微博
將手機號存入通訊錄,然後在以下社交賬號內開啟通訊錄同步,點新增/發現好友,獲得對方社交賬號。(需要開啟應用訪問通訊錄許可權)
5.3 搜尋引擎關鍵詞查詢
在google、duckduckgo上搜尋手機號
5.4 社工庫
6 位置資訊
6.1 時區
透過人的社交時間、語言、分享動態推斷目標大致所在的時區。
6.2 精確位置
屌絲級:各類帶有地理位置後設資料的檔案、keep、行者、朋友圈分享的位置記錄
駭客級:欺騙使用者安裝能夠實時獲取GPS座標的APP、誘導使用者點選獲取位置的連結
政府級:利用小區基站實現定位、利用信令漏洞定位
6.3 透過IP查地理位置
IP地理位置查詢:https://qifu.baidu.com/?activeKey=SEARCH_IP
IP地址定位:https://www.ipuu.net
7 郵箱資訊收集
顯然的,騰訊系的郵箱基本都是以數字打頭的,暴露了QQ號。
部分網易126,163郵箱以手機號命名,暴露了手機號。
部分郵箱以名稱+數字命名,暴露了姓名。
7.1 收方回溯發方地址
檢視郵件信件程式碼,標頭內可以看到傳送者的地址資訊。
如果郵件表頭內含有"X-Originating-IP:"的key值,value值即為傳送者的IP。比較常見的QQ郵箱、126郵箱,都有本欄位。
如果沒有該欄位,可以考慮標頭內的Received欄位。(多個Received欄位時考慮最底部的,不一定有,有也不一定準)
7.2 發方寫郵件探針
原理是透過在郵件內容中嵌入動態載入的外部圖片,當收信人點開郵件時就會在圖片伺服器上留下IP。
具體方式是以原始碼或文字模式寫一封郵件,在郵件正文中嵌入圖片html格式的圖片連結。可以將圖片自身的大小設的非常小,且將img欄位設為不可見。這樣攻擊者開啟郵件也無法感知。
<img src="http://n.sinaimg.cn/sinacn04/787/w440h347/20180725/5fc6-hftenia0102640.jpg" w="440" h="347" wh="1.27" alt="一組萌萌噠小貓咪表情包">
8 脫敏恢復
8.1 身份證號脫敏恢復
身份證號是的編排是有一定規律可循的。除了最後1位是校驗位外,其餘各位與出生地、出生日期、性別、出生編號繫系相關,因此即使是經脫敏處理的身份證號,仍能透過程式分析的方式過濾出可能的身份證序列組合。
這裡寫了一個脫敏身份證恢復工具,支援對身份證後4、6位及身份證內生日的爆破。
8.2 手機號脫敏恢復
介紹怎麼儘可能的恢復手機號的所有位數,但在此之前需要一定的知識介紹。
手機號碼的11位是有規律可循的。
1-3位 | 4-7位 | 8-11位 |
---|---|---|
移動接入碼 | 地區編碼 | 使用者號碼 |
移動接入碼
運營商型別 | 移動接入碼 |
---|---|
電信 | 133 149 153 173 174 177 180 181 189 191 199 |
聯通 | 130 131 132 145 146 155 156 166 167 171 175 176 185 186 |
移動 | 134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 195 198 |
虛擬運營商 | 162 165 167 170 171 |
移動接入碼是由運營商去向工信部申請,由工信部統一頒發的,每頒發一次,都會釋出一個《電信網號碼資源使用證書》。透過下載歷年的證書我們能獲得不同號段的分配說明。這裡有個問題,國家這些年一直在推攜號轉網,初衷是幫助使用者能夠自主切換號碼的運營商,如果真的全面推展開,且大家的使用積極性很高的化,那移動接入碼就不再能準確區分手機號碼是哪家運營商的了,但從目前的結果來看,透過移動接入碼來判斷運營商歸屬仍然是一個高度有效的方法。
地區編碼
地區編碼的具體數值分配由各運營商管理,因此很難給出一個通用的結構組成。所幸,網上有人專門透過爬蟲等方式收集了運營商的地區編碼資料庫。如下所示:
https://github.com/dannyhu926/phone_location
8.2.1 已知目標手機號前3後4位+城市
使用下面這個shell命令簡單分析以下,可以發現,如果移動接入碼固定的情況下,一個城市的前7位(移動接入碼+地區編碼)的可能性不超過5000,更普遍的情況下是可以控制在500以內的。
array=( 134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 195 198 130 131 132 145 146 155 156 166 167 171 175 176 185 186 133 149 153 173 174 177 180 181 189 191 199 )
for i in ${array[@]}; do cat phone_location.sql |grep "'$i'"|awk '{print $8}'|sort -nr | uniq -c|sort -nr|head -n 1; done
因此,這時,如果已知手機號前3後4位時,如果知道目標所處的位置將能極大的縮小目標號碼的可能範圍。結果的可能數<=5000。
8.2.2 已知目標手機號後4位+城市
使用下面的shell命令簡單分析一下,可以發現,如果只知道目標所處的城市,那麼前7位的可能性不超過20000。
clear;cat phone_location.sql |awk '{print $8}'|sort -nr|uniq -c |sort -nr|head -n 10
因此,總的來說這種情況下需要遍歷的手機號可能不超過20000。
8.2.3 已知後4位
如果只知道後4位別的一概不知,則要嘗試482049次,才能保證遍歷到正確的目標號碼。
clear;cat phone_location.sql |grep "INSERT"|grep "phone_location"|wc -l
9 其他
圍繞得到的基本資訊,可以在社交帳號內進行進一步的資訊挖掘,獲得其他資訊。
9.1 字典定製化
理想情況下的一個人的網際網路賬戶都要滿足登入密碼需要滿足長度、複雜度、無意義、唯一性的要求,但實際操作起來這是幾乎不可能的。
實際場景下對口令的選取往往圍繞使用者自身及周邊的特點展開。如果資訊收集的足夠徹底,我們可以依據以下的資訊,生成關鍵詞根,透過詞根間的組合填充,進而生成定製化字典。
{
"人":{
"拼音全稱1":"chuanjianguo",
"拼音全稱2":"ChuanJianguo",
"拼音簡寫1":"CJg",
"拼音簡寫2":"cjg",
"拼音全稱3":"jianguo"
},
"生日":{
"生日全部1":"20210512",
"生日部分":"0512"
},
"電話": {
"手機號後6位":"123456",
"手機號後4位":"3456"
},
"學校":{
"學號":"123456",
"畢業或入學年份":"2021"
},
"sfz":{
"sfz後6位":"654321",
"sfz後4位":"4321"
},
"愛好/寵物":{
"關鍵字":"xiuer"
},
"公司":{
"name1":"Google",
"name2":"GG"
},
"其他":{
"通用詞綴":"略"
}
}
9.2 口令雜湊逆向查詢
線上密文密碼查詢網站,有時能幫助我們得到明文密碼。
https://cmd5.com/
9.3 圖片搜尋
百度識圖:https://image.baidu.com/?fr=shitu
谷歌識圖:https://images.google.com/