Reset Password Windows Menggunakan chntpw di Backtrack

Ada sangat banyak cara untuk me-reset password Windows, salah satunya adalah langkah berikut. Langkah tersebut untuk mereset atau menghilangkan password pada WIndows XP. Langsung saja, Boot Backtrack anda (Bisa pake Live USB atau Live CD). Masuk ke konsole. Kita akan menggunakan tool chntpw yang terletak di /pentest/password/chntpw. Sedangkan letak password Windows di [mount point]/WINDOWS/system32/config/SAM.
Pada contoh dibawah kita akan mereset password Administrator dan “Mount point”dimisalkan terletak “/mnt/sda1”.
Lanjutkan…! Setelah buka konsole, ketik :

cd /pentest/password/
chntpw -u Administrator /mnt/sda1/Windows/System32/config/SAM

<Output dari perintah tersebut adalah>

—- User Edit Menu:
1 – Clear (blank) user password
2 – Edit (set new) user password (careful with this on XP or Vista)
3 – Promote user (make user an administrator)
4 – Unlock and enable user account [probably locked now]
q – Quit editing user, back to user select

Select: [q] > [Ketik 1]

Password cleared!

Hives that have changed:
# Name
0 </mnt/sda1/Windows/System32/config/SAM>
Write hive files? (y/n) [n] : [Ketik y]
0 </mnt/sda1/Windows/System32/config/SAM> – OK
Selesai……..

Meng-aktifkan Autocomplete pada bash/shell/terminal di Linux (Ubuntu)

Ubuntu Terminal

Ubuntu Terminal

Fitur Autocomplete memang sangat mempermudah kita dalam menuliskan baris kode/perintah. Karena tidak mungkin kita menghafalkan semua perintah di linux atau repot jika harus membaca manualnya. Tapi dengan bantuan autocomplete kita dapat dengan mudah menggunakan perintah tersebut.

Misal perintah apt-get. Setelah kita mengetikkan apt-get, perintah apalagi yang bisa digunakan setelah itu? Kita tinggal menekan tombol tab 2 kali, kemudian akan muncul perintah berikutnya yang bisa digunakan. Pada Ubuntu (user biasa), kalau tidak salah fitur ini sudah otomatis aktif, tapi jika kita menggunakan akses setara root, fitur ini belum aktif.

Untuk mengaktifkan fitur ini, Login sebagai root, buka file /ect/bash.bashrc

Jika anda menggunakan nano, ketik perintah berikut:

nano /etc/bash.bashrc

Uncomment (hilangkan #) baris berikut:

#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi

Sehingga manjadi:

if [ -f /etc/bash_completion ]; then
 . /etc/bash_completion
fi

Simpan file (ctrl+o pada nano), kemudian tutup terminal dan cobalah ūüėÄ

PHP Direct Printing Printer Dot Matrix (LX-300)

Tidak diragukan lagi, direct printing masih menjadi andalan untuk urusan cetak-mencetak, terutama untuk program/aplikasi POS. Karena aplikasi ini membutuhkan kecepatan dalam melakukan cetak dokumen/struk.

Barusan ngoprek dan eksperimen dengan VB.Net untuk cetak langsung ke printer dot matrix tanpa spooling. Dan ternyata caranya hanya dengan meng-copy file temporary ke path printer (yang sudah disharing).

Bermodalkan teknik tersebut, saya coba terapkan di PHP dengan teknik yang sama dan berhasil.

Mudah-mudahan bermanfaat bagi teman-teman disini.


<?php
$tmpdir = sys_get_temp_dir();   # ambil direktori temporary untuk simpan file.
$file =  tempnam($tmpdir, 'ctk');  # nama file temporary yang akan dicetak
$handle = fopen($file, 'w');
$condensed = Chr(27) . Chr(33) . Chr(4);
$bold1 = Chr(27) . Chr(69);
$bold0 = Chr(27) . Chr(70);
$initialized = chr(27).chr(64);
$condensed1 = chr(15);
$condensed0 = chr(18);
$Data  = $initialized;
$Data .= $condensed1;
$Data .= "==========================\n";
$Data .= "|     ".$bold1."OFIDZ MAJEZTY".$bold0."      |\n";
$Data .= "==========================\n";
$Data .= "Ofidz Majezty is here\n";
$Data .= "We Love PHP Indonesia\n";
$Data .= "We Love PHP Indonesia\n";
$Data .= "We Love PHP Indonesia\n";
$Data .= "We Love PHP Indonesia\n";
$Data .= "We Love PHP Indonesia\n";
$Data .= "--------------------------\n";
fwrite($handle, $Data);
fclose($handle);
copy($file, "//localhost/xprinter");  # Lakukan cetak
unlink($file);
?>

Jangan lupa Printer yang akan digunakan untuk men-cetak di sharing terlebih dahulu. Ganti ‘localhost’ menjadi IP komputer dimana printer yang tadi disharing berada. “xprinter” adalah nama sharing printer.
Saya belum mencoba di jaringan LAN, baru dioba di localhost.
Untuk Escape Code akan saya posting dikemudian hari.

Jika ada masalah dengan printer pastikan printer bisa diakses dari komputer server apache/php, lakukan-langkah berikut ini:

1. Pada komputer server apache/php buka run, ketik \\ip_komputer_printer.
2. Duoble klik pada icon nama printer yg dimaksud. (nama ini yg nantinya digunakan untuk koneksi di php).
3. Jika driver printer blm terinstal maka windows akan otomatis melakukan instalasi.
4. Jika driver sudah terinstal maka akan muncul window status print.
5. Lakukan test print ke printer tersebut (anda pasti tahu caranya).
6. Jika sudah berhasil melakukan test print dari komputer server, maka printer sudah siap untuk digunakan.

UPDATES

Berhubung banyak permintaan mengenai ESC Code, sekarang saya upload kode nya. Semoga bermanfaat.

https://www.dropbox.com/s/g2vpooaubty1ckp/escode.txt?dl=0

Silahkan buka menggunakan notepad, jika hasilnya berantakan, ganti font pada notepad menjadi TERMINAL.

PHP MySQL Compare/Benchmark, PDO vs Mysql vs Mysqli OOP vs Mysqli Procedural

Saat ini saya akan develop aplikasi yang mature dan dapat diandalkan, sehingga saya mencari tahu cara yang terbaik untuk melakukan koneksi dan query terhadap Database Mysql. Saat ini yang tersedia (bawaan) dari PHP ada 3, yaitu koneksi mysql biasa (biasa disebut Raw Mysql, contoh mysql_connect()), PDO (PHP Data Object) dan Mysqli (OOP dan Procedural). Disamping ketiganya masih banyak lagi aplikasi 3rd party yang dapat digunakan untuk melakukan koneksi ke database Mysql seperti Doctrine (ORM) dkk.

Setelah mencari tahu di internet, kebanyakan dari hasil Benchmark Raw Mysql yang menang. Sehingga saya juga tertarik untuk melakukan perbandingan mana yang paling cepat. Cara yang saya gunakan disini adalah, PHP melakukan koneksi dan query menggunakan looping tanpa menampilkan data hasil query ke halaman website. Mungkin kedepannya saya juga akan melakukan komparasi dengan cara lain, yaitu berapa waktu yg dibutuhkan untuk melakukan query pada data yang besar.

Oke langsung saja saya jabarkan scriptnya disini.

Listing Code mysql_compare.php

<?
/* File name : mysql_compare.php
 * Author : ofidz
 * Email : offiedz@majezty
 * Web : mocopat.wordpress.com
 */
?>
<html>
 <style>
 input {
 font-family: courier;
 text-align: right;
 }
 </style>
 <body style="font-family: courier;">

<table>
 <tr><td align="right">Running time : </td><td><input id="running" value='0' size="10"></td><td align="center">detik</td><td align="center">qry/dtk</td></tr>
 <tr style="background-color: bisque;"><td align="right">PDO Process : </td><td><input id="pdo" value='0' size="10"></td><td><input id="pdt"></td><td><input id="avgpdo" value='0' size="7"></td></tr>
 <tr style="background-color:lightcyan ;"><td align="right">Raw Process : </td><td><input id="raw" value='0' size="10"></td><td><input id="rdt"></td><td><input id="avgraw" value='0' size="7"></td></tr>
 <tr style='background-color: lightgreen;'><td align="right">Mysqli OOP Process : </td><td><input id="sqli" value='0' size="10"></td><td><input id="sqlit"></td><td><input id="avgsqli" value='0' size="7"></td></tr>
 <tr style='background-color: lavender;'><td align="right">Mysqli Proc Process : </td><td><input id="sqlip" value='0' size="10"></td><td><input id="sqlipt"></td><td><input id="avgsqlip" value='0' size="7"></td></tr>
 </table>
 <script>
 var milisec = 0
 var seconds = 0
 document.getElementById('running').value='0'
 function display(){
 if (milisec >= 9){
 milisec = 0
 seconds += 1
 }
 else
 milisec += 1
 document.getElementById('running').value=seconds+"."+milisec+" detik"
 t = setTimeout("display()",100)
 }
 display()
 </script>
 <?
 set_time_limit(3600);
 $data = 1000;
 $server = "localhost";
 $user = "root";
 $pass = "";
 $db = "nwind";
 $sql = "SELECT * FROM order_details ";
 # Function

function xtime($start) {
 return microtime(true) - $start;
 }

# Begin Test PDO

function pdo_test($server, $db, $user, $pass, $data, $sql) {

$start = microtime(true);
 for ($i = 1; $i <= $data; ++$i) {

try {
 $conn = new PDO("mysql:host=$server;dbname=$db", $user, $pass);
 } catch (PDOException $e) {
 echo 'Connection failed: ' . $e->getMessage() . "\n";
 }

$conn->query($sql);
 echo "<script>document.getElementById('pdo').value='$i/$data';</script>";
 echo "<script>document.getElementById('pdt').value='" . xtime($start) . "';</script>";
 echo "<script>document.getElementById('avgpdo').value='" . number_format($i / xtime($start), 2, ',', '') . "';</script>";
 $conn = null;
 }
 echo "<tr style='background: bisque;'><td align='right'>PDO time : </td><td>" . xtime($start) . "</td></tr>";
 echo "<br/>";
 }

# Begin mysql_* Test

function mysql_test($server, $db, $user, $pass, $data, $sql) {
 $start = microtime(true);

for ($i = 1; $i <= $data; ++$i) {
 $conn = mysql_connect($server, $user, $pass);
 mysql_select_db($db);
 mysql_query($sql);
 echo "<script>document.getElementById('raw').value='$i/$data';</script>";
 echo "<script>document.getElementById('rdt').value='" . xtime($start) . "';</script>";
 echo "<script>document.getElementById('avgraw').value='" . number_format($i / xtime($start), 2, ',', '') . "';</script>";
 mysql_close($conn);
 }

echo "<tr style='background-color:lightcyan ;'><td align='right'>Raw time : </td><td>" . xtime($start) . "</td></tr>";
 }

# Mysqli OOP test

function mysqli_oop_test($server, $db, $user, $pass, $data, $sql) {
 $start = microtime(true);
 for ($i = 1; $i <= $data; ++$i) {
 $mysqli = new mysqli($server, $user, $pass, $db);
 $mysqli->query($sql);
 echo "<script>document.getElementById('sqli').value='$i/$data';</script>";
 echo "<script>document.getElementById('sqlit').value='" . xtime($start) . "';</script>";
 echo "<script>document.getElementById('avgsqli').value='" . number_format($i / xtime($start), 2, ',', '') . "';</script>";
 $mysqli->close();
 }
 echo "<tr style='background: lightgreen;'><td align='right'>Mysqli OOP time : </td><td>" . xtime($start) . "</td></tr>";
 }

# Mysqli Procedural Test

function mysqli_proc_test($server, $db, $user, $pass, $data, $sql) {
 $start = microtime(true);
 for ($i = 1; $i <= $data; ++$i) {
 $mysqli = mysqli_connect($server, $user, $pass, $db);
 mysqli_query($mysqli, $sql);
 echo "<script>document.getElementById('sqlip').value='$i/$data';</script>";
 echo "<script>document.getElementById('sqlipt').value='" . xtime($start) . "';</script>";
 echo "<script>document.getElementById('avgsqlip').value='" . number_format($i / xtime($start), 2, ',', '') . "';</script>";
 mysqli_close($mysqli);
 }
 echo "<tr style='background: lavender;'><td align='right'>Mysqli Proc time : </td><td>" . xtime($start) . "</td></tr>";
 }

 # Jumlah baris data
 function jml_row($server,$user,$pass,$db,$sql){
 $conn = mysql_connect($server,$user,$pass);
 mysql_selectdb($db);
 $xSql = mysql_query($sql);
 return mysql_num_rows($xSql);
 mysql_close($conn);
 }
 ?>
 <table>
 <tr><td align='right'><b>Result :</b></td><td><?= $data . " x ". jml_row($server, $user, $pass, $db, $sql)." row(s) execution"; ?></td></tr>
 <?
 pdo_test($server, $db, $user, $pass, $data, $sql);
 mysql_test($server, $db, $user, $pass, $data, $sql);
 mysqli_oop_test($server, $db, $user, $pass, $data, $sql);
 mysqli_proc_test($server, $db, $user, $pass, $data, $sql);
 ?>
 </table>
 <script>
 clearTimeout(t);
 </script>
 </body>
</html>

Pada script diatas, masing-masing driver menggunakan function, supaya kita lebih mudah dalam menempatkan driver yang lebih dulu akan dijalankan. Jumlah query yang akan dijalankan juga dapat disetting dengan mengganti nilai pada variabel $data. Berikut contoh hasil benchmark yang saya lakukan.

Software dan Hardware yang saya gunakan pada saat benchmark.

  • OS : Windows 7
  • Laptop Acer 4752G
  • Prosesor : Intel Core i3-2330
  • RAM : Kingston 2GB
  • Hardisk : Seagate 500GB
  • VGA NVIDIA GeForce GT 520M 1GB
  • Browser : Chrome 17
  • MySQL : ¬†5.0.8
  • PHP : 5.3.8

Jika anda pernah melakukan benchmark juga, silahkan share disini. Saya juga minta pendapat anda mengenai script yang saya pakai untuk benchmark, mungkin kurang fair atau bagaimana, silahkan diluruskan jika kurang fair. Terima kasih.

Membuat Mirror Update ESET NOD32 Versi 4 di Linux (Shell/Bash)

Kedengarannya agak nyeleneh memang. Membuat mirror update Antivirus di Linux, tapi yang menggunakan update tersebut Komputer Windows (Walaupun ada juga ESET untuk Linux). Tapi memang begitulah, kadang kita membutuhkan bantuan Linux untuk membantu Windows. Pada tutorial kali ini saya akan memasang script di Webhosting. Sehingga nantinya bisa diakses oleh siapa saja. Sejauh ini saya baru menemukan 3 buah bahasa pemrograman untuk membuat update mirror ESET NOD32, yaitu : shell/bash, PHP dan Ruby. Sebenarnya kita bisa menggunakan Bahasa pemrograman apa saja untuk membuat mirror ini. Ketiga script bahasa pemrograman tersebut nantinya akan saya bahas semua nya, tapi untuk pemanasan, saya akan membahas yang menggunakan Shell terlebih dahulu.

Adapun Kelebihan dan kekurangan script ini dibandingkan dengan script PHP & Ruby adalah.

Kelebihan :

  • Langsung bisa dijalankan, hanya tinggal setting Crontab.
  • Ringan dan lebih cepat dibanding PHP dan Ruby (menurut saya ini lho), Karena trik download menggunakan WGET.
  • Hampir bisa dijalankan di semua¬†Webhosting¬†yang menggunakan OS Linux.
Kekurangan :
  • Belum bisa terintegrasi dengan database. (Mudah-mudahan di versi berikutnya bisa terintegrasi dengan Database, supaya mudah dalam perubahan Username dan Password).
  • Belum support notifikasi lewat Email & SMS jika update berhasil atau gagal. (Mudah-mudahan di versi berikutnya fitur ini sudah didukung, karena yang versi PHP sudah saya tambahkan kedua fitur ini).
  • Hanya jalan di Linux (Lha wong judulnya juga bikin di Linux :D). Tapi versi PHP dan Ruby bisa jalan di Windows.
  • Belum bisa cek Expired Date Username. (di versi PHP sudah saya tambahkan fitur ini).
Okey, sekarang hal-hal yang perlu disiapkan atau dibutuhkan.
  • Langganan Webhosting dengan Bandwidth Unlimited dan OS Linux (tentunya) atau bisa di coba di PC Linux.
  • Jika dipasang di Webhosting, Free Space di Webhosting minimal 200MB (Karena kita akan Download semua module update dan semua versi termasuk Business Edition 32 & 64 bit, Smart Security 32 & 64 bit dan support bahasa).
  • Sedikit pengetahuan tentang programming, Linux dan cPanel.
  • Jika menggunakan Webhosting, sebaiknya menggunakan cPanel.
  • Download aplikasi unrar. Nanti akan digunakan untuk melakukan ekstrak file update.ver.
Kita mulai dengan download scriptnya di bagian bawah dan jangan lupa download juga aplikasi unrar, kemudian ekstrak kedu file tersebut. Langkah demi langkah yang saya lakukan untuk memasang script adalah sebagai berikut :
  • Buat direktori baru di /home/nama_user. Beri nama direktori tersebut dengan nama “bin”, sehingga nanti akan muncul direktori
/home/nama_user/bin.
  • Upload file nodupdate.sh dan unrar ke direktori¬†/home/nama_user/bin.
  • Lakukan chmod/permission kepada kedua file tersebut menjadi 755 lewat file manager.
  • Buat direktori baru lagi di /home/nama_user/public_html. Beri nama direktori tersebut dengan nama “nod_upd”, sehingga akan ada direktori baru, yaitu
/home/nama_user/public_html/nod_upd.
  • Buatlah Crontab/Cron Job sesuai dengan kebutuhan anda. (Saya menggunakan interval eksekusi setiap 30 menit). Pada saat debugging, mungkin pada awalnya kita bisa mengeset sesuai keinginan kita.

Cron Job

  • Cek apakah file update sudah terbentuk di :
/home/nama_user/public_html/download

  • Jika masih gagal, cek Log file. Disitu ada keterangan kenapa gagal. Log file ini saya taruh di
/home/nama_user/tmp/nodsh.log.

Jangan lupa ganti yuor_name atau nama_user dengan nama yang digunakan untuk login di cPanel, dengan Hasil dari tutorial ini bisa anda lihat pada website http://smart-ics.com/nod_upd. Anda bisa mencoba untuk melakukan update ESET anda ke link tersebut (mumpung masih saya open :D).

File-file yang di butuhkan (download) :
   РBug fixed, Penambahan parameter (-y) pada saat ekstrak.
Script diatas saya peroleh dari forum http://ashus.ashus.net/viewtopic.php?f=16&t=68 dengan beberapa perubahan sesuai dengan kebutuhan saya. Anda juga diperkenankan untuk mengubahnya sendiri sesuai dengan keinginan anda.
Terima kasih banyak saya ucapkan kepada saudara Ashus yang telah memberi banyak inspirasi ūüėÄ

Indosat IM3 Laknatullah Alaih

Kemarin siang saya baru sadar jika SMS yang dikirim dari IM3 merupakan layanan premium yang membuat pulsa saya di sunat 2000 per SMS (setiap hari 2 SMS). Pen-dzoliman ini sebenarnya sudah terjadi mulai tanggal 4 Juli. Tapi baru kemarin (16 Juli) saya sadar akan adanya kegiatan pen-dzoliman ini karena saya  jarang cek pulsa.

Saya baru berhasil melakukan UNREG tadi pagi jam 06:30-an setelah mendapatkan SMS yang sama. Total Pulsa saya yang disunat adalah 56.000 (2 sms x 2000 rb x 14 hari). Setelah saya cek histori SMS pada tanggal 3 Juli dan 4 Juli 2011, ternyata ada SMS yang berbunyi :

Terimakasih. Cek Kecocokan Cintamu dengan LoveMeter. Bonus Wallpaper keren. Raih Motor, Laptop, BB, Ipod dll. Tarif Rp. 2rb/sms 2x/hari. Stop:UNERG LOV ke 9600. CS: 021-70288683.

SMS tersebut tertanggal 3 Juli 2011 jam 05:55 dan 4 Juli 2011 Jam 3:25

Mana mungkin saya melakukan registrasi 2 kali untuk layanan sampah semacam ini? Pada tanggal 15 Juli 2011 jam sekitar jam 2 siang saya telpon Contact Center Indosat (100). Jawaban yang diberikan sangat tidak memuaskan dan menjengkelkan.

Maaf pak, saat ini kami sedang melakukan maintenance jaringan sehingga tidak bisa membuka status Kartu bapak.

Nah lho… Bagai buah simalakama (padahal belum pernah liat buahnya :D). Jika saya tidak segera melakukan UNREG maka pulsa saya akan terus terkuras. Kalau saya tidak melakukan pengisian pulsa, saya tidak bisa menghubungi orang lain. WTF, Indosat Laknatullah alaih ini tidak bisa memberi solusi sama sekali. Kemudian besoknya saya mencoba untuk menghubungi Contact Center yang ada pada SMS tersebut (021-70288683). Apa jawabannya? Jawabannya adalah :

Mailbox Telkom Flexi !

Ternyata Provider SMS premium ini juga lepas tangan. Iseng-iseng saya mencoba trace Kepemilikan IP Address yang saya dapat dari link SMS LoveMeter. IP Address tersebut (202.78.200.172) adalah milik PT Graha Sarana Data. Tapi perusahaan tersebut adalah hanya penyedia layanan server, bukan provider yang saya cari. Ide usil pun muncul, okey, kita trace aja pake Nikto. Nah, disini saya mendapatkan sangat banyak informasi. Bahwa perusahaan (Provider) biang kerok dari semua pen-dzoliman ini adalah PT. BrainCode Solution yang beralamat di Pondok Gede, Kelurahaan Lubang Buaya (Deket banget dengan tempat tinggal saya, cuman 7 menitan kalo naik motor). Semua informasi dari Perusahaan ini sudah saya dapat. Bahkan data2 sensitif mereka juga sudah saya pegang. Tinggal menunggu waktu beraksi.

56 ribu saya amblas nggak masalah, tapi dapet mainan baru. ūüėÄ

%d bloggers like this: