Jump to content

gnoo

Membros
  • Content Count

    163
  • Joined

  • Last visited

Community Reputation

81 Excellent

Recent Profile Visitors

1,558 profile views
  1. Houve um utilizador no servidor do discord que dá pelo nickname @dedecos, não sei qual é o utilizador dele aqui no fórum que deu também uma resposta interessante, se estiver correta, passo a citar:
  2. Saudações, eu ando a dar uma vista de olhos sobre threads, e quando estava ler um conteúdo sobre algumas diferenças entre threads e processos, uma das diferenças era: a minha questão é sobre o significado de overhead neste contexto em especifico. se alguém souber a resposta agradecia a explicação. Abraços, obrigado.
  3. @Michel Pereira Obrigado pelas dicas, vou dar uma vista de olhos nas referências que deixas-te, obrigado.
  4. Saudações, este post segue com o intuito de perceber como funciona a análise dos bits ( bit masking ) que indicam que flag TCP está presente no pacote, que recebemos. Eu não percebo muito de bit masking nem de análise de pacotes, se este conteúdo tem erros na explicação deixa o erro nos comentários para que seja feita a sua correção. Anteriormente fiz um post sobre análise de pacotes TCP com python que podes ver aqui: E vou usar código que apresentei lá como exemplo. flags = tupla_dados_tcp[5] flag_FIN = flags & 1 flag_SYN = (flags >> 1) & 1 flag_RST = (flags >> 2) & 1 flag_PSH = (flags >> 3) & 1 flag_ACK = (flags >> 4) & 1 flag_URG = (flags >> 5) & 1 flag_ECE = (flags >> 6) & 1 flag_CWR = (flags >> 7) & 1 Para iniciar temos que ver o que são operadores bitwise e como utilizá-los, aqui vou dar apenas o exemplo de dois operadores necessários para executar esta tarefa. Operador & (AND) O operador & (AND) compara dois valores com representação binária em que cada bit destes valores é comparado. Para perceber como essa comparação é feita vamos ver a tabela da verdade. Vamos considerar que valor 0 é negativo e valor 1 é positivo. Quando utilizado o operador & (AND), o valor retornado da comparação entre dois bits só é 1 quando os dois valores são positivos, ou seja quando os dois valores presentes são 1. Operador Right Shift Com o operador Right Shift ( >> )deslocamos um determinado número de bits para a direita. Vamos usar um valor binário aleatório para exemplo: 00010100 Imaginando que queremos mover este valor 4 bits para direita Resultado Como funciona com python Se analisarmos esta linha : tupla_dados_tcp = struct.unpack('! HHLLBBHHH', carga[:20]) Eu obtenho uma tupla com o valor dos campos, feito no desempacotamento. Nesta linha: flags = tupla_dados_tcp[5] Eu armazeno o valor que está no index 5 da tupla na variavel flags, este é o valor que contém os bits que representam as flags que queremos ver se estão presentes ou não. Então uma vez que eu já tenho os 8 bits das flags na variável flags, eu tenho que ter um valor para comparar o bit mais à direta das flags com o bit mais à direita desse mesmo valor usando o operador & ( AND ). Caso o valor do bit mais à direita das flags seja 1, e o valor bit mais à direita do valor a comparar for 1 então a flag está definida então o valor armazenado na variável é 1, se o valor do bit mais à direita das flag for 0 então o valor armazenado na variável é 0, porque como nós vimos na tabela da verdade o valor só é 1 (positivo) quando duas condições são verdadeiras. O valor utilizado para fazer a comparação é o 1 ( decimal ), a sua representação em binário é 00000001, é escolhido este número porque o bit mais à direita é 1, e é esse bit que é utilizado para fazer comparação com o bit mais à direita da flag. Nesta linha temos a flag FIN flag_FIN = flags & 1 flag_SYN = (flags >> 1) & 1 flag_RST = (flags >> 2) & 1 flag_PSH = (flags >> 3) & 1 flag_ACK = (flags >> 4) & 1 flag_URG = (flags >> 5) & 1 flag_ECE = (flags >> 6) & 1 Nesta linha temos a flag CWR flag_CWR = (flags >> 7) & 1 Acho que é isto, se me enganei, espero que não seja por muito. Abraço.
  5. Este é um dos melhores "cursos" de python que já vi até hoje, isto na minha opinião.
  6. Saudações, Queria dar os parabens à equipa do mente binária pela reestruturação do forum, acho que ficou muito bom, mas talvez também fosse interessante fazer a reestruturação nos canais do servidor do discord. Abraço.
  7. @Insurgente vê esse video ai https://www.youtube.com/watch?v=IvPVd_UKoyI É possivel que tenhas que fazer também configurações no burp vê este link https://support.portswigger.net/customer/portal/articles/1783055-configuring-your-browser-to-work-with-burp
  8. Aaaahhh, e ainda tenho outro, um HP com um Atom, todo podre com 2 Gb de RAM, 30 Gb de disco, também com Arch Linux + Openbox ( uma instalação masi enxuta que no meu principal), ainda consigo rodar uma VM e ver um filme porno em 4k, ☺️ hehehehe... O que eu quero dizer com isto é que na maioria das vezes os recursos da máquina estão mal aproveitados, e é preciso fazer melhorias.
  9. @morgao porra, dizes que a tua máquina é bem fraca, um i5 4gen e ainda com 6 gb de RAM, desculpa lá mas tu não estás a ver bem o filme. Eu tenho um i3 com 4 Gb de RAM, já com uns bons anos a única coisa que lhe mudei foi o HD para um SSD, tenho instalado Arch Linux + Openbox em arranque inicia o sistema em mais ou menos 120 MB de RAM e ainda consigo rodar pelo menos uma duas VM's com as configurações certas em simultâneo. Mas tudo bem, se preferes dualboot a escolha é tua, eu acho é que tu não estás a saber usar os recursos da tua máquina. Um i5 não é nada de outro mundo mas é bastante bom, e 6Gb de RAM bem aproveitados dá para fazer muita coisa.
  10. @morgao Há temas( penso que seja Themes que estás a falar?) que são feitos para para interfaces gráficas em especifico, pode não funcionar.... Eu se fosse a ti, não sei se é a primeira vez que estás usar Gnu/Linux, o que eu faria era instalar um Linux Mint Cinnamon, já que tu queres uma interface bonita, se o computador for fraco talvez um XFCE, o linux mint é uma boa distro para começar e é um sistema sólido, fácil de instalar com três cliques, e depois de teres um sistema pronto a operar, começas então a estudar esses LPI essentials começas a fazer uns brincadeiras no terminal e conhecer o sistema e depois com o tempo, isso é gradual, mudas para outras distros ou ficas com essa... em vez de fazeres teste diretos no teu sistema não sei que tipo de computador tens, mas se os recursos forem mais ou menos montas uma VM instalas outras distros fazes os testes que tens a fazer, tentas fazer essas configurações e quando tiveres à vontade instalas na tua máquina.
  11. @morgão tudo bem?, esse é aquele tipo de problemas que se não formos objetivos sobre qual é a nossa dúvida e o que correu mal é difícil adivinhar aquilo que tu fizeste. Tentando interpretar a tuas palavras deixa algumas dúvidas no ar, tu dizes que tens duas versões de Linux instaladas e que dá a impressão de ter dois kernel's instalados... na realidade isso é possível. O que é que fizeste na realidade? instalaste fedora e deepin dualboot????? é que se for esse o caso então sim tens duas versões do linux, ou mais, e tens dois sistemas operativos instalados. A ideia que te posso dar é que se não percebes como funciona o dualboot e não consegues gerir para já o sistema dessa forma, tens de ver qual é a distribuição que realmente gostas, se é deepin formatas tudo e ficas com deepin, se queres ficar com fedora, formatas tudo e instalas fedora, e depois instalas a interface gráfica deepin no fedora. Esta é a solução mais rápida e eficaz, que tenho para te dar, depois com tempo vais aprendendo e vais adaptando a tua maneira.
  12. Escolas sem professores e sem certificado de habilitações, isso é o sonho de qualquer criança... Mas se não tem professores nem certificado de habilitações, então não é uma escola.
  13. Tens o discord deste forum podes falar lá se quiseres.
  14. Tem biliões de pessoas a olhar para malware todos os dias, basta olhar á tua volta e ver a quantidade de pessoas que não tira os olhos do Facebook e instagram.
  15. Saudações coisinhas fofas, fiz aqui um pequeno script em python para fazer requisições para servidores whois e queria partilhas com vocês, porque vocês merecem muitas coisinhas boas, então vamos lá... Root Zone Database https://www.iana.org/domains/root/db NOTA: Se clicarem no .br por exemplo vão ser redirecionados para uma página onde podem encontrar o "nome" do servidor para o qual deve ser feita a query caso o dominio que quem verificar terminar em .br. SCRIPT EM PYTHON from socket import * import re endereco = "mentebinaria.com.br" whois_arin = "whois.arin.net" servidores_whois_tdl = {'.br': 'whois.registro.br', '.org': 'whois.pir.org', '.com': 'whois.verisign-grs.com', '.pt': 'whois.dns.pt'} padrao_expressao_regular = re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") def requisicao_whois(servidor_whois, endereco_host, padrao): objeto_socket = socket(AF_INET, SOCK_STREAM) conexao = objeto_socket.connect_ex((servidor_whois, 43)) if conexao == 0: if padrao == True: objeto_socket.send('n + {}\r\n'.format(endereco_host).encode()) while True: dados = objeto_socket.recv(65500) if not dados: break print(dados.decode('latin-1')) elif padrao == False: objeto_socket.send('{}\r\n'.format(endereco_host).encode()) while True: dados = objeto_socket.recv(65500) if not dados: break print(dados.decode('latin-1')) if padrao_expressao_regular.match(endereco): requisicao_whois(whois_arin, endereco, padrao = True) else: for TLD in servidores_whois_tdl.keys(): if endereco.endswith(TLD): requisicao_whois(servidores_whois_tdl[TLD], endereco, padrao = False) NOTAS IMPORTANTES O SOBRE SCRIPT Porquê este ciclo de repetição ? while True: dados = objeto_socket.recv(65500) if not dados: break print(dados.decode('latin-1')) Porque a resposta completa vem em pacotes diferentes na maioria das vezes, e quando chegam são reagrupados, então se estiveres à espera de receber apenas o buffer e fazer output dos dados, ficas apenas com a resposta de um pacote, ou seja a resposta fica incompleta. Ao fazer a query para o servidor no método send( ) vais ver isto n + objeto_socket.send('n + {}\r\n'.format(endereco_host).encode()) segue o link : https://www.arin.net/resources/registry/whois/rws/api/ Vê o tópico NICNAME/Whois Queries está lá a explicar tudo. Porquê que é que está a ser feito um decode 'latin-1' nos dados recebidos ? print(dados.decode('latin-1')) Eu quando estive a fazer uma análise do domínio mentebinária.com.br, aparentemente o dono tem um nome muito estranho, que é mercês então o caractere ê vem num formato 0xea , então não dá para resolver com utf-8 tem que ser com latin-1. Vê esta informação: https://docs.python.org/3/howto/unicode.html e esta também https://docs.python.org/3/library/codecs.html#standard-encodings penso que seja tudo, beijinhos fofos.
×
×
  • Create New...