APT404-不作恶

在路上,一直在路上!

Web渗透第一步之信息搜集 [ 端口渗透 ]



0x01 扫描前奏

    开始正式的说明之前,我们不妨先来简单了解下telnet,这也是到目前为止,个人认为最靠谱的tcp端口扫描工具,没有之一,如果你只是想快速地探测目标的某几个tcp端口是否开放,直接telnet一下,无疑是极好的,也根本犯不着一上来就搂着专业的端口扫描工具去一通乱扫,这样做可以有效避免因某些工具动静儿过大[如,nmap之流…],而造成一些不必要的麻烦,如,触发对方防护报警[后续再搞很可能就要换ip了,tor暂时也不是想象的那么好用],简单使用实例,如下:

1
2
3
4
# telnet cc.target.edu.hk 1443
# telnet cc.target.edu.hk 3389
# telnet cc.target.edu.hk 22
...

0x02 关于端口扫描工具
    除了用telnet对某单个机器进行快速常规高危端口探测之外,如果我们想短时间内对多个目标进行批量端口扫描,又该怎么办呢,这里就简单介绍下几款经常会用到的公网端口扫描工具,masscan和zmap,同是基于无状态的的端口扫描,这里顺便科普下什么是无状态,简单来说,普通的端口扫描工具,在发出请求包以后还有一个等待数据回应的过程,然后根据回应的数据包头标志(不同系统平台的协议栈对每种标志的数据包响应状态也是不一样的)以此来判断目标的某个端口或者服务是否开放,用的什么操作系统等等……但这样做,无疑会很大程度上拖慢扫描速度,所以,后来大牛们就搞出了无状态扫描,这也就意味着,当请求包发送以后就被不再管了,也不再等待回应,所有的验证都放在数据包本身,这可能也是它快的主要原因,另外,此类工具为了减少触发目标ids的几率,都采用了分组扫描算法[这种东西其实并不算新奇],让扫描的ip随机分布[尽可能规避目标防护],而不是密麻集中在某个点……好了,简单科普就先到这里,过深的东西,也不是我目前的能力所能企及的,关键我们能把工具用起来就行,接着就来分别介绍下两款工具的一些常规用法,实际渗透中,个人还是更推荐masscan…原因我这里不多嘴了,还是留给大家,自行慢慢体会吧

0x03 masscan [扫描速度取决于你的实际带宽,默认只扫描tcp端口,但也可扫udp]:

1
https://github.com/robertdavidgraham/masscan

masscan 常用选项:

1
2
3
4
5
6
7
8
-p 		指定要扫描的端口,同时指定多个端口要用逗号隔开
--rate 指定发包速率,根据你自己的实际带宽来定,我自己是20M的光纤,一般给1000足矣,一两兆的vpn,给100就差不多了,都是粗略估计的,懒的算
--open-only 仅显示开放的端口
--banners 获取banners
-c 使用自定义的扫描配置文件
--ping 扫之前是否要先ping下目标
-oL 把扫描结果存到指定文件中
--excludefile 排除不扫描的ip段

masscan 配置文件格式,如下:

1
2
3
4
5
6
7
8
9
10
# klion masscan config  '#'表注释
rate =1000.00 # 指定发包速率,根据自己的实际带宽计算
output-format=list # 指定扫描结果保存的文件格式,这里我就用最普通的文本存,当然,它是支持直接输出成xml格式的,后续方便用程序处理
output-filename=/root/Desktop/port_hacking.txt # 指定要把扫描的结果文件保存到哪里
output-status=open # 只保留开放的端口信息
ports=80,443,8080,U:53 # 指定要扫描的端口,默认tcp,当然,你也可以指定UDP的端口,U即udp
range=203.174.48.0/24 # 指定要扫描的ip段,可以连续指定多个,中间记得逗号隔开就好了
ping=false # 扫描的时候要不要先ping下,true表示真,即ping
banners=true # 获取端口banner信息
excludefile=/etc/zmap/blacklist.conf # 指定不扫描的ip段,可以把不想扫描的一些ip段都加到这个文件中,如:内网ip段是不需要扫的

masscan 实例用法[支持同时进行tcp及udp扫描]:

1
2
手工指定选项扫描
# masscan --rate=1000 -p21,22,23,25,U:69,110,143,U:161,80,81,82,83,88,443,445,512,513,514,1433,1521,2082,2083,2181,2601,2604,3128,3690,4848,8088,8086,8081,8080,3306,5432,3389,5984,6379,7001,7002,8069,9200,9300,11211,10000,27017,27018,50000,50070,50030 --banners 202.181.132.0/24 103.15.135.0/24 203.174.48.0/24 203.124.10.0/24 202.65.218.0/24 202.181.196.0/24 -oL port_hacking.txt

1
2
直接加载自定义配置文件进行扫描
# masscan -c masscan.conf

一句话快速锁定各类敏感服务特征:

1
# cat port_hacking.txt | egrep "ProFTPD|vsFTPd|FileZilla Server|Microsoft FTP Service|Pure-FTPd|OpenSSH|Remote Management Console|User Access Verification|Welcome to the server management|imap|smtp|pop|snmp"


0x04 zmap [扫描速度依然是取决于你的实际带宽,不过,在实际测试中准确率要比masscan稍差,同样的目标,masscan能扫出来,zmap却扫不出来,内部具体原因,暂未深究]:

1
其官方站点: https://zmap.io

1
2
3
4
5
6
7
8
9
10
11
12
zmap常用选项 [选项作用其实跟masscan差不太多,只不过zmap默认是tcp模式扫描,如果要用其它的协议扫描就必须自己单独用选项指定]:
[注意:如果你要手工指定扫描选项,就务必先把zmap.conf文件中的所有选项都注释掉,不然会出错,原因暂未知,貌似它默认应该会先读取这个文件,一般我都是直接把它默认的配置文件选项全部注释掉,直接手工指定扫描选项]:
-p 指定要扫描的端口
-b 指定扫描ip黑名单,如,内网ip,我们是不需要扫的
-o 保存扫描结果到指定的文件中
-w 可以把要扫描的ip段事先都放在一个文件中,进行批量扫描,注意格式,一行对应一个ip段
-r 指定扫描发包速率
-B 指定你的实际带宽,比如你带宽10M,实际指定4-6M即可
-C 也可以直接加载自定义配置文件进行扫描
-s 在扫描完成后进行简单汇总
--probe-module=icmp_echoscan icmp模式扫描
--probe-module=udp udp模式扫描

zmap 扫描配置文件格式说明:

1
2
3
4
5
6
7
interface "eth0"   		# 指定用于扫描的网卡接口
probe-module tcp_synscan # 扫描模式,默认是是tcp的syn
target-port 3389 # 要扫描的端口,不知道为什么在配置文件中不能同时指定多个,难道是我格式写错了,回头抽空再好好看看帮助
rate 100 # 设置发包速率
bandwidth 1M # 设置带宽
blacklist-file "/etc/zmap/blacklist.conf" # 指定扫描黑名单ip段[如,内网ip,特殊ip,所有你不想扫描的ip...]
output-file "/root/Desktop/port_res.txt" # 指定扫描结果的存放位置


zmap 常规用法 [ 支持tcp,udp,icmp模式扫描,最好不要挂vpn扫,原因暂未知,即使加上–vpn貌似也不太好使 ]:

1
# zmap -B 1M  -p [21,22,23,25,110,143,80,81,82,83,88,443,445,512,513,514,1433,1521,2082,2083,2181,2601,2604,3128,3690,4848,8088,8086,8081,8080,3306,5432,3389,5984,6379,7001,7002,8069,9200,9300,11211,10000,27017,27018,50000,50070,50030] -b /etc/zmap/blacklist.conf -r 1000 202.181.132.0/24 -o Desktop/port_res.txt


1
# zmap -C /etc/zmap/zmap.conf 202.181.132.0/24  加载自定配置文件进行扫描


0x05 在用上面两款工具时,有些地方还是需要注意下:

1
2
3
4
5
6
实际使用中,最好先根据你的实际带宽估算下最合适的发包速率,因为你的带宽和发包的速率会直接影响扫描结果的准确性
像这类的工具一般对带宽和速率的控制要求比较高,还有,在扫描之前它会预先提示你要扫描多少台机器,机器的多少也是根据你所给的掩码自动算出来的
扫完以后,先随便telnet几个ip的端口,看看精度如何,务必不要过度的依赖这些工具扫出来的结果
不单单是针对这两款工具,对所有工具都是如此,理解作者的实际编写思路比使用工具本身更重要,因为这是灵活运用的前提
即使你暂时还写不出来很优秀的代码,但总有一天你会写出来的,先把自己的基础打好
假如以后你想在这方面继续深入,这些都是很优秀的学习样板,所以过硬的编码能力在任何时候都跑不掉,贵在坚持嘛

0x06 最后再来看下老旧的 nmap,作为一款家喻户晓的探测工具,想必大家对它早已经非常熟悉 [一直为人诟病的是老版本速度非常慢,可能是发包然后等待验证的过程比较复杂吧,不过,新版本确实已经改进不少],一般在linux目标机器中稍微懂一些的运维都会把这个预先装上,这样反而极大的方便了我们:

1
# nmap -v 192.168.3.240  扫描某单个目标[目标可以是域名,ip后者ip段]

1
# nmap -iL ip.txt  	同时扫描多个目标,把目标的ip/ip段事先放在一个文件中,每行对应一个
1
# nmap -Pn 192.168.3.240  	扫描前先不要ping
1
# nmap -sV -v 192.168.3.240  探测远程机器上详细的服务信息,如,详细的名称版本,有banner的可能直接就把banner获取过来了,没banner的可能就慢慢的匹配特征,耗时会相对较长
1
# nmap -O -v 192.168.3.240   探测远程操作系统平台,如内核名称,版本...
1
2
3
扫描自己指定的端口,默认如果你不指定端口,它会自动扫描事先写死在程序中的1000个高危端口
# nmap -p 80,81,82,83,84,1433 192.168.3.189
# nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.3.189
1
2
全面扫描目标主机的所有信息,包括操作系统,端口,服务,相当于-O -sV 的总和……
# nmap -A -v 192.168.3.240
1
2
3
4
5
快速扫描整个C段,速度级别从05,默认用icmp请求,极易被防火墙阻拦
# nmap -T5 -v 192.168.3.240
# nmap -T5 -v 192.168.3.0/24
# nmap -T5 --open 192.168.3.0/24
# nmap -v 192.168.3.1-10
1
# nmap --packet-trace  192.168.3.0/24  观察扫描时的详细发包过程
1
# nmap -sU 192.168.3.240  所谓隐蔽的UDP扫描,其实并不隐蔽
1
2
3
4
几种常用的扫描方式,tcp的syn和ack扫描另外还有connect(推荐用这个)
# nmap -sT 192.168.3.240 个人推荐的扫描方式
# nmap -sS 192.168.3.240
# nmap -sA 192.168.3.240
1
2
内网arp扫描,探测内网存活主机还是非常不错的,可轻易bypass掉各种应用层防火墙,既然是arp就没必要扫端口了,所以记得带上 -sn 选项 禁用端口扫描
# nmap -sn -PR 192.168.3.0/24
1
2
最常用的nmap组合,其实关于nmap的这些基本选项用法,不说大家也应该都早用的熟透了,每个选项参数作用在工具帮助里就已经说的非常清楚
# nmap --open -p port -Pn -v -sT -sV --script script_name ip/domain/cidr

0x07 如何快速对目标网站的一些基本情况做简要判断,如,对方用的什么web服务器,后端脚本是啥,数据库是啥,系统平台又是啥等……,下面就来简单熟悉一些常见的web架构:

1
2
3
4
5
6
asp  + access + iis5.0/6.0 + win2003/03r2
aspx + mssql2005/mssql2008 + iis7.0/iis7.5 + win2008/08r2
php[5.2,5.4,5.6] + mysql[5.1,5.5]/postgresql + apache[2.2,2.4]/iis + linux/win
php/jsp + mysql + ngnix + linux/win
java/jsp + oracle/mssql + tomcat + linux/win
……

利用httprint 识别web目标服务器指纹 [ 其实是个比较鸡肋的一个小工具,一般看下响应头中的server字段就有了,不过,这里的并不准,很容易被改掉 ]:

1
# httprint -h 144.214.20.118 -s ./Desktop/signature.txt

1
2
web服务器指纹字典下载地址:
http://www.net-square.com/signature.txt

常用的几个相对比较实用的firefox插件,自己在配置渗透环境的时候最好都预先装上:

1
2
3
4
5
6
hackbar
tamper data
live http headers
firebug
downthemall
...

使用 whatweb [探测到的信息相对比较全面],返回的结果中大致包括以下内容:

1
2
3
4
5
6
7
8
请求返回的状态码
web服务器版本
ip所在国家
操作系统详细的版本信息
脚本语言版本信息
域名解析到的ip
截取并显示网站标题
等等……

如何快速判断目标使用的系统平台:

1
2
3
在url中尝试变化大小写,进行请求,观察页面响应,windows默认对大小写不敏感,linux则严格区分大小写,所以返回的页面肯定是不一样的
观察各种报错信息,看看里面有没有泄露服务器的相关信息
等等……

0x08 一些常见端口渗透用途汇总:

端口号 端口服务/协议简要说明 关于端口可能的一些渗透用途
tcp 20,21 ftp 默认的数据和命令传输端口[可明文亦可加密传输] 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
tcp 22 ssh[数据ssl加密传输] 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输,等等…常用于linux远程管理…
tcp 23 telnet[明文传输] 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令,也许会有意想不到的收获
tcp 25 smtp[简单邮件传输协议,多数linux发行版可能会默认开启此服务] 邮件伪造,vrfy/expn 查询邮件用户信息,可使用smtp-user-enum工具来自动跑
tcp/udp 53 dns[域名解析] 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
tcp/udp 69 tftp[简单文件传输协议,无认证] 尝试下载目标及其的各类重要配置文件
tcp 80-89,443,8440-8450,8080-8089 web[各种常用的web服务端口] 各种常用web服务端口,可尝试经典的top n,vpn,owa,webmail,目标oa,各类java控制台,各类服务器web管理面板,各类web中间件漏洞利用,各类web框架漏洞利用等等……
tcp 110 [邮局协议,可明文可密文] 可尝试爆破,嗅探
tcp 137,139,445 samba[smb实现windows和linux间文件共享,明文] 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
tcp 143 imap[可明文可密文] 可尝试爆破
udp 161 snmp[明文] 爆破默认团队字符串,搜集目标内网信息
tcp 389 ldap[轻量级目录访问协议] ldap注入,允许匿名访问,弱口令
tcp 512,513,514 linux rexec 可爆破,rlogin登陆
tcp 873 rsync备份服务 匿名访问,文件上传
tcp 1194 openvpn 想办法钓vpn账号,进内网
tcp 1352 Lotus domino邮件服务 弱口令,信息泄漏,爆破
tcp 1433 mssql数据库 注入,提权,sa弱口令,爆破
tcp 1521 oracle数据库 tns爆破,注入,弹shell…
tcp 1500 ispmanager 主机控制面板 弱口令
tcp 1025,111,2049 nfs 权限配置不当
tcp 1723 pptp 爆破,想办法钓vpn账号,进内网
tcp 2082,2083 cpanel主机管理面板登录 弱口令
tcp 2181 zookeeper 未授权访问
tcp 2601,2604 zebra路由 默认密码zerbra
tcp 3128 squid代理服务 弱口令
tcp 3312,3311 kangle主机管理登录 弱口令
tcp 3306 mysql数据库 注入,提权,爆破
tcp 3389 windows rdp远程桌面 shift后门[需要03以下的系统],爆破,ms12-020[蓝屏exp]
tcp 4848 glassfish控制台 弱口令
tcp 4899 radmin远程桌面管理工具,现在已经非常非常少了 抓密码拓展机器
tcp 5000 sybase/DB2数据库 爆破,注入
tcp 5432 postgresql数据库 爆破,注入,弱口令
tcp 5632 pcanywhere远程桌面管理工具 抓密码,代码执行,已经快退出历史舞台了
tcp 5900,5901,5902 vnc远程桌面管理工具 弱口令爆破,如果信息搜集不到位,成功几率很小
tcp 5984 CouchDB 未授权导致的任意指令执行
tcp 6379 redis未授权 可尝试未授权访问,弱口令爆破
tcp 7001,7002 weblogic控制台 java反序列化,弱口令
tcp 7778 kloxo 主机面板登录
tcp 8000 Ajenti主机控制面板 弱口令
tcp 8443 plesk主机控制面板 弱口令
tcp 8069 zabbix 远程执行,sql注入
tcp 8080-8089 Jenkins,jboss 反序列化,控制台弱口令
tcp 9080-9081,9090 websphere控制台 java反序列化/弱口令
tcp 9200,9300 elasticsearch 远程执行
tcp 10000 webmin linux主机web控制面板入口 弱口令
tcp 11211 memcached 未授权访问
tcp 27017,27018 mongodb 爆破,未授权访问
tcp 3690 svn服务 svn泄露,未授权访问
tcp 50000 SAP Management Console 远程执行
tcp 50070,50030 hadoop 默认端口未授权访问


0x09 说了这么多,想必大家应该很清楚这些端口具体该怎么利用了

0x10 最后,在介绍个小脚本,whatportis 专门用来查询某个端口具体作用的

0x11 如果你有兴趣,想针对某个国家网段进行大规模扫描也可以把它写成这样,当然,我这里是随便写的,你要想实际用肯定是远远不够的,单单只是提供个小demo,能自动化的事情还有很多,写个shell还是比较简单的,还是留给大家根据自己的实际需求自行发挥吧,反正工具就在那里,相互配合才能出效果,各自为战是很难有所作为的

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
while read LINE
do
masscan -p 21 --rate=100 $LINE | tee -a 21.txt
done < hk_ip.txt


# tail -f 21.txt
# awk {'print $6'} 21.txt >> result.txt
# nmap -p 21 -iL result.txt -oN ftp_anonymous.txt -v --script ftp-anon.nse


后话:
    关于端口渗透,如果不是你自己写工具的情况下,其实本身使用上并没多少技术含量,至于无状态扫描的具体内部实现还是比较复杂的,至今为止,很多东西我自己也扔在学习中,如果大家真想深入去理解,非常建议自己直接拿着wireshark一边跑一边认真观察分析,没有什么比数据包更能说明问题,篇幅限制,这里我就不一一把每种扫描方式都带着大家跑一遍了,有些东西还是需要自己亲自尝试,不然,别人的东西永远都只是别的,端口这个东西,怎么说呢,有很多运气和经验敏感度的成分在里面,可能还要外加一个高质量的字典,另外,再多说一句,在没有十足的把握的情况下,直接在公网跑字典基本是不太靠谱的,实际测试中,对一些稍有防护的目标,爆破的成率还是蛮低的[虽然低,但往往非常有效,走投无路时不妨尝试],当然啦,对于端口,爆破只是很小的一个方面,比如,当我们发现某个工具或者系统服务存在远程溢出或者代码执行[不仅限于此类的可远程利用的漏洞,任何可以直接远程主动getshell的都可以],还是那句话,如果你手里有某个主流服务的通杀远程0day,不管是你自己挖的还是买的,也许只有这时才能体现端口扫描的真正价值,另外,还有多如牛毛的小工具,这里都没提到,后续涉及到内网时我们再仔细说明,对于公网扫描,有这些,暂时足矣,祝大家好运,切记不要干坏事就好!


Web渗透第一步之信息搜集 [ 找目标内网入口 ]



0x01 为什么要找内网入口:
    我们渗透的最终目的大多数都是目标内网,有些核心敏感数据(比如,个人机上的一些数据),我们从边界机器是拿不到的,所以,只能深入内部,当然,这里所指的内部文件数据,并不仅限于数据库,邮件这类数据,可能由于各种各样的需求,我们还需要某些个人的数据或者组织的各种业务数据,技术的各种数据等等,一般情况下,渗透web的目的,很大程度上也是希望能从web边界直接进入到目标内部(内网),对于apt来讲,价值比较高的东西基本也全部在内部,不得不承认的是,有时候公开信息调研确实也能找到部分敏感信息,但那个含金量和时效性就远远不如内网中的了,至于如何深入到目标内部,很大程度上也取决于,我们能不能尽可能多的找到目标可能的内网入口

0x02 第一种,通过vpn进入目标内网[一般都会提供一个web端的443端口表单验证]:
    vpn,想必大家都已经非常熟悉了,在前面也已经详细说明过它的用途,除了能帮我们翻墙当跳板之外,对于一些大型目标组织或是跨国公司,他们大部分都会选择利用vpn的方式来协作办公,通过vpn在公网上开辟一条专有通道,以方便公司内部的各种业务处理,但有个前提,你要想进入这条通道,必须有正确的vpn账号密码和vpn服务器地址,登陆成功后,才能处在目标的内网中,重点也就在这里,怎么搞到目标的vpn账号密码呢,嘿嘿……方法比较多,例如,发信钓鱼,搜集目标泄露过的各种配置文件,社工撞库……

0x03 利用各类邮件程序自身的漏洞尝试从web边界进入目标内网
    下面就简单介绍一种常见的web邮件程序,[这里为什么一定要是邮件程序呢,不同于普通的web网站,普通的web服务器有时候即使拿到shell,但有可能机器并不在内网或者该机器上根本没有内网网卡,但邮件服务器一般都被会用来处理内部实际业务,从个人经验来看,web邮件程序的机器,绝大部分都在内网]:

    owa 微软自家的exchange服务,企业为了便于统一协作管理,一般都会直接把exchange服务部署在域内,邮箱名称和邮箱密码大部分也直接是域内的系统账号密码,可以直接拿来登陆域内系统,当然,vpn也是可以尝试的,关键还是看目标具体是怎么部署的了,至于,如何搞到目标的owa的账号密码,嘿嘿……后面再总结吧,包括命令行邮件导出成pst文件,如果目标部署的有exchange server 一般直接访问下/owa/auth即可看到,服务被部署好以后管理员没有特殊情况基本就不怎么会关注/owa/auth目录下的文件了,所以当你拿到权限后,在这儿放个webshell,还是很靠谱的,一般都是web的443端口,另外,对于owa本身几乎是没什么漏洞的

1
2
3
4
5
6
owa的一般入口如下:
https://remote.bmtjfa.com.au/owa/auth/logon.aspx机器在域内的情况
https://mail.advancedptsm.com/owa/auth/logon.aspx机器不在域内的情况

如果没有删的话,可以访问下面的路径爆出服务器信息:
https://mail.xxx.com/owa/auth/test.aspx
1
2
3
4
Mirapoint邮件系统:
ShellShock漏洞,漏洞地址如下:
http://xxxx.com/cgi-bin/search.cgi
http://xxxx.com/cgi-bin/madmin.cgi
1
2
3
KerioConnect 邮件系统:
一般后台只能内网访问,入口如下:
https://mail.xxx.com:4040/admin/login/
1
2
3
Zimbra 邮件系统: 
本地包含,入口:
https://webmail.xxx.com:7071/zimbraAdmin/
1
2
查看zimbra版本:
https://webmail.xxx.com/help/zh_CN/standard/version.htm
1
2
3
Atmail 邮件系统: 
敏感信息泄露问题[数据库账号密码]:
http://www.xxx.com/config/dbconfig.ini
1
2
Lotus Domino Webmail:
越权访问,inurl:.nsf/WebHelp/!OpenPage
1
2
3
TurboMail邮件系统: 
默认配置不当可进入任意邮箱,默认有四个root域账号,一个管理员,三个普通用户
由于设置缺陷,导致普通用户可以查看任意用户的密码
1
2
U-mail:
sql注入,可写shell
1
2
WinMail:
非授权访问/权限绕过
1
2
ExtMail :
老版本注入
1
SquirrelMail

0x04 找目标的oa系统或者图书馆之类的网站以及各种边界网络设备的web管理端[一般像这些东西跟内网的联系比较大]:
    oa本来就是为了方便员工远程办公,处理公司各种业务用的,但,这也给我们提供了通往目标内部的入口至于,为什么非要选则图书馆,目的很显然,既然是图书馆,你肯定会想到内部的什么图书管理系统,实际经验也证明,大多数图书馆的站,都会处在内网中找各种网络设备的web管理端,主要是想登进去以后,看看有没有可以上传shell的地方,也许可以利用得到

0x05 在你能力足够的情况下,直接搞路由也是可以的[比如,cisco,端口镜像,抓包分析,说实话自己对路由并不是非常擅长]:

1
路由作为一种边界设备,搞它的意义就不用再多说了吧

0x06 暴露在边界的目标打印机,智能点儿的打印机都会自带一些web服务[通常是java]:

1
打印机,就更不用说了,典型的内部设备,一般是先找到配置管理界面,部署war包

0x07 如果实在外部搞不定,条件允许的情况下,尝试实地渗透也是可以的,比如,通过无线进入目标内部
    这也算是一种相对比较高效的渗透方式,老外非常干这个,但前提是,你可能需要很多次的蹲点,才能确认目标,实地渗透对你的心里素质要求可能会更高一些,另外,现场的环境和有限的时间也多多少少会影响到你

一些小结:
    时间原因,暂时就想到这些,都是一些平时的经验加上一点自己的想法,其实,就整个信息搜集来讲,对你的社工能力其实是个不小的考验,我自己在这方面确实是弱项,后续会慢慢加强


信息搜集阶段可快速Getshell的一些方式



1
2
3
4
5
6
7
8
9
10
针对各类开源程序的一些老exp
各远程执行类漏洞,如,Struts2,iis,tomcat,proftp,elasticsearch...
各种敏感文件下载泄露,如,各类备份下载,敏感配置文件泄露,后端脚本源码泄露,svn泄露...
针对各类服务的未授权访问
各类web及服务入口弱口令,万能密码...
各类后门,如,别人的webshell,古老的shift后门,等等……
bash远程执行,心脏滴血...
win smb系列远程执行漏洞,如,ms17-010
目标的各类vpn及mail账号密码泄露
...



熟练使用各类敏感目录文件扫描工具



0x01 wwwscan 实际测试速度还可以,编码 [应该是cmd默认的编码问题gbk] 貌似还有些问题,另外,程序写的有些过于死板,异常处理不太到位,误报稍微有些严重:

1
2
3
4
5
-p 	指定目标web端口,因为有些web服务并非工作在默认的80或者8080上,需要手工指定目标的web服务端口
-m 指定扫描使用的最大线程,不要太大,实际中15到20就差不多了
-t 指定请求的超时时间
--ssl 扫描https站点时记得加上此选项
-r 指定网站根目录,有些站点程序是放在web目录下的一个子目录中的,这时就需要你自己手工指定目标网站根目录

Read More >>>


快速搜集目标的各类Web管理入口,敏感目录,文件及错误配置



0x01 下面是自己找网站后台的一些常规办法[注意,对于找后台主要都是针对一些非开源web程序,如果是开源程序,直接把代码down下来看下目录结构,不就什么都有了,何苦找呢]:

1
2
3
4
5
6
7
8
9
10
11
首先,看看目标站自己的前端页面上,有没有给我们提供后台入口,很多脑残的政府和学校站很可能都会这么干,直接把后台入口丢在前端页面上,你方便,别人也方便
尝试访问目标的robots.txt文件,如果有的话,看看里面有没有后台或者上传点之类的敏感目录,至于robots.txt文件本身的作用,大家请自行谷歌,这里就不多做解释了
习惯性的盲打一些常见的后台目录名,如:/admin/,/manage/,/cms/,/system/,/administrator/,/wp-login.php,/control/等,记得大小写变换下多试几个……
使用各类基于字典的目录爆破及爬行工具,如:dirb,wwwscan,cansina,uniscan,破壳以及其它的各种py脚本,非常多,现在也有很多在线的目录爆破工具站,这类的工具其实并没什么太多的技术含量,实际效果还得取决于你的字典质量和目标的防护程度,抛开防护先不说,起码网站敏感目录文件字典要好好花点儿时间精心准备
"cscan"谷歌浏览器小插件,速度快,误报极高,具体原理,本人暂时还没弄明白,不过可以尝试下,自己用的比较少,记得有一次实在没办法就就抱着侥幸试了一下,结果真就跑出来了,可能是运气吧
对于大型站点,可利用之前提到的google hacking,这里就不细说了,请仔细看前面的说明
用各种wvs爬,也许也能爬出来一些,关于这类web漏洞扫描器的具体使用,后面会有详细说明,这里就先不细说了,例如: awvs,appscan,netsparker……
如果是windows的话,不妨尝试下短文件漏洞扫描工具,鸡肋的是,它只能扫出前6个字节(6个英文字符),也就是说你只能看一部分猜一部分,好处在于前6个字节起码是绝对正确的
配合网站的域名或者业务社工,比如:商城站一般我们会想到什么呢,shop?,有的后台目录也可能是依据目标域名的各种变形,多尝试……
尝试各种万能密码,虽然很low,但很直接,存在万能密码问题的程序毕竟也不在少数,如:phpmyadmin 2.11.3-2.11.4 等……
如果实在找不到,就想想办法直接问管理员吧,至于套不套的出来,就要看你自己的本事了,嘿嘿……

0x02 除了一些常规网站后台入口,我们也可以尝试各种java web入口,尤其是针对各种java控制台的,当然,前提是目标要有,基本进去后,shell权限都非常大:

1
2
3
4
5
6
tomcat[默认端口8080 需要用户名密码,还是那句话多尝试些弱口令,进去以后上传war马]
jboss [默认端口8080无需任何验证,进去以后上传war马]
weblogic [默认端口7001,实际很多是在8080上,进去以后上传war马]
Websphere[默认端口9043,实际很多是在8080上,进去以后上传war马]
webmin[web版的服务器管理工具,默认端口10000,可以把它当做图形版的ssh管理工具]
……

0x03 查找其它的各类敏感文件目录,自己所说的敏感文件及目录一般包括如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
网站源码备份文件,数据库备份文件,配置文件备份等...一般命名都是类似wwwroot.zip,wwwroot.sql这种的,建议直接用专门的备份的字典跑
目标服务器的各种探针类文件,例如:phpinfo.php,test.asp,info.aspx……
目标网站的物理路径,注意物理路径和网站路径的区别,网站路径都是以www为根目录,而物理路径则是指系统某个分区下的绝对路径,如:c:\windows\system32 /usr/local/lib
网站后台目录,上传目录,如: 各类上传点,各类漏洞编辑器中的敏感路径
网站数据库连接配置类文件
各类数据库的web管理入口,例如:phpmyadmin,adminer……之流
目标网站后台脚本源码泄露及各种各样的网站报错信息
svn 文件泄露如,.svn,用户命令历史文件泄露,如,.history...
其它各种第三方服务的核心配置文件,里面可能会有用户密码……例如:cisco vpn,ser-u……
目标内部的各种账号密码信息,并不仅限于邮箱,vpn,ftp……
web服务器配置错误所导致的目录遍历
别人的webshell,目录扫描工具对这个的扫描似乎不太靠谱,因为有些shell隐藏的比较深,所以还是建议直接用google爬各种webshell特征
……

0x04 另外,还有一些目标内部的OA系统入口,不过这些通常都不在常规的web端口上,又该怎么办呢,其实,很多情况下,你可以习惯性的尝试访问以下目标的81,82,83,86,88,8081,8082,8088这样的web端口,说不定就会有惊喜:

1
2
3
在目标防火墙没有开启的情况下,可以用一些之前介绍过的公网端口扫描工具,进行全端口扫描,然后根据扫到的结果,看着可能是web端口的,再尝试在浏览器中逐个访问
如果目标开起了防火墙[waf],除了谷歌,或者直接在目标网站上找找,基本也就没谁了,扫可能是不太现实的,嘿嘿……如果大家有更好的思路也期待能一起交流
……

0x05 搜集目标的各种元数据,如果能搜集到一些有用的账号密码,自然是最好不过了

1
foca 工具除了挖掘各种元数据之外,包括目标子域识别,服务器错误配置,web高危扫描……功能还是非常好用的,尤其是针对大中型站点,效果相对比较明显



小结:
    对于后台查找自己知道的基本也就这么多了,如果实在找不到,不妨换换别的思路,web只是我们渗透过程中的其中一个入手点,却不是唯一的入手点,别太死板就行,更多手法,也期待能和大家一起交流学习



熟练利用 Shodan Hacking 辅助我们快速渗透[ 大中型目标 ]



0x01 shodan 是什么 :

1
2
3
4
5
6
7
同样是搜索引擎,但它并不像谷歌,bing...那样,只单单针对web 中的各类html数据进行爬取
shodan 是基于各类在线网络设备的旗标的全网搜索
如,各类边界网络摄像头,路由器,交换机... ,中间件服务[如,各类web服务器,数据库,分布式中间件,文件共享服务等...]
默认只能看到一部分搜索结果,具体是多少条已经忘记了
可能需要付点费才能看到更多的搜索结果,同样它也提供查询api,这就非常方便按照我们自己的扫描需求定制脚本
在渗透一些特定的网络设备或者自己手握0day批量打的时候还是非常好使的,俗称"工控设备渗透"
...

0x02 那,我们到底可以用它来干些什么呢

1
2
3
4
5
6
利用0day实施大规模批量入侵,前提是不要把自己的0day撞到别人的蜜罐里面去了,否则就可惜了
全网批量统计所有感染有某一数据特征的后门,可以专门用来检测某种定向攻击
批量扫描各种中间件的高危错误配置及能被远程利用的各类已知漏洞,也就是说完全可以把它当成一个高级的漏洞扫描器来用
批量探测各种弱口令
批量抓各种shell [ 不仅限于webshell,backdoor ... ]等……
...

0x03 关于shodan本身的更多详情,请直接参考其官方站点 [注册个账号是必须的]:

1
https://www.shodan.io/

0x04 跟google hacking一样,shodan也有一套属于自己的语法规则,下面是shodan 内置的几个简单过滤器:

1
2
3
4
5
6
7
8
city:   	城市,貌似只支持英文,而且不是能是简称,如,TOKYO,Hong Kong,Seoul...
country: 指定国家或地区后缀,比如:cn,us,jp,tw,br,ph,vn,hk...
hostname: 指定主机名,其实就是目标域名[域名如果是子域还需要在前面加个.]
net: 指定网络范围,可以是单个ip或者cidr格式的ip段
os : 指定操作系统 centOS,win32,red hat,suse 等...
port: 指定端口,HTTP (80),FTP (21),SSH (22),SNMP (161),SIP (5060)等...
product: 指定具体的产品名称,如,各类web服务器,数据库服务器,网络设备名称等...
...

0x05 下面是一些简单的搜索实例:

1
2
3
4
5
6
7
8
9
搜集某个城市的特定设备 [这里暂以不同类型的web服务器为例] 标识 [自己可以事先多收集一些常见的软件和设备标识]:
Microsoft-IIS/5.0 city:"TOKYO" 可逐个尝试能否直接写shell
Microsoft-IIS/6.0 city:"Seoul" 可逐个尝试能否直接 RCE
Microsoft-IIS/7.5 city:"Hong Kong"
apache city:"Nagoya"
Apache/2.2.27 city:"Nagoya"
Tomcat city:"Seoul" 可逐个尝试能否直接 RCE
cisco city:"Osaka"
tplink city:"nanjing"


1
2
3
4
5
6
搜索特定版本的操作系统及端口:
os:"linux" net:"72.34.62.0/24"
os:"windows" net:"195.40.91.0/24"
Apache city:"Hong Kong" port:"8080" product:"Apache Tomcat/Coyote JSP engine"
Apache city:"Seoul" port:"8080"
hostname:".polyu.edu.hk" os:"windows"


1
2
3
4
5
6
搜索指定国家地域特定类型的工具服务 (还是那句话,多搜集一些高质量的工具banner):
product:"tomcat" net:"158.132.18.0/24"
product:"apache" net:"158.132.18.0/24"
product:"iis" net:"158.132.18.0/24"
port:"8080" jboss country:CN
port:"8080" jboss country:IN


1
2
3
4
5
6
扫描指定网段内的所有特定数据库服务器:
product:"Mysql" net:"140.117.13.0/24" port:"3306"
port:"1433" net:"78.131.197.0/24"
port:"5432" net:"77.55.149.0/24"
port:"1521" net:"78.143.192.0/12"
port:"1521" city:"Osaka"


1
2
3
4
5
搜索特定远程管理终端端口:
os:"windows" port:"3389" net:"107.160.1.0/24"
os:"linux" port:"22" net:"107.160.1.0/24"
os:"linux" port:"23" net:"107.160.1.0/24"
os:"linux" port:"23" net:"87.124.0.0/15"


1
搜各类路由的特定web管理端口:
1
2
3
搜索ftp / tftp :
port:"21" net:"107.160.1.0/24"
port:"69" net:"218.242.16.0/24"
1
2
3
4
5
6
7
8
9
10
在某个城市中搜索指定的端口,操作系统及在线网络设备:
city:"Hong Kong" port:"69"
city:"Hong Kong" port:"3389"
city:"Hong Kong" port:"22"
city:"Hong Kong" port:"23"
city:"Hong Kong" port:"3306"
city:"Hong Kong" port:"110"
city:"Hong Kong" os:"windows"
city:"Hong Kong" product:"cisco"
city:"Hong Kong" port:"8080"


1
2
3
4
5
6
7
8
9
10
11
搜索指定国家的特定设备,端口,服务器:
port:"23" country:CN
port:"1433" country:CN
port:"3389" country:CN
tplink country:CN
huawei country:CN
netcam country:CN
country:CN net:"115.225.113.0/24" port:"22"
country:CN router
admin login country:HK
hacked by country:HK


1
2
3
搜缺省密码:
"default password" city:"Hong Kong"
country:CN "default password"
1
2
搜exp[其实,就是把exploit上的东西扒下来]:
https://exploits.shodan.io/welcome
1
2
搜索各类漏洞摄像头:
netcam net:"187.189.82.0/24"
1
批量搜集一些开源web程序,尝试0day批量利用:
1
针对某个端口,批量搜集感染了某种数据标志的木马:
1
批量搜集一些经典漏洞尝试利用,比如:iis,tomcat,jboss... RCE,心脏滴血,bash远程执行,等等……:

0x06 下面是一些常见的默认用户名密码,可以尝试撞撞运气:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ACTi: admin/123456 or Admin/123456
Axis (traditional): root/pass,
Axis (new): requires password creation during first login
Cisco: No default password, requires creation during first login
Grandstream: admin/admin
IQinVision: root/system
Mobotix: admin/meinsm
Panasonic: admin/12345
Samsung Electronics: root/root or admin/4321
Samsung Techwin (old): admin/1111111
Samsung Techwin (new): admin/4321
Sony: admin/admin
TRENDnet: admin/admin
Toshiba: root/ikwd
Vivotek: root/<blank>
WebcamXP: admin/ <blank>

1
2
3
4
5
关于shodan 的入门用法到这里基本就差不多了,建议大家如果真的想用好,可以付点费自己写脚本,当然,你也可以直接用别人提供好的py shodan库
国内利用此api衍生出来的工具还是蛮多的,这里就不一一细说了
总之来讲,批量抓shell效果还是非常不错的
从上面我们也不难发现,利用的核心还是各种特征 [banner] 质量加上你自己的想象力,因为它直接决定了你的命中率
...

0x07 另外,再介绍两个国内的小工具站,使用非常简单,纯图形化的,这里就不细说了:

1
2
3
https://www.punkspider.org/   在线web漏洞扫描
http://ics.zoomeye.org/ 基于shodan实现
...

0x08 最后再提下bing(目前已经费掉了,很多人的C段旁站工具想必都是基于此api写的),下面是常见使用方法:

1
ip:ip地址    它就会把这个ip所对应的所有域名都列出来

0x09 基于此api的各种C段旁站工具编写原理:

1
2
3
4
编写过程其实也很简单,就是把bing搜索的结果格式化截取输出一下
不过,在此之前你需要事先去bing申请一下搜索用的api
去微软的开发者中心申请一个即可
如果旁站能想通,那么C段也只不过是把254台机器在线的ip又轮训一遍而已,我想你应该懂了


0x10 一点小结:
    关于google和shodan的用法,大概就介绍到这里了,使用都比较简单,基本就是几个过滤器来回的组装,随意的根据自己的实际需求拼装特征,说道底,还是看大家的想象力和对现有信息特征的敏感度,大家也看到了,如果完全手工的话,确实挺累的,为什么不写成自动化的脚本来帮我们完成呢,当然,这类的工具也有很多现成的,不过并不是按照咱们的想法来的,所以,最好自己动手……不过在写脚本之前,自己首先要能熟练使用才是,这样写出来的工具杀伤力才能更大些,当然,关于这类web搜索引擎所能产生的渗透效果的强弱,主要是还是看搜索引擎对目标收录的多少,如果目标站点建立的时间比较长,而且各大搜索引擎的收录量也比较好的话,这时候你利用谷歌固然成效显著,但如果一个站点刚建立不久,谷歌收录量也非常少,这时谷歌对你来讲也许就只是个摆设,这里说到的内容可能还只是各个搜索引擎利用的冰山一角,更多更强大的功能,还要靠大家一起来慢慢挖掘,对了,最后再说明一点,用这些搜索引擎的时候,最好全程挂上vpn,推荐美国的,原因大家应该都明白,自家人对自家人的限制几乎是最少的,不要问我为什么不介绍百度没办法,太不堪(原因大家都懂……)



0x10 一点心得:
    一般我们在搜索引擎上搜集目标信息的时候,首先,应该直奔一些比较高危的漏洞特征,比如能快速getshell的,比如,默认账号密码,进去以后就只可以直接传shell的,此外,如果目标有支持jsp脚本的机器,我们首先就应该从jsp开始入手,因为jsp程序的权限一般都非常高,几乎是服务器的管理员权限,所以我们平时在搜集信息过程中,也尽量先找一些最好能直取权限的信息,孰轻孰重,自己心里一定要有分寸,这样可以避免我们做太多的无用功,当然,如果你手上有个开源的web程序未公开的0day,然后配合类似的搜索引擎利用,那结果可想而知,反正我们利用各种搜索引擎的最终目的无非就是想尽快找个目标边界先进去……


熟练利用Google Hacking来辅助我们快速渗透



0x01 google hacking 几个基础过滤器用途简介[说在前面的话,过滤器是死的人是活的,实际用的时候把脑洞放开,尽你所能拼装,才有可能达到超预期效果]:

1
2
3
4
5
6
7
intitle:     从网页标题中搜索指定的关键字,可专门用来搜索指定版本名称的各类web程序,也可用allintitle
inurl: 从url中搜索指定的关键字,可专门用来构造各种形式的漏洞url,也可用allinurl
intext: 从网页中搜索指定的关键字,经常会用它来穿透到漏洞页面……也可用allintext
filetype: 搜索指定的文件后缀,例如:sql mdb txt bak backup ini zip rar doc xls……
site: 在某个特定的网站内中搜索指定的内容
link: 搜索和该链接有关联的链接,比如:友情链接
index of: 找目录遍历时也许会用到

0x02 google hacking所支持的一些通配符(建议选择性的用,因为越精确,也意味着能搜到的结果越少,这样容易漏掉一些有价值的目标,我们最终目的还是希望能尽快找到有漏洞的站先进去再说):

1
2
3
4
5
6
+   强制包含某个字符进行查询
- 查询的时候忽略某个字符
"" 查询的时候精确匹配双引号内的字符
. 匹配某单个字符进行查询
* 匹配任意字符进行查询
| 或者,多个选择,只要有一个关键字匹配上即可

0x03 找各种web入口,当然,这里所指的web入口并非仅限于各种常规网站后台[说到网站后台,一定要手工多尝试几个路径,实在猜不到,再用字典跑,节省时间]:

1
2
如一些疑似目标内网的各种web管理系统入口,web端的数据库管理入口,某些设备的web端配置入口,以及一些常见的java控制台入口等等...
反正只要你觉得进去以后能上传脚本的地方全部都可以尝试,东西在你手里,可劲儿用就是了

搜集各版本tomcat入口[默认在8080端口上]:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat 		直接这样搜结果肯定会非常多
intext:$CATALINA_HOME/webapps/ROOT/ inurl:8080/ 我们可以带指定端口号去搜,因为有些web并非在默认端口上,这样搜的话,可以尽量防止有漏网之鱼
intext:$CATALINA_HOME/webapps/ROOT/ intitle:Apache Tomcat/5.5.27 site:*.hk 针对特定版本特定国家去搜,比如爆出某个版本有远程执行类的漏洞就可以利用这种方式来批量进行
intext:$CATALINA_HOME/webapps/ROOT/ intitle:Apache Tomcat/7.0.32 site:*.gov.br
intext:$CATALINA_HOME/webapps/ROOT/ intitle:Apache Tomcat/5.0.12 site:*.cn
intext:$CATALINA_HOME/webapps/ROOT/ intitle:Apache Tomcat/6.0.24 site:*.com
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:*.edu.*
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:*.gov.* 搜特定类型的目标站点,如,学校一般都是edu,各种民间组织一般都是org,政府机构一般都是gov……
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:*.org.*
intext:$CATALINA_HOME/webapps/ROOT/ intitle:Apache Tomcat/7.0 site:*.org.*
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:*.jp
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:*.vn
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:*.ph
intext:$CATALINA_HOME/webapps/ROOT/ intitle:Apache Tomcat site:*.uk
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:baidu.com 无意发现百度的某个子域,竟然是个博彩站
intext:$CATALINA_HOME/webapps/ROOT/ intitle:apache tomcat site:org.tw


搜集weblogic入口:

1
2
3
inurl:/console/login/LoginForm.jsp  	这样范围太大,可根据上面的示例随意变形
inurl:/console/login/LoginForm.jsp intitle:Oracle WebLogic Server
inurl:/console/login/ intitle:"Oracle WebLogic Server 管理控制台"


搜集jboss入口:

1
2
3
4
inurl:/jmx-console/htmladaptor
inurl:/jmx-console/htmladaptor site:*.edu.*
inurl:/jmx-console/htmladaptor site:*.org.*
inurl:/jmx-console/htmladaptor site:*.tw


搜集websphere入口:

1
inurl:/ibm/console/logon.jsp


搜集phpmyadmin入口:

1
2
3
4
5
6
inurl:/phpMyAdmin/index.php 
inurl:/phpMyAdmin/index.php db+information_schema 指定命中数据
inurl:/phpMyAdmin/index.php intext:phpMyAdmin 2.7.0 直接针对特定版本号去搜索,更加精准
inurl:/phpMyAdmin/index.php site:*.tw
inurl:/phpMyAdmin/index.php site:*.org
inurl:/phpMyAdmin/index.php site:*.hk


批量搜集webmin入口[其实就是一个web版的linux系统管理工具,默认情况下工作在web端的10000端口上]:

1
intitle:Login to Webmin intext:"login to the Webmin server on"


批量搜wordpress程序[关于wp的特征比较多,大家可自行构造]:

1
2
3
inurl:/wp-login.php  site:*.hk
index of /wp-content/uploads inurl:/wp-login.php
inurl:/wp-content/themes/theagency 上传漏洞


批量搜joomla程序:

1
2
3
4
5
inurl:/administrator/index.php
inurl:index.php?option=com_advertisementboard 找注入
inurl:index.php?option=com_carocci
inurl:index.php?option=com_product
inurl:/administrator/index.php site:*.hk


批量搜drupal程序:

1
inurl:CHANGELOG.txt intext:drupal intext:"SA-CORE" -site:github.com -site:drupal.org

批量搜discuz程序:

批量搜集opencart程序:

批量搜集phpbb程序:

更多…

当然,你也可以根据下面的一些特征去找特定的开源程序[这种命中率显然没有直接用特征目录的命中率高]:

1
2
3
4
5
6
power by wordpress                powered by discuz x3.2
powered by phpcms 2008 powered by drupal 7
powered by dedecmsv57_gbk powered by CubeCart 3.0.6
Powered by phpBB 2.0.6 powered by paBugs 2.0 Beta 3
inurl:wp-login.php inurl:/administrator/index.php
inurl:/admina.php

批量搜集目标是否用了一些存在漏洞的邮件程序[不一定有,多尝试,反正是搜集,找到东西价值越高越好]:

1
2
3
owa:
inurl:/owa/auth/logon.aspx
inurl:/owa/auth/logon.aspx site:*.org.*

1
2
3
mirapoint(ShellShock):
inurl:/cgi-bin/search.cgi site:*.org.*
inurl:/cgi-bin/madmin.cgi


1
2
3
Zimbra(本地包含):
inurl:7071/zimbraAdmin/
inurl:/help/en_US/standard/version.htm
1
2
3
4
5
6
7
Atmail(用于连接数据库的配置文件泄露):

TurboMail(配置错误,进入任意邮箱):

U-mail(注入&getshell):

Lotus Domino Webmail(越权访问):

批量找常规网站后台[下面的php也可以换成asp,aspx,jsp 多次尝试,因为每个国家对后台的命名习惯各有特色,所以,这里只列举了一些相对命中率比较高的,找到后台以后,记得习惯性多尝试几个弱口令,万能密码未授权之类的东西]:

1
2
3
4
5
6
7
8
9
10
11
12
13
inurl:/manager/login.php site:*.jp
inurl:/cms/login.php site:*.jp
inurl:/manage/index.php site:*.jp
inurl:/system/login.php site:*.jp
inurl:/webadmin/login.php site:*.tw
inurl:admin_login.php intitle:admin login
inurl:admin_login.php intitle:admin page
inurl:/admin/login.php site:*.tw
inurl:/admin/index.php site:*.tw
inurl:/system/adminlogin.asp site:*.tw
inurl:/manage/login.aspx site:*.tw
inurl:/sysadm/index.php site:*.com
……


找svn泄露[运气好说不定能脱到密码]:

1
2
3
4
inurl:/.svn/entries 
inurl:/.svn/entries site:*.org.*
inurl:/.svn/entries site:*.gov.br
inurl:/.svn/entries site:*.hk


批量找目标的后台未授权访问:

1
2
3
4
5
intext:"Website Design & Developed By : WebSay"  默认后台/admin
intext:"Powered by ENS Consultants" 默认后台/admin/login.php
intext:"Desenvolvimento - MW Way" 默认后台/admin/index.php
inurl:.php?id= intext:"Web realizada por Soma Estudio"
inurl:/_mycps/login.php

批量找弱口令:

1
2
3
intext:"design by weli"   默认后台: /adm/login.php 除了弱口令还有注入
username : linjizen@gmail.com
password : lin719192

尽可能多的找到能够利用的各种上传点[比如:各种典型的漏洞编辑器地址,ck,kindeditor,fck,ewebeditor……]:

1
2
3
4
5
6
7
8
9
10
11
12
13
intext:" Powered by JADBM "   JADBM Cms upload shell 注册后登陆上传即可
inurl:"/index.php/frontend/login/en" Estate cms upload shell 注册后登陆上传即可
inurl:/Content/Roxy_Fileman/ 该路径下直接就是上传点
index of:"filemanager/dialog.php" 该脚本就是上传脚本直接上传即可
intext:"Desenvolvido por Webnet Soluções Tecnológicas." fck上传
inurl:"subir_foto.php" 上传点
inrul:"/imce?dir=" intitle:"File Browser"
inurl:"Powered by Vision Helpdesk 3.9.10 Stable" 注册后登陆进去编辑个人配置上传
index of /admin/fckeditor site:*.tw
inurl:/ewebeditor/ site:*.tw
inurl:/admin/upload_file.php
inurl:/admin/upfile.php
inurl:/admin/upload.asp

找到可能存在包含和命令执行类的漏洞的一些典型参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
inurl:footer.inc.php?settings=
inurl:/pb_inc/admincenter/index.php?page=
inurl:/pnadmin/categories.inc.php?subpage=
inurl:/index.php??view=src/sistema/vistas/
inurl:/edit.php?em=file&filename=
inurl:/path_to_athena/athena.php?athena_dir= 远程包含
inurl:/path_to_qnews/q-news.php?id= 远程包含
inurl:/inc/backend_settings.php?cmd=
inurl:login.action strus2系列执行漏洞利用
inurl:php?x= inurl:php?open=
inurl:php?visualizar= inurl:php?pagina=
inurl:php?inc= inurl:php?include_file=
inurl:php?page= inurl:php?pg=
inurl:php?show= inurl:php?cat=
inurl:php?file= inurl:php?path_local=
inurl:php?filnavn= inurl:php?HCL_path=
inurl:php?doc= inurl:php?appdir=
inurl:php?phpbb_root_dir= inurl:php?phpc_root_path=
inurl:php?path_pre= inurl:php?nic=
inurl:php?sec= inurl:php?content=
inurl:php?link= inurl:php?filename=
inurl:php?dir= inurl:php?document=
inurl:index.php?view= inurl:*.php?locate=
inurl:*.php?place= inurl:*.php?layout=
inurl:*.php?go= inurl:*.php?catch=
inurl:*.php?mode= inurl:*.php?name=
inurl:*.php?loc= inurl:*.php?f=
inurl:*.php?inf= inurl:*.php?pg=
inurl:*.php?load= inurl:*.php?naam=
allinurl:php?page= allinurl:php?file=
inurl:php?x= inurl:admin.php?cal_dir=
inurl:php?include= inurl:php?nav=
inurl:*.php?sel= inurl:php?p=
inurl:php?conf= inurl:php?prefix=
inurl:theme.php?THEME_DIR=
inurl:php?lvc_include_dir=
inurl:php?basepath= inurl:php?pm_path=
inurl:php?user_inc= inurl:php?cutepath=
inurl:php?fil_config= inurl:php?libpach=
inurl:php?pivot_path= inurl:php?rep=
inurl:php?conteudo= inurl:php?root=
inurl:php?configFile inurl:php?pageurl
inurl:php?inter_url inurl:php?url=
inurl:php?cmd= inurl:path.php?my=
inurl:php?xlink= inurl:php?to=
inurl:file.php?disp=

找可能存在数据库注入各种参数:

1
2
inurl:categorysearch.php?indus=
intext:"樂天台東民宿網" inurl:news_board.php

小商城类:

1
2
3
4
5
6
7
8
9
10
inurl:".php?catid=" intext:"View cart"
inurl:".php?catid=" intext:"Buy Now"
inurl:".php?catid=" intext:"add to cart"
inurl:".php?catid=" intext:"shopping"
inurl:".php?catid=" intext:"boutique"
inurl:".php?catid=" intext:"/store/"
inurl:".php?catid=" intext:"/shop/"
inurl:".php?catid=" intext:"Toys"
inurl:details.php?BookID=
inurl:shop.php?do=part&id=

普通cms类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
inurl:article.php?ID=        inurl:newsDetail.php?id=
inurl:show.php?id= inurl:newsone.php?id=
inurl:news.php?id= inurl:event.php?id=
inurl:preview.php?id= inurl:pages.php?id=
inurl:main.php?id= inurl:prod_detail.php?id=
inurl:view.php?id= inurl:product.php?id=
inurl:contact.php?Id= inurl:display_item.php?id=
inurl:item.php?id= inurl:view_items.php?id=
inurl:details.asp?id= inurl:profile.asp?id=
inurl:content.asp?id= inurl:display_item.asp?id=
inurl:view_detail.asp?ID= inurl:section.php?id=
inurl:theme.php?id= inurl:produit.php?id=
inurl:chappies.php?id= inurl:readnews.php?id=
inurl:rub.php?idr= inurl:pop.php?id=
inurl:person.php?id= inurl:read.php?id=
inurl:reagir.php?num= inurl:staff_id=
inurl:gallery.php?id= inurl:humor.php?id=
inurl:spr.php?id= inurl:gery.php?id=
inurl:profile_view.php?id=
inurl:fellows.php?id= inurl:ray.php?id=
inurl:productinfo.php?id=
inurl:file.php?cont= inurl:include.php?chapter=
inurl:principal.php?param=
inurl:general.php?menue= inurl:php?pref=
inurl:nota.php?chapter= inurl:php?str=
inurl:php?corpo= inurl:press.php?*[*]*=

除了上面这些常规找注入的方式,你不妨还可以像下面这样,直接在网页标题中搜SQL语句,说不定也会有收获哦,web万能的谷歌:

1
intitle:注入常用的一些sql语句,比如:常用的union,substr(),select等等……

批量搜集万能密码(其实也属于sql注入的一种):

1
2
3
inurl:"wladmin/login.asp"  
Username : '=' 'or'
Password : '=' 'or'

1
2
3
intext:POWERED BY Versatile Software Services       默认后台/alogin.aspx
User ==> 'or''='
Pass ==> 'or''='
1
2
3
inurl:/media.php?hal=login
Email: '=''or'@gmail.com
Pass: '=''or'
1
2
3
intext:"Powered by : Best Webmasterz." 默认后台/admin
User : '=' 'OR'
Pass : '=' 'OR'
1
2
3
intext:"Web Design and Maintenance by Cloud 5 Solutions" 默认后台/admin/login.php
User : '=' 'OR'
Pass : '=' 'OR'
1
2
3
intext:"网站设计:火龙科技" 默认后台/maintain/login.php
Username : '=' 'or'
Password : '=' 'or'
1
2
3
intext:"Powered by Moodyworld" 默认后台/admin/
Username : '=' 'or'
Password : '=' 'or'

找遗留的各种数据库报错,物理路径,数据库版本,服务器探针类文件等等……

1
2
3
4
5
6
7
8
9
10
site:*.tw  inurl:/phpinfo.php
filetype:log "PHP Parse error"| "PHP Warning"
site:*.tw "id=" & intext:"Warning: mysql_fetch_array()
site:*.jp "id=" & intext:"Warning: getimagesize()
site:*.br "id=" & intext:"Warning: array_merge()
site:*.tw "id=" & intext:"Warning: mysql_fetch_assoc()
site:*.tw "id=" & intext:"Warning: mysql_result()
site:*.jp "id=" & intext:"Warning: pg_exec()
site:*.tw "id=" & intext:"Warning: require()
inurl:/robots.txt site:*.*


搜集各种账号密码,比如,数据库密码,ftp,vpn,htpasswd,telnet等等……:

1
2
3
4
可能会遗留的密码文件:

inurl:passlist.txt
inurl:password.txt

1
2
3
重要配置文件泄露:

inurl:/application/configs/ 配置文件名为/application/configs/application.ini
1
2
3
htpasswd:

htpasswd.bak filetype:htpasswd
1
2
3
vpn(cisco)[捅内网,非常有用]:

filetype:pcf "GroupPwd"
1
2
cisco在线密码解密网站:
https://www.unix-ag.uni-kl.de/~massar/bin/cisco-decode
1
2
3
4
5
6
7
8
9
10
11
ftp 账号密码:

"index of/" "ws_ftp.ini" "parent directory"
"your password is" filetype:log
filetype:ini inurl:"serv-u.ini"
filetype:ini inurl:flashFXP.ini
filetype:ini ServUDaemon
filetype:ini wcx_ftp
filetype:ini ws_ftp pwd
ext:inc "pwd=" "UID="
auth_user_file.txt
1
2
3
4
例如:

http://www.cryptoman.com/ftp/
http://www.cryptoman.com/ftp/WS_FTP.ini

其他密码:

1
2
default password list	直接在谷歌中搜各类缺省用户名密码
admin account info" filetype:log

找目录遍历[上传点,数据库文件下载,phpmyadmin,网站后台及各种网站备份,源代码泄露等,同样也可以用这种方式慢慢找]:

1
2
3
4
5
6
7
8
9
site:*.hk index of /admin
site:*.hk index of /upfiles
site:*.hk index of /fckeditor/editor/
site:*.tw index of /admin/uploadfile
site:*.tw index of /admin/file
site:*.tw index of /system/file
site:*.tw index of /phpmyadmin
site:*.tw index of /web/backup/
inurl:/phpmyadmin/index.php site:*.tw

搜同行们的各种工具脚本:

1
绝大部分人在用别人东西的时候,基本是很少看里面代码的[即使开源],更不要说去除特征及后门,没办法现状如此,大家都很懒,既是如此,就不免要把自己的成果也被迫的共享给别人一份,所以养成良好的读代码习惯,是非常有必要的

搜同行的脱裤脚本:

1
intitle:登录 - Adminer    这里只是随便举个例子,你可以自己平时多搜集一些境内外常用的脱裤脚本的标题,文件名什么的,慢慢尝试,root空密码也很正常

同样,你也可以用上面这种方式来找下别人的aspx嗅探脚本,例如:

1
websniff

找别人遗留的各种webshell,平时注意多搜集一些镜内外常用的大马特征,这里只是随便举几个例子,你可以随意组装自己的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
inurl:b374k.php filetype:php
inurl:c99.php
inurl:c100.php Generation time:
inurl:itsecteam_shell.php
intext:x2300 Locus7Shell v. 1.0a beta Modded by
intext:c99shell inurl:c99.php
powered by Captain Crunch Security Team
"inurl:c99.php" + "intext:safe"
intitle:r57shell
intitle:c99shell +uname
inurl:c99.php uid=0(root)
intitle:c99shell+filetype:php
intitle:ly0kha shell
inurl:.php "cURL: ON MySQL: ON MSSQL: OFF"
"Shell" filetypehp intext:"uname -a:" "EDT 2010"
intitle:"intitle:r57shell"
inurl:"c99.php" & intext:Encoder Tools Proc.
inurl:"c100.php" & intext:Encoder Tools Proc.
intitle:"Shell" inurl:".php" & intext:Encoder Tools Proc.


还有更多其他的工具特征,就留给大家自己去整理了,有时候站在别人的肩膀上上进去,感觉也挺好的…

找到目标的owa和vpn入口[内网入口]:

1
2
3
4
5
6
owa入口:
inurl:/owa/auth/logon intitle:outlook
inurl:/owa/auth/logon intext:outlook

vpn入口:
inurl:/sslvpn site:hk

找些好下手的目标子域:

1
2
3
4
5
6
site:polyu.edu.hk inurl:asp?pid=
site:polyu.edu.hk inurl:aspx?id=
site:polyu.edu.hk inurl:php?id=
site:polyu.edu.hk inurl:jsp?id=
site:polyu.edu.hk inurl:do?id=
site:polyu.edu.hk inurl:cgi?id=

找目标的数据库备份及其它各类敏感文件目录[后缀一般为 sql,mdb,txt……],像数据库和网站备份这种东西,还是建议直接用工具跑比较好,前提是字典务必要精心制作:

1
2
filetype:sql inurl:backup inurl:wp-content
inurl:/eWebEditor/db/ site:*.com

从目标网站上搜集目标邮箱,说实话,目标自己网站上的邮箱价值一般都不是特别大:

1
site:*.gov.tw *@gov.tw

关于google hacking的东西基本就到此为止了,最后再推荐一个不错的google dorks站点,方便大家练习:

1
2
https://cxsecurity.com/exploit/  非常推荐
https://www.exploit-db.com/google-hacking-database/ 并不推荐,exp不错,但这方面比较废

关于谷歌的一些好玩的小玩具,无聊的时候可以自己玩玩,方法很简单,直接在谷歌里面搜下面的关键字就行了(说实话比百度人性多了):

1
2
3
4
5
6
7
8
do a barrel roll
Askew
zerg rush
google sphere
atari breakout 图片碰碰球
google gravity 碎片
google sky
blink html 抖动

想必说到这里,你也已经大概能感受到google到底是有多强大了:

1
错误配置,敏感文件目录,各种信息泄露(源码泄露,重要配置文件泄露,密码泄露等),批量漏洞利用,最强大的社工库资源等等……你在web上所能利用到的一切,无死角尝试就可以了

其它的一些小恶作剧,也不小了,不要瞎弄,做错了事始终是要承担责任的:

1
2
3
4
5
6
7
搜集个人身份证信息
filetype:xls 身份证 site:cn

搜集被盗QQ号什么的
搜集别人还在有效期的信用卡,不过千万不要干坏事儿哦,不然后果你懂的……

另外,还有图片识别,位置识别,谷歌为我提供了很多很强大的功能,有必要的话可以去深入学习下如何使用谷歌的这些api



关于robots.txt文件的作用:
    此文件一般位于网站根目录下,规定了搜索引擎不能爬行的一些目录,一般都是一些敏感目录,比如:后台,数据库连接配置文件,安装目录等等……一般我们在试了几个常用的后台目录都不行的情况,习惯性的就会直接去访问下目标的robots.txt文件,很可能这文件里面就存的有后台路径,但,那只是有可能,不尝试,连可能都没有


Web渗透第一步之信息搜集 [ 透过Cdn找目标真实ip ]



0x01 在了解cdn之前,有必要先来科普下什么是 ‘负载均衡’ 以及’正/反向’ 代理,既然选择了做渗透,这些最基本的基础不熟悉肯定是不行的

正向代理 [ ForwardProxy ]:
    大家默认所说的代理其实都是指正向代理,不管是正向还是反向,理解数据的流向很重要,要理解这种比较抽象的东西最好的方式就是画图,比如下图就是一个正向代理的简易工作流程图,要表达的意思,已经很清晰了,就是说当客户端要去请求远程server上的资源时,并非直接通过本地路由网关到达远程server,而是先经过代理服务器,由代理服务器去帮我们请求,之后远程服务器会把请求的结果返回给代理服务器再由代理服务器返回给客户端,这么一个过程就叫正向代理,其实你还可以理解的更简单粗暴一点,它有点儿类似我们常说的 ‘翻墙’,正常情况我自己是不能直接上谷歌的,但我找了一个能上谷歌的代理,然后我们请求谷歌的时候可以让代理服务器去帮我们请求,最后,再通过代理服务器把响应的数据返回到我本地,就这么一个过程,包括我们常用的vpn其实也有点儿类似的功能(当然,这里只是粗略的类似,但vpn本质[隧道]上是什么,在前面已经有说明),不过现在正向代理可能用的比较少了,以前用代理服务器只是为了提高访问速度[因为缓存的原因],可以节省带宽,也可以在代理服务器上做些访问控制……

Read More >>>


web渗透第一步之信息搜集[子域,旁站,C段,AS号...]



0x01 为什么要从子域入手
    如果我们的目标网络规模比较大,直接从目标主域入手显然是很不理智的,因为像这种规模的目标一般主域都是重点防护区域,与其浪费那个时间,不如先从目标的某个子域进去,然后再想办法迂回接近我们的真正目标,这样无疑是个比较好的选择,此时,也就不难理解那句话了,安全本就是一个全面立体的概念,单单只是边界几个点的安全,那不叫真正的安全

0x02 那么,现在问题来了,怎么尽可能多的搜集目标的高价值子域呢

0x03 利用dig 检查目标ns服务器是否允许传送
    出于习惯性反应,首先,你应该去查下目标的ns服务器是否允许区域传送,如果允许,直接把目标的整个子域备份过来即可,后面将要说的所有步骤就可以直接全省了,关于dig和nslookup的使用非常简单,请自行查看其命令帮助或谷歌,实际测试中,个人还是更推荐用dig [毕竟是从权威dns查的,结果相对较准]

查出目标所有的ns记录,然后挨个尝试目标ns服务器是否允许传送[这里要注意,务必是目标自己的ns服务器,第三方的不算],虽然说,可能性不太大,但运气好也不一定呢,总之,没尝试之前谁也不知道

1
2
3
4
# dig +short @8.8.8.8 cityu.edu.hk ns
vax.cityu.edu.hk.
cpccspc.cityu.edu.hk.
cpccux0.cityu.edu.hk.

通过上面的查询,我们确定了目标自己的三个ns服务器,下面就开始来尝试逐个传送,这里还是要注意,必须用目标自己的ns服务器来解析它自己的子域,如果还没搞清楚传送的具体原理,请务必先自行谷歌理解漏洞原理再来搞

1
2
3
# dig +nocmd @vax.cityu.edu.hk cityu.edu.hk axfr
# dig +nocmd @cpccspc.cityu.edu.hk cityu.edu.hk axfr
# dig +nocmd @cpccux0.cityu.edu.hk cityu.edu.hk axfr

很显然,上面的这些ns服务器都不允许传送,为了给大家看看实际的传送效果,这里就给大家一个可以传送的实例

1
# dig +nocmd @dns2.communilink.net i-software.com.hk axfr

0x04 从其他的各种记录中获取子域,如,mx记录,spf记录,srv记录…
    如果目标ns服务器实在不允许传送,我们就要开始后面正常的流程了,之所以要查各种记录,因为从这里也能获取一些目标子域,虽然想借此直接下手的可能性不太大,但对我们来讲同样有用

查目标的mx记录

1
2
# dig +short cityu.edu.hk @8.8.8.8 mx
smtp.cityu.edu.hk

0x05 各类子域搜集工具
    既然不让传送,其实也没什么特别好的办法,无非就是靠爆破或者从各类搜索引擎上现抓取,对于这类的脚本,质量也是参差不齐,既然有成品,我们不妨就直接拿过来改吧改吧接着用,像这种小脚本,没必要非花那个时间去自己写 [当然,对于自己练练代码还是很有必要的],不过,还是要先说明下,既然是个人写的小脚本,报错,不稳定,程序异常,是常有的事,毕竟,没有经过很多人长时间的测试,但我们的要求是,能用,结果正确,相对稳定可靠即可,效率可暂时不做过多考虑

0x06 介绍几款自己常用的perl脚本,功能强大,且较稳定,不出意外的情况下,基本都是自己的首选

dnsenum 搜集信息比较规整,全面,如,ns,mx,a记录,自动尝试区域传送,也会从搜索引擎上抓取目标子域不过早已不太好使了,当上述动作执行完之后,即开始爆破,最后,把获取到目标的所有的域名所在的ip段以CIDR格式列出来,工具的整个执行流程跟我们之前手工的过程几乎是一模一样的,这也是为什么之前要先带大家手工走一遍的原因,这样非常有助于我们深入去理解工具,以后如果我们自己想写工具或者定制别人的工具这些都是一手参考样本

1
2
3
4
5
常用选项:
-t 指定爆破线程
--dnsserver 指定用于查询的dns服务器地址
-f 指定子域字典
--enum 三个选项的集合 --threads 5 -s 15 -w

1
# dnsenum --dnsserver 8.8.8.8 --enum -f /usr/share/dnsenum/dns.txt cityu.edu.hk




dnsmap 另一款比较好用的子域爆破工具,功能虽然没dnsenum那么多,但更加直观简洁,就是速度稍微有些慢,不过还好啦

1
2
3
-w 指定域名字典
-r 指定结果存放位置
-i 把泛解析,丢到指定的地址上

1
# dnsmap cityu.edu.hk

fierce 功能基本同dnsenum,实际测试中,效果会更好一些,速度很快,结果相对比较准

1
2
3
4
5
常用选项:
-dns 指定要爆破的目标子域
-dnsserver 指定用域查询的dns服务器
-threads 指定爆破线程
-wordlist 指定域名字典

1
# fierce -dns cityu.edu.hk -dnsserver 8.8.8.8 -threads 20 -wordlist /usr/share/dnsenum/dns.txt


0x07 其它的一些py子域爆破脚本:

后面的几个脚本基本都是用dnspython库写的,所以,这里事先安装下,不过,在最新版的kali,默认就已经装好了:

1
# apt-get install python-dnspython

subbrute 说实话,并不怎么好用,速度慢,而且不太准,截取的信息也比较简陋,不过适合学习,关于此脚本库依赖,配置详情,请自行参考 https://github.com/TheRook/subbrute

1
2
3
4
names.txt		子域字典
resolvers.txt 用于请求查询的dns服务器地址
target.txt 准备好目标域名文件,可以同时跑多个子域
-s 指定自己的子域字典,默认会使用当前目录下的names.txt

1
# python subbrute.py -t target_domain.txt -c 16 -s /usr/share/dnsenum/dns.txt

subDomainsBrute 效果很一般,用的很少,关于此脚本依赖及配置,请参考 https://github.com/lijiejie/subDomainsBrute

1
2
3
dns_servers.txt 存放用于请求的dns服务器地址,里面最好加上谷歌的8.8.8.8
-t 指定扫描线程
-f 指定用于爆破的域名字典

1
2
# pip install dnspython gevent
# python subDomainsBrute.py -t 200 -f /usr/share/dnsenum/dns.txt cityu.edu.hk

Sublist3r 跟上面的靠纯字典爆破不同的是,该脚本是现从各类搜索引擎中抓取的目标子域,想法还是很不错的,而且现从各种搜索引擎抓取的子域质量要比前面单纯靠爆破出来的也要高的多的多,尼玛,就是谷歌抓取一直都有问题验证改的贼快,不靠人民币,看来是很难痛快的玩耍了,另外,顺带的端口探测也是蛮不错的,较实用,对了,使用此脚本前务必先挂好vpn,你应该懂的,更多详情请参考 https://github.com/aboul3la/Sublist3r

1
2
3
4
5
-d 	指定要爆破的目标子域
-p 扫描那些已经爆出来的子域所开放的端口
-t 指定爆破线程
-e 指定要爬取的搜索引擎,默认是从所有搜索引擎上抓取
-b 启用暴力破解模块

1
2
# pip install -r requirements.txt
# python sublist3r.py -d cityu.edu.hk -p 80,443,8080 端口不宜太多,不然速度会很慢


0x08 前面基本都是一些在终端下跑的小脚本,下面再来介绍一款纯图形化的信息搜集工具[本身的功能还是非常实用的,抓取目标子域只是它的一个辅助小功能而已]foca [对于大型目标相对比较好使],它最开始是用来搜集目标站点的各种元数据的[至于元数据是什么,请自行谷歌],但现在开始逐渐支持常规的web漏洞扫描,错误配置扫描,自定义谷歌dorks,支持外部插件等等……,功能也已经趋于完善,而且纯图形化,配置选项[可使用google或者bing api]一目了然,相信大家一上手就会了,关键是能用它爬到我们想要的东西,最好再提醒一句,务必挂上vpn,谷歌可能有时还是用不了,尼玛

1
工具官方站点, https://www.elevenpaths.com/labstools/foca/   	可自行下载

0x09 相比之下,国内的朋友可能对seay的Layer 更熟悉,说实话,我自己确实用的比较少,总体来讲,还不错,除了爆破,顺便还会把响应头中的各字段数据也截取一下,使用非常简单,调好线程,纯图形界面也比较友好……给个目标子域,跑起来即可,字典文件和程序在同目录,如果你觉得它的字典质量不高,可以自己往里面加一些子域名,或者干脆用自己的字典,说实话,实际测试效果很一般

0x10 有些大公司基本一个C段都是他自己的,这都比较正常,所以,直接找下C端的目标web也未尝不可,有机会还是能直接跨过去的

1
# masscan -p 80,81,82,443,8080,8081 144.214.2.0/24 --rate=100

0x11 另外,如果目标规模真的是特别大的情况下,可以从AS号反查目标对应的ip段,然后再从这些段里面入手,也是靠谱的,有很多类似功能的反查站点,大家去谷歌搜搜,肯定一大堆

1
https://asnip.net/

0x12 如果你实在不太相信这类工具的话,比如我,也可以自己手工在bing,google,shodan…上慢慢翻,反正我们的最终目的只是想尽快随便找个目标子域先进去,工具有时候不见得会快很多,而且工具暂时还不具备人的经验判断的,经常跑出来很多没用的东西,虽然,手工找,可能稍微繁琐点,但往往更精准,总体算来效率还是高的,而且找到的东西往往更有价值

1
2
3
site:*.cityu.edu.hk 	谷歌,bing找子域
hostname:"cityu.edu.hk" shodan可能效果会更好一点
...

0x13 我们通常需要重点关注的一些目标子域,总结的不是很全,一下子暂时就想到这么些,大家自己慢慢拓展吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
内部oa系统
类似citrix的各种虚拟化办公系统
监控系统
日志搜集系统
crm系统
cmdb系统
mail系统
一些用于内部测试的目标站点,正常情况下,新功能上线一般都会先丢到测试机器上跑跑,没问题才会更新到线上,既是测试站点,防御自然也相对薄弱
一些老旧目标站点,有些目标站可能年头有些久,但由于业务的问题暂时又不能关闭,这也是一些相对比较好下手的地方
一些可能用于备份的机器,比如,边界的NFS,Rsync之类的
各类java控制台
各类服务器web管理面板
各类路由web管理面板
一些带有各类远程执行漏洞的特定版本的web中间件,比如,IIS6.0,Tomcat,jboss...
一般从子域命名大致都能看的出来,诸如,oa,zabbix,nagios,cacti,erp,sap,crm,cmdb,old,bakup,test...直接尝试针对这些的各类漏洞利用
所以,这个域名字典务必要有很强的针对性,最好花点时间自己好好整理一份留着,不然也很难跑出来我们想要的东西...
...

搜集目标子域小结:
    有时候,比如,当你直接跑test.org子域同时跑出来了os.test.org和monitor.os.test.org,这时你不妨尝试再把os.test.org当子域跑跑,说不定从这个子域下又会有不少收获,不过上面有些脚本也会自动遍历多级子域,这确实是个不错的切入点,可能还有些泛解析的问题,不过那些问题不太大,关于子域的各类查找手段,暂时就这些了,不管是爆破还是现从各种搜索引擎上抓取,我们最终目的只是为了想法设法接近我们真正的目标或者拿到一个边界入口,为我们后续方便进入目标内部先铺好路,工具仅仅只是为了辅助我们快速完成这一目的,并非决定性因素,所以大可不必在这类的工具上花太多时间,知道你自己想要的是什么就好了,还是那句话,你所搜集的每一个信息都有它存在的价值和意义,不要盲目,切记,从上面我们不难看到,反而是越大的目标,能入手的点就越多,废话不多说,祝大家好运吧 ^_^ ,最后觉得还是要再提醒大家一下,这里只是为了给大家更直观的说明,才不得不用了一些真实站点,希望大家不要恶意破坏,否则,后果自负

搜集目标的C段旁站信息 [主要针对某些小型单个目标站点]:

0x01 什么是旁站
    和搜集子域的情况类似,我们的直接目标站做的比较到位,从目标站本身基本上找不到什么比较好的入手点,这时候,如果想要快速拿下目标的话,一般都会先找个目标站点所在服务器上其他的比较好搞的站下手,然后再想办法跨到真正目标的站点目录中,前提是有权限,如果实在跨不过去,就只能想办法先提权[说实话,虚拟机其实是比较难提的]了,拿到服务器的最高权限以后就可以对目标站为所欲为了,一般我们把这种渗透方式就叫旁站,至于渗透同服其它网站的方法,和常规的web渗透并没什不同,只是相当于绕了个路进去的而已,关于web渗透,后续还会有大量的篇幅专门来说明,这里先不用着急

1
旁站: 和目标网站在同一台服务器上的其它的网站

0x02 什么是C段
    和旁站差不多的是,旁站是通过同一台服器上的其它网站跨到目标站的目录里,而C段,则是通过目标所在C段的其他任意一台机器,想办法跨到我们的目标机器上,至于怎么跨,嗅探,社工,web……随你便,反正最终目的能跨过去即可,实战可能还会有个问题就是,你搞下的一台目标C段机器在内网,也就是说它根本没有公网ip[靠路由映射进去的],像如果是这种情况,这台机器对你就没什么价值了,另外,如果是虚拟机,这种方式可能也不太好使,因为光提权就比较困难,这只是其中一个问题,很多其它的问题,我们暂时先不说,后续碰到再详细说,这里先理解一下基础概念即可

1
C段: 和目标机器ip处在同一个C段的其它机器,即都在同一个交换机下

0x03 关于旁站/C段工具的基本编写原理
    现在市面上这类的工具也是多如牛毛,但各有优劣(可能是接口质量的差别吧),但大多数都是用bing的接口,把查询到的结果数据中的旁站链接提取出来,C段和旁站唯一不一样的地方,就是C段是把整个段的ip上的旁站都轮询一遍,不过在此之前你需要先申请一下bing的搜索api,其实我自己都是选择性的用,因为不太准,手工直接在bing里面翻翻可能就有了,因为工具本身有时可能会漏掉很多有价值的参考信息,反正我们的目的就是随便找个能进去的站即可,怎么找,随意,你自己觉得怎么快就怎么来,渗透在乎更多的是结果和效率,过程几乎都不会太在意

0x04 好了,这部分内容确实比较简单,工具也没太多技术含量,单纯只是为了给大家理解一些基本概念而已,就不多说了

其实,还有非常多的一些提供类似功能的工具站,之前好用的,现在大多已经失效了,后期遇到好的再贴上来,大家可自行去谷歌上搜搜,确实挺多的,不过大部分似乎并不太好用,另外,大家如果有任何问题或者建议,也可直接私信我,其实,我一直都在

1
http://www.sameip.org/


Web渗透第一步 之 信息搜集 [ 搜集目标真实Ip信息 ]



0x01 在实际渗透中,给我们的目标可能仅仅就是一个域名或者某个组织名,那么该如何仅仅通过一个目标域名或者组织域名来确定目标所在的一些真实ip段呢,下面我们就开始整个信息搜集任务的第一步,搜集目标ip及域名信息,注意,这里我们暂且先不考虑目标是否用了CDN的问题,如何透过cdn找真实ip在后面会做单独说明,这里就先以正常的情况来说明

0x02 以www.cityu.edu.hk 为例,拿到目标域名的第一反应,没别的,先ping下目标域名看看解析情况再说

1
2
# ping www.cityu.edu.hk
www.cityu.edu.hk (144.214.5.62) ping 目标主域解析到的ip是这个

0x03 虽然没ping通,但这并不影响我们看它解析到的ip,不通的原因,还要看它提示的是什么,如果是超时,多半是因为防火墙拦截了imcp请求,不过这并不是重点,重点是我们已经发现这个域名被解析到了这个ip上,而且被解析的这个域名依然是 www.cityu.edu.hk,其实,从这里基本就已经可以确定这个ip就是目标的真实ip段内的[搞多了,自然就会有感觉],不信的话,我们可以直接尝试在浏览器中访问下解析到的这个ip,看看是不是会自动跳转到www.cityu.edu.hk 这个域名上的网页上,但仅仅就这一个ip还是远远不够的,对一个这种规模的大学来讲,机器肯定不再少数,我们接着往下走……

0x04 ping 完主域,顺手再来ping下子域,依然是没ping通,不过我们看到这个子域也被解析到了这个ip上[很可能是代理服务器或者负载均衡器什么的]

1
2
# ping cityu.edu.hk
cityu.edu.hk (144.214.5.62)

0x05 通过上面简单的ping,我们已初步发现目标所在的其中一个真实ip段,但仅仅只有这一个段还是远远不够的[像这种规模的大学,几乎整个B段都可能是它的],接着我们可以从目标的mx,ns,a记录入手,至于这些记录具体都是干什么的,这里就不细说了,大家请自行谷歌,因为我们今天的重点并不在这些记录本身,而仅仅是想通过这些记录[子域]获取一些目标的真实ip段,如下,推荐dig,nslookup不太准[非权威查询]

1
2
查目标的mx记录:
# dig +short @8.8.8.8 cityu.edu.hk mx

1
2
3
smtp.cityu.edu.hk (144.214.4.72)  
很显然,这只是目标的一个子域,根据ping解析到的结果我们发现这个ip也确实是香港ip
跟ping主域返回的结果是144.214.5.62,貌似是差了一个'C'段,不过,大致可以确定是目标的真实ip段


1
2
3
cityu-edu-hk.mail.protection.outlook.com (65.55.88.234)  
注意此域名,它并非目标子域,很显然是挂到outlook上的,ip也不是香港的
所以,此ip对我们实际的渗透意义并不大,可以忽略


1
2
3
查目标ns记录:
# dig +short @8.8.8.8 cityu.edu.hk ns
cpccspc.cityu.edu.hk (144.214.5.254) 目标子域,ip和主域处在同一C段中,可以确定为目标真实ip

1
vax.cityu.edu.hk (144.214.2.1) 目标子域,同处在B段中,初步确定为目标真实ip

cpccux0.cityu.edu.hk (144.214.5.253) 目标子域,ip和主域处在同一C段中,可以确定为目标真实ip


1
2
3
查目标a记录:
# dig +short cityu.edu.hk a
144.214.5.62 和直接ping的结果一致,确定为真实ip

0x06 当然,你可以从一些第三方网站上获取到目标的一些ip及域名信息,下面就推荐几个自己常用的

1
2
3
ip138的数据库还是蛮不错的,主要是更新频繁,只需提供一个目标ip或者域名[给子域就好了]即可定位ip所在地
如果你想把它写到脚本中批量查,它也提供查询接口,付点儿费,然后把接口写到你的脚本中即可
www.ip138.com


1
2
3
4
5
6
7
8
这是个相对比较老的信息搜集站,直接给个目标子域,它会把目标的一些子域也都列出来
然后你可以挨个点到每个子域里面再去看该子域详情,域名详情包括这个域名ip变更的历史记录
[比如,我们发现在www.cityu.edu.hk这个域名上曾经解析到过三个ip,尝试ping下以前的ip看看还在不在
说不定是个入手点呢],web服务器版本型号,操作系统类型[如果是一些低版本的操作系统,我们可以直接尝试比较经典的漏洞exp,比如iis(2000 2003)写等等……]
域名注册商[如果你想做域名劫持可能会用到],域名所在地等等……
从结果看到我们看到,主域其实是一台f5负载均衡设备[印证了前面的猜测]
另外从别的子域里面我们又发现了很多其它的真实ip段
www.netcraft.com


1
2
最后再来查下目标域名的 whois 信息,里面的一些内容对我们渗透也是有一定帮助的,比如,注册时留下的各种联系信息,邮箱,电话,姓名等等...
www.whois.com/whois

whois里面对我们有用的信息可能也就下面这些:

1
注册信息中的邮箱,名字,域名注册时间,过期时间以及当前注册状态


1
管理员各种联系信息,包括管理员邮箱电话,传真,各种名字[可以用来制作字典]


1
目标技术的联系方式,包括邮箱,电话,传真,名称


1
用于解析该域名的所有ns服务器,从这里面我们发现了两个我们之前在ns记录没查到的域名,不过一看,这很显然就不是目标自己的ns服务器,所以,忽略

0x07 通过上面的初步搜集,我们大致整理出了下面的一些目标真实ip段,因为段比较多,这里并没有都写上去……,关键是大家的搜集思路清晰就好:

1
2
3
4
5
144.214.2.0/24
144.214.4.0/24
144.214.5.0/24
144.214.236.0/24
……

0x08 到这一步,初步的ip及域名信息搜集就基本算是完成了,内容确实比较简单,关于工具的使用也比较容易,实在不会,看看命令的相关帮助应该就能明白了,可能最需要注意的地方还是 ping 的时候最好多ping几次,有时候因为自己的网速或者目标的网络问题,也会导致超时,并非一定是防火墙的原因,所以,一般ping 个5,6次就差不多了,当然,这里只是大家告诉你怎么手工去找,相信这里的一点铺垫,到后面会更利于你去理解和使用这一类的信息搜集工具,因为它们的工作流程大致都是如此,只不过我们现在是在手工实现它,还是那句话,实际渗透中怎么快怎么来[以效率为重],后面会说到dnsenum,一个脚本基本就可以把上面说的东西全干了……

0x09 当然啦,这仅仅还是万里长征的第一步,拿到准确的目标ip段信息,也是为了方便我们后面,对目标机器大概的部署情况做一些简要判断,从中找到一些可能的突破口,这中间还会涉及到cdn的问题,不过不用太着急,后面会再专门针对cdn做单独的详细说明,至于拿到这些真实ip信息以后的事情,就自己随意了,旁站,C段,ddos,爆破…………,自己想怎么发挥都行…

小结:
    没啥技术含量,方便加深对此类工具的深层理解,顺带留给有需要的朋友