WeSeong ログイン
← 記事一覧に戻る
WEBとセキュリティ

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シェルにログインし、さまざまなデータベース操作を実行できます。

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しかし、ユーザーがログインするときに、Webサイトがデータベースのメンバー表をクエリするときは、

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)、ログインが危険にさらされることになります。これは、さまざまな Injection 攻撃で悪用されることのある非常に基本的な SQL Injection 脆弱性であり、アカウントを変更する際に権限を変更したり、JavaScript コードを挿入したりすることでログインが無効になるケースもあります。



レビュー

今週の授業に関連する重要な部分はほぼ終わりだと思います。実際、先日の最終日(金曜)に取り上げた Docker の部分もありますが、もっと勉強してから後日予定されているクラウド授業で取り上げることができるので、時間があるときにそれについて記事を投稿してみます。後で学んだら、全部まとめて投稿するか、十分に勉強できたら、分けて投稿します。🖐️