Re: Procedimento para remoção do virus/worm SkyNet !!
Citação:
Postado originalmente por
Nks
como faco isso? no caso eu crio um arquivo com toda a lista de ips, vamos supor, desculpe se estiver errado pois nao sou programador!!
vamo la, eu crio um arquiv com tds os enderecos de ip com o nome de listaips.txt (coloquei txt nao sei pq foi apenas um exemplo!), ai la dentro tem:
192.168.0.100
192.168.0.101
192.168.0.102 .... e assim vai tds as airgrids infectadas...
ai la no script, em host onde eu coloquei o escopo da rede, que esta errado, eu coloco o endereco onde se encontra esse arquivo txt??
ex.:
host= '/listaips.txt'
simples assim ou estou totalmente errado???? hehehe
agradeco a sua disposição...
Olá.
Fiz uma aplicação para você, desde que concorde com as seguintes isenções.
1) Não há na aplicação qualquer verificação de consistência e integridade. Se o arquivo de hosts estiver deformado, com formato inválido, a aplicação não verificará esses erros. O código parte do princípio que você compôs corretamente o formato dos arquivos. Fique atento ao preenchimento de commands.txt e hosts.csv. Esses arquivos não podem ter linhas em branco.
2) A aplicação foi totalmente validada por PEP8, apenas. Outros validadores, como PyLint, não foram considerados.
3) A aplicação foi feita para ser executada em FreeBSD. Para executar em GNU/Linux, faça as adaptações no shebang (a primeira linha do arquivo, aquela que começa com #!/).
4) Se um dos hosts estiver off-line, não há tratamento para ignorar o insucesso da conexão e passar para o próximo ativo de rede. A aplicação considera que todos os hosts estão on-line e com serviço de SSH rodando.
5) Se concorda com as isenções acima, prossiga a leitura:
Código-fonte da aplicação, em Python.
Código :
#!/usr/local/bin/python
# -*- encoding: utf-8 -*-
import csv
import paramiko
from datetime import datetime
def CommandLoad(File):
"""
Read command file sets and return it.
"""
FILE = open(File, "r+")
varList = []
for varLine in FILE:
varList.append(varLine)
FILE.close()
return varList
def HostLoad(File):
"""
Read each host in hosts file.
"""
CSVFile = open(File, 'r')
Data = csv.reader(CSVFile)
for Row in Data:
IP = str(Row[0])
PORT = int(Row[1])
LOGIN = str(Row[2])
PASSWORD = str(Row[3])
FILENAME = str(IP) + '-' + str(
datetime.now().strftime("%Y-%m-%d-%H%M"))
SaveLog(FILENAME, SSHConnect(IP, PORT, LOGIN, PASSWORD))
def SaveLog(Filename, List):
"""
Save output (stdout) in file.
"""
varFile = open(Filename, "w")
varFile.writelines(List)
varFile.close()
def SSHConnect(Host, Port, Login, Password):
"""
Connect to devices.
"""
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(Host, port=Port, username=Login, password=Password)
List = []
for Commands in CommandLoad("commands.txt"):
stdin, stdout, stderr = ssh.exec_command(Commands)
for line in stdout:
List.append(line.replace('\r', ''))
ssh.close()
return List
HostLoad("hosts.csv")
Estrutura de hosts.csv, sendo composto por IP, porta, login e senha, valores estes separados por vírgula, conforme sugere o formato do arquivo CSV (comma separated values). ESTE ARQUIVO NÃO PODE TER LINHAS EM BRANCO.
Código :
172.30.0.2,22,ubnt,larry
172.30.0.3,22,ubnt,moe
172.30.0.4,22,ubnt,curly
Estrutura de commands.txt, arquivo que tem todos os comandos que você deseja executar nos hosts definidos em hosts.csv. ESTE ARQUIVO NÃO PODE TER LINHAS EM BRANCO.
Código :
rm /etc/persistent/rc.poststart
rm -rf /etc/persistent/.skynet
cfgmtd -w -p /etc/
reboot
Com isso, você já resolve o problema. Todos os comandos declarados no arquivo commands.txt, serão executados em todos os hosts descritos em hosts.csv. :)
Testa e nos avisa.
Saudações,
Trober
Re: Procedimento para remoção do virus/worm SkyNet !!
trober, muito obrigado por deixar td mastigado agora eh soh engolir!!hehe
isso vai ajudar muito, o unico problemas eh encontrar tds airgrids on-line para rodar o script!
uma ultima coisa, no hosts.csv e commands.txt eu tenho que colocar o
#!/usr/local/bin/python na primeira linha ou apenas no arquivo .py????
bom e uma ultima duvida, no caso nas setoriais eu removi o virus e coloquei o firmware do alexandre, agora sempre lembro dele quando acesso o aircontrol pois aparece do lado da versao do firmware o a.correa!! nada mais justo pois seu firmware nao barra o up em 1mb igual oultimo disponivel no site da ubnt! nao estou reclamando!!! hehehe
enfim, depois de atualizado ele corrige o buq, e nao infecta mais, nos airgrids, se eu apenas remover o virus e nao atualizar o firmware, sera que outros airgrids que eu ainda nao removi o virus pode infectar esses que eu ja removi, pois apenas removi e nao atualizei o firmware??
ah eu dei um drop no ip que o virus manda informacao, igual o alexandre recomendou! mais acho q ele se espalha sem a necessidade de se comunicar com esse ip??
abracos a tods, muito obrigado trober e tbm ao alexandre correa !
sucesso e felicidades....
Re: Procedimento para remoção do virus/worm SkyNet !!
Citação:
Postado originalmente por
Nks
trober, muito obrigado por deixar td mastigado agora eh soh engolir!!hehe
isso vai ajudar muito, o unico problemas eh encontrar tds airgrids on-line para rodar o script!
Você pode fazer um controle de exception, para tratar os AirGrid que estão desligados.
Citação:
Postado originalmente por
Nks
uma ultima coisa, no hosts.csv e commands.txt eu tenho que colocar o
#!/usr/local/bin/python na primeira linha ou apenas no arquivo .py????
Somente no arquivo de extensão .py.
Citação:
Postado originalmente por
Nks
bom e uma ultima duvida, no caso nas setoriais eu removi o virus e coloquei o firmware do alexandre, agora sempre lembro dele quando acesso o aircontrol pois aparece do lado da versao do firmware o a.correa!! nada mais justo pois seu firmware nao barra o up em 1mb igual oultimo disponivel no site da ubnt! nao estou reclamando!!! hehehe
enfim, depois de atualizado ele corrige o buq, e nao infecta mais, nos airgrids, se eu apenas remover o virus e nao atualizar o firmware, sera que outros airgrids que eu ainda nao removi o virus pode infectar esses que eu ja removi, pois apenas removi e nao atualizei o firmware??
ah eu dei um drop no ip que o virus manda informacao, igual o alexandre recomendou! mais acho q ele se espalha sem a necessidade de se comunicar com esse ip??
Não uso produtos Ubiquiti, por isso, não tenho opinião sobre essa parte da sua mensagem, apesar de ser o foco principal desse tópico.
Citação:
Postado originalmente por
Nks
abracos a tods, muito obrigado trober e tbm ao alexandre correa !
sucesso e felicidades....
Fico feliz em ter ajudado :)
Saudações,
Trober
Re: Procedimento para remoção do virus/worm SkyNet !!
trober, cara deu td certo, to passando aqui soh pra agradecer novamente msm. eu listei apenas as on-lines, e rodei e executou certinho!
em relacao ao virus da minha pergunta anterior, nao se espalha nao.
abracos
Re: Procedimento para remoção do virus/worm SkyNet !!
Citação:
Postado originalmente por
Nks
trober, cara deu td certo, to passando aqui soh pra agradecer novamente msm. eu listei apenas as on-lines, e rodei e executou certinho!
Que boa notícia :)
Você pode usar o nMap, com -n -sP, em conjunto com a opção -oG (grepable), filtrando só os hosts ativos (UP), e com uns awk para lá, uns sed para lá, você monta dinamicamente seu arquivo hosts.csv, sem ter de tratar exception no Python ;)
Citação:
Postado originalmente por
Nks
em relacao ao virus da minha pergunta anterior, nao se espalha nao.
Não uso Ubiquiti, mas é sempre bom saber. Grato pela informação :)
Citação:
Postado originalmente por
Nks
abracos
Para você também.
Saudações,
Trober