Socmed Backdoor Management

Selamat Malem temen-temen 😀

Sepertinya sudah lama saya tidak mencorat-coret di blog kesayangan saya ini dikarenakan oleh beberapa kesibukan yang intinya saya sudah bosan menjadi mahasiswa dan pengennya cepet keluar aja..Dan pada akhirnya saya bisa sedikit mencurahkan tentang sebuah pemikiran saya tentang otak-atik isang-iseng yang keluar gitu aja dari otak..hehe..

Owkay, mungkin kita langsung aja masuk ke intinya ya.. berawal dari posting saya yang ini, yaitu twitteran menggunakan CLI pake Python dan module tweepy, serta dari cerita-cerita om sakitjiwa di IDSECCONF 2011 kemaren di palembang tentang backdooring twitter account pake tweepy juga,  akhirnya saya berpikiran untuk membuat sebuah manajemen yang lebih manusiawi 😀

Sebelumnya saya akan jelaskan dulu gimana proses dari oauth untuk meloginkan seorang user, yah mungkin dari pandangan orang yang gak tau apa-apa gini ya.

kasarannya gini (kalo nggak salah), user minta ke twitter dengan consumer key dan consumer secret tanda pengenal sebuah aplikasi, trus dikombinasikan dengan oauth token, terus user dikasih twitter access key dan access secret, terus dengan adanya consumer key, consumer secret, access key, dan access secret akhirnya user bisa pake fitur-fitur di twitter deh. Kalo nggak salah sih gini, tapi ya gak tau juga benernya gimana 😀

Nah, dari hal itu bisa kita ambil kesimpulan kalo misalnya kita bisa punya keempat hal itu dari seorang user, berarti kita bisa ambil akses tu user. Dan sebenernya itulah inti yang dibicarakan oleh om sakitjiwa di Indonesian Security Conference kemaren. Tetapi di sini saya ingin membuat itu lebih sederhana, yaitu kita bisa memanajemen key-key itu untuk kepentingan pribadi (resiko ditanggung pemakai lho).

Langsung aja ke prakteknya ya.. Yang pasti saya memakai modul tweepy yang pernah saya gunakan untuk membuat pylinx dulu. Yang pasti kita download dulu modul tweepynya. Terus saya membuat sebuah folder bernama token, yaitu folder untuk menyimpan semua akses token victim. Nah, sekarang kita buat dua buah script, yaitu untuk mengambil key dari seorang user dan untuk pengaksesan twitter dari seorang user.

Untuk pengambilan key dari seorang user, saya menggunakan script bernama getoken.py yang mana dengan menggunakan modul tweepy, saya bisa merequest  key yang akan kita gunakan, dan setelah itu saya menyimpannya di sebuah file di dalam folder token. (sorry yak, pinnya saya sensor :p)

nah, setelah kita buka url buat authorize, kita bakal disuruh authorize app, untuk gimana cara ngedapetin otorisasi dari seorang twitter user, itu terserah kamu, mau stripping, sidejacking, social engineering, dll terserah kamu, yang penting dapet. Setelah diotorisasi dan memasukkan pin maka kita memasukkan token filename, yaitu nama file untuk token yang akan digunakan nantinya.

Lalu setelah mendapatkan token, saya menggunakan script bernama krek.py untuk mengakses token-token yang sudah kita dapatkan tadi. Sebenarnya saya cuma memodifikasi pylinx yang dulu telah saya buat. Saya menambahkan beberapa fungsi yang intinya di sini:


print "token pwned:"
for i in os.listdir('token'):
      print i.rstrip()
tok = raw_input('choose the pwned token: ')
filechoosen = 'token/' + tok

nah,intinya cuma di situ koq, jadi ketika dieksekusi akan menjadi seperti ini.

yak, proses pembuatan jalan belakang pun telah sukses digunakan. Jadi token yang sudah disimpan dapat ditampilkan dan dipilih untuk digunakan.

Seperti yang tadi sudah saya bilang,untuk mendapatkan hak akses dari seorang user,kamu bisa ngelakuin apa aja dengan cara apa aja, yang penting dapet, dan dari tulisan ini juga saya tekankan bahwa tulisan ini hanya menjelaskan cara pembuatan jalan belakang secara global aja, jadinya ya maaph-maaph saja kalo banyak  konsep yang salah dari seorang newbie ini. Yak, mungkin itu aja yang bisa saya sampaikan pada kesempatan malam ini. Untuk perhatiannya terima kasih dan untuk resiko dalam praktek ini, saya mohon untuk ditanggung sendiri. Ciao 😀

Continue Reading

Panjangin Url

Setelah lama nggak posting,akhirnya posting juga..

Walaupun berbau newbie dan cuma ambil sana-sini.. 🙂

#!/usr/bin/env python

# !panjangin url pendek!
# Penggunaan : ./panjang.py urlPendekKamu
# Terima kasih kepada LongUrl.Org
# Oia,jangan lupa linknya pake http:// atau https ya 🙂

import urllib2
import sys
import re

howto = "!panjangin url pendek!\nPenggunaan : ./panjang.py urlPendekKamu"

def panjangkan():
    link = "http://api.longurl.org/v2/expand?url=" + sys.argv[1]
    buka = urllib2.urlopen(link)
    cari = re.compile('CDATA\[(.*)\]\]')
    dapat = re.findall(cari,buka.read())
    print "url aslinya = ",dapat[0]

def main():
    if len(sys.argv) <= 1:
        print howto
    else:
        panjangkan()

if __name__ == "__main__":
    main()

terus hasilnya..


linx@gate-linx:/mnt/data/otak-atik/Python/LongUrl$ ./panjang.py http://t.co/tOJQNGVF
url aslinya =  http://bola.okezone.com/read/2011/10/16/51/516012/aristek-the-three-lions-harus-orang-inggris

kode bisa dilihat juga di sini 🙂

Continue Reading

Sekedar Sharing tentang “kutu”

Hola 😀

Cuma sekedar pengen sharing aja tentang satu hal yang sudah saya lakukan dalam beberapa minggu ini. Yang membuktikan bahwa betapa tidak amannya sebuah sistem yang “mereka” kira sudah aman 🙂


linx@comp-share:~$ ./injected
Contacting to shell.
Injecting the shell..
Connecting to the shell..
Connected!
$ id -u
524
$ ps ax | sed /.net/d | sed /cmd/d
PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:06 init [3]
2 ?        S<     0:25 [migration/0]
3 ?        SN     0:23 [ksoftirqd/0]
4 ?        S<     0:00 [watchdog/0]
5 ?        S<     0:09 [migration/1]
6 ?        SN     0:11 [ksoftirqd/1]
7 ?        S<     0:00 [watchdog/1]
8 ?        S<     0:08 [migration/2]
9 ?        SN     0:07 [ksoftirqd/2]
10 ?        S<     0:00 [watchdog/2]
11 ?        S<     0:04 [migration/3]
12 ?        SN     0:00 [ksoftirqd/3]
13 ?        S<     0:00 [watchdog/3]
14 ?        S<     0:00 [events/0]
15 ?        S<     0:00 [events/1]
16 ?        S<     0:00 [events/2]
17 ?        S<     0:00 [events/3]
18 ?        S<     0:04 [khelper]
59 ?        S<     0:00 [kthread]
66 ?        S<     0:00 [kblockd/0]
67 ?        S<     0:00 [kblockd/1]
68 ?        S<     0:00 [kblockd/2]
69 ?        S<     0:00 [kblockd/3]
70 ?        S<     0:00 [kacpid]
190 ?        S<     0:00 [cqueue/0]
191 ?        S<     0:00 [cqueue/1]
192 ?        S<     0:00 [cqueue/2]
193 ?        S<     0:00 [cqueue/3]
196 ?        S<     0:00 [khubd]
198 ?        S<     0:00 [kseriod]
285 ?        S      0:00 [khungtaskd]
288 ?        S<     0:18 [kswapd0]
289 ?        S<     0:00 [aio/0]
290 ?        S<     0:00 [aio/1]
291 ?        S<     0:00 [aio/2]
292 ?        S<     0:00 [aio/3]
458 ?        S<     0:00 [kpsmoused]
505 ?        S<     0:00 [ata/0]
506 ?        S<     0:00 [ata/1]
507 ?        S<     0:00 [ata/2]
508 ?        S<     0:00 [ata/3]
509 ?        S<     0:00 [ata_aux]
515 ?        S<     0:00 [scsi_eh_0]
516 ?        S<     0:00 [scsi_eh_1]
527 ?        S<     0:00 [kstriped]
548 ?        S<     1:05 [kjournald]
573 ?        S<     0:01 [kauditd]
606 ?        S<s    0:00 /sbin/udevd -d
1104 ?        S      0:04 [pdflush]
1198 ?        S<     0:00 [kedac]
1337 ?        S<     0:00 [scsi_eh_2]
1338 ?        S<     0:00 [usb-storage]
1627 ?        Ss     0:00 sshd: root [priv]
1749 ?        Ss     0:56 /usr/local/apache/bin/httpd -k start -DSSL
1895 ?        S<     0:00 [kmpathd/0]
1897 ?        S<     0:00 [kmpathd/1]
1898 ?        S<     0:00 [kmpathd/2]
1899 ?        S<     0:00 [kmpathd/3]
1900 ?        S<     0:00 [kmpath_handlerd]
1935 ?        S<     0:00 [kjournald]
1937 ?        S<     2:52 [kjournald]
1939 ?        S<     4:53 [kjournald]
1941 ?        S<     1:26 [kjournald]
1943 ?        S<     0:01 [kjournald]
1945 ?        S<     0:00 [kjournald]
2147 ?        S<     0:00 [iscsi_eh]
2225 ?        S<     0:00 [ib_addr]
2242 ?        S<     0:00 [ib_mcast]
2243 ?        S<     0:00 [ib_inform]
2244 ?        S<     0:00 [local_sa]
2249 ?        S<     0:00 [iw_cm_wq]
2256 ?        S<     0:00 [ib_cm/0]
2257 ?        S<     0:00 [ib_cm/1]
2258 ?        S<     0:00 [ib_cm/2]
2259 ?        S<     0:00 [ib_cm/3]
2264 ?        S<     0:00 [rdma_cm]
2285 ?        Ssl    0:00 brcm_iscsiuio
2291 ?        Ss     0:00 iscsid
2292 ?        S<Ls   0:00 iscsid
2516 ?        S<sl   0:12 auditd
2518 ?        S<sl   0:04 /sbin/audispd
2630 ?        Ss     0:19 syslogd -m 0
2633 ?        Ss     0:03 klogd -x
2737 ?        Ss     0:09 irqbalance
2768 ?        Ss     0:00 portmap
2800 ?        S<     0:00 [rpciod/0]
2801 ?        S<     0:00 [rpciod/1]
2803 ?        S<     0:00 [rpciod/2]
2804 ?        S<     0:00 [rpciod/3]
2813 ?        Ss     0:00 rpc.statd
2845 ?        Ss     0:00 rpc.idmapd
2868 ?        Ss     0:00 dbus-daemon --system
2911 ?        Ssl    0:02 pcscd
2925 ?        Ss     0:00 /usr/sbin/acpid
2938 ?        Ss     0:00 hald
2939 ?        S      0:00 hald-runner
2948 ?        S      0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
2964 ?        S      4:00 hald-addon-storage: polling /dev/hda
3010 ?        Ss     0:00 /usr/bin/hidd --server
3051 ?        Ssl    0:17 automount
3073 ?        Ssl    6:06 /usr/sbin/named -u named
3100 ?        Ss     0:00 /usr/sbin/sshd
3291 ?        S      0:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
3293 ?        S      0:00 postgres: logger process
3295 ?        S      0:00 postgres: writer process
3296 ?        S      0:00 postgres: stats buffer process
3297 ?        S      0:00 postgres: stats collector process
3613 ?        S      0:03 MailScanner: waiting for messages
3978 ?        Ss     0:00 sshd: root [priv]
3999 ?        Ss     0:01 MailScanner: starting child
4043 ?        Ss     0:00 gpm -m /dev/input/mice -t exps2
4094 ?        Ss     0:00 pure-ftpd (SERVER)
4098 ?        S      0:00 /usr/sbin/pure-authd -s /var/run/ftpd.sock -r /usr/sbin/pureauth
4111 ?        Ss     0:04 crond
4163 ?        Ss     0:00 xfs -droppriv -daemon
4189 ?        Ss     0:00 /usr/sbin/atd
4280 ?        Ss     0:10 /usr/sbin/munin-node
4648 ?        Ss     0:09 lfd - sleeping
4771 ?        Ss     0:00 sshd: root [priv]
5185 ?        S      0:00 /usr/sbin/smartd -q never
5188 tty1     Ss+    0:00 /sbin/mingetty tty1
5189 tty2     Ss+    0:00 /sbin/mingetty tty2
5192 tty3     Ss+    0:00 /sbin/mingetty tty3
5193 tty4     Ss+    0:00 /sbin/mingetty tty4
5194 tty5     Ss+    0:00 /sbin/mingetty tty5
5200 tty6     Ss+    0:00 /sbin/mingetty tty6
5286 ?        Ss     7:34 /usr/local/bin/freshclam -d -c 10 --datadir=/usr/local/share/clamav
5293 ?        Ssl   15:21 /usr/local/sbin/clamd
6672 ?        Ss     0:00 sshd: root [priv]
6675 ?        Ss     0:00 sshd: root [priv]
6678 ?        Ss     0:00 sshd: root [priv]
7767 ?        Ss     0:03 /usr/sbin/exim -bd
7777 ?        Ss     0:00 /usr/sbin/exim -C /etc/exim_outgoing.conf -q60m
7845 ?        Ss     0:02 /usr/bin/spamd -d --allowed-ips=127.0.0.1 --pidfile=/var/run/spamd.pid --max-children=5
8442 ?        S      0:00 queueprocd - wait to process a task
8455 ?        S      1:10 tailwatchd
8461 ?        Ss     0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/mailmanctl -s start
8481 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=ArchRunner:0:1 -s
8482 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=BounceRunner:0:1 -s
8483 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=CommandRunner:0:1 -s
8484 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s
8485 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=NewsRunner:0:1 -s
8486 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s
8488 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=VirginRunner:0:1 -s
8490 ?        S      0:00 /usr/local/cpanel/3rdparty/bin/python /usr/local/cpanel/3rdparty/mailman/bin/qrunner --runner=RetryRunner:0:1 -s
8509 ?        S      0:06 cPhulkd - processor
8522 ?        S      0:01 cpdavd - accepting connections on 2077 and 2078
8535 ?        SN     0:00 cpanellogd - sleeping for logs
8548 ?        S      0:03 cpsrvd - waiting for connections
9590 ?        S      0:00 /usr/bin/perl /usr/local/cpanel/bin/leechprotect
9596 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
9972 ?        Ss     0:00 sshd: root [priv]
9976 ?        Ss     0:00 sshd: root [priv]
12667 ?        S      0:02 MailScanner: waiting for messages
14508 ?        S      0:00 imap
15647 ?        S      0:00 imap
18200 ?        S      0:02 MailScanner: waiting for messages
20003 ?        Ss     0:00 sshd: root [priv]
20006 ?        Ss     0:00 sshd: root [priv]
20587 ?        S      0:16 spamd child
22498 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
23080 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
23088 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
23222 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
23241 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
23995 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24002 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24089 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24090 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24091 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24092 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24117 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24118 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24121 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24122 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24123 ?        S      0:00 /usr/local/apache/bin/httpd -k start -DSSL
24126 ?        R      0:00 ps ax
24184 ?        Ss     0:00 /usr/sbin/dovecot
24185 ?        S      0:00 dovecot-auth
24190 ?        S      0:00 pop3-login
24191 ?        S      0:00 pop3-login
24192 ?        S      0:00 imap-login
24193 ?        S      0:01 imap-login
25060 ?        S      0:00 imap
27482 ?        S      0:00 imap
29436 ?        S      0:00 imap
30571 ?        S      0:00 spamd child
31616 ?        S      0:02 [pdflush]
$ php -i | awk /safe_mode/ | awk 'NR==1'
safe_mode => On => On
$ ls -l /
total 338
-rwxr--r--   1 root root  12288 Aug 10 15:15 aquota.user
drwxr-xr-x   2 root root   4096 Jul 21 04:02 bin
drwxr-xr-x   4 root root   1024 Jun  2 15:12 boot
drwxr-xr-x  11 root root   3800 Jul  9 16:14 dev
drwxr-xr-x  87 root root  12288 Aug 10 15:18 etc
drwx--x--x  52 root root   4096 Aug  9 22:59 home
drwxr-xr-x  11 root root   4096 Jun 29 04:02 lib
drwxr-xr-x   8 root root   4096 Jun 29 04:02 lib64
drwx------   2 root root  16384 Jun  2 14:48 lost+found
drwxr-xr-x   2 root root   4096 May 11 18:58 media
drwxr-xr-x   2 root root      0 Jul  8 13:08 misc
drwxr-xr-x   3 root root   4096 Jun  2 18:09 mnt
drwxr-xr-x   2 root root      0 Jul  8 13:08 net
drwxr-xr-x   8 root root   4096 Jun  2 21:04 opt
dr-xr-xr-x 208 root root      0 Jul  8 13:07 proc
-rwxr--r--   1 root root  40080 Aug  4 23:09 quota.user
drwxr-x---  16 root root   4096 Aug 10 15:15 root
drwxr-xr-x   2 root root  12288 Jul  2 04:02 sbin
lrwxrwxrwx   1 root root     25 Jun  2 15:19 scripts -> /usr/local/cpanel/scripts
drwxr-xr-x   2 root root   4096 Jun  2 14:54 selinux
drwxr-xr-x   2 root root   4096 May 11 18:58 srv
drwxr-xr-x  11 root root      0 Jul  8 13:07 sys
drwxr-xr-x   3 root root   4096 Jun  2 20:05 temp
drwxrwxrwt   4 root root 159744 Aug 10 15:18 tmp
drwxr-xr-x  19 root root   4096 Jun 14 06:16 usr
drwxr-xr-x  26 root root   4096 Jun 14 06:16 var

Sorry banyak sensor di sana-sini dan sebelumnya saya ingin mengutip apa yang sudah dikatakan oleh happy ninjas di sini ,

They turned on some l33t “security” settings like PHP’s “Safe Mode” and “Openbase Dir”, and they also disabled lots of functions. All in all they thought they were pretty locked down. Well, obviously they were fucking wrong.

Mungkin karena kebanyakan sistem administrator berpikir bahwa ketika mereka mematikan beberapa fungsi yang dianggap krusial, dan bahkan mengeset safe_mode menjadi on (menurut saya itu norak), mereka merasa aman. Padahal masih ada saja celah keamanan yang ketika kita tidak teliti dalam melihatnya akan menjadi suatu hal yang sangat mengejutkan di kemudian hari.

Di sini tidak akan saya ulas, apa yang membuat saya bisa membypass safe_mode tersebut, tapi saya akan menekankan beberapa point penting:

  1. beberapa sistem administrator hanya berpikir bahwa mematikan fungsi-fungsi krusial bisa membuat server mereka menjadi lebih aman.
  2. beberapa fungsi yang dimatikan itu hanya berefek pada php saja, padahal apache (kebanyakan webserver yang dipakai) support untuk beberapa bahasa pemrograman.

And by the way, although I didn’t get the “uid 0” , but I got the shell 🙂

Continue Reading

Break the captcha!!!

Selamat sore teman-teman. Bertemu lagi kita di dalam sesi tulis-menulis blog. 😀

Okay, dalam sesi kali ini, saya akan sedikit berbagi lagi tentang apa yang sudah saya pelajari, saya tulis, dan saya lakukan. Pada tulisan kali ini saya akan membahas suatu hal yang berhubungan dengan CAPTCHA. Teman-teman pasti tahu apa itu. CAPTCHA adalah suatu challenge response , yang mana inti dari fungsi tersebut adalah untuk mengetahui, apakah yang sedang mengunjungi sebuah sistem itu berupa manusia ataupun robot. Mengapa harus demikian? Jawabannya adalah karena di dunia ini terdapat para spammer yang entah itu jahil ataupun mencari keuntungan dari spam dan robot yang mereka buat. Dan dari data yang didapat, konten spam di dunia maya ini berjumlah sangat besar. Maka dari itu digunakanlah CAPTCHA ini untuk menghindari adanya penumpukan sampah.

CAPTCHA sendiri

Continue Reading
1 3 4 5 6 7 17