CentOS7中升级gcc

先情提要

Centos 7 默认 gcc 版本为 4.8,根本满足不了实际需求,使用 yum 也只会更新到维护期 15 年版本

实施过程

1、安装 centos-release-scl

sudo yum install centos-release-scl-rh

2、安装 devtoolset,注意,如果想安装 7.版本的,就改成 devtoolset-7-gcc,以此类推,这里安装 Version 9

sudo yum install devtoolset-9*

3、激活对应的 devtoolset

scl enable devtoolset-9 bash

4、注册 devtoolset

进入/opt/rh 目录,source ./devtoolset-9/enable

记得注册成开机启动(/etc/rc.d/rc.local)

source /opt/rh/devtoolset-9/enable

5、替换旧版 gcc

1
2
3
4
5
6
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-9/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-9/root/bin/g++ /usr/bin/g++
gcc --version
g++ --version

6、二次确认安装是否就绪

查看当前 gcc

which gcc

/opt/rh/devtoolset-9/root/usr/bin/gcc

在 yum 查看 gcc 资讯

yum info devtoolset-9-gcc-c++

Installed Packages

Name : devtoolset-9-gcc-c++

Arch : x86_64

Version : 9.3.1

Release : 2.2.el7

Size : 31 M

Repo : installed

From repo : centos-sclo-rh

Summary : C++ support for GCC version 9

URL : http://gcc.gnu.org

License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD

Description : This package adds C++ support to the GNU Compiler Collection

        : version 9.  It includes support for most of the current C++ specification

        : and a lot of support for the upcoming C++ specification.

查看 gcc 版本

gcc -v

Thread model: posix

gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)

若无误,则升级成功。

倘若服务器被入侵了,要检查哪些地方?

其实可以一句话概括:

检查可疑网络链接,可疑进程,可疑文件,可疑脚本任务

不过对于小白,还是建议重装,重装可以解决 99%问题。

1.查看异常进程活动-查找是否有异常进程和端口占用

1.1 查找占用 cpu 最多的进程

运行 top 命令后,键入大写字母 P 按 cpu 排序

1.2 查找占用内存最多的进程

运行 top 命令后,键入大写字母 M

ps aux | sort -k4nr

1.3 查找进程对应的文件

ls -la /proc/$pid/exe

ls -la /proc/$pid

1.4 跟踪异常进程运行情况

strace -tt -T -e trace=all -p $pid

1.5 查看进程打开的文件

lsof -p $pid

1.6 查看进程端口情况

查看所有端口

netstat -anltp

查看指定进程的端口

netstat -anltp | grep $pid

netstat -apn|more

1.7 清除恶意进程

清除可疑进程的进程链: ps -elf | grep [pid] kill -9 [pid]

2.查看账号安全

2.1 查看是否有存在新增异常账号

查找特权用户

awk -F ":" '$3==0{print $1}' /etc/passwd

查找可以远程登录的账号信息

awk '/\$1|\$6/{print $1}' /etc/shadow

查找 sudo 权限账户

cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

2.2 查看是否有账号异常登录情况

查看当前登录用户和其行为

w

查看所有用户最后一次登录的时间

lastlog

查看错误登陆信息

lasstb

查看所有用户的登录注销信息及系统的启动、重启及关机事件

last

查看登录成功的日期、用户名及 ip

grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'

查看试图爆破主机的 ip

grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more

grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c

查看有哪些 ip 在爆破主机的 root 账号
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort

查看爆破使用的用户名字典
grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr

3.检查开机启动项

一般通过crontab -l命令即可检测到定时任务后门。不同的 linux 发行版可能查看开机启动项的文件不大相同,Debian 系 linux 系统一般是通过查看/etc/init.d目录有无最近修改和异常的开机启动项。而 Redhat 系的 linux 系统一般是查看/etc/rc.d/init.d或者/etc/systemd/system等目录。

依次排查:

1
2
3
4
5
6
7
8
9
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

其后键入

cat /etc/rc.local

cat /etc/init.d/rc.local

chkconfig --list

ls -alt /etc/init.d

查看 anacron 异步定时任务 cat/etc/anacrontab

枚举主机所有服务 service--status-all

4.查找异常文件

4.1 查看最近一段时间内被修改的系统文件

查找find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -T | xargs ls -la

4.2 按时间排序,确认最近是否有命令被替换,可以结合 rpm -Va 命令

ls -alt /usr/bin /usr/sbin /bin /usr/local/bin

rpm -Va>rpm.log

4.3 查看指定目录下文件时间的排序

ls -alt | head -n 10

4.4 使用 find 指令查找限定时间范围的文件

sudo find ./ -cmin -10 -name "*.php"

5.排查恶意 alias

检查 ~/.bashrc~/.bash_profile

6.排查恶意 ssh 公钥

/etc/.ssh/AuthorizedKeys

~/.ssh/AuthorizedKeys

7.系统文件被替换的情况下使用busybox

被替换的系统文件通常为 ld.so.preload

busybox ps -ef|grep watchdogs

busybox ps -ef|grep ksoftirqds

8.借助工具查杀病毒和 rootkit

8.1 查杀 rootkit

chkrootkit

(下载地址:http://www.chkrootkit.org)
rkhunter

(下载地址:http://rkhunter.sourceforge.net)

8.2 查杀病毒

clamav

(下载地址:http://www.clamav.net/download.html)

8.3 查杀 webshell

cloudwalker

(下载地址:http://github.com/chaitin/cloudwalker)

9. 添加命令审计

为历史的命令增加登录的 IP 地址、执行命令时间等信息

9.1 保存 1 万条命令:

sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

9.2 在/etc/profile 的文件尾部添加如下行数配置信息

1
2
3
4
5
6
7
8
9
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi

export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"

写在最后

RootKit Hunter 後端偵測軟體之架設與執行

emergency-response-checklist

关于移动端压测工具

一、APP 自动化测试工具

Appium

官网:http://appium.io/

Github 地址:https://github.com/appium/appium

介绍:

Appium 是一个开源的、跨平台的自动化测试工具。支持自动化 iOS,Android 和 Windows 桌面平台上的原生、移动 Web 和混合应用。 开发者可以使用 WebDriver 兼容的任何语言编写测试脚本,如 Java,OC,JS,PHP,Python,Ruby,C#,Clojure 和 Perl 语言。是做 UI 自动化测试必须要掌握的工具之一。

Airtest

官网:http://airtest.netease.com/
介绍:
Airtest 是网易游戏推出的一个 UI 自动化测试工具,适用于游戏和应用,支持的平台为 Windows,Android 和 iOS。Airtest 提供了跨平台的 API,包括安装应用、模拟输入、断言等。 基于图像识别技术定位 UI 元素,你无需嵌入任何代码即可进行自动化测试。 并且测试脚本运行后可以自动生成详细的 HTML 测试报告。

uiautomator2 (python)

Github 地址:https://github.com/openatx/uiautomator2
介绍:

uiautomator2 是一个可以使用 Python 对 Android 设备进行 UI 自动化的库。其底层基于 Google uiautomator,Google 提供的 uiautomator 库可以获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作。

二、APP 稳定性测试工具

Monkey

地址:https://developer.android.google.cn/studio/test/monkey

介绍:

Monkey 是一个在模拟器或设备上运行的程序,可生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。使用 Monkey 以随机且可重复的方式对正在开发的应用进行压力测试。

MonkeyRunner

地址:https://developer.android.google.cn/studio/test/monkeyrunner

介绍:

monkeyrunner 工具提供了一个 API,用于编写可从 Android 代码外部控制 Android 设备或模拟器的程序。使用 monkeyrunner,可以编写一个 Python 程序去安装 Android 应用或测试软件包,运行它,向其发送按键,截取其界面的屏幕截图,并将屏幕截图存储到工作站中。monkeyrunner 工具主要用于在功能/框架级测试应用和设备以及运行单元测试套件,但也可以自由地将其用于其他目的。

Maxim

Github 地址:https://github.com/zhangzhao4444/Maxim

介绍:

Maxim 是基于 monkey 做的二次开发,相较原生 monkey,相对智能。除了保留原生 monkey 已有的功能外,可深度遍历控件,可自定义黑白名单,可设定执行时长,增加防睡眠/防假死机制、防跳出/防误点状态栏及下拉状态栏等。

UICrawler

Github 地址:https://github.com/lgxqf/UICrawler

介绍:
基于 Appium 的 App UI 遍历 & Monkey 工具,支持 Android 和 Ios 移动 App,或 H5 或微信等应用。v2.3 版已支持 Appium 1.16.0, Java-client 7.3.0。

三、APP 性能测试工具

GT

官网:https://gt.qq.com/

介绍:

腾讯开源的 APP 的随身调测平台,支持 ios 和 android。直接运行在手机上,可对 APP 进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash 日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等。

Perfdog

官网:https://perfdog.qq.com/

介绍:

腾讯游戏部门开发的移动全平台 iOS/Android 性能测试、分析工具平台。手机无需 ROOT/越狱,手机硬件、游戏及应用 APP 也无需做任何修改,极简化即插即用。

PerfDog 支持 iOS 和 Android,支持移动平台所有应用程序(游戏、APP 应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android 模拟器、云真机等性能测试。PC 上 PerfDog 可多开,单 PC 可同时测试多台手机。目前免费体验,谁用谁香。

SoloPi

Github 地址:https://github.com/alipay/SoloPi

介绍:
SoloPi 是一个无线化、非侵入式的 Android 自动化工具。除了公测版的录制回放、性能测试、一机多控三项主要功能之外,SoloPi 还提供了数据 Mock,性能加压、网络模拟、智能 Monkey 等功能,能为测试开发人员节省宝贵时间。

四、APP 弱网测试&抓包工具

QNET

官网:https://wetest.qq.com/product/qnet

介绍:

QNET 是腾讯 wetest 服务平台推出了一款 App 弱网测试工具,该工具无需 ROOT 手机,无需连接数据线,以独立 app 的方式,为用户提供给快捷、可靠、功能完善的弱网络模拟服务(2G 网络、极差网络、连续丢包、正常网络、4G 网络、100%丢包等)。另外 QNET 还支持 TCP/UDP 网络协议抓包。

Fiddler

官网:https://www.telerik.com/fiddler

介绍:

Fiddler 是一款大家熟知且功能强大的抓包工具。通过设置代理,能够记录客户端与服务器端所有 http(s)通讯。可以针对捕获到的请求进行分析、设置断点、篡改请求及返回数据,还可以设置网络丢包和延时进行弱网络模拟等等。

Charles

官网https://www.charlesproxy.com/

介绍:

Charles 是 HTTP 代理/ HTTP 监视器/反向代理,可以查看其计算机与 Internet 之间的所有 HTTP 和 SSL / HTTPS 通信。可对截取的请求及响应进行分析、支持修改请求参数、支持弱网络模拟。

五、APP 兼容性测试工具

TestIn

官网https://www.testin.cn/

介绍

Testin 是国内较早涉足云测试领域的平台之一。终端种类及数量都比较全面。提供远程真机测试、标准/深度/遍历兼容测试、自动化测试、测试专家驻场等。支持 Android 与 iOS 系统。但目前仅少部分服务为免费,绝大多数服务为收费项目。

腾讯优测

官网:https://utest.21kunpeng.com/home

介绍:

腾讯旗下的云测试服务平台,拥有超过 3000 台真机实验室,覆盖市面 99%主流机型。拥有十年终端测试服务经验,提供兼容性测试、自动化测试、云真机、设备分享等多种服务方式。

百度 MTC

官网:http://mtc.baidu.com/

介绍:

百度 MTC 是百度开放平台旗下的移动云测试中心。提供超过 1500 款热门机型。提供的测试服务种类有兼容性测试、性能测试、功能测试。并且提供了脚本录制工具,类似 Testin。

百度 MTC 的服务目前主要为收费服务。

阿里 MQC

官网:https://www.aliyun.com/product/mqc

介绍:

阿里 MQC 是阿里巴巴旗下的移动测试平台。提供大量热门机型,支持 Android 及 iOS 系统。提供兼容性测试、功能测试、性能测试以及稳定性测试。

六、APP 安全测试工具

OWASP ZAP

官网:https://owasp.org/www-project-zap/

介绍:

OWASP ZAP 是目前最流行的免费 APP 移动安全测试工具,由全球数百个志愿者管理维护。该工具支持多种脚本语言类型,易安装,可以在 APP 的开发和测试阶段自动查找安全漏洞。

Drozer

Github 地址:https://github.com/FSecureLABS/drozer

介绍:

Drozer 是一个由 MWR 安全团队维护开源的软件,该软件是针对 Android 平台的安全审计和攻击框架。安全人员可通过 drozer 自身提供的一些 module 完成一些基础的安全测试功能,同时也可以根据需求实现自己的 module,甚至可以在利用 drozer 提供的框架实现一些自动化审计功能。

MobSF

Github 地址:https://github.com/MobSF/Mobile-Security-Framework-MobSF
介绍:

MobSF 是一款自动化移动 App 安全测试工具,适用于 iOS 和 Android,可熟练执行动态、静态分析和 Web API 测试。可用于对 Android 和 iOS 应用进行快速安全分析。

QARK

Github 地址:https://github.com/linkedin/qark

介绍:

QARK 是一个静态代码分析工具,旨在识别基于 Java 的 Android 应用程序的潜在安全漏洞和关注点。QARK 还试图提供动态生成的 ADB(Android 调试桥)命令,以帮助验证其检测到的潜在漏洞。它甚至可以动态地创建一个定制的测试应用程序,以即用 APK 的形式,确定潜在问题。

WRK

Github 地址:https://github.com/wg/wrk/tree/master

介绍:

wrk 是一个测试并发的工具,类似 adb(ab -c 100 -n 100 http://192.168.2.56:19015/index.html)原理(wrk -t12 -c400 -d30s http://192.168.2.56:19015/index.html)