Shikata Ga Nai

Private? There is no such things.

RCE via LFI Log Poisoning - The Death Potionを訳してみた

Hello there, ('ω')ノ

 

LFIログポイズニングによるRCEを。

 

脆弱性:

 RCE

 LFI

 ログポイズニング

 

記事:

 https://shahjerry33.medium.com/rce-via-lfi-log-poisoning-the-death-potion-c0831cebc16d

 

ツール:

 nmap

 Wappalyzer

 

 今回は、ログポイズニングを伴うローカルファイルインクルードを使用した。

リモートコード実行にエスカレートした方法について。


RCEとは、リモートコードを実行して。

攻撃者がシステムにアクセスしてその内容を読み取ったり削除したり。

変更を加えたりすることを可能にする脆弱性で。


LFIとは、ローカルファイルインクルードは。

攻撃者がWebアプリケーションをだましてWebサーバ上で。

ファイルを公開、または実行させるために使用されて。

情報開示、リモートコード実行、またはXSSにつながる可能性があって。

LFIは、アプリケーションがファイルへのパスを入力として使用するときに発生して。

アプリケーションがこの入力を信頼できるものとして扱う場合は。

ローカルファイルをincludeステートメントで使用できて。

 

vsftpd.logファイルとは、FTPサービスによって。

促進される悪意のあるアクティビティを追跡するために使用されて。

ftpサーバに送信されるすべてのコマンドが詳細なvsftpdログ形式を使用して。

ログに記録されるように構成する必要があって。

デフォルトのvsftpdログファイルは、/var/log/vsftpd. logで。

FTPサーバでのログインアクティビティまたは失敗したログイン試行を追跡して。


auth.logファイルとは、使用されたユーザログインや認証メカニズムなどの。

システム認証情報が含まれていて。

さまざまなログファイルについては、下記を。

 https://www.thegeekstuff.com/2011/08/linux-var-log-files/

 

f:id:ThisIsOne:20211002122844p:plain

 

ログポイズニングとは、LFIの脆弱性からリバースシェルを取得するために。

使用される一般的な手法で。

それを機能させるために攻撃者は悪意のある入力をサーバログに挿入して。

 

下記のエンドポイントで、ローカルファイルインクルードの脆弱性を見つけたので。

 https://target.com/templates/book.php?bookNumber=/etc/passwd

 

f:id:ThisIsOne:20211002114738p:plain


2.次に下記にアクセスしようとすると結果が得られず。

 https://target.com/templates/book.php?bookNumber=/etc/shadow


3.下記にアクセスしようとしても結果が得られず。

 https://target.com/templates/book.php?bookNumber=/var/log/auth.log

 

f:id:ThisIsOne:20211002114805p:plain


4.開いているポートを確認するためにnmapスキャンを実行すると。

 nmap -sC -sV -T4 -A target.com

 

f:id:ThisIsOne:20211002114838p:plain


21、22、80ポートが開いていたので、sshログインで。

ログポイズニングを行うことを考えたものの。

/var/log/auth.logファイルにWebでアクセスできなかったので。

不可能だと思い、リモートコード実行を実現することに。

 

ftpログが、vsftpd.logというファイルに保存されていることに気づいたので。

/var/log/vsftpd. logファイルにアクセスしようとすると、正常に表示されたので。

 

次のステップは、ftpサーバでログポイズニングを行うことで。

ログポイズニングでは、完璧なペイロードを見つけるために。

Webアプリケーションで使用されているテクノロジーを見つける必要があって。

使用されているテクノロジーを見つけるためにWappalyzerを使用すると。

PHP7やその他のテクノロジーも使用していることがわかったので。

 

f:id:ThisIsOne:20211002121214p:plain

 

5.vsftpd.logファイルに保存されるターゲットのftpサーバ上のユーザとして。

 PHPペイロードを使用して偽の試行を試すことに。


 ペイロード:

  ‘<?php system($_GET[‘commandInjection’]); ?>’

 

f:id:ThisIsOne:20211002114900p:plain


6.これで、下記を使用してエンドポイントにアクセスして。

 リモートでコードが実行できて。

 https://target.com/templates/book.php?bookNumber=/var/log/vsftpd.log&commandInjection=ifconfig

 

f:id:ThisIsOne:20211002114923p:plain

 

Best regards, (^^ゞ