道德黑客,也被称为“白帽黑客”,是指那些使用黑客技术来帮助企业和组织提高其信息系统的安全性的人。与恶意黑客(黑帽黑客)不同,道德黑客的目标是识别并修补系统中的漏洞,以防止潜在的攻击和数据泄露。
活动和目的:
道德黑客需要掌握一系列技术和技能,以便有效地执行他们的任务,包括:
道德黑客在现代信息安全中扮演着重要角色,他们通过积极主动的测试和评估,为企业和组织提供关键的安全保障,预防潜在的网络攻击和数据泄露。
虚拟机和 Docker 都是用于在单个物理机器上运行多个隔离环境的技术,但它们在实现机制和用途上有一些显著区别:
总的来说,虚拟机提供了完整的系统级虚拟化,适合于运行不同操作系统;而Docker则专注于应用级别的虚拟化,旨在提高软件交付和部署的效率。选择哪种技术取决于具体的需求和应用场景。
开源性质 Linux内核及大部分工具都是开源的,可以自由获取和查看源代码,方便学习和定制。这为道德黑客提供了一个良好的学习环境,可以深入了解各种系统原理和工作机制。
强大的命令行工具 Linux拥有丰富的命令行工具,如nmap、wireshark、metasploit等著名的网络扫描、数据包捕获和渗透测试工具,非常适合道德黑客的需求。这些工具在Windows下往往需要使用替代品。
高度可定制性 Linux的高度可定制性允许用户根据需求定制和优化整个操作环境,增强系统安全性。道德黑客可以编译定制化内核、配置防火墙等,打造适合实验的专用环境。
虚拟化支持 Linux对虚拟化技术有良好的支持,如KVM、Docker等,方便在单机上构建多个隔离的测试环境,减少对物理机的依赖。
活跃的社区 围绕Linux有着活跃的开源社区,可以获取大量学习资源、工具和最新信息,有利于道德黑客技能的提升。
sudo reboot
sudo su
就会转换为root用户,退出使用exit命令。最高用户。NAT方式或者桥接网络方式。
通过ping www.google.com可以发现网络是设置好的,在虚拟机的setting上可以看到使用的是NAT,通过sudo ifconfig,可以看到给我们分配的是10.0.2.15是虚拟机给我们的range,这和我们本地的range是不一样的,我们本地基本是192之类的。
这时候,去虚拟机的setting将NAT方式改为Bridged Adapter桥接适配器方式。勾选cable connected。然后再ifconfig就会有不同的range了,是和自己的主机host同一层的range。(我的情况没有立刻反应,于是我sudo reboot了就OK了)
当无法选择桥接模式,也可以选择NAT Network,使得内部的虚拟机之间可以通信,设置的时候,需要使用tool-preference进行NatNetwork的手动添加。
一些知识笔记:
安装Kali后应该做的事:文章链接。
Bridged Networking (桥接网络)是虚拟机和宿主机之间网络连接的一种方式。在这种模式下,虚拟机就像是直接连接在同一个网络上的独立主机。桥接网络的工作原理如下:
使用桥接网络的主要优势是:
因此,桥接网络更适用于开发、测试以及教学等场景,而对于生产环境则需要根据具体需求权衡使用。
Cable Connected选项通常出现在虚拟机的网络设置中,用于指定该虚拟机的网络连接方式。
当”Cable Connected”选项被勾选时,意味着该虚拟机将模拟一个真实的以太网卡并与宿主机或外部网络建立连接。否则,虚拟机将断开网络连接。
具体来说,”Cable Connected”选择有以下几种常见的网络连接模式:
NAT(Network Address Translation,网络地址转换)和NAT Network在VirtualBox虚拟机网络设置中是两种不同的网络模式,NAT模式是将单个虚拟机连接到外部网络的简单方式。而NAT Network则创建一个独立的虚拟网络,多个虚拟机可以在其中通信,并通过共享NAT网关访问外部网络,更接近真实NAT网络环境。NAT Network相对于NAT模式增加了模拟和测试复杂网络场景的能力,但也相对复杂一些。
桥接模式:虚拟机就像直接连在同一物理网络上,可以直接与外部通信,有独立IP。适合模拟真实网络环境。
仅主机(Host-Only):虚拟机与宿主机构成一个独立的虚拟网络,不与外部网络相连。适合测试内部网络通信。
内部网络:多个相关虚拟机直接组成一个虚拟网络,不与宿主机或外网相连,隔离环境。
通过勾选或取消”Cable Connected”,可以快速启用或禁用虚拟机的网络连接功能,方便调试和模拟不同的网络场景。一般在正常使用虚拟机时,建议保持该选项勾选以保持网络通信。
渗透测试(Penetration Testing)是一种评估网络或系统安全性的方法,通常分为五个主要阶段:
侦查(Reconnaissance) 收集目标系统或网络的信息,如IP地址范围、域名、服务版本等,为后续测试做准备。
扫描(Scanning) 对目标系统进行端口扫描、服务枚举,识别运行中的服务和可能存在的漏洞。
获取访问(Gaining Access) 利用发现的漏洞,通过各种技术和工具(如溢出攻击、社会工程学等)试图获得目标系统的访问权限。
维持访问(Maintaining Access) 在获取初始访问后,安装后门、植入持久性恶意软件等,试图在系统中保持控制权。
清除痕迹(Covering Tracks) 清除渗透测试期间留下的日志和任何入侵痕迹,尽量不引起目标系统管理员的怀疑。
这五个阶段环环相扣,并非总是线性进行。渗透测试人员可能在任何阶段返回上一步骤,以获取更多信息或尝试新的攻击方式。
整个过程的目的是全面评估系统面临的真实威胁,了解网络防御的薄弱环节,并为系统加固提供依据,以提高整体网络安全性。当然,渗透测试需要事先获得明确授权,并遵守相关法律法规。
ping
命令是一种网络工具,用于测试主机之间的连接状态,同时它的信息中是包含目标ip地址的。它通过发送ICMP(Internet Control Message Protocol)回显请求消息到目标主机,并等待目标主机返回响应,从而确定主机之间的通信是否正常。ping google.com
nslookup google.com
whois google.com
whatweb --help
: get help informationwhatweb arh.bg.ac.rs -v
: get information, -v
or --verbose
make the output readable and get more information about pluginwhatweb 192.168.1.1-192.168.1.255 --aggression 3 -v
:使用普通模式进行本地range的扫描,使用--no-errors
可以将没有信息的ip错误过滤。--log-verbose=filename
可以将输出内容保存到指定文件。theHarvester --help
: get help informationtheHarvester -d mas.bg.ac.rs -b all
: -b
means the domain, -d
means the source, where you want to search the emails, -l
will limit the result num, default is 500.git clone link
python3 sherlock.py sherryuuer
在渗透测试中,扫描是一个重要的步骤。
过度扫描或者不当扫描可能会引起目标系统的警报,被视为攻击行为。因此需要遵守相关法规,获得足够授权,并采取适当的技术手段,避免给目标系统带来过多干扰。
扫描阶段收集到的信息对于接下来的渗透测试行动至关重要,如勒索、数据窃取、权限提升等,都需要依赖前期充分的信息收集和扫描工作。
arp
命令:–help,-a发现host。但是有时候扫不出来,必须先通信才出现。netdiscover
是一个网络侦察工具,用于在本地网络中发现活动设备及其相关信息。它通过ARP请求扫描网络,能够快速列出网络中所有在线的设备,包括它们的IP地址、MAC地址以及可能的主机名。适合在小型到中型网络中快速获取设备信息。netdiscover
:默认模式扫描本地子网。netdiscover -r <IP范围>
:扫描指定的IP范围,例如 netdiscover -r 192.168.1.0/24
。netdiscover -i <接口>
:指定网络接口,例如 netdiscover -i eth0
。
netstat -nr
显示网络路由表的内容。一般是子网的第一个IP。nmap
是一个网络扫描工具,用于网络发现和安全审计。它可以探测主机和服务,提供有关网络设备和服务的信息。man nmap
打开nmap的使用手册。nmap <ip>
扫描对象的开放端口。最多扫描1000个端口。nmap <ip-range>
扫描IP range比如:192.168.11.1-255,或者192.168.11.1/24sudo nmap -sS <ip>
进行TCP SYN扫描利用三次握手的前两步来快速、隐蔽地探测目标端口的状态。只发送SYN信号探测。收到SYN/ACK表示端口开放,收到RST表示端口是关闭状态。并不建立连接。需要管理权限。nmap -sT <ip>
通过正常的三次握手的TCP连接进行扫描,不需要sudo,容易被检测。nmap -sU <ip>
用于探测开放的UDP端口。通常比TCP扫描慢,因为UDP没有确认机制。nmap -sF <ip>
:执行 TCP FIN 扫描,探测防火墙和包过滤系统nmap -sX <ip>
:执行 TCP Xmas 扫描,发送带有 FIN、URG 和 PUSH 标志的包nmap -sN <ip>
:执行 TCP NULL 扫描,发送没有设置任何标志的包sudo nmap -sV <ip>
:进行服务和版本检测,确定开放端口运行的服务版本,一个端口就是一个运行的程序,检测的就是程序的服务版本。nmap -O <ip>
:进行操作系统检测,确定目标主机的操作系统,至少需要一个端口是开放的。nmap -sn <ip>
:执行 Ping 扫描,仅用于发现活动主机,不扫描端口nmap -p [port] <ip>
:扫描指定的端口范围,而不是所有端口,可以指定比如80,或者80,22,53,或者1-100指定范围nmap -F <ip>
:扫描前100个最常用的端口nmap -T4 <ip>
:进行快速扫描,提高扫描速度nmap --script [script] <ip>
:使用 Nmap 脚本引擎(NSE)执行自定义脚本扫描nmap -A <ip>
:执行高级扫描,包括操作系统检测、版本检测和 traceroutenmap -Pn <ip>
:跳过主机发现,直接进行端口扫描nmap -oN [filename] <ip>
:将扫描结果以普通文本格式保存到文件nmap -oX [filename] <ip>
:将扫描结果以 XML 格式保存到文件nmap -oG [filename] <ip>
:将扫描结果以 Grepable 格式保存到文件nmap -v <ip>
:进行详细扫描,输出更多详细信息
sudo nmap -f <ip>
:进行分片(fragmentation)扫描。分片扫描的主要目的是通过将一个大的数据包分割成多个较小的数据包来绕过某些防火墙和入侵检测系统(IDS),这些系统可能会基于包的大小或内容进行检测和过滤。具体来说,-f 选项会将 IP 数据包分成 8 字节的片段,这些较小的片段可以使某些网络安全设备难以重新组装和检查整个数据包,从而使扫描活动更不容易被检测到。sudo nmap -D <ip>
选项用于进行 “Decoy” 扫描。Decoy 扫描的目的是在扫描目标主机时使用伪装,掩盖真实扫描者的 IP 地址。通过这种方法,可以使目标主机的管理员难以判断真实的扫描源,从而提高扫描者的隐蔽性。具体来说,-D 选项会向目标主机发送来自多个虚假的 IP 地址(诱饵)的扫描请求,其中包括一个或多个诱饵 IP 和真实的扫描者 IP。这样,目标主机的日志中将记录多个来源的扫描活动,增加了识别真实扫描源的难度。sudo nmap -D RND:10 <target>
这个命令将生成 10 个随机的诱饵 IP 地址来进行扫描。sudo nmap -D decoy1,decoy2,decoy3 <target>
这个命令将使用 decoy1、decoy2、decoy3 这三个指定的诱饵 IP 地址来进行扫描。