Translated ['forensics/basic-forensic-methodology/linux-forensics.md'] t

This commit is contained in:
Translator 2024-04-01 21:16:22 +00:00
parent 8da8f0c065
commit 1e472b7a8c

View file

@ -1,23 +1,23 @@
# 리눅스 포렌식 # 리눅스 포렌식
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)를 사용하여 세계에서 **가장** **고급** 커뮤니티 도구를 활용한 **워크플로우를 쉽게 구축**하고 **자동화**하세요.\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구를 활용한 **워크플로우를 쉽게 구축**하고 **자동화**하세요.\
오늘 바로 액세스하세요: 오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 **제로**부터 **히어로**까지 AWS 해킹을 배우세요!</summary> <summary><strong>제로부터 히어로가 되기까지 AWS 해킹 배우기</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법: HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요! * **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요 * [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [디스코드 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)를 **팔로우**하세요. * **💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나**트위터** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks****HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요. * **HackTricks****HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
</details> </details>
@ -26,12 +26,12 @@ HackTricks를 지원하는 다른 방법:
### 기본 정보 ### 기본 정보
먼저, **USB**에 **잘 알려진 이진 파일과 라이브러리**를 가지고 있으면 좋습니다(우분투를 가져와 _/bin_, _/sbin_, _/lib,__/lib64_ 폴더를 복사할 수 있습니다). 그런 다음 USB를 마운트하고, 환경 변수를 수정하여 해당 이진 파일을 사용할 수 있도록 합니다: 먼저, **USB**에 **잘 알려진 이진 파일 및 라이브러리**가 있는 것이 좋습니다(우분투를 가져와 _/bin_, _/sbin_, _/lib,__/lib64_ 폴더를 복사할 수 있습니다). 그런 다음 USB를 마운트하고, 환경 변수를 수정하여 해당 이진 파일을 사용하세요:
```bash ```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64 export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
``` ```
한 번 시스템을 좋고 알려진 이진 파일을 사용하도록 구성하면 **기본 정보를 추출**할 수 있습니다: 한 번 시스템이 좋고 알려진 이진 파일을 사용하도록 구성되면 **기본 정보를 추출**할 수 있습니다:
```bash ```bash
date #Date and time (Clock may be skewed, Might be at a different timezone) date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info uname -a #OS info
@ -51,7 +51,7 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
``` ```
#### 수상한 정보 #### 수상한 정보
기본 정보를 얻는 동안 다음과 같은 이상한 사항을 확인해야 합니다: 기본 정보를 얻을 때 다음과 같은 이상한 점을 확인해야 합니다:
- **루트 프로세스**는 일반적으로 낮은 PID로 실행되므로, 큰 PID를 가진 루트 프로세스를 발견하면 의심해야 합니다. - **루트 프로세스**는 일반적으로 낮은 PID로 실행되므로, 큰 PID를 가진 루트 프로세스를 발견하면 의심해야 합니다.
- `/etc/passwd` 내부에 쉘 없이 등록된 사용자들의 **등록된 로그인**을 확인합니다. - `/etc/passwd` 내부에 쉘 없이 등록된 사용자들의 **등록된 로그인**을 확인합니다.
@ -59,15 +59,15 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
### 메모리 덤프 ### 메모리 덤프
실행 중인 시스템의 메모리를 얻기 위해 [**LiME**](https://github.com/504ensicsLabs/LiME)를 사용하는 것이 좋습니다.\ 실행 중인 시스템의 메모리를 얻기 위해서는 [**LiME**](https://github.com/504ensicsLabs/LiME)를 사용하는 것이 좋습니다.\
**컴파일**하려면 피해자 머신이 사용하는 **동일한 커널**을 사용해야 합니다. **컴파일**하려면 피해자 머신이 사용 중인 **동일한 커널**을 사용해야 합니다.
{% hint style="info" %} {% hint style="info" %}
피해자 머신에 **LiME나 다른 것을 설치할 수 없다는 것**을 기억하세요. 그렇게 하면 여러 변경 사항이 발생합니다. 피해자 머신에 **LiME나 다른 것을 설치할 수 없다는 것**을 기억하세요. 그렇게 하면 여러 가지 변경 사항이 발생합니다.
{% endhint %} {% endhint %}
따라서 Ubuntu의 동일한 버전이 있다면 `apt-get install lime-forensics-dkms`를 사용할 수 있습니다.\ 따라서 Ubuntu의 동일한 버전이 있다면 `apt-get install lime-forensics-dkms`를 사용할 수 있습니다.\
그렇지 않은 경우 [**LiME**](https://github.com/504ensicsLabs/LiME)을 github에서 다운로드하고 올바른 커널 헤더로 컴파일해야 합니다. 피해자 머신의 **정확한 커널 헤더**를 얻으려면 `/lib/modules/<커널 버전>` 디렉토리를 복사하여 자신의 머신에 붙여넣은 다음, 해당 헤더를 사용하여 LiME을 **컴파일**할 수 있습니다: 그렇지 않은 경우 [**LiME**](https://github.com/504ensicsLabs/LiME)을 github에서 다운로드하고 올바른 커널 헤더로 컴파일해야 합니다. 피해자 머신의 정확한 커널 헤더를 **얻으려면** `/lib/modules/<커널 버전>` 디렉토리를 단순히 **복사**하여 자신의 머신에 컴파일하면 됩니다:
```bash ```bash
make -C /lib/modules/<kernel version>/build M=$PWD make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime" sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
@ -75,17 +75,17 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
LiME는 3가지 **형식**을 지원합니다: LiME는 3가지 **형식**을 지원합니다:
* Raw (모든 세그먼트가 연결된 상태) * Raw (모든 세그먼트가 연결된 상태)
* Padded (Raw와 동일하지만 오른쪽 비트에는 0이 들어 있음) * Padded (Raw와 동일하지만 오른쪽 비트에는 제로가 들어 있음)
* Lime (메타데이터가 포함된 권장 형식) * Lime (메타데이터가 포함된 권장 형식)
LiME를 사용하여 덤프를 시스템에 저장하는 대신 **네트워크를 통해 전송**할 수도 있습니다. 예를 들어, `path=tcp:4444`와 같이 사용할 수 있습니다. LiME를 사용하여 덤프를 시스템에 저장하는 대신 **네트워크를 통해 전송**할 수도 있습니다. 예를 들어 다음과 같이 사용할 수 있습니다: `path=tcp:4444`
### 디스크 이미징 ### 디스크 이미징
#### 시스템 종료 #### 시스템 종료
먼저, **시스템을 종료**해야 합니다. 이것은 언제나 선택사항은 아닙니다. 때로는 회사가 종료할 여유가 없는 프로덕션 서버일 수 있습니다.\ 먼저, **시스템을 종료**해야 합니다. 이것은 항상 옵션이 아닐 수 있습니다. 때로는 회사가 종료할 여유가 없는 프로덕션 서버일 수 있습니다.\
시스템을 종료하는 **2가지 방법**이 있습니다. **정상 종료**와 **"전원 플러그를 뽑는" 종료**입니다. 첫 번째 방법은 **프로세스가 보통대로 종료**되고 **파일 시스템이 동기화**되지만, **악성 코드**가 **증거를 파괴**할 수도 있습니다. "전원 플러그를 뽑는" 방법은 **일부 정보 손실**을 야기할 수 있지만 (메모리 이미지를 이미 촬영했기 때문에 정보가 많이 손실되지는 않을 것입니다) **악성 코드가 이에 대해 아무런 조치를 취할 기회가 없습니다**. 따라서 **악성 코드**가 있을 것으로 **의심**된다면 시스템에서 **`sync`** **명령어**를 실행하고 전원을 차단하세요. 시스템을 종료하는 **2가지 방법**이 있습니다. **정상 종료**와 **"전원 플러그를 뽑는" 종료**입니다. 첫 번째 방법은 **프로세스가 보통대로 종료**되고 **파일 시스템이 동기화**되지만, **악성 코드**가 **증거를 파괴**할 수도 있습니다. "전원 플러그를 뽑는" 방법은 **일부 정보 손실**을 야기할 수 있습니다 (메모리 이미지를 이미 촬영했기 때문에 정보가 많이 손실되지는 않을 것입니다) 그리고 **악성 코드가 이에 대해 아무것도 할 수 없을 것**입니다. 따라서 **악성 코드**가 있을 것으로 **의심**된다면 시스템에서 **`sync`** **명령어**를 실행하고 전원을 차단하세요.
#### 디스크 이미지 촬영 #### 디스크 이미지 촬영
@ -156,7 +156,7 @@ ThisisTheMasterSecret
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구를 활용한 **워크플로우를 쉽게 구축** 및 **자동화**하세요.\ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구를 활용한 **워크플로우를 쉽게 구축** 및 **자동화**하세요.\
오늘 바로 액세스하세요: 오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -183,7 +183,7 @@ Linux는 시스템 구성 요소의 무결성을 보장하는 도구를 제공
Debian 및 RedHat 시스템에서 효과적으로 설치된 프로그램을 검색하려면 시스템 로그 및 데이터베이스를 활용하고 일반 디렉토리에서 수동 확인을 고려하세요. Debian 및 RedHat 시스템에서 효과적으로 설치된 프로그램을 검색하려면 시스템 로그 및 데이터베이스를 활용하고 일반 디렉토리에서 수동 확인을 고려하세요.
* Debian의 경우 _**`/var/lib/dpkg/status`**_ 및 _**`/var/log/dpkg.log`**_를 검사하여 패키지 설치에 대한 세부 정보를 가져오고, `grep`를 사용하여 특정 정보를 필터링합니다. * Debian의 경우 _**`/var/lib/dpkg/status`**_ 및 _**`/var/log/dpkg.log`**_를 검사하여 패키지 설치에 대한 세부 정보를 가져오고, `grep`를 사용하여 특정 정보를 필터링합니다.
* RedHat 사용자는 RPM 데이터베이스를 `rpm -qa --root=/mntpath/var/lib/rpm`로 쿼리하여 설치된 패키지를 나열할 수 있습니다. * RedHat 사용자는 RPM 데이터베이스를 쿼리하여 `rpm -qa --root=/mntpath/var/lib/rpm`를 사용하여 설치된 패키지를 나열할 수 있습니다.
이 패키지 관리자 외에 수동으로 또는 이외에 설치된 소프트웨어를 찾으려면 _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, _**`/sbin`**_과 같은 디렉토리를 탐색하세요. 디렉토리 목록을 시스템별 명령어와 결합하여 알려진 패키지와 관련이 없는 실행 파일을 식별하여 모든 설치된 프로그램을 검색하세요. 이 패키지 관리자 외에 수동으로 또는 이외에 설치된 소프트웨어를 찾으려면 _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, _**`/sbin`**_과 같은 디렉토리를 탐색하세요. 디렉토리 목록을 시스템별 명령어와 결합하여 알려진 패키지와 관련이 없는 실행 파일을 식별하여 모든 설치된 프로그램을 검색하세요.
```bash ```bash
@ -204,14 +204,14 @@ find / -type f -executable | grep <something>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구로 구동되는 **워크플로우를 쉽게 구축** **자동화**하세요.\ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구로 구동되는 **워크플로우를 쉽게 구축**하고 **자동화**하세요.\
오늘 바로 액세스하세요: 오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## 삭제된 실행 중인 이진 파일 복구 ## 삭제된 실행 중인 이진 파일 복구
/tmp/exec에서 실행되고 삭제된 프로세스를 상상해보세요. 추출할 수 있습니다. /tmp/exec에서 실행되고 삭제된 프로세스를 상상해보세요. 추출하는 것이 가능합니다.
```bash ```bash
cd /proc/3746/ #PID with the exec file deleted cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000 head -1 maps #Get address of the file. It was 08048000-08049000
@ -240,51 +240,51 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
- **/etc/inittab**: rc.sysinit과 같은 초기화 스크립트를 호출하여 시작 스크립트로 이어짐. - **/etc/inittab**: rc.sysinit과 같은 초기화 스크립트를 호출하여 시작 스크립트로 이어짐.
- **/etc/rc.d/** 및 **/etc/rc.boot/**: 서비스 시작을 위한 스크립트를 포함하며, 후자는 이전 Linux 버전에서 발견됨. - **/etc/rc.d/** 및 **/etc/rc.boot/**: 서비스 시작을 위한 스크립트를 포함하며, 후자는 이전 Linux 버전에서 발견됨.
- **/etc/init.d/**: Debian과 같은 특정 Linux 버전에서 시작 스크립트를 저장하는 데 사용됨. - **/etc/init.d/**: Debian과 같은 특정 Linux 버전에서 시작 스크립트를 저장하는 데 사용됨.
- 서비스는 Linux 변형에 따라 **/etc/inetd.conf** 또는 **/etc/xinetd/**를 통해 활성화될 수 있음. - 서비스는 또한 Linux 변형에 따라 **/etc/inetd.conf** 또는 **/etc/xinetd/**를 통해 활성화될 수 있음.
- **/etc/systemd/system**: 시스템 및 서비스 관리자 스크립트를 위한 디렉토리. - **/etc/systemd/system**: 시스템 및 서비스 관리자 스크립트를 위한 디렉토리.
- **/etc/systemd/system/multi-user.target.wants/**: 다중 사용자 런레벨에서 시작해야 하는 서비스에 대한 링크를 포함. - **/etc/systemd/system/multi-user.target.wants/**: 다중 사용자 런레벨에서 시작해야 하는 서비스에 대한 링크를 포함.
- **/usr/local/etc/rc.d/**: 사용자 지정 또는 제3자 서비스를 위한 디렉토리. - **/usr/local/etc/rc.d/**: 사용자 지정 또는 제3자 서비스를 위한 디렉토리.
- **\~/.config/autostart/**: 사용자별 자동 시작 응용 프로그램을 위한 곳으로, 사용자를 대상으로 한 악성 소프트웨어의 은닉 장소가 될 수 있음. - **\~/.config/autostart/**: 사용자별 자동 시작 응용 프로그램을 위한 곳으로, 사용자를 대상으로 한 악성 소프트웨어의 은신처가 될 수 있음.
- **/lib/systemd/system/**: 설치된 패키지에 의해 제공되는 시스템 전역 기본 유닛 파일. - **/lib/systemd/system/**: 설치된 패키지에 의해 제공되는 시스템 전역 기본 유닛 파일.
### 커널 모듈 ### 커널 모듈
악성 소프트웨어로서 종종 사용되는 Linux 커널 모듈은 시스템 부팅 시 로드됩니다. 이러한 모듈에 대한 중요한 디렉토리 및 파일은 다음과 같습니다: 악성 소프트웨어에 의해 루트킷 구성 요소로 자주 사용되는 Linux 커널 모듈은 시스템 부팅 시 로드됩니다. 이러한 모듈에 대한 중요한 디렉토리 및 파일은 다음과 같습니다:
- **/lib/modules/$(uname -r)**: 실행 중인 커널 버전을 위한 모듈을 보관. - **/lib/modules/$(uname -r)**: 실행 중인 커널 버전 모듈을 보관.
- **/etc/modprobe.d**: 모듈 로딩을 제어하는 구성 파일을 포함. - **/etc/modprobe.d**: 모듈 로딩을 제어하는 구성 파일을 포함.
- **/etc/modprobe** 및 **/etc/modprobe.conf**: 전역 모듈 설정을 위한 파일. - **/etc/modprobe** 및 **/etc/modprobe.conf**: 전역 모듈 설정을 위한 파일.
### 기타 자동 시작 위치 ### 기타 자동 시작 위치
Linux는 사용자 로그인 시 자동으로 프로그램을 실행하기 위해 다양한 파일을 사용하며, 여기에는 악성 소프트웨어가 숨을 수 있는 잠재적인 장소가 있습니다: Linux는 사용자 로그인 시 자동으로 프로그램을 실행하기 위해 다양한 파일을 사용하며, 여기에는 악성 소프트웨어가 숨을 수 있는 장소가 있을 수 있습니다:
- **/etc/profile.d/**\*, **/etc/profile**, 및 **/etc/bash.bashrc**: 모든 사용자 로그인에 대해 실행됨. - **/etc/profile.d/**\*, **/etc/profile**, 및 **/etc/bash.bashrc**: 모든 사용자 로그인에 대해 실행됨.
- **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, 및 **\~/.config/autostart**: 해당 사용자 로그인 시 실행되는 사용자별 파일. - **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, 및 **\~/.config/autostart**: 해당 사용자 로그인 시 실행되는 사용자별 파일.
- **/etc/rc.local**: 모든 시스템 서비스가 시작된 후 실행되며, 다중 사용자 환경으로의 전환을 표시. - **/etc/rc.local**: 모든 시스템 서비스가 시작된 후 실행되며, 다중 사용자 환경으로의 전환을 표시.
## 로그 검사 ## 로그 검사
Linux 시스템은 다양한 로그 파일을 통해 사용자 활동 및 시스템 이벤트를 추적합니다. 이러한 로그는 무단 접근, 악성 소프트웨어 감염 및 기타 보안 사건을 식별하는 데 중요합니다. 주요 로그 파일은 다음과 같습니다: Linux 시스템은 다양한 로그 파일을 통해 사용자 활동 및 시스템 이벤트를 추적합니다. 이러한 로그는 무단 접근, 악성 소프트웨어 감염 및 기타 보안 사건을 식별하는 데 중요합니다. 주요 로그 파일은 다음과 같습니다:
- **/var/log/syslog** (Debian) 또는 **/var/log/messages** (RedHat): 시스템 전체 메시지 활동을 캡처. - **/var/log/syslog** (Debian) 또는 **/var/log/messages** (RedHat): 시스템 전체 메시지 활동을 캡처.
- **/var/log/auth.log** (Debian) 또는 **/var/log/secure** (RedHat): 인증 시도, 성공 및 실패한 로그인을 기록. - **/var/log/auth.log** (Debian) 또는 **/var/log/secure** (RedHat): 인증 시도, 성공 및 실패한 로그인을 기록.
- `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log`를 사용하여 관련 인증 이벤트를 필터링. - `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log`를 사용하여 관련 인증 이벤트를 필터링.
- **/var/log/boot.log**: 시스템 시작 메시지를 포함. - **/var/log/boot.log**: 시스템 시작 메시지를 포함.
- **/var/log/maillog** 또는 **/var/log/mail.log**: 이메일 서버 활동을 기록하며, 이메일 관련 서비스를 추적하는 데 유용. - **/var/log/maillog** 또는 **/var/log/mail.log**: 이메일 서버 활동을 기록하며, 이메일 관련 서비스를 추적하는 데 유용.
- **/var/log/kern.log**: 오류 및 경고를 포함한 커널 메시지를 저장. - **/var/log/kern.log**: 오류 및 경고를 포함한 커널 메시지를 저장.
- **/var/log/dmesg**: 장치 드라이버 메시지를 보유. - **/var/log/dmesg**: 장치 드라이버 메시지를 보유.
- **/var/log/faillog**: 보안 침해 조사에 도움이 되는 로그인 실패 시도를 기록. - **/var/log/faillog**: 실패한 로그인 시도를 기록하여 보안 침해 조사에 도움.
- **/var/log/cron**: cron 작업 실행을 로그. - **/var/log/cron**: cron 작업 실행을 로그.
- **/var/log/daemon.log**: 백그라운드 서비스 활동을 추적. - **/var/log/daemon.log**: 백그라운드 서비스 활동을 추적.
- **/var/log/btmp**: 로그인 실패 시도 문서화. - **/var/log/btmp**: 실패한 로그인 시도 문서화.
- **/var/log/httpd/**: Apache HTTPD 오류 및 액세스 로그를 포함. - **/var/log/httpd/**: Apache HTTPD 오류 및 액세스 로그를 포함.
- **/var/log/mysqld.log** 또는 **/var/log/mysql.log**: MySQL 데이터베이스 활동을 로그. - **/var/log/mysqld.log** 또는 **/var/log/mysql.log**: MySQL 데이터베이스 활동을 기록.
- **/var/log/xferlog**: FTP 파일 전송을 기록. - **/var/log/xferlog**: FTP 파일 전송을 기록.
- **/var/log/**: 여기서 예기치 않은 로그를 항상 확인. - **/var/log/**: 여기서 예기치 않은 로그를 항상 확인.
{% hint style="info" %} {% hint style="info" %}
Linux 시스템 로그 및 감사 서브시스템은 침입 또는 악성 소프트웨어 사건에서 비활성화되거나 삭제될 수 있습니다. Linux 시스템의 로그는 일반적으로 악의적 활동에 대한 가장 유용한 정보 중 일부를 포함하므로 침입자는 이를 정기적으로 삭제합니다. 따라서 사용 가능한 로그 파일을 검사할 때 삭제 또는 조작의 표시일 수 있는 간격이나 순서가 잘못된 항목을 찾는 것이 중요합니다. Linux 시스템 로그 및 감사 서브시스템은 침입 또는 악성 소프트웨어 사건에서 비활성화되거나 삭제될 수 있습니다. Linux 시스템의 로그는 일반적으로 악의적 활동에 대한 가장 유용한 정보 중 일부를 포함하므로 침입자는 이를 정기적으로 삭제합니다. 따라서 사용 가능한 로그 파일을 검사할 때 삭제 또는 조작의 흔적 또는 순서가 잘못된 항목을 찾는 것이 중요합니다.
{% endhint %} {% endhint %}
**Linux는 각 사용자의 명령 히스토리를 유지합니다**, 다음 위치에 저장됩니다: **Linux는 각 사용자의 명령 히스토리를 유지합니다**, 다음 위치에 저장됩니다:
@ -306,21 +306,21 @@ Linux 시스템 로그 및 감사 서브시스템은 침입 또는 악성 소프
일부 애플리케이션은 자체 로그를 생성합니다: 일부 애플리케이션은 자체 로그를 생성합니다:
- **SSH**: _\~/.ssh/authorized\_keys_ 및 _\~/.ssh/known\_hosts_를 검사하여 무단 원격 연결을 확인하십시오. - **SSH**: 무단 원격 연결을 나타내는 _\~/.ssh/authorized\_keys_ 및 _\~/.ssh/known\_hosts_를 검하십시오.
- **Gnome 데스크톱**: Gnome 애플리케이션을 통해 최근 액세스된 파일을 확인하려면 _\~/.recently-used.xbel_을 살펴보십시오. - **Gnome 데스크톱**: Gnome 애플리케이션을 통해 최근 액세스된 파일을 나타내는 _\~/.recently-used.xbel_을 확인하십시오.
- **Firefox/Chrome**: 의심스러운 활동을 확인하려면 _\~/.mozilla/firefox_ 또는 _\~/.config/google-chrome_에서 브라우저 히스토리 및 다운로드를 확인하십시오. - **Firefox/Chrome**: 의심스러운 활동을 위해 _\~/.mozilla/firefox_ 또는 _\~/.config/google-chrome_에서 브라우저 히스토리 및 다운로드를 확인하십시오.
- **VIM**: _\~/.viminfo_를 검토하여 액세스된 파일 경로 및 검색 기록과 같은 사용 세부 정보를 확인하십시오. - **VIM**: 액세스된 파일 경로 및 검색 기록과 같은 사용 정보를 나타내는 _\~/.viminfo_를 검토하십시오.
- **Open Office**: 침해된 파일을 나타낼 수 있는 최근 문서 액세스를 확인하십시오. - **Open Office**: 침해된 파일을 나타낼 수 있는 최근 문서 액세스를 확인하십시오.
- **FTP/SFTP**: 무단 파일 전송을 위한 _\~/.ftp\_history_ 또는 _\~/.sftp\_history_ 로그를 검토하십시오. - **FTP/SFTP**: 무단 파일 전송을 나타내는 _\~/.ftp\_history_ 또는 _\~/.sftp\_history_ 로그를 검토하십시오.
- **MySQL**: 무단 데이터베이스 활동을 나타낼 수 있는 _\~/.mysql\_history_를 조사하십시오. - **MySQL**: 무단 데이터베이스 활동을 나타낼 수 있는 _\~/.mysql\_history_를 조사하십시오.
- **Less**: _\~/.lesshst_를 분석하여 본 파일 및 실행된 명령을 포함한 사용 이력을 확인하십시오. - **Less**: 보고된 파일 및 실행된 명령을 포함하는 _\~/.lesshst_를 분석하십시오.
- **Git**: 저장소 변경 사항을 위해 _\~/.gitconfig_ 및 프로젝트 _.git/logs_를 검토하십시오. - **Git**: 저장소 변경 사항을 나타내는 _\~/.gitconfig_ 및 프로젝트 _.git/logs_를 검토하십시오.
### USB 로그 ### USB 로그
[**usbrip**](https://github.com/snovvcrash/usbrip)는 순수 Python 3로 작성된 작은 소프트웨어로, USB 이벤트 기록 테이블을 구성하기 위해 Linux 로그 파일(`/var/log/syslog*` 또는 `/var/log/messages*`에 따라 다름)을 구문 분석합니다. [**usbrip**](https://github.com/snovvcrash/usbrip)는 USB 이벤트 기록 테이블을 작성하기 위해 Linux 로그 파일 (`/var/log/syslog*` 또는 `/var/log/messages*`에 따라 다름)을 구문 분석하는 순수 Python 3으로 작성된 소프트웨어입니다.
**사용된 모든 USB를 알아내는 것**은 중요하며, USB 사용 목록을 가지고 있으면 "위반 이벤트"를 찾는 데 더 유용할 수 있습니다 (해당 목록에 없는 USB 사용). **사용된 모든 USB를 알아내는 것**은 중요하며, "위반 이벤트"를 찾기 위해 허가된 USB 목록이 있는 경우 더 유용할 수 있습니다.
### 설치 ### 설치
```bash ```bash
@ -328,6 +328,42 @@ pip3 install usbrip
usbrip ids download #Download USB ID database usbrip ids download #Download USB ID database
``` ```
### 예시 ### 예시
#### Basic Forensic Methodology
##### Linux Forensics
1. **Collecting Volatile Data**
- **Description:** Collecting volatile data involves capturing information that is stored in temporary storage or memory that will be lost when the system is powered off or restarted.
- **Tools:** `ps`, `top`, `netstat`, `lsof`
2. **Collecting Non-Volatile Data**
- **Description:** Collecting non-volatile data involves capturing information that is stored on persistent storage devices such as hard drives or SSDs.
- **Tools:** `dd`, `dc3dd`, `EnCase`, `FTK Imager`
3. **Analyzing Malware**
- **Description:** Analyzing malware involves examining malicious software to understand its functionality and behavior.
- **Tools:** `Cuckoo Sandbox`, `Hybrid Analysis`, `VirusTotal`
4. **Timeline Analysis**
- **Description:** Timeline analysis involves creating a chronological sequence of events based on the evidence collected during the investigation.
- **Tools:** `log2timeline`, `mactime`, `Plaso`
5. **File Carving**
- **Description:** File carving involves extracting files from disk images or other storage media when the file system is damaged or incomplete.
- **Tools:** `Scalpel`, `PhotoRec`, `Foremost`
6. **Memory Analysis**
- **Description:** Memory analysis involves examining the memory of a system to identify running processes, open network connections, and other volatile data.
- **Tools:** `Volatility`, `Rekall`, `LiME`
7. **Network Forensics**
- **Description:** Network forensics involves monitoring and analyzing network traffic to gather evidence for investigating security incidents.
- **Tools:** `Wireshark`, `tcpdump`, `NetworkMiner`
8. **Reporting**
- **Description:** Reporting involves documenting the findings of the forensic investigation in a clear and organized manner.
- **Tools:** `Sleuth Kit`, `Autopsy`, `X-Ways Forensics`
```bash ```bash
usbrip events history #Get USB history of your curent linux machine usbrip events history #Get USB history of your curent linux machine
usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user
@ -335,7 +371,7 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
usbrip ids download #Downlaod database usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
``` ```
더 많은 예제와 정보는 깃허브에서 확인할 수 있습니다: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip) 더 많은 예제 및 정보는 깃허브 내부에 있습니다: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -347,26 +383,26 @@ usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
## 사용자 계정 및 로그온 활동 검토 ## 사용자 계정 및 로그온 활동 검토
_**/etc/passwd**_, _**/etc/shadow**_ 및 **보안 로그**를 확인하여 알려진 무단 이벤트와 밀접한 시기에 생성되거나 사용된 이상한 이름 또는 계정을 찾아보세요. 또한 가능한 sudo 브루트 포스 공격을 확인하세요.\ _**/etc/passwd**_, _**/etc/shadow**_ 및 **보안 로그**를 조사하여 알려진 무단 이벤트와 밀접한 시기에 생성되거나 사용된 이상한 이름 또는 계정을 확인하십시오. 또한 가능한 sudo 브루트 포스 공격을 확인하십시오.\
또한, 사용자에게 부여된 예상치 못한 권한을 확인하기 위해 _**/etc/sudoers**_ 및 _**/etc/groups**_와 같은 파일을 확인하세요.\ 또한, 사용자에게 부여된 예상치 못한 권한을 확인하기 위해 _**/etc/sudoers**_ 및 _**/etc/groups**_와 같은 파일을 확인하십시오.\
마지막으로, **비밀번호가 없는 계정**이나 **쉽게 추측할 수 있는 비밀번호**를 가진 계정을 찾아보세요. 마지막으로, **비밀번호가 없는 계정** 또는 **쉽게 추측할 수 있는** 비밀번호를 가진 계정을 찾아보세요.
## 파일 시스템 검토 ## 파일 시스템 조사
### 악성 코드 조사를 위한 파일 시스템 구조 분석 ### 악성 코드 조사를 위한 파일 시스템 구조 분석
악성 코드 사건을 조사할 때 파일 시스템의 구조는 이벤트 시퀀스와 악성 코드의 내용을 드러내는 중요한 정보원입니다. 그러나 악성 코드 작성자들은 파일 타임스탬프를 수정하거나 데이터 저장을 위해 파일 시스템을 피하는 등의 기술을 개발하고 있습니다. 악성 코드 사건을 조사할 때 파일 시스템의 구조는 사건의 순서와 악성 코드의 내용을 드러내는 중요한 정보원입니다. 그러나 악성 코드 작성자들은 파일 타임스탬프를 수정하거나 데이터 저장을 위해 파일 시스템을 피하는 등의 분석을 방해하는 기술을 개발하고 있습니다.
이러한 안티 포렌식 방법에 대하기 위해 다음이 필요합니다: 이러한 안티 포렌식 방법에 대하기 위해 다음이 필요합니다:
* **Autopsy**와 같은 도구를 사용하여 이벤트 타임라인을 시각화하거나 **Sleuth Kit**의 `mactime`을 사용하여 자세한 타임라인 데이터를 분석하여 **철저한 타임라인 분석**을 수행합니다. * **Autopsy**와 같은 도구를 사용하여 이벤트 타임라인을 시각화하거나 **Sleuth Kit**의 `mactime`을 사용하여 자세한 타임라인 데이터를 분석하여 **철저한 타임라인 분석**을 수행합니다.
* 시스템의 $PATH에 있는 **예상치 못한 스크립트**를 조사합니다. 이는 공격자가 사용하는 쉘 또는 PHP 스크립트를 포함할 수 있습니다. * 시스템의 $PATH에 있는 **예상치 못한 스크립트**를 조사하십시오. 이는 공격자가 사용하는 쉘 또는 PHP 스크립트를 포함할 수 있습니다.
* **/dev**에서 **비정상적인 파일**을 조사합니다. 이는 일반적으로 특수 파일을 포함하지만 악성 코드 관련 파일을 포함할 수도 있습니다. * **/dev**에서 **비정상적인 파일**을 조사하십시오. 일반적으로 특수 파일을 포함하지만 악성 코드 관련 파일을 포함할 수도 있습니다.
* ".. " (점 점 공백) 또는 "..^G" (점 점 컨트롤-G)와 같은 이름의 **숨겨진 파일 또는 디렉토리**를 찾습니다. 이는 악의적인 콘텐츠를 숨길 수 있습니다. * ".. " (점 점 공백) 또는 "..^G" (점 점 제어-G)와 같은 이름의 **숨겨진 파일 또는 디렉토리**를 검색하십시오. 이는 악의적인 콘텐츠를 숨길 수 있습니다.
* `find / -user root -perm -04000 -print` 명령을 사용하여 **setuid root 파일**을 식별합니다. 이는 공격자가 악용할 수 있는 권한이 상승된 파일을 찾습니다. * `find / -user root -perm -04000 -print` 명령을 사용하여 **setuid root 파일**을 식별합니다. 이는 공격자가 악용할 수 있는 권한이 상승된 파일을 찾습니다.
* inode 테이블에서 **삭제 타임스탬프**를 검토하여 대량 파일 삭제를 확인하고 루트킷 또는 트로이 목마의 존재를 나타낼 수 있습니다. * inode 테이블에서 **삭제 타임스탬프**를 검토하여 대량 파일 삭제를 확인하고 루트킷 또는 트로이 목이 존재할 수 있음을 나타낼 수 있습니다.
* 하나를 식별한 후 **인접한 악성 파일을 위한 연속적인 inode**를 조사합니다. 이들은 함께 배치될 수 있습니다. * 하나를 식별한 후 **인접한 악성 파일을 위해 연속된 inode**를 조사하십시오. 이들은 함께 배치될 수 있습니다.
* **최근 수정된 파일**을 확인하기 위해 일반적인 이진 디렉토리 (_/bin_, _/sbin_)를 확인합니다. 이는 악성 코드에 의해 변경될 수 있습니다. * **최근 수정된 파일**을 확인하기 위해 일반적인 이진 디렉토리 (_/bin_, _/sbin_)를 확인하십시오. 이는 악성 코드에 의해 변경될 수 있습니다.
````bash ````bash
# List recent files in a directory: # List recent files in a directory:
ls -laR --sort=time /bin``` ls -laR --sort=time /bin```
@ -375,14 +411,14 @@ ls -laR --sort=time /bin```
ls -lai /bin | sort -n``` ls -lai /bin | sort -n```
```` ````
{% hint style="info" %} {% hint style="info" %}
**공격자**가 **파일을 수정**하여 **파일이 정당해 보이도록** **시간을 조작**할 수 있지만 **inode**를 수정할 수는 없습니다. 동일한 폴더 내의 다른 파일들과 동일한 시간에 생성 및 수정되었다는 **파일**이 나타나지만 **inode**가 **예상치 못하게 크다면**, 해당 **파일의 타임스탬프가 수정**된 것입니다. **공격자**가 **파일을 수정**하여 **파일이 정당해 보이도록 시간을 조작**할 수 있지만 **inode**를 수정할 수는 없습니다. 동일한 폴더 내의 다른 파일들과 동일한 시간에 생성 및 수정되었다는 **파일**을 발견하더라도 **inode**가 **예상치 못하게 크다면**, 해당 **파일의 타임스탬프가 수정**된 것입니다.
{% endhint %} {% endhint %}
## 다른 파일 시스템 버전의 파일 비교 ## 다른 파일 시스템 버전의 파일 비교
### 파일 시스템 버전 비교 요약 ### 파일 시스템 버전 비교 요약
파일 시스템 버전을 비교하고 변경 사항을 정확히 파악하기 위해 간소화된 `git diff` 명령을 사용합니다: 파일 시스템 버전을 비교하고 변경 사항을 파악하기 위해 간소화된 `git diff` 명령을 사용합니다:
* **새 파일을 찾으려면**, 두 디렉토리를 비교합니다: * **새 파일을 찾으려면**, 두 디렉토리를 비교합니다:
```bash ```bash
@ -418,20 +454,20 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
<summary><strong>제로부터 영웅이 될 때까지 AWS 해킹 배우기</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>제로부터 영웅이 될 때까지 AWS 해킹 배우기</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
**사이버 보안 회사**에서 일하시나요? **HackTricks에 귀사 광고**를 보고 싶으신가요? 또는 **PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드**하고 싶으신가요? [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요! **사이버 보안 회사**에서 일하시나요? **HackTricks에서 귀하의 회사를 광고**하고 싶으신가요? 또는 **PEASS의 최신 버전에 액세스**하거나 HackTricks를 **PDF로 다운로드**하고 싶으신가요? [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 저희의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFT 컬렉션**](https://opensea.io/collection/the-peass-family)
* [**공식 PEASS & HackTricks 스**](https://peass.creator-spring.com)을 받으세요 * [**공식 PEASS & HackTricks 스**](https://peass.creator-spring.com)을 받으세요
* **💬** [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요. * **💬** [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
**해킹 트릭을 공유하려면** [**hacktricks 저장소**](https://github.com/carlospolop/hacktricks) **및** [**hacktricks-cloud 저장소**](https://github.com/carlospolop/hacktricks-cloud) **에 PR을 제출하세요.** **해킹 트릭을 공유하려면** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **및** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **에 PR을 제출**하세요.
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구를 활용한 **워크플로우를 쉽게 구축**하고 **자동화**하세요.\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)를 사용하여 세계에서 **가장 고급** 커뮤니티 도구를 활용한 **워크플로우를 쉽게 구축**하고 **자동화**하세요.\
오늘 바로 액세스하세요: 오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}