Linux 下root家目录和/bin/下的执行程序更改出现问题解决

系统安全ttgo2 发表了文章 • 0 个评论 • 117 次浏览 • 2018-10-23 11:10 • 来自相关话题

 今天我们群里同学出现一个Linux操作后,系统无法正常使用的问题,具体问题的操作是这样的
 
1 、问题复现
step1:在root的用户下执行了如下两个命令:mv /bin/ls /root
mv /root /bin/lsstep2:接下来无法执行ls命令,显示如下:
[root@bogon Desktop]# ls
bash: ls: command not found
[root@bogon Desktop]#
step3:重启系统step4:分析一下,原因
mv /bin/ls  /root  这个命令,把ls命令移动到了root下
[root@bogon ~]# cd /root
[root@bogon ~]# pwd
/root
[root@bogon ~]# ./ls
anaconda-ks.cfg Documents install.log ls Pictures Templates
Desktop Downloads install.log.syslog Music Public Videos
[root@bogon ~]#

mv /root /bin/ls  把/root/的文件移动到了 /bin/ls/命令下,这时候root改名为ls,如下:
[root@bogon ls]# pwd
/bin/ls
[root@bogon ls]# ./ls
anaconda-ks.cfg Documents install.log ls Pictures Templates
Desktop Downloads install.log.syslog Music Public Videos
[root@bogon ls]#
2 、问题分析
两个问题需要考虑:
重启之后root是否可以正常登陆?普通账号是否收到影响?
root登陆正常,ls无法使用,因为ls命令的路径发生了变化,正常
bash-4.1# ls
bash: ls: command not found
bash-4.1#
普通账号也正常登陆
[yanw@localhost Desktop]$ ls
bash: ls: command not found
[yanw@localhost Desktop]$ 3 问题解决
step1:把/bin/ls/ls 文件拷贝到/root(不是没有root目录了吗?重启系统后root登陆,会根据/etc/passwd 文件里面的root的家目录在创建一个,不受影响)
step2:拷贝ls到家目录
bash-4.1# cp /bin/ls/ls ./
bash-4.1#
bash-4.1#
bash-4.1#
bash-4.1# ./ls
Desktop Documents Downloads ls Music Pictures Public Templates Videos
bash-4.1#
step3:rm删除/bin/ls  复制ls到/bin下即可,全局使用正常
bash-4.1# rm -rf /bin/ls
bash-4.1#
bash-4.1#
bash-4.1# cp ls /bin/
bash-4.1# ls
Desktop Documents Downloads ls Music Pictures Public Templates Videos
bash-4.1#




step4:修改一下提示符 ,修改全局变量PS1的值
 
PS1='[\u@\h \w]\$ ' 
 ----注意$后面有一个空格!如果没有空格的话,将会报错!

   \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" 

\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux 

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 

\t :显示时间为24小时格式,如:HH:MM:SS 

\T :显示时间为12小时格式 

\A :显示时间为24小时格式:HH:MM 

\u :当前用户的账号名称 

\v :BASH的版本信息 

\w :完整的工作目录名称。家目录会以 ~代替 

\W :利用basename取得工作目录名称,所以只会列出最后一个目录 

\# :下达的第几个命令 

\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
 
step5:为了长期生效我们修改一下 /etc/profile文件,在最后一行添加上    PS1='[\u@\h \w]\$ ' 文件解决
bash-4.1# source /etc/profile
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#

  查看全部
 今天我们群里同学出现一个Linux操作后,系统无法正常使用的问题,具体问题的操作是这样的
 
1 、问题复现
step1:在root的用户下执行了如下两个命令:
mv /bin/ls  /root
mv /root /bin/ls
step2:接下来无法执行ls命令,显示如下:
[root@bogon Desktop]# ls
bash: ls: command not found
[root@bogon Desktop]#

step3:重启系统step4:分析一下,原因
mv /bin/ls  /root  这个命令,把ls命令移动到了root下
[root@bogon ~]# cd /root
[root@bogon ~]# pwd
/root
[root@bogon ~]# ./ls
anaconda-ks.cfg Documents install.log ls Pictures Templates
Desktop Downloads install.log.syslog Music Public Videos
[root@bogon ~]#

mv /root /bin/ls  把/root/的文件移动到了 /bin/ls/命令下,这时候root改名为ls,如下:
[root@bogon ls]# pwd
/bin/ls
[root@bogon ls]# ./ls
anaconda-ks.cfg Documents install.log ls Pictures Templates
Desktop Downloads install.log.syslog Music Public Videos
[root@bogon ls]#
2 、问题分析
两个问题需要考虑:
  • 重启之后root是否可以正常登陆?
  • 普通账号是否收到影响?

root登陆正常,ls无法使用,因为ls命令的路径发生了变化,正常
bash-4.1# ls
bash: ls: command not found
bash-4.1#
普通账号也正常登陆
[yanw@localhost Desktop]$ ls
bash: ls: command not found
[yanw@localhost Desktop]$
3 问题解决
step1:把/bin/ls/ls 文件拷贝到/root(不是没有root目录了吗?重启系统后root登陆,会根据/etc/passwd 文件里面的root的家目录在创建一个,不受影响)
step2:拷贝ls到家目录
bash-4.1# cp /bin/ls/ls ./
bash-4.1#
bash-4.1#
bash-4.1#
bash-4.1# ./ls
Desktop Documents Downloads ls Music Pictures Public Templates Videos
bash-4.1#
step3:rm删除/bin/ls  复制ls到/bin下即可,全局使用正常
bash-4.1# rm -rf /bin/ls
bash-4.1#
bash-4.1#
bash-4.1# cp ls /bin/
bash-4.1# ls
Desktop Documents Downloads ls Music Pictures Public Templates Videos
bash-4.1#




step4:修改一下提示符 ,修改全局变量PS1的值
 
PS1='[\u@\h \w]\$ ' 
 ----注意$后面有一个空格!如果没有空格的话,将会报错!

   \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" 

\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux 

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 

\t :显示时间为24小时格式,如:HH:MM:SS 

\T :显示时间为12小时格式 

\A :显示时间为24小时格式:HH:MM 

\u :当前用户的账号名称 

\v :BASH的版本信息 

\w :完整的工作目录名称。家目录会以 ~代替 

\W :利用basename取得工作目录名称,所以只会列出最后一个目录 

\# :下达的第几个命令 

\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
 
step5:为了长期生效我们修改一下 /etc/profile文件,在最后一行添加上    PS1='[\u@\h \w]\$ ' 文件解决
bash-4.1# source /etc/profile
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#

 

Linux 安全中环境变量安全涉及提权

系统安全ttgo2 发表了文章 • 0 个评论 • 97 次浏览 • 2018-10-07 10:57 • 来自相关话题

最近很多小伙伴私底下问到,Linux下root的环境变量和未授权的SUID和SGID为什么要加固?会有什么风险?具体有哪些危害?今天给大家简单介绍一下Linux的环境变量配置不当可以导致系统提权。
 
1、Linux的加固项介绍:
1.1 查找未授权的SUID/SGID文件
 
安全基线项目名称:
操作系统Linux SUID/SGID文件安全基线要求项
安全基线项说明:
文件系统-查找未授权的SUID/SGID文件
检测操作步骤:用下面的命令查找系统中所有的SUID和SGID程序,执行:
for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do
find $PART \( -perm -04000 -o -perm -02000 \) -type f -xdev -print
Done建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序

1.2 root用户环境变量的安全性
安全基线项目名称:
操作系统Linux超级用户环境变量安全基线要求项 
安全基线项说明:
帐号与口令-root用户环境变量的安全性
检测操作步骤:执行:echo $PATH | egrep '(^|:)(\.|:|$)',检查是否包含父目录,
执行:find `echo $PATH | tr ':' ' '` -type d \( -perm -002 -o -perm -020 \) -ls,检查是否包含组目录权限为777的目录确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777的目录
 
2、利用过程
$PATH是Linux和类Unix操作系统中的环境变量,它指定了存储所有可执行程序的bin和sbin目录。当用户在终端运行任何命令时,它向shell发出请求,在环境变量的帮助下搜索可执行文件以响应用户执行的命令。超级用户通常还具有/sbin和/usr /sbin条目,以便轻松执行系统管理命令。
step1:使用echo命令就能轻易的查看和当前用户相关的环境变量。echo $PATH
/tmp:/tmp:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/test/binstep2:编写一个C语言文件(demo.c),编辑后可执行的二进制文件,需要GCC的环境,如果没有自行安装。#include<unistd.h>
void main()
{
setuid(0);
setgid(0);
system("ps");
}step3:进行编译,赋权限并执行ls
gcc demo.c -o shell
chmod u+s shell
ls -la shell
./shelltest@localhost ~]$ ./shell 
   PID TTY          TIME CMD
  2407 pts/1    00:00:00 bash
  2460 pts/1    00:00:00 shell
  2461 pts/1    00:00:00 pssstep4: 攻击测试
使用copy命令进行测试提权
cd /tmp
echo “/bin/bash” > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
cd /home/ttgo2
./shell
whoami3、利用说明
这里充分说明了,如果一个普通用户的PATH变量包含了自己能控制的执行文件目录,再加上利用关键具有SUID权限的文件,就可以进行提权,所以这两个配置项是非常有必要进行安全加固的。 查看全部
最近很多小伙伴私底下问到,Linux下root的环境变量和未授权的SUID和SGID为什么要加固?会有什么风险?具体有哪些危害?今天给大家简单介绍一下Linux的环境变量配置不当可以导致系统提权。
 
1、Linux的加固项介绍:
1.1 查找未授权的SUID/SGID文件
 
安全基线项目名称:
操作系统Linux SUID/SGID文件安全基线要求项
安全基线项说明
文件系统-查找未授权的SUID/SGID文件
检测操作步骤:
用下面的命令查找系统中所有的SUID和SGID程序,执行:
for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do
find $PART \( -perm -04000 -o -perm -02000 \) -type f -xdev -print
Done
建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序

1.2 root用户环境变量的安全性
安全基线项目名称:
操作系统Linux超级用户环境变量安全基线要求项 
安全基线项说明:
帐号与口令-root用户环境变量的安全性
检测操作步骤:
执行:echo $PATH | egrep '(^|:)(\.|:|$)',检查是否包含父目录,
执行:find `echo $PATH | tr ':' ' '` -type d \( -perm -002 -o -perm -020 \) -ls,检查是否包含组目录权限为777的目录
确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777的目录
 
2、利用过程
$PATH是Linux和类Unix操作系统中的环境变量,它指定了存储所有可执行程序的bin和sbin目录。当用户在终端运行任何命令时,它向shell发出请求,在环境变量的帮助下搜索可执行文件以响应用户执行的命令。超级用户通常还具有/sbin和/usr /sbin条目,以便轻松执行系统管理命令。
step1:使用echo命令就能轻易的查看和当前用户相关的环境变量。
echo $PATH
/tmp:/tmp:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/test/bin
step2:编写一个C语言文件(demo.c),编辑后可执行的二进制文件,需要GCC的环境,如果没有自行安装。
#include<unistd.h>
void main()
{
setuid(0);
setgid(0);
system("ps");
}
step3:进行编译,赋权限并执行
ls
gcc demo.c -o shell
chmod u+s shell
ls -la shell
./shell
test@localhost ~]$ ./shell 
   PID TTY          TIME CMD
  2407 pts/1    00:00:00 bash
  2460 pts/1    00:00:00 shell
  2461 pts/1    00:00:00 pss
step4: 攻击测试
使用copy命令进行测试提权
cd /tmp
echo “/bin/bash” > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
cd /home/ttgo2
./shell
whoami
3、利用说明
这里充分说明了,如果一个普通用户的PATH变量包含了自己能控制的执行文件目录,再加上利用关键具有SUID权限的文件,就可以进行提权,所以这两个配置项是非常有必要进行安全加固的。

Linux 网络故障排除思路和方法

系统安全ttgo2 发表了文章 • 0 个评论 • 179 次浏览 • 2018-09-19 20:27 • 来自相关话题

最近在对Linux系统网络配置中同学们出现各种问题,面对问题大家的思路比较混乱,没有解决问题的思路,今天给大家整理一下这个过程,系统能对刚入门的同学有所帮助。
1 ,检测网卡是否UP
服务器网卡有的需要手工开启,如果网卡不开启是无法使用的,开启的方法是ifconfig eth0 up[root@bogon ~]#
[root@bogon ~]# ifconfig eth0 up
[root@bogon ~]#

2,检测到网关是否可以互通
如果无法ping通网关,一般原因是IP地址配置有误,或者网络掩码配置错误,导致无法正常ping通,(这里不包括防火墙作为网关或者网关禁止icmp协议的,)需要保证到网关是通的。
3,测试一下到DNS是否可以互通
ping测试到DNS是否可以互通,如果发现ping 不通,一定是网关配置出现错误,需要检查一下网关的配置,或者检查一下本地路由表是否有到网关的默认路由。[root@bogon ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default bogon 0.0.0.0 UG 0 0 0 eth0
[root@bogon ~]#


[root@bogon ~]# route add default gw 192.168.0.1

4,检查一下DNS服务是否工作正常
一般公网上的DNS还是很稳定的,但是公司或者学校内部的DNS可能有问题出现,简单测试一下本地DNS是否可用,测试方式可以使用nslookup[root@bogon ~]# nslookup www.baidu.com
Server: 202.102.224.68
Address: 202.102.224.68#53

Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 61.135.169.125
Name: www.a.shifen.com
Address: 61.135.169.121

[root@bogon ~]#
如果内网DNS有问题,可以临时换成公网的DNS,
 
5 检测浏览器是否使用代理
可以ping通www.baidu.com 但是浏览器无法打开网页,一般都是浏览器配合了代理,取消即可。chrom为例:










 
 
通过这一步一步的排错,一般情况都能解决,如果疏漏了那点,希望大家指正。谢谢。
 
 
  查看全部
最近在对Linux系统网络配置中同学们出现各种问题,面对问题大家的思路比较混乱,没有解决问题的思路,今天给大家整理一下这个过程,系统能对刚入门的同学有所帮助。
1 ,检测网卡是否UP
服务器网卡有的需要手工开启,如果网卡不开启是无法使用的,开启的方法是ifconfig eth0 up
[root@bogon ~]# 
[root@bogon ~]# ifconfig eth0 up
[root@bogon ~]#

2,检测到网关是否可以互通
如果无法ping通网关,一般原因是IP地址配置有误,或者网络掩码配置错误,导致无法正常ping通,(这里不包括防火墙作为网关或者网关禁止icmp协议的,)需要保证到网关是通的。
3,测试一下到DNS是否可以互通
ping测试到DNS是否可以互通,如果发现ping 不通,一定是网关配置出现错误,需要检查一下网关的配置,或者检查一下本地路由表是否有到网关的默认路由。
[root@bogon ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default bogon 0.0.0.0 UG 0 0 0 eth0
[root@bogon ~]#


[root@bogon ~]# route add default gw 192.168.0.1

4,检查一下DNS服务是否工作正常
一般公网上的DNS还是很稳定的,但是公司或者学校内部的DNS可能有问题出现,简单测试一下本地DNS是否可用,测试方式可以使用nslookup
[root@bogon ~]# nslookup www.baidu.com
Server: 202.102.224.68
Address: 202.102.224.68#53

Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 61.135.169.125
Name: www.a.shifen.com
Address: 61.135.169.121

[root@bogon ~]#

如果内网DNS有问题,可以临时换成公网的DNS,
 
5 检测浏览器是否使用代理
可以ping通www.baidu.com 但是浏览器无法打开网页,一般都是浏览器配合了代理,取消即可。chrom为例:

QQ截图20180919202415.png


QQ截图20180919202526.png

 
 
通过这一步一步的排错,一般情况都能解决,如果疏漏了那点,希望大家指正。谢谢。
 
 
 

Linux 下network和NetworkManager 冲突导致网络异常

系统安全ttgo2 发表了文章 • 0 个评论 • 95 次浏览 • 2018-09-18 16:41 • 来自相关话题

一,问题-找不到网卡配置文件(ifcfg-eth0)
Centos 6.5 Linux 系统中,有的同学发现自己的网卡在/etc/sysconfig/network-scripts/下面没有发现有ifcfg-eth0,针对这个问题我们进行讨论一下:
 
在/etc/sysconfig/network-scripts/下没有发现有ifcfg-eth0 的文件,检测如下:-rw-r--r--. 1 root root 254 Oct 10 2013 ifcfg-lo
lrwxrwxrwx. 1 root root 20 Mar 20 2017 ifdown -> ../../../sbin/ifdown
-rwxr-xr-x. 1 root root 627 Oct 10 2013 ifdown-bnep
-rwxr-xr-x. 1 root root 5430 Oct 10 2013 ifdown-eth
-rwxr-xr-x. 1 root root 781 Oct 10 2013 ifdown-ippp
-rwxr-xr-x. 1 root root 4168 Oct 10 2013 ifdown-ipv6
lrwxrwxrwx. 1 root root 11 Mar 20 2017 ifdown-isdn -> ifdown-ippp
-rwxr-xr-x. 1 root root 1481 Oct 10 2013 ifdown-post
-rwxr-xr-x. 1 root root 1064 Oct 10 2013 ifdown-ppp
-rwxr-xr-x. 1 root root 835 Oct 10 2013 ifdown-routes
-rwxr-xr-x. 1 root root 1465 Oct 10 2013 ifdown-sit
-rwxr-xr-x. 1 root root 1434 Oct 10 2013 ifdown-tunnel
lrwxrwxrwx. 1 root root 18 Mar 20 2017 ifup -> ../../../sbin/ifup
-rwxr-xr-x. 1 root root 12444 Oct 10 2013 ifup-aliases
-rwxr-xr-x. 1 root root 859 Oct 10 2013 ifup-bnep
-rwxr-xr-x. 1 root root 10556 Oct 10 2013 ifup-eth
-rwxr-xr-x. 1 root root 11971 Oct 10 2013 ifup-ippp
-rwxr-xr-x. 1 root root 10490 Oct 10 2013 ifup-ipv6
lrwxrwxrwx. 1 root root 9 Mar 20 2017 ifup-isdn -> ifup-ippp
-rwxr-xr-x. 1 root root 727 Oct 10 2013 ifup-plip
-rwxr-xr-x. 1 root root 954 Oct 10 2013 ifup-plusb
-rwxr-xr-x. 1 root root 2364 Oct 10 2013 ifup-post
-rwxr-xr-x. 1 root root 4154 Oct 10 2013 ifup-ppp
-rwxr-xr-x. 1 root root 1925 Oct 10 2013 ifup-routes
-rwxr-xr-x. 1 root root 3289 Oct 10 2013 ifup-sit
-rwxr-xr-x. 1 root root 2488 Oct 10 2013 ifup-tunnel
-rwxr-xr-x. 1 root root 3770 Oct 10 2013 ifup-wireless
-rwxr-xr-x. 1 root root 4623 Oct 10 2013 init.ipv6-global
-rwxr-xr-x. 1 root root 1125 Oct 10 2013 net.hotplug
-rw-r--r--. 1 root root 13386 Oct 10 2013 network-functions
-rw-r--r--. 1 root root 29853 Oct 10 2013 network-functions-ipv6
 
网卡信息[root@localhost network-scripts]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:AD:6F:DC
inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fead:6fdc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:194313 errors:0 dropped:0 overruns:0 frame:0
TX packets:2643 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112599638 (107.3 MiB) TX bytes:157256 (153.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1077 errors:0 dropped:0 overruns:0 frame:0
TX packets:1077 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:105953 (103.4 KiB) TX bytes:105953 (103.4 KiB)




网卡有地址,并且工作正常,那原因出在什么地方呢?
 
二 问题分析
在Centos 6.X 版本中,有两个服务来负责网络的管理,network和NetworkManager 两个服务,其中这两个服务可以同时存在,但是如果你运行的级别是在id=3(命令多用户模式)使用的服务为network,如果是id=5(多用户图形化)使用的是networkmanager服务。
 
如果没有发现ifcfg-eth0 文件,很有可能是因为network这个服务没有开启,检测如下:[root@localhost network-scripts]# chkconfig --list | grep -i netw
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost network-scripts]# 三、解决问题
如果出现了冲突,尽可能使用一个服务即可,不要同时使用,对其他的服务进行关闭,操作如下
chkconfig NetworkManager off
然后重启系统,复制lo的文件,修改名字为eth0,然后进行修改内容如下:DEVICE="eth0"
BOOTPROTO=“static” // 选择静态
HWADDR="00:0C:29:E8:08:2B"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR=192.168.2.89
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
TYPE="Ethernet"
UUID="e264bc1a-e8ca-4637-951d-ece828187789 查看全部
一,问题-找不到网卡配置文件(ifcfg-eth0)
Centos 6.5 Linux 系统中,有的同学发现自己的网卡在/etc/sysconfig/network-scripts/下面没有发现有ifcfg-eth0,针对这个问题我们进行讨论一下:
 
在/etc/sysconfig/network-scripts/下没有发现有ifcfg-eth0 的文件,检测如下:
-rw-r--r--. 1 root root   254 Oct 10  2013 ifcfg-lo
lrwxrwxrwx. 1 root root 20 Mar 20 2017 ifdown -> ../../../sbin/ifdown
-rwxr-xr-x. 1 root root 627 Oct 10 2013 ifdown-bnep
-rwxr-xr-x. 1 root root 5430 Oct 10 2013 ifdown-eth
-rwxr-xr-x. 1 root root 781 Oct 10 2013 ifdown-ippp
-rwxr-xr-x. 1 root root 4168 Oct 10 2013 ifdown-ipv6
lrwxrwxrwx. 1 root root 11 Mar 20 2017 ifdown-isdn -> ifdown-ippp
-rwxr-xr-x. 1 root root 1481 Oct 10 2013 ifdown-post
-rwxr-xr-x. 1 root root 1064 Oct 10 2013 ifdown-ppp
-rwxr-xr-x. 1 root root 835 Oct 10 2013 ifdown-routes
-rwxr-xr-x. 1 root root 1465 Oct 10 2013 ifdown-sit
-rwxr-xr-x. 1 root root 1434 Oct 10 2013 ifdown-tunnel
lrwxrwxrwx. 1 root root 18 Mar 20 2017 ifup -> ../../../sbin/ifup
-rwxr-xr-x. 1 root root 12444 Oct 10 2013 ifup-aliases
-rwxr-xr-x. 1 root root 859 Oct 10 2013 ifup-bnep
-rwxr-xr-x. 1 root root 10556 Oct 10 2013 ifup-eth
-rwxr-xr-x. 1 root root 11971 Oct 10 2013 ifup-ippp
-rwxr-xr-x. 1 root root 10490 Oct 10 2013 ifup-ipv6
lrwxrwxrwx. 1 root root 9 Mar 20 2017 ifup-isdn -> ifup-ippp
-rwxr-xr-x. 1 root root 727 Oct 10 2013 ifup-plip
-rwxr-xr-x. 1 root root 954 Oct 10 2013 ifup-plusb
-rwxr-xr-x. 1 root root 2364 Oct 10 2013 ifup-post
-rwxr-xr-x. 1 root root 4154 Oct 10 2013 ifup-ppp
-rwxr-xr-x. 1 root root 1925 Oct 10 2013 ifup-routes
-rwxr-xr-x. 1 root root 3289 Oct 10 2013 ifup-sit
-rwxr-xr-x. 1 root root 2488 Oct 10 2013 ifup-tunnel
-rwxr-xr-x. 1 root root 3770 Oct 10 2013 ifup-wireless
-rwxr-xr-x. 1 root root 4623 Oct 10 2013 init.ipv6-global
-rwxr-xr-x. 1 root root 1125 Oct 10 2013 net.hotplug
-rw-r--r--. 1 root root 13386 Oct 10 2013 network-functions
-rw-r--r--. 1 root root 29853 Oct 10 2013 network-functions-ipv6

 
网卡信息
[root@localhost network-scripts]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:AD:6F:DC
inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fead:6fdc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:194313 errors:0 dropped:0 overruns:0 frame:0
TX packets:2643 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112599638 (107.3 MiB) TX bytes:157256 (153.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1077 errors:0 dropped:0 overruns:0 frame:0
TX packets:1077 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:105953 (103.4 KiB) TX bytes:105953 (103.4 KiB)




网卡有地址,并且工作正常,那原因出在什么地方呢?
 
二 问题分析
在Centos 6.X 版本中,有两个服务来负责网络的管理,network和NetworkManager 两个服务,其中这两个服务可以同时存在,但是如果你运行的级别是在id=3(命令多用户模式)使用的服务为network,如果是id=5(多用户图形化)使用的是networkmanager服务。
 
如果没有发现ifcfg-eth0 文件,很有可能是因为network这个服务没有开启,检测如下:
[root@localhost network-scripts]# chkconfig --list | grep -i netw
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost network-scripts]#
三、解决问题
如果出现了冲突,尽可能使用一个服务即可,不要同时使用,对其他的服务进行关闭,操作如下
chkconfig NetworkManager off
然后重启系统,复制lo的文件,修改名字为eth0,然后进行修改内容如下:
DEVICE="eth0"
BOOTPROTO=“static” // 选择静态
HWADDR="00:0C:29:E8:08:2B"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR=192.168.2.89
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
TYPE="Ethernet"
UUID="e264bc1a-e8ca-4637-951d-ece828187789

Linux CentOS查看硬件信息大全

ttgo2 发表了文章 • 0 个评论 • 178 次浏览 • 2018-09-16 11:26 • 来自相关话题

在企业安全运维的过程,系统资产是非常重要的环节,下面的Linux命令是针对硬件信息的收集,如果这个写成自动化脚本,可以极大提高工作效率。1、CentOS常用命令查看 CPU
[root@bogon ~]# more /proc/cpuinfo | grep "model name"
model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
[root@bogon ~]#
2、CentOS常用命令查看内存
[root@bogon ~]# free -m
total used free shared buffers cached
Mem: 980 765 215 0 42 411
-/+ buffers/cache: 311 668
Swap: 1983 0 1983
[root@bogon ~]#
3、CentOS常用命令查看cpu是32位还是64位​
[root@bogon ~]# getconf LONG_BIT
64
[root@bogon ~]#
4、使用CentOS常用命令查看当前linux的版本​
[root@bogon ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@bogon ~]#
5、使用CentOS常用命令查看内核版本​
[root@bogon ~]# uname -a
Linux bogon 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@bogon ~]# uname -r
2.6.32-431.el6.x86_64
[root@bogon ~]# 

6、使用CentOS常用命令查看硬盘和分区​
[root@bogon ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.7G 14G 17% /
tmpfs 491M 80K 491M 1% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/sr0 4.2G 4.2G 0 100% /media/CentOS_6.5_Final
[root@bogon ~]#
7、使用CentOS常用命令查看键盘布局
[root@bogon ~]# cat /etc/sysconfig/keyboard
KEYTABLE="us"
MODEL="pc105+inet"
LAYOUT="us"
KEYBOARDTYPE="pc"
[root@bogon ~]# 8、使用CentOS常用命令查看selinux情况​
[root@bogon ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
[root@bogon ~]#
9、查看IP地址
[root@bogon ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:AD:6F:DC
inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fead:6fdc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:391924 errors:0 dropped:0 overruns:0 frame:0
TX packets:10831 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:71665413 (68.3 MiB) TX bytes:816104 (796.9 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:164 errors:0 dropped:0 overruns:0 frame:0
TX packets:164 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14626 (14.2 KiB) TX bytes:14626 (14.2 KiB)

[root@bogon ~]#
10、使用CentOS常用命令查看所属时区和是否使用UTC时间
[root@bogon ~]# cat /etc/sysconfig/clock
ZONE="America/Los_Angeles"
[root@bogon ~]#
11、使用CentOS常用命令查看主机名​
[root@bogon ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
[root@bogon ~]# 12、使用CentOS常用命令查看开机运行时间
[root@bogon ~]# uptime
20:18:41 up 5:16, 3 users, load average: 0.00, 0.00, 0.04
[root@bogon ~]#
13、查看主板信息
[root@bogon ~]# dmidecode |more
# dmidecode 2.11
SMBIOS 2.7 present.
620 structures occupying 29188 bytes.
Table at 0x000E0010.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies LTD
Version: 6.00
Release Date: 07/02/2015
Address: 0xEA5E0
Runtime Size: 88608 bytes
ROM Size: 64 kB
Characteristics:
ISA is supported
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
EDD is supported
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
Smart battery 14、查看磁盘使用情况
[root@bogon ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ce1a7

Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 2358 18631680 83 Linux
/dev/sda3 2358 2611 2031616 82 Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x084395f5

Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
[root@bogon ~]# 查看全部
在企业安全运维的过程,系统资产是非常重要的环节,下面的Linux命令是针对硬件信息的收集,如果这个写成自动化脚本,可以极大提高工作效率。1、CentOS常用命令查看 CPU
[root@bogon ~]# more /proc/cpuinfo | grep "model name"
model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
[root@bogon ~]#
2、CentOS常用命令查看内存
[root@bogon ~]# free -m
total used free shared buffers cached
Mem: 980 765 215 0 42 411
-/+ buffers/cache: 311 668
Swap: 1983 0 1983
[root@bogon ~]#
3、CentOS常用命令查看cpu是32位还是64位​
[root@bogon ~]# getconf LONG_BIT
64
[root@bogon ~]#
4、使用CentOS常用命令查看当前linux的版本​
[root@bogon ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@bogon ~]#
5、使用CentOS常用命令查看内核版本​
[root@bogon ~]# uname -a
Linux bogon 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@bogon ~]# uname -r
2.6.32-431.el6.x86_64
[root@bogon ~]# 

6、使用CentOS常用命令查看硬盘和分区​
[root@bogon ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.7G 14G 17% /
tmpfs 491M 80K 491M 1% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/sr0 4.2G 4.2G 0 100% /media/CentOS_6.5_Final
[root@bogon ~]#
7、使用CentOS常用命令查看键盘布局
[root@bogon ~]# cat /etc/sysconfig/keyboard
KEYTABLE="us"
MODEL="pc105+inet"
LAYOUT="us"
KEYBOARDTYPE="pc"
[root@bogon ~]#
8、使用CentOS常用命令查看selinux情况​
[root@bogon ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
[root@bogon ~]#
9、查看IP地址
[root@bogon ~]# ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0C:29:AD:6F:DC
inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fead:6fdc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:391924 errors:0 dropped:0 overruns:0 frame:0
TX packets:10831 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:71665413 (68.3 MiB) TX bytes:816104 (796.9 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:164 errors:0 dropped:0 overruns:0 frame:0
TX packets:164 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14626 (14.2 KiB) TX bytes:14626 (14.2 KiB)

[root@bogon ~]#
10、使用CentOS常用命令查看所属时区和是否使用UTC时间
[root@bogon ~]# cat /etc/sysconfig/clock
ZONE="America/Los_Angeles"
[root@bogon ~]#
11、使用CentOS常用命令查看主机名​
[root@bogon ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
[root@bogon ~]#
12、使用CentOS常用命令查看开机运行时间
[root@bogon ~]# uptime
20:18:41 up 5:16, 3 users, load average: 0.00, 0.00, 0.04
[root@bogon ~]#
13、查看主板信息
[root@bogon ~]# dmidecode |more
# dmidecode 2.11
SMBIOS 2.7 present.
620 structures occupying 29188 bytes.
Table at 0x000E0010.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies LTD
Version: 6.00
Release Date: 07/02/2015
Address: 0xEA5E0
Runtime Size: 88608 bytes
ROM Size: 64 kB
Characteristics:
ISA is supported
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
EDD is supported
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
Smart battery
14、查看磁盘使用情况
[root@bogon ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ce1a7

Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 2358 18631680 83 Linux
/dev/sda3 2358 2611 2031616 82 Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x084395f5

Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
[root@bogon ~]#

Linux 系统下SWAP区的安全隐患

系统安全ttgo2 发表了文章 • 0 个评论 • 159 次浏览 • 2018-09-13 22:18 • 来自相关话题

一、 Linux的交换分区Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
二、SWAP分区中的安全问题
交换分区中存在十分敏感的信息内容,其中包括了密码,证书,email等重要信息,特别为对后渗透阶段提供了帮助,因此潜在的风险巨大,风险点如下:
Linux的帐户和明文密码
Web登录/密码
Email地址
Wifi的SSID和密钥
GPG私钥
Keepass主密钥
Samba证书三、swap的常用命令
3.1 查看swap的设备位置
[root@bogon ~]# swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2031608 0 -1

[root@bogon ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3 partition 2031608 0 -1
[root@bogon ~]#

3.2 查看swap的分区大小
[root@bogon ~]# free -m
total used free shared buffers cached
Mem: 980 577 403 0 26 211
-/+ buffers/cache: 338 642
Swap: 1983 0 1983
3.3 swap 分区大小设置
系统的Swap分区大小设置多大才是最优呢?这是没有标准答案,ORACLE的官方文档就推荐如下设置
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。四、查找分区内的敏感信息
4.1 查看email 相关信息
因为是虚拟机,没有真实使用记录,随意没有有价值的信息,操作命令如下:
[root@bogon ~]# strings /dev/sda3 | grep -i 'email'
for root, dirs, files in os.walk('python/Lib/email'):
email.utils
pkcs9_email_address
ext_key_usage_email_protect
SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT
sec_oid_ext_key_usage_email_protect
SEC_OID_PKCS9_EMAIL_ADDRESS
sec_oid_pkcs9_email_address
Needed for Python 1.5.2 (no email package available)
Determine the subject for the email.
SEC_ERROR_NO_EMAIL_CERT
email_trust_str
email_address
certificateUsageEmailSigner
certificateUsageEmailRecipient
email
SEC_ERROR_NO_EMAIL_CERT: Not encrypted or signed: you do not yet have an email certificate.
email and object signing it's trusted to create server
4.2 自动化脚本
脚本的github为:https://github.com/sevagas/swap_digger,大家可以自行下载,进行尝试










 
五、加固方法
5.1 禁止使用swap
[root@bogon swap_digger-master]# swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2031608 8 -1
[root@bogon swap_digger-master]# swapoff /dev/sda3
[root@bogon swap_digger-master]# swapon -s
Filename Type Size Used Priority
[root@bogon swap_digger-master]# swapon /dev/sda3
[root@bogon swap_digger-master]# swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2031608 0 -1
[root@bogon swap_digger-master]#
5.2 对swap进行加密 查看全部
一、 Linux的交换分区Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
二、SWAP分区中的安全问题
交换分区中存在十分敏感的信息内容,其中包括了密码,证书,email等重要信息,特别为对后渗透阶段提供了帮助,因此潜在的风险巨大,风险点如下:
Linux的帐户和明文密码
Web登录/密码
Email地址
Wifi的SSID和密钥
GPG私钥
Keepass主密钥
Samba证书
三、swap的常用命令
3.1 查看swap的设备位置
[root@bogon ~]# swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2031608 0 -1

[root@bogon ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3 partition 2031608 0 -1
[root@bogon ~]#

3.2 查看swap的分区大小
[root@bogon ~]# free -m
total used free shared buffers cached
Mem: 980 577 403 0 26 211
-/+ buffers/cache: 338 642
Swap: 1983 0 1983
3.3 swap 分区大小设置
系统的Swap分区大小设置多大才是最优呢?这是没有标准答案,ORACLE的官方文档就推荐如下设置
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
四、查找分区内的敏感信息
4.1 查看email 相关信息
因为是虚拟机,没有真实使用记录,随意没有有价值的信息,操作命令如下:
[root@bogon ~]# strings /dev/sda3 | grep -i 'email'
for root, dirs, files in os.walk('python/Lib/email'):
email.utils
pkcs9_email_address
ext_key_usage_email_protect
SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT
sec_oid_ext_key_usage_email_protect
SEC_OID_PKCS9_EMAIL_ADDRESS
sec_oid_pkcs9_email_address
Needed for Python 1.5.2 (no email package available)
Determine the subject for the email.
SEC_ERROR_NO_EMAIL_CERT
email_trust_str
email_address
certificateUsageEmailSigner
certificateUsageEmailRecipient
email
SEC_ERROR_NO_EMAIL_CERT: Not encrypted or signed: you do not yet have an email certificate.
email and object signing it's trusted to create server
4.2 自动化脚本
脚本的github为:https://github.com/sevagas/swap_digger,大家可以自行下载,进行尝试

swap_digger.png


swap_digger_extended.png

 
五、加固方法
5.1 禁止使用swap
[root@bogon swap_digger-master]# swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2031608 8 -1
[root@bogon swap_digger-master]# swapoff /dev/sda3
[root@bogon swap_digger-master]# swapon -s
Filename Type Size Used Priority
[root@bogon swap_digger-master]# swapon /dev/sda3
[root@bogon swap_digger-master]# swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2031608 0 -1
[root@bogon swap_digger-master]#
5.2 对swap进行加密

检查Linux是否被提权(unix-privesc-check)

系统安全ttgo2 发表了文章 • 0 个评论 • 204 次浏览 • 2018-09-08 23:54 • 来自相关话题

1、Unix/Linux提权漏洞快速检测工具unix-privesc-check

unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具。它是一个Shell文件,可以检测所在系统的错误配置,以发现可以用于提权的漏洞。该工具适用于安全审计、渗透测试和系统维护等场景。它可以检测与权限相关的各类文件的读写权限,如认证相关文件、重要配置文件、交换区文件、cron job文件、设备文件、其他用户的家目录、正在执行的文件等等。如果发现可以利用的漏洞,就会给出提示warning。 
unix-privesc-check并不会检测所有提权漏洞的潜在情况。它只是快速进行检测,并以简洁的方式给出提权漏洞相关的建议,大大减少用户在文件权限检测方面的枯燥工作的量。
将unix-privesc-check上传到目标主机上,或者直接在本机上。2 提权检查
执行:unix-privesc-check standard









 
转载 https://blog.csdn.net/noob_f/article/details/72758420
 
 
  查看全部
1、Unix/Linux提权漏洞快速检测工具unix-privesc-check

unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具。它是一个Shell文件,可以检测所在系统的错误配置,以发现可以用于提权的漏洞。该工具适用于安全审计、渗透测试和系统维护等场景。它可以检测与权限相关的各类文件的读写权限,如认证相关文件、重要配置文件、交换区文件、cron job文件、设备文件、其他用户的家目录、正在执行的文件等等。如果发现可以利用的漏洞,就会给出提示warning。 
unix-privesc-check并不会检测所有提权漏洞的潜在情况。它只是快速进行检测,并以简洁的方式给出提权漏洞相关的建议,大大减少用户在文件权限检测方面的枯燥工作的量。
将unix-privesc-check上传到目标主机上,或者直接在本机上。
2 提权检查
执行:unix-privesc-check standard

20170525222003505.png


20170525222051600.png

 
转载 https://blog.csdn.net/noob_f/article/details/72758420

 
 
 

讨论一下sudo的安全性问题

系统安全ttgo2 发表了文章 • 1 个评论 • 243 次浏览 • 2018-09-08 23:29 • 来自相关话题

最近看过一篇文章关于sudo的安全性的讨论,正好自己最近工作也与Linux有关,自己总结了一下,给大家一起分享,现在企业在Linux的使用中,越来越关注安全问题,运维中使用普通用户进行管理,遇到需要root账号执行时候,使用sudo 命令来提升自己执行权限,这样做是为了把账号权限降低,避免安全。
 
一、 sudo 是什么
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
选项参数-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。举例: 使用sudo执行 cat /etc/shadow[ttgo2@bogon ~]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[ttgo2@bogon ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied

[ttgo2@bogon ~]$ sudo cat /etc/shadow
[sudo] password for ttgo2:
root:$1$txEWMiG.$4kBR6Cfsl1fyeiT540BIC.:17351:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
二、 抛出问题
使用普通用户执行 sudo su - root 是不是直接使用root 账号了? 我们来看一下执行结果。
问题1:直接执行sudo su - root[ttgo2@bogon ~]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon ~]$ sudo su - root
[root@bogon ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon ~]#
 
还有其他多种操作可以直接提升到root用户,方法如下:
 
问题2:执行sudo tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/bash[ttgo2@bogon tmp]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon tmp]$ sudo tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/bash
tar: testfile: Cannot stat: No such file or directory
[root@bogon tmp]#
[root@bogon tmp]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon tmp]#
[root@bogon tmp]#
问题3:nmap 可以通过执行脚本来获取root的shell,执行如下[ttgo2@bogon tmp]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon tmp]$
[ttgo2@bogon tmp]$ echo "os.execute('/bin/sh')">/tmp/shell.nse
[ttgo2@bogon tmp]$
[ttgo2@bogon tmp]$
[ttgo2@bogon tmp]$ sudo nmap --script=/tmp/shell.nse

Starting Nmap 5.51 ( http://nmap.org ) at 2018-09-08 08:00 PDT
sh-4.1#
sh-4.1#
sh-4.1#
sh-4.1#
这样的方法还有还有很多,比如:strace、ftp、nmap、tcpdump、except、nano,这些命令都是可以实现sudo + 命令 提权成root shell。问题是出在什么地方,我们下面来看一下
 
三,问题解决
3.1 问题根源:普通用户使用sudo 配置(对权限没有控制)
在Centos 6.X Linux系统中,默认多普通用户是不允许使用sudo命令的,如果使用就会提示如下信息:[sec17@bogon tmp]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[sec17@bogon tmp]$ sudo cat /etc/shadow

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for sec17:
[b]sec17 is not in the sudoers file. This incident will be reported.
[/b][sec17@bogon tmp]$
很多系统管理直接对  vim /etc/sudoers 进行的编辑,增加权限,或者使用visudo 87
88 ## Next comes the main part: which users can run what software on
89 ## which machines (the sudoers file can be shared between multiple
90 ## systems).
91 ## Syntax:
92 ##
93 ## user MACHINE=COMMANDS
94 ##
95 ## The COMMANDS section may have other options added to it.
96 ##
97 ## Allow root to run any commands anywhere
[b]98 root ALL=(ALL) ALL
99 ttgo2 ALL=(ALL) ALL
100 sec17 ALL=(ALL) ALL[/b]
说明一下   “sec17   ALL=(ALL)       ALL” 配置含义,截图如下:





 
如果是权限是ALL的话,那么就可以执行任何命令了。因此存在非常大的安全问题,甚至可以通过sudo passwd 修改root密码,如何解决呢?我们往下继续。
 
3.2 如何解决
 
我们执行普通用户的操作命令,这个要特别熟悉该普通用的业务和操作命令和规范,那么现在解决一下 普通用户 执行passwd 修改root的方法,执行 visudo 命令,添加一个命令如下:ttgo2 ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root




 
保存并退出,我们现在使用ttgo2 普通行号进行测试。如下:[ttgo2@bogon ~]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon ~]$
[ttgo2@bogon ~]$ sudo passwd
[sudo] password for ttgo2:
[b]Sorry, user ttgo2 is not allowed to execute '/usr/bin/passwd' as root on bogon.
[/b][ttgo2@bogon ~]$


 
 
注意问题: 在配置visudo的时候,需要添加命令的全路径,多个命令直接使用“,”逗号隔开。
 
夜色已深,已经困的快睁不开双眼了,希望能对大家有所帮助
 
 
  查看全部
最近看过一篇文章关于sudo的安全性的讨论,正好自己最近工作也与Linux有关,自己总结了一下,给大家一起分享,现在企业在Linux的使用中,越来越关注安全问题,运维中使用普通用户进行管理,遇到需要root账号执行时候,使用sudo 命令来提升自己执行权限,这样做是为了把账号权限降低,避免安全。
 
一、 sudo 是什么
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
选项参数
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
举例: 使用sudo执行 cat /etc/shadow
[ttgo2@bogon ~]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[ttgo2@bogon ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied

[ttgo2@bogon ~]$ sudo cat /etc/shadow
[sudo] password for ttgo2:
root:$1$txEWMiG.$4kBR6Cfsl1fyeiT540BIC.:17351:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::

二、 抛出问题
使用普通用户执行 sudo su - root 是不是直接使用root 账号了? 我们来看一下执行结果。
问题1:直接执行sudo su - root
[ttgo2@bogon ~]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon ~]$ sudo su - root
[root@bogon ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon ~]#

 
还有其他多种操作可以直接提升到root用户,方法如下:
 
问题2:执行sudo tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/bash
[ttgo2@bogon tmp]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon tmp]$ sudo tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/bash
tar: testfile: Cannot stat: No such file or directory
[root@bogon tmp]#
[root@bogon tmp]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon tmp]#
[root@bogon tmp]#

问题3:nmap 可以通过执行脚本来获取root的shell,执行如下
[ttgo2@bogon tmp]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon tmp]$
[ttgo2@bogon tmp]$ echo "os.execute('/bin/sh')">/tmp/shell.nse
[ttgo2@bogon tmp]$
[ttgo2@bogon tmp]$
[ttgo2@bogon tmp]$ sudo nmap --script=/tmp/shell.nse

Starting Nmap 5.51 ( http://nmap.org ) at 2018-09-08 08:00 PDT
sh-4.1#
sh-4.1#
sh-4.1#
sh-4.1#

这样的方法还有还有很多,比如:strace、ftp、nmap、tcpdump、except、nano,这些命令都是可以实现sudo + 命令 提权成root shell。问题是出在什么地方,我们下面来看一下
 
三,问题解决
3.1 问题根源:普通用户使用sudo 配置(对权限没有控制)
在Centos 6.X Linux系统中,默认多普通用户是不允许使用sudo命令的,如果使用就会提示如下信息:
[sec17@bogon tmp]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[sec17@bogon tmp]$ sudo cat /etc/shadow

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for sec17:
[b]sec17 is not in the sudoers file. This incident will be reported.
[/b][sec17@bogon tmp]$

很多系统管理直接对  vim /etc/sudoers 进行的编辑,增加权限,或者使用visudo
  87 
88 ## Next comes the main part: which users can run what software on
89 ## which machines (the sudoers file can be shared between multiple
90 ## systems).
91 ## Syntax:
92 ##
93 ## user MACHINE=COMMANDS
94 ##
95 ## The COMMANDS section may have other options added to it.
96 ##
97 ## Allow root to run any commands anywhere
[b]98 root ALL=(ALL) ALL
99 ttgo2 ALL=(ALL) ALL
100 sec17 ALL=(ALL) ALL[/b]

说明一下   “sec17   ALL=(ALL)       ALL” 配置含义,截图如下:

wKioL1MYJ0CRJZGSAAD9-EL6Zs4959.jpg

 
如果是权限是ALL的话,那么就可以执行任何命令了。因此存在非常大的安全问题,甚至可以通过sudo passwd 修改root密码,如何解决呢?我们往下继续。
 
3.2 如何解决
 
我们执行普通用户的操作命令,这个要特别熟悉该普通用的业务和操作命令和规范,那么现在解决一下 普通用户 执行passwd 修改root的方法,执行 visudo 命令,添加一个命令如下:
ttgo2  ALL=(root)     !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

QQ截图20180908232316.png

 
保存并退出,我们现在使用ttgo2 普通行号进行测试。如下:
[ttgo2@bogon ~]$ id
uid=500(ttgo2) gid=500(ttgo2) groups=500(ttgo2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[ttgo2@bogon ~]$
[ttgo2@bogon ~]$ sudo passwd
[sudo] password for ttgo2:
[b]Sorry, user ttgo2 is not allowed to execute '/usr/bin/passwd' as root on bogon.
[/b][ttgo2@bogon ~]$


 
 
注意问题: 在配置visudo的时候,需要添加命令的全路径,多个命令直接使用“,”逗号隔开。
 
夜色已深,已经困的快睁不开双眼了,希望能对大家有所帮助
 
 
 

Ubuntu 16.04 本地提权漏洞复现过程

系统安全ttgo2 发表了文章 • 0 个评论 • 224 次浏览 • 2018-08-28 17:35 • 来自相关话题

一、漏洞描述
该漏洞存在于Linux内核带有的eBPF bpf(2)系统调用中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题。 非特权用户可以使用此漏洞获得权限提升
二、影响范围
主要是Debian和Ubuntu版本受影响,Redhat和CentOS不受影响Linux内核:Linux Kernel Version 4.14 ~ 4.4
Ubuntu版本:16.04.01~ 16.04.04root@ubuntu:~# cat /etc/issue
Ubuntu 16.04.3 LTS \n \l

root@ubuntu:~# uname -r
4.4.0-87-generic
root@ubuntu:~# 三、测试环境
VM虚拟机:vmware station 12
操作系统:ubuntu-16.04.3-server-amd64.iso
POC:  链接:https://pan.baidu.com/s/1Xwg2AF5TCASvETdrW-Vg-A 密码:b7c2
四、复现过程
step1: 查看本地id 当前的用户




step2:下载POC到本地家目录
可以通过xshell下的xftp直接上传到服务器,不再具体讲解。
step3:安装gcc的编译环境sudo apt-get install gcc



step4:使用gcc进行编译 upstream44.c的文件gcc -o sec upstream44.cstep5: 给sec文件增加一个执行权限chmod +x sec


step6:执行sec文件,进行本地提权ttgo2@ubuntu:~$ ./sec
task_struct = ffff88003278aa00
uidptr = ffff8800327d3e04
spawning root shell
root@ubuntu:~#



step7:提权成功,执行id和cat /etc/shadowroot@ubuntu:~# id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),114(lpadmin),115(sambashare),1000(ttgo2)
root@ubuntu:~# cat /etc/shadow
root:!:17771:0:99999:7:::
daemon:*:17379:0:99999:7:::
bin:*:17379:0:99999:7:::
sys:*:17379:0:99999:7:::
sync:*:17379:0:99999:7:::



五、漏洞修复
升级一下内核版本即可,具体操作如下:
 step1:找到合适的版本,最新不一定是最好
ubuntu 内核版本地址:http://kernel.ubuntu.com/~kernel-ppa/mainline/





step2: 选择v4.8 进入,选择如下:linux-headers-4.8.0-040800_4.8.0-040800.201610022031_all.deb
linux-headers-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb
linux-image-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb



step3: 下载到本地目录wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8/linux-headers-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.debstep4:进行安装,过程如下:ttgo2@ubuntu:~$ [b]sudo dpkg -i *.deb
[/b][sudo] password for ttgo2:
Selecting previously unselected package linux-headers-4.8.0-040800.
(Reading database ... 90554 files and directories currently installed.)
Preparing to unpack linux-headers-4.8.0-040800_4.8.0-040800.201610022031_all.deb ...
Unpacking linux-headers-4.8.0-040800 (4.8.0-040800.201610022031) ...
Selecting previously unselected package linux-headers-4.8.0-040800-generic.
Preparing to unpack linux-headers-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb ...
Unpacking linux-headers-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Selecting previously unselected package linux-image-4.8.0-040800-generic.
Preparing to unpack linux-image-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb ...
Done.
Unpacking linux-image-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Setting up linux-headers-4.8.0-040800 (4.8.0-040800.201610022031) ...
Setting up linux-headers-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Setting up linux-image-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-040800-generic /boot/vmlinuz-4.8.0-040800-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-040800-generic /boot/vmlinuz-4.8.0-040800-generic
update-initramfs: Generating /boot/initrd.img-4.8.0-040800-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.8.0-040800-generic /boot/vmlinuz-4.8.0-040800-generic
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.8.0-040800-generic
Found initrd image: /boot/initrd.img-4.8.0-040800-generic
Found linux image: /boot/vmlinuz-4.4.0-87-generic
Found initrd image: /boot/initrd.img-4.4.0-87-generic
done
 
step4: 然后对系统进行重启,查看版本是否更新到4.8​ttgo2@ubuntu:~$ uname -sr
Linux 4.8.0-040800-genericstep5:复测一下漏洞是否修复ttgo2@ubuntu:~$ ./sec
task_struct = ffff9923741d5900
error: bogus uid ptr
ttgo2@ubuntu:~$





 
到此为止全部工作已经搞定,这个过程中升级内核会有一定的风险,这里建议能重新安装就重新安装一个新的系统,我实验过程中遇到一次升级失败,导致系统无法启动,幸亏有镜像。水平有限大牛们多多指教。谢谢 查看全部
一、漏洞描述
该漏洞存在于Linux内核带有的eBPF bpf(2)系统调用中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题。 非特权用户可以使用此漏洞获得权限提升
二、影响范围
主要是Debian和Ubuntu版本受影响,Redhat和CentOS不受影响
Linux内核:Linux Kernel Version 4.14 ~ 4.4 
Ubuntu版本:16.04.01~ 16.04.04
root@ubuntu:~# cat /etc/issue
Ubuntu 16.04.3 LTS \n \l

root@ubuntu:~# uname -r
4.4.0-87-generic
root@ubuntu:~#
三、测试环境
VM虚拟机:vmware station 12
操作系统:ubuntu-16.04.3-server-amd64.iso
POC:  链接:https://pan.baidu.com/s/1Xwg2AF5TCASvETdrW-Vg-A 密码:b7c2
四、复现过程
step1: 查看本地id 当前的用户
u1.png

step2:下载POC到本地家目录
可以通过xshell下的xftp直接上传到服务器,不再具体讲解。
step3:安装gcc的编译环境
sudo apt-get install gcc
u2.png

step4:使用gcc进行编译 upstream44.c的文件
gcc -o sec upstream44.c
step5: 给sec文件增加一个执行权限
chmod +x sec


step6:执行sec文件,进行本地提权
ttgo2@ubuntu:~$ ./sec 
task_struct = ffff88003278aa00
uidptr = ffff8800327d3e04
spawning root shell
root@ubuntu:~#
t1.png

step7:提权成功,执行id和cat /etc/shadow
root@ubuntu:~# id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),114(lpadmin),115(sambashare),1000(ttgo2)
root@ubuntu:~# cat /etc/shadow
root:!:17771:0:99999:7:::
daemon:*:17379:0:99999:7:::
bin:*:17379:0:99999:7:::
sys:*:17379:0:99999:7:::
sync:*:17379:0:99999:7:::
t2.png

五、漏洞修复
升级一下内核版本即可,具体操作如下:
 step1:找到合适的版本,最新不一定是最好
ubuntu 内核版本地址:http://kernel.ubuntu.com/~kernel-ppa/mainline/

a2.png

step2: 选择v4.8 进入,选择如下:
linux-headers-4.8.0-040800_4.8.0-040800.201610022031_all.deb 
linux-headers-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb
linux-image-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb
a3.png

step3: 下载到本地目录
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8/linux-headers-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb
step4:进行安装,过程如下:
ttgo2@ubuntu:~$ [b]sudo dpkg -i *.deb
[/b][sudo] password for ttgo2:
Selecting previously unselected package linux-headers-4.8.0-040800.
(Reading database ... 90554 files and directories currently installed.)
Preparing to unpack linux-headers-4.8.0-040800_4.8.0-040800.201610022031_all.deb ...
Unpacking linux-headers-4.8.0-040800 (4.8.0-040800.201610022031) ...
Selecting previously unselected package linux-headers-4.8.0-040800-generic.
Preparing to unpack linux-headers-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb ...
Unpacking linux-headers-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Selecting previously unselected package linux-image-4.8.0-040800-generic.
Preparing to unpack linux-image-4.8.0-040800-generic_4.8.0-040800.201610022031_amd64.deb ...
Done.
Unpacking linux-image-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Setting up linux-headers-4.8.0-040800 (4.8.0-040800.201610022031) ...
Setting up linux-headers-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Setting up linux-image-4.8.0-040800-generic (4.8.0-040800.201610022031) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-040800-generic /boot/vmlinuz-4.8.0-040800-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-040800-generic /boot/vmlinuz-4.8.0-040800-generic
update-initramfs: Generating /boot/initrd.img-4.8.0-040800-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.8.0-040800-generic /boot/vmlinuz-4.8.0-040800-generic
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.8.0-040800-generic
Found initrd image: /boot/initrd.img-4.8.0-040800-generic
Found linux image: /boot/vmlinuz-4.4.0-87-generic
Found initrd image: /boot/initrd.img-4.4.0-87-generic
done

 
step4: 然后对系统进行重启,查看版本是否更新到4.8
​ttgo2@ubuntu:~$ uname -sr
Linux 4.8.0-040800-generic
step5:复测一下漏洞是否修复
ttgo2@ubuntu:~$ ./sec
task_struct = ffff9923741d5900
error: bogus uid ptr
ttgo2@ubuntu:~$

x1.png

 
到此为止全部工作已经搞定,这个过程中升级内核会有一定的风险,这里建议能重新安装就重新安装一个新的系统,我实验过程中遇到一次升级失败,导致系统无法启动,幸亏有镜像。水平有限大牛们多多指教。谢谢

从TCP状态机判断DDOS攻击

网络安全ttgo2 发表了文章 • 0 个评论 • 363 次浏览 • 2018-08-22 17:01 • 来自相关话题

最近解决同学们提出的问题,大部分都是工作遇到的问题,比如说通过查看系统的网络连接转态来看分析是否有网络攻击DDOS,或者说有人在扫描我们的服务器,其中很大部分对TCP协议的状态机不是很清楚,所以使用Netstat 调试出来的结果看不懂,无法分析,今天我们就简单介绍一下TCP协议的状态机制:
 
#一、TCP协议
TCP 协议是传送层的核心协议,提供了可靠面向连接的协议,分为三次握手和四次断开,在这个过程中TCP有个状态机,记录不同阶段的状态。
二、 握手和断开
这里不着重介绍三次握手和四次断开,只是附加一个图解,这部分详细内容大家自行脑补:参考链接:https://blog.csdn.net/qzcsu/article/details/72861891
2.1 握手协议:




2.2 断开过程




三 TCP的状态机
在协议建立和断开过程,tcp协议一直要维护一个状态,我们称为tcp的状态机。具体情况见下图:




3.1 握手过程状态
[]CLOSED: 表示初始状态。[/][]LISTEN: 侦听端口状态[/][]SYN_RCVD: 表示接受到了SYN报文,时间短暂[/][]SYN_SENT: 表示发送一个SYN的报文[/][]ESTABLISHED:表示连接已经建立了,是一个稳定状态。[/]为了方便理解,简单举个例子,某饭店8点之前是未开业,关门状态(closed 状态),八点之后开门营业,等待客人关顾(listen状态),客户进店点菜(SYS_SEND),老板收到并确认(SYS_RCVD), 客户说没错可以上菜,然后双方进入(Established)状态。3.2  断开过程状态[]FIN WAIT 1:本地的 TCP 实体发送一个 FIN 报文段并等待响应的确认[/][]CLOSE WAIT:服务器收到一个 FIN 报文段,它确认客户端的请求发回一个 ACK 报文段[/][]FIN WAIT 2 :客户端收到确认 ACK 报文段,就转移到 FIN WAIT 2 状态[/][]CLOSED:服务器收到最后一个确认 ACK 报文段,其 TCP 实体便释放该连接,并删除连接记录[/]
为了方便理解:可以简单理解为:客人吃饭要离开,喊老板结账(fin wait1), 老板说你等一下我找你钱(closeing),客户收到检查是否正确(fin wait2),确认无误然后彼此断开(closed)
四, 半打开和半关闭
DDOS网络攻击的方式很多,有应用层ddos也有网络层的,本文只讨论网络层形成的ddos攻击类型,上文我们讲述状态机,就非常好理解了,大量的半打开的链接,占用了大量的网络带宽,从而达到了DOS的目的。
4.1 半打开
发生在TCP3次握手中。
如果A向B发起TCP请求,B也按照正常情况进行响应了,但是A不进行第3次握手,这就是半连接
4.2半关闭
当一方关闭发送通道后,仍可接受另一方发送过来的数据,这样的情况叫“半关闭”。(拆除TCP连接是:你关闭你的发送通道,我关闭我的发送通道)。
五、Netstat DOS检测
netstat -na
显示所有连接到服务器的活跃的网络连接
netstat -an | grep :80 | sort
只显示连接到80段口的活跃的网络连接,80是http端口,这对于web服务器非常有用,并且对结果排序.对于你从许多的连接中找出单个发动洪水攻击IP非常有用
netstat -n -p|grep SYN_REC | wc -l
这个命令对于在服务器上找出活跃的SYNC_REC非常有用,数量应该很低,最好少于5.
在dos攻击和邮件炸弹,这个数字可能非常高.然而值通常依赖于系统,所以高的值可能平分给另外的服务器.
netstat -n -p | grep SYN_REC | sort -u
列出所有包含的IP地址而不仅仅是计数.
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有不同的IP地址节点发送SYN_REC的连接状态
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令来计算每个IP地址对服务器的连接数量
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出使用tcp和udp连接到服务器的数目
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
检查ESTABLISHED连接而不是所有连接,这可以每个ip的连接数
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
显示并且列出连接到80端口IP地址和连接数.80被用来作为HTTP 查看全部
最近解决同学们提出的问题,大部分都是工作遇到的问题,比如说通过查看系统的网络连接转态来看分析是否有网络攻击DDOS,或者说有人在扫描我们的服务器,其中很大部分对TCP协议的状态机不是很清楚,所以使用Netstat 调试出来的结果看不懂,无法分析,今天我们就简单介绍一下TCP协议的状态机制:
 
#一、TCP协议
TCP 协议是传送层的核心协议,提供了可靠面向连接的协议,分为三次握手和四次断开,在这个过程中TCP有个状态机,记录不同阶段的状态。
二、 握手和断开
这里不着重介绍三次握手和四次断开,只是附加一个图解,这部分详细内容大家自行脑补:参考链接:https://blog.csdn.net/qzcsu/article/details/72861891
2.1 握手协议:
握手.png

2.2 断开过程
20170607205756255.gif

三 TCP的状态机
在协议建立和断开过程,tcp协议一直要维护一个状态,我们称为tcp的状态机。具体情况见下图:
20160703002557770_(1).png

3.1 握手过程状态
    []CLOSED: 表示初始状态。[/][]LISTEN: 侦听端口状态[/][]SYN_RCVD: 表示接受到了SYN报文,时间短暂[/][]SYN_SENT: 表示发送一个SYN的报文[/][]ESTABLISHED:表示连接已经建立了,是一个稳定状态。[/]
为了方便理解,简单举个例子,某饭店8点之前是未开业,关门状态(closed 状态),八点之后开门营业,等待客人关顾(listen状态),客户进店点菜(SYS_SEND),老板收到并确认(SYS_RCVD), 客户说没错可以上菜,然后双方进入(Established)状态。3.2  断开过程状态
    []FIN WAIT 1:本地的 TCP 实体发送一个 FIN 报文段并等待响应的确认[/][]CLOSE WAIT:服务器收到一个 FIN 报文段,它确认客户端的请求发回一个 ACK 报文段[/][]FIN WAIT 2 :客户端收到确认 ACK 报文段,就转移到 FIN WAIT 2 状态[/][]CLOSED:服务器收到最后一个确认 ACK 报文段,其 TCP 实体便释放该连接,并删除连接记录[/]

为了方便理解:可以简单理解为:客人吃饭要离开,喊老板结账(fin wait1), 老板说你等一下我找你钱(closeing),客户收到检查是否正确(fin wait2),确认无误然后彼此断开(closed)
四, 半打开和半关闭
DDOS网络攻击的方式很多,有应用层ddos也有网络层的,本文只讨论网络层形成的ddos攻击类型,上文我们讲述状态机,就非常好理解了,大量的半打开的链接,占用了大量的网络带宽,从而达到了DOS的目的。
4.1 半打开
发生在TCP3次握手中。
如果A向B发起TCP请求,B也按照正常情况进行响应了,但是A不进行第3次握手,这就是半连接
4.2半关闭
当一方关闭发送通道后,仍可接受另一方发送过来的数据,这样的情况叫“半关闭”。(拆除TCP连接是:你关闭你的发送通道,我关闭我的发送通道)。
五、Netstat DOS检测
netstat -na
显示所有连接到服务器的活跃的网络连接
netstat -an | grep :80 | sort
只显示连接到80段口的活跃的网络连接,80是http端口,这对于web服务器非常有用,并且对结果排序.对于你从许多的连接中找出单个发动洪水攻击IP非常有用
netstat -n -p|grep SYN_REC | wc -l
这个命令对于在服务器上找出活跃的SYNC_REC非常有用,数量应该很低,最好少于5.
在dos攻击和邮件炸弹,这个数字可能非常高.然而值通常依赖于系统,所以高的值可能平分给另外的服务器.
netstat -n -p | grep SYN_REC | sort -u
列出所有包含的IP地址而不仅仅是计数.
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有不同的IP地址节点发送SYN_REC的连接状态
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令来计算每个IP地址对服务器的连接数量
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出使用tcp和udp连接到服务器的数目
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
检查ESTABLISHED连接而不是所有连接,这可以每个ip的连接数
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
显示并且列出连接到80端口IP地址和连接数.80被用来作为HTTP