Linux應急響應手冊 SSH暴力破解

2021-08-28 13:47:34 字數 3315 閱讀 3324

ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議,主要用於給遠端登入會話資料進行加密,保證資料傳輸的安全。ssh口令長度太短或者複雜度不夠,如僅包含數字,或僅包含字母等,容易被攻擊者破解,一旦被攻擊者獲取,可用來直接登入系統,控**務器所有許可權。

tcp初始化連線三次握手吧:發syn包,然後返回syn/ack包,再發ack包,連線正式建立。但是這裡有點出入,當請求者收到sys/ack包後,就開始建立連線了,而被請求者第三次握手結束後才建立連線。

客戶端tcp狀態遷移:

closed->syn_sent->established->fin_wait_1->fin_wait_2->time_wait->closed

伺服器tcp狀態遷移:

closed->listen->syn recv->established->close_wait->last_ack->closed

當客戶端開始連線時,伺服器還處於listening,客戶端發乙個syn包後,服務端接收到了客戶端的syn並且傳送了ack時,伺服器處於syn_recv狀態,然後並沒有再次收到客戶端的ack進入established狀態,一直停留在syn_recv狀態。

在這裡,ssh(22)埠,兩條外網ip的syn_recv狀態連線,直覺告訴了管理員,這裡一定有什麼異常。

ssh埠異常,我們首先有必要先來了解一下系統賬號情況:

a、系統賬號情況

1、除root之外,是否還有其它特權使用者(uid 為0)

[root@localhost ~]# awk -f: '$3==0' /etc/passwd

root

2、可以遠端登入的帳號資訊

[root@localhost ~]# awk '/$1|$6/' /etc/shadow

root:$6$38ckfzdjstiue58v$fp.uhwmobqeuqs1z2krj/4eecopi.6d1xmkhgk3j3gy9egvwwbei7nubbqjc./qk12hn8jfuxofeyiklid6hq0::0:99999:7:::

我們可以確認目前系統只有乙個管理使用者root。接下來,我們想到的是/var/log/secure,這個日誌檔案記錄了驗證和授權方面的資訊,只要涉及賬號和密碼的程式都會記錄下來。

b、確認攻擊情況:

1、統計了下日誌,發現大約有126254次登入失敗的記錄,確認伺服器遭受暴力破解

[root@localhost ~]# grep -o "failed password" /var/log/secure|uniq -c

126254 failed password

2、輸出登入爆破的第一行和最後一行,確認爆破時間範圍:

[root@localhost ~]# grep "failed password" /var/log/secure|head -1

jul  8 20:14:59 localhost sshd[14323]: failed password for invalid user qwe from 111.13.***.*** port 1503 ssh2

[root@localhost ~]# grep "failed password" /var/log/secure|tail -1

jul 10 12:37:21 localhost sshd[2654]: failed password for root from 111.13.***.*** port 13068 ssh2

3、進一步定位有哪些ip在爆破?

[root@localhost ~]# grep "failed password" /var/log/secure|grep -e -o 

"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25

[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

| sort -nr 

12622 23.91.***.***

8942 114.104.***.***

8122 111.13.***.***

7525 123.59.***.***

...................

4、爆破使用者名稱字典都有哪些?
[root@localhost ~]# grep "failed password" /var/log/secure|

perl -e 'while($_=<>)'

|uniq -c|sort -nr

9402  root

3265  invalid user oracle

1245  invalid user admin

1025  invalid user user

.....................

c、管理員最近登入情況:

1、登入成功的日期、使用者名稱、ip:
[root@localhost ~]# grep "accepted " /var/log/secure | awk 

'' jul 9 09:38:09 root 192.168.143.100

jul 9 14:55:51 root 192.168.143.100

jul 10 08:54:26 root 192.168.143.100

jul 10 16:25:59 root 192.168.143.100

............................

通過登入日誌分析,並未發現異常登入時間和登入ip。

2、順便統計一下登入成功的ip有哪些:

[root@localhost ~]# grep "accepted " /var/log/secure | awk '' 

| sort | uniq -c | sort -nr | more

27 192.168.204.1

通過日誌分析,發現攻擊者使用了大量的使用者名稱進行暴力破解,但從近段時間的系統管理員登入記錄來看,並未發現異常登入的情況,需要進一步對**伺服器進行入侵排查,這裡就不再闡述。

ssh暴力破解依然十分普遍,如何保護伺服器不受暴力破解攻擊,總結了幾種措施:    

1、禁止向公網開放管理埠,若必須開放應限定管理ip位址並加強口令安全審計

(口令長度不低於8位,由數字、大小寫字母、特殊字元等至少兩種以上組合構成)。

2、更改伺服器ssh預設埠。

3、部署入侵檢測裝置,增強安全防護。

Linux應急響應

檢視登入歷史記錄 last aulast 檢視所有 戶的最後登入記錄 aulastlog 檢視命令歷史記錄 history cat bash history 檢視當前可登入的 戶列表 cat etc passwd grep v s grep e v sbin nologin bin sync sbi...

linux應急響應

linux常用命令 常見日誌的位置以及分析方法 熟悉常規黑客的攻擊手法 常規安全事件的處置思路根目錄下所有.jsp字尾檔案 find name jsp最近3天修改過的檔案 find type f mtime 3最近3天建立的檔案 find type f ctime 3grep nv root etc...

Linux 應急響應基礎

0x01 技能樹 0x02 linux 常用命令 find name jsp find type f mtime 3 find type f ctime 3 grep nv root etc passwd grep nr root grep nr v 404 grep e jsp jspx more...