SQL 인젝션 공격
- 문자열 검색으로 쿼리 삽입여부 검사
검색스트링
- ' or * 또는 '' or *
- ' and * 또는 '' and *
- information_schema*
- Sysobject 또는 syscolumns
- DBA_OBJECTS
- Union select
- NULL, null
- Having 1=1*
- 500에러 코드 : sql 인젝션 공격 특성 상 500에러 다수 발생
status = 500
index = "webhack" union select
=> union select 구문 검색
파일 업로드 공격
- 업로드된 공격은 공격자에 의해 호출됨
- 일반 사용자보다 호출빈도가 적기 때문에 빈도수가 적은 페이지는 공격 스크립트로 공격 스크립트 가능성 의심
index = "webhack" status=200 file=*.php | stats count, values(uri) by file | sort count
=> php 파일 검색
파일 다운로드 공격
- ../ 같은 상위 디렉토리에 대한 접근탐지
- etc/passwd 등 주요 시스템 파일에 접근 탐지
index = "webhack" ../../
불필요한 파일 스캔 탐지
- 자동화된 스캔 프로그램 사용 시 다수 400* 에러 발생
- 접속자 ip 별 에러 카운트를 통해 스캔 공격 탐지 가능
- 숨겨진 파일 찾는 행위(backup, manager, admin, new 등..)
index = "webhack" status=4* | chart count by clientip
index = "webhack" status=4* | stats count by clientip | sort -count
=>
18.~.211에서 10000건의 이상 행위 발견
이벤트 로그를 보면 웹 스캐닝 도구인 nikto를 확인
로그인 공격시도
- 동일 ip에서 로그인 페이지에 접근량을 확인하기
- 로그인 페이지 주소 확인
- client ip 별 접근 건수 확인. over 옵션으로 확인 가능
brute force, 레인보우 테이블 등..
index = "webhack" file=login.php status=200 | stats count by clientip | sort - count
CTF 로그 실습
CTF_WEB.txt
source="CTF_WEB.txt" host="user" index="ctf" sourcetype="access_combined" | table *
=> 전체 테이블 조회해서 이상 탐지
- referer필드에 base64로 인코딩된 부분이 많아서 splunk앱에서 디코딩해주는 앱 설치하기
splunkbase > cyberchef for splunk
index=ctf sourcetype=access_combined | cyberchef infield=referer outfield=result operation='Frombase64' | table result | search resul"* *" AND result != "sqlmap*"
=> cyberchef로 디코딩하는데 idfield는 입력 필드, outfield는 내보내는 필드로 result로 내보낸다
operation으로 디코딩을 수행하고 띄어쓰기가 있는 문자열 만 찾도록 * * 사용
=> sqlmap 흔적 발견 [리눅스 명령어로 실행권한을 실행]
웹 추가 실습(3개 공격 찾기)
final.txt accesslog 158,327개의 이벤트
source="access.log" host="192.168.0.100" index="final" sourcetype="access_combined" status=4* | stats count by clientip | sort -count
=> clientip 기준으로 count 확인
ip는 1개
source="access.log" host="192.168.0.100" index="final" sourcetype="access_combined" | stats count by status
=> status 개수 확인[404, 500 에러 개수 이상]
status 400번대 nikto 확인
시간대를 보면 주기적으로 공격함
[불필요한 파일존재 취약점 공격 확인]
useragent=*nikto* status=200 | table uri
uri가 index가 아닌 것을 찾아보니 db 접근 성공을 확인했고 공격이 성공한 것으로 판단.
다른 취약점 찾으려면 (useragent!="nikto" AND status!=4*)로 제외하고 검색
status 500번대 sqlmap 확인
로그 전체가 200번대 공격은 공격 실패
로그 전체가 500번대 공격은 모름(errorbased는 공격 성공, union base는 실패)
source="access.log" host="192.168.0.100" index="final" sourcetype="access_combined" useragent=sqlmap* | stats count, values(uri) by status
=> useragent가 sqlmap인 로그 찾기
sqlmap을 사용한 sql인젝션 공격 확인
SELECT%20%27qvpzq%27%7C%7C%28CASE%209810%20WHEN%209810%20THEN%201%20ELSE%200%20END%29%7C%7C%27qqkzq%27%20FROM%20RDB%24DATABAS -> select문
무차별 대입 공격
file=login_ok.php
=> python으로 무수히 많은 공격을 한 것으로 보임
file=login_ok.php | stats count by bytes
=> 로그인 성공과 실패의 바이트 차이를 확인
1건만 byte에 차이가 난다
회원가입, 로그인, 정보 수정, 정보 수정 확인, 로그인 확인으로 공격성공한 것으로 보인다
'교육 및 자격증 > 빅데이터 기반 보안로그분석[splunk]' 카테고리의 다른 글
EDR 구축 (osquery설치, sysmon 설치) (0) | 2023.10.04 |
---|---|
SPL(Splunk Procedure Language) (0) | 2023.10.01 |
splunk 데이터 인덱싱 및 로그 분석[palo alto, v3] (0) | 2023.09.30 |
splunk 설치 (0) | 2023.09.30 |
빅데이터 기반 보안 로그 분석 (0) | 2023.09.30 |