2022渗透测试-信息收集笔记
1.被动信息收集
被动信息收集即不向目标系统进行探测,不会留下任何痕迹。通过网络、公开渠道进行信息收集 。收集的内容包括IP地址段、域名信息、邮件地址、⽂档图⽚数据、公司地址、公司组织架构、联系电话 / 传真、⼈员姓名 / 职务、目标系统使⽤用的技术架构、公开的商业信息等。
1.DNS信息收集
1.域名是分级的概念,而FQDN是域名下的主机(如:www.baidu.com),注意两者不同。 2.域名记录类型:A、CNAME、PTR、MX、NS、TXT、TTL 3.DNS查询工具 nslookup eg:nslookup -type=ns baidu.com 8.8.8.8 dig (相比于nslookup准确性更高,功能更全) eg: dig @8.8.8.8 www.sina.com mx:向8.8.8.8服务器请求域名解析 dig +trace baidu.com:由本机迭代查询域名 dig -x <ip> +short:反查ip对应的域名 (PTR记录),+short可以简略输出,在写批量反查脚本时很有用 Amass 由OWASP维护的安全项目,使用多种开源信息收集和主动侦察技术,拥有更强大的资产发现和子域名挖掘功能。 Amass下分intel、enum、viz、track、db、dns等六个子命令,intel用于发现目标资产,enum用于枚举子域名,viz将枚举结果可视化,track用于比较两次枚举结果的差异,db用于管理Amass收集的信息库,dns用于解析域名。 传送门:https://github.com/OWASP/Amass eg: 列出所有用于发现目标资产的源和获取方式 amass intel -list 采用主动扫描技术,横向发现sina.com所属机构的更多资产,并注明信息来源 amass intel -active -src -whois -d sina.com 采用主动扫描技术,纵向枚举sina.com子域名,并列出域名对应的ip地址 amass enum -active -ip -d sina.com amass enum -active -d sina.com -brute -w subdomains-top1million-5000.txt -ip -o results.txt: 注意:Amass多次查询后IP可能被BAN 在线查询工具:https://www.ping.cn/dns 4.DNS域名注册信息 fierce eg:firece -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt dnsdict6 eg:dnsdict6 -d4 -t 16 -x sina.com 各类开源字典库:https://github.com/danielmiessler/SecLists 5.whois命令 在线whois查询: https://www.whois.com/whois/ https://www.namecheap.com/domains/whois/ http://whois.chinaz.com/ 站长之家 6.CDN、云平台 CDN及云平台主机并非公司的固有资产,实操时首先要对其进行判断,及时排除或绕过,避免事倍功半。 ping:如果响应返回的主机域名和ping请求的域名不同,则为应用了CDN nslookup:如果查询的域名有CNAME记录,且解析出有多个IP地址,则为应用了CDN 在线查询工具: http://ping.chinaz.com/ https://www.ping.cn/dns 如果查询结果为多个ip,或者发现多个地点ping检测返回不同的ip,则为应用了CDN
2.搜索引擎信息收集
1.Shodan
全球最早开放的网络空间搜索引擎,主要针对服务器、网络摄像头、交换机、路由器等网络基础设备的IP做扫描,侧重于主机层面,常见filter:net、city、country、port、os、hostname、server 网址:https://www.shodan.io/
2.Google
inurl:用于搜索网页上包含的URL。这个语法对寻找网页上的搜索,帮助之类的很有用 intitle:限制你搜索的网页标题 intext:搜索网页部分包含的文字内容 site:限制搜索范围的域名 allintitle:搜索所有关键字构成标题的网页 link:可以得到一个所有包含了某个指定URL的页面列表。 例如:link:http://www.google.com 就可以得到所有连接到 Google 的页面 filetype:搜索文件的后缀或者扩展名 eg: 1.搜索网址中包含 admin 字符的网站:inurl:admin 2.搜索网址中包含 login 字符的网站:inurl:login 3.搜索网址中包含 php?id= 字符的网站:inurl:php?id= 4.搜索网址中包含 site:eu.cn inurl:admin 字符的网站:site:edu.cn inurl:admin 5.搜索网址中包含 pdf 文档的网站:site:offcn.com filetype:pdf 6.搜索标题中必须包含 “吕泽昆” 的网站:intitle:xxx
3.公开漏洞信息平台
一些公开漏洞信息平台公布有系统和软件的最新漏洞信息,这对于1day漏洞的挖掘和利用非常有用,常见的平台如下: Metasploit 基于Metasploit相应模块进行漏洞利用(搜索模块如:search ms14-068) Exploit-DB 在Kali中searchsploit或在 Exploit-DB官网 搜索Exp (如:ms14-068),在Exp基础上进行漏洞利用(可能需要对Exp进行修改、编译等) 漏洞分析网站 网上有很多漏洞分析的网站,公布有最新漏洞信息、PoC等,如: 知道创宇的漏洞分享学习平台:Seebug 国家信息安全漏洞共享平台:CNVD 非常好用的漏洞信息公开平台:CX Security
2.主动信息收集
1.主机发现
1.二层发现
利用ARP协议发包探测,扫描速度快、可靠,但是不可路由
2.三层发现
1.ping
[-r]是用来记录传出和返回数据包的路由, ping www.offn.com -r 4 [-l]参数用来设定数据包的大小的,在默认的情况下windows的ping发送的数据包大小为32byte,也可以自定义它的大小,最大限制发送65500byte,否则容易造成主机瘫痪。使用这个命令后,会明显发现时间变长了。 [-n]在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数。
2.fping
2.使用fping命令查看局域网中运行了哪些机器 fping -g 192.168.71.1/24 -c 1
3.hping
能够发送几乎任意的tcp/ip包,功能强大但是每次只能扫描一个目标。 hping3 192.168.45.129 --icmp -c 2.
4.nmap
1. 探测网络中活跃的主机 nmap -sP 10.0.105.1/24 :探测10.0.105网段中的全部主机。 2. 探测主机系统版本 nmap -O 192.168.45.129 :探测指定IP的相关数据。 3. 探测是否打开指定端口 nmap -p80,443 192.168.61.0/24 nmap -p80 --open 192.168.61.0/24 4.端口服务版本探测: nmap -p80 -sV 192.168.61.0/24 nmap -p80 -sV 192.168.45.129 -p80 -sV:查看指定网段或指定ip的80端口对应服务的版本信息 5. 全面扫描 nmap -A IP :扫描指定IP的全部内容。 nmap -A -T4 IP :-T4指定扫描过程使用的时序,总共有6个级别(0-5)级别越高扫描速度越快 6. 生成txt报告 nmap -A IP -oN 存储路径:在指定路径下生成相关操作的txt报告。 7.-sn : 只进行主机发现,不进行端口扫描 nmap -sn 192.168.45.1-254
8.扫描一个范围: 端口 1-65535
注:生产环境下,我们只需要开启正在提供服务的端口,其他端口都关闭。关闭不需要开的服务有两种方法:
情景 1:你认识这个服务,直接关服务
systemctl stop rpcbind
情景 2:不认识这个服务,查看哪个进程使用了这个端口并找出进程的路径,然后 kill 进程,删除文件,接下来以 22 端口为例,操作思路如下:
lsof -i :22 #查看 22 端口正在被哪个进程使用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1089 root 3u IPv4 21779 0t0 TCP *:ssh (LISTEN)
通过 ps 命令查找对应的进程文件:
ps -axu | grep 1089
root 1089 0.0 0.1 105996 3744 ? Ss 10:52 0:00 /usr/sbin/sshd -D
注:看到进程的文件的路径是/usr/sbin/sshd 。如果没有看到此命令的具体执行路径,说明此木马进程可以在 bash 终端下直接执行,通过 which 和 rpm -qf 来查看命令的来源,如下:
which vim /usr/bin/vim
解决:
kill -9 1781
3.四层发现
2.端口扫描
1.TCP端口扫描
隐蔽扫描—SYN:半连接扫描,应用日志不记录扫描行为。 eg: nmap -sS xxxx -p 80,443 -sS表示使用SYN进行半连接扫描 hping3 1.1.1.1 --scan 80,21,25,443 -S scapy: sr1(IP(dst="192.168.60.3")/TCP(dport=80),timeout=1,verbose=1)
全连接端口扫描: eg: scapy : sr1(IP(dst="192.168.20.2")/TCP(dport=22,flags='S')) nmap -sT 1.1.1.1 -p 80,21,25 #默认扫描常用的1000个端口
僵尸扫描:十分隐蔽,可以伪造源地址,但是僵尸机条件必须满足:闲置系统,且IPID递增 扫描192.168.1.0 网段中某些机器可以作为僵尸主机 发现僵尸机:nmap 192.168.1.0/24 -p1-1024 --script=ipidseq.nse 扫描目标:nmap 192.168.1.63 -sI 192.168.1.54 -P1-100 54是僵尸主机
2.TCP端口扫描
1.nmap eg:namp -sU 192.168.45.129 -p 22 2.scapy eg:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1) dport:目的端口 sport:来源端口 dst:目的IP src:来源IP
3.使用 scapy 定制数据包进行高级扫描
scapy 概述
Scapy 是一个可以让用户发送、侦听和解析并伪装网络报文的 Python 程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。
scapy 定制 ARP 协议
INFO: Can't import matplotlib. Won't be able to plot.
如果提示 INFO 找不到某个模块可以使用 apt-get install python-matplotlib
安装时我们输入 exit() 退出 scapy
不过我们还可以看到一些 WARNING 信息,这个信息不影响我们使用。
我们使用 ARP().display()来查看 ARP 函数的用法
>>> ARP().display() #查看 ARP 函数的用法,如下 ###[ ARP ]### hwtype= 0x1 硬件类型 ptype= 0x800 协议类型 hwlen= 6 硬件地址长度(MAC) plen= 4 协议地址长度(IP) op= who-has who-has 查询 hwsrc= 00:0c:29:6a:cf:1d 源 MAC 地址 psrc= 192.168.1.53 源 IP 地址 hwdst= 00:00:00:00:00:00 pdst= 0.0.0.0 向谁发送查询请求
例:定义向 192.168.1.1 发送 arp 请求的数据包
sr1 函数作用:sr1 函数包含了发送数据包和接收数据包的功能。
>>> sr1(ARP(pdst="192.168.1.1")) Begin emission: .........................Finished sending 1 packets. ...* Received 29 packets, got 1 answers, remaining 0 packets <ARP hwtype=0x1 ptype=0x800 hwlen=6 plen=4 op=is-at hwsrc=f0:98:38:b8:e0:92 psrc=192.168.1.1 hwdst=00:0c:29:6a:cf:1d pdst=192.168.1.53 |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>> >>> exit() #退出 scapy
注:发现源地址 psrc=192.168.1.1,说明已经收到网关的应答包。
scapy 定制 PING 包
Scapy 的功能是非常强大的,我们前面只是简单的介绍了他的 ARP 探测方式,下面我们简单讲一下IP/ICMP 的方式
下面两条命令可以直接看到我们的数据包格式
###[ IP ]### version= 4 版本:4,即 IPv4 ihl= None 首部长度 tos= 0x0 服务 len= None 总长度 id= 1 标识 flags= frag= 0 标志 ttl= 64 生存时间 proto= hopopt 传输控制协议 IPv6 逐跳选项 chksum= None 首部校验和 src= 127.0.0.1 源地址 dst= 127.0.0.1 目的地址 ICMP().display() ###[ ICMP ]### type= echo-request 类型,标识 ICMP 报文的类型 code= 0 代码 chksum= None 校验和 id= 0x0 标识 seq= 0x0
注: IP()生成 ping 包的源 IP 和目标 IP ,ICMP() 生 ping 包的类型。使用 IP()和 ICMP()两个函数,可以生成 ping 包,进行探测。
思路:
1、修改 IP 包头的 dst,也就是我们的目的地址
2、拼接上 ICMP 的数据包类型
3、使用 sr1()进行发送数据包并接收数据包
>>> sr1(IP(dst="192.168.1.1")/ICMP(),timeout=1) Begin emission: .Finished sending 1 packets. * Received 2 packets, got 1 answers, remaining 0 packets <IP version=4 ihl=5 tos=0x0 len=28 id=32131 flags= frag=0 ttl=64 proto=icmp chksum=0x79d7 src=192.168.1.1 dst=192.168.1.53 options=[] |<ICMP type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>>
scapy 定制 TCP 协议 SYN 请求
- tcp 三次握手过程中 flags 的标记
#查看 TCP()函数的用法
>>> TCP().display()
###[ TCP ]###
sport= ftp_data TCP 源端口
- #查看 TCP()函数的用法
###[ TCP ]### sport= ftp_data TCP 源端口 dport= http TCP 目的端口 seq= 0 32 位序号 ack= 0 32 位确认序号 dataofs= None 4 位首部长度 reserved= 0 保留 6 位 flags= S 标志域,紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、 完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN window= 8192 窗口大小 chksum= None 16 位校验和 urgptr= 0 优先指针 options= [] 选项
sr1(IP(dst="192.168.1.1")/TCP(flags="S" ,dport=80),timeout=1)
flags=”S”表示 SYN 数据包
dport=80 表示目标端口 80
我们的到一个 flags=SA 的数据包。SA 标志即 SYN+ACK。我们收到服务器 tcp 三次握手中的第二个包,能收到回应,表示端口开放。
注:这种基于 tcp 的半链接扫描,更隐密,更不容易被发现。
2022渗透测试-信息收集笔记相关推荐
- 渗透测试-----信息收集(通过DNS解析找IP地址、CDN、IP查询、IP物理地址、搜索引擎、网站信息收集)
文章目录 渗透测试 信息收集 一.IP地址信息收集 1. 通过DNS解析找IP地址 1.1 ping命令 1.2 nslookup命令 1.3 dig工具 1.4 dnsenum 1.5 站长工具 2 ...
- 【渗透测试基础-3】渗透测试信息收集的内容及方法
目录 1 信息收集概述 1.1 目的 1.2 收集内容 2 收集域名信息 2.1 Whois查询 2.1.1 Whois简介 2.1.2 Whois操作 2.2 反查 2.3 备案信息查询 3 收集子 ...
- 【经验】渗透测试信息收集步骤、网站、工具分享
渗透测试信息收集步骤.网站.工具分享 刚刚参加完一次大型活动,感觉这个暑假自己的成长很明显.虽然之前的假期也有打算做些什么或者也确实做了什么,但收效甚微.也许人性如此吧,总是要有什么理由推着自己才能前 ...
- 渗透测试信息收集:目录扫描
入行这么久,一次完整的渗透也没完成过,最近想从信息收集开始,完整的渗透一次网站,目前在进行信息收集,写篇文章,记录下自己在进行目录扫描中用过的工具. 渗透测试信息收集:目录扫描 目录 渗透测试信息收集 ...
- 渗透测试-----信息收集(概述、whois、子域名查询、爆破、vulhub域名传送漏洞复现、kali安装docker)
文章目录 渗透测试 信息收集 1. 概述 2. 供练手的网站 3. whois查询 4. 子域名查询 域传送漏洞 1. 概述 2. 解决办法 3. vulhub漏洞复现 4. 子域名爆破 渗透测试 信 ...
- 【每天学习一点新知识】渗透测试信息收集篇
目录 1.网页直接获取信息 2.端口扫描 3.子域名查询 4. C段旁注 5.网络空间搜索引擎.谷歌语法 6.whois查询 渗透测试流程: 信息收集是渗透测试的前期工作,对于渗透测试来说十分重要.只 ...
- Kali Linux渗透测试——信息收集
笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程 渗透测试标准(PTES:http://www.pentest-standard.org)的七个阶段: 1.前期交互阶段:讨论确定渗透 ...
- 渗透测试信息收集概要
文章目录 信息收集概要 Whois查询 指纹CMS 网站IP 旁站.C段服务器 服务器操作系统版本.容器版本.数据库类型 邮箱收集 端口服务(80.443等) 敏感文件搜索 目录遍历 说明.txt 目 ...
- 渗透测试信息收集总结
一.信息收集介绍 信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测.正所谓,知己知彼百战百胜! 信息收集的方式可以分为两种 ...
最新文章
- 名称的特殊处理(Name Mangling)
- DropDownList联动
- floatmap 二维数组_用J中的多维数组进行Arrays.fill
- ckrule规则编辑器在wpf中的使用
- click quickstart
- 问题3:filesystem:不是std的成员,filesystem:该名称的命名空间或类不存在
- COMSOL—— LiveLink for MATLAB学习1
- 在深圳,考PMP需要花费多少钱?
- php网易云随机音乐api源码开源,网易云音乐随机歌曲
- 笔记本重装win10系统
- frontpage中没有动态HTML效果,[多选] 在frontpage中,应用文字的动态HTML效果时可选择的事件有()...
- 计算机配置35%卡住不动了,win7配置更新35%不动怎么办
- Stay hungry. Stay foolish.
- pv 、uv、ip、vv、cv分别是什么
- JavaScript+css实现的喜庆活动邀请函多页面html源码
- 华为有国产芯片的服务器吗,华为、飞腾扛旗,国产服务器芯片有望突破!ARM要替代x86?...
- 【Day3.7】建兴海鲜酒家,味道还很不错
- Git 右键不显示Git功能图标
- AFNetworking的基本使用
- 初学者-python中自定义类的已有self定义,后面使用出现object has no attribute问题
热门文章
- Jetson Xavier NX系统安装至 nvme 硬盘
- window10添加局域网计算机,Windows10系统创建局域网图文教程
- 适用Macos的几款好用的人物照片编辑工具
- 爬虫mysql数据清洗_爬虫分析之数据存储——基于MySQL,Scrapy
- 生活随记 - 清明时节特想老爸老妈
- 商业插画师走尺印象:只为做生活的设计师
- 中国长租公寓与住房租赁领域未来八大趋势和创新探讨
- TC气象数据下载包括NCEP的FNL(python脚本)、STI的Best_track、NOAA的SST
- oracle12c rac 开启hugepage
- 2016年度人物揭晓:任正非王健林最具影响,贾跃亭当选风云人物