當前位置:首頁 » 編程軟體 » 臟牛漏洞編譯

臟牛漏洞編譯

發布時間: 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-13 18:29:59 瀏覽:406
切換ftp 發布:2025-07-13 18:29:07 瀏覽:738
銳龍哪個配置最高畫質 發布:2025-07-13 18:22:34 瀏覽:196
壓縮機工作原理圖 發布:2025-07-13 18:10:15 瀏覽:39
黑暗追求者安卓怎麼聯機 發布:2025-07-13 18:10:07 瀏覽:617
北大保安自學編程 發布:2025-07-13 18:09:58 瀏覽:858
java遞歸排列 發布:2025-07-13 18:02:43 瀏覽:473
輕量雲伺服器如何換成d盤 發布:2025-07-13 17:58:45 瀏覽:931
重置騰訊雲伺服器時間 發布:2025-07-13 17:54:55 瀏覽:326
aes256java加密 發布:2025-07-13 17:54:46 瀏覽:710