Dark Web e Malwares na internet, quanto custa?

Neste artigo irei descrever quanto custa, como é fácil encontrar e como é um exemplo básico de um malware vendido na Dark/Deep Web. Lembre-se, o intuito aqui não é incentivar ninguém a cometer esse tipo de crime, é de caráter informativo e muito mais para prevenção. Esta peça foi criada como pesquisa, não para ajudá-lo a se tornar um criminoso.

[ Hits: 1.071 ]

Por: Fabricio Santos Brasileiro em 04/02/2024


Exemplo de malware comprado



A invés de comprar um malware, paguei 1$ e capturei alguns exemplos de vulnerabilidade "SQL Injection" e inclusive a correção do mesmo.

Note que isso poderia ser um artefato muito mais elaborado e, por sua vez, poderia fazer um estrago grande...

O objetivo deste exemplo é mostrar um cenário vulnerável, e não deve ser usado no código de produção....

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class UserAuthentication {
    public static void main(String[] args) {
        String username = "admin'; DROP TABLE users; --";
        String password = "password";

        try {
            // Establish database connection
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "username", "password");
            Statement statement = connection.createStatement();

            // Construct the SQL query
            String query = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'";

            // Execute the query
            ResultSet resultSet = statement.executeQuery(query);

            // Check if a matching user was found
            if (resultSet.next()) {
                System.out.println("Authentication successful");
            } else {
                System.out.println("Authentication failed");
            }

            // Close database connections
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo, o código é vulnerável a um ataque SQL INJECTION porque conecta diretamente a entrada fornecida pelo usuário (a variável de nome de usuário) na consulta do SQL sem sanitização ou parametrização adequada.

Em um ataque SQL Injection, um atacante pode manipular a entrada para injetar um código SQL malicioso que pode alterar a lógica da consulta original ou executar ações não intencionais. Neste caso, o valor de nome de usuário fornecido pelo atacante tenta baixar a tabela de usuários do banco de dados.

Para evitar um SQL Injection, é essencial usar declarações preparadas ou consultas parametrizadas, que podem lidar corretamente com a entrada do usuário e evitar a concatenagem direta de variáveis em declarações do SQL.

Para mitigar um SQL Injection, o código deve ser modificado para usar declarações preparadas como mostrado no exemplo melhorado abaixo: (Exemplo também comprado na Dark Web).

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserAuthentication {
    public static void main(String[] args) {
        String username = "admin'; DROP TABLE users; --";
        String password = "password";

        try {
            // Establish database connection
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "username", "password");
            PreparedStatement statement = connection.prepareStatement("SELECT * FROM users WHERE username=? AND password=?");
            statement.setString(1, username);
            statement.setString(2, password);

            // Execute the query
            ResultSet resultSet = statement.executeQuery();

            // Check if a matching user was found
            if (resultSet.next()) {
                System.out.println("Authentication successful");
            } else {
                System.out.println("Authentication failed");
            }

            // Close database connections
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo melhorado, são usadas instruções preparadas e a entrada do usuário é parametrizada definindo espaços reservados (?) e associando os valores apropriados à instrução.

Essa abordagem ajuda a evitar ataques de injeção de dados de SQL, separando o código SQL da entrada do usuário e tratando-os como entidades distintas.

Página anterior    

Páginas do artigo
   1. O que é DarkWeb?
   2. Malwares e como agem?
   3. O que a Darkweb disponibiliza para comercialização
   4. DDOS as a service
   5. Exemplo de malware comprado
Outros artigos deste autor

Identificando dispositivos IoT usando Wireshark e criando uma estratégia interessante de visibilidade em Linux e Unix

Vírus? Checando base de dados de fabricantes proprietários como McAfee e Symantec e aplicando em distribuições Red Hat

Leitura recomendada

Nagios - Automatizando Auditorias de Rootkit

Vírus em Linux?

Snort + MySQL + Guardian - Instalação e configuração

From Deploy WAR (Tomcat) to Shell (FreeBSD)

Hardening, se adequando as normas ISO 27000

  
Comentários
[1] Comentário enviado por maurixnovatrento em 07/02/2024 - 18:42h


Artigo bem elaborado. Parabéms pelo esforço.

______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts