SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Rootkit 101 - 僅適合新⼿手的 rootkit
cmj @ 2015.07.19
1
適合新⼿手
• 如果你會寫 rootkit - 你可能太晚聽了~
• 如果你沒⽤用過 Linux - 你可能太早聽了~
2
內容 - 這次獻給⼤大家的~
✤ 根據經驗,我所看過的 rootkit
✤ 延伸 rootkit 原本的概念
✤ 概念性的 rootkit
3
能不能用,我也不知道 >.^
4
WARNING
投影⽚片內容可能包含不適合您閱讀的成⼈人⽂文章,請確定擁
有⾜足夠的⼼心智與判斷能⼒力,了解並分析接下來的內容是否
正確與合法。︒。本著作的作者不負擔任何您,因本著作⽽而衍
伸的任何法律問題:包含但不限於因任意⽂文字的排列組合
與圖⽰示造成⼼心智與/或財產的損失。︒。
5
在開始之前,讓我們欣賞∼
6
電影:我是誰
7
8
我是誰:沒有絕對安全的系統
德國電影
9
rootkit - wiki
Rootkit是指其主要功能為:隱藏其他程式⾏行程的軟體,可
能是⼀一個或⼀一個以上的軟體組合;廣義⽽而⾔言,Rootkit也可
視為⼀一項技術。︒。
10
竄改 & 隱藏
11
12
Simple Rootkit Design - lv1
✤ 簡單的欺騙 User
✤ 替換掉常⽤用的指令
✤ ls / ps / top / … etc
✤ 你不需要太多程式技巧
13
欺騙
14
簡單,好用,萬解
15
Simple Rootkit Design - lv2
✤ 替換程式
✤ 需要點程式技巧
✤ ⽅方法
✤ 直接替換程式 (直接換掉 binary)
✤ 寫個 wrapper (多疊⼀一層)
16
隱藏 (替換)
17
好用,萬解
18
しかし
✤ 除⾮非使⽤用者不跟主機直接互動
✤ 明顯的操作上差異
✤ ⽤用起來會怪怪的
19
回憶一下
20
是否感到奇怪
21
排版 / 顏色 / … etc
22
設計點有點難度的 rootkit
23
Useful Rootkit Design - lv3
✤ 修改程式底層
✤ 修改程式的函式庫
✤ 概念
✤ strace / dtruss / debuger / … etc
24
程式設計師的⾃自我修養:連結、載⼊入、程式庫
來點修養吧 ~
25
C
✤ C 程式執⾏行的時候,可以:
✤ 呼叫⾃自⼰己撰寫的邏輯 (function)
✤ 呼叫現成的邏輯 (Library)
✤ 你會⾃自⼰己寫 open file 嘛 …
26
C
✤ C 程式執⾏行的時候,可以:
✤ 呼叫⾃自⼰己撰寫的邏輯 (function)
✤ 呼叫現成的邏輯 (Library)
✤ 你會⾃自⼰己寫 open function 嘛 …
27
Shared Library Hook
using LD_PRELOAD
28
LD_PRELOAD Hook
29
好用,但不卍解
30
休息一下 ∼
31
rootkit 的世界
朕不給你,你不能搶!
32
基本概念
劫持
✤ 指令
✤ 資料
✤ syscall
33
Other Idea ?
34
依然是劫持 ls
✤ 如果你看到的資料其實不是你看到的
✤ FUSE (File system in USEr space)
35
啊∼ 再深一點∼∼∼
36
如果就根本上 (OS) 資料就不存在...
37
Kernel-Level Rootkit
38
Program Bugs
User-Space
✤ crash - Segment Fault / Abort
✤ core-dump
Kernel-Space
✤ Call-Trace
39
Robust is more important than you expected
40
Kernel Rootkit Design - lv4
1. 開發環境
2. 決定 rootkit 的核⼼心技巧
3. 開發與除錯
41
Kernel Rootkit Design - lv4
1. 開發環境
2. 決定 rootkit 的核⼼心技巧
3. 開發與除錯
42
Hook Syscall
43
Hook Syscall
流程
✤ 找到 syscall_table
✤ 竄改呼叫的 callback function
44
sys_call_table
1. Easily way
2. Normal way
3. Violent way
45
sys_call_table
1. Easily way - Find it out in System.map
2. Normal way
3. Violent way
46
System.map
47
sys_call_table
1. Easily way - Find it out in System.map
2. Normal way - Dump on /proc/kallsyms
3. Violent way
48
/proc/kallsyms
49
sys_call_table
1. Easily way - Find it out in System.map
2. Normal way - Dump on /proc/kallsyms
3. Violent way - Force search all kernel-level memory
50
Brute-Force Search
51
假設我們找到 syscall_table
52
syscall_table
實作上
✤ syscall_table 是⼀一個 function pointer 陣列
✤ 根據 syscall 編號依序排列
53
Hook getdent64
54
挫折 ** n
55
可不可以頂到肺∼
56
BIOS rootkit design - lv5
57
BIOS rootkit design - lv5
我要很誠實的說:我不會
⽽而且今天是 rootkit - 101,講 BIOS 就太誇張了~
58
Q & A
Thanks for your attention ~
59

Más contenido relacionado

La actualidad más candente

滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ NisraOrange Tsai
 
再生龍於雲端環境之應用
再生龍於雲端環境之應用再生龍於雲端環境之應用
再生龍於雲端環境之應用Chenkai Sun
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略Da Zhao
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」Orange Tsai
 
icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介Kito Cheng
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试kaerseng
 
20030623 linuxbasic and-security
20030623 linuxbasic and-security20030623 linuxbasic and-security
20030623 linuxbasic and-security建融 黃
 
Unixtoolbox zh cn
Unixtoolbox zh cnUnixtoolbox zh cn
Unixtoolbox zh cnxdboy2006
 
The New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemDThe New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemDfreedman6022e20
 
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽Kito Cheng
 
網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-AreaOrange Tsai
 

La actualidad más candente (12)

滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra
 
再生龍於雲端環境之應用
再生龍於雲端環境之應用再生龍於雲端環境之應用
再生龍於雲端環境之應用
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」
 
icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试
 
20030623 linuxbasic and-security
20030623 linuxbasic and-security20030623 linuxbasic and-security
20030623 linuxbasic and-security
 
Unixtoolbox zh cn
Unixtoolbox zh cnUnixtoolbox zh cn
Unixtoolbox zh cn
 
The New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemDThe New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemD
 
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
 
網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area
 

Destacado

Web2.0 attack and defence
Web2.0 attack and defenceWeb2.0 attack and defence
Web2.0 attack and defencehackstuff
 
SQL injection duplicate error principle
SQL injection duplicate error principleSQL injection duplicate error principle
SQL injection duplicate error principlehackstuff
 
Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺hackstuff
 
新手無痛入門Apk逆向
新手無痛入門Apk逆向新手無痛入門Apk逆向
新手無痛入門Apk逆向hackstuff
 
ROP 輕鬆談
ROP 輕鬆談ROP 輕鬆談
ROP 輕鬆談hackstuff
 
Algo/Crypto about CTF
Algo/Crypto about CTFAlgo/Crypto about CTF
Algo/Crypto about CTFhackstuff
 
Android Security Development
Android Security DevelopmentAndroid Security Development
Android Security Developmenthackstuff
 
Dvwa low level
Dvwa low levelDvwa low level
Dvwa low levelhackstuff
 
Php lfi rfi掃盲大補帖
Php lfi rfi掃盲大補帖Php lfi rfi掃盲大補帖
Php lfi rfi掃盲大補帖hackstuff
 
Webshell 簡單應用
Webshell 簡單應用Webshell 簡單應用
Webshell 簡單應用hackstuff
 
Antivirus Bypass
Antivirus BypassAntivirus Bypass
Antivirus Bypasshackstuff
 
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹GangSeok Lee
 
在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。Chih-Hsuan Kuo
 
Codeigniter : Custom Routing - Manipulate Uri
Codeigniter : Custom Routing - Manipulate UriCodeigniter : Custom Routing - Manipulate Uri
Codeigniter : Custom Routing - Manipulate UriAbdul Malik Ikhsan
 
排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...
排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...
排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...婉萍 蔡
 
ARM uVisor Debug Refinement Project(debugging facility improvements)
ARM uVisor Debug Refinement Project(debugging facility improvements)ARM uVisor Debug Refinement Project(debugging facility improvements)
ARM uVisor Debug Refinement Project(debugging facility improvements)家榮 張
 
UCCU 朕不給的你不能看
UCCU 朕不給的你不能看UCCU 朕不給的你不能看
UCCU 朕不給的你不能看SHANG-DE JIANG
 

Destacado (20)

Web2.0 attack and defence
Web2.0 attack and defenceWeb2.0 attack and defence
Web2.0 attack and defence
 
SQL injection duplicate error principle
SQL injection duplicate error principleSQL injection duplicate error principle
SQL injection duplicate error principle
 
Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺
 
新手無痛入門Apk逆向
新手無痛入門Apk逆向新手無痛入門Apk逆向
新手無痛入門Apk逆向
 
ROP 輕鬆談
ROP 輕鬆談ROP 輕鬆談
ROP 輕鬆談
 
Algo/Crypto about CTF
Algo/Crypto about CTFAlgo/Crypto about CTF
Algo/Crypto about CTF
 
Android Security Development
Android Security DevelopmentAndroid Security Development
Android Security Development
 
Dvwa low level
Dvwa low levelDvwa low level
Dvwa low level
 
Php lfi rfi掃盲大補帖
Php lfi rfi掃盲大補帖Php lfi rfi掃盲大補帖
Php lfi rfi掃盲大補帖
 
Crawler
CrawlerCrawler
Crawler
 
Webshell 簡單應用
Webshell 簡單應用Webshell 簡單應用
Webshell 簡單應用
 
Antivirus Bypass
Antivirus BypassAntivirus Bypass
Antivirus Bypass
 
Theme API
Theme APITheme API
Theme API
 
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
 
在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。
 
Codeigniter : Custom Routing - Manipulate Uri
Codeigniter : Custom Routing - Manipulate UriCodeigniter : Custom Routing - Manipulate Uri
Codeigniter : Custom Routing - Manipulate Uri
 
Breakpoints
BreakpointsBreakpoints
Breakpoints
 
排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...
排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...
排隊理論_An Exploration of The Optimization of Executive Scheduling in The Cloud ...
 
ARM uVisor Debug Refinement Project(debugging facility improvements)
ARM uVisor Debug Refinement Project(debugging facility improvements)ARM uVisor Debug Refinement Project(debugging facility improvements)
ARM uVisor Debug Refinement Project(debugging facility improvements)
 
UCCU 朕不給的你不能看
UCCU 朕不給的你不能看UCCU 朕不給的你不能看
UCCU 朕不給的你不能看
 

Similar a Rootkit 101

Splunk資安智慧分析平台
Splunk資安智慧分析平台Splunk資安智慧分析平台
Splunk資安智慧分析平台Ching-Lin Tao
 
2014暑期訓練之Linux kernel power
2014暑期訓練之Linux kernel power2014暑期訓練之Linux kernel power
2014暑期訓練之Linux kernel power冠宇 陳
 
嵌入式平台移植技巧概說
嵌入式平台移植技巧概說嵌入式平台移植技巧概說
嵌入式平台移植技巧概說Joseph Lu
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践Na Lee
 
Mahout資料分析基礎入門
Mahout資料分析基礎入門Mahout資料分析基礎入門
Mahout資料分析基礎入門Jhang Raymond
 
快快樂樂學 Scrapy
快快樂樂學 Scrapy快快樂樂學 Scrapy
快快樂樂學 Scrapyrecast203
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Kris Mok
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2netdbncku
 
台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤jack51706
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018Will Huang
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86dbabc
 
设计模式之禅
设计模式之禅设计模式之禅
设计模式之禅sunnychuh
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUGYingSiang Geng
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIChu-Siang Lai
 
Simple tech-talk
Simple tech-talkSimple tech-talk
Simple tech-talkliltos
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 Lheima911
 
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版Jie Bao
 
Learn python 2 - Real World Case
Learn python 2 - Real World CaseLearn python 2 - Real World Case
Learn python 2 - Real World CaseChia-Hao Tsai
 

Similar a Rootkit 101 (20)

Splunk資安智慧分析平台
Splunk資安智慧分析平台Splunk資安智慧分析平台
Splunk資安智慧分析平台
 
2014暑期訓練之Linux kernel power
2014暑期訓練之Linux kernel power2014暑期訓練之Linux kernel power
2014暑期訓練之Linux kernel power
 
嵌入式平台移植技巧概說
嵌入式平台移植技巧概說嵌入式平台移植技巧概說
嵌入式平台移植技巧概說
 
Linux File system
Linux File systemLinux File system
Linux File system
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 
Mahout資料分析基礎入門
Mahout資料分析基礎入門Mahout資料分析基礎入門
Mahout資料分析基礎入門
 
APT行為偵測術
APT行為偵測術APT行為偵測術
APT行為偵測術
 
快快樂樂學 Scrapy
快快樂樂學 Scrapy快快樂樂學 Scrapy
快快樂樂學 Scrapy
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
 
台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86
 
设计模式之禅
设计模式之禅设计模式之禅
设计模式之禅
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
 
Simple tech-talk
Simple tech-talkSimple tech-talk
Simple tech-talk
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
 
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版
 
Learn python 2 - Real World Case
Learn python 2 - Real World CaseLearn python 2 - Real World Case
Learn python 2 - Real World Case
 

Rootkit 101