渗透学习总结-Linux基础
2021/10/27 7:13:00
本文主要是介绍渗透学习总结-Linux基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- Linux文件系统和分区
- 磁盘分区原理介绍
- 使用lsblk指令(逻辑磁盘分区)
- 磁盘查询指令
- 磁盘挂载指令
- Linux文件和目录重要介绍
- 文件和目录的权限:
- Linux用户类型和组
- Linux服务管理
- 服务管理指令
- 端口审计手段
- Vim编译器
- Linux防火墙
- Linux日志信息
- 命令
Linux文件系统和分区
磁盘分区原理介绍
-
分区是逻辑上的概念。Linux分区和Windows分区不同,Windows一个分区对应一个盘符,Linux一个分 区对应一个目录。
-
对Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个目录,是一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
-
Linux采用了一种叫“挂载”的处理方法,它的整个文件系统中包含了一整套的文件和目录,使得一个分区和一个目录联系起来,当要载入一个分区时它的存储空间就在一个目录下获得并使用。
使用lsblk指令(逻辑磁盘分区)
磁盘查询指令
查询磁盘使用情况
df -lh(文件系统层的分层)
du -h /目录(每个文件和目录的磁盘使用)
磁盘挂载指令
-
linux下几乎把一切都看成文件,例如当一个新设备(比如USB,光盘)连上电脑后,把此设备挂载到一个文件夹下才能管理.使用挂载命令控制硬盘分区和挂载点
-
mount命令: mount -t文件系统类型-o选项参数device(设备)dir(挂载点)
-
umount命令: umount dir(挂载点)或者umount dev(所挂载的设备)
-
remount命令: 重新挂载分区或者目录,用法和umount是一样的
Linux文件和目录重要介绍
- /∶根目录,位于Linux文件目录结构的顶层,一般根目录下只存放目录,不存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
- /home:普通用户主目录,当新建账户时,都会分配这个用户目录,建议单独分区,并分配额外空间用于存储用户数据
- /boot:用于存放系统启动引导文件,内核文件
- /root:该目录是linux系统管理员(超级用户) root的宿主目录
- /tmp:存放系统运行过程中使用的一些临时文件
- /var:存放系统中经常需要变化的一些文件,如系统日志文件,用户邮箱目录等
- /etc:存放linux系统及各种程序的配置文件,配置文件比较多的程序在”/etc”目录中建立独立的子目录,用于存放程序的配置文件
查看文件的属性权限以及文件所属的用户和组
命令: ls -l
文件和目录的权限:
-
linux对普通文件的权限说明
-
[r]可读;对文件有阅读的权限
-
[w]可写;对文件有修改内容的权限(删除文件自身受父目录权限的影响)·
-
[x]可执行;对文件表示具有执行文件的权限
-
Linux对目录的权限说明
[r]可读;表示具有浏览目录的权限
[w]可写;表示具有修改目录内文件的权限
[x]可执行;表示具有进入目录的执行权限
设置文件权限
Linux有两种设置文件权限的方式,一种是数字,一种是符号。
Linux文件的基本权限有是三种身份read/write/execute,每种身份都有对应的权限且都是r(可读)w(可写)x(可执行)
r(read)=4,w(可写)=2,x(可执行)=1
再用数字赋权限的时候叠加。
例如:
owner:rw=4+2=6,group=r=4,others=r=4
也就是定义-rw-r–r--权限命令为:
chmod 644 1.txt
更改文件属组
- chgrp:更改文件属组.
- 语法: chgrp [-R]属组名文件名(加上-R参数,该目录下的所有文件的属组都会更改).
- chown:更改文件属主,也可以同时更改文件属组
.语法: chown [-R]属主名文件名 - chown[-R]属主名:属组名文件名chmod:更改文件9个权
- 语法: chmod [-R] xyz文件或目录
文件和目录的特殊权限:
SUID和SGID,设置了SUID和SGID的文件可以被其他不同组的用户继承改文件或者目录的属组权限。
例子:当一个执行文件被设置成了SUID权限,属于root用户,此时普通用户可以暂时取得root权限来执行该文件。SGID相同。
两者不同点:
SUID:对属主加权限只能针对文件
SGID:对属组加权限可以对文件和目录
命令:
chmod u+s filename(suid)
chmod g+s filename(sgid)
chmod 4777 filename(suid)针对属主
Linux用户类型和组
用户分为3类:
root(超级用户):啥都能干
普通用户:root创建的用户,一般只能操作自己的目录。
虚拟用户:程序运行等情况下创建的用户,无法登录和使用
用户组
具有相同特征的用户的集合。一个组可以包含多个用户,每个用户也可以属于不同的组。
用户组的目的方便管理员对用户进行集中管理。用户组也分为三类:系统组、私有组和标准组。
用户及用户组配置文件
/etc/passwd:记录操作系统用户及其属性信息
/etc/shadow: 记录所有用户的密码信息
/etc/group: 记录用户组及其属性的信息
/etc/gshadow:记录用户组及其相关属性的密码信息
UID和GID
概念:
- 在我们登录主机时我们输入用户名,但系统里不会认识用户名的,而是通过/etc/passwd文件里用户名对应的UID和 GID识别的。
- UID:每个用户对应一个UID号,UID在本机的操作系统里是唯一的。
- GID∶每个组用户会对应一个GID号,GID在本机的操作系统里是唯一的。
- UID的限制:
利用id显示用户的UID和GID
0:当uid是0时,代表这个用户是管理员,当你想把某个用户设置成管理员时,直接修改uid就可以了。也就是说,系统中管理员用户不一定是root
1~499:系统默认保留用户,和其他用户没什么不一样的,只是一些服务默认用户
500~65535:手动创建的一般用户
其他命令
su 用户名:切换用户
whoami:显示当前用户名称
groups:显示当前用户所属组
sudo :临时使用root权限
Linux服务管理
服务管理指令
service管理指令:
在Centos7.0以前:
- service服务名start | stop | restart / reload | status
Centos7.0后不再使用service,而是systemctl,systemctl [command] [unit]
- command主要有:
- start : 立刻启动后面接的unit. stop :立刻关闭后面接的unit
- restart:立刻关闭后启动后面接的unit,亦即执行stop 再start的意思
- reload :不关闭后面接的unit的情况下,重新载入配置文件,让设置生效
- enable :设置下次开机时,后面接的unit会被启动
- disable :设置下次开机时,后面接的unit不会被启动
- status :目前后面接的这个unit的状态,会列出有没有正在执行、开机默认执行否、登录等信息等!
- is-active :目前有没有正在运行中
端口审计手段
系统自带的:netstat
系统外部工具:Nmap:端口扫描
Vim编译器
VIM命令使用
Linux防火墙
开启iptables:
systemctl start iptables
关闭iptables:
systemctl stop iptables
查看iptables现有的规则:
iptables -L -n
开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
禁用23端口
iptables -A INPUT -p tcp --dport 23 -j DROP
添加信任网络
iptables -A INPUT -p tcp -s 1.1.1.1 -j ACCEPT
删除某个信任ip
iptables -D INPUT -p tcp -s 1.1.1.1 -j ACCEPT
Linux日志信息
Linux日志大多是以明文存储,一般存储在/var/log目录中,linux系统主要有三个日志子系统:
连接时间日志,进程统计日志,错误日志。
linux中可以配置日志文件,需要修改日志文件syslog.conf的配置,通常是不用配置,除非特殊
使用人群。
日志文件介绍:
- boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
- lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
- messages:记录Linux操作系统常见的系统和服务错误信息
- secure : Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
- btmp:记录Linux登陆失败的用户、时间以及远程IP地址
- syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
- wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
命令
cp命令
参数:
-a: archive的意思,若要复制的文件为目录,则复制整个目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作-:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性—起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件
mv命令
参数:
-f: force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新
>/>>命令
>:输出重定向,会覆盖文件内容,要是没有那个文件会创建该文件在写入。(渗透过程中,拿到权限隐藏木马的时候除了写一个木马子程序之外,可以在其他位置写一个木马父程序,在子木马被删除时,及时在其它或者相同位置写入子木马)
>>:输出重定向,不会覆盖文件内容,而是追加到文件内容尾部。
ln命令
描述:创建链接文件
参数:
-i:交互模式,文件存在则提示用户是否覆盖。
-s:软链接(符号链接)。
-d:允许超级用户制作目录的硬链接。
-b:删除,覆盖以前建立的链接
软链接(符号链接): In -s source target
硬链接(实体链接): In source target
也就是说在调用ln命令之后它会在当前目录建立一个软/硬链接,我们就可以在当前目录访问其他目录下的文件。
有一个跟它很像的符号可以用来绕过渗透过程中对cat的过滤:nl
ps命令
描述:查看进程信息参数:
-A∶所有的进程均显示出来,与-e具有同样的效用;
-a :显示现行终端机下的所有进程,包括其他用户的进程;
-u∶以用户为主的进程状态;
x ︰通常与a这个参数一起使用,可列出较完整信息。
还有其他的一些命令就不一一说明
将脚本(木马)开机自启动这里具一个例子
1、赋予脚本可执行权限(/opt/script/shell.sh是你的脚本路径)chmod +x /opt/script/shell.sh
2、打开/etc/rc.d/rc.local或/etc/rc.local文件,在末尾增加如下内容su - user -c ‘/opt/script/shell.sh’
3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限chmod +x /etc/rc.d/rc.local
其他对于木马的隐藏操作见下文。
这篇关于渗透学习总结-Linux基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法