Takeover Eggdrop?

Tadi siang waktu ngumpul di cannel priangan-undernet tiba-tiba dateng seseorang yang pake nick doni, dan bilang kalo bot saya bisa di ambil (istilah doni untuk takeover). Sebener nya sih bot itu gak terlalu dikhawatirkan kalau diambil orang toh bot tersebut dipasang dikomputer yang deket artinya kalopun harus install ulang gak akan memakan waktu, belum lagi bandwidth nya yang kecil akan membuat bete orang yang coba ngeremote dari luar :).

Tapi penasaran juga sih bener gak tuh bot bisa di takeover, akhirnya saya login lewat telnet dan voila doni udah ada disana :) begitu di whois wew dia udah dapet akses +n alias owner, mantab nih. Akhirnya saya ngobrol sama doni sebenernya bagaimana dia dapet akses untuk takeover bot saya tersebut, doni cuman ngasih clue kalau dia bisa takeover dari ping, hmmmm dari ping agak-agak aneh nih… memang sih saya pasang ping.tcl untuk ngebantu temen-temen chatter yang pengen tau ping time tapi apa bener masalah nya dari ping.tcl.

Setelah agak lama ngobrol dia kemudia ngasih clue lagi kalo yang bermasalah itu script facelift yang bot saya pake. Hnaaa kalo ini sih reasonable soalnya facelift script nya memang mampu mengontrol bot full akses plus script yang sedemikian lengkap tentu saja tidak dijamin kalau tidak ada bug sama sekali. Tapi sayang sekali doni gak bisa ngasih clue lebih dari ping dan facelift.

Akhirnya bermodalkan kepenasaranan saya coba-coba buka log dari bot saya dan alamat log bot berbulan-bulan memang mantab :D panjang banget tapi dengan modal sabar akhirnya ketemu juga apa yang saya cari di dalam log eggdrop saya ketemu beberapa baris yang lumayan bikin saya kagum yaitu:

[10:10] Tcl error [ping_me_reply]: can’t use non-numeric string as operand of “-”
[10:10] CTCP reply PING: [set ctcp-ping 0;adduser doni doni!*@*;chattr doni ?Zfhjmnovptx?] from doni (doni@61.94.8.94) to botsaya
[10:11] (doni!doni@61.94.8.94) !doni! PASS…
[10:11] [FL] #doni# auth …
[10:11] -doni (doni@61.94.8.94)- DCC Chat (61.94.8.94)
[10:11] CTCP DCC: CHAT chat 1029572702 2197 from doni (doni@61.94.8.94)
[10:11] DCC connection: CHAT (doni!doni@61.94.8.94)
[10:12] Logged in: doni (doni@61.94.8.94/2197)

Analisa dari log tersebut adalah:

  1. doni melakukan ctcp ping normal ke bot.
  2. ketika bot mereply dengan ping reply, doni dengan cerdik melakukan pingreply balik dengan value yang sudah dirubah.
  3. bugs disini adalah ctcpreply PING dijawab dengan ctcpreply PING ternyata membuat script tcl berbuat yang aneh-aneh yaitu malahan mengeksekusi value dari ctcpreply di level owner. Yang artinya adduser hanyalah satu dari sekian banyak yang bisa dilakukan oleh cara ini. Bahkan kalo mau iseng bot bisa dimatikan dengan cara seperti ini.
  4. setelah doni membuat user di bot dia seperti biasa membuat password untuk akses
  5. kemudian melakukan authentifikasi dengan msg ke bot dan mengetikan auth password
  6. tidak hanya sampai disitu doni pun melakukan dcc chat untuk mengontrol bot lebih jauh
  7. Sukses doni berhasil login.

Ok dari analisa diatas kayaknya makin jelas nih. Sekarang saya jadi penasaran gimana cara bisa berbuat seperti itu, apa sebetulnya yang bermasalah dan bagaimana cara mengatasinya.

Setelah mencoba-coba dengan menggunakan command yang normal dipake darimulai !ping di channel kemudian ctcp dengan value yang aneh tidak bisa akhirnya sempet kepikiran manipulasi ctcpreply di xchat aqua yang saya pake koq gak bisa ya (padahal XChat buat windows dan Linux saya tahu bisa melakukan itu) apa mungkin di mIRC bisa? akhirnya bermodalkan help nya mIRC saya baca-baca disana ternyata bingo mIRC memang bisa memanipulasi ctcpreply ya udah pindah ke windows deh dan mulai utik-utik script mIRC.

Saya tambahkan script seperti ini di script.ini (remote).

kemudian saya login ke irc dan saya ping dengan perintah /ctcp botnick ping seperti biasa dan ini hasilnya

[20:34] CTCP PING: 1169818729 from darso (~dawir@202.51.xxx.xxx)
[20:34] CTCP reply PING: [set ctcp-mode 0;adduser coba coba!coba@coba.com ] from darso (~dawir@202.51.xxx.xxx) to botsaya
.whois coba
[20:34] #Giest# whois coba
HANDLE PASS NOTES FLAGS LAST
coba no 0 hp never (nowhere)
HOSTS: coba!coba@coba.com

yang artinya script yang saya coba berhasil memanipulasi ctcpreply dan bugs dari tcl script tersebut berhasil di exploitasi. Kemudian yang saya lakukan adalah mematikan script ping.tcl karena saya curiga masalahnya dari sini walaupun sepertinya kecurigaan saya tidak beralasan karena ping.tcl tidak ada script yang aneh-aneh didalamnya.

Setelah ping.tcl di remove dari eggdrop.conf ternyata masalah masih terjadi saya masih bisa membuat user coba dengan cara ping ke bot :P. Ok sekarang giliran facelift.tcl yang harus saya matikan.

Setelah kebingungan kenapa walaupun sudah di rehash bot masih ngereply script facelift akhirnya saya restart juga tuh bot :P dan setelah di restart inilah hasilnya.

[20:48] Tcl error [ping_me_reply]: can’t read “pingwho”: no such variable
[20:48] CTCP reply PING: [set ctcp-mode 0;adduser coba coba!coba@coba.com ] from darso (~dawir@202.51.xxx.xxx) to botsaya
.whois coba
[20:49] #Giest# whois coba
Can’t find anyone matching that.

Artinya sekarang gak bisa bikin user lagi dengan cara seperti itu :) aman kah sekarang? untuk sementara aman dan saya masih harus berusaha utak-utik script tersebut paling ngga supaya bugs nya hilang ;)
Bugs ini ditemukan juga pada hampir seluruh turunan dari facelift dan netgate so kalo anda pake script tersebut hati-hati ya jangan sampe dicolong orang.

Silahkan anda utik-utik lagi script diatas :) resiko tanggung sendiri :D

Quote: thanks to doni karena udah ngasih tahu ada sesuatu dengan script bot saya. acc nya di delet dulu kalo masih perlu contact ya biar host nya ga global gitu :).


Info Artikel

Creative Commons License
This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.