Linux Forensics
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
Initial Information Gathering
Basic Information
์ฐ์ , ์ข์ ์๋ ค์ง ๋ฐ์ด๋๋ฆฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ USB๋ฅผ ์ค๋นํ๋ ๊ฒ์ด ์ข์ต๋๋ค (์ฐ๋ถํฌ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ /bin, /sbin, /lib, ๋ฐ /lib64 ํด๋๋ฅผ ๋ณต์ฌํ๋ฉด ๋ฉ๋๋ค). ๊ทธ๋ฐ ๋ค์ USB๋ฅผ ๋ง์ดํธํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ์์ ํ์ฌ ํด๋น ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค:
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
์์คํ ์ ์ ๋ขฐํ ์ ์๋ ์๋ ค์ง ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ ํ, ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ธฐ ์์ํ ์ ์์ต๋๋ค:
date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info
ifconfig -a || ip a #Network interfaces (promiscuous mode?)
ps -ef #Running processes
netstat -anp #Proccess and ports
lsof -V #Open files
netstat -rn; route #Routing table
df; mount #Free space and mounted devices
free #Meam and swap space
w #Who is connected
last -Faiwx #Logins
lsmod #What is loaded
cat /etc/passwd #Unexpected data?
cat /etc/shadow #Unexpected data?
find /directory -type f -mtime -1 -print #Find modified files during the last minute in the directory
์์ฌ์ค๋ฌ์ด ์ ๋ณด
๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์ป๋ ๋์ ๋ค์๊ณผ ๊ฐ์ ์ด์ํ ์ฌํญ์ ํ์ธํด์ผ ํฉ๋๋ค:
- ๋ฃจํธ ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฎ์ PID๋ก ์คํ๋๋ฏ๋ก, ํฐ PID๋ฅผ ๊ฐ์ง ๋ฃจํธ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์์ฌํ ์ ์์ต๋๋ค.
/etc/passwd์ ์์ด ์๋ ์ฌ์ฉ์์ ๋ฑ๋ก๋ ๋ก๊ทธ์ธ์ ํ์ธํ์ญ์์ค.- ์์ด ์๋ ์ฌ์ฉ์์
/etc/shadow์ ์๋ ๋น๋ฐ๋ฒํธ ํด์๋ฅผ ํ์ธํ์ญ์์ค.
๋ฉ๋ชจ๋ฆฌ ๋คํ
์คํ ์ค์ธ ์์คํ
์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ป์ผ๋ ค๋ฉด LiME๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๋ฅผ ์ปดํ์ผํ๋ ค๋ฉด ํผํด์ ๋จธ์ ์ด ์ฌ์ฉํ๋ ๋์ผํ ์ปค๋์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Tip
ํผํด์ ๋จธ์ ์ LiME ๋๋ ๋ค๋ฅธ ์ด๋ค ๊ฒ๋ ์ค์นํ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํ์ญ์์ค. ์ด๋ ์ฌ๋ฌ ๊ฐ์ง ๋ณ๊ฒฝ์ ์ด๋ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋์ผํ ๋ฒ์ ์ Ubuntu๊ฐ ์๋ค๋ฉด apt-get install lime-forensics-dkms๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๊ฒฝ์ฐ์๋ LiME๋ฅผ github์์ ๋ค์ด๋ก๋ํ๊ณ ์ฌ๋ฐ๋ฅธ ์ปค๋ ํค๋๋ก ์ปดํ์ผํด์ผ ํฉ๋๋ค. ํผํด์ ๋จธ์ ์ ์ ํํ ์ปค๋ ํค๋๋ฅผ ์ป์ผ๋ ค๋ฉด /lib/modules/<kernel version> ๋๋ ํ ๋ฆฌ๋ฅผ ๊ทํ์ ๋จธ์ ์ผ๋ก ๋ณต์ฌํ ๋ค์, ์ด๋ฅผ ์ฌ์ฉํ์ฌ LiME๋ฅผ ์ปดํ์ผํ๋ฉด ๋ฉ๋๋ค:
make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
LiME๋ 3๊ฐ์ง ํ์์ ์ง์ํฉ๋๋ค:
- Raw (๋ชจ๋ ์ธ๊ทธ๋จผํธ๊ฐ ํจ๊ป ์ฐ๊ฒฐ๋จ)
- Padded (raw์ ๋์ผํ์ง๋ง ์ค๋ฅธ์ชฝ ๋นํธ์ ์ ๋ก๊ฐ ์ถ๊ฐ๋จ)
- Lime (๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ถ์ฒ ํ์)
LiME๋ ๋ํ ์์คํ
์ ์ ์ฅํ๋ ๋์ ๋คํธ์ํฌ๋ฅผ ํตํด ๋คํ๋ฅผ ์ ์กํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์: path=tcp:4444
๋์คํฌ ์ด๋ฏธ์ง
์์คํ ์ข ๋ฃ
์ฐ์ , ์์คํ
์ ์ข
๋ฃํด์ผ ํฉ๋๋ค. ์ด๋ ํญ์ ๊ฐ๋ฅํ ์ต์
์ด ์๋๋ฉฐ, ๋๋๋ก ์์คํ
์ด ํ์ฌ๊ฐ ์ข
๋ฃํ ์ ์๋ ํ๋ก๋์
์๋ฒ์ผ ์ ์์ต๋๋ค.
์์คํ
์ ์ข
๋ฃํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์ข
๋ฃ์ โํ๋ฌ๊ทธ๋ฅผ ๋ฝ๋โ ์ข
๋ฃ์ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ํ๋ก์ธ์ค๊ฐ ์ ์์ ์ผ๋ก ์ข
๋ฃ๋๊ณ ํ์ผ ์์คํ
์ด ๋๊ธฐํ๋๋๋ก ํ์ฉํ์ง๋ง, ๊ฐ๋ฅํ ์
์ฑ์ฝ๋๊ฐ ์ฆ๊ฑฐ๋ฅผ ํ๊ดดํ ์ ์๊ฒ ํฉ๋๋ค. โํ๋ฌ๊ทธ๋ฅผ ๋ฝ๋โ ์ ๊ทผ ๋ฐฉ์์ ์ผ๋ถ ์ ๋ณด ์์ค์ ์ด๋ํ ์ ์์ต๋๋ค(๋ฉ๋ชจ๋ฆฌ ์ด๋ฏธ์ง๋ฅผ ์ด๋ฏธ ๊ฐ์ ธ์๊ธฐ ๋๋ฌธ์ ๋ง์ ์ ๋ณด๊ฐ ์์ค๋์ง๋ ์์ ๊ฒ์
๋๋ค) ๊ทธ๋ฆฌ๊ณ ์
์ฑ์ฝ๋๊ฐ ์๋ฌด๊ฒ๋ ํ ๊ธฐํ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์
์ฑ์ฝ๋๊ฐ ์์ ๊ฒ์ผ๋ก ์์ฌ๋๋ ๊ฒฝ์ฐ, ์์คํ
์์ sync ๋ช
๋ น์ ์คํํ๊ณ ํ๋ฌ๊ทธ๋ฅผ ๋ฝ์ผ์ญ์์ค.
๋์คํฌ ์ด๋ฏธ์ง ์ดฌ์
์ฌ๊ฑด๊ณผ ๊ด๋ จ๋ ์ด๋ค ๊ฒ์ ์ปดํจํฐ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ ์, ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง์ดํธ๋ ๊ฒ์ธ์ง ํ์คํ ํด์ผ ์ ๋ณด๋ฅผ ์์ ํ์ง ์๋๋ก ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
#Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512
#Raw copy with hashes along the way (more secure as it checks hashes while it's copying the data)
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
๋์คํฌ ์ด๋ฏธ์ง ์ฌ์ ๋ถ์
๋ ์ด์ ๋ฐ์ดํฐ๊ฐ ์๋ ๋์คํฌ ์ด๋ฏธ์ง๋ฅผ ์ด๋ฏธ์งํฉ๋๋ค.
#Find out if it's a disk image using "file" command
file disk.img
disk.img: Linux rev 1.0 ext4 filesystem data, UUID=59e7a736-9c90-4fab-ae35-1d6a28e5de27 (extents) (64bit) (large files) (huge files)
#Check which type of disk image it's
img_stat -t evidence.img
raw
#You can list supported types with
img_stat -i list
Supported image format types:
raw (Single or split raw file (dd))
aff (Advanced Forensic Format)
afd (AFF Multiple File)
afm (AFF with external metadata)
afflib (All AFFLIB image formats (including beta ones))
ewf (Expert Witness Format (EnCase))
#Data of the image
fsstat -i raw -f ext4 disk.img
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext4
Volume Name:
Volume ID: 162850f203fd75afab4f1e4736a7e776
Last Written at: 2020-02-06 06:22:48 (UTC)
Last Checked at: 2020-02-06 06:15:09 (UTC)
Last Mounted at: 2020-02-06 06:15:18 (UTC)
Unmounted properly
Last mounted on: /mnt/disk0
Source OS: Linux
[...]
#ls inside the image
fls -i raw -f ext4 disk.img
d/d 11: lost+found
d/d 12: Documents
d/d 8193: folder1
d/d 8194: folder2
V/V 65537: $OrphanFiles
#ls inside folder
fls -i raw -f ext4 disk.img 12
r/r 16: secret.txt
#cat file inside image
icat -i raw -f ext4 disk.img 16
ThisisTheMasterSecret
์๋ ค์ง ์ ์ฑ์ฝ๋ ๊ฒ์
์์ ๋ ์์คํ ํ์ผ
Linux๋ ์์คํ ๊ตฌ์ฑ ์์์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ฌ ์ ์ฌ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ํ์ผ์ ๋ฐ๊ฒฌํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
- RedHat ๊ธฐ๋ฐ ์์คํ
: ํฌ๊ด์ ์ธ ๊ฒ์ฌ๋ฅผ ์ํด
rpm -Va๋ฅผ ์ฌ์ฉํฉ๋๋ค. - Debian ๊ธฐ๋ฐ ์์คํ
: ์ด๊ธฐ ๊ฒ์ฆ์ ์ํด
dpkg --verify๋ฅผ ์ฌ์ฉํ ํ,debsums | grep -v "OK$"(๋จผ์ apt-get install debsums๋กdebsums๋ฅผ ์ค์นํ ํ)๋ก ๋ฌธ์ ๋ฅผ ์๋ณํฉ๋๋ค.
์ ์ฑ์ฝ๋/๋ฃจํธํท ํ์ง๊ธฐ
์ ์ฑ์ฝ๋๋ฅผ ์ฐพ๋ ๋ฐ ์ ์ฉํ ์ ์๋ ๋๊ตฌ์ ๋ํด ์์๋ณด๋ ค๋ฉด ๋ค์ ํ์ด์ง๋ฅผ ์ฝ์ด๋ณด์ธ์:
์ค์น๋ ํ๋ก๊ทธ๋จ ๊ฒ์
Debian ๋ฐ RedHat ์์คํ ์์ ์ค์น๋ ํ๋ก๊ทธ๋จ์ ํจ๊ณผ์ ์ผ๋ก ๊ฒ์ํ๋ ค๋ฉด ์์คํ ๋ก๊ทธ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ๊ณ ์ผ๋ฐ ๋๋ ํ ๋ฆฌ์์ ์๋ ๊ฒ์ฌ๋ฅผ ๊ณ ๋ คํ์ธ์.
- Debian์ ๊ฒฝ์ฐ, ํจํค์ง ์ค์น์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด
/var/lib/dpkg/status๋ฐ _/var/log/dpkg.log_๋ฅผ ๊ฒ์ฌํ๊ณ ,grep์ ์ฌ์ฉํ์ฌ ํน์ ์ ๋ณด๋ฅผ ํํฐ๋งํฉ๋๋ค. - RedHat ์ฌ์ฉ์๋
rpm -qa --root=/mntpath/var/lib/rpm๋ก RPM ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ค์น๋ ํจํค์ง๋ฅผ ๋์ดํ ์ ์์ต๋๋ค.
ํจํค์ง ๊ด๋ฆฌ์ ์ธ๋ถ์์ ์๋์ผ๋ก ์ค์น๋ ์ํํธ์จ์ด๋ฅผ ๋ฐ๊ฒฌํ๋ ค๋ฉด /usr/local, /opt, /usr/sbin, /usr/bin, /bin, ๋ฐ _/sbin_๊ณผ ๊ฐ์ ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ํ์ธ์. ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก๊ณผ ์์คํ
ํน์ ๋ช
๋ น์ ๊ฒฐํฉํ์ฌ ์๋ ค์ง ํจํค์ง์ ๊ด๋ จ์ด ์๋ ์คํ ํ์ผ์ ์๋ณํ์ฌ ๋ชจ๋ ์ค์น๋ ํ๋ก๊ทธ๋จ์ ๊ฒ์ํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
cat /var/log/dpkg.log | grep installed
# RedHat RPM database query
rpm -qa --root=/mntpath/var/lib/rpm
# Listing directories for manual installations
ls /usr/sbin /usr/bin /bin /sbin
# Identifying non-package executables (Debian)
find /sbin/ -exec dpkg -S {} \; | grep "no path found"
# Identifying non-package executables (RedHat)
find /sbin/ โexec rpm -qf {} \; | grep "is not"
# Find exacuable files
find / -type f -executable | grep <something>
์ญ์ ๋ ์คํ ์ค์ธ ๋ฐ์ด๋๋ฆฌ ๋ณต๊ตฌ
/tmp/exec์์ ์คํ๋ ํ ์ญ์ ๋ ํ๋ก์ธ์ค๋ฅผ ์์ํด ๋ณด์ญ์์ค. ์ด๋ฅผ ์ถ์ถํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000
dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
์๋ ์์ ์์น ๊ฒ์ฌ
์์ฝ๋ ์์
cat /var/spool/cron/crontabs/* \
/var/spool/cron/atjobs \
/var/spool/anacron \
/etc/cron* \
/etc/at* \
/etc/anacrontab \
/etc/incron.d/* \
/var/spool/incron/* \
#MacOS
ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/
Hunt: Cron/Anacron ๋จ์ฉ via 0anacron ๋ฐ ์์ฌ์ค๋ฌ์ด ์คํ
๊ณต๊ฒฉ์๋ ์ข ์ข ๊ฐ /etc/cron.*/ ๋๋ ํ ๋ฆฌ ์๋์ ์๋ 0anacron ์คํ ์ ํธ์งํ์ฌ ์ฃผ๊ธฐ์ ์ธ ์คํ์ ๋ณด์ฅํฉ๋๋ค.
# List 0anacron files and their timestamps/sizes
for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done
# Look for obvious execution of shells or downloaders embedded in cron stubs
grep -R --line-number -E 'curl|wget|/bin/sh|python|bash -c' /etc/cron.*/* 2>/dev/null
Hunt: SSH ํ๋๋ ๋กค๋ฐฑ ๋ฐ ๋ฐฑ๋์ด ์
sshd_config ๋ฐ ์์คํ ๊ณ์ ์์ ๋ํ ๋ณ๊ฒฝ์ ์ ๊ทผ์ ์ ์งํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ํฌ์คํธ ์ต์คํ๋ก์์ ๋๋ค.
# Root login enablement (flag "yes" or lax values)
grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config
# System accounts with interactive shells (e.g., games โ /bin/sh)
awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd
Hunt: Cloud C2 markers (Dropbox/Cloudflare Tunnel)
- Dropbox API ๋น์ฝ์ ์ผ๋ฐ์ ์ผ๋ก HTTPS๋ฅผ ํตํด api.dropboxapi.com ๋๋ content.dropboxapi.com์ ์ฌ์ฉํ๋ฉฐ, Authorization: Bearer ํ ํฐ์ ์ฌ์ฉํฉ๋๋ค.
- ์๋ฒ์์ ์์์น ๋ชปํ Dropbox ์ดํ์ ์ํด proxy/Zeek/NetFlow์์ ๊ฒ์ํฉ๋๋ค.
- Cloudflare Tunnel (
cloudflared)๋ ์์๋ฐ์ด๋ 443์ ํตํด ๋ฐฑ์ C2๋ฅผ ์ ๊ณตํฉ๋๋ค.
ps aux | grep -E '[c]loudflared|trycloudflare'
systemctl list-units | grep -i cloudflared
์๋น์ค
์ ์ฑ ์ฝ๋๊ฐ ์๋น์ค๋ก ์ค์น๋ ์ ์๋ ๊ฒฝ๋ก:
- /etc/inittab: rc.sysinit๊ณผ ๊ฐ์ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ์ฌ ์ถ๊ฐ์ ์ธ ์์ ์คํฌ๋ฆฝํธ๋ก ์๋ดํฉ๋๋ค.
- /etc/rc.d/ ๋ฐ /etc/rc.boot/: ์๋น์ค ์์์ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ๋ฉฐ, ํ์๋ ๊ตฌ๋ฒ์ ๋ฆฌ๋ ์ค์์ ๋ฐ๊ฒฌ๋ฉ๋๋ค.
- /etc/init.d/: Debian๊ณผ ๊ฐ์ ํน์ ๋ฆฌ๋ ์ค ๋ฒ์ ์์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์๋น์ค๋ ๋ฆฌ๋ ์ค ๋ณํ์ ๋ฐ๋ผ /etc/inetd.conf ๋๋ **/etc/xinetd/**๋ฅผ ํตํด ํ์ฑํ๋ ์ ์์ต๋๋ค.
- /etc/systemd/system: ์์คํ ๋ฐ ์๋น์ค ๊ด๋ฆฌ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ํ ๋๋ ํ ๋ฆฌ์ ๋๋ค.
- /etc/systemd/system/multi-user.target.wants/: ๋ค์ค ์ฌ์ฉ์ ์คํ ์์ค์์ ์์ํด์ผ ํ๋ ์๋น์ค์ ๋ํ ๋งํฌ๋ฅผ ํฌํจํฉ๋๋ค.
- /usr/local/etc/rc.d/: ์ฌ์ฉ์ ์ ์ ๋๋ ํ์ฌ ์๋น์ค๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
- ~/.config/autostart/: ์ฌ์ฉ์ ํน์ ์๋ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฒ์ผ๋ก, ์ฌ์ฉ์ ํ๊ฒ ์ ์ฑ ์ฝ๋์ ์จ๊ฒจ์ง ์ฅ์๊ฐ ๋ ์ ์์ต๋๋ค.
- /lib/systemd/system/: ์ค์น๋ ํจํค์ง์์ ์ ๊ณตํ๋ ์์คํ ์ ์ฒด ๊ธฐ๋ณธ ์ ๋ ํ์ผ์ ๋๋ค.
์ปค๋ ๋ชจ๋
๋ฆฌ๋ ์ค ์ปค๋ ๋ชจ๋์ ์ข ์ข ์ ์ฑ ์ฝ๋์ ์ํด ๋ฃจํธํท ๊ตฌ์ฑ ์์๋ก ์ฌ์ฉ๋๋ฉฐ, ์์คํ ๋ถํ ์ ๋ก๋๋ฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋์ ์ค์ํ ๋๋ ํ ๋ฆฌ ๋ฐ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- /lib/modules/$(uname -r): ์คํ ์ค์ธ ์ปค๋ ๋ฒ์ ์ ๋ชจ๋์ ๋ณด์ ํฉ๋๋ค.
- /etc/modprobe.d: ๋ชจ๋ ๋ก๋ฉ์ ์ ์ดํ๋ ๊ตฌ์ฑ ํ์ผ์ ํฌํจํฉ๋๋ค.
- /etc/modprobe ๋ฐ /etc/modprobe.conf: ์ ์ญ ๋ชจ๋ ์ค์ ์ ์ํ ํ์ผ์ ๋๋ค.
๊ธฐํ ์๋ ์์ ์์น
๋ฆฌ๋ ์ค๋ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ ํ๋ก๊ทธ๋จ์ ์๋์ผ๋ก ์คํํ๊ธฐ ์ํด ๋ค์ํ ํ์ผ์ ์ฌ์ฉํ๋ฉฐ, ์ด๋ ์ ์ฑ ์ฝ๋๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค:
- /etc/profile.d/*, /etc/profile, ๋ฐ /etc/bash.bashrc: ๋ชจ๋ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ ์คํ๋ฉ๋๋ค.
- ~/.bashrc, ~/.bash_profile, ~/.profile, ๋ฐ ~/.config/autostart: ์ฌ์ฉ์ ํน์ ํ์ผ๋ก, ๋ก๊ทธ์ธ ์ ์คํ๋ฉ๋๋ค.
- /etc/rc.local: ๋ชจ๋ ์์คํ ์๋น์ค๊ฐ ์์๋ ํ ์คํ๋๋ฉฐ, ๋ค์ค ์ฌ์ฉ์ ํ๊ฒฝ์ผ๋ก์ ์ ํ์ด ๋๋ฌ์์ ๋ํ๋ ๋๋ค.
๋ก๊ทธ ๊ฒ์ฌ
๋ฆฌ๋ ์ค ์์คํ ์ ๋ค์ํ ๋ก๊ทธ ํ์ผ์ ํตํด ์ฌ์ฉ์ ํ๋ ๋ฐ ์์คํ ์ด๋ฒคํธ๋ฅผ ์ถ์ ํฉ๋๋ค. ์ด๋ฌํ ๋ก๊ทธ๋ ๋ฌด๋จ ์ ๊ทผ, ์ ์ฑ ์ฝ๋ ๊ฐ์ผ ๋ฐ ๊ธฐํ ๋ณด์ ์ฌ๊ฑด์ ์๋ณํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ฃผ์ ๋ก๊ทธ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- /var/log/syslog (Debian) ๋๋ /var/log/messages (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๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ จ ์ธ์ฆ ์ด๋ฒคํธ๋ฅผ ํํฐ๋งํฉ๋๋ค.- /var/log/boot.log: ์์คํ ์์ ๋ฉ์์ง๋ฅผ ํฌํจํฉ๋๋ค.
- /var/log/maillog ๋๋ /var/log/mail.log: ์ด๋ฉ์ผ ์๋ฒ ํ๋์ ๊ธฐ๋กํ๋ฉฐ, ์ด๋ฉ์ผ ๊ด๋ จ ์๋น์ค๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
- /var/log/kern.log: ์ปค๋ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๋ฉฐ, ์ค๋ฅ ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ํฌํจํฉ๋๋ค.
- /var/log/dmesg: ์ฅ์น ๋๋ผ์ด๋ฒ ๋ฉ์์ง๋ฅผ ๋ณด์ ํฉ๋๋ค.
- /var/log/faillog: ์คํจํ ๋ก๊ทธ์ธ ์๋๋ฅผ ๊ธฐ๋กํ์ฌ ๋ณด์ ์นจํด ์กฐ์ฌ์ ๋์์ ์ค๋๋ค.
- /var/log/cron: ํฌ๋ก ์์ ์คํ์ ๊ธฐ๋กํฉ๋๋ค.
- /var/log/daemon.log: ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค ํ๋์ ์ถ์ ํฉ๋๋ค.
- /var/log/btmp: ์คํจํ ๋ก๊ทธ์ธ ์๋๋ฅผ ๋ฌธ์ํํฉ๋๋ค.
- /var/log/httpd/: Apache HTTPD ์ค๋ฅ ๋ฐ ์ ๊ทผ ๋ก๊ทธ๋ฅผ ํฌํจํฉ๋๋ค.
- /var/log/mysqld.log ๋๋ /var/log/mysql.log: MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ๊ธฐ๋กํฉ๋๋ค.
- /var/log/xferlog: FTP ํ์ผ ์ ์ก์ ๊ธฐ๋กํฉ๋๋ค.
- /var/log/: ์ฌ๊ธฐ์์ ์์์น ๋ชปํ ๋ก๊ทธ๋ฅผ ํญ์ ํ์ธํ์ญ์์ค.
Tip
๋ฆฌ๋ ์ค ์์คํ ๋ก๊ทธ ๋ฐ ๊ฐ์ฌ ํ์ ์์คํ ์ ์นจ์ ๋๋ ์ ์ฑ ์ฝ๋ ์ฌ๊ฑด์์ ๋นํ์ฑํ๋๊ฑฐ๋ ์ญ์ ๋ ์ ์์ต๋๋ค. ๋ฆฌ๋ ์ค ์์คํ ์ ๋ก๊ทธ๋ ์ ์์ ์ธ ํ๋์ ๋ํ ๊ฐ์ฅ ์ ์ฉํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์, ์นจ์ ์๋ ์ด๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ญ์ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ก๊ทธ ํ์ผ์ ๊ฒ์ฌํ ๋๋ ์ญ์ ๋๋ ๋ณ์กฐ์ ์งํ๊ฐ ๋ ์ ์๋ ๊ฐ๊ฒฉ์ด๋ ์์๊ฐ ์ด๊ธ๋ ํญ๋ชฉ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ฆฌ๋ ์ค๋ ๊ฐ ์ฌ์ฉ์์ ๋ํ ๋ช ๋ น ๊ธฐ๋ก์ ์ ์งํฉ๋๋ค, ์ ์ฅ ์์น๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ~/.bash_history
- ~/.zsh_history
- ~/.zsh_sessions/*
- ~/.python_history
- ~/.*_history
๋ํ, last -Faiwx ๋ช
๋ น์ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ๋ชฉ๋ก์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ ์๋ ๋๋ ์์์น ๋ชปํ ๋ก๊ทธ์ธ์ ํ์ธํ์ญ์์ค.
์ถ๊ฐ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ํ์ผ์ ํ์ธํ์ญ์์ค:
/etc/sudoers์์ ์์์น ๋ชปํ ์ฌ์ฉ์ ๊ถํ์ด ๋ถ์ฌ๋์๋์ง ๊ฒํ ํฉ๋๋ค./etc/sudoers.d/์์ ์์์น ๋ชปํ ์ฌ์ฉ์ ๊ถํ์ด ๋ถ์ฌ๋์๋์ง ๊ฒํ ํฉ๋๋ค./etc/groups๋ฅผ ๊ฒ์ฌํ์ฌ ๋น์ ์์ ์ธ ๊ทธ๋ฃน ๊ตฌ์ฑ์ ๋๋ ๊ถํ์ ์๋ณํฉ๋๋ค./etc/passwd๋ฅผ ๊ฒ์ฌํ์ฌ ๋น์ ์์ ์ธ ๊ทธ๋ฃน ๊ตฌ์ฑ์ ๋๋ ๊ถํ์ ์๋ณํฉ๋๋ค.
์ผ๋ถ ์ฑ์ ์์ฒด ๋ก๊ทธ๋ฅผ ์์ฑํฉ๋๋ค:
- SSH: ~/.ssh/authorized_keys ๋ฐ _~/.ssh/known_hosts_๋ฅผ ๊ฒ์ฌํ์ฌ ๋ฌด๋จ ์๊ฒฉ ์ฐ๊ฒฐ์ ํ์ธํฉ๋๋ค.
- Gnome Desktop: Gnome ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ์ต๊ทผ์ ์ ๊ทผํ ํ์ผ์ ์ํด _~/.recently-used.xbel_๋ฅผ ํ์ธํฉ๋๋ค.
- Firefox/Chrome: ~/.mozilla/firefox ๋๋ _~/.config/google-chrome_์์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ก ๋ฐ ๋ค์ด๋ก๋๋ฅผ ํ์ธํ์ฌ ์์ฌ์ค๋ฌ์ด ํ๋์ ์ฐพ์ต๋๋ค.
- VIM: ์ ๊ทผํ ํ์ผ ๊ฒฝ๋ก ๋ฐ ๊ฒ์ ๊ธฐ๋ก๊ณผ ๊ฐ์ ์ฌ์ฉ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ํด _~/.viminfo_๋ฅผ ๊ฒํ ํฉ๋๋ค.
- Open Office: ์์๋ ํ์ผ์ ๋ํ๋ผ ์ ์๋ ์ต๊ทผ ๋ฌธ์ ์ ๊ทผ์ ํ์ธํฉ๋๋ค.
- FTP/SFTP: ๋ฌด๋จ ํ์ผ ์ ์ก์ ์ํด ~/.ftp_history ๋๋ _~/.sftp_history_์ ๋ก๊ทธ๋ฅผ ๊ฒํ ํฉ๋๋ค.
- MySQL: ์คํ๋ MySQL ์ฟผ๋ฆฌ๋ฅผ ์ํด _~/.mysql_history_๋ฅผ ์กฐ์ฌํ์ฌ ๋ฌด๋จ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ๋๋ฌ๋ผ ์ ์์ต๋๋ค.
- Less: ๋ณธ ํ์ผ ๋ฐ ์คํ๋ ๋ช ๋ น์ ํฌํจํ ์ฌ์ฉ ๊ธฐ๋ก์ ์ํด _~/.lesshst_๋ฅผ ๋ถ์ํฉ๋๋ค.
- Git: ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ํด ~/.gitconfig ๋ฐ ํ๋ก์ ํธ _.git/logs_๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
USB ๋ก๊ทธ
usbrip๋ ๋ฆฌ๋
์ค ๋ก๊ทธ ํ์ผ(/var/log/syslog* ๋๋ /var/log/messages*, ๋ฐฐํฌํ์ ๋ฐ๋ผ ๋ค๋ฆ)์ ํ์ฑํ์ฌ USB ์ด๋ฒคํธ ์ด๋ ฅ ํ
์ด๋ธ์ ๊ตฌ์ฑํ๋ ์์ Python 3๋ก ์์ฑ๋ ์์ ์ํํธ์จ์ด์
๋๋ค.
๋ชจ๋ USB ์ฌ์ฉ ๋ด์ญ์ ์๋ ๊ฒ์ ํฅ๋ฏธ๋กญ๊ณ , โ์๋ฐ ์ฌ๊ฑดโ(๋ชฉ๋ก์ ์๋ USB ์ฌ์ฉ)์ ์ฐพ๊ธฐ ์ํด ์น์ธ๋ USB ๋ชฉ๋ก์ด ์๋ค๋ฉด ๋์ฑ ์ ์ฉํ ๊ฒ์ ๋๋ค.
์ค์น
pip3 install usbrip
usbrip ids download #Download USB ID database
์์
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
#Search for vid and/or pid
usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
๋ ๋ง์ ์์ ์ ์ ๋ณด๋ GitHub์์ ํ์ธํ์ธ์: https://github.com/snovvcrash/usbrip
์ฌ์ฉ์ ๊ณ์ ๋ฐ ๋ก๊ทธ์ธ ํ๋ ๊ฒํ
/etc/passwd, /etc/shadow ๋ฐ ๋ณด์ ๋ก๊ทธ๋ฅผ ๊ฒ์ฌํ์ฌ ์๋ ค์ง ๋ฌด๋จ ์ด๋ฒคํธ์ ๊ฐ๊น์ด ์๊ธฐ์ ์์ฑ๋๊ฑฐ๋ ์ฌ์ฉ๋ ๋น์ ์์ ์ธ ์ด๋ฆ์ด๋ ๊ณ์ ์ ํ์ธํฉ๋๋ค. ๋ํ ๊ฐ๋ฅํ sudo ๋ฌด์ฐจ๋ณ ๋์
๊ณต๊ฒฉ์ ํ์ธํ์ธ์.
๋ํ, /etc/sudoers ๋ฐ _/etc/groups_์ ๊ฐ์ ํ์ผ์์ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌ๋ ์์์น ๋ชปํ ๊ถํ์ ํ์ธํ์ธ์.
๋ง์ง๋ง์ผ๋ก, ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ๊ณ์ ์ด๋ ์ฝ๊ฒ ์ถ์ธกํ ์ ์๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ง ๊ณ์ ์ ์ฐพ์๋ณด์ธ์.
ํ์ผ ์์คํ ๊ฒ์ฌ
์ ์ฑ ์ฝ๋ ์กฐ์ฌ์์ ํ์ผ ์์คํ ๊ตฌ์กฐ ๋ถ์
์ ์ฑ ์ฝ๋ ์ฌ๊ฑด์ ์กฐ์ฌํ ๋, ํ์ผ ์์คํ ์ ๊ตฌ์กฐ๋ ์ฌ๊ฑด์ ์์์ ์ ์ฑ ์ฝ๋์ ๋ด์ฉ์ ๋๋ฌ๋ด๋ ์ค์ํ ์ ๋ณด ์ถ์ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฑ ์ฝ๋ ์์ฑ์๋ค์ ํ์ผ ํ์์คํฌํ๋ฅผ ์์ ํ๊ฑฐ๋ ๋ฐ์ดํฐ ์ ์ฅ์ ์ํด ํ์ผ ์์คํ ์ ํผํ๋ ๋ฑ์ ๋ถ์์ ๋ฐฉํดํ๋ ๊ธฐ์ ์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
์ด๋ฌํ ๋ฐํฌ๋ ์ ๋ฐฉ๋ฒ์ ๋์ํ๊ธฐ ์ํด์๋ ๋ค์์ด ํ์์ ์ ๋๋ค:
- Autopsy์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๊ฑด ํ์๋ผ์ธ์ ์๊ฐํํ๊ฑฐ๋ Sleuth Kit์
mactime์ ์ฌ์ฉํ์ฌ ์์ธํ ํ์๋ผ์ธ ๋ฐ์ดํฐ๋ฅผ ํตํด ์ฒ ์ ํ ํ์๋ผ์ธ ๋ถ์์ ์ํํฉ๋๋ค. - ๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ์ ธ ๋๋ PHP ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ์ ์๋ ์์คํ ์ $PATH์์ ์์์น ๋ชปํ ์คํฌ๋ฆฝํธ๋ฅผ ์กฐ์ฌํฉ๋๋ค.
- /dev์์ ๋น์ ์์ ์ธ ํ์ผ์ ๊ฒ์ฌํฉ๋๋ค. ์ ํต์ ์ผ๋ก ํน๋ณํ ํ์ผ์ ํฌํจํ์ง๋ง ์ ์ฑ ์ฝ๋ ๊ด๋ จ ํ์ผ์ด ์์ ์ ์์ต๋๋ค.
- โ.. โ (dot dot space) ๋๋ **โ..^Gโ (dot dot control-G)**์ ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์จ๊ฒจ์ง ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฒ์ํ์ฌ ์ ์ฑ ์ฝํ ์ธ ๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค.
- ๊ณต๊ฒฉ์๊ฐ ์
์ฉํ ์ ์๋ ๊ถํ์ด ์์น๋ ํ์ผ์ ์ฐพ๊ธฐ ์ํด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ setuid root ํ์ผ์ ์๋ณํฉ๋๋ค:
find / -user root -perm -04000 -print - ๋ฃจํธํท์ด๋ ํธ๋ก์ด ๋ชฉ๋ง์ ์กด์ฌ๋ฅผ ๋ํ๋ผ ์ ์๋ ๋๋ ํ์ผ ์ญ์ ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด inode ํ ์ด๋ธ์ ์ญ์ ํ์์คํฌํ๋ฅผ ๊ฒํ ํฉ๋๋ค.
- ํ๋์ ์ ์ฑ ํ์ผ์ ์๋ณํ ํ ์ธ์ ํ inode์์ ์ธ์ ํ ์ ์ฑ ํ์ผ์ ๊ฒ์ฌํฉ๋๋ค. ์ด๋ค์ ํจ๊ป ๋ฐฐ์น๋์์ ์ ์์ต๋๋ค.
- ์ต๊ทผ์ ์์ ๋ ํ์ผ์ ํ์ธํ๊ธฐ ์ํด ์ผ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋๋ ํ ๋ฆฌ(/bin, /sbin)๋ฅผ ํ์ธํฉ๋๋ค. ์ด๋ ์ ์ฑ ์ฝ๋์ ์ํด ๋ณ๊ฒฝ๋์์ ์ ์์ต๋๋ค.
# List recent files in a directory:
ls -laR --sort=time /bin```
# Sort files in a directory by inode:
ls -lai /bin | sort -n```
Tip
๊ณต๊ฒฉ์๊ฐ ์๊ฐ์ ์์ ํ์ฌ ํ์ผ์ด ํฉ๋ฒ์ ์ผ๋ก ๋ณด์ด๊ฒ ํ ์ ์์ง๋ง, inode๋ ์์ ํ ์ ์์ต๋๋ค. ๋์ผํ ํด๋์ ๋๋จธ์ง ํ์ผ๊ณผ ๋์ผํ ์๊ฐ์ ์์ฑ ๋ฐ ์์ ๋ ๊ฒ์ผ๋ก ํ์๋ ํ์ผ์ ๋ฐ๊ฒฌํ์ง๋ง inode๊ฐ ์์๋ณด๋ค ํฌ๋ฉด, ํด๋น ํ์ผ์ ํ์์คํฌํ๊ฐ ์์ ๋ ๊ฒ์ ๋๋ค.
์๋ก ๋ค๋ฅธ ํ์ผ ์์คํ ๋ฒ์ ๋น๊ต
ํ์ผ ์์คํ ๋ฒ์ ๋น๊ต ์์ฝ
ํ์ผ ์์คํ
๋ฒ์ ์ ๋น๊ตํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ํ์
ํ๊ธฐ ์ํด ๊ฐ์ํ๋ git diff ๋ช
๋ น์ ์ฌ์ฉํฉ๋๋ค:
- ์ ํ์ผ์ ์ฐพ์ผ๋ ค๋ฉด, ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋น๊ตํฉ๋๋ค:
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
- ์์ ๋ ๋ด์ฉ: ๋ณ๊ฒฝ ์ฌํญ์ ํน์ ์ค์ ๋ฌด์ํ๊ณ ๋์ดํฉ๋๋ค.
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
- ์ญ์ ๋ ํ์ผ์ ๊ฐ์งํ๊ธฐ ์ํด:
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
- ํํฐ ์ต์
(
--diff-filter)์ ์ถ๊ฐ๋ (A), ์ญ์ ๋ (D), ๋๋ ์์ ๋ (M) ํ์ผ๊ณผ ๊ฐ์ ํน์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ขํ๋ ๋ฐ ๋์์ ์ค๋๋ค. A: ์ถ๊ฐ๋ ํ์ผC: ๋ณต์ฌ๋ ํ์ผD: ์ญ์ ๋ ํ์ผM: ์์ ๋ ํ์ผR: ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ํ์ผT: ์ ํ ๋ณ๊ฒฝ (์: ํ์ผ์์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก)U: ๋ณํฉ๋์ง ์์ ํ์ผX: ์ ์ ์๋ ํ์ผB: ์์๋ ํ์ผ
์ฐธ์กฐ
-
https://git-scm.com/docs/git-diff#Documentation/git-diff.txtโdiff-filterACDMRTUXB82308203
-
์ฑ : Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides
-
Red Canary โ Patching for persistence: How DripDropper Linux malware moves through the cloud
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


