Google Apps Engine level cupu

Banyak aplikasi yang bagus-bagus tersedia di cloud computing, seperti microsoft healthvault, Retail—Epicor , Google Apps Premier Edition, Microsoft Office Live Small Business, AdvancedMD, WebEx, Construction—CMiC, Banking—OpenChannel, dan QuickBooks. Bagaimana jika aplikasi yang kita inginkan tidak tersedia?, ya buat sendiri. Bisa menggunakan google apps engine dengan dua pilihan bahasa pemgrograman, java dan python. Piliha mana enaknya, java atau python? sebagai perbandingan hosting aplikasi java perbulan sekitar US$10, sedangkan python sekitar US$2.

Sebelum memulai review sedikit tentang cloud computing.
Untuk memulai, pertama kali unduh  Google App Engine development kit, yang berlokasi di http://code.google.com/appengine/downloads.html. SDK sudah termasuk  web server application that simulates untuk App Engine environment. Kali ini kita coba dengan dua perintah

dev_appserver.py  development web server
appcfg.py Used to upload app ke App Engine

mari kita buat aplikasi hi malang, pertama buat direktori himalang. buat dua file himalang.py dan app.yaml.
himalang.py berisi

import webapp2

class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = ‘text/plain’
self.response.write(‘Selamat siang malang, apa kabar hari ini?’)

app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)

app.yaml berisi

application: himalang
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
script: himalang.app

setelah itu testing script dan jalankan webserver dengan perintah

dev_appserver.py himalang/

hasilnya lihat pada localhost:8080

Continue reading

Socket yang simple dengan python

Coba kirim hello manis melalui soket, Sebelum menulis kode perlu diketahui pada python terdapat class method dan intance nethod. FYI kalau pakai windows perlu install dulu tapi kalau pakai mac os atau linux sudah dari sononya ada.

class method :

Socket Low-level networking interface (per the BSD API)
socket.socket(family, type) Create and return a new socket object
socket.getfqdn(name) Convert a string quad dotted IP address to a fully qualified domain name
socket.gethostbyname(hostname) Resolve a hostname to a string quad dotted IP address
socket.fromfd(fd, family, type) Create a socket object from an existing file descriptor
instance method:
sock.bind( (adrs, port) ) Bind the socket to the address and port
sock.accept() Return a client socket (with peer address information)
sock.listen(backlog) Place the socket into the listening state, able topend backlog outstanding connection requests
sock.connect( (adrs, port) ) Connect the socket to the defined host and port
sock.recv( buflen[, flags] ) Receive data from the socket, up to buflen bytes
sock.recvfrom( buflen[, flags] ) Receive data from the socket, up to buflen bytes, returning also the remote host and port from which the data came
sock.send( data[, flags] ) Send the data through the socket
sock.sendto( data[, flags], addr ) Send the data through the socket
sock.close() Close the socket
sock.getsockopt( lvl, optname ) Get the value for the specified socket option
sock.setsockopt( lvl, optname, val ) Set the value for the specified socket option
Test dulu pakai python interpreter,
>>> import socket
>>> socket.gethostbyname(‘www.ub.ac.id’)
Selanjutnya coba buat tcp stream server simpan dalam file stream.py
import socket
srvsock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
srvsock.bind( (‘ ‘, 2000) )
srvsock.listen( 5 )
while 1:
clisock, (remhost, remport) = srvsock.accept()
str = clisock.recv(100)
clisock.send( str )
clisock.close()

Kemudian buat pengirim.py

import socket
clisock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
clisock.connect( (”, 23000) )
clisock.send(“Hello Manis\n”)
print clisock.recv(100)
clisock.close()

Ngetesnya jalankan didua terminal yang berbeda, satu jalankan python stream.py dan satunya jalankan python pengirim.py. Apakan hello manis sukses dikirim?. Untuk membuktikannya tambahkan print pada stream.py.

……..
clisock.send( str )
print str
clisock.close()

bagaimana hasilnya? Sekian dulu simple socket programing dengan python. :D

yang erasmus mundus?

Lama sekali tidak menulis disini, habis ikut 4th DAAD summer school balik2 ke kantor selesaikan laporan penelitian dan pengabdian, biasa deadline. Mumpung ada waktu mari iseng nulis. :D

Ini presentasi dari pak yansen di 4th DAAD summer school dia alumnus dari EMCL. Untuk kalian yang berminat ke eropa ini salah satu jalannya, silahkan disimak Erasmus Mundus – published.

“There are some people who live in a dream world, and there are some
who face reality; and then there are those who turn one into the other”
- Desiderius Erasmus -

Install Nessus pada mac osx lion

Habis fresh install sistem operasi banyak hal yang perlu dilakukan, hal ini tidak akan terjadi andai mengaktifkan time machine. Tapi karena tidak ada storage ya bagaimana lagiharus mengisntall aplikasi yang dipakai sehari-hari, satu persatu.

Nessus tidak boleh ketinggalan, tool ini sangat berguna untuk menunjang hobi. Ngintip-ngintip celak keamanan atau vulnerability pada sebuah jaringan atau website. Dan impian saya pengen punya tools seperti nessus buatan sendiri, semoga tercapai #amin. sepeteri posting yang lalu, (tapi itu untuk linux, sekarang untuk mac). Paket installer nessus untuk mountain lion dapat di unduh dari 

kemudian install

nessus ini berjalan di browser dengan alamat https://localhost:8834

selanjutnya lakukan aktifasi, *skip skip skip* waktunya buka.. untuk registrasi bisa dilihat pada berkas ini.
selamat berbuka.╭(*⌒з⌒)人 (⌒ε⌒*)ノ

eh kalau ubuntu ini nessus

Delete rule iptables sesuai line number

Cuma dokumentasi saja, terkadang saya lupa untuk perintah ini T_T. Kalau sudah lupa pasti belusukan ke google. Ini cara termudah menurut saya untuk menghapus satu atau beberapa rule iptables, tak perlu menulis kesuluruhan rules yang akan dikasi opsi -D.  Cukup dengan mencari rules mana yang akan dihapus berdasarkan list numbernya dari tiap chain.

iptables -D <chain> <Line-Number>

Kita harus mengetahui list number dari semua rules pada firewall kita, dengan perintah Iptables -L -vnL

misalnya yang akan dihapus adalah line ke 9 dari chain INPUT

iptables -D INPUT 9

hasilnya….

Simple kan?

PDF:delete rule berdasarkan line

Install aplikasi ala geek di os x

Seperti halnya distribusi Linux, untuk redhat ada yum, untuk debian ada apt-get atau aptitude, pada os x ada port/macport. Fungsinya sama cuma berbeda dari cara bekerja terhadap dependencies. Port juga mempunyai repository yang berupa berkas dan aplikasi yang siap diinstall. Dengan perintah sudo port install nama-aplikasi, secara otomatis dia akan mendownload dan menginstall, sederhana dan praktis kan?.

Bagi mereka yang terbiasa dengan terminal, atau hidupnya tidak bisa lepas dari terminal seperti saya, mac port ini sangat membantu. Misal butuh library, mengunduh library dari halaman penyedia pasti memakan waktu, lebih singkat kalau pakai port, ini bagi pengguna mac.

Aplikasi ini bisa di unduh pada macports.org, disana juga ada cara instalasinya tinggal klik, sebelum menginstall aplikasi perlu  syncronisasi port ke repository denga perintah selfupdate.

Butuh waktu untuk proses ini, sesuai dengan kecepatan akses internet yang kita pakai.

Sistem operasinya heker

Masih edisi hacking, tulisan ini dibuat untuk manteman yang akan berlaga di gemastik.

A good workman is known by his tools. (Proverb)

Supaya kelihatan keren, sistem operasinya harus berbau dan berciri khas “heker” banget. Tapi mau pakai yang mana adalah sebuah pilihan citarasa setiap orang. Terkadang distro backtrak itu keren, tapi bagi orang lain biasa aja lebih keren BackBox. Nah karena pilihannya banyak bisa dicoba semua :D

  1. faviconBackTrack
    • Linux security distribution,
    • Ini sangat populer bahkan ada backtrack-id
  2. faviconMatriux
    • Debian based security distro
    • Seperti nafasnya debian, disini tersedia tool yang open dan free
  3. faviconnUbuntu
    • penetration and security testing
  4. faviconSamurai
    • Web Testing Framework
  5. faviconOWASP Live CD project
    • Web application security distro
  6. faviconPentoo
    • Security-focused livecd based on Gentoo
  7. faviconKatana
    • Portable multi-boot security suite
  8. faviconKON-BOOT
    • Change contents of a linux/windows kernel while booting
  9. faviconLinux from scratch!
    • Building your own custom Linux system
  10. faviconSUMO Linux
    • Security Utilizing Multiple Options
  11. faviconPentesting packages for ubuntu
    • A script to configure Ubuntu box for pentesting
  12. faviconBackBox Linux
    • Flexible penetration testing distribution
    • manteman malang suka pakai ini :D

Happy hacking

Ngetes owasp mantra, websecurify

Happy Hacking :D

Setelah install owasp matra, coba testing. Sekilas tools yang ada cukup lengkap untuk hacking dan main-main. 

Kali ini coba salah satu extensi yang ada, websucurify dengan target website PTIIK.

Kita lihat hasilnya selain memberikan informasi yang bisa digunakan attacker, extensi ini juga memberikan clue untuk mengatasi celah yang didapat.

Email Disclosure

The server or application disclosed emails. This information could be used by attackers to make an educated guess about who developed the application, what contact entry points are available or what the internal email format looks like, which could also correspond to the format of the application usernames.

solution: Ensure that contact emails do not disclose any information and are adequately protected against external attacks.

email: himawat@ub.ac.id

request:

GET http://ptiik.ub.ac.id/ HTTP/1.1
email: budidarma@ub.ac.id

request:

GET http://ptiik.ub.ac.id/ HTTP/1.1

Banner Disclosure

The server or application disclosed its type and version. This information could be used by attackers to make an educated guess about the application environment and any inherited weaknesses that may come with it.

solution: It is recommended to prevent the application from disclosing its type and version.

banner:

Server: Apache/2.2.15 (CentOS)

request:

GET http://ptiik.ub.ac.id/ HTTP/1.1

Cross-site Request Forgery

Cross-site Request Forgery (CSRF) is a type of attack whereby unauthorized commands are transmitted from a user that the application trusts. Unlike Cross-site Scripting (XSS), which exploits the trust a user has for a particular site, CSRF exploits the trust that a site has in a user’s browser.

solution: Url and Forms that perform important operations must be protected by random tokens (hidden nonce values). These tokens must be checked for validity at the server before the request is processed.

url:

http://ptiik.ub.ac.id/teknik-komputer/

form:

<form method=”POST” action=”http://ptiik.ub.ac.id/wp-comments-post.php” enctype=”application/x-www-form-urlencoded” autocomplete=”on”> … </form>

Path Disclosure

Various system paths were disclosed within the application client source code or other files. This information could be used by attackers to make an educated guess about the application environment and any inherited weaknesses that may come with it.

solution: It is recommended to re-examine the system path disclosures and remove their reference from the application’s source code.

path:

/mnt/seminarHasil …

request:

GET http://ptiik.ub.ac.id/kalender-akademik/ HTTP/1.1

path:

/mnt/sidangTA …

Error Disclosure

Various web errors were disclosed within the application source code or other files. This information could be used by attackers to make an educated guess about the application environment type, version and current configuration. In some situations these errors may indicate a weakness which could be exploited.

solution: It is strongly recommended to ensure that any unhandled application errors are trapped and never displayed to the user. The user should only see a generic message which contains enough information to track the error within the application logs.

error:

Internal Server Error

request:

POST http://ptiik.ub.ac.id/wp-comments-post.php HTTP/1.1 Content-Type: application/x-www-form-urlencoded author&email&url&comment_post_ID=153&comment_parent=0&akismet_comment_nonce=56d884d15f&comment&submit=Submit%20Comment

error:

Internal Server Error

Autocomplete Enabled

Autocomplete should be disabled (

autocomplete=”off”

), especially in forms which process sensitive data, such as forms with password fields, since an attacker, if able to access the browser cache, could easily obtain the cached information in cleartext.

solution: Disable the autocomplete feature (

autocomplete=”off”

) on forms which may hold sensitive data.

url:

http://ptiik.ub.ac.id/wp-login.php?action=lostpassword

form:

<form method=”POST” action=”http://ptiik.ub.ac.id/wp-login.php?action=lostpassword” enctype=”application/x-www-form-urlencoded” autocomplete=”on”> … </form>

 

Keren, ini memang browsernya heker... hehehehe

OWASP Mantra-Browsernya heker

” A sword never kills anybody; it is a tool in the killer’s hand.” - Lucius Annaeus Seneca

Open web aplication security project, sekumpulan framework yang mempermudah pekerjaan seorang attacker. semua di-’web’kan, tidak perlu menginstall backtrak ataupun sistem operasi untuk penetrasi lainnya. Kalau ingin mudah coba OWASP ini, bisa diintegrasikan ke firefox atau chrome.

mau coba? langsung unduh dari sourceforge.!!! mari share pengalaman memakai framework ini.
nah bisa juga tuh yang akan hacking di gemastik memakai framework ini. Happy Hacking!!!