You are on page 1of 5

.::. .:, ..::. :. .::. .,:: ,:. ..:,. ., .:. .:::. .::. ,::. : .::. .,, .::...., .:: .. .::. ..:: .:: ::. ., . .,::.. ::. .,::. : .::... , .::.... .,:: .::. ..:: ::. ,::.., .::. ::. ...::, : .::... .::.:.. .::: .::....:: ::. ,::.., ..::. ::. . .::.: .::.:.

.::.... ,:: .::. ..:: ::, :::.., .::, . ::. . .::: .::... .::. .,M8.:M...M8..,M:~MD .MM .M7..MM::M..Z .MM: .M8:.MM8..D..,M,.:M .::. . , .::,.,~M8.?,::MM:. .N:~M8 :MM..MM::.~MD.M..,.MM8...M8:.MMMM.D:.,M,..I ..::,.,:: ,MMM? .7MM. ,MMMMMM..MM. .MM.M..,NM8. .M8. M.NMM8 .,MMM. ,M8.?...MM. ,M8 MM..MM .MM.M..:MM ...M8. M OMM .,M,.... ,M8...,.MM. .D ,M8 MM ?M. .NM..M..MM. 8..M8. M .OM .,M,..,,. ,88D8D8....NMM..,D888D8D8...8MM:. .M.DD888D8,D88888D. .$.88D88D8.. .M. .Z.

echo|zine, volume 5 issue 7 Simple Portknocking : Membuka Akses Firewall Melalui Network Brougt To you By : Dedi Dwianto (theday/at/echo/or/id)

[ Pendahuluan ] Portknocking adalah merupakan salah satu metode dalam network security yang digunakan untuk membuka sebuah port yang tertutup atau membuka akses firewa ll dan mengizinkan knocker masuk kedalam port yang dituju melalui pengirimkan packet-packet tertentu ke server/firewall tujuan. [ Cara Kerja PortKnocking ] [SERVER] [FIREWALL] [CLIENT] | | | | | | | | | | | | | <-----------[SYN:22] | [22] | | | [DENY] ----------------> | | | | | | | [CONNECTION BLOCK PORT 22] [PORTKNOCKING IN ACTION] [SERVER] [FIREWALL] [CLIENT] | | | | | <-----------[SYN:100] [1] | | | <-----------[SYN:200] [2] | | | <-----------[SYN:300] [3] | | | [22] <-----------[SYN:22] [4] | | | | | |

Firewall Memblock semua traffic menuju Port SSH[22] Q : Bagaimana cara nya agar kita dapat masuk kedalam Port SSH[22] pada Server dengan Rules Firewall yang di Block semua dan Membuat Firewall mengizinkan kita untuk mengakses Port SSH[22] Server ??? A : Jawaban nya menggunakan Metode Portknocking dimana hanya kita yang mengetahui bagaimana cara firewall membukakan pintu agar kita bisa masuk kedalam Port SSH[22] Server. Contoh : Misal : . SPA ini adalah teknik mengirimkan packet tertentu kedalam portknocking server.Port SSH[22] pada Server terbuka .Untuk SPA ini menggunakan metode Client-Server dimana tools untuk Knocking berada di sisi Client dan Server.4 +--.| NOTE : | | -.300 secara bergantiani.Scripts ---| | HOST_IP="[ip server]" | /sbin/iptables -A INPUT -s 0/0 -d 0/0 -j DROP | /sbin/iptables -N PHASE2 | /sbin/iptables -A PHASE2 -m recent --name PHASE1 --remove | /sbin/iptables -A PHASE2 -m recent --name PHASE2 --set | /sbin/iptables -A PHASE2 -j LOG --log-prefix "INTO PHASE2: " | /sbin/iptables -N PHASE3 | /sbin/iptables -A PHASE3 -m recent --name PHASE2 --remove | /sbin/iptables -A PHASE3 -m recent --name PHASE3 --set | /sbin/iptables -A PHASE3 -j LOG --log-prefix "INTO PHASE3: " . Skenario I Pada skenario ini kita akan menggunakan iptables untuk membuat rules portknocking dan Port Knocking yang akan di gunakan untuk knock adalah port 1.biasanya packet yang di kirimkan telah di Encrypt.Kebanyakan dari tools tersebut menggunakan metode Single Packet Authorization [SPA]. 3.2.Sedangkan ilustrasi kedua Client mengirimkan Packet Knocking ke Firewall dengan tujuan Port 100.200.Karena Pada Firewall sudah di setting Parameter untuk knocking server. maka firewall akan membukaan akses dari client menuju Server dengan tujuan port SSH[22]. [ Konfigurasi Portknocking ] Sebenarnya ada banyak tools untuk mengimplemtasikan portknocking ini dari yang mudah menggunakan. sampai yang sulit. Karena Pada tulisan ini berjudul Simple Portknocking maka saya akan menggunakan cara paling sederhana untuk membuat Portknocking server dan cara untuk memasukinya.Pada Ilustrasi pertama Firewall memblock packet dengan tujuan SSH[22] kedalam Server -.

enter your Ip Server : | read ipserver | alias k='telnet $ipserver' | for i in `seq 1 4`. | use NetPacket::Ethernet qw(:strip). | use Net::PcapUtils. Berikut contoh code nya : +------------------. +--. | } | } | | Net::PcapUtils::loop(\&process_pkt. FILTER => 'ip').d/ssh start").Code ---| | #!/bin/bash | echo Please. | sub process_pkt { | my ($arg.Scripts ---Setelah menjalankan rules iptables pada firewall selanjut nya melakukan ujicoba dengan melakukan telnet menuju port 1. | if ($ip_obj->{tos} == 10) { | system("/etc/init. $pkt) = @_. $hdr.2.Code ---Saya mempunyai beberapa ide salah satunya adalah portknocking dengan menggunakan salah satu IP header yaitu TOS [Type Of Service] sebagai kunci untuk menjalankan SSH Service pada Server.| | | | | | | /sbin/iptables -N PHASE4 /sbin/iptables -A PHASE4 -m recent --name PHASE3 --remove /sbin/iptables -A PHASE4 -m recent --name PHASE4 --set /sbin/iptables -A PHASE4 -j LOG --log-prefix "INTO PHASE4: " /sbin/iptables -A INPUT -m recent --update --name PHASE1 /sbin/iptables -A INPUT -p tcp --dport 1 -m recent --set --name PHASE1 /sbin/iptables -A INPUT -p tcp --dport 2 -m recent --rcheck --name PHASE1 -j PHASE2 | /sbin/iptables -A INPUT -p tcp --dport 3 -m recent --rcheck --name PHASE2 -j PHASE3 | /sbin/iptables -A INPUT -p tcp --dport 4 -m recent --rcheck --name PHASE3 -j PHASE4 | /sbin/iptables -A INPUT -p tcp -s 0/0 -d $HOST_IP --dport 22 -m recent --rc heck --seconds 5 --name PHASE4 -j ACCEPT | /sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j REJECT | +--.3 dan 4 lalu melakukan ssh kedalam server. | my $ip_obj = NetPacket::IP->decode(eth_strip($pkt)).code ------------------------------| | #!/usr/bin/perl -w | | use strict. | use NetPacket::IP qw(:flags). | . | do | k $i | done | ssh $ipserver | +--.

17....127: ICMP echo reply...100.100...1a.T. [ Referensi ] ./0123 | 0x0050: 3435 3637 4567 | 00:00:44.. id 0.143: ICMP echo request...984614 IP (tos 0xa. offset 0.. | 0x0010: 0a08 097f 0000 3d09 3161 0001 8874 8e46 ... id 51381. length: 84) 10..17.......!"# | 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+...-.| +------------------..017532 IP (tos 0xa.....ECT(0)... pro to: ICMP (1).100.Result ---[ Catatan ] .. id 12641. proto: ICMP (1). semoga artikel ini dapat berguna bagi kita semua........ | 0x0010: 0a08 098f 0800 3509 3161 0001 8874 8e46 .100...@..!"# | 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+. | 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 . [ Penutup ] Selamat mencoba menggunakan metode portknocking ini. length 64 | 0x0000: 450a 0054 c8b5 0000 4001 8acc 0a08 098f E. Q : Bagaimana cara untuk merubah TOS sebuah packet ?? A : Untuk merubah TOS sebuah packet yang mudah adalah menggunakan command ping pada LINUX Dengan ping kita bisa berubah TOS Quality nya.143 > 10..Result ---| | #tcpdump -nXvs 1514 icmp | 00:00:43..-. +---| command : ping [target] -Q [tos] | contoh : ping 172...tos 0xa = tos 10 .. flags [none ].....@... seq 1.. .....code -------------------------------Cara kerja script di atas adalah dengan mengcapture packet-packet yang masuk kedalam server lalu mengambil IP Header berupa TOS. seq 1.F | 0x0020: 8ad6 0500 0809 0a0b 0c0d 0e0f 1011 1213 .t.5. ttl 64.. id 12 641.F | 0x0020: 8ad6 0500 0809 0a0b 0c0d 0e0f 1011 1213 ../0123 | 0x0050: 3435 3637 4567 | +--.......ECT(0).. Secara Default Semua Packet IP mempunyai nilai TOS 0. ttl 64.127 > 10100... sehingga semua packet data masih dapat di capture dan dibaca secara jelas........T.100. flags [DF].17. Jika TOS nya adalah 10 maka script akan menjalankan service SSH.t.. | 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 . length 64 | 0x0000: 450a 0054 0000 4000 4001 1382 0a08 097f E.1a..12 -Q 10 +---Dengan Menggunakan tcpdump untuk melihat TOS sebuah packet +--.=......SIlakan melakukan experimen sendiri sesuai dengan kebutuhan anda..@.Cara di atas merupakan cara sederhana dari sebuah portknocking.... length: 84) 10.17.. offset 0.

s'to.anonymous.lirva32.comex.070707 -* .html .m0by.z3r0byt3.Port Knocking and Other Uses of 'Recent Match' : http://www.org .k-159.cpan.Portknocking : http://portknocking.Newbie_hacker Members .c-a-s-e.echo|staff : y3dips..Assemble and disassemble IP (Internet Protocol) packets : http://search.echo|zine .yang baca artikel ini *.shorewall.04/ [ Shoutz ] .o rg/~atrak/NetPacket-0.issue#17 .p ushm0v .$09dottxt .net/Port Knocking.