Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
Aof

Vacina: Vírus atalho

Posts Recomendados

 

Fiz esse script em Python, pra automatiza o processo de remoção worm que se replica em diversos hardwares HDs e PenDrives.

podem dar dicas sugestivas para haver uma melhora significativa no mesmo, afinal não e só meu script e nosso a parti de agora. heheheh

atenção: essa vacina apenas apaga o arquivo infectado dentro do windows. Ainda não  limpa pendrives.

 

abraço a todos.

import os


def Deleta_Worm():
	username = os.environ['username'] ##pega o nome do usuario logado e armazena na variavel 'username'.
	path = "C:\\Users\\"+username+"\\AppData\\Roaming\\" ## caminho onde o worm esta localizado, a variavel 'username' e utilizada pelo fato de haver diferentes nomes de usuarios.
	pasta = ""

	##seta o local do virus com variavel 'path'
	os.chdir(path)


	diretorio = []

	for p in os.listdir(): ##lista pastas
		diretorio.append(p) ## add as pasta a list diretorio
		for d in diretorio:  ## percorrer a lista diretorio
			pasta = d ##pasta recebe valor de diretorio
			os.chdir(path+pasta) ##seta novo caminho, com a cocatenaçao das varias path e pasta
			for file in os.listdir(): ## Dentro da nova pasta lista todos arquivos
				f = file.split('.') 	##divide arquivos com . ex: virus.exe = 'virus' . 'exe'
				try:
					##primeira verificaçao a preocura da extencao js																				
																									##  0 pos    1 pos
					if f[1] == "js": ## se a segunda posiçao de f e igual a js, encontrou o virus. ex: 'virus' , 'exe'
						deletefile = "del " + file ## variavel deletefile recebe a cancatenaçao, ex: "del virus.exe" 
						print(deletefile) ## mostra o arquivo a ser deletado
						os.system(deletefile) ## deleta o arquivo
						for ff in os.listdir(): 	#lista arquivos da pasta do virus
							s = ff.split('.')	## divide novamente
							try: ## tenta os argumentos abaixo
								##segunda verificaçao dentre da pasta do virus
								if s[1] == "exe": 
									deletefile = "del " + ff
									print(deletefile)
									os.system(deletefile)
							except IndexError: ## se for encontrado uma pasta, da IndexError e vai da pass nessa pasta
											   ## e continuar a localizaçao de arquivo com extençao
								pass
						print("\n\n Worm Removido com sucesso. Reinicie o pc.")
						os.system("pause > null")
						break
				except IndexError:
					pass





result = os.system('taskkill /T /F /IM wscript.exe ') ##finaliza o processo e retorna um valor inteiro
## taskkill 	  finaliza processo do windows
## /t     		  Finaliza o processo e o filhos do mesmo
## /f    		  Força a finalização 
## /IM 			  Especifica o nome do processo a ser finalizado.
## wscript.exe 	  programa padrao do windows para execuçao de script javascrip


if result != 0:##verificaçao se wscript esta rodando no windows.
	## se o wscript nao estiver rodando no windows.
	print("Nenhum processo Malicioso foi encontrado!") 
	os.system("pause > null")
	exit()
else:##se o wscript estiver rodando
	Deleta_Worm()##chama a  funcao para deleta o worm





			

 

Editado por Aof
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá @Aof tudo bem!?

Seria interessante melhorar o nome das tuas variáveis para perceber melhor !?

Outra questão e desculpa a minha ignorância( eu já não me lembro da ultima vez que usei windows não conheço os comandos), mas o que "taskkill /T /F /IM wscript.exe", faz?, a minha duvida tem a ver com estes "/T /F /IM".

Outra coisa, esse executável "wscript.exe", é um arquivo especifico? (se sim onde baixar?), preciso executar ele durante os testes?, ou é apenas para exemplo?

Abraço :) 

Editado por gnoo
  • Agradecer 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem, 

 Caro @gnoo  documentei todo o script para facilita o intendimento de todos.

respondendo suas perguntas.

taskkill   Programa padrão para finaliza processo do windows

parâmetros
/t     	 Finaliza o processo e os filhos do mesmo
/f    	 Força a finalização 
/IM 	 Especifica o nome do processo a ser finalizado.


wscript.exe  Programa padrão do windows para execução de script javascript 

Obrigado pelo feedback.

abraço. 

Editado por Aof

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Aof o código fico bom,

sabes onde posso arranjar um virus, coisa básica, que faça uso do wscript.exe,  para ver como ele funciona?

Eu preciso ver esse processo a decorrer no sistema, à alguma coisa na tua lógica que eu não estou a perceber, tu começas a tentar terminar um processo que eventualmente está a decorrer no sistema sem antes ver se ele está ativo, há alguma razão para isso?

Mesmo depois de "finalizar o processo" e enviar uma mensagem a dizer que nada foi encontrado, continuas à procura nos directórios por um suposto arquivo .exe e .js.

Uma questão, porquê que estás a ir neste caminho em especifico?

"C:\\Users\\"+username+"\\AppData\\Roaming\\"

Se souberes de algum virus desse para eu executar numa vm e ver como os processos decorrem, deixa ai link para baixar.

abraço. :)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo feedback @gnoo.

fiz alguns novos comentários e modificações no código.

respondendo sua duvida: esse caminho é o local onde o worm esta localizado no sistema, a variável username  é  utilizada para armazena o nome do usuário logado no sistema, fazendo com que este código rode em qualquer maquina, seja qual for o nome de usuário.

"C:\\Users\\"+username+"\\AppData\\Roaming\\"

 

Eu tenho sample dele, só que não sei se é permitido compartilha link de virus real aqui no forum.

abraço.

  

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não testei direito, mas acredito que a parte da exclusão dos arquivos possa ser feito +- desta forma

 

import subprocess
import re

malware_ext = ['.js']
malware_ext2 = ['.exe']
paths = ["%appdata%"]

for path in paths:
    for malware in malware_ext:
        result = subprocess.getoutput('del /s /f /q "{path}"\*{ext}'.format(path=path, ext=malware))
        if not "*" in result:
            malware_paths = list(set(re.findall('(C\:.*\\\)', result)))
            if malware_paths:
                for malware_path in malware_paths:
                    for malware2 in malware_ext2:
                        subprocess.getoutput('del /s /f /q "{path}"\*{ext}'.format(path=malware_path, ext=malware2))
        else:
            print("Nenhum arquivo infectado")


* A ideia principal é permitir algo mais escalável, pois basta adicionar novas extensões ou paths na lista e o código fará o processo de busca e remoção utilizando os critérios do código original. Entretanto, o processo de remoção parece um tanto quanto perigoso já que exclui arquivos com base somente na extensão, isso em um ambiente real poderia causar problemas... 

** Não postei nada sobre a parte do script, mas acredito que possa ser substituída essa parte 

result = os.system('taskkill /T /F /IM wscript.exe ') ##finaliza o processo e retorna um valor inteiro

por esta 

result =  subprocess.getoutput('taskkill /T /F /IM wscript.exe ') ##finaliza o processo e retorna um valor inteiro

ou algo parecido na lib subprocess, assim podemos evitar o carregamento de mais um módulo

No comando taskskill em si, temos um problema semelhante ao de sair excluindo dados com base na extensão. Neste caso o comando encerra processos que estejam usando o wscript, e isso pode causar danos também em um ambiente real

  • Curtir 1
  • l33t 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×