1. Recon
1.1 主机发现 & 端口扫描
# Using nmap to discover hosts and scan ports.
nmap -sn $IP/24
nmap -n -v -Pn -sS -p- --max-retries=1 $IP
nmap -n -v -Pn -sC -sV -sT -O --min-rate=10000 --max-retries=1 -p $PORTS $IP
# Using ping to discover hosts.
for i in {1..254};do ping -c 1 -W 1 192.168.0.$i | grep from;done
# Using nc to scan ports.
nc.traditional -vv -z 172.16.200.131 1-65535 2>&1 | grep -v refused
# Using tcp service to scan ports.
for i in {1...65535}
do
(echo < /dev/tcp/172.16.200.131/$i) &>/dev/null && printf "\n[+] Open port: %d\n" "$i" || printf "."
done
1.2 IPV6 scan
# Using nmap.
nmap -6 --min-rate 10000 -p- $IPv6
# http://www.net-snmp.org/docs/man/snmpwalk.html
snmpwalk -v2c -c public $IP
1.3 枚举多网卡主机
# https://github.com/mubix/IOXIDResolver
python IOXIDResolver.py -t 10.10.11.3
1.4 OS识别
- Using nmap to detect os:
nmap -n -Pn -O $IP
- Web exists: Windows大小写不敏感;工具识别
- TTL (不准确):
1、WINDOWS NT/2000, TTL:128 2、WINDOWS 95/98, TTL:32 3、UNIX, TTL:255 4、LINUX, TTL:64 5、WIN7, TTL:64
- Special ports: 22, 139, 445, 1433, 3389
1.5 数据库识别
数据库的不同表示的结构也是不同、写法结构也不一样、所以产生的漏洞也不一样。不同的数据库的攻击方式也不完全一样。
- default pair
- asp + access/mssql
- php + mysql
- aspx + mssql
- jsp + mysql/oracle
- python + mongodb
- common port
- SQL
- mysql, 3306
- sqlserver, 1433
- oracle, 1521
- psotgresql
- NoSQL
- mongodb, 27017
- redis, 6379
- memcached, 11211
- SQL
1.6 CDN识别
- Online detect
- Bypass CDN
- 可能还需要结合社工,从而找到真实的IP。
- 子域名查询:主站做了CDN但是子站没有
- 邮件服务查询:邮箱大部分是内部人员访问,量也不大,一般没有CDN
- 国外ping IP地址:企业未在国外部署CDN
- 遗留文件、扫描全网:例如PHPInfo信息中会遗留出IP地址
- 特殊搜索引擎:fofa, shodan, zoomeye, censys, 谛听
- 奇特方式:fackcdn, w8fuckcdn, zmap
- 获取真实IP后绑定指向这个地址。
- 更改本地Hosts解析指向文件
- 可能还需要结合社工,从而找到真实的IP。
1.7 站点搭建分析
- 目录型站点(例如,www.xxx.com/bbs)
- 主站的漏洞
- 子站的漏洞
- 端口类站点,shodan扫描
- 子域名站点(子域名和域名可能不在一个服务器上)
- 类似域名站点(原有域名弃用,但是还能访问;二级or顶级域名更换,旧域名找到突破口)
- 社工方式找到相关域名信息
- 旁注,C段站点(在线工具:https://www.webscan.cc/)
- 旁注:同一个服务器上面存在多个站点、但是你要攻击的是A网站由于各种原因不能完成安全测试。就通过测试B网站进入服务器然后在攻击A网站最终实现目的。
- C段:不同的服务器上面存在不同的网站,通过扫描发现与你渗透测试的是同一个网段最终拿下服务器、然后通过内网渗透的方式拿下渗透服务器。
- 搭建软件特征站点
- 有的网站是借助于第三方的集成搭建工具实现例如:PHPstudy、宝塔等环境这样的集成环境搭建的危害就是泄露了详细的版本信息。
- phpstudy搭建了之后在默认的站点安装了phpmyadmin有的网站没有做安全性直接可以通过用户名:root密码:root 登录进入
1.8 WAF识别
- wafw00f:
wafw00f https://example.com
- identYwaf:
python identYwaf.py [options] <host|url>
- 有些Web站GET Header中留有WAF相关信息
- nmap指纹检测
nmap --script=http-waf-fingerprint
nmap --script=http-waf-detec
- 目的:没有识别WAF直接扫描可能导致IP黑名单,识别具体WAF可以有针对性的bypass waf
1.9 资产收集
- GitHub
监控server酱:http://sc.ftqq.com/3.version
GitHub项目监控地址:https://github.com/weixiao9188/wechat_push- 收集整理最新exp poc
- 发现相关测试目标的资产
- 查询:子域名、DNS、备案、证书、全球节点请求CDN
- 枚举爆破or解析子域名 https://github.com/bit4woo/teemo
- 发现管理员相关的注册信息
- 搜索引擎:fofa, shodan, zoomeye
- 微信公众号接口获取
- 内部群内部资源
2. Vulnerabilities
2.1 SQLi
2.2 File Upload
X. Privilege Escalation
X.0 Reverse Shells
X.1 A Better Shell
sudo nc -lvnp $port
dpkg -l | grep python
python -c "import pty;pty.spawn('/bin/bash')"
export TERM=xterm-color