提權枚舉
現在我們直接從低權限用戶開始;我們先按照提權步驟,簡單的系統枚舉
雖然我們知道可以利用系統版本低進行內核提權,內核提權雖然比較快比較方便,但也比較暴力,缺點非常明顯;很容易導致系統服務中斷,或者不穩定
- 打比賽除外,你打比賽只要拿到flag得分都行
列出賬號具有的權限
執行enc,可以用root權限執行,不需要密碼
ENC探索與查找
使用strings是否能看一下enc的內容;同樣是沒有權限的
使用file enc
enc: executable, regular file, no read permission
他說這是個可執行的不可讀權限文件
我們運行enc,需要密碼;嘗試了password.txt與user.txt都不行
- 新的知識點openssl
此處應該是另一種思路尋找enc的泄露密碼;根據經驗,存放密碼應該是系統備份的位置
我們這個權限應該是有很多報錯的,將報錯扔掉
find / -name '*back*' 2>/dev/null
后來我實驗發現刪不刪報錯都一樣,應該是系統不支持的問題,因為頁面一閃而過,我們對結果數據進行排序
,再做個less分屏顯示;貌似沒多大卵用;
我們在搜集過程中要么用backup要么用pass,為什么不用password,因為后邊他寫的是wd還是word就不清楚;如果我們搜bak就太多了
find / -name '*backup*' 2>/dev/null | sort | less
搜集一下信息吧;
/opt/backup
/opt/backup/server_database/backup_pass
/var/backups
將這個三個地方都看一下;嗯,試了下/var/backups,有passwd的備份,但是沒有權限去讀,shadow也是相同,sudo下看能不能cp到/tmp目錄下;不行,再看其他文件有無信息;
你的密碼為了enc,backup_password;然后祝福我們
找的過程非常順利,主要是怎么搜索,查找的時候用引號將關鍵詞,用的backup查找,也可以用pass,避免信息洪水,把錯誤信息扔掉,還有排序,less使用
ENC破解
運行enc,輸出了good;
有兩個文件貌似無權顯示,加個sudo再嘗試下;
好的,這樣就出來了
cat;一個像base64,一個說我們是ippsec的粉絲,將ippsec字符串轉成md5哈希形式,用它獲得真實自己
md5格式生成
echo -n 'ippsec' |md5sum
-n 不輸出尾隨換行符
都是固定格式,不會就自己查資料,要么是–help
要么是man 命令
如果不用n;看一下;這個結果完全是不一樣的
一定要知道,如果只是視覺上來看,或者文本標異的話那就不需要;如果設計到字節級操作,那就要考慮到
美化下md5生成的值,echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}'
awk是個文本編輯器,-F 是指定靠什么字符進行分割,第一第二分別是$1、$2、…
366a74cb3c959de17d61db30591c39d1
openssl破解語句
看紅隊筆記才知道給的編碼是openssl加密解碼的,通過key.txt解出enc.txt的內容;后來才了解到,openssl解密后跟enc,怪不得這個思路沒走,現在知道就得記住了
enc與openssl是捆綁的,
解密是-d 因為里面有base64編碼,
我們還要解64編碼-a 64位,
-k 指定上一步生成的md5
構造Cipher數據
這個是假如我們不知道base64編碼(因為編碼有很多,下次可能就是不認識的編碼)解決的方法
openssl --help將編碼復制到文件里進行整理
我們用awk全局替換所有空格替換成回車鍵進行打印
- gsub 替換
- wc -l 行計數
- uniqc 取唯一
awk '{gsub(/ /,"\n");print}' cipher | sort | uniq | wc -l
整理完之后就可以把這些重定向到cipher里面
awk '{gsub(/ /,"\n");print}' cipher | sort | uniq > ciphers
cat
這個做完之后掉頭繼續做openssl破解語句,看openssl enc --help說明-k怎么使用
那我們還需要對md5進行echo值進行修改,那我們直接在輸出修改語句吧
od 是linux系統命令,用man去查,
轉儲文件以8進制
- -A是根 不需要指定任何類型那就是n
- -t x1
echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | od -A n -t x1
多了一個字符0a,再對oa去掉
tr -d 去掉任何換行符
echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | tr -d '\n' | od -A n -t x1
那現在還要進行修剪,
echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | tr -d '\n' | od -A n -t x1 | tr -d '\n' | tr -d ' '
這個才是我們需要的,指定給key的
3336366137346362336339353964653137643631646233303539316333396431
for循環成功執行
們可以構造bash腳本,寫一個for循環,將CipherTypes中的每一行替換為上述命令中的-cipher,bash腳本如下:
for cipher in $(cat ciphers);do echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$cipher -k 3336366137346362336339353964653137643631646233303539316333396431;done
密碼為tribute_to_ippsec,很可能就是saket的ssh密碼
直接進入了ssh;提高交互性
python -c 'import pty;pty.spawn("/bin/bash")'
提權
給了提示信息,他說可以讓我們執行此文件
/home/victor/undefeated_victor
如果你能打敗我,那就在你面前挑戰我;/challenge: 未找到
那我們就寫入內容
那我們繼續執行/bin/bash追加到challenge
對文件加執行權限,再次運行提示的程序,可以看到提權成功
這個靶機openssl思路也是解決了
eated_victor
如果你能打敗我,那就在你面前挑戰我;/challenge: 未找到
那我們就寫入內容
那我們繼續執行/bin/bash追加到challenge
對文件加執行權限,再次運行提示的程序,可以看到提權成功
這個靶機openssl思路也是解決了
目前紅隊打靶就就更新到這里吧,要去忙其他的事情了,記錄下紅隊視頻的記錄
https://www.bilibili.com/video/BV1ue4y1S7Zm?t=2.6
該去復習藍隊知識備戰護網了,還需要保持學業期末成績不掛科,之后再進行專升本的學習,真的是突然發覺時間不夠用了,來年再見此期紅隊打靶更新吧!!!