更新時間:2018-03-22 來源:黑馬程序員 瀏覽量:
1、概述
對于服務器操作系統Linux來講,一般通過ssh來進行遠程管理,
像Telnet、Rlogin等傳統遠程管理工具,由于其采用明文傳輸,數據信息容易被竊聽, 在多數用戶業務系統中,考慮到安全合規要求,一般會被禁用。
本文通過對常用的ssh口令暴力破解工具hydra進行介紹,并在口令破解的基礎上, 介紹安全防護技術。
2、環境
驗證環境分為攻擊機和靶機, 攻擊機采用Kali Linux系統靶機
攻擊機
3、 Hydra工具應用
Hydra 是Kali Linux中一款很受歡迎的口令破解工具,當前最新版本V8.6, 基本用法可以通過man hydra 來查看, 在這個工具使用過程中,比較重要的一點,就是利用一個高效的口令字典,hydra本身也可以用于生成口令字典。但一般會用cupp進行生成, 關于cupp的詳細用法,后續在整理一篇文檔進行介紹。本文重點介紹Hydra暴力破解及其安全防護策略。
基本用法
root@kali:~# hydra -l 用戶 -P 密碼字典 -t 32 -e nsr -vV -o ssh_ok.log IP ssh
-l/-L 指定用戶名-l, 或者-L 指定用戶名字典(用戶名列表)
-p/-P 指定用戶口令-p,或者-P 指定用戶口令字典(用戶口令列表)
-t : 指定并行任務數量,默認16
-e: 額外檢查,n 代表空口令, s代碼用戶名, r代碼用戶名稱逆序(反向)
-vV: 顯示詳細過程
-o: 輸出login/passwd 對到指定的文件
IP: 靶機IP地址
ssh: 被攻擊的協議(服務名稱, telnet、ftp、pop3、ssh…)
攻擊驗證命令:
口令破解成功的話, 會有如上的提示
4、口令暴力破解安全防護技術
4.1 利用ssh自身的安全防護機制
4.1.1 禁止默認用戶(root)登錄
一般來說, 在口令破解時需要提供用戶名字典,這個字典的建立通常會包括一些系統中默認的用戶, 最典型的就是linux系統的root用戶,最易被攻擊
如何需要進制其他用戶(非root用戶) 還可以選擇使用 DenyUsers (黑名單) 或者 AllowUsers(白名單)
上述可以用來禁止一些系統默認用戶root 、 xxxuser1 、 xxxuser2登錄。
補充說明
- 修改sshd_config 后,需要重啟服務,讓配置生效
禁止root用戶登錄,并不是禁用root用戶,而用戶可以以特定用戶登錄后,通過su切換至root用戶,以使用root 用戶特權
4.1.2 ssh鑒權次數限制
對于一些用戶,需要允許其登錄,不能簡單的通過DenyUsers禁止來進行防護,在這種情況下,可以通過ssh鑒權失敗次數來
達到防止字典攻擊的目的
補充說明
此種方式在應對口令破解中,可以增加破解的時間開銷, 并不能完全避免口令被暴力破解。
但是,由于口令破解的時間加長,也就給了IDS/IPS(入侵檢測系統)反應的時間。便于系統運維人員采取措施。
4.2 利用pam的安全機制
PAM,Pluggable Authentication Modules 是Sun提出的一種認證機制。它通過提供一些
動態鏈接庫和一套統一的API,將系統提供的服務 和該服務的認證方式分開,使得系統管理員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程序,同時也便于向系 統中添加新的認證手段。
簡單的說,就是通過配置pam, 來改變服務(ssh)的認證方式, 應對口令破解一般可以采用兩種策略
4.2.1 口令增強
口令增強的目的是通過增強口令的復雜度,從而增加口令被破解的難度。本項功能實現采用pam_cracklib 模塊
其中選項含義:
retry=3:用戶最多可以3次輸入口令后報錯。默認是1次。
minlen=12:最小口令長度為12。
difok=3:新口令至少有3個字符不能和舊口令相同。ucredit=-1:至少1位大寫字母, 需要注意的是-1(負1) lcredit=-1: 至少1位小寫字母
dcredit=-1:至少1位數字ocredit=-1:至少1位特殊字符
enforce_for_root: 這個是新增加的一個選項,作用是root修改用戶口令時,也受口令復雜度的限制, 老版本不一定支持。
4.2.2 鑒權失敗鎖定用戶帳號
當用戶鑒權失敗到達指定次數時,鎖定用戶帳號一定時間。 在用戶帳號的鎖定時間內,不接受用戶口令鑒權。此項功能通過pam_tally實現
其中選項含義為:
deny=5 : 用戶鑒權失敗超過5次鎖定
unlock_time=300: 鎖定帳號300秒
onerr=succeed: 當鑒權失敗時,返回PAM_SUCCESS
audit: 當用戶名不存在時,將用戶名寫入入系統log
5、結語
本文介紹了hydra 工具的基本用法,以及在linux下,應對口令破解的幾種防護方法。未作原理性展開描述。
本文版權歸黑馬程序員C/C++學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員C/C++培訓學院