Copy Link
Add to Bookmark
Report

Echo Magazine Issue 17 Phile 0x009

eZine's profile picture
Published in 
Echo Magazine
 · 4 years ago

  

.::. .:, ..::. :. .::. .,:: ,:. ..:,. ., .:. .:::. .::. ,::. : .::. .,,
.::...., .:: .. .::. ..:: .:: ::. ., . .,::.. ::. .,::. : .::... ,
.::.... .,:: .::. ..:: ::. ,::.., .::. ::. ...::, : .::...
.::.:.. .::: .::....:: ::. ,::.., ..::. ::. . .::.: .::.:.
.::.... ,:: .::. ..:: ::, :::.., .::, . ::. . .::: .::...
.::. .,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 firewall
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] |
- | |
| | |
| | |

NOTE :

-- Pada Ilustrasi pertama Firewall memblock packet dengan tujuan SSH[22] kedalam Server
-- Sedangkan ilustrasi kedua Client mengirimkan Packet Knocking ke
Firewall dengan tujuan Port 100,200,300 secara bergantiani,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.Kebanyakan dari tools tersebut
menggunakan metode Single Packet Authorization [SPA]. SPA ini adalah teknik
mengirimkan packet tertentu kedalam portknocking server,biasanya packet yang
di kirimkan telah di Encrypt.Untuk SPA ini menggunakan metode Client-Server
dimana tools untuk Knocking berada di sisi Client dan Server.

Karena Pada tulisan ini berjudul Simple Portknocking maka saya akan
menggunakan cara paling sederhana untuk membuat Portknocking server dan
cara untuk memasukinya.

Contoh :

Misal :

- Port SSH[22] pada Server terbuka
- 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.


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,2,3,4


+--- 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: "
| /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 --rcheck --seconds 5 --name PHASE4 -j ACCEPT
| /sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j REJECT
|
+--- Scripts ----

Setelah menjalankan rules iptables pada firewall selanjut nya
melakukan ujicoba dengan melakukan telnet menuju port 1,2,3 dan 4 lalu
melakukan ssh kedalam server.

+--- Code ----
|
| #!/bin/bash
| echo Please, enter your Ip Server :
| read ipserver
| alias k='telnet $ipserver'
| for i in `seq 1 4`;
| do
| k $i
| done
| ssh $ipserver
|
+--- 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.

Berikut contoh code nya :

+------------------- code -------------------------------
|
| #!/usr/bin/perl -w
|
| use strict;
| use NetPacket::IP qw(:flags);
| use Net::PcapUtils;
| use NetPacket::Ethernet qw(:strip);
| sub process_pkt {
| my ($arg, $hdr, $pkt) = @_;
| my $ip_obj = NetPacket::IP->decode(eth_strip($pkt));
| if ($ip_obj->{tos} == 10) {
| system("/etc/init.d/ssh start");
| }
| }
|
| Net::PcapUtils::loop(\&process_pkt, FILTER => 'ip');
|
|
+------------------- code --------------------------------

Cara kerja script di atas adalah dengan mengcapture packet-packet yang
masuk kedalam server lalu mengambil IP Header berupa TOS. Jika TOS nya adalah 10
maka script akan menjalankan service SSH. Secara Default Semua Packet IP
mempunyai nilai TOS 0.

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.
+----
| command : ping [target] -Q [tos]
| contoh : ping 172.100.100.12 -Q 10
+----

Dengan Menggunakan tcpdump untuk melihat TOS sebuah packet

+--- Result ----
|
| #tcpdump -nXvs 1514 icmp
| 00:00:43.984614 IP (tos 0xa,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto: ICMP (1), length: 84) 10.100.17.127 > 10100.17.143: ICMP echo request, id 12641, seq 1, length 64
| 0x0000: 450a 0054 0000 4000 4001 1382 0a08 097f E..T..@.@.......
| 0x0010: 0a08 098f 0800 3509 3161 0001 8874 8e46 ......5.1a...t.F
| 0x0020: 8ad6 0500 0809 0a0b 0c0d 0e0f 1011 1213 ................
| 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"#
| 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123
| 0x0050: 3435 3637 4567
| 00:00:44.017532 IP (tos 0xa,ECT(0), ttl 64, id 51381, offset 0, flags [none], proto: ICMP (1), length: 84) 10.100.17.143 > 10.100.17.127: ICMP echo reply, id 12641, seq 1, length 64
| 0x0000: 450a 0054 c8b5 0000 4001 8acc 0a08 098f E..T....@.......
| 0x0010: 0a08 097f 0000 3d09 3161 0001 8874 8e46 ......=.1a...t.F
| 0x0020: 8ad6 0500 0809 0a0b 0c0d 0e0f 1011 1213 ................
| 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"
#
| 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123
| 0x0050: 3435 3637 4567
|
+--- Result ----

[ Catatan ]

- tos 0xa = tos 10
- Cara di atas merupakan cara sederhana dari sebuah portknocking,
sehingga semua packet data masih dapat di capture dan dibaca secara jelas.
- SIlakan melakukan experimen sendiri sesuai dengan kebutuhan anda.


[ Penutup ]

Selamat mencoba menggunakan metode portknocking ini, semoga artikel
ini dapat berguna bagi kita semua.

[ Referensi ]

- Port Knocking and Other Uses of 'Recent Match' : http://www.shorewall.net/PortKnocking.html
- Portknocking : http://portknocking.org
- Assemble and disassemble IP (Internet Protocol) packets : http://search.cpan.org/~atrak/NetPacket-0.04/


[ Shoutz ]

- echo|staff : y3dips,m0by,comex,z3r0byt3,k-159,c-a-s-e,s'to,lirva32,anonymous,pushm0v
- Newbie_hacker Members
- yang baca artikel ini

*- $09dottxt - echo|zine - issue#17 - 070707 -*

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

guest's profile picture
@guest
12 Nov 2024
It is very remarkable that the period of Atlantis’s destruction, which occurred due to earthquakes and cataclysms, coincides with what is co ...

guest's profile picture
@guest
12 Nov 2024
Plato learned the legend through his older cousin named Critias, who, in turn, had acquired information about the mythical lost continent fr ...

guest's profile picture
@guest
10 Nov 2024
الاسم : جابر حسين الناصح - السن :٤٢سنه - الموقف من التجنيد : ادي الخدمه - خبره عشرين سنه منهم عشر سنوات في كبرى الشركات بالسعوديه وعشر سنوات ...

lostcivilizations's profile picture
Lost Civilizations (@lostcivilizations)
6 Nov 2024
Thank you! I've corrected the date in the article. However, some websites list January 1980 as the date of death.

guest's profile picture
@guest
5 Nov 2024
Crespi died i april 1982, not january 1980.

guest's profile picture
@guest
4 Nov 2024
In 1955, the explorer Thor Heyerdahl managed to erect a Moai in eighteen days, with the help of twelve natives and using only logs and stone ...

guest's profile picture
@guest
4 Nov 2024
For what unknown reason did our distant ancestors dot much of the surface of the then-known lands with those large stones? Why are such cons ...

guest's profile picture
@guest
4 Nov 2024
The real pyramid mania exploded in 1830. A certain John Taylor, who had never visited them but relied on some measurements made by Colonel H ...

guest's profile picture
@guest
4 Nov 2024
Even with all the modern technologies available to us, structures like the Great Pyramid of Cheops could only be built today with immense di ...

lostcivilizations's profile picture
Lost Civilizations (@lostcivilizations)
2 Nov 2024
In Sardinia, there is a legend known as the Legend of Tirrenide. Thousands of years ago, there was a continent called Tirrenide. It was a l ...
Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT