IT&보안151

미 송유관 공격한 다크사이드 랜섬웨어 분석 뉴스를 보셔서 아시겠지만 최근 랜섬웨어 공격이 활발해지고 있다고 합니다. 미국 최대 송유관 마비…어떻게 해킹 가능했나 - BBC News 코리아 국가 핵심 기반시설에 대한 사이버 공격은 갈수록 더 심각한 문제로 부상하고 있다. www.bbc.com 미국 송유관업체인 "콜로니얼 파이프라인(Colonial Pipeline)"을 공격한 랜섬웨어 파일을 구할 방법이 없어 분석하지 못하지만 공격그룹인 다크사이드에서 만든 랜섬웨어 중 하나를 분석해보려고 합니다. 하나씩 천천히 분석해보도록 할게요!! ※ 참고: 아래쪽에 랜섬웨어에 감염된 모습과 암호화설명 등이 있습니다 1. PE정보 확인 1) IMAGE_FILE_HEADER IMAGE_FILE_HEADER 분석내용을 적어보면 - 해당 파일은 I386환경에서 돌아가는.. 2021. 6. 5.
[악성코드분석] dropper 안녕하세요 하하! 지금부터 드롭퍼가 어떤 함수를 사용해서 파일을 드롭하고 실행시키는지 알아보려고 합니다. FindResource 함수 HRSRC FindResource(HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType); FindResource함수는 리소스를 찾는 함수입니다 1) hModule : 리소스를 찾을 exe나 dll의 핸들을 넣어주면 됩니다 (NULL을 넣으면 현재 프로세스의 모듈을 사용합니다 2) lpName : 리소스의 이름을 넣어주면 됩니다 MAKEINTRESOURCE를 사용해서 정의한 ID를 넣어주어도 됩니다 3) lpType : 리소스 타입을 넣어주면 됩니다 MAKEINTRESOURCE를 사용해서 정의한 ID를 넣어주어도 됩니다 4) return :.. 2021. 4. 25.
Teredo 터널링이란? teredo 터널링이란? IPv4는 있지만 IPv6가 없는 NAT 내부 사설IP의 PC가 IPv6웹서비스에 접근할 수 있도록 해주는 것을 말해요. (요약:IPv4에서 IPv6로 상호전환해주는 기능) 특이사항은 teredo통신 시 udp로 ms IP 대역과 통신한다는거?! 2021. 4. 24.
Beebox[SQL Injection (GET/Search)] ❓ SQL Injection : 사용자가 SQL구문을 삽입했을 때 서버에서 입력값을 검증하지 않아 내부정보유출, 인증우회 1. LOW (1) 입력 작은 따옴표를 입력했을 때 오류메세지가 출력된다면 SQL인젝션이 가능합니다 (2) 공격 SQL문을 True로 만들어서 뒤를 생략하고 전체 출력! 여기서 이 테이블이 주가 아니고 다른 테이블도 확인하기 위해 UNION을 사용해서 새로운 쿼리문을 작성할게요. SELECT 뒤에 컬럼의 개수가 UNION앞의 SELECT문과 동일해야하기 때문에 아래와 같이 여러번 테스트를 거쳐야 되겠죠? 입력테스트 'UNION SELECT 1# 'UNION SELECT 1, 2# 'UNION SELECT 1, 2, 3# 'UNION SELECT 1, 2, 3, 4# 'UNION SEL.. 2021. 3. 30.
Beebox[Server-Side Includes (SSI) Injection] ❓ Server Side Includes(SSI) : 페이지를 서비스할 때 서버가 동적으로 처리하며 내용을 추가 ▶ 페이지 대부분이 정적인데 한 부분만 동적인경우 해당 부분만 동적으로 처리 ▶ 예를 들면 블로그 조회수, 현재날짜/시간 등 ▶ SSI 지시어는 과 같이 사용 ▶ 사용예시) Today is - echo요소는 출력해주는 것이기 때문에 "Today Is Monday, 29-Mar-2021 21:02:39 CEST" 와 같이 출력이 됨! 1. LOW (1) 입력 제 IP를 출력해주네요!! 주소창을 자세히보니 ssid.shtml 파일에 접근했네요! .shtml파일은 사용자에게 보내지기 전에 서버에서 약간의 정보를 추가하는 파일을 말해요! (2) 소스코드 확인 ssii.php파일을 확인해보니 ssid... 2021. 3. 30.
Beebox[PHP Code Injection] ❓ PHP Code Injection : PHP 코드를 삽입해서 서버에서 실행되도록 하고 내부정보 유출 및 악의적인 행위를 수행 1. LOW (1) 입력 URL 뒤에 ?message=0;system('cat /etc/passwd'); 내용을 추가해주면 0과 passwd 내용을 출력해주네요! 기왕이면 shell을 사용하기위해 이전에 배운 OS Command Injection에서 썼던 nc를 실행시켜보겠습니다. nc -l -p 7942 ▶ 내 PC에서 위와 같이 입력해주세요 ▶ 넷캣의 -l은 리스닝모드이고, -p 다음에는 오픈할 포트를 적어주세요 보통 칼리를 많이 쓰지만 저는 우분투를 사용했어요 서버에서는 내 PC의 IP를 입력해서 접속하려고 합니다. (2) 공격 URL 뒤에 ?message=A;system.. 2021. 3. 30.
Beebox[OS Command Injection - Blind] ❓ Command Injection : OS명령어를 입력하여 내부정보 유출 및 악의적인 행위를 수행(매우심각❗) ❓ Blind : 눈 감고 공격..(장님공격)한다는 말 (True, False만 가지고 공격하는거였는데..) 1. LOW (1) 입력 해당 입력창에 IP을 입력하면 ping을 실행해주네요 OS Command Injection과 동일하게 실행시켜보겠습니다. nc -l -p 12345 ▶ 내 PC에서 위와 같이 입력해주세요 ▶ 넷캣의 -l은 리스닝모드이고, -p 다음에는 오픈할 포트를 적어주세요 보통 칼리를 많이 쓰지만 저는 우분투를 사용했어요 서버에서는 내 PC의 IP를 입력해서 접속하려고 합니다. (2) 공격 -e /bin/bash 옵션은 shell을 이용해서 상호작용할 수 있도록 하기위해서지.. 2021. 3. 30.
Beebox[OS Command Injection] ❓ Command Injection : OS명령어를 입력하여 내부정보 유출 및 악의적인 행위를 수행(매우심각❗) 1. LOW (1) 입력 해당 입력창에 도메인을 입력하면 nslookup을 실행해주네요 아마 서버로 접근하는 포트는 막혀있을 것이니.. 내 PC에서 포트를 열어놓고 서버에서 접근하도록 하는 것이 좋겠죠? 그러면 nc -l -p 1234 ▶ 내 PC에서 위와 같이 입력해주세요 ▶ 넷캣의 -l은 리스닝모드이고, -p 다음에는 오픈할 포트를 적어주세요 보통 칼리를 많이 쓰지만 저는 우분투를 사용했어요 서버에서는 내 PC의 IP를 입력해서 접속하려고 합니다. (2) 공격 -e /bin/bash 옵션은 shell을 이용해서 상호작용할 수 있도록 하기위해서지요 서버에서 내 PC로 연결을 한 후 내 PC에.. 2021. 3. 29.
Beebox[iFrame Injection] ❓ iFrame : HTML문서 내 다른 HTML을 출력하는 태그 ❓iFrame Injection : HTML인젝션에서 사용하는 것처럼 iFrame 태그를 삽입하는데 URL을 입력 후 프레임크기를 0으로 설정하면 희생자의 페이지에는 표시되지 않으며 악성사이트에 접근하는 등의 공격을 할 수 있음 1. LOW (1) 실행 현재페이지의 소스코드를 보니 iFrame에 있는 내용을 보여주고 있네요 출력한 페이지는 robots.txt, 크기는 가로세로 250인 정사각형! iframe에 호출할 페이지를 하나 만들어 놓을게요 iframe으로 출력할 페이지를 만들었어요 (2) 소스코드 확인 확인해보니 첫 번째 파라미터에 iframe의 주소가 들어가고 나머지는 높이와 너비로 들어가는 것을 확인할 수 있네요 그러면 첫번째 .. 2021. 3. 29.
Beebox[HTML Injection - Stored (Blog)] ❓ 저장 : 입력한 내용을 게시판 등에 저장하는 것! 1. Low (1) 공격 게시판에 태그를 사용해서 글을 쓰니 등록이 되고 링크도 정상적으로 동작하네요!! 2. Medium High (1) 소스코드 확인 Low와 동일하게 입력해보았지만 실행이 되지 않네요 Medium과 High 모두 htmlspecialchars함수를 호출하네요 htmlspecialchars함수는 ", ', &, 을 UTF-8로 변환해요. 2021. 3. 29.
Beebox[HTML Injection - Reflected (URL)] ❓ 반사 : 입력한 내용을 페이지에 띄우는 것! 1. LOW (1) 입력 현재 URL을 보여주고 있네요. 여기에 스크립트를 적용해 볼게요. URL의 파라미터입력하는 부분에 스크립트를 넣으면 URL을 보여주는 곳에서 스크립트를 실행한 후 보여주겠죠❓ 스크립트에서 출력한 쿠키는 PHPSESSID와 security level 2개가 있네요❗ 참고로 HOST필드에는 구지 호스트를 작성하지 않아도 요청을 하더라고요❓ 이번에 알게 되었는데 그냥 확인용인 것 같습니다. 그래서 저 부분에 호스트를 지우고 태그를 넣어보았죠❗❗ 과연❗❗ 쿠키에 태그가 적용된 후 출력이 될지..❓ (2) 공격 태그도 정상적으로 실행되고 쿠키2개도 출력된 것을 확인할 수 있네요!! 2. Medium (1) 소스코드 확인 Low와 동일하게 입.. 2021. 3. 29.
Beebox[HTML Injection - Reflected (POST)] 1. LOW 는 HTML Injection - Reflected (GET)와 동일하기 때문에 링크만 남겨놓는거로 할게요! ccurity.tistory.com/410 2. Medium (1) 입력 URL인코딩을 한 후 입력한 결과를 버프스위트로 잡아보려고 합니다 URL인코딩 후 위와 같이 요청했을 때! [그림2] 요청에 대한 응답을 보면 HTML 인코딩이 되어있는 것을 확인할 수 있네요. "%3ch1%3eABCD%3c/h1%3e"가 서버에 도착하면 ABCD로 변경되고 [그림4]의 연두색 박스인 str_replace함수에 의해 로 치환되는 것으로 보이네요. 그래서 보낼 때 부분만 더블인코딩을 해보려고 합니다. 인코딩할 때 %를 %25로 인코딩해서 보내면 서버가 해석할 때 %25를 %로 해석할 것이고 .. 2021. 3. 27.