<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      甲方利用開源工具進行釣魚演練

      ?

      演練前準備工作

      釣魚演練需求背景

      目前肉眼可見的甲方兩大安全工作KPI,一類是政策合規數據合規,第二類是應對各種大型攻防演練檢測。在攻防演練中大家常用的方法就是釣魚(懂的都懂)。針對這個背景下,甲方釣魚演練就順理成章了。隨著大型攻防演練常態化的實施,我們認為演練+安全意識培訓相結合的方式是比較理想的。 下文就是釣魚演練中遇到的問題與思考,結合大師傅們的開源軟件整理一篇”利用開源軟件進行甲方釣魚演練“,這里著重寫甲方是因為站在甲方的角度去實施(非攻擊場景),著重寫的是甲方的工作流程,開源工具選型的經驗,希望能夠幫助有類似需求的小伙伴快速按照本文流程部署,盡量讓大家看文即可快速的搭建一套釣魚演練的實施方案。

       

      協同資源

      人的資源

      領導溝通確認 (申請免死金牌),內容大體是介紹釣魚演練的收益,實施過程,結果處置(演練后的培訓)征求意見。

      數據資源

      數據資源協調,立項后內部協調數據資源這里指參與演練人員部門的郵箱地址,定義好輸出數據的格式,必要以郵件的形式溝通。并強調保密性。

      合作共贏

      演練最終目的是安全意識摸底與培訓,公司內部學習平臺(HR部門)協商組織公司或者部門級別的安全意識培訓課程,方便在釣魚演練后有連貫性的學習,加深印象。

      規劃演練

      釣魚人員的選擇范圍

      1. 確認演練人員范圍。篩選主要考慮以下幾個方面,按職能分,產研團隊、數據團隊、客服、銷售團隊。甲方要深入了解演練的受眾群體,比如手握大量服務器、產品后臺權限的產研團隊。再比如手里有大量訂單或用戶信息的客服團隊。 不同的團隊使用的劇本不同,他們的工作系統環境也不同,是否使用郵件作為溝通軟件,郵件回復收發快與慢等,是否有一些特殊的聊天軟件來對外溝通等。 可以在準備劇本前推演出釣魚流程來設計規劃人員范圍。
      2. 排除非必要參演人員。這里要注意要去除一些敏感人員,如一些級別比較高的領導或者財務部門等敏感部門,畢竟如果領導也被釣魚就會很尷尬。

      釣魚的方式選擇

      1. 憑證類釣魚方式選擇的初衷
        • 通過釣魚獲取賬號憑證。我們要哪些登錄權限,釣到的賬號密碼外網是否可用?模擬外部攻擊場景,如果克隆頁面外部不能訪問就容易被業務挑戰。確保獲取內部登錄頁面信息的合理性,證明通過釣魚得到的賬號密碼可以被進一步利用,證明危害性。 甲方優勢是知道資產中的賬號關聯哪些敏感重要的系統和信息,賬號是否被二次認證導致無法使用等各種內部信息。這里也有部分好處推動相關的賬號平臺增加多因子驗證。
        • 甲方的優勢就是知道自己公司的習慣和使用細節,體現在,公司用的郵箱系統,公司員工的個人電腦配置是什么樣的操作系統如研發是mac,其他業務線是windows,具體到系統版本,殺軟等特性。
        • 檢測業務同事是否有意識將釣魚郵件事件通過正確的渠道反饋給安全部門。
      2. 木馬釣魚方式與憑證類釣魚區別
        • 木馬釣魚的初衷是獲取個人電腦信息和建立據點橫向拓展,此時就將的演練的初衷變成與辦公網的殺毒軟件、流量審計、防守方的發現處置能力對抗,非特殊情況不采取該方式演練。
        • 木馬釣魚更接近于紅藍對抗場景,對用戶的侵入性較大,不適宜大面積演練使用,控制不好會容易導致業務的反感。
        • 本次演練選擇獲取賬號憑證,批量發送郵件方式釣魚。

      實施釣魚階段

      實施過程需要的3個步驟

      1. 話術劇本
      2. 克隆頁面制作與部署
      3. 批量發送郵件

      話術與劇本 ,人,事,物,時間

      1. 第一原則禁止損害國家個人利益,內容不可以是政治、疫情、輿情、緋聞相關的釣魚內容。
      2. 角色扮演者 ,誰發起的一項活動,這個角色有一定的合理性。舉例HR、行政、企業IT,幾乎會和每一名員工有工作交集。
      3. 事件合理性,發起這個郵件的互動一定遵循看似合理性,習慣性。合理性就是我因為看到郵件,所以我要點擊這個鏈接參活動。這里就要充分利用甲方的優勢做信息收集加以轉換。如常見的公司通知是什么樣的?對比外部攻擊就要更關注郵件泄露或者是發送來往郵件觀察郵件習慣了。
      4. 驅動受害者的動作,利誘或者威逼來使其來執行你想要讓其做的事情,如點擊一個頁面,跳轉到登錄頁,輸入賬號密碼。
      5. 時間因素, 給人制造焦慮和壓迫感的共性就是時間,所以在時間因素前提下人會失去一些識別錯誤的能力。
      6. 舉個栗子,參考上述模塊化制作一個劇本,HR部門(HR角色)征集回家過節禮品選擇(合理事件+合理時間),在xxx日xxx時前完成(時間,制造焦慮緊急程度)征及問卷調查,前100名完成者獲得神秘小禮物一份(物品獎勵)。

      制作釣魚頁面

      參考使用的開源軟件 (鳴謝 orz)

      1. SiteCopy 是clone頁面的工具
        https://github.com/Threezh1/SiteCopy ,在本次演練中主要充當做fake頁面使用。
      2. Pricking 是一個自動化部署水坑和網頁釣魚的工具
        https://github.com/Rvn0xsy/Pricking ,這個軟件用來做nginx代理,能夠記錄受害者的賬號密碼。(有些場景可以不用克隆登錄框,步驟1),本次演練中利用該功能做賬密記錄,沒有直接當克隆原因是頁面是來自內網頁面無法直接使用。
      3. henggeFish 是郵件批量發送工具
        https://github.com/SkewwG/henggeFish ,主要批量發送釣魚郵件,程序中考慮了很多實戰技巧,如考慮了繞過垃圾郵件的機制,利用云函數的ip源不固定,以及一個郵箱發送郵件的次數,支持批量發送,支持附件等。

      選擇釣魚頁面的原則

      1. 釣什么賬號最有價值,我們要關心的點是得到該賬號我們能做什么?登錄郵箱?合同系統等,這一步驟是能夠說明危害點也是真實攻防過程中的一個攻擊鏈路。 最好的選擇是具有外部sso 內部erp混用的這種登錄頁面作為釣魚克隆頁面首選。
      2. 確定克隆頁面以后要考慮,該頁面在釣魚話術的合理性。 如果釣魚郵件賬密,那么就劇本就是點擊修改郵箱賬號密碼,所以克隆的頁面應該是修改郵箱密碼登錄頁面。 如果調用erp賬號密碼,那么就去把劇本到erp通用賬號登錄頁面。 所以我們在選型登錄頁面的時候要考慮話術配合的合理性。

      克隆釣魚頁面制作

      1. 克隆頁面是內網服務,如果是內網頁面就選擇用”SiteCopy“去把頁面克隆回來部署到你的國外VPS上,這里講一下為什么使用國外VPS ,因為涉及到混淆的域名,所以這里也涉及到備案的問題。解決方案 : 外網VPS + 外網域名。內網系統的登錄頁面會有一定的挑戰,那就是會被問內網的登錄是如何泄露的,這一點一定要考慮攻擊場景充分且合理。
      2. 克隆頁面是外網服務,直接用 "Pricking" , 但是有些情況可能不會成功因為有一些復雜的登錄頁面還是不支持”Pricking"這種方式的。所以可以用“SiteCopy” 我們在本地部署一臺VPS上,在“Pricking” hook登錄的賬密。
        #### 頁面部署
      3. 克隆的的fake頁面需要部署到VPS中,選擇寶塔這里咱們只是從快速部署的角度觸發,如果有安全問題的話自行搭建Nginx。
      4. 使用寶塔簽https非常方便,這樣能夠解決瀏覽器上的嘆號提示問題。
      5. 域名綁定綁定域名目錄非常方便,有時候一個vps需要多個服務的時候就非常方便了。上傳文件的web管理界面也非常方便。
      6. 關于克隆頁面服務(寶塔安全)權限最小原則,服務最少原則非必要不開啟服務,0day什么的就不考慮了。 用的時候開啟服務不用的時候關閉。

      跳轉的trick

      1. 合理的提示+跳轉,Pricking是nginx代理原理,所以他會記錄我們的實際流量中的請求數據,我們為了偽造的閉環,在用戶點擊提交以后,也就是POST 或者 GET數據后 ,我們的fake靜態頁面是不支后端服務的,所以數據請求后一定是走error模塊,這里設置一個alert彈框提示"xxx活動結束" 在跳轉到公司的論壇或者wiki(不是Pricking不支持哦)這里利用場景不同。 我們僅僅用Pricking的hook用戶名密碼功能。
      2. 前端js提示彈框修改alert的代碼

        ?

      window.alert = function(msg, callback) {
                                  var div = document.createElement("div");
                                  div.innerHTML = "<style type=\"text/css\">"
                                      + ".nbaMask { position: fixed; z-index: 1000; top: 0; right: 0; left: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); }                                          "
                                      + ".nbaMaskTransparent { position: fixed; z-index: 1000; top: 0; right: 0; left: 0; bottom: 0; }                                               "
                                      + ".nbaDialog { position: fixed; z-index: 5000; width: 80%; max-width: 300px; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background-color: #fff; text-align: center; border-radius: 8px; overflow: hidden; opacity: 1; color: white; }"
                                      + ".nbaDialog .nbaDialogHd { padding: .2rem .27rem .08rem .27rem; }                                                       "
                                      + ".nbaDialog .nbaDialogHd .nbaDialogTitle { font-size: 17px; font-weight: 400; }                                                   "
                                      + ".nbaDialog .nbaDialogBd { padding: 0 .27rem; font-size: 15px; line-height: 1.3; word-wrap: break-word; word-break: break-all; color: #000000; }                                   "
                                      + ".nbaDialog .nbaDialogFt { position: relative; line-height: 48px; font-size: 17px; display: -webkit-box; display: -webkit-flex; display: flex; }                                   "
                                      + ".nbaDialog .nbaDialogFt:after { content: \" \"; position: absolute; left: 0; top: 0; right: 0; height: 1px; border-top: 1px solid #e6e6e6; color: #e6e6e6; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scaleY(0.5); transform: scaleY(0.5); }    "
                                      + ".nbaDialog .nbaDialogBtn { display: block; -webkit-box-flex: 1; -webkit-flex: 1; flex: 1; color: #09BB07; text-decoration: none; -webkit-tap-highlight-color: transparent; position: relative; margin-bottom: 0; }                  "
                                      + ".nbaDialog .nbaDialogBtn:after { content: \" \"; position: absolute; left: 0; top: 0; width: 1px; bottom: 0; border-left: 1px solid #e6e6e6; color: #e6e6e6; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scaleX(0.5); transform: scaleX(0.5); }    "
                                      + ".nbaDialog a { text-decoration: none; -webkit-tap-highlight-color: transparent; }"
                                      + "</style>"
                                      + "<div id=\"dialogs2\" style=\"display: none\">"
                                      + "<div class=\"nbaMask\"></div>"
                                      + "<div class=\"nbaDialog\">"
                                      + " <div class=\"nbaDialogHd\">"
                                      + "     <strong class=\"nbaDialogTitle\"></strong>"
                                      + " </div>"
                                      + " <div class=\"nbaDialogBd\" id=\"dialog_msg2\">彈窗內容,告知當前狀態、信息和解決方法,描述文字盡量控制在三行內</div>"
                                      + " <div class=\"nbaDialogHd\">"
                                      + "     <strong class=\"nbaDialogTitle\"></strong>"
                                      + " </div>"
                                      + " <div class=\"nbaDialogFt\">"
                                      + "     <a href=\"https:\/\/www.zuoyebang.cc\" class=\"nbaDialogBtn nbaDialogBtnPrimary\" id=\"dialog_ok2\">確定</a>"
                                      + " </div></div></div>";
                                  document.body.appendChild(div);
      
                                  var dialogs2 = document.getElementById("dialogs2");
                                  dialogs2.style.display = 'block';
      
                                  var dialog_msg2 = document.getElementById("dialog_msg2");
                                  dialog_msg2.innerHTML = msg;
      
                                  // var dialog_cancel = document.getElementById("dialog_cancel");
                                  // dialog_cancel.onclick = function() {
                                  // dialogs2.style.display = 'none';
                                  // };
                                  var dialog_ok2 = document.getElementById("dialog_ok2");
                                  dialog_ok2.onclick = function() {
                                      dialogs2.style.display = 'none';
                                      callback();
                                  };
                              };
                              alert("很遺憾活動結束!")
      1. 前端任意跳轉的js代碼
      第一種:(跳轉到b.html)
      <script language="javascript" type="text/javascript">
      window.location.href="b.html";
      </script>
      第二種:(返回上一頁面)
      <script language="javascript">
      window.history.go(-1);
      </script>
      第三種:
      <script language="javascript">
      window.navigate("b.html");
      </script>
      第四種:
      <script language="JavaScript">
      self.location=’b.html’;
      </script>
      第五種:
      <script language="javascript">
      top.location=’b.html’;
      </script>

      域名的準備

      1. 國外的域名,原因綁定國外的vps快速解析,沒有域名備案的煩惱。如果實戰場景需要避免被快速溯源可以選擇開啟域名隱私保護。
      2. 瀏覽器的對抗,chrome新版本的瀏覽器會有釣魚頁面風險提示,猜測是根據主域名的相似度來判斷的,所以我們可以用子域名混淆的方式來繞過,當然文件名可以做的逼真一些,新版本chrome瀏覽器會識別釣魚頁面,如圖

      獲取釣魚頁面中的賬號密碼

      1. 釣魚演練最好能夠確認用戶的密碼是正確的,理論上應該調用sso接口查詢出該賬號密碼是否正確,這樣輸出的用戶名,密碼是準確的業務方不會挑戰數據準確性。 密碼也不做保留記錄只記錄賬號和是否是正確密碼即可。
      2. 如果沒有sso記錄,就在fake頁面中password獲取input表單數據的地方用md5加密密碼,這樣保證不會看到大量的用戶明文密碼。避免一些不好的影響,且項目前也把代碼給一些業務方去review保證整個演練流程中不存在存儲用戶賬密行為。

        ?

      批量發送郵件

      郵箱發送的準備

      1. outlook首選,垃圾過濾機制這塊白名單會好一些。注冊的話,可以用10分鐘郵箱注冊,在利用接碼平臺認證郵箱,outlook改昵稱方式來混淆郵箱地址。
      2. henggeFish中用的大量的163郵箱,去某些交易軟件搜索關鍵詞,163的郵箱呢在配置SMTP的時候需要手機認證,目前是1個手機號認證15個郵箱。腳本是1個郵箱發10個地址。再根據演練人數就能計算需要用多少個郵箱賬號了。 SMTP郵箱開啟后會有個臨時密碼,這個密碼才是發送郵件腳本使用的。
      3. 密送方式發送,用郵箱發送郵件的時候選擇密送方式發送,這樣收件人無法查看到這封郵件同時還發送給誰。但是小心會因為數據量大被ban。切記不要隨便找一個郵件組就發送郵件,導致超出演練范圍的人收到郵件。
      4. 所有工作準備好以后整體的去測試下全流程。

      培訓

      培訓主要是三方面

      1. 釣魚社工宣貫,可以把相關的真實數據來做案例。
      2. 有針對性部門的安全宣貫,對研發偏向技術,對其他團隊偏向于安全意識。
      3. 安全部門的職能介紹與相關聯系方式,通過演練告訴同事如何應對該類場景,識別釣魚,快速上報。

      ?

      posted @ 2022-02-23 16:59  白鷺鷺鷺  閱讀(202)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美中文字幕日韩一区二区| 亚洲性人人天天夜夜摸18禁止| 综合色天天久久| 免费国产好深啊好涨好硬视频| 野外做受又硬又粗又大视频√| 日本高清久久一区二区三区| 久热伊人精品国产中文| 亚洲中文字幕无码中字| 国产精品亚洲二区在线播放 | 亚洲中文字幕日产无码成人片 | 国产aⅴ夜夜欢一区二区三区| 自拍偷自拍亚洲精品播放| 亚洲天堂在线观看完整版| 亚洲 制服 丝袜 无码| 亚洲性日韩精品一区二区| 亚洲天堂在线免费| 久久综合狠狠综合久久激情| 91久久夜色精品国产网站| 国产区一区二区现看视频| 盐城市| 色秀网在线观看视频免费| 人妻少妇精品中文字幕| 韩国三级在线 中文字幕 无码| 日本激情久久精品人妻热| 偷窥盗摄国产在线视频| 欧美成人精品在线| 激情影院内射美女| 亚洲国产精品综合色在线| 亚洲成人四虎在线播放| 亚洲国产精品日韩在线| 婷婷五月综合激情| 国产不卡一区在线视频| 精品少妇后入一区二区三区| 日本特黄特黄刺激大片| 亚洲国产在一区二区三区| 丁香五月亚洲综合深深爱| 偷偷做久久久久免费网站| 亲子乱aⅴ一区二区三区| 少妇扒开双腿自慰出白浆| 变态另类视频一区二区三区| 无码囯产精品一区二区免费|