青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
講到Exploit都會涉及到提升權限的問題,所謂提升權限就是利用系統的漏洞來獲得更高的Privilege。比如說,你用一般用戶的賬號登錄Windows NT/Windows 2000后,你就只能作有限的操作,卻不能加減用戶,不能往系統目錄中存寫文件等等;但等到你通過系統的漏洞獲得了Administrator或者Local System的權限以后,你也就可以作這些事了。

我研究Exploit的時間并不是很長,但看到有關在Windows操作系統中提升權限的方法與實例還真不少。剛才到Google上用關鍵詞“microsoft”“Windows”“privilege”“elevation”去搜索一下,居然返回3000多個結果。要知道,這還只是公布出來的部分,江湖中還有很多必殺絕技是不輕易示人的。

要想在這里詳細地介紹所有Windows中提升權限的方法,我的功力是遠遠不夠的----估計相當于丐幫一袋弟子的水平而已。所以呢,這一章所針對的讀者應該是丐幫的入門弟子,如果你們哪位功力要用兩個以上的麻袋來裝的話,請盡管跳過這一章。

我在選擇這一章的Exploit例子時,有意選擇針對W2K操作系統、附帶有源程序的例子,這樣方便大家在自己的機器上試驗。這些Exploit并不是每個都成功,但是我感覺它們有不少可借鑒之處,可以通過學習它們來了解黑客的思路,從而提高自己的反入侵能力。

記住我的機器dallas是W2K Service Pack 1,如果你們的計算機運行不同版本的W2K Service Pack,這些Exploit可能需要改動。

順便說一句,實際上在第一章里面我們已經提到一種在Unix或者Linux中提升權限的方法,就是去Exploit超級用戶Root所有的、具有SUID位的執行程序。在Windows操作系統中,沒有SUID這種說法,但是有一種RunAs服務(Service)進程可以提供類似于SUID的功能,而且是有可能被Exploit的。


利用Windows 2000中的Named Pipe來提升權限


Windows 2000
中的RunAs服務進程可以讓用戶甲以用戶乙的權限運行程序,這類似于UnixLinux系統中SUID位功能。W2K中的一個APICreateProcessWithLogonW就利用了RunAs服務進程,用戶甲調用這個CreateProcessWithLogonW時把用戶乙的賬號(Account)、域(Domain)、密碼(Password)提交給Windows操作系統作Authentication,如果Authentication成功,那么就接著運行指定的程序,而且這個程序運行時具有用戶乙的權限。

CreateProcessWithLogonW API的定義如下:
BOOL CreateProcessWithLogonW(
LPCWSTR , // 用戶乙的賬號(Account)
LPCWSTR , //用戶乙的域(Domain)
LPCWSTR , // 用戶乙的密碼(Password)
DWORD , // logon option
LPCWSTR , // executable module name
LPWSTR , // command-line string
DWORD , // creation flags
LPVOID , // new environment block
LPCWSTR , // current directory name
LPSTARTUPINFOW , // startup information
LPPROCESS_INFORMATION // process information
);

那么CreateProcessWithLogonW是如何把用戶乙的賬號信息傳給RunAs服務進程的呢?在Windows操作系統中有很多Interprocess Communication的方法,大概最常見的就是 Pipe了。我們在上一章對IIS的Exploit中也用到了Pipe,不過那是沒有名字的pipe (Anonymous Pipe);在這里CreateProcessWithLogonW是用有名字的Pipe(named Pipe)與RunAs聯絡的,這個named Pipe就是“\.pipesecondarylogon”。

到目前為止,一切都正常。大家要問:RunAs的漏洞在哪里呢?它的漏洞是如何被Exploit的呢?根據RADIX Team的解釋:當用戶甲用CreateProcessWithLogonW創建具有用戶乙權限的進程時,它是不會核實“\.pipesecondarylogon”Server端究竟是連通到RunAs進程還是連通到其它的進程。如果RunAs服務進程在某一時刻停止運行的話,黑客進程可以趁機創建一個也叫“\.pipesecondarylogon”named Pipe,然后黑客進程就假裝成RunAs服務進程在PipeServer端等著接受信息。接著我們無辜而無知的用戶甲調用CreateProcessWithLogonW了,它也不先調查一下Named Pipe另一端的進程身份,就把用戶乙的賬號信息由偽造的named Pipe傳了過去,傳呀傳,傳呀傳,一直傳到黑客程序的耳朵里。

RADIX Team還編寫了一個Exploit程序radix1112200101,這個程序把通過Named Pipe “\.pipesecondarylogon”傳來的用戶乙賬號信息(包括用戶名、域名、密碼)統統顯示出來。限于篇幅,我就不轉載這個程序了,大家可以到他們的網站去看。不過這里我準備演示一下在dallas上如何使用radix1112200101來獲得dallas本地域(Local Domain)的超級用戶Administrstor的密碼。被Exploit的程序(就是因為使用CreateProcessWithLogonW而泄密的家伙)叫radixvictim.cpp,它以超級用戶Administrator的權限啟動一個NotePad程序。


<==========================radixvictim.cpp===============================>

// radixvictim.cpp : Defines the entry point for the application.
//

#define _WIN32_WINNT 0x0500
#define UNICODE

#include <windows.h>
#include <winbase.h>
#include <stdio.h>
#include <winuser.h>

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow = SW_SHOW)
{
// TODO: Place code here.

LPCWSTR lpUsername = L"Administrator"; // user's name
LPCWSTR lpDomain = L"dallas"; // user's domain
LPCWSTR lpPassword = L"moda"; // user's password
DWORD dwLogonFlags = LOGON_NETCREDENTIALS_ONLY; // logon option
LPCWSTR lpApplicationName = L"D:\Winnt\NotePad.exe";
LPWSTR lpCommandLine = L"NotePad.exe"; // command-line string
DWORD dwCreationFlags = CREATE_NEW_CONSOLE; // creation flags
LPVOID lpEnvironment = NULL; // new environment block
LPCWSTR lpCurrentDirectory = NULL; // current directory name
STARTUPINFO StartupInfo; // startup information
PROCESS_INFORMATION ProcessInfo; // process information

BOOL ret;

ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
ZeroMemory(&ProcessInfo, sizeof(ProcessInfo));

ret = CreateProcessWithLogonW(
lpUsername,
lpDomain,
lpPassword,
dwLogonFlags,
lpApplicationName,
lpCommandLine,
dwCreationFlags,
lpEnvironment,
lpCurrentDirectory,
&StartupInfo,
&ProcessInfo
);


if (! ret )
ExitProcess (GetLastError()) ;

return 0;
}

<================================================================>

在偽造Named Pipe之前,必須關閉RunAs的“\.pipesecondarylogon”,要不然運行radix1112200101會得到Permission Denied之類的錯誤。

我先以超級用戶Administrator登錄dallas,然后從Administrative Tools->Services中終止RunAs服務進程 (一般的情況下,只有超級用戶Administrator才能終止RunAs服務進程)。這樣RunAs擁有的“\.pipesecondarylogon”就關閉(Close)了。

再以我的一般用戶賬號moda登錄dallas,接著運行radix1112200101偽造一個新的Named Pipe “\.pipesecondarylogon”。


D:MyJobsecuritylabradixDebug>radix1112200101
Created pipe and waiting for clients...


怎么確定“\.pipesecondarylogon”被成功地創建了呢?我們可以使用pipelist程序,這是我從sysinternals網站下載的寶貝之一,它能列出系統中所有的Named Pipe:

D:MyJobtoolpipelistRELEASE>pipelist

PipeList v1.01
by Mark Russinovich
http://www.sysinternals.com

Pipe Name Instances Max Instances
--------- --------- -------------
InitShutdown 2 -1
lsass 5 -1
ntsvcs 50 -1
scerpc 2 -1
netNtControlPipe1 1 1
DhcpClient 1 -1
netNtControlPipe2 1 1
Winsock2CatalogChangeListener-194-0 1 1
netNtControlPipe3 1 1
spoolss 2 -1
。。。。。。。
。。。。。。。
netNtControlPipe21 1 1
tapsrv 2 -1
ROUTER 2 -1
WMIEP_2ac 2 -1
WMIEP_154 2 -1
SecondaryLogon 1 10

D:MyJobtoolpipelistRELEASE>

你們看到,最后一個Named Pipe就是radix1112200101剛剛偽造Secondarylogon。

現在運行radixvictim。對於這個程序,用戶甲就是無辜而無知的“moda”,而用戶乙就是超級用戶Administrator。請注意Exploit程序radix1112200101的輸出:

D:MyJobsecuritylabradixDebug>radix1112200101
Created pipe and waiting for clients...
Read 4 bytes. (ASCII Dump)
>
? Read 318 bytes. (ASCII Dump)

? ? 8
X j □ □
? ? ? - + -
? A d m i n
i s t r a t o r
? d a l l a
s ? m o d a
* D
: W i n n t
N o t e P a d .
e x e ? N o
t e P a d . e x
e l
D H l

W i n S
t a 0 D e f a
u l t _
D:MyJobsecuritylabradixDebug>

你們可以看到,超級用戶Administrator的信息(包括密碼)全部都被radix1112200101接收到了。得到Administrator的賬號信息后,再提升權限就易如反掌了!

這個Exploit的關鍵在于:第一,Named Pipe的名字是廣為人知的,黑客的Named Pipe也可以貼上同樣的名字“\.pipesecondarylogon”去冒充;第二,CreateProcessWithLogonW在使用Named Pipe之前并沒有核實Named Pipe的Server端進程,它不管Server端是連通到RunAs進程還是到其它的進程。 類似的這樣問題是在Windows操作系統中是廣泛存在的,再看下面的例子:

我是在網站http://www.dogmile.com上看到的這個例子的,作者為maceo。根據maceo的研究,Windows 2000操作系統廣泛使用了Named Pipe來控制(或者說管理)服務進程,包括象Clipbook服務進程呀、Telnetd服務進程呀等等,而且這些Named Pipe的名字是可以猜得到的。如果黑客搶先用猜到的名字創建Named Pipe的話,服務進程啟動時會直接連接到黑客的Named Pipe上,於是黑客程序就可以通過ImpersonateNamedPipeClient()取得服務進程的權限(缺省設置為Local System權限)。那么,黑客是怎樣猜到這些Named Pipe的名字的呢?很簡單,他是從Registry中查詢到的,在下面的地址:

HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
ServiceCurrent

如果ServiceCurrent的雙字值(DWORD Value)是X,那么服務進程所用到的Named Pipe的名字就是“\.pipenetNtControlPipe(X+1)”,這也就是黑客要偽造的Named Pipe的名字。

maceo給出了幾個Exploit程序,我下面就在Dallas上演示其中的一個----PipeUp。這個Exploit程序首先從Registry中取得下一個服務進程要使用的Named Pipe名字,然后搶先創建這個Named Pipe;緊接著它啟動服務進程ClipBook,由于ClipBook啟動后會主動連接這個偽造的Named Pipe,於是PipeUp就通過函數ImpersonateNamedPipeClient而獲取了Local System的賬號權限(因為ClipBook一般以Local System的賬號運行)。這樣進程PipeUp就有足夠的權限把Local System在Security Account Manager(SAM)中的信息讀出來。

你們可以從網站http://www.dogmile.com下載這個Exploit的源程序,這里限于篇幅我就不轉載這個程序了(畫外音:其實是限于版權)。

先以Administrator的賬號登錄dallas,把ClipBook服務進程停止。

再以一般用戶moda登錄,運行Exploit程序PipeUp,下面是PipeUp運行及Exploit的結果:

D:MyJobsecuritylabPipeUpDebug>pipeup
The ClipBook service is not started.

More help is available by typing NET HELPMSG 3521.

Impersonating: SYSTEM
Dumping SAM for RID 500 ...

F:0x020001000000000010f3e3f89b33c2010000000000000000f0a09fa11061c101ffffffffffff
ff7fb0c25115f430c201f401000001020000100200000000000000002a010100000000000d000a00
0000

V:0x00000000a800000002000100a80000001a00000000000000c40000000000000000000000c400
00006c00000000000000300100000000000000000000300100000000000000000000300100000000
00000000000030010000000000000000000030010000000000000000000030010000000000000000
00003001000000000000000000003001000000000000000000003001000008000000010000003801
000014000000000000004c0100001400000000000000600100000400000000000000640100000400
000000000000010014808800000098000000140000003000000002001c000100000002c014004400
05010101000000000001000000000200580003000000000014005b03020001010000000000010000
000000001800ff070f00010200000000000520000000200200000000240044000200010500000000
000515000000dde8e41c32621f2a8aa7323ff4010000010200000000000520000000200200000102
0000000000052000000020020000410064006d0069006e006900730074007200610074006f007200
00004200750069006c0074002d0069006e0020006100630063006f0075006e007400200066006f00
72002000610064006d0069006e006900730074006500720069006e00670020007400680065002000
63006f006d00700075007400650072002f0064006f006d00610069006e0001020000070000000100
01001913f29278bf71eaff44492fb2f9ed05010001002a730d35666e44ffa4f37b29011d882f0100
010001000100

D:MyJobsecuritylabPipeUpDebug>


大家看了上面兩個例子有什么想法呢?肯定有人會覺得這些Exploit有“做弊”的嫌疑:一方面,在radix1112200101(或PipeUp)運行之前,RunAs(或ClipBook)服務進程都必須先終止運行,這樣黑客進程才有可能偽造Named Pipe,才有機會竊取Administrator(或Local System)的賬號信息;而另一方面,黑客必須先取得至少Administrator的權限才能終止RunAs(或ClipBook)進程。
這兩個方面看起來是互為前提條件的,是個無解的“Deadlock”。實際上,我在SecurityFocus網站上看到Microsoft針對Exploit程序radix1112200101的回復,它指出這個Exploit是兩難的,現實中不太可能發生。

要實現這個Exploit確實有些難度,但是這并不等于不會發生!假如某個服務進程有Bugs,象緩沖區溢出呀、Signal不當reentrant呀等等,那么在運行中這個服務進程就有可能被黑客故意整垮掉(Crash),然后黑客就可以偽造它的Named Pipe,再利用上面的Exploit程序提升其權限。

而且有時候我們并不需要先終止服務進程,我在Microsoft的Security Bulletins網站上找到一個例子----編號為MS01-031的一篇文章 “Predictable Name Pipes Could Enable Privilege Elevation Via Telnet”。中文大意是說:當你通過Telnet遠程聯線到Windows 2000系統中的Telnetd服務進程時,Telnetd會創建一個新的Named Pipe,同時運行這個Named Pipe攜帶的初始化程序。由于這個Named Pipe的名字是可以猜到的(Predictable),所以黑客可以搶先用猜到的名字創建這個Named Pipe,同時讓這個Named Pipe攜帶黑客碼作為初始化程序;當Telnetd服務進程發現這個Named Pipe已經存在時,它既不重新創建一個新的Named Pipe,也不核實一下這個Named Pipe的創建者是否可以信賴(Trustable),相反,它直接使用這個Named Pipe,并且把其攜帶的黑客碼當成初始化程序運行。 由于在缺省設置的情況下,Telnetd服務進程具有Local System的權限,所以黑客碼也將以這個最高的權限橫沖直撞。

Microsoft 的文章并沒有告訴我們這個可以猜得到的Named Pipe名字是什么----這是可以理解的,畢竟誰也不會開門掬盜。不過我在dallas上作了個試驗:分別聯結兩個Telnet SessionDallas上,然后用Pipelist程序觀察在TelnetNamed Pipe的變化情況:

D:MyJobtoolpipelistDebug>pipelist

PipeList v1.01
by Mark Russinovich
http://www.sysinternals.com

Pipe Name Instances Max Instances
--------- --------- -------------
InitShutdown 2 -1
lsass 5 -1
ntsvcs 52 -1
scerpc 2 -1
netNtControlPipe1 1 1
。。。。。。。。。。
tapsrv 2 -1
ROUTER 2 -1
WMIEP_644 2 -1
WMIEP_2c8 2 -1
netNtControlPipe28 1 1
telnetd000001fc.00000000 1 1
telnetd000001fc.00000001 1 1
telnetd000001fc.00000002 1 1
telnetd000001fc.00000003 1 1

上面用黑體字標出來的Named Pipe:netNtControlPipe28屬于Telnetd服務進程,而telnetd000001fc.00000000與telnetd000001fc.00000001屬于第一個Telnet Session,telnetd000001fc.00000002與telnetd000001fc.00000003屬于第二個Telnet Session。 如果這時有第三個用戶Telnet進來的話,Telnetd要用到的Named Pipe名字將會是telnetd000001fc.00000004telnetd000001fc.00000005,我敢賭100塊錢!!!

你們看到,這個例子并不需要終止任何服務進程,理論上說你只需要具有一般用戶賬號就可以提升你的權限到Local System級別:先以一般用戶賬號偽造Named Pipe并讓它附帶黑客碼作為初始化程序,然后以同一賬號遠程聯線到象dallas這樣的機器上,Telnetd服務進程會主動運行你附帶在Named Pipe上的黑客碼,而且你的黑客碼是以Local System權限運行。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品视频免费在线观看| 亚洲视频观看| 一级日韩一区在线观看| 亚洲欧洲精品一区二区三区不卡| 欧美一区二区三区视频免费播放| 乱码第一页成人| 久久久国际精品| 欧美高清不卡在线| 国产精品s色| 国产乱人伦精品一区二区 | 欧美黑人在线播放| 麻豆精品一区二区av白丝在线| 亚洲精品欧美一区二区三区| 99精品欧美一区二区蜜桃免费| 国产欧美日韩综合| 国产精品系列在线| 亚洲国产mv| 亚洲欧美www| 欧美成人精品在线观看| 亚洲美洲欧洲综合国产一区| 香蕉成人啪国产精品视频综合网| 亚洲老板91色精品久久| 亚洲免费一在线| 久久免费精品日本久久中文字幕| 日韩系列在线| 久久国产精品一区二区| 欧美日韩精品中文字幕| 国产精品综合色区在线观看| 亚洲激情一区| 久久久www| 一区二区三区不卡视频在线观看| 亚洲激情在线播放| 一本色道久久88亚洲综合88| 午夜精品一区二区在线观看| 欧美成人精品高清在线播放| 国产模特精品视频久久久久 | 亚洲在线视频网站| 久久先锋影音av| 国产精品欧美风情| 日韩一区二区精品视频| 猛干欧美女孩| 久久精品最新地址| 国产日韩欧美中文在线播放| 亚洲网站视频福利| 亚洲片在线观看| 玖玖玖国产精品| 狠狠入ady亚洲精品| 亚洲综合色丁香婷婷六月图片| 亚洲国产网站| 久久久久久午夜| 亚洲一区二区三区午夜| 欧美精品aa| 精品av久久久久电影| 午夜亚洲福利| 一区二区三区欧美日韩| 欧美日本亚洲视频| 亚洲毛片在线观看.| 欧美二区在线观看| 美女视频黄 久久| 亚洲国产成人精品女人久久久 | 国内揄拍国内精品少妇国语| 亚洲特黄一级片| 日韩香蕉视频| 国产精品sm| 久久成人免费视频| 久久高清免费观看| 亚洲国产高清一区| 亚洲人成亚洲人成在线观看| 美女精品网站| 亚洲人成欧美中文字幕| 亚洲人妖在线| 国产精品久久久久久久久婷婷| 国产视频自拍一区| 久久精品国产免费观看| 欧美在线不卡视频| 在线观看久久av| 欧美va天堂va视频va在线| 欧美a级在线| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲电影免费观看高清完整版| 禁久久精品乱码| 麻豆亚洲精品| 欧美日韩国产美女| 欧美一区二区在线免费观看| 久久久国产91| 亚洲区一区二区三区| 99热在这里有精品免费| 国产精品一区二区久久久| 久久偷看各类wc女厕嘘嘘偷窃| 日韩午夜av在线| 国产欧美日韩视频| 最新69国产成人精品视频免费| 亚洲一区二区在线免费观看| 国产精品色在线| 欧美高清在线播放| 国产精品区一区二区三| 久久综合色影院| 欧美日韩你懂的| 久久精品国产99国产精品澳门| 亚洲美女av在线播放| 国产日韩欧美在线播放| 亚洲激情六月丁香| 狠狠久久婷婷| 亚洲曰本av电影| 亚洲小少妇裸体bbw| 久久精品免费看| 亚洲激情精品| 亚洲欧美一区二区原创| 99热精品在线| 午夜免费在线观看精品视频| 亚洲黄色在线观看| 午夜视频久久久久久| 日韩视频在线永久播放| 久久爱91午夜羞羞| 亚洲女同精品视频| 欧美日韩国产大片| 欧美黄色片免费观看| 国产亚洲一区二区精品| 在线一区日本视频| 一区二区三区**美女毛片| 久久久噜噜噜久久人人看| 午夜天堂精品久久久久| 欧美片在线观看| 亚洲第一黄色网| 亚洲高清三级视频| 久久视频国产精品免费视频在线| 影音先锋在线一区| 亚洲天堂av图片| 中日韩美女免费视频网址在线观看 | 午夜国产精品视频| 欧美日本亚洲| 欧美激情在线免费观看| 狠狠操狠狠色综合网| 欧美一区二区三区婷婷月色| 亚洲欧美国产高清| 国产精品久久久久影院色老大| 欧美一区二视频| 国产精品一区二区久久| 亚洲一区二区三区四区中文| 亚洲女性喷水在线观看一区| 国产精品久久97| 亚洲国内精品| 一本色道久久88综合日韩精品| 99av国产精品欲麻豆| 亚洲激情在线观看| 欧美国产免费| 亚洲一区在线观看免费观看电影高清| 在线视频欧美日韩精品| 一区二区免费看| 国产精品家庭影院| 亚洲天堂成人| 久久深夜福利| 亚洲激情黄色| 国产精品激情| 久久精品首页| 亚洲精品乱码久久久久| 亚洲欧美精品suv| 国内精品视频久久| 免费在线视频一区| 一区二区三区精品在线| 欧美在线网址| 91久久视频| 国产精品亚发布| 久久久精品日韩欧美| 亚洲精品乱码| 久久久欧美一区二区| 亚洲免费电影在线观看| 国产精品国产a级| 久久久久久久综合| 欧美va亚洲va香蕉在线| 一区二区高清视频| 久久精品人人做人人爽| 亚洲激情视频| 国产精品区免费视频| 久久深夜福利免费观看| 亚洲最新在线视频| 麻豆精品视频| 亚洲一区日韩在线| 一区二区亚洲欧洲国产日韩| 欧美黄色aaaa| 午夜在线视频一区二区区别| 亚洲电影毛片| 久久精品日产第一区二区三区| 欧美日韩国产va另类| 亚洲欧美日韩国产一区二区| 免费成人av资源网| 欧美一区二区三区久久精品| 亚洲人成人77777线观看| 国产日韩亚洲| 国产精品www| 欧美日韩1区| 免费观看亚洲视频大全| 欧美中文在线观看| 亚洲午夜性刺激影院| 亚洲精品社区| 亚洲高清二区| 欧美不卡三区| 美腿丝袜亚洲色图| 久久久久国产精品www| 亚洲欧美综合网|