Share bermain dengan perintah awk - Printable Version +- Indonesian Back|Track Team (https://www.indonesianbacktrack.or.id/forum) +-- Forum: Defensive Zone (https://www.indonesianbacktrack.or.id/forum/forum-173.html) +--- Forum: Forensics (https://www.indonesianbacktrack.or.id/forum/forum-166.html) +--- Thread: Share bermain dengan perintah awk (/thread-5506.html) |
bermain dengan perintah awk - ano21 - 01-07-2014 pengertian perintah awk "Awk" adalah sebuah perintah pada Linux / Unix yang mempunyai kegunaan untuk mem-parsing atau mengurai sebuah file. Hampir mirip dengan "grep", namun bedanya grep digunakan ketika kita akan mem-filter sebuah isi direktori dengan sebuah ketentuan. awk paling sering digunakan untuk me-scan dan memproses sebuah pola. Pencarian pada sebuah file yang cocok dengan pola yang dibuat lalu menyaring pencarian tersebut kedalam sebuah file baru. Berikut ini adalah fitur-fitur yang dimiliki Awk : -Awk menjadikan text file sebagai records dan fields -Seperti bahasa pemrograman lainnya, Awk mengandung variabel, kondisi, dan looping -Awk mempunyai operator aritmatika dan string -Awk bisa digenerate menjadi laporan yang berformat contoh perintah default: pertama kita buat file txt dengan nama terserah,disini saya menggunakan nama listhutang.txt dengan isi sebagai berikut: Code: 1 sony 200000 Code: pandora@pandorabox:~/awk$ awk '{print;}' listhutang.txt Code: pandora@pandorabox:~/awk$ awk '/sony/' listhutang.txt Code: pandora@pandorabox:~/awk$ awk '{print $2,$3}' listhutang.txt Code: pandora@pandorabox:~/awk$ awk '{$3>90000}' listhutang.txt contoh inisialisasi dan final action: Awk memiliki 2 pola penting yang dibuat spesifik berdasarkan kata kunci yang disebut BEGIN dan END. Syntax: Code: BEGIN { Actions} Code: pandora@pandorabox:~/awk$ awk 'BEGIN {print "no\tnama\tjumlah";} untuk contoh pengembangan awk saya kasih contoh mengabungkan perintah awk dan grep untuk menganalisa file httpd.log pada sebuah server untuk membuat report tertentu: pertama kita lihat format file yang akan kita proses kira-kira format dari file httpd.log ini adalah: Code: 1 2 3 4 5 6 7 8 9 Contoh mencari serangan sqli: pertama kita masukan file httpd.log ke folder “workshop/sql” lalu kita masuk ke dalam folder yang telah ditentukan dengan perintah “cd workshop/sql” setelah masuk kita masukkan perintah di terminal : Code: pandora@pandorabox:~/workshop/sql$ for file in $(ls ~/workshop/sql); do awk '{print $1, $4, $6, $7}' $file |grep GET| grep -E "SELECT|UNION|select|union" > $file"_sqli_report.txt"; done pertama kita masukan file httpd.log ke folder “workshop/sql” lalu kita masuk ke dalam folder yang telah ditentukan dengan perintah “cd workshop/sql” setelah masuk kita masukkan perintah di terminal : Code: pandora@pandorabox:~/workshop/sql$ for file in $(ls ~/workshop/sql); do awk '{print $1, $4, $6, $7}' $file |grep GET| grep -E "SELECT|UNION|select|union" > $file"_sqli_report.txt"; done script ini berarti list semua file dalam folder "~/workshop/sql" kemudian parse dengan awk dan ambil informasi yang diperlukan dimana $1 adalah ip address, $4 adalah DateTime, $6 adalah Request Type dan $7 adalah Request Content kemudian filter baris yang mengandung kata2 GET dan filter sekali lagi baris yang mengandung kata-kata select atau union yang mana merupakan kata-kata yang biasa digunakan dalam melakukan sql injection. lakukan parse dan filter pada setiap file yang dtemukan pada folder "~/workshop/sql" sampai habis. Lalu hasilnya dimasukan ke dalam nama yang diproses ditambah dengan imbuhan “_sqli_report.txt”(httpd.log_sqli_report.txt) Contoh mencari serangan xss: pertama kita masukan file httpd.log ke folder “workshop/xss” lalu kita masuk ke dalam folder yang telah ditentukan dengan perintah “cd workshop/xss” setelah masuk kita masukkan perintah di terminal : Code: for file in $(ls ~/workshop/xss); do awk '{print $1, $4, $6, $7}' $file |grep GET| grep -E "javascript" > $file"_xss_report.txt"; done keterangan: script ini berarti list semua file dalam folder "~/workshop/xss" kemudian parse dengan awk dan ambil informasi yang diperlukan dimana $1 adalah ip address, $4 adalah DateTime, $6 adalah Request Type dan $7 adalah Request Content kemudian filter baris yang mengandung kata-kata GET dan filter sekali lagi baris yang mengandung kata-kata javascript yang mana salah satu ciri serangan xss. lakukan parse dan filter pada setiap file yang dtemukan pada folder "~/workshop/xss" sampai habis. Lalu hasilnya dimasukan ke dalam nama yang diproses ditambah dengan imbuhan “_sqli_report.txt”(httpd.log_xss_report.txt) Contoh mencari serangan directory jumping: pertama kita masukan file httpd.log ke folder “workshop/dirjump” lalu kita masuk ke dalam folder yang telah ditentukan dengan perintah “cd workshop/dirjump” setelah masuk kita masukkan perintah di terminal : Code: for file in $(ls ~/workshop/dirjump); do awk '{print $1, $4, $6, $7}' "$file" |grep GET| grep -E "/etc|cmd.exe" > $file"_dirjump_report.txt"; done keterangan: Dengan script ini, bias dilakukan automatisasi pembuatan report tentang adanya directory jumping dari apache log. Script ini berarti list semua file dalam folder "~/workshop/dirjump" kemudian parse dengan awk dan ambil informasi yang diperlukan dimana $1 adalah ip address, $4 adalah DateTime, $6 adalah Request Type dan $7 adalah Request Content kemudian filter baris yang mengandung kata-kata GET dan filter sekali lagi baris yang mengandung /etc atau cmd.exe karena biasanya file-file yang dicari ada di folder /etc atau bisa diakses dengan cmd.exe. Kita juga dapat melakukan pencacahan tentang ip mana yang melakukan jenis serangan sql injection/serangan yg lain dengan script/perintah berikut: Code: for file in $(ls ~/workshop/sqli_report); do awk '{print $1}' $file |sort|uniq -c|sort -n > $file"_stats.txt"; done kita pertama-tama mencari log ssh yang berhasil login menggunakan script berikut ini Code: cat secure.log | sort | grep 'Accepted' | awk '{print $1 " " $2 " " $3 " User: " $9 " IP:" $11 }' > "ssh_log_success.txt" Code: cat secure.log | sort | grep 'Failed' | awk '{print $1 " " $2 " " $3 " User: " $9 " IP:" $11 }' > "ssh_log_success.txt" disini saya sertakan juga file httpd.log dan secure.log buat latihan .file nya bisa di download disini :d kalo tutorialnya berkenan mungkin bisa bagi yang ijo2 nya )) RE: bermain dengan perintah awk - rose_life - 01-07-2014 bah surem nice share bro coba" dulu dah RE: bermain dengan perintah awk - ano21 - 01-07-2014 hahahaha,, sory bro kalo g di quote ma nambahin gambar. ane buat dari libre langsung paste di thread.lupa g di edit dlu RE: bermain dengan perintah awk - alkaaf - 01-07-2014 (01-07-2014, 05:14 AM)ano21 Wrote: hahahaha,, sory bro kalo g di quote ma nambahin gambar. ane buat dari libre langsung paste di thread.lupa g di edit dlu usahakan kasih prefix bro (share). terus usahain kasih tag forum code. biar yang laen ngga males bacanya. padahal isinya bagus. apalagi yang lagi cinta ama bash programming . sayang kalo thread bro cuman di liat, dijempolin, terus ditinggal RE: bermain dengan perintah awk - ano21 - 01-07-2014 (01-07-2014, 06:25 AM)alkaaf Wrote:(01-07-2014, 05:14 AM)ano21 Wrote: hahahaha,, sory bro kalo g di quote ma nambahin gambar. ane buat dari libre langsung paste di thread.lupa g di edit dlu makasih masukkan nya bro .. maklum pelupa lupa g ngasih tag code RE: bermain dengan perintah awk - sonyrimawan - 01-07-2014 bahhh surem, napa nama ane yang di situ ) but, nice share bro RE: bermain dengan perintah awk - hackimripper - 01-07-2014 sedot dulu ah baru ntar di jajal soop RE: bermain dengan perintah awk - [H2] - 01-07-2014 tambahan sedikit dari saya `awk` ini sering di masukkan dalam bahasa pemograman bash umumnya untuk mempermudah output dari hasil yg di inginkan. nice post bro. +1 RE: bermain dengan perintah awk - darkcaroline - 09-29-2017 bro, mau nanya ni. saya coba perintah ini tapi tentunya saya kondisikan berbeda dengan keadaan data saya. Tapi hasilnya kok aneh ya? File yang di create hilang, dan data didalam file-file sebelumnya juga sudah tidak ada lagi. Itu kenapa ya? pandora@pandorabox:~/workshop/sql$ for file in $(ls ~/workshop/sql); do awk '{print $1, $4, $6, $7}' $file |grep GET| grep -E "SELECT|UNION|select|union" > $file"_sqli_report.txt"; done |