2026년 1월 22일 목요일

ETC - Unable to enter Linux CMOS/BIOS

Sub Topic – 시스템에서 CMOS/BIOS 진입이 안되고 GRUB이 뜬다

Step - 1. Fast Boot / Quiet Boot Option Enable
UEFI 설정에서 Fast Boot가 켜져 있거나
부트 화면을 숨기는 Quiet Boot가 켜져 있으면
BIOS로 진입할 기회를 거의 주지 않고 GRUB으로 넘어갈 수 있음.


Step - 2. BIOS 진입 키 자체가 GRUB에서 가로채는 경우
특정 메인보드나 노트북은 키보드 초기화 전에 GRUB이 먼저 로딩되면서 BIOS 진입 키가 먹히지 않는 문제가 생김.
USB 포트를 다른 포트(후면 메인보드 직접 연결)로 변경
USB 3.0보다 USB 2.0 포트에 꽂고 시도


Step - 3. GRUB 화면이 BIOS가 아니다
BIOS로 들어가려고 Delete/F2를 눌렀는데도 GRUB 메뉴로 강제로 오는 상황이면 다음 명령으로 UEFI 설정을 부팅 시 호출가능
우분투가 부팅되면 터미널에서: sudo systemctl reboot --firmware-setup
이 명령을 실행하면 다음 재부팅 시 BIOS/UEFI 메뉴로 강제 진입한다.

2026년 1월 15일 목요일

ETC – Redstar 3.0 Linux OS from North Korea - Part - 7 & Final

Sub Topic – Opprc 프로세서 정적분석

====History===
1. 관리자는 관리자가 아니다(권한상승 공격을 통해 관리자가 되어야 한다)
2. 국가(노-쓰코리아)표준 알고리즘은 “필승” 이라 한다
3. 파일 이동시 뭔가 붙어서 바뀐다
4. 붉은별만의 Process가 있다
5. Opprc 프로세서가 대부분의 작업을 진행한다


==== Question ===
1. Opprc 프로세서가 하는일을 뜯어보자


Step – 0
=시스템 재부팅 후 다시 opprc 가 떠있는지 확인한다

Step – 1
=ps -ef | grep opprc
==root 1289 1 /usr/bin/opprc
====1289 pid로 떠있는 것을 확인할 수 있다

Step – 2
=file /usr/bin/opprc 입력
===/usr/bin/opprc : ELF 32-bit LSB executable inteㅣ – 시스템 정보가 나옴
=ls -l /proc/1289/fd 입력

(syspat.dat 이라는 파일이 나왔다)

Step – 3
= /usr/lib/syspat.dat 파일 자체의 성격 확인
== ls -l /usr/lib/syspat.dat
== stat /usr/lib/syspat.dat
== file /usr/lib/syspat.dat


==strings /usr/lib/syspat.dat | head
== strings /usr/lib/syspat.dat | grep -iE "key|des|crypt|aes|seed|pass"


/usr/lib/syspat.dat의 성격

항목

상세 내용

크기

32MB -> DES의 키 파일이라 볼수 없음

File 결과

Data ->의도적으로 포맷을 숨긴 순수 바이너리 blob

권한

-rwx-xr-x ->실행 비트가 있다는 점이 특이함 (일반 키 파일과 다름)

strings 결과

의미 없는 짧은 문자열 다수로 @kEy, KaES, VDEs 우연히 튀어나오는 전형적인 노이즈

 


Step – 4
= opprc의 동작 상태
== strace -p 1289에서 아무 read/open 이벤트 없음
== 스레드만 붙어 있고 완전 대기 상태



=부팅 시 syspat.dat를 한 번 로드하고
=이후에는 외부 이벤트 없이는 아무 암호 연산도 하지 않는 구조



Step – 5

=동적 분석 관점에서 더 할 수 있는 것이 없다…
==트리거/인터페이스/입력/디버그 모드 등을 발동 시킬수 없다



Step – 6
=syspat.dat의 역할?
==고정 데이터 집합 테이블로 판단됨
==미리 만들어둔 값을 배열처럼 저장하고 참조만 한다 – (암호키라는 이야기는 아님)
==특징-큰 바이너리 파일, 규칙없어 보이는 값의 집합 - 코드에서는 lookup, index, map 식으로 접근

==예상하면

DES_KEY = f(테이블 데이터, 내부 상태, 환경값)

키 자체는 없고 키는 실행 시 테이블을 참조해서 만들어짐(테이블은 키의 재료이며 키 그 자체가 아님)



==역공학 방어 관점에서 접근시 테이블의 장점


(예전에 공부하면서 많이 봣던 책…)

의미 없는 값처럼 보임
strings로 봐도 쓸모 없어 보임
일부만 바뀌어도 전체 결과 달라짐
키가 코드에 직접 안 드러남
==악성코드, DRM, Secure OS에서 많이 사용



Step – 7 – 추가?
리버스 엔지니어링 도구를 활용한 Redstar 설치파일 시원하게 뜯어보기??

(8000 주소부터 RedStar Desktop 3.0 확실하네…)



==== conclusion ===
1. opprc는 상시 대기형 보안 데몬
2. syspat.dat는 암호화 등의 로직의 핵심 의존 데이터 같이 보인다
3. 네트워크나 입력 인터페이스 등이 있어야 동작을 확인 가능하다?(vm이 아닌 네이티브 시스템에 설치하면 더 분석하기 좋을거 같은데..)
4. 정적분석 (Static Analysis) — 완료
        A. 파일 시스템 상의 위치 의미 분석
        B. 접근 주체(opprc) 규명
        C. 접근 시점(초기 1회) 규명
        D. 사용 방식(read 후 흡수) 규명
        E. 독립 의미 부재 판단
        F. 시스템 설계 의도 도출

==== Next time ===
1. 사실상 분석상에서 완료된 것 같다
2. IDA 에서 RED star 뜯어..보기?

2026년 1월 4일 일요일

ETC - Recovering SD card data

 Sub Topic - Recovering SD card data for digital cameras


Step - 0 - SD 카드를 디스크 이미지 파일로 만들기

usb를 이미지 파일로 만들어주는 프로그램을 이용해 sd 카드를 디스크 이미지파일(iso)로 만든다

(SD카드를 바로 사용하면 혹시나 문제가 생길수 있기 때문에 이미지를 떠서 작업하는것)

왼쪽에 usb나 sd카드가 입력시 나타나고 대상을 선택한뒤 하단 Backup을 누른다

다이얼로그에 파일이름을 입력하고 저장을 누른다(이미 target이라는 이름으로 생성했음)


Step - 1 - qPhotoREC를 이용한 데이터 복구

qPhotoREC 프로그램을 이용해 생성한 이미지 파일의 안에 있는 데이터를 복구한다

프로그램을 실행하고 위의 Disk 부분에서 생성한  target.img 파일을 넣고 하단 저장 위치도 지정해서 넣어주고 search 버튼 클릭

progressbar 가 100%가 되면 작업이 마무리 된다, 1464개의 이미지가 복구되었다


일부는 썸네일만 복구된것도 있으니 주의가 필요함

2025년 11월 20일 목요일

ETC – Redstar 3.0 Linux OS from North Korea - Part - 6

Sub Topic – 빅 브라더

====intro===
** Caution NO JAM**

====History===
1. 관리자는 관리자가 아니다(권한상승 공격을 통해 관리자가 되어야 한다)
2. 국가(노-쓰코리아)표준 알고리즘은 “필승” 이라 한다
3. 파일 이동시 뭔가 붙어서 바뀐다
4. 붉은별만의 Process가 있다


====Caution===
1. Virtual Machine의 usb사용법을 잘 숙지하고 진행하자

==== Question ===
1. 붉은별만의 Process가 가지는 특징을 하나하나 뜯어본다


Step – 0
=설계
지난 화에서 다양한 방법으로 특정 지은 Process및 Network 를 하나씩 뜯어본다

=Process
Opprc / intcheck / security / Chkutild / chkutil_client / Scnprc / rsdock / esavermanager/ logout_process / rssidebardaemon

=Network
chkutil_client / chkutild / miniserv.pl


Step – 1
= Process 분석을 위해 해당 Process를 기동하는 /bin 아래의 파일을 다음 단계로 조사


==1.실행파일 경로 확인 ps aux | grep <process 이름> or ls -l /proc/<PID>/exe


==2.바이너리 해시 수집
===sha256sum /usr/bin/<process 이름>
===입력시 hash 값이 나오는데 이걸 외부 공개 DB(VirusTotal/Hybrid-Analysis)에 넣으면“악성 여부 / 통신 패턴 / 기능”이 나오는게 있음 시도 하려는 process에 해당하는 값은 안나왔음


==3.정적분석(string 명령어를 이용해 실행되는 바이너리에서 문자열을 뽑아내 검사) , strings /usr/bin/opprc | <키워드>
== 예상결과 --> 내부에서 호출하는 URL, IP / 몰래 보내는 데이터 포맷/ "Logging", "Key", "Encrypt", "Upload" 같은 키워드 / 특정 사용자 감시 키워드(검열기능이 있었으니까)


== 4. lsof로 실제 열린 파일/소켓 확인(실행 중일 때 가장 중요한 분석 lsof -p <PID>)
==의심 모듈이 “어떤 파일을 감시하고 있는지”, 혹은 “어떤 네트워크 포트를 열었는지” 확인 가능.


== 5. strace로 시스템 호출 모니터링 (실시간 행동 추적) (strace -p <PID> -s 200 -o trace.log)
==예상 결과 --> 특정 파일을 지속적 접근 / 키 입력 이벤트를 감시 / DNS 요청 전송 / 숨겨진 서브프로세스 생성 / 암호화된 패킷을 전송


==6. 동적분석(tcpdump로 네트워크 동작 검출)
==통신 부분설계가 중요한데 아직 미비한 설계..( chkutild 와 chkutil_client 용도 분석에 필수적으로 생각됨)


== 7. 바이너리 심층 분석: objdump / readelf / Ghidra
==미국 NSA 형님들이 만드신 Ghidra 툴로 뜯어보는...(여기부턴 찐 Pro의 영역..)

==objdump -x /usr/bin/<Process> , readelf -a /usr/bin/<Process>
==Ghidra/IDA로 역공학
==예상 결과 --> 함수명 / 암호화 루틴 / 특정 감시장치 호출 / root 권한 획득 함수 / 키로깅 여부

==우선 정적분석(3번) 까지만 진행합니다, 4,5,6 특히 7번은..환경구성만 해도..

Step – 2
=Step 1 명령어를 통해 Opprc Process 분석 결과

1 - Qt GUI 라이브러리가 확인됨(libqt-mt.so.3 / _ZN6QGList... / _ZN7QString... / _ZN9QSettings...) 
=이건 Qt 3.x 기반 GUI 프로그램에서 사용하는 클래스들임
=QString / QSettings (설정 파일 읽기/쓰기) / QGList / QPtrCollection
=사용자의 설정 저장/GUI 동작/로그 관리를 포함한 “사용자 인터페이스 조사 프로그램”
인것

2 - QSettings 기능 확인
=QSettings 는 ini 파일을 읽고 beginGroup / endGroup / writeEntry / readNumEntry
이런 기능을 제공하며 설정 기반으로 동작하는데... 이게 할수 있는건?
==감시 옵션 / 추적 기능 On/Off / 파일 감시 경로 / 네트워크 정책 들을 설정 가능함
그런데…이것들이 왜 작동하는 걸까?
==0편을 보면 나오지만..

===붉은별은 KDE 3기반 Qt 3 다…
===물론 모든 패키지를 설치한 상태이지만 SDK를 설치했다고 사용자가 원하지 않은 상황에서 언제나 이것들이 메모리에서 상주한다..?


3 – DVD 관련 라이브러리 확인

==== 알고가기 ===
북한은 외부와 연결되는 통신이 없다고 봐야 하기에 DVD를 많이 본다고 합니다..
그래서..”노트텔” 이라고 DVD리더+화면이 달린 장비를 좋아 한다고..


=일반적으로 보기 힘든 조합이라고 보임(dvdread.so.3 / DVDOpen / DVDClose / ifoOpen
=사용자(린—민)들이 보는 DVD가 궁금 하신 걸까?

===불-법 DVD로부터 린-민을 지키기 위함이다

4 - POSIX + thread + fork + system = 내부에서 명령 실행 가능 프로그램
==fork / system / waitpid / pthread_create / pthread_join / pthread_mutex_lock / pthread_mutex_unlock
==스레드를 여러 개 돌리면서 백그라운드 작업 진행하고 필요시 외부 명령을 실행하며(system) 포크하여 별도 프로세스를 띄운다?
==단순한 “배경 프로세스”가 아니라 꽤 복잡한 GUI + 백그라운드 혼합형 프로그램
==Red Star OS 내부에 있는 “내용 검열기(content inspector)” 또는 “메타데이터 추적기”일수 있음 ㅋㅋㅋ(트로이 목마랑 같다는 것)
==이런거지뭐…


5 – 파일 워터마크?를 위한 프로그램 상시 상주
/Applications/Preview.app/Contents/RedStar/preview
/Applications/SGOffice.app/Contents/RedStar/soffice.bin
/Applications/QuickTime.app/Contents/RedStar/quicktime
/Applications/SimpleText.app/Contents/RedStar/simpletext
/Applications/Naenara.app/Contents/lib/firefox
/Applications/CHMViewer.app/Contents/RedStar/kchmviewer
=왜 Process가 켜지도 않은 프로그램을 메모리에 올려두는 걸까?
===내나라 브라우저는 firefox 네요
=== kchmviewer 실행시켜 보니 윈도우 도움말 뷰어


==대충 이렇게 생긴 것
===도움말 파일 까지도 열수 있음

6 – 내가 원하지 않아도 암호화 해주는 기능!!(친-절)

=내부 데이터(로그, 스캔 결과, 패턴 DB 등)를 암호화하여 저장하거나 송신하는 기능으로 보이는데...
=Keyfile 을 찾아보려고 이것저것 해봣는데 잘 안됫습니다,.그래도 시도해볼 포인트?
=DES ECB 모드라면 쉽게 깨지는데..
=혹시 키파일을 취득할수 있을지 누가알아요 ㅋㅋ

7 – 수많은 스캔 대상 확장자 목록


==..이 필터링을 피할수나 있는 겁니까?
== 특정 확장자 파일을 찾아서 → 읽거나 → 분석하거나 → 복사하는 기능 존재

8 – 파일 자동 복사

==강제로 파일을 떠가네…

9 – 소켓(socket)관련 코드 존재

==어디로 보내는 걸까요


=길고 지루한거 봐주셔서 감사합니다….

==== conclusion ===
1. Opprc 프로세스 하나만으로도 이정도가 나오는데 다른건 어떨지
2. 실행시키지 않아도 문서나 미디어 프로세스가 같이 상주하여 관리한다
3. 입력되는 dvd 감시 프로세스가 있음
4. 내나라 브라우저는 파이어폭스 변형이다
5. 스캔대상 파일 확장자가 장난이 아니게 많다
6. 파일을 자동으로 복사하여 어디론가 보내기 위한 socket이 열려있음
7. 자동 암/복호화가 있음(키파일도 있는듯?)

==== Next time ===
1. Opprc 프로세서 실행 흐름 파악(strace)
2. 라이브러리 함수 호출 추적(ltrace)
3. 실행중 실시간 생성/파일 모니터링(inotify)
4. 파일 생성 삭제 패턴 파악
5. 네트워크 동작 분석(tcpdump/wireshark)로 프로세스 패킷 캡쳐(운영체제가 썩어서 이게 될지는 모름)
6. 실행파일 내부 역공학(정적분석 고급단계)
A. 문자열기준 주요 함수 위치 탐색
B. des암호화 로직 구조 분석
i. 키길이, 패딩방식
ii. 어떤파일 암복호화 하는지?
iii. 키 파일 생성/로드 위치
7. 자동실행 확인(어떤 프로세스가 자동으로 뜨는가)


2025년 11월 18일 화요일

ETC – Redstar 3.0 Linux OS from North Korea - Part - 5

Sub Topic – 내, 보위부에서 나왔소

====History===
1. 관리자는 관리자가 아니다(권한상승 공격을 통해 관리자가 되어야 한다)
2. 국가(노-쓰코리아)표준 알고리즘은 “필승” 이라 한다
3. 파일 이동시 뭔가 붙어서 바뀐다

 

==== Question ===
1. 시스템 감시 프로세스? 붉은별만의 프로세스를 찾아보자


==== 들어가기 전에 ===
1. 정답을 알고 분석하는 것이 아닙니다(실패 및 삽질 가능성이 높다는 이야기 ㅋ)
2. 하면서 알게된 사실들로 다음편이 만들어질수 있습니다(네트워킹부분&암호화등등…여러 꼭지와 자료들이 보이네요)
3. 궁금하신 사항 주시면 참고 하겠습니다

 

Step – 0
=설계
1. 붉은별 3.0 커널과 같은 버전의 “정상적” OS를 찾아서 비교한다.
2. CentOS 6와 붉은별에 root로 로그인한 상태에서 다양한 명령어로 현제 실행중인 Process 를 조사해 붉은별만의 Process를 조사한다
3. 환경 구성은 다음과 같이 한다

=붉은별과 CentOS 모두 다른 패키지가 설치되어 있지 않은 클린상태 이기 때문에 데이터 비교작업을 하기 위한 환경(Notepad ++사용)이 안되어 있기 때문에 각각 환경에서 데이터를 수집해 txt로 뽑아 가상화 win10에서 비교한다




Step – 1

=붉은별 (위 Version 2.6.38) Cent OS 6(아래 Version 2.6.32)
=비정상 OS와 정상 OS의 버전을 비교해 봅니다(완전히 같은 버전을 찾고 싶었는데..혹시 아시는분 계시면 말씀해주세요..)

Step – 2
=다양한 명령어를 통해 프로세스 및 통신 부분 상태를 확인한다

1. ps 계열 명령어(cpu,메모리 사용량과 process출력, 백그라운드 데몬 필터 추가해서)
2. ls -l /proc/*/exe | sort -k 11 (실행파일의 실체 위치 확인)
3. netstat 계열 명령어(네트워크 사용 프로세스 확인)
4. ss 계열 명령어(netstat 과 비슷하나 더 정확함)


=좌측이 Cent OS 우측이 붉은별
=비슷한 커널버전 이기에 다른부분을 찾아 남기면 조사할 Process가 남는다


1. ps 계열 명령어
(ps aux ,ps-eo pid,ppid,user,stime,cmd –sort =pid , ps aux | grep -v tty | grep -v pts)

root 1295 5.4 0.2 43076 7868 ? Ssl 01:46 5:27 /usr/bin/opprc
root 1564 0.0 0.1 31272 4784 ? Sl 01:46 0:00 /usr/sbin/intcheck --daemon
root 2832 0.0 0.2 43368 9112 ? Sl 02:10 0:00 intcheck_kde
root 2084 0.0 0.1 23744 6448 ? S 01:46 0:00 /usr/sbin/chkutild
root 1717 0.0 0.0 6432 1432 ? Ss 01:46 0:02 /usr/sbin/securityd
root 2097 0.0 0.4 67960 14892 ? Ss 01:46 0:00 /usr/sbin/httpd
root 2145 0.0 0.0 6372 1524 ? S 01:46 0:00 /usr/bin/duid
root 1295 5.5 0.2 43076 7868 ? Ssl 01:46 4:40 /usr/bin/opprc
root 1564 0.0 0.1 31272 4784 ? Sl 01:46 0:00 /usr/sbin/intcheck --daemon
root 2832 0.0 0.2 43368 9112 ? Sl 02:10 0:00 intcheck_kde
root 1717 0.0 0.0 6304 1304 ? Ss 01:46 0:02 /usr/sbin/securityd
root 2084 0.0 0.1 23744 6448 ? S 01:46 0:00 /usr/sbin/chkutild
root 2853 0.0 0.4 50860 15080 ? S 02:10 0:00 chkutil_client
root 2673 0.1 0.6 64528 23824 ? Sl 02:10 0:06 scnprc
root 2699 0.0 0.6 63340 21976 ? S 02:10 0:00 rsdock
root 2812 0.0 0.2 50828 10536 ? S 02:10 0:00 esavermanager
root 2088 0.0 0.2 32008 8352 ? S 01:46 0:00 logout_process
root 2733 0.0 0.3 38460 14360 ? S 02:10 0:00 /Applications/APM_Manager.app/Contents/RedStar/apm_manager
root 2798 0.0 0.4 51652 17292 ? S 02:10 0:00 rssidebardaemon

1295 1 root 01:46 /usr/bin/opprc
1564 1 root 01:46 /usr/sbin/intcheck --daemon
2673 2646 root 02:10 scnprc
2832 1 root 02:10 intcheck_kde
2853 2646 root 02:10 chkutil_client
2812 1 root 02:10 esavermanager
2699 1 root 02:10 rsdock
2798 2646 root 02:10 rssidebardaemon


2. ls 계열 명령어(ls -l /proc/*exe | sort -k 11)
lrwxrwxrwx. 1 root admin 0 2025-11-18 01:46 /proc/1295/exe -> /usr/bin/opprc
lrwxrwxrwx. 1 root admin 0 2025-11-18 01:46 /proc/1564/exe -> /usr/sbin/intcheck
lrwxrwxrwx. 1 root admin 0 2025-11-18 01:46 /proc/2084/exe -> /usr/sbin/chkutild
lrwxrwxrwx. 1 root admin 0 2025-11-18 01:46 /proc/2088/exe -> /usr/bin/logout_process
lrwxrwxrwx. 1 root admin 0 2025-11-18 01:46 /proc/2145/exe -> /usr/bin/duid
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/1/exe -> /sbin/init
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/10/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/11/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/12/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/13/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/14/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/15/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/16/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/17/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/18/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/19/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/2/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/21/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/22/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/23/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/24/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/25/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/26/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/3/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/32/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/34/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/345/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/35/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/36/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/38/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/39/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/41/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/5/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/6/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/7/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/8/exe
lrwxrwxrwx. 1 root admin 0 2025-11-18 10:46 /proc/9/exe
== proc/*/exe 는 숨겨지거나 악의적 process등이 이렇게 나오는 것으로 압니다


3. Netstat 계열 명령어(netstat-antup)
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 2136/perl
udp 0 0 127.0.0.1:51111 0.0.0.0:* 2084/chkutild
udp 0 0 0.0.0.0:44175 0.0.0.0:* 2853/chkutil_client
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 1743/snmpd


4. ss계열 명령어(ss -antup)
udp UNCONN 0 0 *:44175 *:* users:(("chkutil_client",2853,9))
udp UNCONN 0 0 127.0.0.1:51111 *:* users:(("chkutild",2084,4))
udp UNCONN 0 0 *:10000 *:* users:(("miniserv.pl",2136,6))
tcp LISTEN 0 128 *:199 *:* users:(("snmpd",1743,7))
udp UNCONN 0 0 *:161 *:* users:(("snmpd",1743,9))


Step – 3
=step 2 결과 정리
=대상 Process
1. /usr/bin/opprc
2. /usr/sbin/intcheck
3. /usr/sbin/security
4. /usr/sbin/chkutild
5. chkutil_client
6. scnprc
7. rsdock
8. esavermanager
9. logout_process
10. rssidebardaemon


=대상 Network 부분
1. udp (("chkutil_client",2853,9))
2. udp (("chkutild",2084,4))
3. udp (("miniserv.pl",2136,6))



=들어가 봅시다

==== conclusion ===
1. 붉은별만의 process가 있다
2. 네트워크 부분도 믿을수 없었다

==== Next time ===
1. 조사된 프로세스 하나씩 뜯어보기
2. 필승 암호화도 재밋는거 찾았다
3. 네트워크 부분 뜯어보는 설계를 해보자..
(이미 해본 삽질로 한 개 에피소드 만들수 있는데..(세이브 원고…)

2025년 11월 11일 화요일

ETC – Redstar 3.0 Linux OS from North Korea - Part - 4

Sub Topic – 북한에선 파티가 당신을 찾습니다
In N.K, the party always finds you.
(북한에선 파티가 당신을 찾습니다.)
※ 파티(party)란 모여서 신나게 노는 Party도 되고 당(黨)이라는 뜻의 파티도 있습니다 '북한에서는 공산당이 너에게 간다' 라는 풍자입니다


====Caution===
1. Virtual Machine의 usb사용법을 잘 숙지하고 진행하자
---정말 중요합니다, 아직 뭐가 있는지 모르니까요--


==== Question ===
1. 시스템에 감시 기능이 있지 않을까?


Step – 0
=설계
우리의 Vladimir 씨는 “로씨아”에 있는 친구에게 usb를 통해 워드파일(docx)와 pdf로 된 파일을 받고 “붉은별 3.0” 에 연결하였습니다


Step – 1


=대충 워드로 내용을 적어 파일을 만듭시다


==== 알고가기 ===
“Hash 함수” 라는게 있습니다, 큰 데이터를 정해진 길이의 데이터로 바꿔주는 단방향함수로 내용이 조금만 바뀌어도 함수의 결과값이 달라지기 때문에 파일의 무결성(손상되었는지 아닌지)을 확인하는데 사용합니다.
그림으로 보면 다음과 같아요



(결과값이 다른 것을 볼 수 있습니다)
(커피에 설탕을 넣은것과 소금을 넣은 것은 겉보기엔 색은 같으나 맛은 다르다고 보시면 됩니다,,,적정한 비유였나..)
함수엔 여러가지가 있고 이번엔 MD5와 SHA256 함수를 사용합니다





=좌측은 내용 우측에 각 해시 함수의 결과를 봅시다
=긴 내용을 외울 필요없이 끝의 4자리정도만 확인해도 됩니다
MD5 BF3BF71752B1568F395A26A36FDB5199
SHA256 17F56ADE38C6B931B0C5D99CF625F87FD7244A8A81370EDDE020D16ED87CA710
가 나왔습니다
=워드파일과 pdf 파일로 저장 했습니다


=붉은별 3.0으로 이동하기전 Win10 vm 에서도 값을 확인해 보니 값이 같네요
=손상되지 않은 원본이네요


====Caution===
1. vm끼리 usb를 통해 데이터를 이동시킵니다
2. 데이터 이동에 주의하세요
3. 붉은별 3.0은 FAT32 방식의 데이터 포맷만 인식하는거 같습니다, NTFS로 하니 인식이 안되었습니다


=usb내부에 test_doc 워드와 pdf가 있습니다
=테스트를 위해 열지마시고 파일이 잘 있는지만 보고 usb를 제거합니다
=제거후 다시 가상 win10에 인식시킵니다

=”서광사무처리”가 워드를 열수 있나 봅니다


=……..
===뭐야 내파일 돌려줘요



===이동 전

===이동 후

==파일에 뭔가 붙었습니다..하나씩 찾아보겠습니다


==== conclusion ===
1. 보기엔 같은 내용인데 파일에 뭔가 붙어있다(변형이 있었다)
2. 열지 않아도 자동으로 어떤 process가 동작한다
3. 옛날 커널이라 FAT방식 말고는 동작이 안된다
4. (컴퓨터 포맷하고 싶어진다)

==== Next time ===
1. 붉은별 win10의 내부 네트워크 구성(vm 상에서) 결과(결국 안되서 usb로 이동함)
2. 어떤 Process 가 과연 이런 짓을 하는지 알아보자
3. 보시면서 궁금한거 댓글로 주시면 찾아보겠습니다

2025년 11월 4일 화요일

ETC – Redstar 3.0 Linux OS from North Korea - Part - 3

Sub Topic – 내가 진짜 관리자인가?



====Question===

1. 블라디미르씨는 과연 관리자가 맞나?
2. 터미널을 통한 시스템 탐색
3. “보검”은 도대체 무슨 sw일까?


Step – 1


=Mr.블라디미르씨는 열수 없었습니다..
==관리자가 되기 위한 시스템 탐색을 준비합시다


=cat /proc/cpuinfo로 사양확인을 다시..



=Linux version 2.6.38.8 리눅스 커널을 사용하고 있고
=2.6.38은 2011년 초에 릴리스된 커널 버전으로, 꽤 오래된 구버전이네요
=이 때 커널은 Red Hat Enterprise Linux 6 세대 이전 또는 CentOS 6 이전 계열이죠


=os-releases 파일은 없지만.,,?!



=Redhat이 언제 Redstar가 되었는가..
=이제 root 비밀번호를 정하고 root가 되어 봅시다!



=왜죠? 왜 안되죠?
=이러면 “보검”을 켜볼수 없기 때문에 권한상승 공격을 통해 root가 되봅시다



=이 코드를 잘 입력후 reboot 하면


=짜잔~Root 가 될수 있습니다



=/etc/passwd 파일에 nologin 을 /bin/bash로 바꿔줍니다
=맨 아래 putin씨도 보이네요


=root 가 bash 로 열리도록~


=이제 root 의 비밀번호를 정할수 있어요


=root 로 접속도 되요~


=바로 켜봅시다 “보검”



=디스크 암호화 SW 입니다
=“필승”?? 국가표준 암호 알고리즘? 256bit의 암호화? AES를 가져다 쓰는건가?
=다음엔 암호화 방식도 살펴 봐요