본문 바로가기
카테고리 없음

08.02

by jegong 2023. 8. 2.

취약점 (분석) 명령어

1. 시스템 내부 확인

현재 실행중인 프로세스 확인 | 내가 알고 싶은 서비스

ps -ef                                          ps -ef | grep httpd

 

마지막 접속 확인 : lastlog ---> 내용을 확인하기 위한 명령어 : wtmp파일 기반 

각 계정을 기준으로 한 마지막 접속 시간 확인 /시간정보 + IP 정보

 

 

 

2- 외부 접속 확인 

/var/log/secure     === auth.log 

set UID : (권한제어)

setuid --> 현재 사용자의 권한 : UID ---> 0 : root

일반 사용자 (1000 보다 크다)

구현은 500(옛날에)

ferhan 1003 

--------           :ID 사람이 보는 계정명 

           ------- :  UID 시스템이 보는 계저명

 

ferhan(1003) ------------> ferhan (0) ------> 시스템 입장에서는 root 가 된다.  

접근제어 :   superuser (root)만 사용할 수 있는 실행파일이 담긴 디렉터리 /sbin

일반 계정도 사용할 수 있는 디렉터리  /bin 

시스템은 /sbin 안에 있는 파일을 실행할 수 있다면 root로 인식한다. 

 

---> 필수 조건 : sticky ---> 관리자의 권한으로... (예: cmd : runas /user:kitri 실행파일)

퍼미션 : 일반적인 퍼미션 : XXX
 - : 유저
 - : 그룹
 - : 기타

 

[root@localhost ferhan]# umask
0022
[root@localhost ferhan]#    

 

sticky bit   : 4 2 1 

1: 아무나 관지자의 권한 

2: 그룹 관리자의 권한 

4: 소유자 관리자의 권한 

6: 그룹 소유자 관리자의 권한  

7: 모든 (항상) 관리자의 권한 

이 권한을 갖고  있는 파일은 실행하고 있는 동안에만 권한이 유지된다. 

 

 

이와 비슷한 명령어 : sudo 

해커가 시스템에 침투 했을 떄 나중을 고려하여 다음번에도 관리자의 권한을 얻기 위해 사전준비한다. 

Rootkit

 

 find / -type f /( -perm -004000 -o -perm -001000 /) -exec ls -lg ({} \  ----------------> 검사 코드 

find / -user root -perm -4000 -print > 4000_perm.txt

차후에 

find / -user root -perm -4000 -print > 4000_perm_1.txt 

 

2개의 파일을 중복 검사한다. 

diff 4000_perm.txt 4000_perm.txt 

 

백도어 설치 여부 점검 ---> /dev /tmp : 기본적으로 디렉터리 퍼미션에 sticky 가 적용 됨 

 

파티션별 디스크 사용량 점검

로컬 저장소 ---> 직접 연결된 HDD , CDROOM, USB <-- 유틀맅티 /df

 

원격 저장소 : SMB(CIFS) / NFS / 

 

ISCSI 초기자 SAN storage attach network --> 스로리즈의 접근을 네트워크를 통해 한다 

NAS : network attach storage --> 네트워크의 접금하여 사용하는 스토리즈 

 

4- tripwire 먼저 시스템에 존재하는 파일에 대해 데이터 베이스를 만들어 저장한 후 생성된 데이터베이스와 비교하여 추가·삭제되거나 변조된 파일이 있는지 점검하고 관리자에게 레포팅해주는 무결성 검사도구이다.

 

wget 으로 다운,  압출 풀고 , 설정 

 

5- 포트 스캔 : 열려 있는 포트 및 응답 가능한 포트 점검 ( 자신의 시스템 : 시스템 관지자가 포트관리 하는데 있어 기본 열러 있는 포트 또는 서비스 중인 포트를 제외한 의심스어운 포트를 찾기 위해 사용한다. 

                                                              ------------------------

netsat -atp | grep LISTEN

외부 호스트의 포트 확인 (nmap 포트 스캔과 같다 ) 

telnet (클라이언트 ) 서비스를 이용하자 

telnet 설치 되어 있지 않아서

yum -y install telnet 

 

[root@localhost ~]# telnet 192.168.0.8 22
Trying 192.168.0.8...
Connected to 192.168.0.8.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
^C
Connection closed by foreign host.
[root@localhost ~]#

 

192.168.0.8 호스트에는 TCP 22번 포트를 사용하는 서비스가 있고

스는 서비스는 "SSH-2.0-OpenSSH_7.4 " 이다 .

                         ---------------------------------  해당 포트의 서비스 정보가 노출된다. 

                                                                    배너 그래빙 : 정보 수집 기법 

민감정보

 

리눅스에서 telnet 서비스를 이용한 포트 스캔

 

for ((i=1;i<100;i++)); do telnet 192.168.0.8 $i; done 

동작중에 멈추면 해당 포트에 서비스가 동작 중임을 알 수 있다. 

 

lsof ==> list open files

시스템에서 열려 있는 파일

 

24u 4u --> 대기 시간을 의미한다 

 

6- 실제 생성되어 있는 

pstree 

[root@localhost ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─alsactl
        ├─at-spi-bus-laun─┬─dbus-daemon
        │                 └─3*[{at-spi-bus-laun}]
        ├─at-spi2-registr───2*[{at-spi2-registr}]
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothd
        ├─boltd───2*[{boltd}]
        ├─chronyd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cupsd
        ├─2*[dbus-daemon]
        ├─dbus-launch
        ├─dconf-service───2*[{dconf-service}]
        ├─dnsmasq───dnsmasq
        ├─evolution-addre─┬─evolution-addre───5*[{evolution-addre}]
        │                 └─4*[{evolution-addre}]
        ├─evolution-calen─┬─evolution-calen───8*[{evolution-calen}]
        │                 └─4*[{evolution-calen}]
        ├─evolution-sourc───3*[{evolution-sourc}]
        ├─fwupd───4*[{fwupd}]
        ├─gdm─┬─X───{X}
        │     ├─gdm-session-wor─┬─gnome-session-b─┬─abrt-applet───2*[{abrt-appl+
        │     │                 │                 ├─gnome-shell─┬─ibus-daemon─┬+                                                          ++
        │     │                 │                 │             │             ├+                                                          ++
        │     │                 │                 │             │             └+                                                          ++
        │     │                 │                 │             └─9*[{gnome-she+
        │     │                 │                 ├─gnome-software───3*[{gnome-+
        │     │                 │                 ├─gsd-a11y-settin───3*[{gsd-a+
        │     │                 │                 ├─gsd-account───3*[{gsd-accou+
        │     │                 │                 ├─gsd-clipboard───2*[{gsd-cli+
        │     │                 │                 ├─gsd-color───3*[{gsd-color}]
        │     │                 │                 ├─gsd-datetime───3*[{gsd-date+
        │     │                 │                 ├─gsd-disk-utilit───2*[{gsd-d+
        │     │                 │                 ├─gsd-housekeepin───3*[{gsd-h+
        │     │                 │                 ├─gsd-keyboard───3*[{gsd-keyb+
        │     │                 │                 ├─gsd-media-keys───3*[{gsd-me+
        │     │                 │                 ├─gsd-mouse───3*[{gsd-mouse}]
        │     │                 │                 ├─gsd-power───3*[{gsd-power}]
        │     │                 │                 ├─gsd-print-notif───2*[{gsd-p+
        │     │                 │                 ├─gsd-rfkill───2*[{gsd-rfkill+
        │     │                 │                 ├─gsd-screensaver───2*[{gsd-s+
        │     │                 │                 ├─gsd-sharing───3*[{gsd-shari+
        │     │                 │                 ├─gsd-smartcard───4*[{gsd-sma+
        │     │                 │                 ├─gsd-sound───3*[{gsd-sound}]
        │     │                 │                 ├─gsd-wacom───2*[{gsd-wacom}]
        │     │                 │                 ├─gsd-xsettings───3*[{gsd-xse+
        │     │                 │                 ├─nautilus-deskto───3*[{nauti+
        │     │                 │                 ├─ssh-agent
        │     │                 │                 ├─tracker-extract───13*[{trac+
        │     │                 │                 ├─tracker-miner-a───3*[{track+
        │     │                 │                 ├─tracker-miner-f───3*[{track+
        │     │                 │                 ├─tracker-miner-u───3*[{track+
        │     │                 │                 └─3*[{gnome-session-b}]
        │     │                 └─2*[{gdm-session-wor}]
        │     └─3*[{gdm}]
        ├─geoclue───2*[{geoclue}]
        ├─gnome-keyring-d───3*[{gnome-keyring-d}]
        ├─gnome-shell-cal───5*[{gnome-shell-cal}]
        ├─gnome-terminal-─┬─bash───su───bash
        │                 ├─gnome-pty-helpe
        │                 └─3*[{gnome-terminal-}]
        ├─goa-daemon───3*[{goa-daemon}]
        ├─goa-identity-se───3*[{goa-identity-se}]
        ├─gsd-printer───2*[{gsd-printer}]
        ├─gssproxy───5*[{gssproxy}]
        ├─gvfs-afc-volume───3*[{gvfs-afc-volume}]
        ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
        ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
        ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
        ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-vo}]
        ├─gvfsd─┬─gvfsd-burn───2*[{gvfsd-burn}]
        │       ├─gvfsd-trash───2*[{gvfsd-trash}]
        │       └─2*[{gvfsd}]
        ├─gvfsd-fuse───5*[{gvfsd-fuse}]
        ├─gvfsd-metadata───2*[{gvfsd-metadata}]
        ├─httpd───5*[httpd]
        ├─ibus-portal───2*[{ibus-portal}]
        ├─ibus-x11───2*[{ibus-x11}]
        ├─imsettings-daem───3*[{imsettings-daem}]
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─mission-control───3*[{mission-control}]
        ├─mysqld───29*[{mysqld}]
        ├─named───3*[{named}]
        ├─packagekitd───2*[{packagekitd}]
        ├─php-fpm───5*[php-fpm]
        ├─polkitd───6*[{polkitd}]
        ├─pulseaudio───2*[{pulseaudio}]
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─smartd
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-machine
        ├─systemd-udevd
        ├─tracker-store───7*[{tracker-store}]
        ├─tuned───4*[{tuned}]
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─vmtoolsd───2*[{vmtoolsd}]
        ├─vmtoolsd───3*[{vmtoolsd}]
        ├─wpa_supplicant
        └─xdg-permission-───2*[{xdg-permission-}]

 

7- 시스템 운영 상황 점검 

시스템 관제 <---- top

top - 14:37:40 up  1:21,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 219 total,   1 running, 218 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3861052 total,  1714820 free,  1066860 used,  1079372 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  2499792 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
     1 root      20   0  125740   4324   2636 S  0.0  0.1   0:01.47 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
     4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
     5 root      20   0       0      0      0 S  0.0  0.0   0:00.18 kworker/u256:0
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.16 ksoftirqd/0
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
     9 root      20   0       0      0      0 S  0.0  0.0   0:01.07 rcu_sched
    10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain
    11 root      rt   0       0      0      0 S  0.0  0.0   0:00.01 watchdog/0
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
    18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
    19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset

 

top -d2 (delay 2 second) 

정보값의 갱신주기는 2초다 

whoami <---- 현재 사용중인 계정명 

 

[root@localhost ~]# whoami
root
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]#

 

8- 백업 점검 

백업 대상 ---> 파일 ---> 증분 ---> 1차 백업 

                                                     2차 백업 ---> 백업할 때마다 원본을 유지 시킨다. 

                                     차분 ----> 기존 백업 데이터와 비교 후 ---> 상태값이 변화된 데이만 백업 

                                                ---> 최종 데이터만 백업 

                    DB ---> mysql dump ---> DB 자체 백업 ---> mysql -uroot -p DATABASE_NAME > DB_NAME.sql

                          ---> DBMS 자체 ---> DB 명령어 전달 --> 자신의 DBMS

                                                                                    --> 백업 DBMS        ----> 레플리카(복제)

 

            -------> DB도 파일이다 .

명령어 -->단발성 : at 

               정기적 : cron 

실직적인 데이터 전공 : scp / rsync 

 

final project 백업 : conf 설정파일 / 네트워크 장비 설정값 

 

9- 스팸메일 점검 (매일 queue) 디렉터리 점검 

각 계정의 홈 디렉터리에 Maildir <--- cur / new / tmp 

 디렉터리 안에는 수신된 이메일 파일로 존재한다. ==> 다수 발견된다면 ...===> MailBoom ---> 폭탄메일 공격을 받았다 . 

(다음주) 

 

10 - Core 점검 

서버내에서 긴급한 이상이 발생하였거나 시스템의 정확한 분석을 위해 서버의 메모리 상태를 순간적으로 dump 받는 경우 

메모리 덤프 : Freezing   // 파이썬의 pickle --> dump / load 

 

find / -name core -exec ls -l {} \;

 

11- 파일 용량 점검 

파티션 용량 | df -h 

사용자별 / 그룹별 용량 점검 : repquota -av -ag 

물리적인 하드디스크 용량을 점검 : fdisk - l 

 

12- 계정이 입력한 명령어 --> 각 계정의 홈디렉터리로 

ls -a 

cat .bash_history 

해커 ---> 접근 ---> 코드를 짠다 

                            ---------------------> 다운로드 ===> 환경 : CLI : wget 

find / -name .bash_history -exec cat {} /; | grep wget 

해커가 여기서 자기의 흔적들을 지우고 가 

그리고 로그 정보들을 

이 파일 전체를 날릴때도 있어 자기가 한 부분만 지울때도 있어 

 

 

root 사유자 점검 (UID/GID) 

해커 --> 권한 상승 공격 --> 해커의 계정이 0 0 세팅된다 . 

 

cat /etc/passwd | grep 0:0 

[root@localhost ~]# cat /etc/passwd | grep 0:0
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]#