【Kali】简单记录
文章目录
- 信息收集
- DNS记录分析
- host
- dig
- dnsenum
- 路由信息
- tcptraceroute
- tctrace
- 搜索引擎
- 目标识别
- arping
- fping
- 识别操作系统
- p0f
- 服务枚举
- 端口扫描
- nmap
- 识别VPN服务器
- 漏洞映射
- exploitdb
- msfconsole
- 提权
- arpspoof
- Dsniff
信息收集
DNS记录分析
host
host www.example.com
host -a example.com
host指令查询域名信息的DNS服务器,就是文件/etc/resolv.conf指定的DNS服务器。如果想查询其他的DNS服务器,可在指令的尾部直接添加DNS服务器地址。
dig
dig example.com any
dig指令仅会返回该域的A记录。如需查询全部类型的DNS数据,我们可把type选项设定为any。
这条指令返回了该域名的SOA记录、NS记录、A记录和AAAA记录。
在使用dig指令进行域传输时,我们必须设置DNS服务器为权威DNS,并且设置传输类型为axfr。
dnsenum
另外,我们可利用dnsenum程序收集DNS数据。这个程序能够收集的DNS信息分为下述几类:
● 主机IP 地址;
● 该域的DNS 服务器;
● 该域的MX 记录。
在这一章里,您会发现不同程序的返回结果十分相似。这是因为我们就是在通过不同的程序验证相同的数据。返回同一信息的程序越多,我们对这一信息就越有信心。
除了获取DNS信息的功能之外,dnsenum还有下述几个特性。
● 它能够通过谷歌捜索其他的域名和子域名。
● 可使用字典文件对子域名进行暴力破解。Kali Linux 收录的dnsenum 自带有字典文件(dns.txt),该字典可测试1480个子域名。此外另有可测试266930个子域名的字典文件dns-big.txt。
● 可对C 类网段进行whois 査询并计算其网络范围。
● 可对网段进行反向査询。
● 采用多线程技术,可进行并发査询。
在不能进行域传输的情况下,我们可以使用字典文件对子域名进行暴力破解。例如,如果使用字典文件dns.txt暴力破解example.com的子域名,可使用下述指令。
dnsenum -f dns.txt example.com
该指令的返回结果如下。
dnsdict6
路由信息
tcptraceroute
tcptraceroute是traceroute程序的补充工具。传统的traceroute程序在其发送的UDP 或ICMP echo 数据包里,设置有特定的TTL(Time To Live)标志位。它把TTL的值从1开始递增,直到数据包到达目标主机为止。而tcptraceroute则是使用TCP数据包进行测试,它利用TCP SYN(握手请求)数据包进行路由信息探测。
相比其他程序,tcptraceroute 的优点在于其较高的通过率。如果在渗透测试人员和目标主机之间的防火墙禁止traceroute数据通过,那么traceroute指令就完全发挥不了作用。但是只要防火墙允许访问目标主机的特定TCP端口,就可以使用tcptraceroute程序穿过防火墙到测试目标主机。
在使用 tcptraceroute 时,如果相应的目标端口是开放的(open),程序将会收到SYN/ACK数据包;而如果目标端口是关闭的,那么它会收到一个RST数据包。
下面我们来使用tcptraceroute。假如我们事先知道目标主机为Web服务器开放了TCP协议的80端口,那么就可以使用下述指令。
tcptraceroute www.example.com
tctrace
我们同样可以选用 tctrace 程序分析路由信息。这个程序通过向目标主机发送 TCP SYN数据包来获取相应信息。
tctrace -i<device> -d<targethost>
参数中的指的是网卡接口,则是被测试的目标主机。
例如,我们可以使用下述指令获取本机和www.example.com之间的路由信息。
tctrace -i eth0 -d www.example.com
搜索引擎
目标识别
arping
我们使用arping程序判断某MAC地址的主机是否在线。
arping 192.168.56.102 -c 1
此时可以使用下述arping指令检测192.168.56.102是否被他人占用。
arping -d -i eth0 192.168.56.102 -c 2
fping
存活主机检测
fping -g 192.168.56.0/24
识别操作系统
p0f
p0f采用被动方式的方法探测目标主机的操作系统类型。这个工具可以识
别以下几种主机:
● 连接到您主机的机器(SYN 模式,即默认模式);
● 您主机可以访问的机器(SYN+ACK 模式);
● 您主机不能访问的机器(RST+模式);
● 您可以监控到其网络通信的机器。
nmap –O 192.168.56.102
服务枚举
端口扫描
nmap
TCP 连接扫描(-sT):指定这个选项后,程序将和目标主机的每个端
口都进行完整的三次握手。如果成功建立连接,则判定该端口是开放端口。
由于在检测每个端口时都需要进行三次握手,所以这种扫描方式比较慢,而
且扫描行为很可能被目标主机记录下来。如果启动Nmap的用户的权限不
足,那么默认情况下Nmap程序将以这种模式进行扫描。
● SYN 扫描(-sS):该选项也称为半开连接或者SYN stealth。采用该
选项后,Nmap将使用含有SYN标志位的数据包进行端口探测。如果目标主
机回复了SYN/ACK包,则说明该端口处于开放状态:如果回复的是RST/
ACK包,则说明这个端口处于关闭状态;如果没有任何响应或者发送了ICMP
unreachable信息,则可认为这个端口被屏蔽了。SYN模式的扫描速度非常
好。而且由于这种模式不会进行三次握手,所以是一种十分隐蔽的扫描方
式。如果启动Nmap的用户有高级别权限,那么在默认情况下Nmap程序将以
这种模式进行扫描。
● TCP NULL(-sN)、FIN(-sF)及XMAS(-sX)扫描:NULL 扫描不
设置任何控制位;FIN扫描仅设置FIN标志位:XMAS扫描设置FIN、PSH和
URG的标识位。如果目标主机返回了含有 RST 标识位的响应数据,则说明该
端口处于关闭状态;如果目标主机没有任何回应,则该端口处于打开|过滤
状态。
● TCP Maimon扫描(-sM):Uriel Maimon 首先发现了TCP Maimom
扫描方式。这种模式的探测数据包含有FIN/ACK标识。对于BSD衍生出来的
各种操作系统来说,如果被测端口处于开放状态,主机将会丢弃这种探测数
据包;如果被测端口处于关闭状态,那么主机将会回复RST。
● TCPACK 扫描(-sA):这种扫描模式可以检测目标系统是否采用了数
据包状态监测技术(stateful)防火墙,并能确定哪些端口被防火墙屏蔽。这
种类型的数据包只有一个ACK标识位。如果目标主机的回复中含有RST标
识,则说明目标主机没有被过滤。
● TCP 窗口扫描(-sW):这种扫描方式检测目标返回的RST数据包的
TCP窗口字段。如果目标端口处于开放状态,这个字段的值将是正值;否则
它的值应当是0。
● TCP Idle 扫描(-sI):采用这种技术后,您将通过指定的僵尸主机发
送扫描数据包。本机并不与目标主机直接通信。如果对方网络里有IDS,IDS
将认为发起扫描的主机是僵尸主机。
Nmap的scanflags选项可设定自定义的TCP扫描方式。这个选项的参数可
以用数字表示(例如,9代表PSH和FIN标识)。这个选项也支持标识位的符
号缩写。在使用符号缩写时,仅需要将URG、ACK、PSH、RST、SYN、
FIN、ECE、CWR、ALL和NONE以任意顺序进行组合。例如:–scanflags
URGACKPSH 将设置URG、ACK 和PSH 标识位。
UDP扫描仅有一种扫描方式(-sU)
默认情况下,Nmap将从每个协议的常用端口中随机选择1000个端口进
行扫描。其nmap-services文件对端口的命中率进行了排名。
如需更改端口配置,可使用Nmap的以下几个选项。
● -p端口范围:只扫描指定的端口。扫描1~1024号端口,可设定该选
项为–p 1-1024。扫描1~65535端口时,可使用-p-选项。
● -F(快速扫描):将仅扫描100 个常用端口。
● -r(顺序扫描):指定这个选项后,程序将从按照从小到大的顺序扫
描端口。
● --top-ports <1 or greater>:扫描nmap-services 里排名前N 的端
口。
Nmap支持以下几种输出形式。
●
交互(屏幕)输出:Nmap把扫描结果发送到标准输出设备上(通常
为终端/控制台),这是默认的输出方式。
● 正常输出(-oN):与交互输出类似,但是不显示runtime 信息和警告
信息。
● XML 文件(-oX):生成的 XML 格式文件可以转换成 HTML 格式文
件,还可被Nmap 的图形用户界面解析,也便于导入数据库。本文建议您尽
量将扫描结果输出为XML文件。
规避检测的选项
在渗透测试的工作中,目标主机通常处于防火墙或 IDS 系统的保护之
中。在这种环境中使用 Nmap 的默认选项进行扫描,不仅会被发现,而且往
往一无所获。此时,我们就要使用Nmap规避检测的有关选项。
●
-f(使用小数据包):这个选项可避免对方识别出我们探测的数据
包。指定这个选项之后,Nmap将使用8字节甚至更小数据体的数据包。
●
–mtu:这个选项用来调整数据包的包大小。MTU(Maximum
Transmission Unit,最大传输单元)必须是8的整数倍,否则Nmap将报错。
● -D(诱饵):这个选项应指定假 IP,即诱饵的 IP。启用这个选项之
后,Nmap 在发送侦测数据包的时候会掺杂一些源地址是假IP(诱饵)的数
据包。这种功能意在以藏木于林的方法掩盖本机的真实 IP。也就是说,对方
的log还会记录下本机的真实IP。您可使用RND生成随机的假IP地址,或者用
RND:number的参数生成个假IP地址。您所指定的诱饵主机应
当在线,否则很容易击溃目标主机。另外,使用了过多的诱饵可能造成网络
拥堵。尤其是在扫描客户的网络的时候,您应当极力避免上述情况。
● --source-port 或-g(模拟源端口):如果防火墙只允
许某些源端口的入站流量,这个选项就非常有用。
●
–data-length:这个选项用于改变Nmap
发送数据包的默认数据长
度,以避免被识别出来是Nmap的扫描数据。
● --max-parallelism:这个选项可限制Nmap 并发扫描的最大连接数。
●
–scan-delay
识别VPN服务器
ike-scan -M -A –Pike-hashkey 192.168.0.10
之后,我们使用psk-crack程序破解VPN连接的哈希值。有关指令如下。
psk-crack –d rockyou.txt ike-hashkey
此处,-d选项用于指定字典文件。
漏洞映射
exploitdb
cd /usr/share/exploitdb/
msfconsole
msfconsole
show auxiliary:列出全部的辅助工具模板。
● show exploits:列出框架下所有的漏洞利用程序。
● show payloads:列出所有平台下的有效载荷。如果已经选定了一个
漏洞利用程序,再使用该命令就只会显示相关的载荷。例如,Windows的载
荷将显示与 Windows相关的漏洞利用模板。
● show encoders:显示可用的编码工具模板。
● show nops:显示所有可用的NOP 生成程序。
● show options:显示指定模板的全部设置和选项信息。
● show targets:显示exploit 支持的操作系统类型。
● show advanced:列出所有高级配置选项,以便进行微调。
我们将最具价值的几个常用命令总结为下述表格。您可以在



提权
arpspoof
通过以下命令,对被测主机实施ARP欺骗。
arpspoof -t 192.168.65.129 192.168.65.1
Dsniff
Dsniff
能够在网络中捕获密码。目前,它可从以下协议中捕获密码:
FTP、Telnet、SMTP、HTTP、POP、poppass、NNTP、IMAP、SNMP、
LDAP、Rlogin、RIP、OSPF、PPTP
MS-CHAP、NFS、VRRP、YP/NIS、
SOCKS、X11、CVS、IRC、AIM、ICQ、
Napster、PostgreSQL、Meeting
Maker、Citrix
ICA、Symantec
pcAnywhere、NAI
Sniffer、Microsoft
SMB、Oracle SQL*Net、Sybase 以及Microsoft SQL。
如需启动dsniff程序,可在终端中使用下述指令。
dsniff -h
上述指令将会在屏幕上显示程序的使用说明。我们将使用它捕获FTP 密
码。在本例的演示中,FTP客户端的IP是192.168.2.20,服务器IP则是
192.168.2.22,这两台主机通过集线器连接。攻击人员的主机IP为
192.168.2.21。
在攻击人员的测试主机上执行下述指令。
dsniff -i eth0 -m
其中,选项-i eth0 将使Dsniff 程序监听eth0 网卡。而选项-m 则用于启
用程序的自动协议检测功能。
然后,在装有FTP客户端程序的主机上,使用客户端程序登录FTP服务
器。
dsniff的运行结果如下。
dsniff: listening on eth0
----------------
20/08/13 18:54:53 tcp 192.168.2.20.36761 -> 192.168.2.22.21 (ftp)
USER user
PASS user01
从中可以看到,dsniff捕获了客户端登录FTP服务器时所用的用户名和密
码。
相关文章:
【Kali】简单记录
文章目录 信息收集DNS记录分析hostdigdnsenum 路由信息tcptraceroutetctrace 搜索引擎 目标识别arpingfping 识别操作系统p0f 服务枚举端口扫描nmap识别VPN服务器 漏洞映射exploitdbmsfconsole 提权arpspoofDsniff 信息收集 DNS记录分析 host host www.example.com host -a …...
【数据结构】:队列的实现
队列 队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队…...
415. 字符串相加
415. 字符串相加 class Solution { public:string addStrings(string num1, string num2){//i j分别指向当前字符串的最后一位int i num1.length() - 1;int j num2.length() - 1;int add 0;string s "";//不要忽略两个串都遍历完了 但是还有一个进位while (i …...
交通 | python网络爬虫:“多线程并行 + 多线程异步协程
推文作者:Amiee 编者按: 常规爬虫都是爬完一个网页接着爬下一个网页,不适应数据量大的网页,本文介绍了多线程处理同时爬取多个网页的内容,提升爬虫效率。 1.引言 一般而言,常规爬虫都是爬完一个网页接着…...
LeetCode:1488. 避免洪水泛滥(2023.10.13 C++)
目录 1488. 避免洪水泛滥 实现代码与解析: 贪心 原理思路: 1488. 避免洪水泛滥 题目描述: 你的国家有无数个湖泊,所有湖泊一开始都是空的。当第 n 个湖泊下雨前是空的,那么它就会装满水。如果第 n 个湖泊下雨前是…...
SpringBoot 时 jar 报错 没有主清单属性
SpringBoot 时 jar 报错 没有主清单属性 参考资料 使用阿里版 Spring Initializr 创建的项目。 springboot 2.6.13 JDK 1.8 这里自动开了skip。 注释后打的 jar 包就可以运行了。 <build><finalName>${name}</finalName><plugins><plugin><…...
C/S架构学习之多进程实现TCP并发服务器
多进程实现TCP并发服务器的实现流程:一、自定义信号处理函数(sig_func函数): void sig_func(int signum){wait(NULL);}wait函数: #include <sys/types.h>#include <sys/wait.h>pid_t wait(int *wstatus);/*功能&#…...
VSCode 快速移动光标至行尾
最近在用vscode进行C编程,经常需要把光标跳到行尾去添加符号。 手动到行尾太麻烦了。 一种快捷方式是:用键盘上的“END”快捷键。 但是用这个键也不是很方便,因为“end”键离主键盘区太远。 另一种便捷的方式是:给vscode设置自定义…...
ACP.复盘方法
复盘要怎么做的有水准,让领导满意,方式方法很重要。今天给你们安利5种复盘方法,保准你省事,领导还满意。 一、KPT复盘法 7月份年中一直在做和复盘相关的事,像公司的OKR复盘、年中战略规划,不过日常很多生…...
Springboot 订餐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 springboot 订餐管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有 完整的源代码和数据库&…...
判断当前Activity是否有DialogFragment显示
DialogFragment一种情况是在当前Activity上启动,一种情况是在Fragment上启动,判断当前fragmentManager上是否有,以及遍历判断子fragment上是否有,即可确定是否有DialogFragment展示。 使用方式: // supportFragmentMa…...
开发一个npm组件包(2)
通过vueelement 原来后台 开发npm包的时候 会遇到一下几个问题 入口文件变化为package/index 需要再配置打包方法 package.json下 "scripts": {"package": "vue-cli-service build --target lib ./src/package/index.js --name managerpage --dest…...
迅为RK3568开发板Scharr滤波器算子边缘检测
本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程\04_OpenCV 开发配套资料\33”目录下,如下图所示: 在 Sobel 算子算法函数中,如果设置 ksize-1 就会使用 3x3 的 Scharr 滤波器。Scharr 算子是 Soble 算子在 ksize…...
HJ86 求最大连续bit数
目录 一、题目 二、代码 一、题目 求最大连续bit数_牛客题霸_牛客网 二、代码 #include <iostream> #include<stack> #include<vector> using namespace std; void TEN_to_TWO(int x, vector<int>& data) { //10进制转换成二进制stack<int&…...
Grafana 10 新特性解读:体验与协作全面提升
作者:徽泠(苏墨馨) 为了庆祝 Grafana 的 10 年里程碑,Grafana Labs 推出了 Grafana 10,这个具有纪念意义的版本强调增强用户体验,使各种开发人员更容易使用。Grafana v10.0.x 为开发者与企业展示卓越的新功能、可视化与协作能力&…...
Django实现音乐网站 ⒆
使用Python Django框架做一个音乐网站, 本篇主要为排行榜功能及音乐播放器部分功能实现。 目录 推荐排行榜优化 设置歌手、单曲跳转链接 排行榜列表渲染优化 视图修改如下: 模板修改如下: 单曲详情修改 排行榜列表 设置路由 视图处理…...
20基于MATLAB的车牌识别算法,在环境较差的情景下,夜间识别度很差的车牌号码可以精确识别出具体结果,程序已调通,可直接替换自己的数据跑。
基于MATLAB的车牌识别算法,在环境较差的情景下,夜间识别度很差的车牌号码可以精确识别出具体结果,程序已调通,可直接替换自己的数据跑。 20matlab车牌识别 (xiaohongshu.com)...
vue音频制作
Vue 音频制作指的是使用 Vue.js 框架开发音频制作相关的 Web 应用程序。Vue.js 是一种现代化的 JavaScript 框架,它可以帮助开发者更快速、更高效地构建交互式的 Web 应用程序。 音频制作在 Vue.js 中的实现可以通过使用一些开源音频库和插件来实现,如 …...
好莱坞编剧大罢工终于结束;与OpenAI创始人共进早餐;使用DALL-E 3制作绘本分享;生成式AI的基础设施架构 | ShowMeAI日报
👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 好莱坞编剧大罢工终于结束:简单说就是AI妥协了 https://www.wgacontract2023.org/the-campaign/summary-of-the-2023-wga-…...
buuctf week2-web-ez_sql
闭合之后尝试判断字段数,存在WAF,使用大小写绕过(后面的sql语句也需要进行大小写绕过) ?id1 Order by 5-- 测出有5列 ?id1 Order by 6-- 查一下数据库名、版本、用户等信息 ?id1Union Select database(),version(),user(),4,…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
