WeSeong 登录
← 返回文章列表
网络与安全

3Tier, Maria(DB), Hping3, John, Injection

3Tier, Maria(DB), Hping3, John, Injection

一、概述

在上一篇文章的基础上,我们将安装 DB 服务器,并将其连接到 WAS 服务器,以作为实践练习的一部分。 Hping3 Tool我们来做一个与 DDos 攻击有关的简单练习,使用 John Tool我们来练习一种利用字典猜测账户密码的攻击技术。此外,我们还要 Injection 攻击 SQL Injection 我们来看一个示例。



Ⅱ. DB

DB 服务器 MariaDB我们将使用它。在安装 DB 服务器之前,您可以连接到它。 Connector Tomcat(WAS)它下载到服务器并更改环境变量。 环境变量包括 JAVA和 Tomcat 同时注册两者。这是 Connector例如图书馆 Tomcat和 JAVA它的设计是为了使其可供使用。


※ 环境变量在 Linux(ubuntu) 中被注册为 /etc/profile. 可以使用 set 命令来查询 通过 环境变量的设置。



您可以按照以下方式修改 /etc/profile 文件。export 表示环境变量的设置,PATH 将 JAVA 和 Tomcat 执行相关部分添加到现有的 PATH 路径中(执行所关联的目录是 bin 目录)。最后,CLASSPATH 在 lib 中指定了 Tomcat 目录,因为 Connector 将下载到此路径。这将下载 MariaDB Connector.

MySQL :: 下载 MySQL Connector/J (存档版本)

MariaDB 连接器被称为 MySQL 页面,因为它本质上与 DB 相同。我建议您进行一些研究,以了解更多详细信息。


※ 输入命令 source /etc/profile 即可立即应用修改后的配置文件。



将链接复制到这里,然后 'wget'将其下载到任何目录 'sudo apt install binutils' 安装该包,然后 'ar -x mysql-connector-j_8.0.33-1ubuntu20.04_all.deb' 解压缩文件并 'tar xvzf data.tar.xz' 如果您还解压了文件,则 usr 文件夹将显示如下图所示。


/usr/local/apache-tomcat-9.0.82/lib/usr/share/java/mysql-connector-j-8.0.33.jar 在这个路径中, mysql-connector-j-8.0.33.jar 文件 /usr/local/apache-tomcat-9.0.82/lib 将其移动到此路径,然后 debian, control, data, deb, usr 它会删除所有文件和目录。您可以将它们保留如下所示。


使用 source 命令应用配置并重启 Tomcat 服务器。然后,连接到另一个虚拟机程序,安装 DB 服务器。安装 'sudo apt install mariadb-server'。您还可以在虚拟机启动时在启动程序中注册 'sudo systemctl enable mariadb'。


安装完成后,您可以以具有管理员权限的MariaDB账户登录root shell,并执行各种数据库操作。

create database test; #스키마 생성
create user 'test'@'%' identified by '1234'; #새로운 계정 생성
grant all privileges on *.* to test@'%'; #스키마에 대한 계정 권한 부여
flush privileges; #권한 변경 즉시 적용

虽然已经作了注释,但数据库仍需要研究。我们强烈建议您单独研究相关命令及其操作。由于内容较多,我们将在这里简单地用注释解释代替。

create table member(
    id int,
    name varchar(15),
    password varchar(20)
);

insert into member(id, name, password)
values
(1, '일', 'abcd'),
(2, '이', 'bcde'),
(3, '삼', 'cdef'),
(4, '사', 'defg'),
(5, '오', 'efgh');

假设我们有这些数据。


现在,为了检查数据是否正常传输, Tomcat(WAS)在服务器上 /usr/local/apache-tomcat-9.0.82/webapps 对于此项,现有的路径为 ROOT 目录的名称 ROOT.ori 并可以自由更改它们。 mkdir到新的 ROOT 创建一个目录。然后 ROOT 输入目录 index.jsp 创建文件,

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*" %>
<!DOCTYPE html>
<%
String DB_URL = "jdbc:mysql://10.10.10.10:3306/test";
String DB_USER = "test";
String DB_PASSWORD = "1234";
String sql = "";
Connection conn = null;
PreparedStatement ptmt = null;
ResultSet rs = null;

try {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
        sql = "select * from member where id = 1";
        ptmt = conn.prepareStatement(sql);
        rs = ptmt.executeQuery();
        if (rs.next()){
                out.println("Success "+rs.getString("name")+" "+rs.getString("password"));
        }else {
                out.println("실패");
        }
}catch(Exception e){
        out.println(e);
}finally{
        conn.close();
        ptmt.close();
        rs.close();
}
%>
附件test.sql下载文件

由于检查连接是否建立是很重要的,所以我们会这样写。最后,DB 服务器只允许通过 127.0.0.1 进行本地访问。etc/mysql/mariadb.conf.d/50-server.cnf 前往此路径中的文件 bind-address 一切事物的一部分 IP 将允许的 IP 更改为 0.0.0.0。


如果您使用 和 sudo systemctl restart mysqld 重启 DB 服务器,


您可以看到这些更改。现在,要真正完成,请前往所有服务器运行的 WEB 服务器地址,您将看到



不仅连接到 WAS 服务器成功,还可以从 DB 服务器中检索数据!



Ⅲ. Hping3

发送大量数据包,目的是使服务器崩溃 DDos 攻击我想简单尝试一下。首先, 'sudo apt install hping3'安装它。一旦安装完成, 'sudo hping3 --icmp 10.10.10.7(3Tier 上配置的 WEB 服务器地址 --rand-source --flood'我们来执行这个命令。


在此情况下,由于数据包没有记录在特殊访问日志中 (log),必须使用 tcpdump 命令将其下载为文件。如果在 WEB 服务器上运行 'tcpdump -w test.pcap' 命令,则可以将数据包日志 (log) 保存为文件。


如果您以这种方式输入命令,则必须单独退出创建过程,因为它仍在进行中。使用 WinSCP 程序,将 test.pcap 文件发送到您的操作系统,然后使用 Wireshark 程序打开它,您将看到以下内容:


你会看到大量的 ping 攻击。这可以看作是一个完全无用的免费 DDoS 测试。


※ tcpdump port 端口号: tcpdump 还有一个选项是仅存储进入特定端口的数据包,用于指定命令。



Ⅳ. John

英国 Jack the Ripper以一名连环杀手命名 John the Ripper那是一个裂缝 Tool它是专门用来破解 Unix 操作系统中的密码的,简单的密码可以很容易地被找到。 多种加密算法它包含了破解密码。 列表 文件单独存在,

john --wordlist=경로 및 파일명

此命令通过 它已经可用了,已经在网上流传了。 弱密码 列表 文件下载它 john 您可以使用此文件运行破解程序。若要充分体验它, 'sudo apt install john'安装它。要测试它,请执行以下操作: 'sudo adduser test1(帐户名称') 使用该命令时新增的功能 Linux 帐户 (密码为 'piglet'这会创建一个新帐户。请检查新帐户是否已正确创建 /etc/passwd 我们来检查一下这个文件。


在任何目录中 john 创建一个目录。现有 passwd 由于哈希密码正在被替换为 x,因此哈希密码存储在 /etc/shadow 取消对文件的阴影 passwd 我们需要将文件的部分 x 转换为哈希密码,并将其保存为一个新文件。 john 在目录中 'sudo unshadow /etc/passwd /etc/shadow > ./passwd'执行命令以转换 Linux 保存帐户密码文件。保存后, passwd 当您打开文件时,


您可以看到保存的文件处于修改后的状态。要实际运行破解程序(随机猜测帐户的密码),并找到密码,请运行 'john findpasswordfile'。由于找到密码可能需要很长时间,因此我们只会搜索我们创建的 test1 帐户的密码。输入命令 'john --user=test1 ./passwd',它将自动继续并报告找到的结果。



※ /etc/sudoers 文件存在, 编辑这些文件可能会给普通帐户授予 root (管理员) 权限。由于修改这些文件很危险, 系统会显示警告消息, 但您可以忽略它。


在进行这些更改并保存后,您可以再次登录并使用管理员权限。 /etc/ssh/sshd_config 有一个文件,这个文件 SSH 在连接到协议时 root 关于帐户 配置以限制或允许在 SSH 服务器上登录你可以马上做到这一点。 root 您可以允许或禁止使用凭据登录。打开文件后,其显示如下:


您可以更改已注释的 PermitRootLogin 属性。


※ Injection 有一个概念叫做代码注入,这是一种利用恶意代码攻击代码漏洞的技术。 SQL Injection但是,如果用户登录时,网站查询数据库中的成员表,

select * from member where id = '' and pw = ''

假设我们确认了这一点。在这种情况下,请输入密码

aaa' or 'x' = 'x

如果输入 , SQL Query 将为

select * from member where id = 'abc' and pw = 'aaa' or 'x' = 'x'

将被执行,而 或 将为真,如果其中只有一个为真(True),则登录将会被破坏。这是一种非常基本的 SQL Injection 漏洞,可被用于各种 Injection 攻击中利用,此外,还有一些情况下,通过更改权限或在修改帐户时插入 JavaScript 代码来禁用登录。



评论

我认为我们已经差不多完成了本周课程中涉及的重要部分了。实际上,还有我们在最后一天(星期五)讲过的 Docker 部分,但我认为我们需要进一步学习,可以在后面计划的云课程中讲到,所以我会在有时间的时候尝试发布相关内容。如果我稍后学习完,我会一次性发布全部内容,或者如果我学习足够多,我会分开发布。🖐️