shell基礎與web安全

shell基礎與web安全

shell是什麼?

Linux和unix有什麼區別?

references:

Linux和UNIX的關係及區別(詳解版)

UNIX 與 Linux 之間的關係是一個很有意思的話題。在目前主流的服務器端操作系統中,UNIX 誕生於 20 世紀 60 年代末,Windows 誕生於 20 世紀 80 年代中期,Linux 誕生於 20 世紀 90 年代初,++可以說 UNIX 是操作系統中的"老大哥",後來的 Windows 和 Linux 都參考了 UNIX++。

那麼具體而言是什麼樣的關係呢?

共通之處

Linux 是一個類似 Unix 的操作系統,Unix 要早於 Linux,Linux 的初衷就是要替代 UNIX,並在功能和用戶體驗上進行優化,所以 Linux 模仿了 UNIX(但並沒有抄襲 UNIX 的源碼),使得 Linux 在外觀和交互上與 UNIX 非常類似。“UNIX 是 Linux 的父親”

區別之處

  1. UNIX 系統大多是與硬件配套的,也就是說,大多數 UNIX 系統如 AIX、HP-UX 等是無法安裝在 x86 服務器和個人計算機上的,而 Linux 則可以運行在多種硬件平臺上;
  2. UNIX 是商業軟件,而 Linux 是開源軟件,是免費、公開源代碼的。

unix/Linux系統架構

UNIX/Linux 系統可以粗糙地抽象爲 3 個層次(所謂粗糙,就是不夠細緻、精準,但是便於初學者抓住重點理解),如圖所示。底層是 UNIX/Linux 操作系統,即系統內核(Kernel);中間層是 Shell 層,即命令解釋層;高層則是應用層。

image

  1. 內核層

內核層是 UNIX/Linux 系統的核心和基礎,它直接附着在硬件平臺之上,控制和管理系統內各種資源(硬件資源和軟件資源),有效地組織進程的運行,從而擴展硬件的功能,提高資源的利用效率,爲用戶提供方便、高效、安全、可靠的應用環境。
2) Shell層

Shell 層是與用戶直接交互的界面。用戶可以在提示符下輸入命令行,由 Shell 解釋執行並輸出相應結果或者有關信息,所以我們也把 Shell 稱作命令解釋器,利用系統提供的豐富命令可以快捷而簡便地完成許多工作
3) 應用層

應用層提供基於 X Window 協議的圖形環境。X Window 協議定義了一個系統所必須具備的功能(就如同 TCP/IP 是一個協議,定義軟件所應具備的功能),可系統能滿足此協議及符合 X 協會其他的規範,便可稱爲 X Window。

現在大多數的 UNIX 系統上(包括 Solaris、HP-UX、AIX 等)都可以運行 CDE (Common Desktop Environment,通用桌面環境,是運行於 UNIX 的商業桌面環境)的用戶界面;而在 Linux 上廣泛應用的有 Gnome、KDE 等。

shell 是什麼?

從前文我們已經知道不管是unix系統還是Linux系統Shell 層是與用戶直接交互的界面。用戶可以在提示符下輸入命令行,由 Shell 解釋執行並輸出相應結果或者有關信息,所以我們也把 Shell 稱作命令解釋器,利用系統提供的豐富命令可以快捷而簡便地完成許多工作

Shell 是 Linux 的命令解釋器,簡單來說,可以理解爲 Linux 系統提供給用戶的使用界面,而 Linux 的 Shell 是 Bash。

Bash 的內容非常之多,包括 Bash 操作環境的構建、輸入/輸出重定向、管道符、變量的設置和使用,當然還包括 Shell 編程。

web安全與shell

references:

網站被入侵了傳了webshell怎麼辦

網站受攻擊的常用手段

webshell、木馬與後門之間的區別

《白帽子講web安全》吳翰清著 第八章 文件上傳漏洞

00截斷原理核心分析(重點)

概念

WebShell就是以asp、php、jsp或者cgi等網頁文件形式存在的一種命令執行環境,也可以將其稱做爲一種網頁後門。黑客在入侵了一個網站後,通常會將這些asp或php後門文件與網站服務器
WEB目錄下正常的網頁文件混在一起,然後就可以使用瀏覽器來訪問這些asp或者php後門,得到一個命令執行環境,以達到控制網站服務器的目的(可以上傳下載文件,查看數據庫,執行任意程序命令等)

現象

運行中的網站遭到攻擊後,++系統cpu一直保持在100%,有進程也幹不掉,然後客戶就進行殺毒了,然後就把所有的exe文件都殺了,然後系統也就很多功能不正常了,數據庫的服務也幹掉了++,經檢查後發現,發現網站目錄下面被上傳了大量的asp、php,htm的頁面,裏面的目錄也有黑客上傳了自己的目錄,

如何實現的?

  1. 利用系統前臺的上傳業務,上傳WebShell腳本,上傳的目錄往往具有可執行的權限。在web中有上傳圖像、上傳資料文件的地方,上傳完後通常會向客戶端返回上傳的文件的完整URL信息,有時候不反饋,我們也可以猜到常見的image、upload等目錄下面,如果Web對網站存取權限或者文件夾目錄權限控制不嚴,就可能被利用進行webshell攻擊,攻擊者可以利用上傳功能上傳一個腳本文件,然後在通過url訪問這個腳本,腳本就被執行。然後就會導致黑客可以上傳webshell到網站的任意目錄中,從而拿到網站的管理員控制權限。同時文件上傳後所在的目錄是web容器所覆蓋到的路徑
  • 如像FCKEditor這樣的富文本編輯器(它帶有文件上傳功能呢),當其一般作爲第三方應用集成到網站中時會因爲文件上傳的目錄一般默認會被web容器所解析,很容易形成文件上傳漏洞。(解決方式是刪除文件上傳代碼)
  • 00截斷繞過文件上傳檢查功能。一般通過檢查文件的後綴名覈查文件安全,如xxx.php[\0].jpg會因爲[\0]是16進制的0x00字符截斷後繞過了文件類型判斷
  • 有時是通過檢查文件頭來驗證文件類型的,此時攻擊者也會用僞造文件頭的方式達到攻擊的效果。
  1. 客戶獲取管理員的後臺密碼,登陸到後臺系統,利用後臺的管理工具向配置文件寫入WebShell木馬,或者黑客私自添加上傳類型,允許腳本程序類似asp、php的格式的文件上傳。
  2. 利用數據庫備份與恢復功能獲取webshell。如備份時候把備份文件的後綴改成asp。或者後臺有mysql數據查詢功能,黑客可以通過執行select…in
    To outfile 查詢輸出php文件,然後通過把代碼插入到mysql,從而導致生成了webshell的木馬。
  3. 系統其他站點被攻擊,或者服務器上還搭載了ftp服務器,ftp服務器被攻擊了,然後被注入了webshell的木馬,然後網站系統也被感染了。
  4. 黑客直接攻擊Web服務器系統,Web服務器在系統層面也可能存在漏洞,如果黑客利用其漏洞攻擊了服務器系統,那麼黑客獲取了其權限,則可以在web服務器目錄裏上傳webshell文件。

出現webshell的根本原因

  1. web server本身特性相關的功能造成的。
  • apache文件解析問題:apache 1.x 2.x中對文件名的解析:從後向前解析,一直遇到一個apache認識的文件類型爲止。
  • WebShell能夠被注入很大程度是由於win2003
    IIS6.0的環境下造成的。在IIS6.0環境下,我們上傳一個test.asp;.jpg的shell文件,發現在上傳的時候,能夠成功上傳,因爲監測爲jpg的圖片文件,但是在iis6.0解析的時候卻當成了asp的動態網頁文件被執行(因爲IIS6.0環境下截斷字符變成了;)。因此我們知道webshell木馬常見的特徵:x.asp;.png,x.php;.txt…
  • PHP CGI路徑解析問題
  1. WebShell的惡意腳本是和正常的網頁文件混在一起的,同時被黑客控制的服務器和遠處主機都是通過80端口來傳遞數據的,不會被防火牆攔截,一般也不會在系統日誌中留下記錄,具有極強的隱蔽性,一般不容易被查殺。(和正常網頁文件混在一起不會被防火牆攔截

防範被植入webshell

  1. 加強權限管理,對敏感目錄進行權限設置,限制上傳目錄的腳本執行權限,不允許執行腳本。建議用IIS6.0以上版本,同時不要用默認80端口。
  • 文件上傳後做靜態文件處理一方面方便使用緩存加速,降低性能損耗,另一方面杜絕腳本執行可能。
  • 判斷文件類型:通過MIME type(MIME(多用途網際郵件擴充協議)),後綴檢查結合白名單的方式進行判斷文件類型並加以控制。
  1. 即使能夠上傳了文件,也讓攻擊者訪問這個文件變得困難。
  • 隨機數改寫文件名和文件路徑。
  • 單獨設置文件服務器的域名。
  1. 程序修補漏洞,程序要優化上傳x.asp;.png這樣類似的文件
  2. 加強管理員的安全意識,在服務器上不瀏覽不安全網站,定期修改密碼,同時對服務器上的ftp類似的也要加強安全管理,防止被系統的木馬感染。
  3. web服務器方面,開啓防火牆,殺毒軟件等,關閉遠程桌面這些功能,定期更新服務器補丁和殺毒軟件。
發佈了73 篇原創文章 · 獲贊 14 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章