前言 又花了一塊rmb玩玄機。。。啥時候才能5金幣拿下一個應急靶機,只能說功底還沒到家,唯有繼續加油了。。。 簡介 賬號root密碼linuxrz ssh root@IP 1.有多少IP在爆破主機ssh的root帳號,如果有多個使用","分割 2.ssh爆破成功登陸的IP是多少,如果有多個使用","... ...
目錄
前言
又花了一塊rmb玩玄機。。。啥時候才能5金幣拿下一個應急靶機,只能說功底還沒到家,唯有繼續加油了。。。
簡介
賬號root密碼linuxrz
ssh root@IP
1.有多少IP在爆破主機ssh的root帳號,如果有多個使用","分割
2.ssh爆破成功登陸的IP是多少,如果有多個使用","分割
3.爆破用戶名字典是什麼?如果有多個使用","分割
4.登陸成功的IP共爆破了多少次
5.黑客登陸主機後新建了一個後門用戶,用戶名是多少
應急開始
準備工作
下麵我遇到比較多的且比較重要的都加深顏色了,其實都很重要,只是作者還沒碰到過。
日誌文件 | 說明 |
---|---|
/var/log/cron | 記錄了系統定時任務相關的日誌 |
/var/log/cups | 記錄列印信息的日誌 |
/var/log/dmesg | 記錄了系統在開機時內核自檢的信息,也可以使用dmesg命令直接查看內核自檢信息 |
/var/log/mailog | 記錄郵件信息 |
/var/log/message | 記錄系統重要信息的日誌。這個日誌文件中會記錄Linux系統的絕大多數重要信息,如果系統出現問題時,首先要檢查的就應該是這個日誌文件 |
/var/log/btmp | 記錄錯誤登錄日誌,這個文件是二進位文件,不能直接vi查看,而要使用lastb命令查看 |
/var/log/lastlog | 記錄系統中所有用戶最後一次登錄時間的日誌,這個文件是二進位文件,不能直接vi,而要使用lastlog命令查看 |
/var/log/wtmp | 永久記錄所有用戶的登錄、註銷信息,同時記錄系統的啟動、重啟、關機事件。同樣這個文件也是一個二進位文件,不能直接vi,而需要使用last命令來查看 |
/var/log/utmp | 記錄當前已經登錄的用戶信息,這個文件會隨著用戶的登錄和註銷不斷變化,只記錄當前登錄用戶的信息。同樣這個文件不能直接vi,而要使用w,who,users等命令來查詢 |
/var/log/secure | 記錄驗證和授權方面的信息,只要涉及賬號和密碼的程式都會記錄,比如SSH登錄,su切換用戶,sudo授權,甚至添加用戶和修改用戶密碼都會記錄在這個日誌文件中 |
/var/log/auth.log | 註明:這個有的Linux系統有,有的Linux系統沒有,一般都是/var/log/secure文件來記錄居多 |
查看auth.log文件
這裡著重瞭解一下auth.log,因為這個文件給我坑了。。。
-
auth.log
文件在本題目中存儲了:
登錄成功和失敗的信息,即認證過程,還有登錄成功後系統賬戶的活動動作,比如添加用戶等等(總之這一個文件就包含了我們整個做題的過程) -
auth.log
文件主要存儲與系統認證和授權相關的日誌信息。具體內容包括但不限於以下幾類信息:-
1:登錄和註銷活動:
成功和失敗的登錄嘗試
用戶註銷事件 -
2:認證過程:
SSH 登錄嘗試(成功和失敗)
本地控制台登錄
Sudo 提權事件(成功和失敗) -
3:安全事件:
無效的登錄嘗試
錯誤的密碼輸入
鎖定和解鎖屏幕事件 -
4:系統賬戶活動:
用戶添加、刪除和修改
組添加、刪除和修改 -
5:PAM(Pluggable Authentication Modules)相關信息:
各種 PAM 模塊的日誌輸出,包括認證和會話管理
-
grep -a
註意,這個也把我坑了!!!
選項通常是為了處理可能包含二進位數據的文件,將它們視為文本文件進行處理,那麼也就是說如果你直接cat 該文件沒問題,但是你需要對cat出來的文件內容進行處理的話就會報二進位錯誤,那麼也就是說該文件中存在二進位數據的。
為什麼會存在二進位數據??可能就是為了坑你,而且我也學到了使用-a這個參數能夠避免二進位查看報錯。
步驟 1
1.有多少IP在爆破主機ssh的root帳號,如果有多個使用","分割 小到大排序 例如flag{192.168.200.1,192.168.200.2}
剛剛已經講過我被文件坑了,想必如果在不知道auth.log是日誌文件的情況下,大家應該會去找 /var/log/secure 這個文件吧。。。
ok ,我們現在明確了ssh爆破的日誌記錄都在auth.log中 (他這裡又一個auth.log.1,查看了一下估計就是備份文件了,那我們這裡就是用備份文件)
命令: cat /var/log/auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort -n | uniq -c'
-
解釋:
grep -a "Failed password for root"是過濾出來登錄失敗的記錄
awk '{print $11}'是將失敗每條記錄中的ip提取出來(這裡就是經驗多了就知道,或者你自己慢慢調試,看是第幾列就列印第幾列)
sort -n是將ip進行排序,-n其實你加不加無所謂,反正你調試對了就行,我這個就是加-n就能從小到大排序。
uniq -c就是去重且列印重覆次數 -
flag為:
flag{192.168.200.2,192.168.200.31,192.168.200.32}
步驟 2
2.ssh爆破成功登陸的IP是多少,如果有多個使用","分割
命令: grep -a "Accepted " /var/log/auth.log.1 | awk '{print $11}' | uniq -c
-
解釋
grep -a "Accepted "就是過濾登錄成功的記錄
awk '{print $11}' 獲取登錄ip
uniq -c 去重 -
flag為:
flag{192.168.200.2}
步驟 3
3.爆破用戶名字典是什麼?如果有多個使用","分割
-
錯誤示範:
這裡本人僅僅列印了第九列,這裡其實是不對的,因為無效用戶名會導致他出現invalid user xxxx,其實xxxx才是我們要的用戶名,所以我下麵這種方式就沒有不同的用戶名都列出來。
-
正確方式:
這裡用到了perl語言,我還沒搞懂就不解釋了,原理肯定是我想的那樣,就是涉及到知識盲區了而已。
命令:cat /var/log/auth.log.1 | grep -a "Failed password" |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
-
flag為:
flag{root,user,hello,test3,test2,test1}
步驟 4
4.成功登錄 root 用戶的 ip 一共爆破了多少次
-
我們已知成功登錄root的ip地址是:flag{192.168.200.2}
命令:grep -a "192.168.200.2" /var/log/auth.log.1 | grep -a 'Failed password root' | awk '{print $11}' | uniq -c
-
flag為:
flag{4}
步驟 5
5.黑客登陸主機後新建了一個後門用戶,用戶名是多少
由於我們現在已經知道了auth.log文件能夠記錄系統賬戶活動,那我們直接grep該文件即可,添加用戶的命令是net user
-
篩選 net user命令即可
命令:grep -a 'net user' /var/log/auth.log.1
-
flag為:
flag{test2}
總結
成果:
flag{192.168.200.2,192.168.200.31,192.168.200.32}
flag{192.168.200.2}
flag{root,user,hello,test3,test2,test1}
flag{4}
flag{test2}
通過這日誌分析題,瞭解到了日誌文件其實還有一個auth.log的文件日誌,不僅僅能夠記錄認證過程,還能知道系統賬戶執行了哪些賬戶操作,還有其他記錄類型。
需要註意的是,該文件可能包含一些二進位內容,所以我們grep的時候需要用-a參數進行過濾操作,否則會報錯。
總體體驗還是挺好的,第二次因為grep報錯原因浪費掉了好多時間,差幾分鐘就要重開第三次,玩的就是心跳啊。。。
本文來自博客園,作者:竹等寒,轉載請註明原文鏈接。