一, 錯誤的配置
錯誤的配置有系統環境的配置不當和系統應用的配置不當,例如普通用戶具有管理員權限、使用應用程序的默認配置等等,通過google或者baidu都可以使用搜索語法直接搜索到有配置漏洞的網站和服務器,例如phpmyadmin,MySQL默認配置,sqlserver sa空口令,以及任意文件讀取,黑客可以通過這些輕而易舉地入侵存在這些漏洞的服務器
二, 主機開放的端口
主機上的端口一直都是風險評估的重點工作,而正是這些端口存在各種各樣的漏洞導致黑客可以利用漏洞直接入侵主機。常見的有過漏洞的端口:
21端口 ftp服務
22端口 openssh服務
23端口 telnet服務
25端口 郵件服務
53端口 DNS服務
80端口 http服務
88端口 kerbos sec服務
110端口 pop3服務
111端口 sunrpc/rpcbind
135端口 DCOM服務
137/138/139 netbios服務
443端口 https服務
445端口 smb服務
1433端口 sqlserver服務
1521端口 oracle服務
3264端口 IBM Lotus Notes服務
3306端口 mysql服務
3389端口 rdp服務
8080端口 tomcat服務/http proxy
9000端口 php-fpm服務
三, 暴力破解
暴力破解也是當今入侵的主流手段之一,它的利用原理就是使用相關的工具+事先准備好的字典進行強行猜解用戶名和密碼,這種入侵手法直截了當,但是也需要依靠運氣,更依賴於一個強大的字典,有的人跑一天都沒能跑出用戶密碼,有的人幾個小時甚至幾分鍾就能爆出用戶名密碼,這種方式受客觀條件限制。例如用戶設置的密碼超級復雜,那么對應得字典中如果沒有收錄的話一樣是扯淡。所以使用暴力破解字典很重要。
四, 脆弱性應用程序
這里的脆弱性應用程序是指那些存在漏洞的應用程序,例如struts2漏洞,dedcms漏洞,wordpress漏洞,IIS漏洞,thinkphp漏洞,tomcat漏洞,zabbix漏洞,mysql漏洞,oracle漏洞,redis漏洞等等,舉不勝舉。
這些都是運行在服務器上的應用程序。凡事都有2面性,沒有100%完美的東西,所以存在漏洞的應用也多,隨之而來的安全問題也不可忽視,稍不注意你的服務器可能就已經處在被人的掌控之中了。
五, SQL注入
Sql注入堪稱經典,用戶登錄某個網站時輸入用戶名和密碼,這是會在瀏覽器產生一個http請求,這個請求會到達用戶瀏覽的這個網站所在的服務器上的數據庫,到達數據庫后,會去數據庫里頭查詢用戶輸入的用戶是否存在,密碼是否正確,如果存在則驗證通過,如果不存在則提示用戶名密碼錯誤,這是我們日常網上沖浪經常要做的事情。假設現在我們瀏覽某個頁面時當通過抓包工具分析我們瀏覽器產生的這個http請求,這時會發現請求的url類似下面這樣:
http://xxx.xxx.com/index.jsp?item=7
現在假如這個網站沒有一個強有力的sql注入防護層或者過濾層的話,那么我們可以在?id=7后面繼續添加語句,例如添加and 1=2 union all select @@global.version_compile_os from mysql.user /*
20%表示空格
這樣的請求如果服務器成功處理並且到達數據庫的話,那么數據庫里的語句則變成了select id from table where id=7 and 1=2 union all select @@global.version_compile_os from mysql.user /*;
此時數據庫會成功解析這條語句並且返回結果,這里的構造語句會返回操作系統信息。
當我們可以利用sql語句操作數據庫的時候就意味着我們可以利用數據庫與主機進行交互,這時候如果權限夠大的話我們還可以利用sql語句獲取到網站的根目錄,並且可以進一步上傳木馬進行getshell,最后控制主機。
六, 緩沖區溢出
緩沖區溢出攻擊的原理其實利用的是c/c++開發人員對代碼的不嚴謹產生的數據越界行為進行利用,例如數組越界讀寫等等。這里面涉及到計算機底層的知識,具備緩沖區溢出攻擊能力的黑客不在少數,雖然現在的操作系統越來越多的加強了對堆棧數據的保護,但是那也是新版的操作系統,一些老版本的操作系統依然處在危險之中。有人可能覺得那好啊,我升級我的操作系統唄,這樣不就高枕無憂了嗎,很不幸,操作系統升級了,但是操作系統上的一些應用也是存在這些漏洞。黑客可以利用這些應用的數據越界讀寫執行shellcode並控制主機。網上的相關案例不少,以及各大安全服務平台的報告也不少。