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