บทนำ (Overview)
บทความนี้กล่าวถึงการจัดเก็บ “Hash” ไว้ในไฟล์ที่ชื่อว่า “passwd” ซึ่งบัญชีผู้ใช้ใด ๆ สามารถเข้าถึงได้ ซึ่งเป็นได้ที่จะโดนนำ “Hash” ดังกล่าวไป “Bruteforce” ถ้ารหัสผ่านถูกตั้งไว้อย่างง่าย ๆ ในการเดารหัสผ่านโดยใช้โปรแกรมอัตโนมัติก็คงใช้เวลาไม่มากดังต่อไปนี้
ขั้นตอน (Steps)
- ดาวน์โหลด “VM” ได้จาก https://exploit-exercises.com/download/
- “Login” โดยใช้ “User” คือ “level06” และ “Password” คือ “level06”
- โดยวัตถุประสงค์เราจะยกระดับสิทธิจาก “level06” เป็น “flag06”
- ทดลองเข้าโฟลเดอร์ “flag06” ปรากฏว่าไม่พบอะไรเลยดังนี้
ls -l total 0
- ลองหาไฟล์ที่อาจจะซ่อนอยู่ก็ไม่พบไฟอื่นๆ ใดนอกจากไฟล์ปกติ
level06@nebula:/home/flag06$ ls -al total 5 drwxr-x--- 2 flag06 level06 66 2011-11-20 20:51 . drwxr-xr-x 1 root root 180 2012-08-27 07:18 .. -rw-r--r-- 1 flag06 flag06 220 2011-05-18 02:54 .bash_logout -rw-r--r-- 1 flag06 flag06 3353 2011-05-18 02:54 .bashrc -rw-r--r-- 1 flag06 flag06 675 2011-05-18 02:54 .profile
- ลองกลับไปที่โจทย์ดูเราพบรายละเอียดว่า บัญชีผู้ใช้ถูกโอนมาจากระบบเก่า เพราะฉะนั้นไฟล์ที่เกี่ยวข้องกับบัญชีผู้ใช้ก็คือ “shadow” และ “passwd” เราลองตรวจ “permission” ดูว่าสามารถเข้าถึงได้หรือไม่
level06@nebula:/home/flag06$ ls -l /etc/shadow -rw-r----- 1 root shadow 2540 2011-12-06 02:12 /etc/shadow level06@nebula:/home/flag06$ ls -l /etc/passwd -rw-r--r-- 1 root root 2604 2011-12-06 02:12 /etc/passwd
- จาก “permission” ข้างต้นพบว่ามีเพียง “passwd” เท่านั้นที่เราเข้าไปอ่านเนื้อหาได้ ลองตรวจสอบชื่อบัญชีผู้ใช้ดังนี้
level06@nebula:/home/flag06$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh syslog:x:101:103::/home/syslog:/bin/false messagebus:x:102:104::/var/run/dbus:/bin/false nebula:x:1000:1000:nebula,,,:/home/nebula:/bin/bash sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin level00:x:1001:1001::/home/level00:/bin/sh flag00:x:999:999::/home/flag00:/bin/sh level01:x:1002:1002::/home/level01:/bin/sh flag01:x:998:998::/home/flag01:/bin/sh level02:x:1003:1003::/home/level02:/bin/sh flag02:x:997:997::/home/flag02:/bin/sh level03:x:1004:1004::/home/level03:/bin/sh flag03:x:996:996::/home/flag03:/bin/sh level04:x:1005:1005::/home/level04:/bin/sh flag04:x:995:995::/home/flag04:/bin/sh level05:x:1006:1006::/home/level05:/bin/sh flag05:x:994:994::/home/flag05:/bin/sh level06:x:1007:1007::/home/level06:/bin/sh flag06:ueqwOCnSGdsuM:993:993::/home/flag06:/bin/sh level07:x:1008:1008::/home/level07:/bin/sh flag07:x:992:992::/home/flag07:/bin/sh level08:x:1009:1009::/home/level08:/bin/sh flag08:x:991:991::/home/flag08:/bin/sh level09:x:1010:1010::/home/level09:/bin/sh flag09:x:990:990::/home/flag09:/bin/sh level10:x:1011:1011::/home/level10:/bin/sh flag10:x:989:989::/home/flag10:/bin/sh level11:x:1012:1012::/home/level11:/bin/sh flag11:x:988:988::/home/flag11:/bin/sh level12:x:1013:1013::/home/level12:/bin/sh flag12:x:987:987::/home/flag12:/bin/sh level13:x:1014:1014::/home/level13:/bin/sh flag13:x:986:986::/home/flag13:/bin/sh level14:x:1015:1015::/home/level14:/bin/sh flag14:x:985:985::/home/flag14:/bin/sh level15:x:1016:1016::/home/level15:/bin/sh flag15:x:984:984::/home/flag15:/bin/sh level16:x:1017:1017::/home/level16:/bin/sh flag16:x:983:983::/home/flag16:/bin/sh level17:x:1018:1018::/home/level17:/bin/sh flag17:x:982:982::/home/flag17:/bin/sh level18:x:1019:1019::/home/level18:/bin/sh flag18:x:981:981::/home/flag18:/bin/sh level19:x:1020:1020::/home/level19:/bin/sh flag19:x:980:980::/home/flag19:/bin/sh level06@nebula:/home/flag06$
- จากบัญชีผู้ใช้ทั้งหมดพบว่ามีเพียงบัญชี “flag06” เพียงบัญชีเดียวที่มีค่าที่ไม่ใช่ “x”
flag06:ueqwOCnSGdsuM:993:993::/home/flag06:/bin/sh
- ถ้าเป็นหมายความว่าค่า “hash” ของรหัสผ่านบัญชีผู้ใช้ได้ถูกจัดเก็บที่ “shadow” ไฟล์
- ถ้าไม่เป็น “x” แสดงว่าค่า “hash” ของรหัสผ่านบัญชีผู้ใช้ได้ถูกจัดเก็บไว้ที่นี้เลย
- ทดลองเดารหัสผ้านโดยใช้ “john” ผ่าน “Kali” ดังนี้
echo "ueqwOCnSGdsuM" > /root/Desktop/test.txt john --show /root/Desktop/test.txt
- จะพบรหัสผ่านขอบัญชีผูใช้ “flag06” คือ “hello” จากนั้นให้ “su” ไปยังบัญชีผู้ใช้ “flag06” และใช้รหัสผ่านที่พบ
su flag06