Pentest


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识别

  1. Using nmap to detect os: nmap -n -Pn -O $IP
  2. Web exists: Windows大小写不敏感;工具识别
  3. 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
    
  4. Special ports: 22, 139, 445, 1433, 3389

1.5 数据库识别

数据库的不同表示的结构也是不同、写法结构也不一样、所以产生的漏洞也不一样。不同的数据库的攻击方式也不完全一样。

  • default pair
    1. asp + access/mssql
    2. php + mysql
    3. aspx + mssql
    4. jsp + mysql/oracle
    5. python + mongodb
  • common port
    • SQL
      1. mysql, 3306
      2. sqlserver, 1433
      3. oracle, 1521
      4. psotgresql
    • NoSQL
      1. mongodb, 27017
      2. redis, 6379
      3. memcached, 11211

1.6 CDN识别

1.7 站点搭建分析

  1. 目录型站点(例如,www.xxx.com/bbs)
    • 主站的漏洞
    • 子站的漏洞
  2. 端口类站点,shodan扫描
  3. 子域名站点(子域名和域名可能不在一个服务器上)
  4. 类似域名站点(原有域名弃用,但是还能访问;二级or顶级域名更换,旧域名找到突破口)
    • 社工方式找到相关域名信息
  5. 旁注,C段站点(在线工具:https://www.webscan.cc/
    1. 旁注:同一个服务器上面存在多个站点、但是你要攻击的是A网站由于各种原因不能完成安全测试。就通过测试B网站进入服务器然后在攻击A网站最终实现目的。
    2. C段:不同的服务器上面存在不同的网站,通过扫描发现与你渗透测试的是同一个网段最终拿下服务器、然后通过内网渗透的方式拿下渗透服务器。
  6. 搭建软件特征站点
    • 有的网站是借助于第三方的集成搭建工具实现例如:PHPstudy、宝塔等环境这样的集成环境搭建的危害就是泄露了详细的版本信息。
    • phpstudy搭建了之后在默认的站点安装了phpmyadmin有的网站没有做安全性直接可以通过用户名:root密码:root 登录进入

1.8 WAF识别

  1. wafw00f: wafw00f https://example.com
  2. identYwaf: python identYwaf.py [options] <host|url>
  3. 有些Web站GET Header中留有WAF相关信息
  4. nmap指纹检测
    1. nmap --script=http-waf-fingerprint
    2. nmap --script=http-waf-detec
  5. 目的:没有识别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
  • 搜索引擎:fofa, shodan, zoomeye
  • 微信公众号接口获取
  • 内部群内部资源

2. Vulnerabilities

2.1 SQLi

2.2 File Upload


X. Privilege Escalation

X.0 Reverse Shells

Go➡️

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