声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)
目录
2. locate (local.db) sudo updatedb、locate whomai.exe
3. "find ~ -mtime 2 -ls | sort -k9 -k10 | more"
4. "find. -type f -iname '*.sh' -mmin -30 -ls"
5. "find. -name ‘* .svn ‘ -exec rm -rf {} \";
6. "find /-user root -type f -perm -o=w -name '*.sh' 2>/dev/null"
一、MD5加密与哈希加密
1、openssl passwd -1 123
openssl 是一个开源的工具包,提供了各种加密、解密、签名、验证等功能
-1 参数指顶使用MD5加密算法对密码“123”进行加密处理。
MD5是一个常用的哈希值算法,它将任意长度的输入数据转换成固定长度的输出(通常是128位的哈希值)。使用这个命令将“123”生成为MD5加密后的密文。
2、openssl passwd -5 123
openssl 是加密工具包passwd用于密码处理。
-5 参数表示使用SH-256哈希算法对密码“123”进行哈希加密处理。
SHA-256是一种更安全的哈希算法,它生成的哈希值长度为256位。每次对相同的密码进行SHA-256加密时,由于加密过程中通常会引起随机因素(如盐值等),所以每次生成的密文都是部一样的,这增加了密码的安全性,即使攻击者获得了密文,也很难通过逆向计算机得到原始密码。
二、文件管理
描述 | 命令 |
创建空文件 | touch newfile |
删除文件 | rm newfile |
新建目录 | mkdir newdir |
删除空目录 | rmdir newdir |
重命名文件 | mv file.txt newdir.txt |
移动文件 | mv nefile newdir2 |
拷贝文件 | cp file.txt newdir.txt |
软连接 | ln -s original.txt symlink.txt |
硬连接 | ln ~/offsec123.txt hardlink.txt |
三、搜索文件
1. which echo $PATH
"which":
作用是查找命令的可执行文件路径。例如,如果你想知道 "ls"命令在系统中的具体位置,可以使用 "which ls"。
"echo $PATH":
"echo" 是用于输出内容的命令。
"PATH" 所列出的目录中依次查找该命令的可执行文件。
2. locate (local.db) sudo updatedb、locate whomai.exe
"locate (local.db)":
"locate" 命令用于快速查找文件,他通过查询一个预先构建的文件数据库来实现。
"(local.db)" 在这里具体的作用,可能是在特定情境下与"local.db"相关的查找操作,但一般来说,单独使用 "locate" 后面跟文件名或部分文件名可以查找相应的文件。
"sudo updatedb":
"sudo" 用于以管理员权限执行命令的前缀。
"updatedb" 用于更新 "locate" 命令使用的文件数据库。这个操作可能需要一些时间,因为它会扫描整个文件系统并将文件信息添加到数据库中。
"locate whoami.exe"
使用 "locate" 命令查找名为 "whoami.exe" 的文件在系统中的位置。如果系统中有这个文件,该命令会输出其路径。
find
3. "find ~ -mtime 2 -ls | sort -k9 -k10 | more"
"find ~" 表示在用户的主目录(“ ~ ” 代表主目录)下进行查找。
"-mtime 2" 表示查找在两天内被修改过的文件。
"-ls" 用于以长列表形式显示找到的文件信息。
"|" 是管道符号,将前一个命令的输出作为后一个命令输入。
"sort -k9 -k10" 是按照第九列和第十列的内容对文件信息进行排序。
"more" 用于分页显示结果,方便查看。
4. "find. -type f -iname '*.sh' -mmin -30 -ls"
"-type f" 表示查找类型为普通文件。
"-iname '*.sh' " *.sh 表示查找所有以 ".sh " 为后缀的文件,注意这里的空格可能会导致不准确匹配,一般通配符应该紧贴在前面的字符后面,比如 "*sh".
"-mmin -30" 表示查找在 30 分钟内修改过的文件。
"-ls" 用于以长列表形式显示找到的文件信息。
5. "find. -name ‘* .svn ‘ -exec rm -rf {} \";
"find." 在当前目录下查找。
"-name '*.svn' " 查找为 ".svn" 的文件或目录。
"-exec rm -rf {} \;" 表示对找到的每个结果执行 "rm -rf" 命令,即删除找到的文件或目录。
6. "find /-user root -type f -perm -o=w -name '*.sh' 2>/dev/null"
"find /" 在整个文件系统(根目录 " / ")下查找。
"-user root" 表示查找所有者为 "root" 用户进行。
"f -perm -o=w" 表示查找类型为普通文件。
"-name '*.sh' " 表示查找其他用户有写权限的文件。
"2>/dev/null" 将错误输出重定向到 " /dev/bull" ,即不显示错误信息。
四、用户账号数据库
用户账号数据库 /etc/password、/etc/shadow
组账号 cat /etc/group
禁用账号 sudo passwd -l username、chage -E 1990-01-01 kali、passwd -S username
1. 用户账号数据库相关文件
/etc/passwd:
这是一个重要的系统文件,存储了系统中用用户账号的基本信息。
每行代表一个用户,包含了用户名、密码占位符、用户ID、用户组ID、用户描述信息、用户主目录、用户默认shell等字段。
/etc/shadow:
这个文件也与用户账号相关,主要存储用户密码的加密信息以及密码的一些属性,如密码最后一次修改时间、密码最短使用期限、密码最长使用期限。
2. 组账号相关命令
cat /etc/group 查看用户账号信息的同时,也可以间接了解用户所属的组信息,因为其中包含了用户组ID。但这并不是专门用于查看账号的最佳方式,通常使用cat /etc/group来查看组账号信息。
3.禁用账号相关命令
sudo passwd -l username:
"sudo" 表示以管理员权限执行命令。
"passwd" 是用于管理用户密码的命令。
"-l" 选项用于锁定用户账号。当执行这个,命令后,指定的 "username" 用户将被锁定,无法登录系统
chage -E 1990-01-01 kali:
"chage" 命令用于修改用户密码的过期信息。
"-E" 选项后面跟着一个日期,表示设置用户账号的过期时间。在这个例子中,将 "kali" 用户用户的过期时间设置为。"1990 01-01" ,通常意味着在这个日期之后该帐号将于法使用、除非重新设置过期时间或进行其他管理操作。
passwd -S username:
"passwd" 命令的另一个用法。
"-S"选项用于显示指定用户账号的密码状态信息,包括账号是否被锁定、密码是否已设置、密码最后一次修改时间等。
五、文件系统权限
linux 系统中一切都是文件。在linux系统中,几乎所以支援资源都被抽象为文件,包括硬件设备(如硬盘、网卡等)、进程间通信、网络连接等。这种设计理念使得各种资源的管理可以统一绕过的文件操作方式来进行,大大简化了系统的架构和管理。
描述 | 命令 |
查看权限 | ls -la /etc/passwd |
更改文件所有者 | chown root file |
修改文件权限 | sudo chmod u=rwx,g+rw,o-r file,sudo chmod u+x,g+w,o-r file,chmod 400 <file> |
1.查看权限
ls -la /etc/passwd:
ls 是列出目录内容的命令。
-l 选项以长格式显示文件信息,包括文件的权限、所有者、所属组、文件大小、修改时间等详细信息。
-a 选项显示包括隐藏文件在内的所以文件。
/etc/passwd 是要查看的文件路径,这个文件存储了系统用户账号的基本信息。通过这个命令可以看到 /etc/passwd 文件的权限设置、所有者、所属组等信息。
2.更改文件所有者
chown root file:
chown 是改变文件使用者的命令。
root 是新的所有者用户名,这里表示将文件的所有者改为”root”用户。
file 是要更改所有者的文件名称。执行这个命令后,文件所有者将变成”root”用户。
3.修改文件权限
sudo chmod u=rwx,g+rw,o-r file:
sudo 表示以管理员权限执行命令。
chmod 是改变文件权限的命令。
u=rwx 表示文件所有者(user)具有读(r)、写(w)、执行(x)权限。
g+rw 表示文件所属组(group)增加读(r)、写(w)权限。
o-r 表示其他用户(other)去除读(r)权限。
file 是要修改权限的文件名称。
sudo chmod u+x,g+w,o-r file:
同样以管理员权限执行修改文件权限的操作。
sudo 表示以管理员权限执行命令。
chmod 是改变文件权限的命令。
u+x 表示给文件所有者增加执行权限。
g+w 表示给文件所属组增加写权限。
o-r 表示去除其他用户的读权限。
file 是目标文件
chmod 400 <file>:
chmod 命令直接以数字方式设置文件权限。
400 是权限的数字表示,其中第一位数字”4”,表示文件所有者的权限,这里代表读权限(r),因为读权限对应的数字是4;后两位数字”00”,分别表示文件所属组和其他用户没有任何权限。
六、系统日志
描述 | 命令 |
系统日志 | ls -l /var/log |
认证信息日志 | sudo tail -3 /var/log/auth.log |
二进制日志 | who /var/log/wtmp | tail -5 |
显示内核环形缓冲区中的信息 | dmesg |
systemd日志 | jou rnalctl |
1.系统日志相关命令
ls -l /var/log:
ls 是列出目录内容的命令。
-l 选项以长格式显示文件和目录的详细信息,包括权限、所有者、所属组、文件大小、修改时间等。
/var/log 是系统日志文件所在的目录。执行这个命令可以查看该目录下的日志文件列表及相关信息。
2.认证信息日志相关命令
sudo tail -3 /var/log/auth.log:
sudo 表示以管理员权限执行命令。
tail 命令用于查看文件的末尾部分。
-3 表示显示文件的最后3行内容。
/var/log/auth.log 是存储系统认证信息的日志文件,包括用户登录、认证失败等信息。执行这个命令可以查看最近的三条认证相关的日志记录。
3.二进制日志相关命令
who /var/log/wtmp | tail -5:
who 命令用于显示当前登录的用户信息。
/var/log/wtmp 是一个二进制日志文件,记录了系统的登录和注销信息。
| 是管道符合,将前一个命令的输出作为后一个命令的输入。
tail -5 表示显示最后5行内容。执行这个命令可以查看最近的五次登录或注销记录。
4.dmesg
dmesg: 这个命令用于显示内核环形缓冲区中的信息,包括系统启动时的硬件检测信息、内核模块加载信息、设备驱动的初始化信息等。它可以帮助用户了解系统的硬件状态和内核的运行情况。
5.systemd 日志相关信息
jou rnalctl: 这是一个用于查看和管理systemd日志的命令。systemd是linux系统的初始化系统和服务管理器,它会记录系统和服务的启动、运行和错误信息等日志。 jou rnalctl
可以根据不同的参数来筛选、查看特定时间段、特定服务或特定优先级的日志记录。
七、存储管理
描述 | 命令 |
内存使用量 | free -m |
磁盘使用量 | df -hT |
文件或目录大小 | sudo du. /* -hsc |
查看硬盘分区 | sudo fdisk -l |
挂载分区 | sudo mount /dev/sdb1/mnt/usb |
1.内存使用量
free -m:
free 命令用于显示系统内存的使用情况。
-m 选项表示以兆字节(MB)为单位显示内存信息。执行这个命令后,会显示系统的总内存、已使用内存、可用内存、缓冲内存和缓存内存等信息,帮助用户了解系统当前的内存使用状态。
2.磁盘使用量
df -hT:
df 命令用于显示磁盘空间使用情况。
-h 选项表示以人类可读的格式(如KB、MB、GB等)显示磁盘空间大小。
-T 选项显示文件系统类型。执行这个命令可以查看各个磁盘分区的总大小、已使用空间、可用空间以及条件系统类型等信息。
3.文件或目录大小
sudo du. /* -hsc:
sudo 表示以管理员权限执行命令。
du 命令用于统计文件或目录的磁盘使用空间。
. /* 表示当前目录下的所有文件和目录。
-h 选项以人类可读的格式显示大小。
-s 选项表示汇总显示每个参数的总大小。
-c 选项表示在最后显示总计。执行这个命令可以查看当前目录下每个文件和目录的大小,并在最后显示总计大小。
4.查看硬盘分区
sudo fdisk -l:
sudo 表示以管理员权限执行命令。
faisk 是一个磁盘分区工具。
-l 选项表示列出系统中的所有磁盘分区信息,包括磁盘的大小、分区类型、分区编号、起始和结束扇区等。这个命令可以帮助用户了解系统的硬盘分区情况。
5.挂载分区
sudo mount /dev/sdb1/mnt/usb
sudo 表示以管理员权限执行命令。
mount 命令用于将一个文件系统的磁盘分区设备路径。
/dev/sdb1 是要挂载的磁盘分区设备路径。
/mnt/usb 是挂载点,既要将分区挂载到的目录。执行这个命令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样。
八、基本网络枚举
1.基本网络工具
ipconfig、ipaddr、sudo ifdown eth0、sudo ifup eth0
ipconfig:是一个用于配置和显示网络接口信息的命令行工具,它可以显示网络接口的IP地址、子网掩码、MAC地址等信息,还可以用于启动、停止或配置网络接口。
ip addr:也是用于查看和管理网络接口的执行命令,它提供了比ifconfig更详细和灵活的网络接口信息显示,包括接口的状态、IP地址、子网掩码、广播地址等。
suod ifdown eth0:
sudu 表示以管理员权限执行命令。
ifdown 用于关闭指定的网络接口
eth0 是网络接口名称,这里表示关闭名为”eth0”的网络接口。
sudo ifup eth0:
sudu 表示以管理员权限执行命令。
ifup 用于启动指定的网络接口。
eth0 表示启动名为”eth0”的网络接口。
2.网络配置
/etc/network/interfaces、Networkmanager
/etc/network/interfaces: 这是一个系统文件,用于配置网络接口的静态IP地址、子网掩码、网关等信息,在一些linux发行版本中,通过编辑这个文件可以实现网络接口的手动配置。
Networkmanager: 是一个动态网络控制和配置守护进程,它可以自动管理网络连接,包括有限网络、无线网络和vpn连接等。提供了图形界面和命令工具来配置和网络管理,使得网络配置更加方便和灵活。它可以自动检测网络变化,并根据配置自动连接到可用的网络。
九、网络连接枚举
描述 | 命令 |
网络连接 | netstat -n -a -t -u -p ss -natup |
二层地址 | arp -en |
路由信息 | route、iproute、sudo IP route add 10.13.37.0/24 dev eth1 |
路由跟踪工具 | traceroute offensive-security.com |
1.网络连接状态查看工具
netstat -natup:
netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令。
-n 选项表示以数字形式显示地址和端口号,避免镜像域名解析。
-a 选项显示所有的连接和监听端口。
-t 选项显示TCP连接。
-u 选项显示UDP连接。
-p 选项显示与连接相关的进程ID和程序名称。执行这个命令可以查看系统当前的网络连接状态,包括连接的协议、本地地址和端口、远程地址和端口信息。
ss -natup:
ss 是另一个用于显示网络套接字状态的工具,它比natstat更快速和高效。
选项的含义与netstat中的类似,用于显示TCP和UDP连接的状态、地址和端口信息,以及相关的进程信息。
2.二层地址查看工具
arp -en:
arp 是地址解析协议的工具。
-e 选项以详细格式显示ARP缓存表。
-n 选项以数字形式显示ip地址,避免进行域名解析。执行这个命令可以查看系统的ARP缓存表,其中包含了ip地址和对应的MAC地址映射关系,用于在局域中进行二层地址解析。
3.路由信息相关工具
route:
用于显示和管理系统的路由表。
可以查看系统当前的路由信息,包括目标网络、网关、子网掩码等。还可以用于添加、删除或修改路由条目。
iproute:
是ip命令的一部分,用于管理系统的路由表。
它提供了一个更强大和灵活的路由管理功能,可以进行更复杂的路由配置操作。
sudo ip route add 10.13.37.0/24 dev eth1:
sudu 表示以管理员权限执行命令。
ip route add 用于添加一条路由器。
10.13.37.0/24 是目标网络地址和子网掩码。
dev eth1 表示通过名为”eth1”网络接口达到这个目标网络,执行这个命令可以像系统的路由表中添加一条路由,指定如何达到特定的网络。
4.路由跟踪工具
traceroute offensive-security.com:
traceroute 是一个用于跟踪数据包从本地主机到目标主机经过的路由路径的工具。
offensive-security.com 是目标网络主机的域名活IP。执行这个命令会逐条显示数据经过路由器的ip地址和相应,帮助乱用户了解网络连接和可能存在的网络问题。
十、ssh服务
描述 | 命令 |
启动服务 | sudo systemctl start ssh |
连接本地主机 | ssh root@localhost |
配置文件 | /etc/ssh/sshd config |
客户端配置 | hashknownHosts yes、~/. ssh |
1.启动服务
sudo systemctl start ssh:
sudu 表示以管理员权限执行命令。
systemctl 是用于管理系统服务的工具。
start ssh 是启动名为 "sh" 的服务,也是启动SSH服务器,使得其他设备可以通过SSH协议连接到这台主机。
2.连接本地主机
ssh root@localhost:
ssh 是secure shell的客户端命令。
root 表示以”root”用户身份进行登录。
@localhost 表示连接到本地主机。执行这个命令可以使用SSH协议以”root”用户登录到本地主机,如果SSH服务以启动且配置正确,并且用户有相应的权限,就可以成功登录并获取一个远程命令行会话。
3.配置文件
/etc/ssh/sshd config:
这是SSH服务器的主要配置文件。
其中包含了各种参数,可以用来配置SSH服务器的行为,比如端口号、允许的登录用户、认证方式、访问控制等。通过编辑这个文件,可以根据具体需求对SSH服务器进行定制化配置。
4.客户端配置
hashknownHosts yes、~/. ssh:
通常情况下,~/. ssh/known_hosts文件用于存储已知的远程主机的公钥信息,以确保连接的安全性。这个配置选项可能是指示对已知主机文件中进行哈希处理,这样可以提高一定的安全性,但是具体效果可能因不同的SSH实现而有所差异。
~/. ssh 这是用户主目录的一个目录,用于存储SSH客户端的配置和相关文件。
通常包含私钥文件(如id_rsa)、公钥文件(如id_rsa.pub)以及已知主机文件(known_hosts)等。这些文件用于SSH客户端的身份认证和连接管理。
十一、远程拷贝
scp root@1.1.1.1:/home/kali/.bashrc Copiedbashrc:
scp 是secoure copy的缩写,用于不同主机之间安全的复制文件。
root@1.1.1.1 表示从IP地址为1.1.1.1的主机上以”root”用户身份进行操作。
home/kali/.bashrc 是源文件路径,即要从远程主机上复制文件。
Copiedbashrc 是目标文件名称或目标路径,既将远程文件复制到本地后的名称和存放位置。这个命令会从指定的远程主机复制 .bashrc 文件到本地,并命名为 Copiedbashrc 。
scp passwd -p kali ssh root@127.0.0.1
查看历史命令 history
这个命令用于显示命令历史记录,即之前在当前终端会话中执行过的命令列表。可以通过查看历史记录来快速重复执行之前的命令,或者查找之前执行过的特定命令。