☁️
云安全攻防入门
  • 👨‍💻简介
  • 第一章 云上攻防体系介绍
    • 🐭云计算概念
    • 😀什么是云安全
    • 😁本章小结
  • 第二章 Linux攻防快速入门(上)
    • 🛠️Linux基础快速入门
    • 🏴󠁧󠁢󠁳󠁣󠁴󠁿文件管理和IO重定向
    • 🏴󠁧󠁢󠁳󠁣󠁴󠁿反弹SHell原理与检测思路
    • 🦊echo命令在攻击中应用
    • 🦉用户组在攻防场景中的应用
    • 🦤特殊权限管理与提权
    • 🦆SUDO授权与提权
    • 🐥文本三剑客
  • 第三章 Linux攻防快速入门(下)
    • 🎨Bash基础入门与应用
    • 🖥️Bash进阶-攻防实战场景应用
    • 🙉进程和计划任务
    • 🐸Linux服务-SSH攻防
  • 第四章 公有云攻防
    • 🐶云平台介绍
    • 🐱云产品概念
    • 🐭云安全中心简介
    • 🐹弹性计算服务攻防
    • 🐰对象存储攻防
    • 🦊基础设施即代码
    • 🐻云函数攻防
    • 🐼防御思路
  • 第五章 私有云与虚拟化攻防
    • 🐻‍❄️私有云与虚拟化
    • 🐨虚拟化介绍
    • 🐯虚拟化技术分类
    • 🦁KVM
    • 🐮Vmvare vSphere
    • 🐷OpenStack渗透场景
  • 第六章 云原生攻防
    • 🙉什么是云原生
    • 🙊云原生技术栈
    • 🐒Docker基础入门
      • 🐔镜像管理
      • 🐧Docker基础命令
      • 🐦Docker镜像制作
      • 🐤Docker数据管理
      • 🐣Docker网络管理
      • 🐥Docker仓库管理
    • 🦆Docker常见攻击方式
    • 🦤Kubernetes基础入门
    • 🦇Kubernetes常见攻击方式
      • 🐺Kubernetes ATT&CK
      • 🐗扩展知识
  • 第七章 云原生应用的DevOps
    • 🐴代码托管平台渗透场景
    • 🦄Jenkins渗透场景
    • 🐝CICD top 10 Security Risk
    • 🐛CICD渗透场景
Powered by GitBook
On this page

Was this helpful?

  1. 第二章 Linux攻防快速入门(上)

文本三剑客

为什么云安全课程要学习Bash?

当你在Docker环境,容器中的系统被阉割过,只有系统内核,连个ifconfig都没有的环境,并且不能出网,也不能装工具,这时候如何去探测内网? 有些条件环境苛刻无法上传文件,该如何探测?这块知识点对后面有什么帮助?

awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。

文本处理三剑客之grep

  • grep 文本搜索工具

-v #显示不被匹配的行

-i #忽略字符大小写

-n #显示匹配的行号

-c #统计匹配的行数

-o #仅显示匹配的字符串

-q #静默模式,不输出任何信息

#查看当前主机连接数最多的前三位
ss -nt|grep "^ESTAB"|tr -s ' ' :|cut -d: -f6|sort|uniq -c|sort -nr|head -n3

#排队掉空行和#开头的行
grep -v '^#' /etc/profile|
 
#匹配IP地址
ifconfig ens33|grep netmask|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'|head -n1

文本处理三剑客之Sed

sed编辑器的工作原理是读取一行,处理一行,输出一行然后循环这样。

-n #输出模式空间内容到屏幕,即不自动打印

-e #多点编辑

-f FILE #从指定文件中读取编辑脚本

-r, -E #使用扩展正则表达式

-i.bak #备份文件并原处编辑

-s #将多个文件视为独立文件,而不是单个连续的长文件流

a :新增
c :取代
d :删除
i :插入
p :打印
s :取代
 
#说明:
-ir 不支持
-i -r 支持
-ri 支持
-ni 会清空文件
 
#地址格式
##单地址
#:指定行
$:最后一行
 
##地址范围
#,# 3,6行
应用场景
#打印1行
sed -n '1p' /etc/issue.bak
 
#打印最后一行
sed -n  '$p' /etc/passwd
 
#倒数第二行
sed -n "$(echo $[`cat /etc/passwd|wc -l`-1])p" /etc/passwd
 
#删除所有以#开头的行
sed -i '/^#/d' fstab
sed -ri.bak  '/^#/s/^#//'  /etc/fstab
 
#获取IP
ifconfig ens33 |sed -nr  "2s/[^0-9]+([0-9.]+).*/\1/p"
 
#取基名和目录名
echo "/etc/sysconfig/network-scripts/" |sed -r 's#(^/.*/)([^/]+/?)#\2#' 取基名
echo "/etc/sysconfig/network-scripts/" |sed -r 's#(^/.*/)([^/]+/?)#\1#' 取目录
 
#取文件的前缀和后缀
echo a.b.c.gz  |sed -En 's/(.*)\.([^.]+)$/\1/p'
echo a.b.c.gz  |sed -En 's/(.*)\.([^.]+)$/\2/p'
 
#过滤掉空行和#开头的行
sed -r '/^(#|$)/d' /etc/httpd/conf/httpd.conf
sed -r '/^#|^$/d' /etc/httpd/conf/httpd.conf
 
#伪造Apache日志中的指定IP
sed –i 's/192.168.1.3/192.168.1.4/g' /var/log/apache/access.log
sed –i 's/192.168.1.3/192.168.1.4/g' /var/log/apache/error_log

文本处理三剑客之AWK

-F 指定分隔符写法可以是-F: -F ':'

-v var=value 赋值一个用户定义变量,将外部变量传递给awk

-f scripfile 从脚本文件中读取awk命令

awk内置变量

NF 段数

NR 行数

#连接最多的前3个IP
awk -F" +|:" '{print $(NF-2)}' ss.log |sort |uniq -c|sort -nr|head -n3
 
#关于POST请求
grep 'POST' /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr
 
#Content-Length过大的请求,例如过滤Content-Length大于5M的日志
awk '{if($10>5000000){print $0}}' /var/log/httpd/access_log
 
#/etc/passwd 中用户uid 大于500 的行给打印出来
awk -F ':' '$3 >= 500' 1.txt
 
#列出所有进程交换空间使用情况
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done
 
#查看root用户
awk -F: '$3==0{print $1}' /etc/passwd
 
#查看SSH爆破记录
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
 
#两个文件去重
awk '{print $0}' file1 file2 |sort|uniq
 
#查看当前系统IP连接数
netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn

PreviousSUDO授权与提权NextBash基础入门与应用

Last updated 1 year ago

Was this helpful?

🐥