第二次作业

目录

1、DNS解析详细步骤。

2、绕过CDN查找主机真实IP的方法。

1.使用多地ping服务

2.利用SSL证书寻找真实原始IP

3.利用网站返回的内容寻找真实原始IP

4.利用HTTP标头

3、子域名信息收集常用手段。

4、Nmap全端口扫描

1.nmap全端口扫描

2.SYN半开扫描的原理

3.探测主机存活原理

5、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场)

dirmap每次扫描条数不一样原因

dirmap高级使用

6、Fscan实践(使用昨日搭建的pikachu靶场)

7、课上所演示插件安装成功截图。


1、DNS解析详细步骤。

1.浏览器缓存检查

本地电脑首先检查浏览器缓存中是否有该域名对应的IP地址。如果缓存中有记录,解析过程结束。浏览器缓存有时间和大小限制,通常几分钟到几小时。缓存时间受TTL属性控制,过长或过短都会影响解析效率。

2.操作系统缓存检查

如果浏览器缓存中没有数据,浏览器会查找操作系统缓存。操作系统通过文件(Linux的/etc/hosts或Windows的C:\Windows\System32\drivers\etc\hosts)进行域名解析。用户可以手动修改这些文件将域名解析到特定IP地址,用于测试或其他用途。黑客可能通过修改这些文件劫持域名解析。

3.本地DNS服务器解析

如果前两步都无法解析,操作系统将域名发送给配置的本地DNS服务器。本地DNS服务器通常在用户的内网中,如学校或工作单位。约80%的域名解析在本地DNS服务器处结束。

4.根DNS服务器请求

如果本地DNS服务器无法解析,它会请求根DNS服务器。

5.根DNS服务器返回顶级DNS服务器地址

根DNS服务器返回顶级DNS服务器的地址,如.com、.cn等。

6.向顶级DNS服务器请求解析

本地DNS服务器向顶级DNS服务器发送解析请求。

7.顶级DNS服务器返回Name Server地址

顶级DNS服务器返回Name Server的地址,该服务器由域名提供商管理。

8.Name Server查询并返回结果

Name Server查询域名和IP的映射关系,并返回给本地DNS服务器。

9.本地DNS服务器缓存解析结果

本地DNS服务器缓存域名和IP的对应关系,缓存时间由TTL值控制。

10.将解析结果返回给本地电脑

本地电脑缓存解析结果,域名解析过程结束。


2、绕过CDN查找主机真实IP的方法。

1.使用多地ping服务

通过多地ping服务检查目标IP地址是否唯一。如果不唯一,多半使用了CDN。

2.利用SSL证书寻找真实原始IP

SSL证书可以暴露真实IP。通过扫描互联网获取SSL证书,进而找到服务器的真实IP。

3.利用网站返回的内容寻找真实原始IP

如果原始服务器IP也返回了网站的内容,那么可以在网上搜索大量的相关数据。

4.利用HTTP标头

通过比较HTTP标头来查找原始服务器。例如,使用SecurityTrails平台搜索特定HTTP标头。


3、子域名信息收集常用手段。

Google搜索:

子域名挖掘机:输入域名即可基于字典挖掘子域名

Subdomainbrute:利用Python脚本收集子域名


4、Nmap全端口扫描

1.nmap全端口扫描

开放端口为 80,135,3306,3389,445,902,10000,912

2.SYN半开扫描的原理

无论服务方回复SYN|ACK的数据包,还是回复RST的数据包,申请方其实已经能够判断对方端口是否为“开”的状态。之后的ACK数据包发送则被对方监视,如果此时不发送ACK数据包,而是发一个RST数据包,则不仅关闭了这个未完成的连接过程,并且也会因为连接未建立而不会被对方记录。

  • 发送SYN包

    • 扫描器向目标主机的某个端口发送一个SYN(Synchronize)包,表示请求建立连接。
  • 接收响应

    • 如果目标端口是开放的,目标主机会回复一个SYN-ACK(Synchronize-Acknowledge)包,表示愿意建立连接。
    • 如果目标端口是关闭的,目标主机会回复一个RST(Reset)包,表示拒绝连接请求。
  • 发送RST包

    • 当扫描器收到目标主机发回的SYN-ACK包后,并不完成三次握手的最后一步(发送ACK包),而是立即发送一个RST包终止连接。这样就避免了建立完整的TCP连接。

3.探测主机存活原理

根据不同的协议或方法发送特定的网络请求,然后根据返回的响应或超时情况判断主机是否存活。 常见的存活主机探测方法包括Ping探测、ARP扫描、端口扫描和网络流量监测等。

ICMP Echo请求(Ping)

  • 原理:这是最常见的主机存活检测方法。使用ICMP协议,向目标主机发送一个ICMP Echo请求包(Ping)。如果目标主机在线,会回复一个ICMP Echo应答包(Pong)。

TCP ACK扫描

  • 原理:向目标主机的常见端口(如80、443等)发送一个TCP ACK包。如果目标主机在线,即使端口是关闭的,也会回复一个RST(Reset)包。

TCP SYN扫描

  • 原理:类似于SYN半开扫描,向目标主机发送一个TCP SYN包,尝试与目标端口建立连接。如果主机在线且端口开放,会回复一个SYN-ACK包。如果端口关闭,则会回复RST包。

5、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场)

dirmap每次扫描条数不一样原因

1. 目标网站的动态变化

网站内容经常更新,目录结构可能会随时间发生变化,比如新增或删除了某些目录或文件。会导致每次扫描时返回的结果不同。

2. 扫描配置的变化

不同扫描配置(如线程数、扫描深度、超时时间等)会影响扫描结果。如果每次扫描时的配置不同,那么返回的结果也可能会不同。

3. 网络状况的影响

网络延迟或丢包等网络问题可能导致部分请求超时或失败,进而影响扫描结果的条数。

4. 目标服务器的限制

目标服务器可能对频繁请求进行限制,比如通过Rate Limiting(速率限制)或防火墙阻止部分请求。可能导致一些请求被拒绝或返回不同的状态码,从而影响扫描结果。

dirmap高级使用

#递归扫描处理配置
[RecursiveScan]
#是否开启递归扫描:关闭:0;开启:1
conf.recursive_scan = 0
#遇到这些状态码,开启递归扫描。默认配置[301,403]
conf.recursive_status_code = [301,403]
#URL超过这个长度就退出扫描
conf.recursive_scan_max_url_length = 60
#这些后缀名不递归扫
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
#设置排除扫描的目录。默认配置空。其他配置:e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

#扫描模式处理配置(4个模式,1次只能选择1个)
[ScanModeHandler]
#字典模式:关闭:0;单字典:1;多字典:2
conf.dict_mode = 1
#单字典模式的路径
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
#多字典模式的路径,默认配置dictmult
conf.dict_mode_load_mult_dict = "dictmult"
#爆破模式:关闭:0;开启:1
conf.blast_mode = 0
#生成字典最小长度。默认配置3
conf.blast_mode_min = 3
#生成字典最大长度。默认配置3
conf.blast_mode_max = 3
#默认字符集:a-z。暂未使用。
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
#默认字符集:0-9。暂未使用。
conf.blast_mode_num = "0123456789"
#自定义字符集。默认配置"abc"。使用abc构造字典
conf.blast_mode_custom_charset = "abc"
#自定义继续字符集。默认配置空。
conf.blast_mode_resume_charset = ""
#爬虫模式:关闭:0;开启:1
conf.crawl_mode = 0
#用于生成动态敏感文件payload的后缀字典
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
#解析robots.txt文件。暂未实现。
conf.crawl_mode_parse_robots = 0
#解析html页面的xpath表达式
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
#是否进行动态爬虫字典生成。默认配置1,开启爬虫动态字典生成。其他配置:e.g:关闭:0;开启:1
conf.crawl_mode_dynamic_fuzz = 1
#Fuzz模式:关闭:0;单字典:1;多字典:2
conf.fuzz_mode = 0
#单字典模式的路径。
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
#多字典模式的路径。默认配置:fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
#设置fuzz标签。默认配置{dir}。使用{dir}标签当成字典插入点,将http://target.com/{dir}.php替换成http://target.com/字典中的每一行.php。其他配置:e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

#处理payload配置。暂未实现。
[PayloadHandler]

#处理请求配置
[RequestHandler]
#自定义请求头。默认配置空。其他配置:e.g:test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
#自定义请求User-Agent。默认配置chrome的ua。
conf.request_header_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
#自定义请求cookie。默认配置空,不设置cookie。其他配置e.g:cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
#自定义401认证。暂未实现。因为自定义请求头功能可满足该需求(懒XD)
conf.request_header_401_auth = ""
#自定义请求方法。默认配置get方法。其他配置:e.g:get;head
#conf.request_method = "head"
conf.request_method = "get"
#自定义每个请求超时时间。默认配置3秒。
conf.request_timeout = 3
#随机延迟(0-x)秒发送请求。参数必须是整数。默认配置0秒,无延迟。
conf.request_delay = 0
#自定义单个目标,请求协程线程数。默认配置30线程
conf.request_limit = 30
#自定义最大重试次数。暂未实现。
conf.request_max_retries = 1
#设置持久连接。是否使用session()。暂未实现。
conf.request_persistent_connect = 0
#302重定向。默认False,不重定向。其他配置:e.g:True;False
conf.redirection_302 = False
#payload后添加后缀。默认空,扫描时,不添加后缀。其他配置:e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

#处理响应配置
[ResponseHandler]
#设置要记录的响应状态。默认配置[200],记录200状态码。其他配置:e.g:[200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
#是否记录content-type响应头。默认配置1记录
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
#是否记录页面大小。默认配置1记录
#conf.response_size = 0
conf.response_size = 1
#是否自动检测404页面。默认配置True,开启自动检测404.其他配置参考e.g:True;False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
#自定义匹配503页面正则。暂未实现。感觉用不着,可能要废弃。
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
#自定义正则表达式,匹配页面内容
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
#跳过显示页面大小为x的页面,若不设置,请配置成"None",默认配置“None”。其他大小配置参考e.g:None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

#代理选项
[ProxyHandler]
#代理配置。默认设置“None”,不开启代理。其他配置e.g:{"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
#conf.proxy_server = {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
conf.proxy_server = None

#Debug选项
[DebugMode]
#打印payloads并退出
conf.debug = 0

#update选项
[CheckUpdate]
#github获取更新。暂未实现。
conf.update = 0


6、Fscan实践(使用昨日搭建的pikachu靶场)


7、课上所演示插件安装成功截图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值