simple sshd_config in *BSD/*NIX

December 18, 2008 at 10:52 am (Basic) (, )

this is just my simple configuration of sshd_config in my FreeBSD, and maybe as same as another *NIX

just pay attention for bold line, i just change for this line, and no change to another line for this default

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.

Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2

# HostKey for protocol version 1
HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don’t trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don’t read the user’s ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no

# no default banner path
#Banner /some/path

# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server

Permalink Leave a Comment

reverse engineering

December 12, 2008 at 3:45 am (Programming)

Sumber : hacking dan reverse engineering

Apa sih reverse engineering itu? ini adalah proses untuk membongkar bahan dan teknologi yang ada pada suatu benda. Orang bisa mereverse engineer aneka macam hal, misalnya resep masakan atau benda elektronik, atau program. Tentunya dalam konteks ini, yang dimaksud adalah software reverse engineering, yaitu proses bagaimana kita bisa mengetahui algoritma program (atau source codenya jika mungkin). Ada banyak hal yang bisa dilakukan dengan reverse engineering. Dalam kasus virus, kita bisa menganalisis virus dan membuat anti yang tepat. Dalam kasus proteksi program, kita akan bisa membongkar proteksi seperti serial number dan expiration date. Dalam kasus kehilangan source code, kita bisa mengembalikan sebagian kode yang hilang. Jika kita ingin membuat program yang bisa membaca format program lain, kita juga perlu mereverse engineer jika format tersebut tidak dibuka secara umum.

Mengenai program/tools untuk reverse engineering, ada banyak yang bisa digunakan. Saya akan memberikan beberapa petunjuk: IDA Pro dan OllyDbg. Jangan minta tutorial kepada saya untuk menggunakan dua tools tersebut. Carilah tutorial di Google. Dua tools tersebut hanyalah beberapa dari banyak tools yang bisa digunakan. Jangan berfokus pada tool berfokuslah pada skill. Kebanyakan orang menanyakan apa program yang perlu dikuasai untuk melakukan X dan berfokus pada program X tersebut.

Ada program yang dapat digunakan untuk membongkar program dalam bahasa tertentu. Contoh: program java yang tidak di-obfuscate bisa dibongkar dengan jad dengan mudah. Program serupa juga tersedia untuk .NET, dan aneka bahasa lain yang menggunakan bytecode. Namun program Java bisa diproteksi dengan obfuscator, jadi tidak semua semudah itu. Untuk menemukan aneka tools reverse engineering, gunakanlah Google dan telusuri aneka link di Wikipedia. Bahasa Inggris wajib Anda kuasai untuk membaca aneka tutorial yang ada di Internet.

Anda bisa bertanya pada ahli elektronik dan bertanya “pak pake obeng mana untuk membuka Sony Ericsson P990i“, dan ia akan menjawab “oh pake obeng Torx dan Philips“. Tapi itu bukan berarti Anda bisa membuka semua peralatan elektronik dengan obeng yang sama (misalnya untuk membuka Wii Anda butuh obeng Tri-Wing). Kalau Anda ahli elektronik, Anda tidak akan bertanya obeng apa yang dibutuhkan karena sudah jelas terlihat dengan mata. Berbeda dengan masalah obeng yang bisa dipelajari dalam waktu beberapa menit, untuk “membuka” suatu program yang kompleks dibutuhkan kombinasi aneka program dan pemakaian program-program tersebut membutuhkan keahlian. Perlu diperhatikan juga, jika Anda melihat orang bisa membuka tutup botol dengan gigi, bukan berarti tutup botol harus dibuka dengan gigi, dan mungkin Anda tidak akan pernah bisa menggunakan gigi Anda untuk membuka tutup botol. Ingat bahwa tools bukan segalanya.

Kerumitan sebuah program biasanya adalah karena programmer menggunakan berbagai macam cara untuk melindungi programnya. Misalnya dalam kasus program yang memiliki batas waktu N hari. Program pasti harus menyimpan fakta bahwa program pernah diinstall pada tanggal tertentu. Jika Anda seorang programmer yang membuat program di Windows, maka Anda akan segera terpikir di beberapa tempat, misalnya di Registry Windows, di direktori program itu sendiri, di direktori sistem Windows, dan di berbagai tempat lain (misalnya di Serial Number sementara).  Tidak ada satu tempat pasti yang digunakan. Ini sama saja dengan menanyakan di mana seseorang menaruh dokumen pentingnya, setiap orang akan memiliki tempatnya sendiri (mungkin sebagian besar menaruhnya di lemari atau di brankas besi di rumahnya, tapi ada juga yang menyimpannya di bank). Masalahnya juga akan berbeda di tiap OS, di Linux tidak ada registry, sedangkan di Symbian ada direktori tertentu yang hanya bisa diakses oleh program tertentu dan lebih mudah digunakan untuk menyimpan informasi tersebut (yang tidak bisa diakses kecuali dengan exploit tertentu, misalnya AppTRK).

Keahlian/skill apa yang diperlukan untuk reverse engineering? pertama Anda harus bisa memprogram. Jika Anda menemukan program X  dalam bahasa Java dan bertanya bagaimanan membongkarnya, saya akan menggunakan jad dan menyerahkan sourcenya pada Anda. Nah jika Anda tidak bisa membaca program dalam bahasa Java, apa yang akan Anda lakukan?.  Jika Anda ingin membongkar program secara umum, belajarlah bahasa C, dan assembly. Gunakan opsi kompiler untuk menghasilkan kode assembly dari C untuk mempelajari mapping bagaimana kode dalam bahasa C diterjemahkan menjadi kode assembly. Jika Anda tahu bahwa source code X akan menjadi assembly Y, akan lebih mudah mengembalikan kode Y ke X. IDA Pro versi komersial terbaru juga bisa mendekompilasi aneka program ke bahasa C untuk assembly x86 (tapi program ini sangat mahal, dan masih terbatas pada prosessor x86, serta outputnya terbatas pada bahasa C).

Tidak ada satu “bahasa assembly” di dunia ini. Setiap prosessor memiliki bahasanya sendiri. Desktop Anda kemungkinan memakai prosessor x86 (atau mungkin PowerPC jika Anda pemakai Mac lawas). Handphone saya memakai prosessor ARM, router saya dan Playstation 1 milik saya memakai prosessor MIPS, Wii yang saya miliki memakai prosessor Power PC. Pengetahuan mengenai bahasa assembly untuk arsitektur selain X86 hanya diperlukan jika Anda ingin melakukan reverse engineering embedded device (misalnya saat ini saya sedang memporting kernel 2.6 ke Agestar yang saya miliki).

Sulit mencari analogi yang tepat untuk reverse engineering. Reverse engineering itu seperti arkeolog yang berusaha mendekripsi tulisan-tulisan kuno. Anda perlu bisa membuka situs kuno, dan mencari tulisan yang mungkin tersembunyi. Anda juga harus mengenal aneka macam tulisan kuno di dunia ini sebagai dasar untuk membaca tulisan yang Anda temui. Anda perlu tahu kebudayaan kuno untuk mengetahui jalan pikiran mereka.

Permalink Leave a Comment