naroSEC

개요

모의 침투 테스팅이나 웹 취약점 진단 시 취약점(RCE, Web Shell 등)을 통해 셸 권한을 획득하여 시스템까지 침투하는 경우가 종종 있다. 다만, 시스템 영역에 진입하더라도 진단자가 무엇을 해야 할지 모른다면 침투에 성공한 의미가 없다. 따라서, 진단자는 웹 영역 뿐만 아니라 시스템 침투 시를 대비한 정보 수집 방법에 관한 기본 지식은 숙지하고 있어야 한다. 이번 포스팅은 시스템 침투 시 활용할 수 있는 자동화 스크립트를 소개하고 또, 수동으로 시스템에 대한 정보를 수집하는 방법에 관하여 기술하고자 한다.


정보 수집 자동화 스크립트

 

GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks

Scripted Local Linux Enumeration & Privilege Escalation Checks - GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks

github.com

 
위 스크립트를 통해 수집할 수 있는 정보는 아래와 같다.

  • 커널 및 릴리스 세부 정보
  • 시스템 정보
  • 사용자 정보
  • 접근 권한 정보
  • 시스템 환경 설정 정보
  • 스케쥴링
  • 네트워크 및 서비스 정보
  • 설치되어 있는 서비스 버전 정보
  • 사용자 SSH 등 개인 키 정보
  • SGID, SUID, World Writeable 정보
  • Docker, LXC 컨테이너 정보

사용법은 아래와 같다.

[ 명령어 결과를 콘솔에 출력하지 않음 ]
./LinEnum.sh -e [파일이 저장될 디렉터리] -r [저장할 파일 이름] >/dev/null
[ 명령어 결과를 콘솔에 출력 ]
./LinEnum.sh -e [파일이 저장될 디렉터리] -r [저장할 파일 이름] 2>/dev/null

수동 체크 리스트(Unix/Linux)

1. 시스템 정보 수집

[ OS 버전 확인 ]

  • cat /etc/issue
  • cat /etc/*-release

[ 커널 버전 확인 ]

  • cat /proc/version
  • uname -a
  • rpm -q kernel

[ 환경 변수 및 공유 정보 확인 ]

  • cat ~/.bash_profile
  • cat ~/.bashrc
  • cat /etc/profile
  • cat /proc/self/cmdline

[ 디스크 정보 확인 ]

  • df -h

[ 마운트 해제된 파일 시스템 정보 확인 ]

  • cat /etc/fstab

[ 시스템 환경 정보 확인 ]

  • env
  • set

2. 네트워크 정보 수집

[ 호스트 이름 확인 ]

  • hostname

[ DNS 도메인 이름 확인 ]

  • dnsdomainname
  • cat /etc/resolv.conf

[ IP 및 네트워크 인터페이스 확인 ]

  • ifconfig -a
  • ip add
  • cat /etc/network/interfaces

[ 네트워크에 존재하는 호스트 검색 ]

  • netdiscover

[ 특정 포트를 사용하는 프로세스 정보 확인 ]

  • lsof -i

[ TCP & UDP 소켓 확인 ]

  • netstat -antup

[ 다른 시스템과 통신 중인 네트워크 정보 확인 ]

  • arp -e
  • route -nee

3. 사용자 정보 수집

[ 접속 계정 이름 확인 ]

  • whoami
  • id

[ 계정 정보 확인 ]

  • cat /etc/group | cut -d: -f1

[ 그룹 정보 확인 ]

  • cat /etc/group

[ 현재 로그인 사용자 및 마지막 로그인 정보 확인 ]

  • last
  • w

[ sudo 사용 가능 계정 정보 확인 ]

  • cat /etc/sudoers

[ 계정 패스워드 정보 확인(패스워드 미설정 계정 등) ]

  • cat /etc/shadow

[ 계정 별 홈 디렉터리 확인 ]

  • ls -ahlR /root/
  • ls -ahlR /home/

[ 사용자 명령어 기록 확인 ]

  • cat /root/.*_history
  • cat /home/*/.*_history

4. 권한 정보 수집

[ sudo 권한으로 실행 가능한 작업 정보 확인 ]

  • sudo -l

[ SUID 권한이 부여되어 있는 파일 확인 ]

  • find / -perm -u=s -type f 2>/dev/null

[ GUID 권한이 부여되어 있는 파일 확인 ]

  • find / -perm -g=s -type f 2>/dev/null

[ World Writeable 디렉터리 확인 ]

  • find / -perm -o=w -type d 2>/dev/nul

[ 권한 상승에 사용될 수 있는 알려진 파일 검색 ]

  • which nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python
    python2 python3 python2.7 python2.6 py

5. 스케쥴링 정보 수집

[ 예약된 작업 확인 ]

  • cat /etc/cron*

6. 서비스 정보 수집

[ 바이너리 파일을 통한 서비스 확인 ]

  • ls -alh /usr/bin/
  • ls -alh /sbin/

[ 실행 서비스 정보 확인 ]

  • cat /etc/inetd.conf
  • cat /etc/xinetd.conf

[ 설치된 패키지 정보 확인 ]

  • dpkg -l
  • rpm -qa

[ 프로세스 정보 확인 ]

  • ps aux
  • ps -ef
  • top

[ 등록된 서비스 정보 확인 ]

  • cat /etc/services
profile

naroSEC

@naroSEC

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...