Sabtu, 24 Januari 2009

STruktur keamanan password di win XP

Mungkin sudah banyak artikel lain yang membahas bagaimana mekanisme pengamanan password di Sistem operasi Windows 2000 atau XP. Artikel penulis ini akan memaparkan tentang penyimpanan, pengamanan dan recovery password di Windows 2000 atau XP.

Semua data tentang akun yang ada di Windows 2000/XP disimpan di registry, tepatnya di HKEY_LOCAL_MACHINE\SAM. SAM atau Security Account Manager adalah yang mengatur dan menyimpan semua keterangan akun yang ada di windows 2000/XP. Lalu dimanakah semua data tersebut secara fisik disimpan? (Karena Registry Editor hanya menampilkannya- saja), File SAM yang berada di %SystemRoot%\System32\Config adalah jawabannya. File ini tersedia untuk semua akun bahkan untuk non-Administrator. Tetapi File ini tidak dapat diakses atau dilihat begitu saja karena ada pengaruh dari registry itu sendiri. Untuk dapat mengaksesnya harus secara offline atau boot dari media lain.

Secara garis besar, windows 2000/XP tidak mengambil begitu saja password yang ada di file SAM. Karena password yang telah disimpan disitu berbentuk suatu checksum atau Hash. Checksum atau hash diciptakan oleh fungsi satu arah atau one-way function yang berarti fungsi tidak dapat dibalikkan karena rumitnya algoritma fungsi tersebut. Fungsi ini dibangkitkan oleh utiliti SYSKEY.

Hash dari password di file SAM disebut V-Block yang panjangnya 32 byte, 16 byte untuk NT Hash dan 16 byte sisanya untuk LM (LanMan) Hash. NT Hash digunakan untuk ototenkasi komputer lokal dan LM Hash digunakan untuk ototenkasi resource komputer lain.

* NT Hash
- Password dibentuk menjadi barisan *Unicode
- Hash dibangkitkan oleh algoritma *MD4
- Pembuatan variasi Hash di buat bedasarkan key, yaitu RID (user Identifier) untuk password akun yang sama. Algoritma yang digunakan adalah *DES.

* LM Hash
- Password diubah menjadi kapital dan ditambah byte null hingga mencapai panjang 14 byte.
- 14 byte password lalu dibagi menjadi 2, masing-masing 7 byte dan mengalami encode oleh DES dengan output 8 byte dan total 16 byte
- Pembuatan variasi Hash di buat bedasarkan key, yaitu RID (user Identifier) untuk password akun yang sama. Algoritma yang digunakan adalah *DES.

Seperti dikatakan diatas bahwa kita tidak dapat mengakses file SAM secara online, tetapi dapat mengambil data melalui 2 cara, yaitu :

PWDump, metode ini memungkinkan pengambilan secara “tidak langsung” karena program PWDump menghubungkan dirinya ke prosedur system di LSASS dan menggunakan ototenkasinya untuk mengambil Hash di registry atau di file SAM.
Scheduler, fitur scheduler mempunyai akses penuh terhadap sistem, bila kita mengatur agar scheduler untuk menyimpan registry ke sebuah file maka kita dapat membaca isi SAM di file tersbut.
Kedua Metode tersebut harus mutlak dijalankan sebagai Administrator. Bila tidak punya hak sebagai administrator, maka kita dapat menggunakan cara boot dari media lain seperti disket atau CD yang didalamnya sudah mempunyai fitur untuk mengcopy file SAM ke tempat lain atau membaca file SAM.

Berikut adalah contoh bagaimana hash dibangkitkan dari password akun :

Akun user AKUN_BARU mempunyai password dengan panjang 13 byte : password_baru
SYSKEY meng-encode password tersebut menjadi NT Hash dan LM Hash dengan key RID = 1001
misal : NT Hash : 707C1EE5C3AEA98E23F3C0801F0A0C61
LM Hash : Y54uR3OdTNheo
Bila akun user tersebut login, maka system akan membandingkan hash dari password yang diinput oleh user dengan kedua Hash tersebut. Bila sama maka ototenkasi sukses, bila tidak password dianggap salah.
Recovery password

Setelah mengetahui bagaimana password diubah menjadi Hash, maka kita dapat me-recovery password dari file SAM ataupun langsung dari registry. Ada 2 cara yg dapat digunakan, pertama melalui online dengan bantuan program seperti PWDump, LCP, Inside Pro, atau SAMInside. Kedua dengan cara offline dengan menggunakan disket boot seperti offline NT Password & Registry Editor, Passware Windows Key dan lain-lain.

Jika menggunakan cara online maka teknik yang biasanya digunakan adalah Dictionary Attack ataupun Brute Force. Hal ini dikarenakan Hash harus dicocokan dengan yang ada di file SAM. Teknik Brute Force akan memakan waktu yang lama apabila karakter dari password mengandung karakter khusus seperti @,!,#,$, dll dan panjang password lebih dari 14 karakter. Penulis menggunakan Offline NT Password & Registry Editor dari http://home.eunet.no/pnordahl/ntpasswd/. Tools ini memerlukan disket 1.44 MB yang sudah terformat.

How to use Offline NT Password & Registry Editor

Format disket anda
jalankan install.bat
Setelah itu disket anda akan terisi program-program yang akan diperlukan
Restart komputer anda dan boot dari dikset tsb
Tunggu sampai kernel linux load dan terdapat tulisan Step ONE
Step One

Pilih partisi windows anda, bila di partisi pertama maka pilih 1, partisi kedua pilih 2, dan seterusnya

Step Two

Pilih path config :
winnt35/system32/config - Windows NT 3.51
winnt/system32/config - Windows NT 4 and Windows 2000
windows/system32/config - Windows XP/2003, Windows 2000 upgraded dari Windows 98

Bila sudah benar path anda maka akan tampil :
what is the path to the registry directory? (relative to windows disk)
[windows/system32/config] :
-r——– 1 0 0 262144 Jan 12 18:01 SAM
-r——– 1 0 0 262144 Jan 12 18:01 SECURITY
-r——– 1 0 0 262144 Jan 12 18:01 default
-r——– 1 0 0 8912896 Jan 12 18:01 software
-r——– 1 0 0 2359296 Jan 12 18:01 system
dr-x—— 1 0 0 4096 Sep 8 11:37 systemprofile
-r——– 1 0 0 262144 Sep 8 11:53 userdiff

Select which part of registry to load, use predefined choices
or list the files with space as delimiter
1 - Password reset [sam system security]
2 - RecoveryConsole parameters [software]
q - quit - return to previous
[1] :

Pilih 1 disini
Step three

chntpw version 0.99.2 040105, (c) Petter N Hagen
[.. some file info here ..]

SAM policy limits:
Failed logins before lockout is: 0
Minimum password length : 0
Password history count : 0

<>========<> chntpw Main Interactive Menu <>========<>

Loaded hives:
1 - Edit user data and passwords
2 - Syskey status & change
3 - RecoveryConsole settings
- - -
9 - Registry editor, now with full write support!
q - Quit (you will be asked if there is something to save)

What to do? [1] ->

Pilih 1 disini karena kita akan mengedit password user

===== chntpw Edit User Info & Passwords ====
RID: 01f4, Username:
RID: 01f5, Username: , *disabled or locked*
RID: 03e8, Username: , *disabled or locked*
RID: 03eb, Username: , *disabled or locked*
RID: 03ea, Username: , *disabled or locked*

Select: ! - quit, . - list users, 0x - User with RID (hex)
or simply enter the username to change: [Administrator]
Pilih user yang akan diedit passwordnya

RID : 0500 [01f4]
Username: Administrator
fullname:
comment : Built-in account for administering the computer/domain
homedir :

Account bits: 0x0210 =
[ ] Disabled | [ ] Homedir req. | [ ] Passwd not req. |
[ ] Temp. duplicate | [X] Normal account | [ ] NMS account |
[ ] Domain trust ac | [ ] Wks trust act. | [ ] Srv trust act |
[X] Pwd don’t expir | [ ] Auto lockout | [ ] (unknown 0x08) |
[ ] (unknown 0x10) | [ ] (unknown 0x20) | [ ] (unknown 0x40) |

Failed login count: 0, while max tries is: 0
Total login count: 3

* = blank the password (This may work better than setting a new password!)
Enter nothing to leave it unchanged
Please enter new password:
* Masukkan password baru anda, password blank (kosong) dianjurkan

Please enter new password: *
Blanking password!

Do you really wish to change it? (y/n) [n] y
Changed!

Select: ! - quit, . - list users, 0x - User with RID (hex)
or simply enter the username to change: [Administrator]
* Pilih ! untuk keluar bila tidak ada lagi user yang akan diubah passwordnya

<>========<> chntpw Main Interactive Menu <>========<>

Loaded hives:
1 - Edit user data and passwords
2 - Syskey status & change
3 - RecoveryConsole settings
- - -
9 - Registry editor, now with full write support!
q - Quit (you will be asked if there is something to save)

What to do? [1] ->
* Pilih q untuk keluar

Step Four

# Name
0 - OK

=========================================================
. Step FOUR: Writing back changes
=========================================================

About to write file(s) back! Do it? [n] :
* Pilih y untuk mengubah file SAM kembali

Writing sam

NOTE: A disk fixup will now be done.. it may take some time
Mounting volume… OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
Setting required flags on partition… OK
Going to empty the journal ($LogFile)… OK
NTFS partition /dev/ide/host0/bus0/target0/lun0/part1 was processed successfully.
NOTE: Windows will run a diskcheck (chkdsk) on next boot.
NOTE: this is to ensure disk intergity after the changes

***** EDIT COMPLETE *****

You can try again if it somehow failed, or you selected wrong
New run? [n] :
* Pilih n untuk keluar dan restart komputer anda