在 2016 年 Bloxfest 上,Kevin Mitnick 谈到了反向 shell。我该如何保护我的 Ubuntu 免受此类入侵?
全球最著名的黑客凯文·米特尼克 (Kevin Mitnick) 在 2016 年 Bloxfest 上回答观众提问 (2:05)
答案1
为了能够使用反向 shell,你的网络必须已经被破坏。
所以不要安装 rootkit,这样你就不会有事了 ;) 坚持使用存储库,如果真的需要,请从启动板使用 PPA。确保你安装的内容来自安全来源。不要安装你不需要的软件,禁用你不需要的服务,保持你的系统更新。留意日志文件,并留意路由器上的日志。不使用时请关闭机器(例如,不要在夜间开着它)。
简单的回答:如果你的系统被黑客入侵,你将无法阻止反向 shell。
更详细的答案:阻止创建出站 TCP 连接(受信任地址除外)是一种让创建反向 shell 变得更加困难的方法。但你会严重限制你的系统:这也会阻止浏览互联网、通过 HTTP 安装补丁,如果你使用它,还会阻止更新防病毒软件,所以这对服务器来说基本上是好事,但对桌面来说很糟糕。
这将阻止除 DNS 查找之外的任何操作(来源):
iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -j REJECT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -p tcp --dport 8009 -j ACCEPT
iptables -A INPUT -p tcp --dport 8180 -j ACCEPT
iptables -A INPUT -p tcp --dport 21107 -j ACCEPT
iptables -A input -j REJECT
但是端口 53 ...
$ grep Domain /etc/services
domain 53/tcp # Domain Name Server
仍然会允许通过这个端口进行反向 shell,从根本上来说,如果不让你的系统完全无法使用,就无法阻止它。
所以回到第一部分:保持系统原样,不要让恶意用户访问您的系统。这样您就不必担心反向 shell。