Assalamu Alaikum,
Lama juga tidak buat postingan, terakhir posting di bulan Mei, malas juga yah ternyata. Di samping kemalasan itu, akhir-akhir ini penulis melihat beberapa post di media sosial tentang adanya celah keamanan (vulnerability) pada semua perangkat MikroTik RouterOS. Ada satu script yang dibuat dengan bahasa Python, dengan mudahnya mendapatkan username dan password MikroTik secara Plain Text (alias bisa dibaca langsung) tanpa enkripsi sama sekali, bahkan password yang lama sekalipun. Bug ini berdampak pada semua versi RouterOS dari 6.29 (release date: 2015/28/05) sampai 6.42 (release date 2018/04/20). Wahh, bisa gawat kalau begini. Penulis pun mencoba mencari tahu tentang script ini yang ternyata bernama WinboxPoC.
Menurut yang penulis ketahui (setelah baca-baca tentunya), bug ini memanfaatkan celah keamanan pada kernel linux RouterOS yang berbeda setiap versinya (khususnya versi 6.29 ke atas). Kemudian memodifikasi packet yang dikirimkan ke RouterOS sehingga bisa men-download file User Database, dimana file User Database ini bisa di-enkripsi secara online di internet (secara gratis) untuk mendapatkan username dan password MikroTik.
Penjelasan tentang bug ini bisa dilihat di https://n0p.me/winbox-bug-dissection/
Download WinboxExploit pada github berikut https://github.com/BasuCert/WinboxPoC
Setelah download, kemudian extract. Lalu jalankan perintah
Untuk versi 6 ke atas biasanya sudah dilengkapi dengan fitur autoupgrade, klik menu System -> Packages, kemudian pilih Check for Updates.
Maka RouterOS akan mendownload ROS versi terbaru (current) dan melakukan upgrade secara otomatis, tentuya setelah reboot.
Sebagai bentuk pengamanan terhadap router, maka mungkin perlu dilakukan hal-hal sebagai berikut:
Membatasi akses user ke router hanya dari IP tertentu saja
Matikan service yang tidak perlu
Disable MAC-Telnet
Penulis tidak akan menjelaskan satu-satu baris perintah di atas, silahkan pelajari dan searching informasi tambahan.
Demikian sedikit cerita tentang Bug Mikrotik untuk Mendapatkan Username dan Password, semoga bermanfaat, khususnya bagi penulis pribadi.
Terima kasih
(zed)
Lama juga tidak buat postingan, terakhir posting di bulan Mei, malas juga yah ternyata. Di samping kemalasan itu, akhir-akhir ini penulis melihat beberapa post di media sosial tentang adanya celah keamanan (vulnerability) pada semua perangkat MikroTik RouterOS. Ada satu script yang dibuat dengan bahasa Python, dengan mudahnya mendapatkan username dan password MikroTik secara Plain Text (alias bisa dibaca langsung) tanpa enkripsi sama sekali, bahkan password yang lama sekalipun. Bug ini berdampak pada semua versi RouterOS dari 6.29 (release date: 2015/28/05) sampai 6.42 (release date 2018/04/20). Wahh, bisa gawat kalau begini. Penulis pun mencoba mencari tahu tentang script ini yang ternyata bernama WinboxPoC.
Menurut yang penulis ketahui (setelah baca-baca tentunya), bug ini memanfaatkan celah keamanan pada kernel linux RouterOS yang berbeda setiap versinya (khususnya versi 6.29 ke atas). Kemudian memodifikasi packet yang dikirimkan ke RouterOS sehingga bisa men-download file User Database, dimana file User Database ini bisa di-enkripsi secara online di internet (secara gratis) untuk mendapatkan username dan password MikroTik.
Penjelasan tentang bug ini bisa dilihat di https://n0p.me/winbox-bug-dissection/
Sedikit Praktik
Untuk mencoba dan membuktikan Bug ini, penulis kebetulan memiliki satu RouterBoard RB750G series, yang juga secara kebetulan lupa password super admin-nya, hehehe. Kebetulan penulis menggunakan sistem operasi OSX (a.k.a hackintosh), dan pastikan sudah terinstal Python versi 3.Download WinboxExploit pada github berikut https://github.com/BasuCert/WinboxPoC
Setelah download, kemudian extract. Lalu jalankan perintah
$python3.7 WinboxExploit.py 172.16.16.16 (IP Address MikroTik)
bahkan Anda bisa mendapatkan file user database walau target tidak memiliki IP Address, dengan menggunakan perintah$python3.7 MACServerDiscover.py
setelah diperoleh MAC Address MikroTik, lanjutkan dengan perintah
$python3.7 MACServerExploit.py 00:11:22:33:44
hasilnya adalah
Sedikit Pencegahan
Bug ini bisa diperbaiki dengan melakukan upgrade (update) OS pada RouterOS ke versi terbaru atau hanya dengan versi BugFix saja.Untuk versi 6 ke atas biasanya sudah dilengkapi dengan fitur autoupgrade, klik menu System -> Packages, kemudian pilih Check for Updates.
Maka RouterOS akan mendownload ROS versi terbaru (current) dan melakukan upgrade secara otomatis, tentuya setelah reboot.
Sebagai bentuk pengamanan terhadap router, maka mungkin perlu dilakukan hal-hal sebagai berikut:
Akses ke Router
Usahakan untuk mengganti username admin ke nama yang lain, dan set password ke tingkat yang paling sulit, bagusnya sih gunakan password generator (pwgen)./user set 0 name=namaAdmin
/user set 0 password="iniP455w0rLKJWERnxd98234^@#$/"
/user set 0 allowed-address=172.16.16.16/21
Servis Router
Kebanyakan router secara default menjalankan beberapa service (layanan) aplikasi, seperti telnet, ftp, www, winbox dan sebagainya. Untuk keamanan, sebaiknya cukup jalankan yang perlu saja dan yang secure (ssh).Matikan service yang tidak perlu
/ip service disable telnet,ftp,www,api,api-ssl
Bila perlu, ganti port default service, misalnya ssh (22) menjadi port 220/ip service set ssh port=2200
MAC-access
RouterOS memiliki fitur tambahan agar memudahkan akses ke perangkat jaringan, fitur ini sebaiknya di-disable saja pada network production.Disable MAC-Telnet
/tool mac-server set allowed-interface-list=noe
Disable MAC-Winbox/tool mac-server mac-winbox set allowed-interface-list=none
Disable MAC-ping/tool mac-server ping set enabled=no
Neighbor Discover
MikroTik Neighbor discovery biasanya digunakan untuk melihat atau memanage MikroTik router lain yang ada pada jaringan, sebaiknya matikan fitur ini./ip neighbor discovery-settings set discover-interface-list=noe
Bandwidth Server
Fitur ini digunakan untuk men-jajal throughput antar perangkat MikroTik, disable saja fitur ini jika tidak digunakan lagi./tool bandwidth-server set enabled=no
Interface Router
Jika ada interface atau port yang tidak digunakan, sebaiknya disable saja/interface set x disabled=yes
x = no interface yang akan di-disableFirewall ke Router
Tambahkan sedikit rule pada firewall/ip firewall filter
add action=accept chain=input comment="default configuration" connection-state=established,related
add action=accept chain=input src-address-list=allowed_to_router
add action=accept chain=input protocol=icmp
add action=drop chain=input
/ip firewall address-list
add address=192.168.88.2-192.168.88.254 list=allowed_to_router
Firewall untuk client/ip firewall filter
add action=fasttrack-connection chain=forward comment=FastTrack connection-state=established,related
add action=accept chain=forward comment="Established, Related" connection-state=established,related
add action=drop chain=forward comment="Drop invalid" connection-state=invalid log=yes log-prefix=invalid
add action=drop chain=forward comment="Drop tries to reach not public
addresses from LAN" dst-address-list=not_in_internet in-interface=bridge1 log=yes log-prefix=!public_from_LAN out-interface=!bridge1
add action=drop chain=forward comment="Drop incoming packets that are not NATted" connection-nat-state=!dstnat connection-state=new in-interface=ether1 log=yes log-prefix=!NAT
add action=drop chain=forward comment="Drop incoming from internet which is not public IP" in-interface=ether1 log=yes log-prefix=!public src-address-list=not_in_internet
add action=drop chain=forward comment="Drop packets from LAN that do not have LAN IP" in-interface=bridge1 log=yes log-prefix=LAN_!LAN src-address=!192.168.88.0/24
/ip firewall address-list
add address=0.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=172.16.0.0/12 comment=RFC6890 list=not_in_internet
add address=192.168.0.0/16 comment=RFC6890 list=not_in_internet
add address=10.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=169.254.0.0/16 comment=RFC6890 list=not_in_internet
add address=127.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=224.0.0.0/4 comment=Multicast list=not_in_internet
add address=198.18.0.0/15 comment=RFC6890 list=not_in_internet
add address=192.0.0.0/24 comment=RFC6890 list=not_in_internet
add address=192.0.2.0/24 comment=RFC6890 list=not_in_internet
add address=198.51.100.0/24 comment=RFC6890 list=not_in_internet
add address=203.0.113.0/24 comment=RFC6890 list=not_in_internet
add address=100.64.0.0/10 comment=RFC6890 list=not_in_internet
add address=240.0.0.0/4 comment=RFC6890 list=not_in_internet
add address=192.88.99.0/24 comment="6to4 relay Anycast [RFC 3068]" list=not_in_internet
Demikian sedikit cerita tentang Bug Mikrotik untuk Mendapatkan Username dan Password, semoga bermanfaat, khususnya bagi penulis pribadi.
Terima kasih
(zed)
MAS. tempat saya kok tidak work ya mas
BalasHapuscek versi nya, atau mungkin saja sudah safe
BalasHapusMunculnya kaya ini kak?
BalasHapusFile "C:\Users\asus\Downloads\Video\WinboxPoC-master\WinboxPoC-master\WinboxExploit.py", line 66, in
b[19] = d[38]
IndexError: bytearray index out of range
bisa jadi sudah fix itu
Hapusmas, kok saya begini terus Exploit failed
BalasHapuslihat syarat-syaratnya
Hapus