- 博客(29)
- 收藏
- 关注
原创 bash 5.2中文修订5
当执行协进程时,shell 在执行 shell 的上下文中创建一个名为 NAME 的数组变量(请参阅 Arrays )。command 的标准输入通过管道连接到执行 shell 中的文件描述符,并且该文件描述符被分配给 NAME [1]。将命令列表放在括号之间会强制 shell 创建一个子 shell(请参阅 Command Execution Environment ),并且 list 中的每个命令都在该子 shell 环境中执行。由于协进程是作为异步命令创建的,因此 coproc 命令始终返回成功。
2024-01-27 23:02:51 542
原创 bash 5.2中文修订 第十部分 安装Bash
您可以通过给configure使用选项–prefix=PATH指定除/usr/local之外的其它安装前缀,或通过指定 ‘make install’ 运行时 ‘make’ 变量 prefix 的值(例如,‘使安装前缀= PATH’)。将安装 bash 到/fs1/bash-install/usr/local/bin/bash,将文档放入目录中/fs1/bash-install/usr/local/share,将内置命令安装到/fs1/bash-install/usr/local/lib/bash,等等。
2024-01-25 21:28:53 1590
原创 bash 5.2中文修订4
复合命令是 shell 编程语言的结构。每个构造都以保留字或控制运算符开始,并以相应的保留字或运算符终止。与复合命令关联的任何重定向(请参阅 Redirections )都适用于该复合命令中的所有命令,除非显式覆盖。在大多数情况下,复合命令描述中的命令列表可以通过一个或多个换行符与命令的其余部分分隔开,并且后面可以用换行符代替分号。Bash 提供循环结构、条件命令以及对命令进行分组并将其作为一个单元执行的机制。Bash 支持以下循环结构。请注意,无论何处 ‘;’(分号) 出现在命令语法的描述中,它可以被一个
2024-01-24 20:54:37 2512
原创 bash 5.2中文修订3
管道的退出状态是管道中最后一个命令的退出状态,除非启用了 pipefail 选项(请参阅 The Set Builtin )。如果启用 pipefail ,则管道的返回状态是最后一个(最右边)以非零状态退出的命令的值,如果所有命令成功退出,则返回零。’(分号), ‘&’(后台), ‘&&'(AND),或者 ‘||’(或)及 ‘|‘ (管道)分隔的一个或多个的命令组合,并可选择由 ‘;更复杂的 shell 命令由以多种方式排列在一起的简单命令组成:一是管道,其中一个命令的输出成为第二个命令的输入;
2024-01-23 20:03:44 1320
原创 bash 5.2中文修订2
在双引号内,后跟这些字符之一的反斜杠在shell解释后将被删除,反斜杠后面是没有特殊含义字符,反斜杠将保留。然后 shell 将这些标记解析为命令和其他结构,删除某些单词或字符的特殊含义,扩展其他单词或字符,根据需要重定向输入和输出,执行指定的命令,等待命令的退出状态,并使退出状态可用以便进一步检查或处理。本章简要总结了 shell 的结构组成:命令、控制结构、shell 函数、shell参数, shell扩展,重定向(重定向是一种从命名文件直接输入和输出的方法),以及 shell 如何执行命令。
2024-01-22 18:28:46 1410
原创 bash 5.2中文修订1
Bash 是 GNU 操作系统的 shell 或命令语言解释器。该名称是 “Bourne-Again Shell”的缩写,这是对 Stephen Bourne 的双关语,Stephen Bourne 是当前 的最早版本的作者,Unix shell sh出现在 Unix 的第七版贝尔实验室研究版本中。Bash 在很大程度上与 sh 兼容,并融合了 Korn shell ksh 和 C shell csh 的有用功能。
2024-01-21 16:32:44 1194
原创 Wargames与bash知识21
有一个git存储库位于ssh://bandit30-git@localhost/home/bandit30 git/repo通过端口2220。–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。–shortstat 只显示 --stat 中最后的行数修改添加移除统计。–abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。–name-only 仅在提交信息后显示已修改的文件清单。
2024-01-19 20:22:47 1439
原创 Wargames与bash知识20
关卡提示:有一个git存储库位于ssh://bandit29-git@localhost/home/bandit29 git/repo通过端口2220。用户bandit29git的密码与用户bandit29的密码相同。查看README,获得提示:生产分支没有密码。克隆存储库并查找下一级别的密码。
2024-01-17 18:56:58 486
原创 Wargames与bash知识19
有一个git存储库位于ssh://bandit28-git@localhost/home/bandit28 git/repo通过端口2220。用户bandit28git的密码与用户bandit28的密码相同。克隆存储库并查找下一级别的密码。查看README.d 未获取到密码。git太不熟悉了,需要找本书看看。
2024-01-16 21:30:45 925
原创 Wargames与bash知识18
如果这些对象被删除并被克隆存储库引用,则克隆的存储库将会损坏。当从已经借用另一个存储库中的对象的存储库本地克隆时,也可以使用此选项 - 新存储库将借用同一存储库中的对象,并且此选项可用于停止借用。要克隆到的新目录的名称。请注意,git repack如果在-l克隆的存储库中运行时没有选项,-s则会将源存储库中的对象复制到克隆存储库中的包中,从而节省磁盘空间clone -s。不要将克隆的存储库放置在它应该存在的位置,而应将克隆的存储库放置在指定的目录中,然后创建一个与文件系统无关的 Git 符号链接。
2024-01-15 10:55:22 1111
原创 Wargames与bash知识16
0009} |nc localhost 30002后发现,给端口30002发送字符串只执行了一次。虽然理论可行,但我在服务器没有实现,提示Wrong的错误到一定行数就像停止了一样。使用脚本发现效率奇低,每次循环发送一次字符,然后需等待阻塞结束才会执行下一次循环。回头看提示:有“您不需要每次都创建新的连接“提示,说明使用循环的方法不是最佳的选择。9999}\n符合要求,现在尝试发送到30002端口,这次很快就获得了密码。从关卡提示来看,我第一想到的循环,其次是构建四位数0001—9999。
2024-01-13 11:41:12 1104 1
原创 Wargames与bash知识15
脚本的目的是bandit24用户给用户bandit23留了一个“后门”,每分钟运行/var/spool/$myname/foo目录下,文件所有者是bandit23的所有脚本,如果脚本文件文件运行60秒未结束,发送信号9( SIGKILL)强制结束进程。根据关卡提示、上面的脚本和以前的经验,我们可以写一个脚本将/etc/bandit_pass/目录下的密码文件bandit24的内容通过重定向保存在/tmp下。拷贝/tmp/bdit24/bd24到/var/spool/ bandit24/foo。
2024-01-12 09:10:54 921 1
原创 Wargames与bash知识14
f, --fields=列表 只选中指定的这些域;仅使用f -b, -c 或-f 中的一个。-s, --only-delimited 不打印没有包含分界符的行。-b, --bytes=列表 只选中指定的这些字节。-c, --characters=列表 只选中指定的这些字符。N-M 从第N个开始到第M个之间(包括第M个)的所有字符、字节或域。-M 从第1个开始到第M个之间(包括第M个)的所有字符、字节或域。
2024-01-11 09:13:57 1117
原创 Wargames与bash知识13
在/etc/cron.d/中查找配置,并查看正在执行的命令。进入定时任务执行脚本目录,查看文件,发现几个.sh文件都有读权限,按个看看也无妨。年:非必须,可留空,可设置 1970-2099,可设置 ,-星期:必须,可选 0-7 或 sun-sta,可设置 ,-月:必须,可选 1-12或 jan-dec,可设置 ,-发现一个插曲,如果意外退出,短时间内登录是不需要密码的。分:必须,可选 0-59,可设置 ,-时:必须,可选 0-23,可设置 ,-日:必须,可选 1-31,可设置 ,-
2024-01-10 10:14:26 789 1
原创 Wargames与bash知识12
这个关卡是展现服务器端是如何实现的吧,不过细究的还有有很大的区别:那个关卡回复是自动的,但在这个关卡我们需要手动运行一个程序才能实现。使用左边的终端向端口11000发送字符串(端口可以自行指定,注意不要使用知名端口),使用右边的终端运行./suconnect 11000命令获得所需密码。请注意使用nohup需要将后台的进程的输出处理一下,shell退出以后,后台程序原本输出到屏幕的输出就无处可去了。使用&将命令放入后台,如果关闭了shell终端,后台的命令也会退出。可以使用jobs 查看后台运行的命令。
2024-01-09 12:10:16 1036
原创 Wargames与bash知识11
内核为每个进程维护的三个UID值。这三个UID分别是RUID(Real UID,实际用户ID)、EUID(Effective UID,有效用户ID)、SUID(Saved Set-user-ID,保存的设置用户ID)。UID:真实的用户ID 进程的UID就是其创建者的用户RUID, 用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录后一个UNIX系统后就唯一确定了他的RUID.EUID, 用于系统决定用户对系统资源的访问权限,通常情况下等于RUID。SUID,用于对外权限的开放。
2024-01-08 19:22:45 600
原创 Wargames与bash知识10
中间的"c"表示变动的模式是内容改变(change),其他模式还有"增加"(a,代表addition)和"删除"(d,代表deletion);前面的"-1,7"分成三个部分:减号表示第一个文件(即f1),"1"表示第1行,“7"表示连续7行。每一行最前面的标志位,空表示无变动,减号表示第一个文件删除的行,加号表示第二个文件新增的行。第二行表示两个版本的git哈希值(index区域的6f8a38c对象,与工作目录区域的449b072对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)。
2024-01-06 12:30:05 1148 1
原创 Wargames与bash知识09
Nmap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包。它由Fyodor编写并维护。由于Nmap品质卓越,使用灵活,它已经是渗透测试人员必备的工具。其基本功能有三个:(1)是扫描主机端口,嗅探所提供的网络服务(2)是探测一组主机是否在线(3)还可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本。
2024-01-05 13:54:56 2251 1
原创 Wargames与bash知识08
要使用openssl s_client建立SSL连接,需要提供服务器地址和端口号,以及证书、私钥等信息来确保连接的安全性。例如,可以使用-host和-port选项指定服务器地址和端口号,使用-cert和-key选项指定客户端证书和私钥,使用-CAfile选项指定根证书,使用-cipher选项指定加密方法等。SSL/TLS 协议的实现:OpenSSL 支持 SSLv2、SSLv3 和 TLSv1.0、TLSv1.1、TLSv1.2 等版本的 SSL/TLS 协议,并提供了相关的工具和库,用于实现安全的通信。
2024-01-04 14:14:56 1743 1
原创 Wargames与bash知识07
][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v…到目前为止,我们在大部分情况下使用的终端工具登录ssh服务器,比如我使用的MobaXterm,正因为如此,目前我们对ssh在命令行的用法还很陌生。3、机器之间传输文件:通过nc可以实现两台机器之间的文件传输,只需在源机器上使用nc命令将文件发送到目标机器的特定端口,然后在目标机器上监听该端口即可接收文件。例如:ssh -N -L 8080:localhost:80 user@host。
2024-01-03 16:03:28 1123 1
原创 Wargames与bash知识07
密码存储在文件data.txt中,该文件是经过重复压缩的文件的十六进制文件。在本关卡,在/tmp下创建一个目录可能很有用,您可以/tmp使用mkdir创建目录(例如:mkdir/tmp/myname123),然后使用cp复制数据文件,并使用mv重命名它(阅读手册页!若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。-f或–force bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。-c或–stdout 将压缩与解压缩的结果送到标准输出。
2024-01-02 14:55:55 1252
原创 Wargames与bash知识06
tr命令有一个应用是将windows文件转换成linux文件(linux下有一个对应的命令dos2unix),window、linux和Mac老版本文本文档的区别在于行尾符号:window是换行加回车“\n\r”;从而,如果我们将windows文本文件的行尾中的”\r”删除,那么这个文件就是linux文本文件了。下面演示一下,wintxt.txt是使用Windows 记事本程序编辑的文件,linuxtxt.txt是使用linux nano编辑的文本文件。选项-d 是对加密后的密文解密。
2024-01-01 17:31:47 442
原创 Wargames与bash知识05
您对帮助中描述“您也许需要事先对输入排序,或使用 “sort -u” 而非 "uniq"怎么看?”、“+”、“*”。正则表达式主要依赖于元字符,元字符都有特殊的含义,一些元字符写在方括号中的时候有一些特殊的意思。若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过。1、最好使用egrep或者grep -E以防止扩展正则未开启而造成的困扰。您也许需要事先对输入排序,或使用 “sort -u” 而非 “uniq”。提示:“uniq” 不会检查重复的行,除非它们是相邻的行。
2023-12-31 19:25:01 895 1
原创 Wargames与bash知识04
从这个关卡开始,提示的可能使用的命令更换了一组,由ls , cd , cat , file , du , find,grep变成了man, grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd。-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外。-b, --number-nonblank 对非空输出行编号,同时取消 -n 选项效果。-A或者-a用于显示隐藏文件,区别是-a显示.和…
2023-12-30 20:18:25 429 1
原创 Wargames与bash知识03
表达式是由选项(选项总是影响所有的操作, 而不仅仅是一个指定的文件的处 理, 而且总是返回真值),测试(测试返回一个真值或一个假值),还有动 作(动作有side effects, 返回一个真值或假值) 组成。find 搜索目录树上的每一个文件名,它从左至右运算给定的表达式,按照优先规则(见运 算符OPERATORS一节)进行匹配,直到得出结果(左边运算在 ‘与’ 操作中得出假, 在’或’ 操作中得出真),然后 find 移向下一个文件名。第一个以 ‘-’ , ‘(’ , ‘)’ , ‘,’ 或 ‘!
2023-12-29 10:41:36 1264
原创 Wargames与bash知识02
代表一个字符集合范围内的一个字符,如[0-9]就是一个任意的数字,[A-Z]代表一个大写字符、、[a-z]代表一个小写字符。Linux file命令是辨识文件类型的,file的返回的文件编码类型结果很多,常见有:empty:空文件、ASCII text文件、data:数据文件、c program等等。[:digit:] 表示阿拉伯数字[0~9][:upper:] 表示大写字母[A~Z][:lower:] 表示小写字母[a~z][:alpha:] 表示大小写字母[A。这个关卡考察的file命令的使用。
2023-12-28 15:22:07 610
原创 Wargames与bash知识01
1、cat “spaces in this filename”: 使用双引号注明spaces in this filename是一个有空格字符串,是can命令的一个参数。PS2:我在bash(GNU bash,版本 5.0.17(1)-release (x86_64-pc-linux-gnu))试图建一个文件名有空格的文件,建立的有空格文件名会自动多出来一对单引号将文件名括起来。双引号引用是不完全引用,双引号中有一些特殊符号仍然保持其特殊的作用,如美元符号“$”、反引号“`”、转移符号反斜杠“\”。
2023-12-27 12:48:56 530 1
原创 Wargames与bash知识
无意发现一个学习bash的游戏Wargames,也有网友说是黑客训练游戏,不管是啥,只要能够学习bash就足够了。网址:https://overthewire.org/wargames/网页上的游戏推荐第一个游戏是:bandit,那咱们就从这个开始。
2023-12-26 21:37:57 483 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人