Jump to content
  • Batizado com nome herdado da estrela binária VV Cephei, o Linux.Cephei é provavelmente o primeiro file infector para executáveis ELF (utilizados nos sistemas baseados em Linux, entre outros) escrito na linguagem Nim. Isso mesmo, o autor é um tanto excêntrico e disse em seu blog que o Linux.Cephei é inofensivo (por enquanto) e fez somente para participar de um concurso de programação.

    O vírus é do tipo que chamamos de prepender, ou seja, ele adiciona algo "antes" da execução de um programa saudável, no caso, de um binário ELF. A técnica para isso é a alteração de seu entrypoint. 

    Nos testes que fizemos aqui, o Linux.Cephei só funcionou com binários compilados estaticamente: 

    $ uname -a
    Linux malinux 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux
    
    $ cat /etc/debian_version
    9.2
    
    $ cat h.c
    #include <stdio.h>
    
    int main(void) {
    printf("ola mundo do bem!\n");
    return 0;
    }
    
    $ gcc -static -o hello h.c
    $ ./hello
    ola mundo do bem!
    
    $ chmod +x linux.cephei
    $ ./linux.cephei
    $ ./hello
    Did you know that VV Cephei, also known as HD 208816, is an eclipsing binary star system located in the
    constellation Cepheus, approximately 5,000 light years from Earth? It is both a B[e] star
    and shell star. Awesome! https://en.wikipedia.org/wiki/VV_Cephei
    The more you know... :)
    ola mundo do bem!
    
    $ gcc -o hello h.c
    $ ./linux.cephei
    $ ./hello
    ola mundo do bem!

     Perceba que ele injetou seu código com sucesso no binário hello, mas somente quando foi compilado estaticamente.  

    Além da linguagem exótica, ultimamente não se vê muitos file infectors já que a moda de infectar executáveis passou. De qualquer forma, é bom ficar de olho. Com códigos como o do Linux.Ceiphei, vírus podem permanecer ocultos num sistema por muito tempo. E pouca gente usa antivírus no Linux, mesmo tendo uma alternativa livre como o ClamAV.


    User Feedback

    Recommended Comments

    Rick Santos

    Posted

    Bem interessante, obrigado pela dica Fernando é bom sempre ficar-mos de olho :ph34r:.

    • Curtir 2
    • Administrators
    Fernando Mercês

    Posted

    Valeu, @Rick Santos. Adicionei um teste que fiz e baixando o binário pronto do repositório do Github até que funcionou, mas só para binários estaticamente linkados.

    Quando tentei a partir do fonte, obtive um erro quando o Linux.Cephei tenta ler ele próprio. Acho que o autor está desenvolvendo ainda, ou não quer que saiam por aí utilizando para o mal. :)

    Abraço,

    Fernando

    Rick Santos

    Posted

    2 horas atrás, Fernando Mercês disse:

    Valeu, @Rick Santos. Adicionei um teste que fiz e baixando o binário pronto do repositório do Github até que funcionou, mas só para binários estaticamente linkados.

    Quando tentei a partir do fonte, obtive um erro quando o Linux.Cephei tenta ler ele próprio. Acho que o autor está desenvolvendo ainda, ou não quer que saiam por aí utilizando para o mal. :)

    Abraço,

    Fernando

    O programador do suposto malware realmente gosta de linguagens pouco comerciais haha xD, "nim", "go", "vala". 

    Guilherme Thomazi Bonicontro

    Posted

    Autor aqui. Valeu pelo artigo :) Se vc usou o sample binário que eu postei no blog, realmente só vai funcionar com arquivos estáticos, mas se vc compilar o código com o compilador de Nim, deve funcionar com o critério que vc utilizou na hora de compilar :)

    • Administrators
    Fernando Mercês

    Posted

    @Guilherme Thomazi Bonicontro que legal que você viu a notícia aqui e apareceu. És Brasileiro? :)

    Eu tentei novamente mas mesmo compilando a partir do código-fonte, só consegui infectar binários estáticos, veja:

    $ git clone https://github.com/guitmz/nim-cephei.git
    $ cd nim-cephei
    $ nim c -d:release cephei.nim
    Hint: used config file '/etc/nim.cfg' [Conf]
    Hint: system [Processing]
    Hint: cephei [Processing]
    Hint: streams [Processing]
    Hint: os [Processing]
    Hint: strutils [Processing]
    Hint: parseutils [Processing]
    Hint: math [Processing]
    Hint: algorithm [Processing]
    Hint: times [Processing]
    Hint: posix [Processing]
    Hint: osproc [Processing]
    Hint: strtabs [Processing]
    Hint: hashes [Processing]
    Hint: etcpriv [Processing]
    Hint: cpuinfo [Processing]
    Hint: linux [Processing]
    Hint: random [Processing]
    Hint:  [Link]
    Hint: operation successful (24692 lines compiled; 0.265 sec total; 25.188MiB; Release Build) [SuccessX]
    
    $ cat hello.c
    #include <stdio.h>
    
    int main(void) {
    	printf("testando...\n");
    	return 0;
    }
    
    $ make hello
    cc     hello.c   -o hello
    $ file hello
    hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked,
    interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
    BuildID[sha1]=0c8d7870667080bc470acc95fea4303edf5e1182, not stripped
    
    $ ./hello
    testando...
    
    $ ./cephei
    $ ./hello
    testando...
    
    $ rm hello
    $ CFLAGS=-static make hello
    cc -static    hello.c   -o hello
    $ file hello
    hello: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=c863151b3713bb6ba5d874288509b2a72e2a8428, not stripped
    
    $ ./hello
    testando...
    
    $ ./cephei
    $ ./hello
    Did you know that VV Cephei, also known as HD 208816, is an eclipsing binary star system located in
    the constellation Cepheus, approximately 5,000 light years from Earth? It is both
    a B[e] star and shell star. Awesome! https://en.wikipedia.org/wiki/VV_Cephei
    The more you know... :)
    testando...

    Estou fazendo algo errado?

    Grande abraço!

    Guilherme Thomazi Bonicontro

    Posted

    Em 12/5/2017 em 15:15, Fernando Mercês disse:

    @Guilherme Thomazi Bonicontro que legal que você viu a notícia aqui e apareceu. És Brasileiro? :)

    Eu tentei novamente mas mesmo compilando a partir do código-fonte, só consegui infectar binários estáticos, veja:

    
    $ git clone https://github.com/guitmz/nim-cephei.git
    $ cd nim-cephei
    $ nim c -d:release cephei.nim
    Hint: used config file '/etc/nim.cfg' [Conf]
    Hint: system [Processing]
    Hint: cephei [Processing]
    Hint: streams [Processing]
    Hint: os [Processing]
    Hint: strutils [Processing]
    Hint: parseutils [Processing]
    Hint: math [Processing]
    Hint: algorithm [Processing]
    Hint: times [Processing]
    Hint: posix [Processing]
    Hint: osproc [Processing]
    Hint: strtabs [Processing]
    Hint: hashes [Processing]
    Hint: etcpriv [Processing]
    Hint: cpuinfo [Processing]
    Hint: linux [Processing]
    Hint: random [Processing]
    Hint:  [Link]
    Hint: operation successful (24692 lines compiled; 0.265 sec total; 25.188MiB; Release Build) [SuccessX]
    
    $ cat hello.c
    #include <stdio.h>
    
    int main(void) {
    	printf("testando...\n");
    	return 0;
    }
    
    $ make hello
    cc     hello.c   -o hello
    $ file hello
    hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=0c8d7870667080bc470acc95fea4303edf5e1182, not stripped
    
    $ ./hello
    testando...
    
    $ ./cephei
    $ ./hello
    testando...
    
    $ rm hello
    $ CFLAGS=-static make hello
    cc -static    hello.c   -o hello
    $ file hello
    hello: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=c863151b3713bb6ba5d874288509b2a72e2a8428, not stripped
    
    $ ./hello
    testando...
    
    $ ./cephei
    $ ./hello
    Did you know that VV Cephei, also known as HD 208816, is an eclipsing binary star system located in the constellation Cepheus, approximately 5,000 light years from Earth? It is both a B[e] star and shell star. Awesome! https://en.wikipedia.org/wiki/VV_Cephei
    The more you know... :)
    testando...

    Estou fazendo algo errado?

    Grande abraço!

    @Fernando Mercês

    Sou Brasileiro sim!

    Hmmm pode ser que seja um bug mesmo! Valeu por notar, vou verificar quando sobrar um tempo.


    Abraços

    • Curtir 1
    g41j1n

    Posted

    Esse ano já se iniciou com novidades bem sinistras..

    Gabriel Matheus

    Posted

    De uma olhada na linguagem haxe talvez possa te interessar tambem.



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...