Amazon五星級暢銷書,rootkit領域的重要著作,計算機安全領域公認經典。從反取證角度,深入、系統解讀rootkit的本質和核心技術,以及如何構建屬于自己的rootkit武器。包含大量模塊化示例,行文風趣幽默,頗具實戰性和可讀性。
全書共分四部分。及時部分(第1~6章),全新闡釋rootkit 本質、rootkit與反取證關系、安全領域態勢,以及反取證技術的策略、應對建議和攻擊優勢。之后,從硬件、軟件(系統)、行業工具和內核空間方面介紹rootkit調查過程和利用反取證技術破壞調查過程的策略,使你對取證和反取證有全新了解。第二部分(第7~8章),主要介紹rootkit如何阻止磁盤分析和可執行文件的分析,而調查人員如何利用有效的工具和策略來分析輔助存儲器(例如磁盤分析、卷分析、文件系統分析以及未知二進制分析)中可能留下的rootkit痕跡,并對內存駐留和多級釋放器技術及用戶態Exec(Userland Exec)理念進行了深入剖析。第三部分(第9~15章)主要詳解攻擊者利用rootkit破壞數據收集過程和造成"一切安好"的假象的前沿實用策略:阻止在線取證、內核模式策略、更改調用表、更改代碼、更改內核對象、創建隱秘通道和部署帶外rootkit。第四部分(第16章),高屋建瓴地重新總結了rootkit的核心策略,以及如何識別隱藏的rootkit、注意事項和如何處理感染等。
相關推書推薦:
《Web之困:現代Web應用安全指南》
《Metasploit滲透測試魔鬼訓練營》 (首本中文原創Metasploit滲透測試著作!國內信息安全領域布道者和博學Metasploit滲透測試專家領銜撰寫。)
《惡意軟件、Rootkit和僵尸網絡》 (惡意軟件、Rootkit和僵尸網絡領域經典入門書,譯著雙馨,10余家安全機構聯袂推薦,Amazon五星暢銷書)
《黑客免殺攻防》 (多方位揭示黑客免殺技術的常用方法、技術細節和思想原理,為反病毒工程師剖析惡意軟件和遏制免殺技術提供具體方法和應對策略)
《Rootkit:系統灰色地帶的潛伏者》 (原書第2版)(Amazon五星級暢銷書,rootkit領域的重要著作,計算機安全領域公認經典)
《滲透測試實踐指南:必知必會的工具與方法》 (Amazon五星級超級暢銷書,美國國家安全局主管Keith B. Alexander將軍(向奧巴馬匯報)鼎力推薦!)
《BackTrack4:利用滲透測試保障系統安全》
Amazon五星級暢銷書,rootkit領域的重要著作,計算機安全領域公認經典。
從反取證角度,深入、系統解讀rootkit的本質和核心技術,以及如何構建屬于自己的Rootkit武器,包含大量模塊化示例,行文風趣幽默。
Bill Blunden
博學計算機安全專家,從事相關研究10余年,對rootkit有非常深入的研究。目前從事網絡安全設備代碼和ERP中間件的相關工作。活躍于計算機安全類社區,常與計算機安全領域多名安全專家交流探討。在學術生涯中走過不少彎路,因此對計算機安全有異于常人的觀察角度和體會。
譯者序
獻給"孫悟空"
前言
及時部分基礎知識
第1章 清空思想
1.1不速之客
1.2提煉一個更確切的定義
1.2.1攻擊循環
1.2.2rootkit在攻擊循環中的角色
1.2.3單級釋放器與多級釋放器
1.2.4其他部署方法
1.2.5確切的學術性定義譯者序
獻給"孫悟空"
前言
及時部分基礎知識
第1章 清空思想
1.1不速之客
1.2提煉一個更確切的定義
1.2.1攻擊循環
1.2.2rootkit在攻擊循環中的角色
1.2.3單級釋放器與多級釋放器
1.2.4其他部署方法
1.2.5確切的學術性定義
1.2.6不要混淆設計目標與實現
1.2.7rootkit技術--力量倍增器
1.2.8金·費爾比式比喻:破壞與毀壞
1.2.9為何使用隱身技術?rootkit不能被發現嗎
1.3rootkit不等于惡意軟件
1.3.1感染源
1.3.2廣告軟件和間諜軟件
1.3.3僵尸網絡的興起
1.3.4引入:愚人飛客病毒
1.3.5惡意軟件與rootkit
1.4誰在開發和使用rootkit
1.4.1市場營銷
1.4.2數字版權管理
1.4.3不是rootkit,而是種功能
1.4.4法律實施
1.4.5商業間諜
1.4.6政治間諜
1.4.7網絡犯罪
1.4.8誰開發了頗具藝術感的rootkit
1.4.9rootkit的道德性
1.5懾魄驚魂:戰場傷員分類
1.6總結
第2章 反取證綜述
2.1事件響應
2.1.1入侵檢測系統(和入侵防御系統)
2.1.2異常行為
2.1.3發生故障
2.2計算機取證
2.2.1rootkit不是隱身的嗎?為什么還要進行反取證
2.2.2假定最糟糕案例的場景
2.2.3取證技術分類:及時種方法
2.2.4取證技術分類:第二種方法
2.2.5在線取證
2.2.6當關機不再是種選擇
2.2.7關于拔掉電源插頭的爭論
2.2.8崩潰轉儲或者不進行崩潰轉儲
2.2.9事后檢查分析
2.2.10非本地數據
2.3AF策略
2.3.1數據銷毀
2.3.2數據隱藏
2.3.3數據轉換
2.3.4數據偽造
2.3.5數據源消除
2.4AF技術的總體建議
2.4.1使用定制工具
2.4.2低且慢與焦土策略
2.4.3避免特定實例攻擊
2.4.4使用分層防御
2.5不明身份者具有優勢
2.5.1攻擊者能夠專注于攻擊
2.5.2防御者面臨制度性挑戰
2.5.3安全是一種過程(而且還是一種令人討厭的過程)
2.5.4持續增加的復雜度
2.6總結
第3章 硬件概述
3.1物理內存
3.2IA-32內存模型
3.2.1平面內存模型
3.2.2分段內存模型
3.2.3操作模式
3.3實模式
3.3.1案例研究:MS-DOS
3.3.2這不是浪費時間嗎?為什么學習實模式
3.3.3實模式執行環境
3.3.4實模式中斷
3.3.5分段和程序控制
3.3.6案例研究:轉儲IVT
3.3.7案例研究:用TSR記錄擊鍵
3.3.8案例研究:隱藏TSR
3.3.9案例研究:為TREE.COM命令打補丁
3.3.10小結
3.4保護模式
3.4.1保護模式執行環境
3.4.2保護模式分段
3.4.3保護模式分頁
3.4.4地址擴展分頁
3.4.5進一步研究頁表
3.4.6進一步研究控制寄存器
3.5實現內存保護
3.5.1通過分段實現保護
3.5.2界限檢查
3.5.3類型檢查
3.5.4特權檢查
3.5.5受限指令檢查
3.5.6門描述符
3.5.7保護模式中斷表
3.5.8分頁保護
3.5.9總結
第4章 系統概述
4.1Windows系統下的物理內存
4.1.1失落的大陸(內存)
4.1.2Windows如何使用物理地址擴展
4.1.3頁、頁幀、頁幀號
4.2Windows下的分段和分頁
4.2.1分段
4.2.2分頁
4.2.3線性地址到物理地址的轉換
4.2.4一個更快的方法
4.2.5關于EPROCESS和KPROCESS的討論
4.3用戶空間和內核空間
4.3.14GB調優(4GT)
4.3.2各得其所
4.3.3跨越籬笆
4.3.4用戶空間剖析
4.3.5內核空間動態分配
4.3.6地址窗口化擴展
4.3.7PAE、4GT和AWE的對比
4.4用戶模式和內核模式
4.4.1執行方式與執行位置
4.4.2內核模式組件
4.4.3用戶模式組件
4.5其他內存保護特征
4.5.1數據執行保護
4.5.2地址空間布局隨機化
4.5.3GS 編譯選項
4.5.4SAFESEH鏈接器選項
4.6本機API
4.6.1中斷向量表的發展
4.6.2進一步研究中斷描述表
4.6.3通過中斷進行系統調用
4.6.4SYSENTER指令
4.6.5系統服務調度表
4.6.6枚舉本機API
4.6.7Nt( )系統調用與Zw( )系統調用
4.6.8系統調用的生命周期
4.6.9其他內核模式例程
4.6.10內核模式API文檔
4.7引導過程
4.7.1BIOS固件啟動
4.7.2EFI固件啟動
4.7.3Windows啟動管理器
4.7.4Windows啟動加載器
4.7.5初始化執行體
4.7.6會話管理器
4.7.7wininit.exe
4.7.8winlogon.exe
4.7.9啟動過程概括
4.8設計決策
4.8.1藏在人群中:類型0
4.8.2主動隱藏:類型1和類型2
4.8.3跳出邊界:類型3
4.8.4前景展望
第5章 行業工具
5.1開發工具
5.1.1診斷工具
5.1.2磁盤映像工具
5.1.3更快速救災:虛擬機
5.1.4工具綜述
5.2調試器
5.2.1配置CDB.exe
5.2.2符號文件
5.2.3Windows符號
5.2.4激活CDB.exe
5.2.5控制CDB.exe
5.2.6有用的調試器命令
5.2.7檢查符號命令(x)
5.2.8列舉已加載的模塊(lm和!lmi)
5.2.9顯示類型命令(dt)
5.2.10反匯編命令(u)
5.2.11顯示命令(d)
5.2.12寄存器命令(r)
5.3KD.exe內核調試器
5.3.1使用內核調試器的不同方法
5.3.2物理宿主機-目標機配置
5.3.3準備硬件
5.3.4準備軟件
5.3.5啟動內核調試會話
5.3.6控制目標機
5.3.7虛擬宿主機-目標機配置
5.3.8 有用的內核模式調試器命令
5.3.9列舉已加載模塊命令
5.3.10!process擴展命令
5.3.11寄存器命令(r)
5.3.12使用崩潰轉儲
5.3.13方法1:PS2鍵盤技巧
5.3.14方法2:KD.exe命令
5.3.15方法3:NotMyFault.exe
5.3.16崩潰轉儲分析
第6章 內核空間中的玄機
6.1KMD模板
6.1.1內核模式驅動程序:全局概覽
6.1.2WDK框架
6.1.3真正最小的KMD
6.1.4處理IRP
6.1.5與用戶模式代碼通信
6.1.6從用戶模式發送命令
6.2加載內核模式驅動程序
6.3服務控制管理器
6.3.1在命令行使用sc.exe
6.3.2編程使用SCM
6.3.3注冊表蹤跡
6.4使用導出驅動程序
6.5綜合利用內核中的漏洞
6.6Windows內核模式安全
6.6.1內核模式代碼簽名
6.6.2KMCS的應對措施
6.6.3內核補丁保護
6.6.4KPP的應對措施
6.7同步
6.7.1中斷請求級
6.7.2延遲過程調用
6.7.3實現
6.8總結
第二部分事 后 分 析
第7章 阻止磁盤分析
7.1事后調查:概述
7.2取證副本
7.3卷分析
7.3.1Windows下的存儲卷
7.3.2手工分析卷
7.3.3應對措施:破壞分區表
7.3.4Windows下的原始磁盤訪問
7.3.5原始磁盤訪問:突破常規
7.4文件系統分析
7.4.1恢復刪除的文件
7.4.2恢復刪除的文件:應對措施
7.4.3枚舉可選數據流
7.4.4枚舉可選數據流: 應對措施
7.4.5恢復文件系統對象
7.4.6恢復文件系統對象:應對措施
7.4.7帶外隱藏
7.4.8帶內隱藏
7.4.9引入:FragFS
7.4.10應用層隱藏
7.4.11獲取元數據
7.4.12獲取元數據:應對措施
7.4.13改變時間戳
7.4.14改變校驗和
7.4.15識別已知文件
7.4.16交叉時間差異與交叉視圖差異
7.4.17識別已知文件:應對措施
7.5文件簽名分析
7.6總結
第8章 阻止可執行文件分析
8.1 靜態分析
8.1.1掃描相關人工痕跡
8.1.2驗證數字簽名
8.1.3轉儲字符串數據
8.1.4檢查文件頭
8.1.5反匯編和反編譯
8.2破壞靜態分析
8.2.1數據轉換:加殼
8.2.2加殼:加密程序
8.2.3密鑰管理
8.2.4加殼:壓縮程序
8.2.5加殼:變形代碼
8.2.6定制工具的需求
8.2.7關于加殼的爭論
8.2.8數據偽造
8.2.9虛旗攻擊
8.2.10數據源清除:多級加載器
8.2.11深度防御
8.3運行時分析
8.3.1運行環境
8.3.2手工與自動運行時分析
8.3.3手工分析:基本概要
8.3.4手工分析:跟蹤
8.3.5手工分析:內存轉儲
8.3.6手工分析:捕捉網絡活動
8.3.7自動化分析
8.3.8運行時復合分析
8.4破壞運行時分析
8.4.1跟蹤的應對措施
8.4.2API跟蹤:規避迂回補丁
8.4.3API跟蹤:多級加載器
8.4.4指令級跟蹤:攻擊調試器
8.4.5斷點
8.4.6檢測用戶模式調試器
8.4.7檢測內核模式調試器
8.4.8檢測用戶模式調試器或者內核模式調試器
8.4.9通過代碼校驗和檢測調試器
8.4.10關于反調試器技術的爭論
8.4.11指令級跟蹤:混淆
8.4.12混淆應用數據
8.4.13混淆應用代碼
8.4.14阻止自動化
8.4.15應對運行時復合分析
8.5總結
第三部分在 線 取 證
第9章 阻止在線取證
9.1在線取證:基本過程
9.2用戶模式加載器
9.2.1UML破壞現有的API
9.2.2關于加載器API模塊的爭論
9.2.3縱覽Windows PE文件格式
9.2.4相對虛擬地址
9.2.5PE文件頭
9.2.6導入數據節(.idata)
9.2.7基址重定位節(.reloc)
9.2.8實現獨立的UML
9.3最小化加載器蹤跡
9.3.1數據節育:獻給The Grugq的頌歌
9.3.2下一步:通過漏洞利用程序加載
9.4關于獨立PE加載器的爭論
第10章 用C語言創建shellcode
10.1用戶模式shellcode
10.1.1Visual Studio工程設置
10.1.2使用相對地址
10.1.3尋找kernel32.dll:通往TEB和PEB的旅程
10.1.4擴展地址表
10.1.5解析kernel32.dll導出表
10.1.6提取shellcode
10.1.7危險空間
10.1.8構建自動化
10.2內核模式shellcode
10.2.1工程設置:$(NTMAKEENV)\makefile.new
10.2.2工程設置:SOURCES
10.2.3地址解析
10.2.4加載內核模式shellcode
10.3特殊武器和策略
10.4展望
第11章 更改調用表
11.1在用戶空間掛鉤:IAT
11.1.1DLL基礎
11.1.2訪問導出例程
11.1.3注入DLL
11.1.4走查磁盤上PE文件的IAT
11.1.5掛鉤IAT
11.2內核空間的調用表
11.3掛鉤IDT
11.3.1處理多處理器:方案#1
11.3.2裸例程
11.3.3關于掛鉤IDT的問題
11.4掛鉤處理器MSR
11.5掛鉤SSDT
11.5.1禁用WP位:技巧#1
11.5.2禁用WP位:技巧#2
11.5.3掛鉤SSDT項
11.5.4SSDT示例:跟蹤系統調用
11.5.5SSDT示例:隱藏進程
11.5.6SSDT示例:隱藏網絡連接
11.6掛鉤IRP處理程序
11.7掛鉤GDT:安裝調用門
11.8掛鉤的應對措施
11.8.1檢查內核模式掛鉤
11.8.2檢查IA32_SYSENTER_EIP
11.8.3檢查 INT 0x2E
11.8.4檢查 SSDT
11.8.5檢查IRP處理程序
11.8.6檢查用戶模式鉤子
11.8.7解析PEB:
第1部分
11.8.8解析PEB:
第2部分
11.9反應對措施
11.9.1假設最壞的案例
11.9.2最壞案例應對措施#1
11.9.3最壞案例應對措施#2
第12章 更改代碼
12.1跟蹤調用
12.1.1迂回實現
12.1.2獲取NtSetValueKey()的地址
12.1.3初始化補丁元數據結構
12.1.4對照已知簽名核實原始機器碼
12.1.5保存原始序言和尾聲代碼
12.1.6更新補丁元數據結構
12.1.7鎖定訪問并禁用寫保護
12.1.8注入迂回
12.1.9序言迂回
12.1.10尾聲迂回
12.1.11事后總結
12.2破壞組策略
12.2.1迂回實現
12.2.2初始化補丁元數據結構
12.2.3尾聲迂回
12.2.4將注冊表值映射到組策略
12.3繞過內核模式API記錄器
12.3.1故障安全規避
12.3.2更上一層樓
12.4指令補丁應對措施
第13章 更改內核對象
13.1隱形的代價
13.1.1問題#1:陡峭的學習曲線
13.1.2問題#2:并發性
13.1.3問題#3:可移植性和指針運算
13.1.4特有技術:DKOM
13.1.5對象
13.2再訪EPROCESS對象
13.2.1獲取EPROCESS指針
13.2.2EPROCESS相關域
13.2.3UniqueProcessId
13.2.4ActiveProcessLinks
13.2.5Token
13.2.6ImageFileName
13.3DRIVER_SECTION對象
13.4令牌對象
13.4.1Windows授權
13.4.2定位令牌對象
13.4.3令牌對象中的相關域
13.5隱藏進程
13.6隱藏驅動程序
13.7操縱訪問令牌
13.8使用No-FU
13.9內核模式回調
13.10應對措施
13.10.1交叉視圖檢測
13.10.2高級枚舉:CreateToolhelp32Snapshot()
13.10.3高級枚舉:PID暴力
13.10.4低級枚舉:進程
13.10.5低級枚舉:線程
13.10.6相關軟件
13.10.7域校驗和
13.11反應對措施
13.11.1好的防護:餓死對手
13.11.2評論:超越雙環模型
13.11.3一道防線
第14章 隱秘通道
14.1普通惡意軟件通道
14.1.1互聯網中繼聊天
14.1.2對等通信
14.1.3HTTP
14.2最壞案例場景:截獲所有數據內容
14.2.1協議隧道
14.2.2DNS
14.2.3ICMP
14.2.4外圍設備問題
14.3Windows TCPIP棧
14.3.1Windows Sockets 2
14.3.2原始套接字
14.3.3Winsock內核API
14.3.4NDIS
14.3.5不同任務使用不同的工具
14.4DNS隧道
14.4.1DNS查詢
14.4.2DNS應答
14.5DNS隧道:用戶模式
14.6DNS隧道:WSK實現
14.6.1初始化應用程序的上下文
14.6.2創建內核模式套接字
14.6.3確定本地傳輸地址
14.6.4綁定套接字與傳輸地址
14.6.5設置遠程地址(C2客戶端)
14.6.6發送DNS查詢
14.6.7接收DNS應答
14.7NDIS協議驅動程序
14.7.1創建并運行NDISProt6.0示例
14.7.2客戶端代碼概要
14.7.3驅動程序代碼概要
14.7.4Protocol()例程
14.7.5缺失的特征
14.8被動的隱秘通道
第15章 轉到帶外
15.1 附加處理器模式
15.1.1系統管理模式
15.1.2流氓管理程序
15.1.3白帽成員對策
15.1.4流氓管理程序與SMM rootkit
15.2固件
15.2.1主板BIOS
15.2.2ACPI組件
15.2.3擴展ROM
15.2.4UEFI固件
15.3遠程管理設施
15.4不太明顯的備用方案
15.4.1板載閃存
15.4.2電路級伎倆
15.5總結
第四部分結 束 語
第16章 rootkit之道
16.1核心策略
16.1.1尊重你的對手
16.1.2五
及時部分
基 礎 知 識
第1章?清 空 思 想
各位,拋棄你過去的思想,這是學習本書的起點。沿著本書指明的道路前進吧,很快你將見到美好而可畏的奧茲國。在本章中,我們將總體介紹rootkit相關情況,討論"rootkit"這個詞的詞源,以及怎樣把rootkit技術運用于攻擊循環的基本框架和相應的領域。為了突出rootkit的獨特特征,我們將把該技術和幾種惡意軟件進行對比,并糾正一些常見的錯誤觀念。
1.1?不速之客
幾年前,媒體報道了一位獨居在日本福岡市中年男子的故事。該男子幾個月以來發現,廚房里的一些食物不見了。這是個有啟發意義的教訓:如果你感覺什么東西不對,相信自己的直覺。
那么,這個日本單身漢怎么做的呢?他架起一個監控攝像頭并把監控圖像傳到自己的手機上。某24小時,攝像頭捕捉到一個人在他的公寓里走動。他認為那是小偷,立即打電話報了警,于是警察就沖向他的公寓去抓那個小偷。當警察來到他家后,發現家中所有的門窗緊鎖。警察在公寓內搜查后發現一個名叫Tatsuko Horikawa的58歲婦女蜷縮在衣柜底部。根據警方調查,她無家可歸并至少在衣柜里住了半年之久。
該婦女向警察解釋道,某24小時,當這個單身漢離家而沒鎖門時,她得以及時次進入這個公寓。日本當局懷疑,為了將被抓獲的風險降到低,這個婦女只是有時住在這個公寓,并往返于不同的公寓之間居住。當她隱藏在公寓時,一般會洗個澡,然后在她睡的衣柜里鋪上墊子,并喝上幾瓶水以渡過難關。警方發言人Horiki Itakura稱該婦女"既整潔又干凈"。
從某種意義上說,這就是rootkit:一位不速之客,非常整潔、干凈且難以發現。
1.2?提煉一個更確切的定義
雖然將入侵者比喻為既整潔又干凈的不速之客的確有助于我們的理解,但還是讓我們通過這個詞的起源來追蹤該詞更加確切的定義。按照UNIX領域內的說法,系統管理員賬戶(即安全限制最少的用戶賬戶)通常稱為root賬戶。這個特殊賬戶有時在字面上稱為"root",但是這種叫法更多的是歷史習慣而不是規定。
"攻陷"一臺電腦并取得該電腦的管理員權限稱為root一臺機器。取得root賬戶權限的攻擊者就可以稱他已經root了該機器。另外一種描述你已經root一臺電腦的說法是你own(擁有)了它,這種說法的本意是指你可以對這臺電腦為所欲為,因為你已經控制了這臺機器。按照因特網上的說法,在標準的計算機鍵盤上,由于字母p和o毗鄰,致使一些人用pwn代替own。
嚴格地說,你并不需要通過取得管理員賬戶權限來root電腦。root電腦的最終目的是取得與管理員同級別的原始訪問權限。例如,在安裝有Windows系統的機器中,SYSTEM賬戶表示操作系統本身,實際上SYSTEM賬戶比管理員組中的賬戶擁有更高的權限。如果你能攻陷一個運行在SYSTEM賬戶下的Windows程序,這和擁有管理員權限具有同樣的效果(有過之而無不及)。事實上,有些人認為在SYSTEM賬戶下運行是非常高級的,因為追蹤一個使用SYSTEM賬戶的入侵者極度困難,系統產生的日志條目如此之多,很難區分哪些是由攻擊者產生的。
然而,root一臺機器與保持訪問權限有所區別(如同掙到一百萬美元和保管一百萬美元的區別)。有一些工具可以由有經驗的系統管理員來用于發現入侵者,并將他們踢出被攻陷的機器。一些新取得權限而大肆聲張的入侵者將會引起管理員的注意,失去他們的權限。對入侵者來說,關鍵是進入機器、取得權限、監控機器的狀態,然后隱藏起來享受他們的勞動成果。
《計算機行話辭典》 把rootkit定義為"能保持root權限的一套工具"。換句話說,
rootkit是由二進制代碼、腳本和配置文件組成的集合體(例如,一套工具),人們能夠使用它隱秘地保持對計算機的訪問權限,以便在不引起系統管理員注意的情況下命令、搜索數據。
設計良好的rootkit可以讓一臺被攻陷的機器看起來沒有任何異常,并使攻擊者在系統管理員的眼皮底下保持一個據點,而且他想待多久就待多久。
1.2.1?攻擊循環
現在你可能會想:"好吧,root機器及時步該干什么呢?"要回答這個問題所涉及的話題可能幾本書都寫不完。出于簡潔的目的,我將提供一個簡要概述(可能有些不)。
假定一個精準攻擊的場景,大多數入侵者都會從搜集目標組織的概要情報開始。在這個攻擊階段中,將涉及信息篩選,例如篩選該組織的域名注冊信息、分配的公共IP地址范圍信息,也有可能要查閱證券交易委員會(Securities and Exchange Commission,SEC)的文件、年報和媒體信息以確定該組織辦公地點的位置。
如果攻擊者決定使用基于漏洞的方法進行攻擊,他們將通過情報搜集初期發現的目標組織的因特網蹤跡來枚舉主機,主要的枚舉方法有ping掃描或目標IP掃描,然后檢查發現的每臺存活主機運行的標準網絡服務。因此,像nmap這樣的工具就顯得必不可少。
當攻擊者識別到一臺特定的計算機并搜集一系列監聽服務后,將試圖尋找獲取shell訪問的方法,使他能夠執行任意的命令并可能進一步提升權限,甚至是取得root賬戶訪問權限(雖然有時在運行Windows的機器上取得超級用戶權限就足夠了)。例如,受攻擊的機器是網站服務器,攻擊者可能對開發拙劣的網站應用程序發起結構化查詢語言(Structured Query Language,SQL)注入攻擊,以突破與其相關聯的數據庫服務器的安全防護。然后,他能夠訪問數據庫服務器以獲取管理員權限,或許root賬戶密碼和數據庫管理員密碼是一樣的呢?
基于漏洞的方法并不是的攻擊方式,有無數的方式可以進行訪問并獲取權限。,一切都在于取得一些通往目標的接口(參見圖1.1),然后提升你的權限。
這個接口不一定是傳統的命令行shell,它也有可能是攻擊者設計的專用API。你可以通過裝扮成修電腦的技術人員或通過肩窺(shoulder surfing)來建立接口。因此,用于root機器的工具范圍很廣:從社會工程學(例如魚叉式網絡釣魚、恐嚇性軟件、假托電話等),到密碼蠻力破解、偷竊備份,再到像Joanna Rutkowska的"Evil Maid"之類的離線攻擊。基于我個人的經驗和同行們提供的信息,在大規模攻擊中,軟件漏洞和社會工程學是經常采用的兩類入侵方法。
1.2.2?rootkit在攻擊循環中的角色
rootkit通常在攻擊循環的階段發揮作用,這就是為什么稱它們為post-exploit工具的原因。你一旦獲得接口并(用某種方式)提升為root權限,接下來自然就是要保持已攻陷機器的訪問權限(也稱為駐扎場地或據點),rootkit有助于實現持續性訪問。至此,攻擊者就可以從目標主機上挖掘有價值的信息了,如社會保險號、相關賬戶細節信息或者CVV2碼(即完整信用卡號碼、相應到期日期、賬單地址以及3位數的保險碼)。
或者,攻擊者可以簡單地運用當前據點來攻擊目標網絡內不能直接路由的其他機器,以擴大影響范圍,這種行為叫做支點攻擊(pivoting),這種攻擊有助于混淆入侵源(參見圖1.2)。
注意,圖1.2中的一步為何不屬于支點攻擊。我在本書的前言就解釋過了,本書的側重點是臺式計算機,因為在很多情況下,攻擊者通過攻擊能夠訪問目標數據的客戶機以取得所需信息。當你能夠通過攻陷一些主管的臺式計算機系統以取得同樣的基本結果時,為什么還要花數天時間突破加固的企業級大型機的安全防護層呢?這是Pete的最愛,去摘樹上低懸的水果!正如Richard Bejtlich所說:"一旦沒有了其他選擇,攻擊數據的最終點將落在對授權用戶有用的地方"。
1.2.3?單級釋放器與多級釋放器
在目標機器上安裝rootkit的方式各種各樣,有時它被安裝成一個由漏洞利用程序釋放的載荷。在此載荷中有個特殊程序叫做釋放器(dropper),由它完成實際的安裝任務(參見圖1.3)。
釋放器的作用很多,例如幫助rootkit通過網關安全掃描,釋放器能夠變換rootkit(例如對rootkit進行壓縮、編碼或者加密),然后把rootkit封裝成內部數據結構。當釋放器最終執行時,它將釋放(例如解壓縮、解碼、解密和安裝)rootkit。表現良好的釋放器事后會刪除自身,只留下rootkit所需的內容。
多級釋放器并不會將rootkit列為字節流的一部分,相反,它們將搭載在一些小程序上,例如定制的FTP客戶端、瀏覽器插件或存根程序,這些程序存在的目的就是從遠程網絡上下載rootkit(參見圖1.4)。在更極端的情況下,最初的存根程序可能會下載第二個更大的存根程序,然后第二個存根程序下載rootkit,通過兩個獨立的階段完成rootkit的安裝。
多級釋放器的思想在于最小化釋放器留下的取證證據數量。按這種方式,如果調查人員一旦發現一個未能恰當地觸發并執行自毀的釋放器,也無法分析你的rootkit代碼。例如,他試圖在一個獨立的沙盒環境中運行釋放器,但存根程序甚至無法下載rootkit。在最壞的案例場景中,存根程序將認識到那是個虛擬的環境而什么都不做。這個思路符合The Grugq的數據節育(data contraception)策略,我們將在本書的后面講述這一點。
這個商品不錯~
產品和說明一樣,學習用的,挺好.
有點理論化,想了解大概原理還行
這個商品不錯~
物流快,書正版,讀書當當網是首選。
這個商品不錯~
這個商品不錯~
這個商品不錯~
好書,難得的好書
國內少有的好書,很實用。很充實。
書質量不錯
不錯
講得較好,是程序員提高編程水平的參考書。
感覺很高深,慢慢看
有用
贊爆!
很好,內容生動。
書本來就好,活動的時候買性價比不錯
不錯
??? ~?.
不錯的書籍
很不錯的書!
不錯,很喜歡!這些東西也是剛接觸的,,需要學習啊
非常好,必須贊。系統中最核心的地方,值得深入研究。
這本書算是行業比較新的了,看了肯定會受到一些啟發的
專業書籍,值得好好研究。當然,在學習理論的同時,也要注意多動手體會。
以前買過一本ROOTKIT的書籍,后面不慎遺失,深感可惜,看了此書,比以前看過的內容更豐富,值得好好研究學習。
從事相關研究10余年,對rootkit有非常深入的研究。目前從事網絡安全設備代碼和ERP中間件的相關工作。活躍于計算機安全類社區,常與計算機安全領域多名世界級安全專家交流探討。在學術生涯中走過不少彎路,因此對計算機安全有異于常人的觀察角度和體會。