How to crack the hash contained in passwd – Nebula 06

บทนำ (Overview)

บทความนี้กล่าวถึงการจัดเก็บ “Hash” ไว้ในไฟล์ที่ชื่อว่า “passwd” ซึ่งบัญชีผู้ใช้ใด ๆ สามารถเข้าถึงได้ ซึ่งเป็นได้ที่จะโดนนำ “Hash” ดังกล่าวไป “Bruteforce” ถ้ารหัสผ่านถูกตั้งไว้อย่างง่าย ๆ ในการเดารหัสผ่านโดยใช้โปรแกรมอัตโนมัติก็คงใช้เวลาไม่มากดังต่อไปนี้

ขั้นตอน (Steps)

  1. ดาวน์โหลด “VM” ได้จาก https://exploit-exercises.com/download/
  2. “Login” โดยใช้ “User” คือ “level06” และ “Password” คือ “level06”
  3. โดยวัตถุประสงค์เราจะยกระดับสิทธิจาก “level06” เป็น “flag06”
  4. ทดลองเข้าโฟลเดอร์ “flag06” ปรากฏว่าไม่พบอะไรเลยดังนี้
    ls -l
    total 0
    
  5. ลองหาไฟล์ที่อาจจะซ่อนอยู่ก็ไม่พบไฟอื่นๆ ใดนอกจากไฟล์ปกติ
    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
    
  6. ลองกลับไปที่โจทย์ดูเราพบรายละเอียดว่า บัญชีผู้ใช้ถูกโอนมาจากระบบเก่า เพราะฉะนั้นไฟล์ที่เกี่ยวข้องกับบัญชีผู้ใช้ก็คือ “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
    
  7. จาก “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$ 
    
  8. จากบัญชีผู้ใช้ทั้งหมดพบว่ามีเพียงบัญชี “flag06” เพียงบัญชีเดียวที่มีค่าที่ไม่ใช่ “x”
    flag06:ueqwOCnSGdsuM:993:993::/home/flag06:/bin/sh
    
    1. ถ้าเป็นหมายความว่าค่า “hash” ของรหัสผ่านบัญชีผู้ใช้ได้ถูกจัดเก็บที่ “shadow” ไฟล์
    2. ถ้าไม่เป็น “x” แสดงว่าค่า “hash” ของรหัสผ่านบัญชีผู้ใช้ได้ถูกจัดเก็บไว้ที่นี้เลย
  9. ทดลองเดารหัสผ้านโดยใช้ “john” ผ่าน “Kali” ดังนี้
    echo "ueqwOCnSGdsuM" > /root/Desktop/test.txt
    john --show /root/Desktop/test.txt
    
  10. จะพบรหัสผ่านขอบัญชีผูใช้ “flag06” คือ “hello” จากนั้นให้ “su” ไปยังบัญชีผู้ใช้ “flag06” และใช้รหัสผ่านที่พบ
    su flag06
    

ใส่ความเห็น