2018年1月18日星期四

树莓派2-B 安装 Ubuntu-Mate, 设置console

编辑TF卡中的文件

在config.txt文件中添加
  
dtoverlay=pi3-miniuart-bt

cmdline文件修改成
  
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
  
(原:dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh quiet splash plymouth.ignore-serial-consoles)



参考链接:
(一)树莓派上手 (无(/有)显示器 串口连接 )

2018年1月12日星期五

linux最小权限原则

研究linux进程权限控制相关的课题,(本课题属于主机加固范围)

0x01 前言
       最近接收到一个研究进程权限的课题,但是最后发现这块知识属于基础性的,想真正应用这项研究的成果还是很有限的,作为一个Linux用户来说,我们并不需要特别关心上面的机制。但是,当我们去编写一个Linux应用程序的时候,就要注意在程序中实现以上切换(有必要的前提下),以便让我们的程序符合"最小权限"的原则,不给系统留下可能的安全隐患。

最小权限带来的好处:
1. 更好的系统稳定性
2. 更好的系统安全性
3. 更容易部署

0x02 linux权限组成
基本权限
r 、w、x

可以通过chmod改变

 chmod   # 更改文件或者目录权限
  
  二进制设置
  644   -->   110 100 100  -->   rw- r-- r--
  755   -->   111 101 101  -->   rwx r-x r-x
   (八进制 - 二进制)  (二进制 - 实际含义)    
  
  字符设置
  +---------+-------+-----+
  | u user  |       |     |
  |---------|   +   |  r  |
  | g group |-------|-----|
  |---------|   -   |  w  |
                | o other |-------|-----|
  |---------|   =   |  x  |
  | a all   |       |     |
  +---------+-------+-----+

0x02 认识进程权限
进程去执行任务的时候需要得到相应的权限,实际上,每个进程维护如下6个ID:

RUID  真实身份:  real UID,          real GID
EUID  有效身份:  effective UID,  effective GID
SUID  存储身份:  saved UID,       saved GID

真实身份:我们登录使用的身份
有效身份:当该进程真正去操作文件时所检查的身份
存储身份:当我们将一个程序文件执行成为进程的时候,该程序文件的拥有者(owner)和拥有组(owner group)可以被,存储成为进程的存储身份

并不是所有的程序文件在执行的过程都设置存储身份的。需要这么做的程序文件会在其九位(bit)权限的执行位的x改为s。这时,这一位(bit)叫做set UID bit或者set GID bit。
$ls -l /usr/bin/uuidd
-rwsr-sr-x 1 libuuid libuuid 17976 Mar 30  2012 /usr/sbin/uuidd

当我以root(UID), root(GID)的真实身份运行这个程序的时候,由于拥有者(owner)有s位的设定,所以saved UID被设置成为libuuid,saved GID被设置成为libuuid。这样,uuidd的进程就可以在两个身份之间切换。

我们通常使用chmod来修改set-UID bit和set-GID bit:

$chmod 4700 file

我们看到,这里的chmod后面不再只是三位的数字。最前面一位用于处理set-UID bit/set-GID bit,它可以被设置成为4/2/1以及或者上面数字的和。4表示为set UID bit, 2表示为set GID bit,1表示为sticky bit (暂时不介绍)。必须要先有x位的基础上,才能设置s位。

开机后,linux内核加载的时候,首先开始执行进程init,而且是root权限运行的,然后通过
fork函数去加载其他用户进程。

而sudo这个程序,默认就设置了suid



0x03 限制进程所创建文件的权限属性
      umask 表示操作系统不允许设置的权限位


     037   -->   ---  -wx  rwx
     640   -->   rw-  r--  ---

     不允许创建的文件有执行的权限

0x04 web应用系统可写目录的权限控制

Nginx
  数据缓存目录 cache,这个目录的特点是需要777 权限,无须提供给用户访问

  附件上传目录 attachments,此目录的特点是需要开放访问权限,但所有文件不能由php 引擎解析(包括后缀名改为 gif 的木马文件)

  静态文件生成目录 public,这些目录一般都是php 生成的静态页的保存目录,显然与附件目录有类似之处,按附件目录的权限设置即可。可以预见的是,如果我们设置了较严格的权限,即使网站php 程序存在漏洞,木马脚本也只能被写入到权限为 777 的目录中去,如果配合上述严格的目录权限控制,木马也无法被触发运行,整个系统的安全性显然会有显著的提高。

Apache
        建立安全的apache的目录结构。ServerRoot  DocumentRoot  ScripAlias   Customlog  Errorlog   均放在单独的目录环境中。以上主要目录相互独立并且不存在父子逻辑关系。
        ServerRoot目录只能具有管理权限用户访问;DocumentRoot能够被管理Web站点内容的用户访问和使用Apache服务器的Apache用户和Apache用户组访问;只有admin组的用户可以访问日志目录。  各个目录设置独立的权限
        上传目录设置php文件解析限制
        配置Apache防止webshell上传


0x05 web服务进程的权限配置

以Nobody用户运行
         一般情况下,Apache是由Root 来安装和运行的。如果Apache Server进程具有Root用户特权,那么它将给系统的安全构成很大的威胁,应确保Apache Server进程以最可能低的权限用户来运行。通过修改httpd.conf文件中的下列选项,以Nobody用户运行Apache 达到相对安全的目的。
User nobody

参考链接:
      1. linux用户与“最小权限”原则
      2. linux文件管理
      3. linux进程基础
      4. 最小特权原则
      5. 正确设置php-fpm子进程用户,提高网站安全性防挂马
      6. linux下apache安全配置策略
      7. 探秘linux权限控制
      8. Linux 权限管理与访问控制详解(1)——基本概念和 DAC
      9. Linux 权限管理与访问控制详解(2)——MAC 和 SELinux
      10. apache运行机制剖析
      11. Linux權限控制的基本原理
      12. nginx、php-fpm、mysql用户权限解析
      13. 企业级Linux系统下的进程安全管理方法










2017年12月12日星期二

Centos 7.4 安装并且配置 TigerVNC

记得先切换到用户去敲 vncpasswd,要不然服务启动不了

会提示输入两个密码,一个是view-only密码,一个是可以完全控制的密码

我在view-only这个密码栽过一个坑,连接上了,鼠标就是怎么点也没有反应,只有
一个桌面,桌面的时间也动。后来才知道有一个view-only的模式。

最好把view-only跟control的密码设置不一样,如果一样默认会优先使用view-only模式。

参考链接:
1.How to Install and Configure VNC Server in CentOS 7
2.CentOs 7安装配置VNC Server---[亲测]

2017年12月6日星期三

RAT工具 (Remote Administrator Tools)

以前接触过灰鸽子,等各种远程控制木马工具,那是6、7年前的事情了,现在我再去找这类工具已经很难找到了,国际上,信息安全经过这么多年的沉淀,已经将这类木马工具归入到一个术语RAT下,RAT是一类同样用途工具的统称,无论是android、ios、windows或者linux,在它们之上运行的远程控制木马都是叫RAT。

cve0day是一个组织,专门收集各类主机系统安全的工具,提供了各种木马进行测试。

病毒检测方法:
1. 通过系统安装的杀毒软件
2. 通过网络在线检测工具,国内的是 virScan,国外的是 virusTotal

sudoers生产环境配置示例

sudoers基本配置语法
user1 ALL=(root)NOPASSWD:Cmnd_Alias

ALL 表示默认所有主机,这是集群环境下用的,按默认写就行了
NOPASSWD:表示不用输入密码就可以执行sudo
Cmnd_Alias : 命令集的别名

通配符和取消命令
例子:   papi ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk
用例子2来说明通配符*的用法, 以及命令前面加上!号表示取消该命令。

该例子的意思是: 用户papi在所有可能出现的主机上, 能够运行目录/usr/sbin和/sbin下所有的程序, 但fdisk除外.

黑名单模式,配置示例
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp ,/bin/umask
Cmnd_Alias USERMP = /sbin/useradd, /sbin/adduser, /sbin/usermod, /sbin/userdel
Cmnd_Alias GROUPMP = /sbin/groupadd, /sbin/groupdel, /sbin/groupmod, /sbin/gpasswd
Cmnd_Alias EDITOR = /bin/vi, /bin/vim, /usr/bin/vi, /usr/bin/vim
Cmnd_Alias PASSWDCHG = /usr/bin/passwd [A-z]*, /usr/bin/passwd ""

admin1,admin2 ALL=(root)NOPASSWD:ALL,!/usr/bin/su [A-z]*
user1,user2 ALL=(root) ALL,!/usr/bin/su *,!PASSWDCHG,!USERMP,!GROUPMP,!DELEGATING,!EDITOR

user1,user2 执行sudo的限制
1. 不能更改其他用户的密码,只能更改自己的, 不允许更改root的密码
2. 不能切换到其他用户,不能用su
3. 不能修改/etc/sudoers,提升自己的权限
4. 不能执行用户管理和组管理的命令
5. 不能修改其他用户的文件ACL
6. 不允许使用vi,vim修改系统文件,比如passwd,shadow

参考链接:
1. sudo 命令情景分析
2. 企业生产环境用户sudo权限集中管理项目方案案例

2017年10月19日星期四

cisco AIR-LAP1142N-A-K9 无线AP使用记录

1. 在新版的镜像中,CAPWAP被 LWAPP协议取代了
2. 胖ap 与 瘦ap 模式下都可以用POE供电
3. 如果电源有故障,会导致AP发热很严重,而且运行一天左右就会自动断电
4. 正常情况下的供电,AP也会发热,总的来说比国产AP发热要大
5. 瘦AP无法加入WLC,可能会与国家代码有关,比如CN 与 US的就必须要添加两个代码后
才能加入。有一篇排除链接在下面。

web界面默认账号密码: admin/Cisco
瘦AP console默认账号密码 : Cisco/Cisco
所有的enable默认密码: Cisco

胖ap镜像名称:
c1140-k9w7-mx.153-3.JAB
c1140-k9w7-tar.153-3.JAB.tar

瘦ap镜像名称
c1140-k9w8-mx.153-3.JA3

启动信息
ap#show boot
BOOT path-list:      flash:/c1140-k9w7-mx.153-3.JAB/c1140-k9w7-mx.153-3.JAB
Config file:         flash:/config.txt
Private Config file: flash:/private-config
Enable Break:        yes
Manual Boot:         no
Enable IOS Break:    no
HELPER path-list:    
NVRAM/Config file
      buffer size:   32768
      Mode Button:    on
Radio Core TFTP:     

设备标签信息

电源相关信息


参考链接:
       1. Cisco胖瘦AP的识别与转换
       2. 轻量级无线接入点不能加入到无线控制器的故障排除
       3. 思科胖AP升级到瘦AP
       4. IOS images for Cisco 1140 series wireless access points



2017年9月17日星期日

adb安装与使用,frida测试

0x01 adb安装与使用
https://developer.android.com/studio/index.html
下载android开发IDE
android-studio-bundle-162.4069837-windows.exe

1.下载用7z打开安装文件
2.$TEMP 目录下android-sdk.7z文件,把它提取出来
3.用7z打开android-sdk.7z,把platform-tools解压出来
4.将adb.exe复制到C:Windows\system32与SysWOW64
5.将AdbWinApi.dll与AdbWinUsbApi.dll复制到C:Windows\SysWOW64

然后打开cmd就可以运行adb了


用0.4.6的 adb.exe   AdbWinApi.dll
用2.3.3的 AdbWinUsbApi.dll

2018/8/1 更新
使用夜神模拟器进行测试。
安装完夜神模拟器后,使用夜神多开器,模拟安装5.1版。
把模拟器调为手机版,并且打开 开发者模式,然后重启
在安装目录下的,nox/bin/ , 有 adb 和 nox_adb。
常用的adb命令:
       查看设备是否连接到,使用 adb devices
       进入设备shell,使用 adb shell
       启动adb服务,使用adb start-server
       关闭adb服务,adb kill-server

frida-server安装与使用
注意:
1. frida-server的版本应该与客户端一致
2. 模拟器应该使用 Android-x86的版本
3. xz -d 就可以解压完成


frida-tools安装与使用
1. 在windows下的安装参考 Android HOOK 技术之Frida的初级使用
    或者直接在这个链接下载 https://pypi.org/project/frida/

2. pip进行frida以及工具的安装
 
    pip install frida
    pip install frida-tools
 
     更新frida,可以用 pip install --upgrade xxx 处理

  可以用 pip install frida==10.23.2,去安装指定的旧版本
  新版本的变化很多,很多就版本的函数都兼容不了

  调试代码的工具,可以使用IPyhon
  安装Ipython,pip install IPython

3. 使用 frida-ps -R 前进行端口转发
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043

0x02 frida hook
frida 可以对内存里面应用的函数进行直接的操作,来修改返回值



frida参考链接
Android HOOK 技术之Frida的初级使用
Android逆向之hook框架frida篇
利用FRIDA攻击Android应用程序(一)

Brida参考链接
联合Frida和BurpSuite的强大扩展--Brida
Brida:使用Frida进行移动应用渗透测试
Brida官方教程:讲解的很详细
安卓记得关闭selinux
夜神安卓模拟器adb命令详解
故障排除:unable to communicate with remote frida-server