作者名:白晝安全
主頁面鏈接: 主頁傳送門
創(chuàng)作初心: 以后賺大錢
座右銘: 不要讓時代的悲哀成為你的悲哀
專研方向: web安全,后滲透技術
每日雞湯: 20歲的年紀不該困在愛與不愛里,對嗎
在紅隊行動中在網絡中獲得最初的立足點是一項耗時的任務。因此,持久性是紅隊成功運作的關鍵,這將使團隊能夠專注于目標,而不會失去與指揮和控制服務器的通信。所以,這就引出了我們今天要講解的內容——權限維持
當然,權限維持我們也是分為windows和linux來講,這篇文章就講解的是windows的權限維持姿勢,這里的姿勢也只是講一些常見的,用的比較多的姿勢來講,希望博客的內容能夠幫助到大家
一、輔助功能鏡像劫持
1、輔助功能介紹
什么是windows的輔助功能呢
就比如說想粘滯鍵這樣的程序,或者放大鏡這些都是windows的輔助功能
[1]、粘滯鍵
程序地址:粘滯鍵: c:\windows\system32\sethc.exe
快捷啟動方式:連按五下shift鍵即可啟動對應的程序,并彈出
彈出頁面如下
注意:啟動粘滯鍵并不需要用戶登錄,如下
[2]、放大鏡
程序地址:放大鏡:c:\windows\system32\Mageify.exe
快捷啟動方式:"win+",就是win鍵和+號鍵一起按
彈出畫面如下
[3]、屏幕鍵盤
程序地址屏幕鍵盤:c:\windows\system32\osk.exe
快捷啟動方式CTRL + WIN + O鍵
彈出頁面如下
除此之外還有一些,講述人,高度比對,篩選鍵等,這里就不一一介紹了
總而言之,每個輔助功能都對應著一個目標程序,并且有對應的啟動方式,最大的特點是他們都不需要用戶登錄就可以通過快捷方式使用
2、利用方式講解
[1]、利用條件1、能連接目標的3389服務,即rdp2、版本比較老,因為新版本windows多了第四種安全權限,而系統自帶的一些文件基本都是這個權限,導致此方法無法利用,而且一些家庭版的windows是沒有3389這項服務的,所以使用前還是要探測好比如windows server 2012這種
像下面這樣就是不支持
[2]、利用方式
上面講了,輔助功能在用戶沒有登錄時就可以通過快捷方式來啟動對應其對應的程序,現在我們來模擬一個環(huán)境,環(huán)境如下我們此時已經獲取到了windows目標的system權限,并且能夠連接目標的3389服務,即遠程桌面,而我們此時想在目標的機器上做一個權限維持的操作,不讓我們好不容易拿到的權限丟失
如果我們生成一個名為sethc.exe的木馬程序,將它上傳到目標的c:\windows\system32\目錄下,把原來那個粘滯鍵對應的sethc.exe刪掉,此時當目標連按5下shift啟動的就是我們的木馬程序,就可以拿到權限而我們最開始又能直接遠程連接目標的3389端口,每次我們想獲取權限時就遠程連接目標,連按5下shift就可以執(zhí)行木馬程序,重新拿到我們最開始的system權限
[3]、演示那我們具體應該怎么操作呢?
這里在 windows server 2003 系統上,以利用 粘滯鍵為例,給大家演示一下
首先粘滯鍵對應的程序位置如下:c:\windows\system32\sethc.exe
將木馬上傳到該位置,并命名為sethc.exe
kali開啟木馬的監(jiān)聽
使用3389遠程連接目標桌面
不需要登錄,只要遠程按五下粘滯鍵即可返回權限
這樣就算利用成功了,可以看到還是system的權限注意:如果我們成功拿到權限,并且目標也存在3389服務,但是并沒有開啟,那我們就可以使用msf自帶的3389開啟模塊,模塊名如下post/windows/manage/enable_rdp
如下就是成功開啟
開啟之后就可以繼續(xù)操作了
二、IFEO,映像劫持
1、原理講解
原理:當我們雙擊運行 程序的時候。系統就會查詢 IFEO注冊表。如果發(fā)現存在完全相同的子鍵,就會查詢對應的子鍵中包含的" debugger"鍵值名,如果這個 鍵值名不為空的情況下 系統則會把 debugger參數指定的程序文件來作為啟動的程序
這個IFEO在什么位置呢?如下計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
也就是這里的Image File Execution Options目錄
里面都是你電腦安裝過的exe程序
2、運行演示這里我們以ie瀏覽器來做一個攻擊演示舉例,如下
[1]、圖形操作
首先查看ie瀏覽器的exe程序對應的鍵值
可以看到子鍵中并不包含"debugger"鍵值名,所以我們可以給它新建一個,如下
注意:新建時要選擇字符串值
可以看到新建時 值為空,此時 不影響
但是如果把 值改為指定的執(zhí)行程序,那么雙擊程序就會 運行debugger的值指定的程序,因為debugger指定的程序的優(yōu)先級比較高。
這里我還沒準備木馬文件,就以cmd為例,如下
此時我們運行ie瀏覽器,結果如下
如果我們把debugger的值指定為我們的惡意木馬程序,那么每當用戶運行ie瀏覽器時,就會啟動我們的惡意木馬,反彈權限,達到權限維持的目標
其實這就是一種技術手段,原理類似于輔助功能鏡像劫持,只不過改的是注冊表里面的東西
[2]、命令操作
也可以用命令來添加,用命令添加注冊表項的指令如下reg add "注冊表項路徑" /v “鍵名” /t 鍵值類型 /d “值名”
下面的命令就是達到運行ie瀏覽器達到執(zhí)行我們的木馬文件的效果(test.exe就是我們的木馬文件)
注意:這個debugger鍵值如果不刪的話他對應的初始程序(比如上面例子中的ie瀏覽器就相當于損壞了,注意分寸哦)
三、啟動項
這個也比較簡單,其實跟上面兩種的原理差不多,都是替換正常文件為惡意文件
1、文件目錄啟動項
windows自己帶有啟動項目錄,目錄中的文件都是開機自啟,位置如下C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
這個就直接把木馬文件放到這個目錄就可以了,每次用戶開機時就會啟動我們的惡意文件,這樣自然就能達到權限維持的目標
2、注冊表的啟動項
注冊表也有對應的啟動項服務目錄,將惡意文件添加到啟動項服務目錄即可,但是有的目錄內容改動需要管理員權限,有的不需要,這里也分開介紹
[1]、無需管理員權限
改動里面的內容不需要管理權限,需要以用戶權限身份來寫(system算系統權限,不算用戶權限),服務項目錄如下:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
[2]、需要管理員權限
如果改動里面的內容需要管理員權限(可用system權限寫入),之后什么用戶執(zhí)行,返回的就是什么權限HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
3、在線演示
這里為了方便就直接用注冊表的啟動項了,同樣可以用reg命令來添加值,如下reg add "注冊表項路徑" /v “鍵名” /t 鍵值類型 /d “值名”
這里的鍵名隨便定(當然為了隱蔽性也可以認真點),鍵值設置為我們的惡意程序,路徑就是上面提到的注冊表項中的啟動目錄
這樣目標機器在下一次開機時就會直接運行我們的木馬程序了
四、服務基于服務的攻擊,前面我在很多博客中都已經介紹過了,比如修改服務路徑,增加啟動項服務等等,因為服務都是默默在后臺運行,且都是system權限,所以也非常適合我們做權限維持
1、命令操作
[1]、創(chuàng)建服務
新建服務的指令如下sc create 服務名稱 binpath="對應執(zhí)行程序的路徑" start="啟動方式" obj="指定權限" 注意:這里的binpath指定的程序為單純的木馬程序時有點問題,有可能會出現閃退,所以一般我都是調用cmd去執(zhí)行木馬程序,所以命令可以更改為如下sc create 服務名稱 binpath="cmd.exe /k 要執(zhí)行的文件路徑" start="啟動方式" obj="指定權限"
效果如下
mysql2008就是我創(chuàng)建的服務名
cmd.exe /k c:\windows\test.exe就是該服務對應的指令
auto的啟動方式就是自動運行的意思
localsystem意思就是已system權限作為這個服務對應的權限
[2]、啟動服務
就是下面這一條命令就可以了sc start mysql2008
效果如下
成功拿到權限
2、Msf操作
Msf也有對應的自帶模塊,操作步驟如下
1、meterpreter會話下執(zhí)行如下命令run metsvc
效果如下:
2、開啟監(jiān)聽set payload windows/metsvc_bind_tcpset lport 31337set rhost 192.168.15.167run
因為這里是正向的payload,即bind模式,所以開啟監(jiān)聽后就可以直接拿到權限了
五、計劃任務這個也沒啥好講的,前面的內網滲透很多操作上都涉及了這種方法,下面我們也來看看windows利用計劃任務做權限維持的姿勢
在windows實現計劃任務主要有schtasks與at二種方式windows2003是用at方式,win7/2008以上使用schtasks方式 因為windows2003現在用的比較少了,所以這里我們就介紹一下 schtasks方式實現計劃任務權限維持,有興趣的朋友們可以去看看at方式
查看計劃任務,指令如下schtasks
創(chuàng)建計劃任務,指令如下schetasks /create /sc minute /mo 1 /tn "mysqlstart" /tr c:\windows\test.exe /ru system /create 就是創(chuàng)建計劃任務
/sc 指定模式,這里minute代表以分鐘為時間模式
/mo 指定時長,我這里設置為1,配合前面的模式就代表每分鐘執(zhí)行1次(設為2就是2分鐘執(zhí)行一次)
/tn 指定計劃任務名稱,像我這里的名稱就是“mysqlstart”
/tr 指定你要啟動的目標程序,就指定木馬就可以
/ru 指定以哪個權限啟動,我這里選擇的是system權限
可以看到這里就創(chuàng)建成功了,再來看看監(jiān)聽的位置
可以看到已經拿到shell了,說明我們的木馬程序成功被計劃任務執(zhí)行,就算斷開后再開啟監(jiān)聽還是能拿到權限
六、winlogon用戶初始化(慎用)winlogon.exe是windows中非常重要的進程,在用戶 還沒有登錄系統之前就存在。當用戶登錄時。winlogon進行負責 將用戶配置文件加載到注冊表
對應注冊表所在目錄如下HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
如下,我標記的Userinit對應的路徑就是winlogon對應的程序
這個原理就不給大家解釋了,因為涉及了匯編,內存之類的東西,比較復雜(主要是我也不太懂,滲透的時候會用就行)
同樣Userinit的鍵值對也可以被修改,如下
可以看到它本來指向的應用程序是c:\windows\system32\Userinit.exe
如果我們把它執(zhí)行的應用程序替換為我們的木馬文件,如下
修改后,此時在攻擊端(kali)開啟監(jiān)聽
再控制目標機器重啟,此時的監(jiān)聽端如下
已經成功拿到了目標權限,但這個方法要慎用注意注意:為什么說這個方法要 慎用呢,因為修改Userinit鍵對應的值后,目標機器能夠開機,能夠正常出現密碼輸入框,但是啊但是,雖然你拿到了權限,但是目標輸入密碼后目標機器會進入 無限黑屏的狀態(tài),除非你用拿到的權限修改剛才的Userinit鍵對應的值為原來的值,就是改回原來的狀態(tài),此時才能成功登錄,不然就黑屏一輩子或者拿去重裝吧,所以一定要 慎用!慎用!慎用!
七、文件關聯
1、原理講解文件關聯就是將一種類型的文件與一個可以打開他的程序建立起一種關系
這個是什么意思呢?我們就以簡單的記事本來舉例,右鍵桌面新建一個記事本,當雙擊時就會彈出一個空白的記事本
因為這是一個txt文件,我們也可以使用assoc命令來查看txt后綴指向的一個文件類型,指令如下assoc .txt
可以看到指向的是textfile文件類型
再來查看一下這個文件類型是以什么方式打開,指令如下ftype testfile
就說明txtfile文件打開時是用c:\windows\syswow64\notepad.exe這個程序打開的也就相當于txtfile文件與notepad這個程序關聯,打開textfile就會用notepad來進行打開,所以肯定是執(zhí)行了這個notepad程序的既然執(zhí)行了這個程序,那我們以攻擊的思路來想,如果我們把textfile文件對應的啟動程序改為我們的木馬程序,那是不是每次用戶打開txt文件時,系統就會執(zhí)行我們設置好的木馬呢?所以關聯文件來做權限維持也就是這個原理
2、操作演示那么例如上面這種txtfile與notepad程序的關聯關系在哪修改呢?同樣是在我們的注冊表里面
例如textfile關聯文件的注冊表項目錄如下計算機\HKEY_CLASSES_ROOT\txtfile\shell\open\command
可以看到這個默認鍵值中的值就是txtfile所關聯的啟動程序,每次運行txtfile文件就是用這個值對應的應用打開
現在是notepad.exe,我們把它改為我們的惡意文件
(為了方便這里的惡意文件我們直接用cmd代替了,換成木馬文件也是同理)
修改后我們再嘗試打開txt文件,效果如下
可以看到雙擊txt文件直接就打開了cmd,如果是木馬文件就會直接執(zhí)行了,并反彈權限,達到權限維持的目的
3、拓展說明
這種利用方式如果使用txt來試關聯文件,就很明顯有點,因為用戶打不開txt文件,一看就知道有問題,可以改一些冷門點的后綴,比如xml之類的,這樣就會隱蔽很多
八、其他
當然提權的姿勢不可能只有這幾個,我這里演示的都是比較常用的,平時滲透中用的比較多的,一些冷門的,復雜的姿勢感興趣的同學們可以自己下去研究一下
聯系客服