记一次木马的发现[转]

网络安全你可以叫我风平 发表了文章 • 0 个评论 • 9 次浏览 • 1 天前 • 来自相关话题

        昨天清理磁盘,整理旧文件的时候,轻信直接打开了wooyun zone里某位白帽子分享的工具,一时大意,中马了。
        PC机上有个360安全卫士,也没有一丁点的提示。。。(这木马过360的)
        随后我在修改subDomainsBrute的时候,抓dns query,惊讶地发现,出现了一个3322.org的域名,并且对应记录是不存在的,如下图:





 
        以前玩远控木马的同学可能知道,3322.0rg,花生壳之类的,常常被用来木马在内网反向上线的。所以,这个地方十分不正常,这让我意识到,有较大的几率已经中马了。
       用360安全卫士扫描,没有发现任何木马和危险项,之前也提到了,这个木马是过360的。
       现在的问题是,如何抓到这个木马,我绕了一个弯子,因为我想从dns query入手来查找(正确的做法是打开进程查看器,逐个进程检查):
1.我们已经知道,木马会主动去连likang.3322.org,但是wireshark是抓不到进程pid,它仅仅支持从某一网卡抓包,并不关心包来自于哪个进程
 
2.即使能抓到DNS查询的对应进程,其实也只能抓到windows下的DNS Client:svchost.exe进程,实际并无意义,我们依然不知道背后到底是哪个进程在请求likang.3322.org
        在抓dns query源进程受阻的情况下,我想到,既然木马想访问likang.3322.org,而这个域名又不存在。 那么我应该可以欺骗它去访问我自己的服务器,我修改hosts文件,添加:
11.22.33.44 likang.3322.org        这个时候,我应该可以抓到访问likang.3322.org的其他请求了。
 
        我用smartsniff抓包,发现有到目标11.22.33.44的http request,木马会请求likang.3322.org/ip.txt看起来像是一个DDOS木马,下载攻击目标的。
 
        这个时候我还是没抓到进程,对应的likang.3322.org/ip.txt文件并不存在,http request一瞬间就结束了,tcp查看工具因为刷新频率的原因,还看不到对应的进程。
于是我在11.22.33.44上python起了一个http server,并且让get请求hang住,sleep 30s,最终抓到了对应的进程:




       如图,QQ进程:





        总结一下,上面也说到,正确的做法,应该是查看进程列表,然后逐个检查进程是否正常,从 启动时间 |  可执行文件的创建日期 等特征对比。
      绕个弯子,换了个思路。
 
 
  查看全部
        昨天清理磁盘,整理旧文件的时候,轻信直接打开了wooyun zone里某位白帽子分享的工具,一时大意,中马了。
        PC机上有个360安全卫士,也没有一丁点的提示。。。(这木马过360的)
        随后我在修改subDomainsBrute的时候,抓dns query,惊讶地发现,出现了一个3322.org的域名,并且对应记录是不存在的,如下图:

likang.3322_.org__.png

 
        以前玩远控木马的同学可能知道,3322.0rg,花生壳之类的,常常被用来木马在内网反向上线的。所以,这个地方十分不正常,这让我意识到,有较大的几率已经中马了。
       用360安全卫士扫描,没有发现任何木马和危险项,之前也提到了,这个木马是过360的。
       现在的问题是,如何抓到这个木马,我绕了一个弯子,因为我想从dns query入手来查找(正确的做法是打开进程查看器,逐个进程检查):
1.我们已经知道,木马会主动去连likang.3322.org,但是wireshark是抓不到进程pid,它仅仅支持从某一网卡抓包,并不关心包来自于哪个进程
 
2.即使能抓到DNS查询的对应进程,其实也只能抓到windows下的DNS Client:svchost.exe进程,实际并无意义,我们依然不知道背后到底是哪个进程在请求likang.3322.org
        在抓dns query源进程受阻的情况下,我想到,既然木马想访问likang.3322.org,而这个域名又不存在。 那么我应该可以欺骗它去访问我自己的服务器,我修改hosts文件,添加:
11.22.33.44	likang.3322.org
        这个时候,我应该可以抓到访问likang.3322.org的其他请求了。
 
        我用smartsniff抓包,发现有到目标11.22.33.44的http request,木马会请求likang.3322.org/ip.txt看起来像是一个DDOS木马,下载攻击目标的。
 
        这个时候我还是没抓到进程,对应的likang.3322.org/ip.txt文件并不存在,http request一瞬间就结束了,tcp查看工具因为刷新频率的原因,还看不到对应的进程。
于是我在11.22.33.44上python起了一个http server,并且让get请求hang住,sleep 30s,最终抓到了对应的进程:
virus_found.png

       如图,QQ进程:

process_QQ.png

        总结一下,上面也说到,正确的做法,应该是查看进程列表,然后逐个检查进程是否正常,从 启动时间 |  可执行文件的创建日期 等特征对比。
      绕个弯子,换了个思路。
 
 
 

[转自freebuf] ThinkPHP5核心类Request远程代码漏洞分析

网络安全willeson 发表了文章 • 0 个评论 • 46 次浏览 • 2019-03-17 12:39 • 来自相关话题

一、漏洞介绍
2019年1月11日,ThinkPHP团队发布了一个补丁更新,修复了一处由于不安全的动态函数调用导致的远程代码执行漏洞。该漏洞危害程度非常高,默认条件下即可执行远程代码。启明星辰ADLab安全研究员对ThinkPHP的多个版本进行源码分析和验证后,确认具体受影响的版本为ThinkPHP5.0-5.0.23完整版。二、漏洞复现
本地环境采用ThinkPHP 5.0.22完整版+PHP5.5.38+Apache进行复现。安装环境后执行POC即可执行系统命令,如图:
三、漏洞分析
以官网下载的5.0.22完整版进行分析,首先定位到漏洞关键点:[code]thinkphp/library/think/Request.php:518[/code]
 
在method函数的第二个if分支中,引入了一个外部可控的数据$_POST[Config::get[‘var_method’]。而var_method的值为_method。

Request类的__construct函数如下:
 
由于$options参数可控,攻击者可以覆盖该类的filter属性、method属性以及get属性的值。而在Request类的param函数中:
 
当$this->mergeParam为空时,这里会调用$this->get(false)。跟踪$this->get函数:
 
该函数末尾调用了$this->input函数,并将$this->get传入,而$this->get的值是攻击者可控的。跟踪$this->input函数:
 
该函数调用了$this->getFileter取得过滤器。函数体如下:
 
$this->filter的值是攻击者通过调用构造函数覆盖控制的,将该值返回后将进入到input函数:
 
查看filterValue函数如下:
 
在call_user_func函数的调用中,$filter可控,$value可控。因此,可致代码执行。
漏洞触发流程:
从ThinkPHP5的入口点开始分析:[code]thinkphp/library/think/App.php:77[/code]
 
run函数第一行便实例化了一个Request类,并赋值给了$request。然后调用routeCheck($request,$config):
 
这里调用Route::check进行路由检测。函数如下:
 
注意红色字体部分。对应开头的第一个步骤,也就是调用method函数进行变量覆盖。这里需要覆盖的属性有$this->filter,$this->method,$this->get。因为$request->method()的返回值为$this->method,所以该值也需要被控制。这里返回值赋值给了$method,然后取出self::$rules[$method]的值给$rules。这里需要注意:THINKPHP5有自动类加载机制,会自动加载vendor目录下的一些文件。但是完整版跟核心版的vendor目录结构是不一样的。
完整版的目录结构如下:

而核心版的目录结构如下:

可以看到完整版比核心版多出了几个文件夹。特别需要注意的就是think-captcha/src这个文件夹里有一个helper.php文件:

这里调用\think\Route::get函数进行路由注册的操作。而这步操作的影响就是改变了上文提到的self::$rules的值。有了这个路由,才能进行RCE,否则不成功。这也就是为什么只影响完整版,而不影响核心版的原因。此时的self::$rules的值为:

那么,当攻击者控制返回的$method的值为get的时候,$rules的值就是这条路由的规则。然后回到上文取到$rules之后,根据传入的URL取得$item的值,使得$rules[$item]的值为captcha路由数组,就可以进一步调用到self::parseRule函数。函数体略长,这里取关键点:
 
此时传递进来的$route的值为\think\captcha\CaptchaController@index。因此进入的是标注红色的if分支中。在这个分支中,$result的’type’键对应的值为‘method’。然后将$result层层返回到run函数中,并赋值给了$dispatch。
 
然后将$dispatch带入到self::exec函数中:
 
进入到红色标注的分支,该分支调用Request类的param方法。因此,满足了利用链的第三步,造成命令执行。
启明星辰ADLab安全研究员对ThinkPHP5.0-5.0.23每个版本都进行了分析,发现ThinkPHP5.0.2-5.0.23可以使用同一个POC,而ThinkPHP5.0-5.0.1需要更改一下POC,原因在于Route.php的rule函数的一个实现小差异。
ThinkPHP5.0-5.0.1版本的thinkphp/library/think/Route.php:235,将$type转换成了大写:

在ThinkPHP5.0.2-5.0.23版本中,rule函数中却将$type转换成了小写:
四、补丁分析
在ThinkPHP5.0.24中,增加了对$this->method的判断,不允许再自由调用类函数。
五、结论强烈建议用户升级到ThinkPHP5.0.24版本,并且不要开启debug模式,以免遭受攻击 查看全部
一、漏洞介绍
2019年1月11日,ThinkPHP团队发布了一个补丁更新,修复了一处由于不安全的动态函数调用导致的远程代码执行漏洞。该漏洞危害程度非常高,默认条件下即可执行远程代码。启明星辰ADLab安全研究员对ThinkPHP的多个版本进行源码分析和验证后,确认具体受影响的版本为ThinkPHP5.0-5.0.23完整版。二、漏洞复现
本地环境采用ThinkPHP 5.0.22完整版+PHP5.5.38+Apache进行复现。安装环境后执行POC即可执行系统命令,如图:
三、漏洞分析
以官网下载的5.0.22完整版进行分析,首先定位到漏洞关键点:
[code]thinkphp/library/think/Request.php:518
[/code]
 
在method函数的第二个if分支中,引入了一个外部可控的数据$_POST[Config::get[‘var_method’]。而var_method的值为_method。

Request类的__construct函数如下:
 
由于$options参数可控,攻击者可以覆盖该类的filter属性、method属性以及get属性的值。而在Request类的param函数中:
 
当$this->mergeParam为空时,这里会调用$this->get(false)。跟踪$this->get函数:
 
该函数末尾调用了$this->input函数,并将$this->get传入,而$this->get的值是攻击者可控的。跟踪$this->input函数:
 
该函数调用了$this->getFileter取得过滤器。函数体如下:
 
$this->filter的值是攻击者通过调用构造函数覆盖控制的,将该值返回后将进入到input函数:
 
查看filterValue函数如下:
 
在call_user_func函数的调用中,$filter可控,$value可控。因此,可致代码执行。
漏洞触发流程:
从ThinkPHP5的入口点开始分析:
[code]thinkphp/library/think/App.php:77
[/code]
 
run函数第一行便实例化了一个Request类,并赋值给了$request。然后调用routeCheck($request,$config):
 
这里调用Route::check进行路由检测。函数如下:
 
注意红色字体部分。对应开头的第一个步骤,也就是调用method函数进行变量覆盖。这里需要覆盖的属性有$this->filter,$this->method,$this->get。因为$request->method()的返回值为$this->method,所以该值也需要被控制。这里返回值赋值给了$method,然后取出self::$rules[$method]的值给$rules。这里需要注意:THINKPHP5有自动类加载机制,会自动加载vendor目录下的一些文件。但是完整版跟核心版的vendor目录结构是不一样的。
完整版的目录结构如下:

而核心版的目录结构如下:

可以看到完整版比核心版多出了几个文件夹。特别需要注意的就是think-captcha/src这个文件夹里有一个helper.php文件:

这里调用\think\Route::get函数进行路由注册的操作。而这步操作的影响就是改变了上文提到的self::$rules的值。有了这个路由,才能进行RCE,否则不成功。这也就是为什么只影响完整版,而不影响核心版的原因。此时的self::$rules的值为:

那么,当攻击者控制返回的$method的值为get的时候,$rules的值就是这条路由的规则。然后回到上文取到$rules之后,根据传入的URL取得$item的值,使得$rules[$item]的值为captcha路由数组,就可以进一步调用到self::parseRule函数。函数体略长,这里取关键点:
 
此时传递进来的$route的值为\think\captcha\CaptchaController@index。因此进入的是标注红色的if分支中。在这个分支中,$result的’type’键对应的值为‘method’。然后将$result层层返回到run函数中,并赋值给了$dispatch。
 
然后将$dispatch带入到self::exec函数中:
 
进入到红色标注的分支,该分支调用Request类的param方法。因此,满足了利用链的第三步,造成命令执行。
启明星辰ADLab安全研究员对ThinkPHP5.0-5.0.23每个版本都进行了分析,发现ThinkPHP5.0.2-5.0.23可以使用同一个POC,而ThinkPHP5.0-5.0.1需要更改一下POC,原因在于Route.php的rule函数的一个实现小差异。
ThinkPHP5.0-5.0.1版本的thinkphp/library/think/Route.php:235,将$type转换成了大写:

在ThinkPHP5.0.2-5.0.23版本中,rule函数中却将$type转换成了小写:
四、补丁分析
在ThinkPHP5.0.24中,增加了对$this->method的判断,不允许再自由调用类函数。
五、结论强烈建议用户升级到ThinkPHP5.0.24版本,并且不要开启debug模式,以免遭受攻击

如何做好企业安全

sq_smile 发表了文章 • 0 个评论 • 64 次浏览 • 2019-03-11 11:02 • 来自相关话题

        本篇文章转自freebuf,由作者Mark2019所写。
        原文链接:https://www.freebuf.com/articles/es/195621.html
        信息安全是什么呢???关于这个问题,MBA智库百科有一个不错的解释:信息安全是指为数据处理系统而采取的技术的和管理的安全保护,保护计算机硬件、软件、数据不因偶然的或恶意的原因而遭到破坏、更改、显露。这里面既包含了层面的概念,其中计算机硬件可以看作是物理层面,软件可以看做是运行层面,再就是数据层面;又包含了属性的概念,其中破坏涉及的是可用性,更改涉及的是完整性,显露涉及的是机密性。
        那么如何做好企业安全呢???
        1、有明确的目标:
        实现业务的安全可视、可控和可管,并最大化保证业务的效率。
        2、找到阻碍视线的目标,并且不能容忍这些问题:
        合规问题、公司内外部的威胁和业务系统自身的脆弱性。
        3、准确诊断问题、找到问题的根源:
            合规问题:对公司业务相关的合规和法律了解不全面;
            技术层面:主机安全问题、docker安全问题、网络安全问题、应用安全问题、数据安全问题、物理安全问题;
            管理层面:员工安全意识问题,标准化的管理、制度、要求、流程、规范等的缺乏。
        4、规划可以解决问题的方案:
        总结如下技术与产品结合的安全导图,仅供参考:





        化繁为简,将公司安全建设划分三个阶段跟大家简单介绍
        第一阶段:安全建设初期
        原则:外部威胁防御优于内部威胁
        主要建设内容:

1、资产的识别,网络的梳理
2、漏洞的识别、修复
3、边界的4层和7层防护,基于业务进行边界隔离,精细化白名单方式开放端口和流量
4、链路的流量审计
5、核心网络的访问认证和权限管理
6、主机及终端防护,如设置安全基线、部署防病毒或相关安全插件等
7、app安全,如app安全加固等
8、业务系统日常存活、漏洞、端口等检测扫描
9、第三方渗透测试
10、安全意识宣贯
11、合规要求:如等级保护测评,风险评估检测,完成网安及相关监管单位的要求和检查

        第二阶段:安全建设中期
        原则:重点建设内部安全和数据安全,补充完善外部威胁防护
        主要建设内容包括:

1、上网行为管理及上网认证
2、邮箱安全
3、数据库及对应权限梳理、整合、回收
4、数据全生命周期的管理、数据治理,如数据标准化、分级分类、加密、脱敏等等(数据安全方面大而广,后续单独文章介绍)
5、DLP
6、蜜罐、威胁情报(验证公司安全体系健壮性)
7、日志管理平台
8、第三方渗透测试
9、安全意识宣贯
10、合规要求:如等级保护测评,风险评估检测,完成网安及相关监管单位的要求和检查
11、看公关需要,可获取公司级别认证,如iso 27001等

        第三阶段:安全运营期
        原则:精细化,可视化运营
        主要建设内容:

1、SRC
2、自研安全平台
3、各安全系统的精细化运行、联动和可视化
4、第三方渗透测试,众测(根据公司情况而做)
5、安全意识宣贯
6、合规要求:如等级保护测评,风险评估检测,完成网安及相关监管单位的要求和检查

        总结:
            一家公司安全建设顺序可根据业务需求进行灵活调整,漏洞、合规、数据安全和安全意识宣贯需要贯穿安全建设的始末;
            漏洞是安全的灵魂,漏洞的发现、识别和快速响应在安全工作中永远是优先级最高的;合规和数据安全是刚需,也是老板们最看重的点;
            安全做到最后永远是人的问题,安全意识宣贯是提升公司整体安全水平的最有效手段,也是安全文化建设的核心。
 
        5、做一切必要的事儿来践行这些方案,实现成果:
            贴合公司战略、业务发展现状,对安全工作开展排列优先级,以终为始,要事第一,统合综效,不断更新。
 
        总结:安全是一个特殊的存在,安全是个形容词,绝对安全很难,但是在企业安全的建设过程中,希望通过自己不断实践、总结和刷新,将安全化繁为简,守护好安全的寸土。
  查看全部
        本篇文章转自freebuf,由作者Mark2019所写。
        原文链接:https://www.freebuf.com/articles/es/195621.html
        信息安全是什么呢???关于这个问题,MBA智库百科有一个不错的解释:信息安全是指为数据处理系统而采取的技术的和管理的安全保护,保护计算机硬件、软件、数据不因偶然的或恶意的原因而遭到破坏、更改、显露。这里面既包含了层面的概念,其中计算机硬件可以看作是物理层面,软件可以看做是运行层面,再就是数据层面;又包含了属性的概念,其中破坏涉及的是可用性,更改涉及的是完整性,显露涉及的是机密性。
        那么如何做好企业安全呢???
        1、有明确的目标:
        实现业务的安全可视、可控和可管,并最大化保证业务的效率。
        2、找到阻碍视线的目标,并且不能容忍这些问题
        合规问题、公司内外部的威胁和业务系统自身的脆弱性。
        3、准确诊断问题、找到问题的根源
            合规问题:对公司业务相关的合规和法律了解不全面;
            技术层面:主机安全问题、docker安全问题、网络安全问题、应用安全问题、数据安全问题、物理安全问题;
            管理层面:员工安全意识问题,标准化的管理、制度、要求、流程、规范等的缺乏。
        4、规划可以解决问题的方案
        总结如下技术与产品结合的安全导图,仅供参考:

1548152126_5c46ed3e27f4d.png

        化繁为简,将公司安全建设划分三个阶段跟大家简单介绍
        第一阶段:安全建设初期
        原则:外部威胁防御优于内部威胁
        主要建设内容:


1、资产的识别,网络的梳理
2、漏洞的识别、修复
3、边界的4层和7层防护,基于业务进行边界隔离,精细化白名单方式开放端口和流量
4、链路的流量审计
5、核心网络的访问认证和权限管理
6、主机及终端防护,如设置安全基线、部署防病毒或相关安全插件等
7、app安全,如app安全加固等
8、业务系统日常存活、漏洞、端口等检测扫描
9、第三方渗透测试
10、安全意识宣贯
11、合规要求:如等级保护测评,风险评估检测,完成网安及相关监管单位的要求和检查


        第二阶段:安全建设中期
        原则:重点建设内部安全和数据安全,补充完善外部威胁防护
        主要建设内容包括:


1、上网行为管理及上网认证
2、邮箱安全
3、数据库及对应权限梳理、整合、回收
4、数据全生命周期的管理、数据治理,如数据标准化、分级分类、加密、脱敏等等(数据安全方面大而广,后续单独文章介绍)
5、DLP
6、蜜罐、威胁情报(验证公司安全体系健壮性)
7、日志管理平台
8、第三方渗透测试
9、安全意识宣贯
10、合规要求:如等级保护测评,风险评估检测,完成网安及相关监管单位的要求和检查
11、看公关需要,可获取公司级别认证,如iso 27001等


        第三阶段:安全运营期
        原则:精细化,可视化运营
        主要建设内容:


1、SRC
2、自研安全平台
3、各安全系统的精细化运行、联动和可视化
4、第三方渗透测试,众测(根据公司情况而做)
5、安全意识宣贯
6、合规要求:如等级保护测评,风险评估检测,完成网安及相关监管单位的要求和检查


        总结:
            一家公司安全建设顺序可根据业务需求进行灵活调整,漏洞、合规、数据安全和安全意识宣贯需要贯穿安全建设的始末;
            漏洞是安全的灵魂,漏洞的发现、识别和快速响应在安全工作中永远是优先级最高的;合规和数据安全是刚需,也是老板们最看重的点;
            安全做到最后永远是人的问题,安全意识宣贯是提升公司整体安全水平的最有效手段,也是安全文化建设的核心。
 
        5、做一切必要的事儿来践行这些方案,实现成果
            贴合公司战略、业务发展现状,对安全工作开展排列优先级,以终为始,要事第一,统合综效,不断更新。
 
        总结:安全是一个特殊的存在,安全是个形容词,绝对安全很难,但是在企业安全的建设过程中,希望通过自己不断实践、总结和刷新,将安全化繁为简,守护好安全的寸土。
 

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

系统安全ttgo2 发表了文章 • 0 个评论 • 265 次浏览 • 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 个评论 • 266 次浏览 • 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 个评论 • 342 次浏览 • 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 个评论 • 202 次浏览 • 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 个评论 • 305 次浏览 • 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 个评论 • 277 次浏览 • 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 个评论 • 316 次浏览 • 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