NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[CTF] Dreamhack rev-basic-0 문제 Write-up
CTF Write-up 2021-12-29 17:15:42

반응형

문제) Reversing Basic Challenge #0

       이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여

       correct 또는 wrong을 출력하는 프로그램이 주어집니다.

       해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요!

       획득한 입력값은 DH{} 포맷에 넣어서 인증해주세요.

       예시) 입력 값이 Apple_Banana일 경우 flag는 DH{Apple_Banana}

 

chall0.exe 파일을 제공한다.

input을 받고 input 값과 chall0.exe 에 저장된 값이 같다면 FLAG를 확인할 수 있다.

리버스 엔지니어링을 위해  IDA를 사용하였다.

 

main 함수

먼저 main 함수를 보게되면, 전형적인 strcmp 형식 프로그램이며,

비교할 값이 sub_140001000 함수에 있음을 확인할 수 있다.

sub_140001000 함수

sub_140001000 함수의 로직을 확인하면, lea로 Str2에 있는 내용을 rdx에 load하여 비교 후

그 비교값이 True면 '"Correct", False면 "Wrong"를 반환한다.

_BOOL8 __fastcall sub_140001000(const char *a1)
{
  return strcmp(a1, "Compar3_the_str1ng") == 0;
}

sub_140001000 함수의 call부분을 code 로 확인하면, FLAG를 획득할 수 있다.

반응형


[CTF] Dreamhack welcome 문제 Write-up
CTF Write-up 2021-12-28 12:23:49

반응형

문제) 이 문제는 서버에서 작동하고 있는 서비스(welcome)의 바이너리와 소스 코드가 주어집니다.
           "접속 정보 보기"를 눌러 서비스 정보를 얻은 후 플래그를 획득하세요.
            서버로부터 얻은 플래그의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다.
            플래그의 형식은 DH{…} 입니다.

 

welcome 바이너리 파일과 welcome.c 파일이 주어진다

 

#include <stdio.h>

int main(void) {
    
    FILE *fp;
    char buf[0x80] = {};
    size_t flag_len = 0;

    printf("Welcome To DreamHack Wargame!\n");

    fp = fopen("/flag", "r");
    fseek(fp, 0, SEEK_END);
    flag_len = ftell(fp);
    fseek(fp, 0, SEEK_SET);
    fread(buf, 1, flag_len, fp);
    fclose(fp);

    printf("FLAG : ");

    fwrite(buf, 1, flag_len, stdout);
}

 

다만, 문제 오류인지 서버에서 바이너리 파일을 특정위치에서 실행해야 함에도 불구하고

 

[root@ip-172-31-14-35 ec2-user]# nc host1.dreamhack.games 16822
Welcome To DreamHack Wargame!
FLAG : DH{5cc72596cba7104569abb37f71b8ccf3}

 

AWS를 사용해 접속과 동시에 FLAG를 얻을 수 있었다. (VM 등을 사용해도 무관.)

반응형


[Linux] Kali Linux 듀얼모니터 설정 방법 (Nvidia 외장그래픽 Optimus)
Linux 2021-12-27 16:34:29

반응형

Windows는 듀얼모니터 설정이 매우 간편하다.

Linux 또한 보통 HDMI나 DP 케이블로 연결만 하면 자동으로 인식되어 사용이 가능하지만,

Nvidia Optimus 기술이 적용된 노트북의 경우,

Linux 설치 후 듀얼모니터 연결시 no signal 으로 인식이 되지않는 문제가 있다.

이처럼 듀얼모니터 설정에 애를 먹고있는 분들이 많아 설정법을 공유하려고 한다.

 

1. 소프트웨어를 전부 업데이트하고 xrandr를 설치한다.

sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get install xrandr -y

 

2. Nvidia 드라이버를 설치한다. 

sudo apt install nvidia-driver nvidia-xconfig

 

3. 리눅스에서 기본 제공하는 nouveau 대신 Nvidia-Driver를 사용하기 위해 Blacklist에 nouveau를 등록한다.

sudo vi /etc/modprobe.d/nvidia-blacklists-nouveau.conf

# inside the editor, append these
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

 

4. nouveau가 제대로 비활성화 되었는지 확인한다. (출력이 나오지 않아야 정상.)

lsmod | grep -i nouveau # should output nothing

 

5. 외장그래픽 카드의 BUS ID를 조회한다. (본인의 경우에는 01:00.0)

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation GA102M [GeForce GTX 1050 Mobile] (rev a1)

 

6. xorg.conf 파일을 열어 제조사 및 BUS ID를 수정한다. (xorg.conf 파일의 위치는  cd /etc/x11/Xorg.conf)

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 460.32.03

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "nvidia" # nvidia 외장그래픽 인식
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

# DO NOT TOUCH THIS ONE
Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

# DO NOT TOUCH THIS ONE
Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

# NVIDIA
Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:1:0:0" #### <----- 확인한 BUS ID로 변경
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

# INTEL
Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

 

7. 앞서 1번에서 설치한 xrandr로 모니터를 인식시킨다.

xrandr --setprovideroutputsource 1 0
xrandr --auto

 

8. 인식은 되었지만 재부팅 시 xrandr 설정을 다시 해줘야 하므로 ~/.profile 로 이동하여 재부팅 시

   코드가  자동실행 되도록 profile 파일 마지막 부분에 7번에서 입력한 xrandr code 두 줄을 추가하고 저장한다.

   (vi ~/.profile)

xrandr --setprovideroutputsource 1 0
xrandr --auto

 

9. 재부팅하고 로그인하면 자동으로 듀얼모니터가 설정된다.

sudo reboot -f
반응형


[Security Issue] Log4j 취약점, 370만 건 이상 악용 시도
Computer Security 2021-12-26 14:37:10

반응형

ASF(Apache Software Foundation)가 서비스 거부 공격으로 악의적인 행위자가 악용할 수 있는

Log4j 로깅 라이브러리의 세 번째 취약점에 대한 패치(버전 2.17.0)를 출시했다.

 

CVE-2021-45105(CVSS 점수: 7.5)로 추적되는 이 새로운 취약점은 2.0-beta9에서 2.16.0까지의

모든 버전의 Log4j에 영향을 미친다. 이 취약점은 ‘Log4Shell’ 취약점이라고 하는 CVE-2021-44228에 대한

첫 번째 패치가 불완전해 발생한 CVE-2021-45046 취약점에 대한 패치에서 다시 발견된 세 번째 취약점이다.

 

ASF는 개정된 권고문에서 "Apache Log4j2 버전 2.0-alpha1부터 2.16.0까지 자체 참조 조회(lookup)에서

제어되지 않는 재귀로부터 보호하지 못했다"라고 설명했다. "로깅 구성이 컨텍스트 조회와 함께 기본이 아닌

패턴 레이아웃을 사용하는 경우 스레드 컨텍스트 맵(MDC) 입력 데이터를 제어할 수 있는 공격자는

재귀를 포함하는 악성 입력 데이터를 만들 수 있고

결과적으로 프로세스를 종료하는 StackOverflowError가 발생할 수 있다."

 

해외 더해커뉴스 보도에 따르면, 아카마이 테크놀로지스 히데키 오카모토와 익명의 취약점 연구원이

이 결함을 보고한 것으로 알려져 있고, Log4j 버전 1.x는 CVE-2021-45105의 영향을 받지 않는다고 전했다.

 

원래 DoS 버그로 분류된 두번째 취약점 CVE-2021-45046의 심각도 점수가 공격자가 이 취약성을 악용하여

특수하게 조작된 문자열을 보낼 수 있다는 사실을 발견되어 3.7에서 9.0으로 수정되었다.

"일부 환경에서 정보 유출 및 원격 코드 실행이, 모든 환경에서 로컬 코드 실행이 발생한다는 점을

지적할 필요가 있다" 라고 프라이토리안 보안 연구원들은 설명했다.

 

또한 아파치 측은 Log4j 버전 1.x가 수명이 다 되어 더 이상 지원되지 않으며 2015년 8월 이후에는

해당 버전에서 발견된 보안 결함은 수정되지 않을 것이라고 언급하였다.

 

이번 개발은 미국 사이버보안인프라보안국(CISA)이 취약점이 '용납할 수 없는 위험'을 내포하고 있다는

이유로 2021년 12월 23일까지 연방 민간 부처 및 기관에 Apache Log4j 취약점에 대한

인터넷 대면 시스템을 즉시 패치하도록 하는 비상 지침을 발표하면서 나온 것이다.

 

이러한 개발은 Log4j 결함이 좋은 공격 벡터로 부상하면서 중국, 이란, 북한, 터키와 같은 국가의 지원을 받는

해커들과 Conti 랜섬웨어 갱단 등 다수의 위협 행위자들이 일련의 후속 악성 활동을 수행하기 위한

중심점으로 부상하면서 이루어졌다.

이 취약점이 정교한 범죄웨어 카르텔의 레이더 아래 들어온 것은 이번이 처음이다.

 

애드인텔 연구원은 "현재 악용은 콘티 그룹이 Log4j 2 악용 가능성을

테스트한 여러 사용 사례로 이어졌다."라고 말했다.

 

이어 "범죄자들은 손상된 네트워크에서 직접 측면 이동을 위해 특정 취약한 Log4j 2 VMware vCenter[서버]를

표적으로 삼았고, 그 결과 vCenter 액세스가 기존 Cobalt Strike 세션에서

미국 및 유럽 피해자 네트워크에 영향을 미쳤다."고 전했다.

 

버그를 활용하는 활동에는 암호화폐 채굴기, 봇넷, 원격 액세스 트로이 목마, 초기 액세스 브로커 및 Khonsari라는

새로운 랜섬웨어 변형이 있다. 이스라엘 보안 회사 체크포인트는 지금까지

370만 건 이상의 악용 시도가 확인됐으며 이 중 46%가 알려진 악성 그룹에 의해 이루어졌다고 밝혔다.​ 

반응형