<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MathzRocha (S1cK_)</title>
    <description>The latest articles on DEV Community by MathzRocha (S1cK_) (@s1ck0xnull).</description>
    <link>https://dev.to/s1ck0xnull</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1618446%2Ff26fe74e-4c80-49ca-aaca-e1f02cc902c0.png</url>
      <title>DEV Community: MathzRocha (S1cK_)</title>
      <link>https://dev.to/s1ck0xnull</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/s1ck0xnull"/>
    <language>en</language>
    <item>
      <title>Comandos Linux</title>
      <dc:creator>MathzRocha (S1cK_)</dc:creator>
      <pubDate>Sat, 06 Sep 2025 13:00:00 +0000</pubDate>
      <link>https://dev.to/s1ck0xnull/comandos-linux-28c</link>
      <guid>https://dev.to/s1ck0xnull/comandos-linux-28c</guid>
      <description>&lt;h1&gt;
  
  
  Cheatsheet de Comandos Linux
&lt;/h1&gt;

&lt;p&gt;Este guia apresenta uma lista organizada de comandos essenciais para uso no terminal Linux e, em muitos casos, também no macOS.  &lt;/p&gt;




&lt;h2&gt;
  
  
  📂 Navegação e Arquivos
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ls&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lista o conteúdo de um diretório&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Muda de diretório&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;pwd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe o diretório atual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;mkdir&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cria diretórios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copia arquivos ou diretórios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;mv&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Move ou renomeia arquivos e diretórios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;rm&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Remove arquivos ou diretórios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;touch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cria arquivos vazios ou atualiza timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;stat&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra informações detalhadas de arquivos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;find&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Realiza buscas no sistema de arquivos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;locate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Localiza arquivos no sistema (necessita &lt;code&gt;updatedb&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📄 Manipulação de Arquivos
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cat&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe o conteúdo de arquivos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;nano&lt;/strong&gt; / &lt;strong&gt;vim&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Editores de texto em terminal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;echo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Imprime mensagens ou variáveis na tela&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;wc&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Conta linhas, palavras e caracteres&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cut&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Realiza cortes/extrações de texto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;diff&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Compara arquivos linha a linha&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ⚙️ Processos e Sistema
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra processos ativos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;top&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe processos em tempo real&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;kill&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Finaliza processos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;uptime&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra há quanto tempo o sistema está ligado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe memória em uso e disponível&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;df&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra espaço em disco&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;du&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe uso de espaço por diretório/arquivo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;uname&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra informações do sistema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;hostname&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe ou altera o nome da máquina&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;history&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra histórico de comandos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;man [comando]&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe o manual do comando&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🔐 Usuários e Permissões
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;sudo [comando]&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Executa comando como superusuário&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;chmod&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Altera permissões de arquivos/diretórios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;useradd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cria um novo usuário&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📦 Gerenciamento de Pacotes (Debian/Ubuntu)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;apt-get&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instala, remove, atualiza e pesquisa pacotes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;dpkg&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instala ou gerencia pacotes &lt;code&gt;.deb&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🌐 Rede
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ip a&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exibe endereços IP da máquina&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;netstat&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;exibe informações sobre conexões de rede, tabelas de roteamento e estatísticas de interfaces de rede&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;route print&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mostra as tabelas de roteamento da máquina&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📚 Referência
&lt;/h2&gt;

&lt;p&gt;Para aprofundar seus conhecimentos, recomendo a leitura do &lt;strong&gt;&lt;a href="https://www.guiafoca.org/" rel="noopener noreferrer"&gt;Guia Foca&lt;/a&gt;&lt;/strong&gt;.  &lt;/p&gt;




&lt;p&gt;✍️ &lt;strong&gt;Dica:&lt;/strong&gt; Use &lt;code&gt;man [comando]&lt;/code&gt; para aprender mais detalhes e opções avançadas de cada comando.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>dicas</category>
      <category>newbie</category>
    </item>
    <item>
      <title>Criando um Port Scan com Python3</title>
      <dc:creator>MathzRocha (S1cK_)</dc:creator>
      <pubDate>Tue, 29 Apr 2025 14:31:12 +0000</pubDate>
      <link>https://dev.to/s1ck0xnull/criando-um-port-scan-com-python3-45ea</link>
      <guid>https://dev.to/s1ck0xnull/criando-um-port-scan-com-python3-45ea</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;No artigo de hoje, vamos desenvolver um Port Scan utilizando Python 3, mas, antes de mais nada, é fundamental compreender o que é um port scan e como ele funciona.&lt;/p&gt;

&lt;h2&gt;
  
  
  Entendendo um Port Scan
&lt;/h2&gt;

&lt;p&gt;O que é um port scan?&lt;br&gt;
Basicamente, trata-se de um programa que envia pacotes de dados para uma determinada porta em um ativo específico. O port scan opera na camada de transporte do protocolo TCP. Ele envia um pacote com a flag SYN para uma porta no servidor e, caso o servidor responda com SYN-ACK, entende-se que a porta está aberta.&lt;br&gt;
Se o retorno for uma flag RST, a porta está fechada. Outra resposta possível é o ICMP Destination Unreachable, que indica que a porta está filtrada, ou seja, acessível apenas internamente ou por redes autorizadas.&lt;/p&gt;

&lt;p&gt;Existem duas abordagens comuns para se realizar um port scan:&lt;/p&gt;

&lt;p&gt;TCP — baseado em conexão (three-way handshake)&lt;/p&gt;

&lt;p&gt;UDP — sem garantia de entrega dos pacotes&lt;/p&gt;

&lt;p&gt;Veja a representação visual abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP — baseado em conexão (3-way handshake)&lt;/li&gt;
&lt;li&gt;UDP — Não garante a entrega
Veja abaixo isso de forma mais visual:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Você] --------- SYN ----------&amp;gt; [Servidor Porta 80]
[Você] &amp;lt;------ SYN-ACK ---------- [Servidor Porta 80]   (Porta aberta!)
[Você] -------- RST ------------&amp;gt; [Servidor Porta 80]   (Fecha conexão)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Agora que compreendemos melhor o funcionamento do port scan, vamos ao nosso código. Para facilitar o entendimento, o código será apresentado em blocos e, ao final, será exibido de forma completa.&lt;/p&gt;
&lt;h2&gt;
  
  
  Nosso Port Scan
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import socket
import sys
from datetime import datetime
from colorama import init, Fore


init(autoreset=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Este primeiro bloco importa as bibliotecas necessárias e inicializa o Colorama, que permite o uso de cores no terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def scan_port(ip, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(0.5)

        result = sock.connect_ex((ip, port))
        sock.close()

        if result == 0:
            print(Fore.GREEN + f"[+] Porta {port} aberta")
        else:
            print(Fore.RED + f"[-] Porta {port} fechada")
    except Exception as e:
        print(Fore.RED + f"[!] Erro ao escanear a porta {port}: {e}")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta é nossa primeira função, chamada &lt;code&gt;scan_port&lt;/code&gt;. Ela recebe como parâmetros o IP e a porta. O objetivo é tentar uma conexão com a porta especificada no host, retornando se ela está aberta ou fechada.&lt;br&gt;
Na função, é criado um &lt;code&gt;socket&lt;/code&gt; para realizar a conexão. O bloco &lt;code&gt;try&lt;/code&gt; é utilizado para tratamento de exceções, retornando uma mensagem de erro caso a verificação falhe.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def main():
    print("-" * 50)
    print("Port Scanner Básico")
    print("-" * 50)

    target = input("Digite o IP ou domínio a ser escaneado: ")

    ports_input = input("Digite as portas separadas por vírgula (ou pressione ENTER para todas as portas): ")

    if ports_input.strip() == "":
        ports = range(1, 65536)  # Escaneia todas as portas
    else:
        try:
            ports = [int(port.strip()) for port in ports_input.split(",")]
        except ValueError:
            print(Fore.RED + "[!] Formato inválido de porta(s). Use apenas números separados por vírgula.")
            sys.exit(1)

    print(f"\nIniciando o scan em {target}...\n")
    start_time = datetime.now()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta função representa o ponto de entrada principal da aplicação. Ela exibe um banner no terminal e solicita ao usuário que informe o alvo (target), podendo ser um endereço IP ou domínio.&lt;br&gt;
Também solicita que o usuário insira as portas a serem escaneadas, separadas por vírgula. Caso nenhuma porta seja informada, o código executará a varredura em todas as 65535 portas TCP.&lt;br&gt;
As entradas do usuário são convertidas para inteiros. Se houver algum valor inválido, uma mensagem de erro é exibida e a execução é encerrada com &lt;code&gt;sys.exit(1)&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # Faz o scan em cada porta
    for port in ports:
        scan_port(target, port)

    end_time = datetime.now()
    total_time = end_time - start_time
    print("\nScan finalizado!")
    print(f"Tempo total: {total_time}")

if __name__ == "__main__":
    main()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por fim, o laço &lt;code&gt;for&lt;/code&gt; percorre cada porta informada, invocando a função &lt;code&gt;scan_port&lt;/code&gt; para realizar a tentativa de conexão.&lt;br&gt;
Ao final do processo, o tempo total de execução do scan é exibido.&lt;br&gt;
As saídas do script são coloridas: verde para portas abertas e vermelho para portas fechadas ou erros.&lt;/p&gt;

</description>
      <category>pentest</category>
      <category>cybersecurity</category>
      <category>programming</category>
      <category>python</category>
    </item>
  </channel>
</rss>
