B组第三周笔记汇总

linux运维基础11-15

硬盘:os—应用程序

process(进程):用户执行应用程序的过程

权限:用户对于应用程序的执行能力

Linux实现权限隔离机制(多用户)

操作系统识别用户:

 用户:UID
 组:GID(逻辑容器:包含用户;实现多个用户对于某个文件或应用程序分配相同的权限)

用户分类:

 管理员用户: root UID:0
  普通用户:1000-65535程序(系统)
  程序(系统)用户:1-999

组分类:

管理员组/普通组
基本组:Linux中,新建用户时,没有指定隶属于的组,系统会为该用户建立一个同名组,作为该用户基本组
附加组:方便以后为用户分配权限

解析:

/etc/passwd:存储用户基本信息
/etc/shadow:存储用户的影子口令
/etc/group:存放组的基本信息

/etc/passwd解释:用冒号隔开

第一列:用户的登录名
第二列:加密密码(x表示密码占位符,密码保存在/etc/shadow中)
第三列:用户的ID号
第四列:组的ID号
第五列:用户的描述信息
第六列:用户宿主目录
第七列:用户默认使用的shell(/etc/shells)

/etc/shadow解释:用冒号隔开

第一列:用户的登录名
第二列:用户加密后的密码
第三列:最后一次更改密码时间
第四列:密码最小使用时间
第五列:密码最长使用时间
第六列:密码过期前的警告时间
第七列:密码过期后一个宽限时间
第八列:密码失效时间
  第九列:保留

/etc/shadow密码区域解释

三部分组成:用$隔开
    第一部分加密算法:
                MD5加密
                SHA-256加密
                SHA-512加密
    第二部分:随机序列号
    第三部分:随机序列号和密码共同加密后的字符串

加密算法:

对称加密:加密和解密使用相同的密码(效率高 不安全)
非对称加密:加密和解密使用不同的密钥和密码
单向加密,散列加密:提取数据的特征码,常用于数据完整性校验
    1.   不可逆
    2. 定长输出
        md5:128位定长输出
        sha:160 位 224位 256位 384位 512位
    3.雪崩效应:输入数据一小点的变化,会引起巨大变化

新建用户命令:useradd

/tec/default/useradd文件解释:

# useradd defaults file //注释行
GROUP=100  //可以创建普通组
HOMR=/home   //普通用户宿主目录位置(再/home下生成和用同名的目录,作为用户的宿主目录)
INACTIVE=-1  //是否启用用户国企停止使用权,-1代表不启用
EXPIRE=         //设定过期时间,格式位20170501
SHELL=/bin/bash      //设定用户的默认使用shell
SKEL=/etc/skel         //新用户宿主目录模板目录
CREATE_MAIL_SPOLL=yes     //是否为用户启用邮件通知功能

/etc/skel:目录(用户宿主目录模板目录)

.bash_logout:用户注销时执行的命令
.bash_profile:用户登录系统时执行的命令
.bashrc:用户登录一个新shell时执行的命令

/etc/login.defs文件解释:(支队新建用户生效)

MAIL_DIR             /var/spoll/mail    //用户系统邮件存放目录
pass_max_days    99999 // 密码最长使用期限
pass_min_days     0//最短使用期限,0代表不受限制
pass_min_len    5    //密码最小长度
pass_warn_age 7    //密码过期警告时间
uid_min    1000    //最小uid号
uid_max    60000    //最大uid号
sys_uid_min    201    //系统用户最小uid
sys_uid_max    999    //系统用户最大uid
GID_MIN    1000//普通组最小GID
GID_MAX    60000//普通组最大GID
SYS_GID_MIN 201    //系统组最小GID
SYS_GID_MAX  999    //系统组最大GID
CREATE_HOME yes    //是否创建宿主目录
UMASK    077    //关于权限反掩码
USERGROUPS_ENAB yes    //删除用户时是否删除组
ENCRYPT_METHOD SHA512//用户密码的加密方式

useradd:添加新用户(更改/etc/passwd ; /etc/shadow ; /etc/group)

useradd [ options] user_name

-c:为用户添加描述信息
 -d:指定用户的宿主目录(默认宿主目录在/home目录)
 -D:查看和改变默认的值(修改的/etc/default/useradd文件中的选项和值)
             -g:修改组
            -b:修改宿主目录
            -f:修改过期是否停用
            -e:修改过期时间
            -s:修改默认shell
-e:新建用户时,设置用户默认的过期时间,时间格式:YYYY-MM-DD
 -g:指定用户的基本组(没有该选项,Linux新建用户时,会新建一个同名组作为用户的基本组)
 -G:新建用户时指定用户的附加组,附加组可以有多个,用逗号隔开
 -m:创建宿主目录,和-k一起使用
 -M:创建用户时,不为用户创建宿主目录
 -p:创建用户时,为用户设置加密的密码(不推荐使用)
 -r:创建系统用户(不创建宿主目录,UID和GID使用系统用户ID)
 -s:指定默认shell(系统支持的shell)
 -u:指定用户的UID

passwd:为用户设置密码/锁定解锁用户/查看状态

语法:passwd [options] user_name

root用户可以为普通用户设置密码

-l:锁定用户(暂时无法登陆系统)
 -u:解锁用户
 -S(大写):查看用户状态,显示/etc/shadow文件中各个字段的内容
 --stdin:标准输入,经常用在shell脚本编程中为用户自动设置密码
        -d:删除用户密码,允许普通用户以空密码登录(不建议使用)
        -e:设置用户密码过期,用户再次登录时,需要修改密码
        -n:设置密码最小使用期限,修改/etc/shadow中第四列
        -x:设置密码最大使用期限,修改/etc/shadow第五列
        -w:设置密码过期前的警告时间,修改/etc/shadow第六列
        -i:修改过期后的宽限时间,修改/etc/shadow第七列

普通用户设置密码时,先验证当前密码,符合密码策略

root用户设置密码时,不需要验证当前密码,并且也可以不要求符合密码策略

userdel:删除用户(修改/etc/passwd /etc/shadow /etc/group文件)

    语法:userdel [options] user name
          -r:删除用户时,连同册除用户的宿主目录

usermod:修改用户属性(修改/etc/passwd中内容)

语法:usermod [options] user_name
    -c:更改用户的描述信息

    -d:更改用户的宿主目录

    -e:更改用户的过期时间,格式YYYY-MM-DD

    -f:修改/etc/shadow第七列内容

    -g:修改用户的基本组

    -G:修改用户的附加组

    -l:修改用户的登录名

    -s:修改用户的shell(系统支持的shell程序)

    -L(大写):锁定用户

    -U(大写):解锁用户

chsh:修改用户的shell

语法:chsh [options] user_name
    -s:后面跟shell,更改用户的shell
    -l:显示当前系统支持的shell(/etc/ shells)

finger:显示用户的基本信息

finger [options] user name

chfn:修正用户的基本信息

语法:chfn [options] user_name
        -o:修改办公室

         -p:修改办公室电话号码

        -h:修改家庭电话号码,

        -f:修改用户名

id:显示用户和组的ID

语法:id [options] user_name
    -a:忽略其他版本区别

       -Z(大写):显示安全上下文内容(selinux)

       -g:显示有效组的ID

       -G:显示所有组的ID

       -n:不显示组号,显示名字

       -u:显示用户ID

chage:修改用户密码的时间信息(/etc/shadow)

语法:chage [options] user name
    -l:列出用户的详细的密码参数

     -d:修改/etc/shadow第三列内容,后面跟日期,格式YYYY-MM-DD

    -E:修改/etc/shadow第八列内容,后面跟日期,格式YYYY-MM-DD

     -L:修改/etc/shadow第七列内容,后面跟天数

     -m:修改/etc/shadow第四列内容,后面跟天数

     -M:修改/etc/shadow第五列内容,后面跟天数

     -w:修改/etc/shadow第六列内容,后面跟天数

组管理:groupadd,groupdel,groupmod,gpasswd, newgrp, groupmems

组分类:

管理员组:root
普通用户组:
系统用户组:

按照用户分类:

管理员组:root
基本组:初始化的组
附加组:有效组

组:逻辑容器,存放用户,实现集中授权配置文件:

/etc/ group:
    第一列:组的名字

       第二列:组的密码区域

       第三列:组的ID号(GID)

       第四列:组中的成员
/etc/gshadow:
        第一列:组的名字

        第二列:组的密码

        第三列:组的管理员

        第四列:组成员列表

groupadd:

    -d:创建组时指定组的ID

    -r:添加一个系统组

groupdel:删除一个组

默认情况下,不能删除一个用户的基本组,可以通过修改用户的基本组后删除该组

可以删除用户的同时,系统会删除同名基本组(该组是一个用户的基本组)

groupmod:修改组的属性

-g:修改组的GID号
-n:为组重命名

gpasswd:为组设置密码,设置组的管理员,添加组成员

    -A:为组设置管理员

    -M:把一些用户添加组中,用逗号隔开(普通用户)

    -r:为组移除密码

    -R:让组的密码失效

    -a:为组添加成员(组的管理员操作命令)

    -d:删除组成员(组的管理员操作命令)

newgrp:为用户修改有效组(只在当前shell生效)exit:退出newgrp

groupmems:为组添加成员,显示组成员列表

namp漏洞扫描

nmap -v -T4 —script vuln -p 1-50 192.168.1.100

-v是详细过程

nmap-PA -p80 192.168.100.1

namp自带的探测主机存活性

namp udp探测

使用以下命令:

- nmap -sn -PU目标地址

默认情况下,UDP探测目标机器端口40125,为的就是能够探测不开放端口,返回ICMP请求。

对于该端口可以在自编译的Nmap时,通过在nmap.h中更改DEFAULT_UDP_PROBE_PORT_SPEC,可以在编译时配置此缺省值

ICMP 回显

使用命令: - nmap -sn -PE 目标地址 (E:echo request)

ICMP请求时间戳扫描等间接获得主机存活

直接利用ICMP的echo request是主机down掉。可以利用ICMP时间戳和地址掩码来测试。

使用以下命令来实现:

- nmap -sn -PP       目标地址        用ICMP时间戳请求来获取主机存活状态
- nmap -sn -PM      目标地址        用ICMP地址掩码查询来获取主机存活状态

Nmap IP ping探测

使用命令: - nmap -sn -PO 目标地址

Nmap IP ping自定义协议探测,对于IP协议可以使用-PO+协议编号来进行自定义协议探测。其中ICMP(1)IGNP(2) TCP(6)UDP(17)…

nmap -sn -Po1 —packet-trace —data-lepgth 1000 ip

ARP ping探测存活主机

最常见的Nmap使用场景之一是扫描ethernet LAN。在大多数局域网中,特别是使用RFC1918规定的私有地址范围的局域网中,绝大多数IP地址在任何给定的时间都是不使用的。当Nmap试图发送原始的IP包(如ICMP echo请求)时,操作系统必须确定与目标IP对应的目标硬件(ARP)地址,以便能够正确地处理以太网帧。

ARP扫描使Nmap及其优化算法负责ARP请求。如果返回响应,Nmap甚至不需要担心基于ip的ping包,因为它已经知道主机已经启动。这使得ARP扫描比基于ip的扫描速度更快、更可靠。因此,当Nmap检测到的扫描以太网主机在本地以太网网络上时,它是在默认情况下完成的。即使指定了不同的ping类型(如-PE或-PS)。

对于IPv6,-PR使用ICMPv6邻居发现而不是ARP。在RFC 4861中定义的邻居发现可以被看作是与ARP等价的IPv6

在Nmap中可以使用

nmap -sn -PR  目标地址

隐藏真实MAC地址

使用命令: nmap -sn -PR --spoof-mac  伪造MAC地址   目标地址 隐藏行为

有时候使用空的数据包内容,或者默认的Nmap数据包内容,可能会导致暴露Nmap扫描行为。为了避免轻易被探测出扫描,可以加载一些随机数据到数据包中,已达到隐藏扫描行为。

可以使用 —data-length 100 加100个字节的数据到发送的数据包中。

  • nmap -sn -pS —data-length 100 目标机器

Nmap 开启或关闭DNS解析

在Nmap中可以加入-n参数不进行DNS解析nmap -sn -PS -n 地址

默认情况下进行DNS解析-Rnmap -sn -PS -R 地址

Nmap指定DNS服务器解析域名

在Nmap可以直接使用系统定义的DNS服务器,也可以使用指定的DNS服务器。

  • nmap —system-dns 地址

  • nmap —dns-servers 8.8.8.8 地址

路由信息获取

- nmap -sn -PS --packet-trace --traceroute 地址

除了可以探测路由路径,也可以分析主机是否遭受了DNS欺骗攻击。

Nmap获取主机地理位置信息

Nmap通过对google地图API调用,利用谷歌进行IP地址获取对应地理信息的操作。

注意:对于陌生的nse脚本可以使用nmap --script-help脚本名称来查看对应帮助信息

Nmap获取物理地址对于命令:-nmap -sn —script ip-geolocation-geoplugin目标

whois介绍

whois是用来查询域名的IP以及所有者等信息的传输协议。同早说,,W商)定一个用不旦城石人D经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。

通过whois来实现对域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网贝接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖WAOIS协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。

每个域名/IP的whois信息由对应的管理机构保存。

whois信息获取(命令行)

Kali linux中自带whois工具:- whois 目标

Nmap获取Whois脚本信息参考 使用Nmap中获取whois-ip脚本信息 - nmap -script-help whois-ip

使用Nmap中的whois-ip.nse脚本进行whois信息查询 - nmap -sn —script whois-ip 目标

robots介绍

robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在vobots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

可以通过在站点根目录下加入robots.txt,来查看相应内容。

nmap —script-help http-robots

nmap —script http-robots 目标

Nmap获取robots信息

使用方法: - nmap -sV -sC 目标

端口Banner信息介绍

在对开放端口发送某些数据时,开放的端口就会返回到发送端一些Banner信息。其中有可能会含一些欢迎信息以及一些端口信息。

利用nc来获取指定端口的Banner信息:- nc 目标 端口

Nmap获取主机所有开放端口Banner信息命令:- nmap -sV —script banner 目标

Nmap获取指定端口的Banner信息- nmap -sn —script banner —script-args banner.ports= 端口 目标

主机防护措施介绍

入侵防御系统(IPS: Intrusion Prevertion System)是电脑网络安全设施,是对防病毒软件和防火墙的补充。入侵防御系统是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为

IDS是英文”Intvusion Detection SustemS’的缩写,中文意思是”入侵检测系统’。专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击

行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防k墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。

Web应用防护系统(也称:网站应用级入侵防御系统。英文: Web Application Firewall,简称:WAF)。利用国际上公认的一种说法: Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

Nmap探测wAF的命令:- nmap -p80 —script http-waf-detect 目标

Nmap获取WAF指纹信息的命令:- nmap -p80 —script http-waf-detect 目标

Nmap获取wAF指纹信息的命令:- nmap -p80 —script http-waf-fingerprint 目标

利用dnsenum获取dns记录:dnsenum 目标

Nmap破解DNS子域名的命令: - nmap —script dns-brute 目标

Nmap获取主机操作系统信息

Nmap通过发送对应数据包到目标机器,目标机器会返回特定数据响应包,然后Nmap会根据自身的指纹库对返回的数据包进行比对。然后得出对应的结论。

Nmap获取目标机器的操作系统的命令参数:

  • nmap -O 目标

  • nmap -O -v 目标

Nmap获取操作系统命令: - nmap -o -v —osscan-guess 目标

Nmap通过调用hostmap-ip2hosts脚本来获得同一IP下的所有主机。

  • nmap -p80 —script hostmap-ip2hosts 目标

Nmap通过目标机器进行探测,获取对应主机支持的IP协议信息。- nmap -so -v 目标 可以加入 -f 加快扫描速度

echo “hip 139 #Host Identity Protocol” >>/usr//share/nmap/nmap-protocols 自定义追加协议

Nmap利用TCP ACK检测状态防火墙原理

1、Nmap发送一个TCP ACK到目标机器。

2、目标机器接收到TCP ACK数据包后,如果没有被状态防火墙防护,则会直接返回TCP RST.

3、如果目标机器被状态防火墙防护,则会不做任何响应或者返回一个ICMP Error.

Nmap检查命令:-nmap -sA -p 端口 目标

上传漏洞绕过

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方士是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。

产生漏洞的原理

对于上传文件的后缀名(扩展名)没有做较为严格的限制

对于上传文件的MIMETYPE(content-type)(用于描述文件的类型的一种表述方法)没有做检查

权限上没有对于上传的文件目录设置不可执行权限

web server对于上传文件或者指定目录的行为没有做限制

前台审计+绕过

用burp抓包

抓包之后删除审计,改成return ture:再成功上传木马

后台验证,burp抓包

根据后台源码修改请求

可以修改为 png jpeg gif以绕过后台验证

根据源码不允许上传.asp..aspx..php..jsp后缀文件

当不允许时,选择用替代的后缀以达成绕过上传并解析

当后缀过滤了所有的格式,覆盖.htaccess配置文件,把03.jpg以php格式解析

成功运行木马

如果后台有重命名的代码,会导致这个方法失效

相关推荐

发表评论

路人甲

网友评论(0)