Linux系统文本操作小课堂
声明
B 站UP主泷羽sec
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
✍🏻作者简介:致力于网络安全领域,目前作为一名学习者,很荣幸成为一名分享者,最终目标是成为一名开拓者,很有趣也十分有意义
🤵♂️ 个人主页: @One_Blanks
欢迎评论 💬点赞👍🏻 收藏 📂加关注+
- 关注公众号:泷羽Sec-Blanks
sed & cut
sed是一个强大的流编辑器,对一组文件或其他命令输出执行流编辑操作(修改)
echo "I need to try hard" | sed 's/hard/harder/'
利用echo显示一段文字,然后这段文字通过管道符,输入给sed命令,然后用sed的文字文本编辑修改,这种流的编辑在特定场景十分重要
vi 是交互式的文本编辑,但是如果在非交互式的一个shell中就不能用这个vi命令进行文本编辑,这个时候就必须使用sed这种流形式的工具进行编辑操作。
实操,如果我们有权限对/etc/passwd进行修改
grep -E ^root /etc/passwd
对root开头的字段进行筛选然后显示到终端命令中
openssl passwd -1 123
用openssl生成密码密文
grep -E ^root /etc/passwd | sed 's/x/密文/'
把密码密文与原密文替换(需要有权限)(x是占位符,也就是文本原来的内容)
批量修改(在后面加一个 g 就行)
grep -E ^root /etc/passwd | sed 's/x/密文/g'
cut命令,主要用于对文本内容的提取。
cat /etc/passwd | cut -d ":" -f 1
cat查看文本,然后用cut指定分隔符为 : ,1是表示取分隔符第一个位置
cat /etc/passwd | cut -d ":" -f 1,7
取第一个位置和第七个位置
cat /etc/passwd | cut -d ":" -f 1 | grep sh
使用grep再次筛选
cat /etc/passwd | cut -d ":" -f 1 | grep sh | grep -v nologin
(-v 不包含)使用grep对更详细的内容再次进行清除筛选
这些主要就是对文本内容进行快速的切片,提取,筛选,对信息的检索。
与cut 类似的命令还有 awk工具 也是对文本进行切片操作
awk -F ":" '{print $1}'
没有分隔符,则默认为空格 $1 就是输出第一部分的内容
日志分析练习
官方给的一个日志练习文件(这是一个被攻击者的日志,进行分析与溯源)
下载
wget www.offensive-security.com/pwk-files/access_log.txt.gz
解压
gunzip access_log.txt.gz
改个名字方便操作
mv access_log.txt a.txt
利用 less cat vim 等查看
结合数据文本处理命令对其进行分析
cat a.txt | cut -d " " -f 1
后面加上 sort -u 可以进行去重
cat a.txt | cut -d " " -f 1 | sort -u
筛选出具体攻击者,用uniq进行统计,-c数字统计
cat a.txt | awk '{print $1}' | sort | uniq -c
最后也可以进行一个数字排序,sort -run
cat a.txt | awk '{print $1}' | sort | uniq -c | sort run
接下来看一下,这个请求了过千次的恶意IP,具体攻击的是我们的哪一个业务
cat a.txt | grep '208.68.234.99'
再筛
cat a.txt | grep '208.68.234.99' | awk -F "] " '{print $2}'
或cat a.txt |grep 208.68.234.99|cut -d "\"" -f 2
看看攻击者有没有攻击成功
cat a.txt | grep 208.68.234.99 | grep admin | grep 200