2018-2019-2 20189206 《網絡攻防實踐》 第九周做業

2018-2019-2 20189206 《網絡攻防實踐》 第九周做業


課本學習

惡意代碼安全攻防

惡意代碼基礎知識

惡意代碼定義與分類

  • 惡意代碼指的是使計算機按照攻擊者的意圖執行以達到惡意目標的指令集
    • 單純的技術炫耀,或惡做劇
    • 遠程控制被攻擊主機,使之能爲攻擊者的傀儡主機,知足其實施跳板攻擊或進一步傳播惡意代碼的須要
    • 竊取私人信息或機密信息
    • 竊取計算、存儲、帶寬資源
    • 拒絕服務、進行破壞活動
  • 惡意代碼類型
    • 計算機病毒 是一種可以自我複製的代碼,感染過程須要人工干預才能完成
    • 蠕蟲 一類自主運行的惡意代碼,並不須要將自身嵌入到其餘宿主程序中,通常不須要人工參與
    • 惡意移動代碼 移動代碼能夠從遠程主機下載並在本地執行的輕量級程序,不須要或僅須要極少人爲干預
    • 特洛伊木馬 一類假裝成有用的軟件,隱藏其惡意目標的惡意代碼
    • 後門 是指一類可以繞開正常的安全控制機制
    • 殭屍程序 攻擊者出於惡意目的,隱藏其惡意目標的惡意代碼
    • 內和套件 在用戶態經過替換或修改系統關鍵可執行文件,用以獲取並保持最高控制權

惡意代碼的命名規則python

[惡意代碼類型]惡意代碼家族名稱[.變種號]

計算機病毒

計算機病毒是一個可以感染其餘程序的程序,靠修改其餘程序,並把自身的拷貝嵌入其餘程序而實現病毒的感染mysql

病毒程序經過修改其餘程序的方法將本身的精確複製或可能演化的形式放入其餘程序中,從而感染它們linux

  • 計算機病毒的基本特性
    • 感染性
    • 潛伏性
    • 可觸發性
    • 破壞性
    • 衍生性
  • 計算機病毒的感染及引導機制
    • 可執行文件 是計算機病毒最廣泛的感染目標,能夠執行文件做爲宿主程序,當其被用戶運行時,依附在在上面的病毒就能夠被激活取得控制權
      • 前綴感染機制 病毒將自身複製到宿主程序的開始
      • 後綴感染機制 病毒將自身複製到宿主程序的末端,並在指令開始時加入一條轉跳指令
      • 插入感染機制 病毒在感染宿主程序時,病毒代碼放在宿主程序的中間

    • 引導扇區
      • 經過BIOS定位帶磁盤的主引導區,運行存儲的主引導記錄,接着從分區表中找到第一個活動分區,讀取並執行這個活動分區的分區引導記錄,而分區引導記錄負責裝載操做系統。
      • 引導型病毒的感染目標爲主引導區和分引導區

    • 支持宏指令的數據文件
      • 宏病毒:將自身以宏指令的方式複製到數據文件中,當被感染的數據文件被應用程序打開時,將自動執行宏病毒體,完成病毒的引導

網絡蠕蟲

一種經過網絡自主傳播的惡意代碼。git

  • 基本特性 可以經過網絡進行自主傳播
  • 組成結構web

    • 彈頭 用於侵入目標系統,利用目標系統安全漏洞實施攻擊
      • 緩衝區溢出攻擊
        • 破壞目標系統服務中的內存結構
      • 文件共享攻擊
      • 利用電子郵件傳播
      • 利用其它普通的錯誤配置
    • 傳播引擎 經過在目標系統上執行傳播引擎指令,完成蠕蟲樣本的傳播
    • 目標選擇算法和掃描引擎
      • 一旦蠕蟲在受害計算機中運行,目標選擇算法開始尋找新的攻擊目標,利用掃描引擎掃描每個由目標選擇算法肯定的地址,肯定其是否能夠被攻擊
        • 電子郵件地址
        • 主機列表
        • 被信任的系統
        • 網絡鄰居主機
        • 域名服務
        • 經過特定規則任意選擇IP目標地址
    • 有效載荷 附加的攻擊代碼,執行一些特殊目地的操做
      • 植入後門
      • 安裝分佈式拒絕服務攻擊代理
      • 組建僵屍網絡
      • 執行一個複雜計算

後門與木馬

  • 後門 可以爲攻擊者提供多種不一樣類型的訪問通道
    • 本地特權提高和本地帳號
    • 單個命令的遠程執行
    • 遠程命令行解釋訪問器
    • 遠程控制GUI
    • 無故口後門

在Windows平臺中,後門工具能夠利用自啓動文件夾、註冊表自啓動項及預訂計劃任務三種方法達到自啓動的效果算法

  • 特洛伊木馬
    • 欺騙用戶或系統管理員安裝特洛伊木馬程序
    • 隱藏在計算機的正常程序中,將本身假裝成看起來屬於該系統
    • 隱藏和假裝技術有
      • 命名假裝遊戲
      • 使用軟件包裝工具
      • 攻擊軟件發佈站點
      • 代碼下毒

殭屍程序與僵屍網絡

僵屍網絡是在網絡蠕蟲、特洛伊木馬、後門工具等傳統惡意代碼形態的基礎上發展融合而產生的一種新型攻擊方式,它與蠕蟲的區別在因而否受控,蠕蟲通常爲自主傳播方式,而殭屍程序則是接受控制後進行攻擊和傳播sql

  • 僵屍網絡的功能結構
    • 分爲主體功能和輔助功能模塊
      • 主體功能中的命令與控制模塊是整個殭屍程序的核心

  • 殭屍程序的命令與控制機制
    • 基於IRC協議的命令與控制機制
    • 基於HTTP協議的命令與控制機制
    • 基於P2P協議的命令與控制機制

Rootkit

Rootkit可以經過控制目標計算機操做系統的關鍵組件,來爲攻擊者提供強有力的手段,獲取訪問並隱藏在系統中。是用來得到root權限的kit工具包。shell

  • 用戶模式Rootkit
    • 提供後門訪問的二進制替換程序
    • 隱藏攻擊者的二進制替換程序
    • 用於隱藏但不替換的二進制程序
    • 另一些零散工具
    • 安裝腳本
  • windows下實現用戶Rootkit主要的三種技術
    • Windows爲了支持第三方工具擴展Windows的內置功能特性,提供了一些開發接口。用戶模式rootkit可使用這些開發接口,將自身實現的惡意功能邏輯插入到現有的Windows函數之間,無需覆蓋Windows代碼。
    • Windows使用WFP機制,來防止操做系統關鍵文件被修改或替換,rootkit想要覆蓋操做系統關鍵文件,必須使WFP功能失效。
    • 用戶模式rootkit還可使用DLL注入和API掛鉤技術,把惡意代碼直接加入運行進程的內存空間
  • 內核模式Rootkit
    • 文件和目錄隱藏
    • 進程隱藏
    • 網絡端口隱藏
    • 混雜模式隱藏
    • 改變執行方向
    • 設備截取和控制

惡意代碼分析方法

代碼分析:是按需求使用必定的規則、方法和工具對計算機程序進行分析,以推導出其程序結構、數據流程和程序行爲的處理過程。編程

  • 與分析良性代碼相比,分析惡意代碼的主要區別在於:
    • 不能提早知道惡意代碼的目的
    • 惡意代碼具備惡意的攻擊目的,會對所運行環境進行惡意破壞
    • 惡意代碼分析在絕大數狀況下不會擁有待分析程序的源代碼
    • 惡意代碼目前都會引入大量各類各樣的對抗分析技術

惡意代碼分析的技術方法主要包括靜態分析和動態分析兩類windows

惡意代碼的分析環境

  • 惡意代碼發燒友的分析實驗環境

  • 採用虛擬化技術構建惡意代碼分析環境

  • 用於研究的惡意代碼自動分析環境

惡意代碼靜態技術分析

  • 反病毒軟件掃描
  • 文件格式識別
    • 可讓咱們迅速瞭解待分析惡意代碼所指望的運行平臺
  • 字符串提取工具
    • 惡意代碼實例名
    • 幫助或命令行選項
    • 用戶會話
    • 後門口令
    • 相關URL信息、Emile地址
    • 包含庫文件和函數調用
  • 二進制結構分析
  • 反彙編與反編譯
  • 代碼結構與邏輯分析
  • 加殼識別與代碼脫殼

惡意代碼動態技術分析

  • 基於快照對比的方法和工具
  • 系統動態行爲監控方法
    • 文件行爲監控軟件
    • 進程行爲監控軟件
    • 註冊表監控軟件
    • 本地網絡棧行爲監控軟件
  • 網絡協議棧監控方法
  • 沙箱技術
  • 動態調試技術

軟件安全攻防——緩衝區溢出和shellcode

軟件安全漏洞威脅

美國國家標準技術研究院NIST將安全漏洞定義爲:在系統安全流程、設計、實現或內部控制中所存在的缺陷或弱點,可以被攻擊者所利用並致使安全侵害或對系統安全策略的違反。

  • 三個基本元素
    • 系統的脆弱性或缺陷
    • 攻擊者對缺陷的可訪問性
    • 攻擊者對缺陷的可利用性
  • 軟件安全困境
    • 複雜性
    • 可擴展性
    • 連通性
  • 軟件安全的漏洞威脅
    • 內存安全違規類
      • 在軟件開發過程當中在處理RAM內存訪問時所引入的安全缺陷 緩衝區溢出漏洞是一種最基礎的內存安全問題
    • 輸入驗證類
      • 輸入驗證類安全漏洞是指軟件程序在對用戶輸入進行數據驗證存在的錯誤,沒有保證輸入數據的正確性、合法性和安全性,從而致使可能被惡意攻擊與利用。
      • XSS、SQL注入、遠程文件包含、HTTP Header注入等
    • 競爭條件類
      • 競爭條件類缺陷是系統或進程中一類比較特殊的錯誤,一般在涉及多進程或多線程處理的程序中出現,是指處理進程的輸出或結果沒法預測,並依賴於其餘進程事件發生的次序或時間時,所致使的錯誤。
    • 權限混淆與提高類
      • 權限混淆與提高漏洞是指計算機程序因爲自身編程疏忽或被第三方欺騙,從而濫用其權限,或賦予第三方不應給予的權限。
      • 跨站請求僞造、FTP反彈攻擊、權限提高、「越獄"等

緩衝區溢出

  • 緩衝區溢出基本概念
    • 緩衝區溢出是計算機程序中存在的一類內存安全違規類漏洞,在計算機程序向特定緩衝區內填充數據時,超出了緩衝區自己的容量,致使外溢數據覆蓋了相鄰內存空間的合法數據,從而改變程序執行流程破壞系統運行完整性
  • 緩衝區溢出攻擊背景知識
    • 編譯器與調試器的使用
    • 彙編語言基礎知識(特別是IA32)
    • 進程內存管理
    • 函數調用過程
      • 調用:調用者將函數調用參數、函數調用下一條指令的返回地址壓棧,並跳至被調用函數的入口地址
      • 序言:被調用函數開始執行首先會進入序言階段,將對調用函數的棧基址進行壓棧保存,建立函數自身結構棧等工做
      • 返回:被調用函數執行完功能將指令控制權返回給調用者以前,會進行返回階段的操做
  • 緩衝區溢出攻擊原理
    • 棧溢出
    • 堆溢出
    • 內核溢出

緩衝區溢出的根本問題在於,用戶輸入可控制的緩衝區操做缺少對目標緩衝區的邊界安全保護。若是用戶輸入沒法到達漏洞利用點,那麼這類緩衝區溢出只能被稱爲安全缺陷,而不能被稱爲安全漏洞。

Linux平臺上的棧溢出與shellcode

  • Linux平臺棧溢出攻擊技術
    • NSR模式
      • 適用於被溢出的緩衝區變量比較大,足以容納shellcode的狀況

    • RNS模式
      • 通常用於被溢出的變量比較小,不足容納shellcode的狀況

    • RS模式
      • 這種模式可以精確地定位出shellcode在目標漏洞程序進程空間中的起始地址

  • Linux系統中本地shellcode的產生過程
    • 先用高級編程語言,C,來編寫shellcode程序
    • 編譯並反彙編調試這個shellcode程序
    • 從彙編語言代碼級別分析程序執行流程
    • 整理生成的彙編代碼,儘可能減小它的體積使他可注入,並可經過嵌入C語言進行運行測試和調試
    • 提取彙編代碼所對應的opcode二進制指令,建立shellcode指令數組

Windows平臺上的棧溢出與shellcode

  • 成功攻擊應用程序中棧溢出漏洞密切相關的主要有如下三點:
    • 對程序運行過程當中廢棄棧的處理方式差別
    • 進程內存空間的佈局差別
    • 系統功能調用實現方式差別
  • Windows平臺shellcode實現技術
    • shellcode必須能夠找到所須要的Windows32 API函數,並生成函數調用表
    • 爲了可以使用API函數,shellcode必須找到目標程序已加載的函數地址
    • shellcode需考慮消除空字節,以避免在字符串操做函數中被截斷
    • shellcode需確保本身能夠正常退出,並使原來的目標程序進程繼續運行或終止
    • 在目標系統環境存在異常處理和安全防禦機制時,shellcode需進一步考慮如何應對這些機制

堆溢出攻擊

堆溢出是緩衝區溢出中第二種類型的攻擊方式,因爲堆中的內存分配與管理機制較棧更復雜,不一樣操做系統平臺的實現機制具備顯著的差別。

  • 函數指針改寫
  • C++類對象虛函數表改寫
  • Linux下堆管理glibc庫free()函數自己漏洞

緩衝區溢出攻擊的防護技術

要是緩衝區溢出攻擊奏效,攻擊者一般先經過溢出植入攻擊代碼,而後經過修改關鍵數據結構改變執行流程,最後讓攻擊代碼執行。

  • 嘗試杜絕溢出的防護技術
  • 容許溢出但不讓程序改變執行流程的防護技術
  • 沒法讓攻擊代碼執行的防護技術

視頻學習

kalisecurity 壓力測試

壓力測試是經過肯定一個系統的瓶頸或不能接收的性能點,來得到系統可以提供的最大的服務級別的測試,壓力測試是爲了發如今什麼條件下應用程序的性能會變得不可接受

  • VoIP壓力測試工具
    • iaxflood
    • inviteflood
  • web壓力測試工具
    • thc-ssl-dos SSL拒絕服務攻擊
      • 利用SSL中的漏洞,迅速消耗服務器資源

  • 網絡壓力測試
    • dhcpig 耗盡DHCP資源池的壓力測試
    • ipv6攻擊工具包
      • flood_advertise5
      • flood_dhcp6
      • flood _mld26
      • flood_mld6
      • flood_router6
      • flood_solicitate6
    • inundator 針對ids/ips/waf的壓力測試
    • macof 泛洪攻擊工具

    • siege 設計用於web開發這評估應用在壓力下的承受能力,能夠分局配置對一個web站點進行多用戶的併發訪問,記錄每一個用戶所請求過程的相應時間,並在必定數量的併發訪問下重複進行。

    • T50壓力測試
      • 一個壓力測試工具,功能強大且具備獨特的數據包注入工具,支持unix系統能夠進行多種協議的數據包注入

  • 無線壓力測試工具
    • MDK3

    • Reaver

kalisecurity 數字取證工具

數字取證是指計算機調查和分析技術應用於對潛在的、有法律效力的電子證據的肯定與獲取,它們都是針對黑客和入侵的,目的是保障網絡的安全。

  • PDF取證工具
    • pdf-parser

    • peepdef
      • python編寫的PDF文件分析工具,能夠檢測惡意的PDF文件,設計目標是爲安全研究人員提供PDF分析中可能用到的全部組件

  • 反數字取證
    • chkrootkit
      • 能夠檢測命令或關鍵文件是否被注入後門

  • 內存取證工具
    • volafox
    • volatility

  • 取證分割工具binwalk
    • binwalk
      • 固件分析工具,旨在協助研究人員對固件進行分析,提取及逆向工程用處。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊。
      • 能夠提取文件或壓縮包中存在的隱藏文件,也能夠分析文件格式,同時-e參數能夠直接解壓壓縮文件

  • 取證哈希驗證工具集
    • MD5deep
      • 能夠計算和比較mad5等哈希加密信息的摘要

  • 取證鏡像工具集 對鏡像文件的取證分析
    • mmstat

  • 數字取證套件
    • autopsy
      • 以瀏覽器形式,訪問本地9999端口

    • dff gui
      • 程序的圖像畫界面,數字取證工做輔助工具

kalisecurity 報告工具與系統服務

  • dradis
    • 用於提升安全檢測效率的信息共享框架,提供了一個集中的信息倉庫,用於標記目前已經作的工做和下一步計劃

  • keepnote
    • 富文本格式:彩色字體、內置圖片、超連接等
    • 樹形分層組織結構
    • 全文搜索
    • 文件附件
    • 內置備份和恢復

  • 媒體捕捉工具
    • cutycapt
      • 能夠將網頁內容截圖保存
    • recordmydesktop
      • 錄頻工具
  • maltego
  • casefile
  • magictree
    • 面向滲透測試人員的工具,能夠直接進行數據合併、查詢、外部命令執行和報告生成,全部數據都會以樹形結構儲存

  • truecrypt
    • 文件加密工具
  • kali整理的系統服務
    • BeFF 對應XSS測試框架BeFF的啓動關閉
    • dradis 對應筆記分享服務的啓動關閉
    • HTTP 對應kali本機web服務的啓動關閉
    • Metasploit 對應metasploit服務的啓動關閉
    • mysql 對應mysql服務的啓動或關閉
    • openvas 對應openvas的啓動與關閉
    • ssh 對應ssh的啓動與關閉

Python黑帽子

第十章 Windows系統提權

建立進程監視器 & windows系統的令牌權限

這裏須要先安裝VMI 在Windows xp 32位系統下,須要先安裝easy_install,點擊這裏下載

我在安裝WMI的時候一直出現錯誤,沒法使用easy_install安裝WMI,服務器沒法訪問HTTPS網頁,開啓了SSL也不行,因而我只能從網站上下載WMI服務。

下載Windows的WMI安裝程序 點擊這裏下載直接安裝便可

以後下載安裝bhpservice.zip 按照文檔中的順序進行

這裏須要下載py2exe 點擊這裏下載

啓動process_monitor.py進程監控腳本,建立一些進程以查看腳本的輸出狀況:

同時腳本所在目錄會生成一個csv文件,打開能夠看到其記錄了腳本監視到的進程的記錄

贏得競爭

運行file_monitor.py腳本

打開第二個CMD命令行窗口,執行命令

cd %temp%
echo hello > filetest
rename filetest file2test
del file2test

執行結果

代碼插入

這裏在安裝bhpservice.zip 按照文檔中的順序進行時出現錯誤

代碼已經上傳到碼雲,點擊這裏----> 個人碼雲:))

相關文章
相關標籤/搜索