
pwndrop に敬意を表して名付けられた pwnlift は、C2 を使用せずにデスクトップからファイルをアップロードするためのシンプルな dotnet サーバーアプリケーションです。 マシンへのコンソールアクセスがあり、分析のためにファイルをオフラインに持ち出したい場合(Code Integrity Policy ファイルなど)に便利です。

dotnet publish を使用してプロジェクトをビルドし、必要なターゲットランタイムを指定します。例: Windows の場合は dotnet publish -r win-x64、Linux の場合は -r linux-x64。サーバーに ASP.NET ランタイムがまだインストールされていない場合は、
--self-contained trueを指定してビルドに同梱してください。
publish フォルダーをサーバーにコピーします。使用する URL とポートを指定して appsettings.json を変更します。
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:8080"
}
}
}
}
HTTPS を使用するには、エンドポイント、証明書のパス、証明書のパスワードを定義します。
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:8080"
},
"Https": {
"Url": "https://*:8443",
"Certificate": {
"Path": "contoso.com.pfx",
"Password": "pass123"
}
}
}
}
}
HTTPS を有効にすると、HTTP エンドポイントは自動的に HTTPS へリダイレクトされることに注意してください。
あとは pwnlift バイナリを実行するだけです。
$ ./pwnlift
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:8080
info: Microsoft.Hosting.Lifetime[14]
Now listening on: https://[::]:8443
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
アップロードされたすべてのファイルは Uploads ディレクトリに保存されます。