WebDav

Reading time: 7 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

WebDavが有効なHTTPサーバーを扱う際、正しい認証情報があればファイルを操作することが可能です。通常、これはHTTP Basic Authenticationを通じて確認されます。このようなサーバーを制御するには、しばしばウェブシェルのアップロードと実行が関与します。

WebDavサーバーへのアクセスには通常、有効な認証情報が必要であり、WebDavブルートフォースはそれを取得する一般的な方法です。

ファイルのアップロードに対する制限、特にサーバーサイドスクリプトの実行を防ぐ制限を克服するために、次のことができます:

  • 制限がない場合、実行可能な拡張子を持つファイルを直接アップロードする。
  • アップロードした非実行可能ファイル(.txtなど)の名前を実行可能な拡張子に変更する。
  • アップロードした非実行可能ファイルをコピーし、その拡張子を実行可能なものに変更する。

DavTest

Davtest異なる拡張子を持ついくつかのファイルをアップロードし、その拡張子が実行されるかどうかを確認します:

bash
davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension

これは、.txtおよび**.html拡張子が実行されていることを意味するわけではありません。これは、ウェブを通じてこれらのファイルにアクセスできる**ことを意味します。

Cadaver

このツールを使用して、WebDavサーバーに手動で接続し、アクション(アップロード移動、または削除など)を実行できます。

cadaver <IP>

PUT リクエスト

curl -T 'shell.txt' 'http://$ip'

MOVE リクエスト

bash
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'

IIS5/6 WebDav 脆弱性

この脆弱性は非常に興味深いです。WebDavは**.asp拡張子のファイルをアップロードまたは名前変更することを許可しません**。しかし、名前の末尾に**";.txt"を追加することでバイパスすることができ、ファイルはあたかも .asp ファイルのように実行されます(".txt"の代わりに".html"を使用することもできますが、";"**を忘れないでください)。

その後、あなたはシェルを**".txt"ファイルとしてアップロードし、".asp;.txt"ファイルにコピー/移動**することができます。そのファイルにウェブサーバーを通じてアクセスすると、実行されます(cadaverは移動アクションが機能しなかったと言いますが、実際には機能しました)。

資格情報の後処理

WebdavがApacheサーバーを使用している場合、Apacheで構成されたサイトを確認する必要があります。一般的には:
/etc/apache2/sites-enabled/000-default

その中には次のようなものが見つかるかもしれません:

ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user

ご覧のとおり、webdav サーバーの有効な credentials が含まれているファイルがあります:

/etc/apache2/users.password

このタイプのファイルの中には、usernamehash のパスワードが含まれています。これらは、webdav サーバーがユーザーを認証するために使用している資格情報です。

これらを crack するか、何らかの理由で webdav サーバーに access したい場合は、add more を試みることができます。

bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password

新しい資格情報が機能しているか確認するには、次のことを行うことができます:

bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする