2019년 7월 28일 일요일

WMIC를 활용한 시스템 정보 수집용 스크립트

@echo off
cls
echo GET System Information

if %1$==$ (
 rem use the local computer name if nothing is specified
set computer=%computername%
) else (
rem use the computer name passed as a parameter
set computer=%1
)
rem  Creating report for %computer%
set htmlfile=%computer%.html

wmic OS get /format:hform  > "%htmlfile%"
wmic computersystem get /format:hform  >> "%htmlfile%"
wmic service where state="running" get caption,name,pathname,state,status,acceptpause,acceptstop,processid,systemname,startname  /format:htable >> "%htmlfile%"
wmic service where state="stopped" get caption,name,pathname,state,status,acceptpause,acceptstop,processid,systemname,startname  /format:htable >> "%htmlfile%"
wmic csproduct list brief /format:htable >> "%htmlfile%"
wmic cpu list brief /format:htable >>"%htmlfile%"
wmic diskdrive list brief /format:htable >>"%htmlfile%"
wmic logicaldisk list brief /format:htable >>"%htmlfile%"
wmic volume list brief /format:htable >>"%htmlfile%"
wmic NICCONFIG list brief /format:htable >>"%htmlfile%"
wmic product get name, version /format:htable >> "%htmlfile%"


위와 같은 스크립트를 getSystemInfo.bat와 같은 파일로 저장 후 실행

WMIC 명령어를 활용한 Windows 시스템 분석

WMI(Windows Management Instrumentation)는 네트워크에서 관리정보를 액세스하고 공유하는 표준을 만들기 위해 Microsoft에서 구현한 프로그램이다. WMIC(Windows Management Instrumentation Command-line)는 WMI에 대한 간단한 명령줄 프로그램이다.

OS 관련 정보를 간략하게 출력하기
# wmic os list brief /format:list

OS 관련 전체 정보를 출력하기
# wmic os get /format:list

OS 정보를 html 형식으로 출력해서 확인
# wmic /output:osinfo.html os get /format:hform

/format:list 를 /format:csv 또는 /format:htable 과 같은 옵션으로 변경해서 활용 가능

OS 시스템을 종료하거나 리부팅하기
# wmic os where "status='ok'" call shutdown
# wmic os where "status='ok'" call reboot

CPU 관련 정보를 간략하게 출력
# wmic cpu list brief /format:list

CPU 관련 전체 정보를 출력
# wmic cpu get /format:list

LOGICALDISK 관련 정보를 확인
# wmic logicaldisk where drivetype=3 get name,size,freespace,systemname /format:list

VOLUME 볼륨 정보를 확인
# wmic volume list brief /format:list

LOGON 모든 로그온 세션의 목록을 확인
# wmic logon list full /format:list | more

ENVIRONMENT 환경설정 목록을 확인
# wmic environment list full /format:list | more

DESKTOP 데스크탑 화면 설정을 확인
# wmic desktop list full /format:list | more

SERVICE 정보를 확인
# wmic service list brief /format:list

SERVICE 정보를 html table 형식으로 출력해서 확인
# wmic /output:service.html service list brief /format:htable

SERVICE %ora% 구문이 들어가있는 이름의 서비스를 확인
# wmic service where "name like '%ora%'" list brief

SERVICE 특정 서비스를 시작하거나 중지
# wmic service where name="service_name" call startservice
# wmic service where name="service_name" call stopservice

COMPUTERSYSTEM 정보를 html 형식으로 출력해서 확인
# wmic /output:compsystem.html computersystem get /format:hform

BIOS 컴퓨터 S/N 넘버 확인
# wmic bios get serialnumber

MEMORYCHIP 메모리 확인하기
# wmic memorychip get banklabel, capacity

PATH 프로세서 CPU 정보 확인
# wmic path win32_processor get numberofcores, numberoflogicalprocessors, processorid

PATH 그래픽카드 GPU 확인
# wmic path win32_VideoController get name

PROCESS processid가 7332인 프로세스의 정보를 간략하게 확인
# wmic process where processid=7332 list brief /format:list

PROCESS 해당 프로세스를 종료
# wmic process where processid=7836 delete

PROCESS 해당 프로세스를 디버깅
# wmic process where processid=5256 call attachdebugger

PROCESS 해당 cmd 명령을 실행합니다
# wmic process call create "cmd.exe /c ipconfig" >> result.txt

PROCESS iexplore.exe 를 종료합니다
# wmic process where name="iexplore.exe" call terminate

PROCESS notepad.exe 의 우선순위를 64로 설정
# wmic process where name="notepad.exe" call setpriority 64

CSPRODUCT 장비의 사양을 확인
# wmic csproduct list brief /format:list

DISKDRIVE 디스크 모델명을 확인
# wmic diskdrive list brief /format:list

STARTUP 시작프로그램 목록을 확인
# wmic startup list brief

PRODUCT 설치된 프로그램 리스트를 확인
# wmic product get name

PRODUCT  설치된 프로그램을 삭제
# wmic product where name="Adobe Reader 9" call uninstall

USERACCOUNT 이름에 ad가 포함된 계정을 확인
# wmic useraccount where "name like '%ad%'" list full

USERACCOUNT 관리자(administrator)의 이름을 hellcat으로 변경
# wmic useraccount where name="administrator" call rename name="hellcat"

SYSDRIVER 시스템 드라이버를 간략하게 확인
# wmic sysdriver list brief /format:list


2019년 7월 15일 월요일

FATF 새로운 국제 규제 표준 최종안 발표

자료출처 : https://www.coindeskkorea.com/fatfrecommendationfinal/

Anna Baydakova , Nikhilesh De

All Global Crypto Exchanges Must Now Share Customer Data, FATF Rules

자금세탁과 테러단체 자금 지원을 막기 위한 국제기구인 국제 자금세탁방지기구(FATF)가 37개 회원국을 대상으로 암호화폐 규제에 관한 권고안을 확정해 21일 발표했다.

FATF의 권고안에는 여행 규칙(travel rule)을 포함해 암호화폐 거래소 등 ‘가상자산 서비스제공자(VASPs, virtual asset service providers)’가 지켜야 하는 논란의 의무사항이 대부분 포함됐다.

여행 규칙이란 말 그대로 돈이 주인을 바꿔가며 ‘여행’하는 과정 내내 돈을 소유하고 거래에 관여하는 당사자가 누구인지 신원과 ‘여행 목적’ 등을 일일이 기록하고 확인해 필요하면 당국에 제공하는 규제를 뜻한다. A 암호화폐 거래소를 이용하는 ㄱ이라는 기업이 B 암호화폐 거래소를 이용하는 ㄴ이라는 기업에 비트코인을 보내면 A와 B 거래소는 해당 거래에 관해 누가 누구에게 얼마를 보냈는지 파악하고 있어야 한다.


지난 2월에 권고안 초안이 나왔을 때 암호화폐 업계가 가장 강력히 반발하며 사실상 지키기 어려운 규제가 될 거라고 불만을 표한 부분도 여행 규칙에 관한 부분이다. 해당 규정을 요약하면 이렇다.

“각국 정부는 자국이 관할하는 곳에서 영업하는 VASP가 거래 당사자의 정확한 신원 정보를 파악하고 있는지 감독해야 한다. VASP는 자산을 거래할 때 보내는 쪽은 물론 받는 쪽 거래 당사자의 신원 정보도 가지고 있어야 하며, 거래 상대방 측 VASP에 이를 공유해야 한다. 만약 양쪽 가운데 어느 쪽이든 사법 당국이 거래 당사자의 신원 정보를 요구하면 이를 제공해야 한다.”

발표된 최종안을 보면 FATF는 암호화폐 거래소들이 다음 정보들을 확인했을 때에만 거래를 처리해야 한다고 명시했다.

  1. 보내는 사람/기관 이름
  2. 보내는 사람/기관이 거래를 처리하기 위해 접속한 계정의 정보 (예: 암호화폐 지갑)
  3. 보내는 사람/기관의 물리적 주소, 주민등록번호, 사업자등록번호 (거래 승인번호와는 무관) 등 관할 당국에서 보내는 이의 신분을 증명할 수 있는 서류들. (생년월일 포함)
  4. 받는 사람/기관 이름
  5. 받는 사람/기관이 거래를 처리하기 위해 접속한 계정의 정보 (예: 암호화폐 지갑)

FATF는 “가상자산을 범죄조직이나 테러 단체가 악용할 가능성이 전 세계에 심각한 위협”이라며, 회원국에 앞으로 1년간 새로운 권고안을 도입하는 유예기간을 주고, 내년 6월에 의견을 수렴해 권고안을 한 차례 수정하겠다고 덧붙였다.

암호화폐 업계는 고객을 대신해 돈을 주고받는 은행들과 암호화폐 거래소·기업은 다르다며 여행 규칙을 똑같은 기준으로 적용하기는 사실상 불가능에 가깝다고 반발해 왔다. 또한, 암호화폐 이용자의 프라이버시가 위협을 받으며, 집행 비용도 어마어마하게 들기 때문에 사법 당국의 궁극적인 목표를 실현하는 데도 도움이 되지 않는다고 주장해왔다.


권고안의 구체적인 내용
FATF 권고안은 개인도 사업자로서 암호화폐를 거래할 경우 VASP로 간주해 당국에 정식으로 승인을 받고 암호화폐를 거래하게 해야 한다고 밝혔다.

“VASP가 개인(natural person) 사업자인 경우 개인은 사업체가 감독받는 관할 국가나 지역의 금융 당국에 정식으로 등록하거나 승인을 받고 암호화폐 거래에 참여해야 한다. 어느 나라에 사업 기반을 둔 사업자인지 판단하기 어려울 경우에는 당사국들이 긴밀히 협의해 소재를 명확히 해야 한다.”

FATF는 다만 개인이 상품이나 서비스를 사고 암호화폐로 대금을 치를 때나 ‘일회성 거래’를 할 경우에는 VASP에 해당하지 않는다고 밝혔다.

다른 나라에 적을 둔 VASP일 경우 규제 당국은 해당 국가의 규제 당국에 VASP가 관여한 거래에 관한 정보를 요청하고 확인할 수 있다.

“각국 규제 기관은 테러 단체나 범죄 조직이 VASP에 손을 대지 못하도록 필요한 권한을 동원해 철저히 예방해야 한다. 여기에는 암호화폐 자산을 보유하거나 전송받는 행위, 암호화폐 거래소 등에 많은 지분을 가지고 의사결정 과정이나 경영상 결정에 영향을 미치는 행위 등이 포함된다. 규제 기관은 VASP에 주주 구성이나 경영 방침, 지배구조가 실질적으로 바뀔 때는 당국의 허락을 먼저 받도록 규정해 문제를 예방할 수 있다.”

FATF는 회원국 정부에 오픈소스 정보나 웹스크래핑 기술을 활용해 미등록 기관이나 비인가 업체가 서비스를 광고하는 행위를 적발하라고 권고했다. 회원국 정부는 또 대중의 의견이나 각종 평가회사 등 보고 기관들의 비공개 보고서, 수사 당국의 수사 보고서를 모두 참고해야 한다.

권고안 최종안은 이른바 믹서(mixer)나 텀블러(tumbler)처럼 암호화폐 거래에서 자산의 출처와 행방을 모호하게 하는 장치를 쓰는 행위도 규제 당국이 나서서 단속해야 한다고 제시했다.

“VASP가 고객의 그런 행위를 발견하고도 이를 바로잡지 못한다면 VASP에 해당 자산을 거래하고 관장할 권한을 줘서는 안 된다.”

FATF는 이를 위해 암호화폐 거래소를 포함한 VASP가 문제를 일으킨 당사자의 계정을 동결하거나 해당 거래소에서 차단할 수 있는 권한이 있어야 한다고 덧붙였다.


결과는?
블록체인 데이터 분석업체 체이널리시스(Chainalysis)는 권고안이 초안 상태로 나와 있던 지난 4월 FATF의 권고안은 한마디로 현실성이 없다고 강력히 비판했다. FATF의 권고안을 따르면 암호화폐 거래소가 제대로 영업을 못 하고 폐쇄하는 수밖에 없으며, 그 결과 암호화폐 업계에서 일어날 수 있는 불법 행위를 감시하고 예방하기는 오히려 더욱 어려워진다는 지적이었다.

지난달 초 오스트리아 빈에서 열린 FATF의 규제 표준 관련 회의에 참여한 암호화폐 업계 관계자 300여 명도 FATF에 각종 우려를 상세히 전했다. 그러나 미국이 순회 회장국을 맡은 FATF는 초안의 내용을 사실상 그대로 밀어붙였다.

미국의 스티븐 므누신 재무부 장관은 21일 미국 올랜도에서 열린 FATF 총회에서 “회원국들의 합의를 바탕으로 도출한 새로운 규제 표준을 엄격히 적용함으로써 FATF는 암호화폐 거래소를 포함한 가상자산 서비스 제공업체들이 법의 테두리를 벗어나거나 법의 사각지대에 머물지 않도록 할 것”이라고 말했다.

므누신 장관은 FATF의 새로운 규정이 뿌리를 내리면 불량 국가나 여기에 동조하는 세력들이 핀테크 분야에서 법을 어기며 범죄를 저지르기 어려워질 것이라고 말했다.

“암호화폐가 사실상 여러 개의 비밀 계좌를 가지고 있다는 것과 같은 의미로 쓰이는 상황은 규제 당국이 좌시할 수 없는 상황이다. 정당한 사용은 얼마든지 허용하고 권장하겠지만, 불법을 계속 버젓이 저지르는 행위는 절대 용인하지 않을 것이다.”

FATF의 권고안은  말 그대로 자금세탁방지 규정에 관한 권고안으로, 법적 구속력이 있는 국제법은 아니다. 회원국은 권고안의 내용을 포함해 기존 법을 개정하거나 새로운 법을 만들어 이를 원칙에 맞춰 집행하고 운영하면 된다. 다만 권고안을 대놓고 따르지 않거나 심각하게 위반했을 경우 해당 국가나 금융 당국은 궁극적으로 FATF의 블랙리스트에 등재된다. 블랙리스트에 오른다는 것은 FATF 회원국과 사실상 전 세계 모든 나라에 해당  나라, 정권, 은행, 기관이 정해진 규칙을 지키지 않고 있으니 이곳과 금융 거래를 하지 말라는 뜻이다.

다음 주말 일본 오사카에서는 G20 정상회의가 열린다. 앞서 G20 회원국들은 암호화폐 규제를 서로 조율하며 만들어가기로 여러 차례 뜻을 모았다.

권고안 최종안이 순회 회장국인 미국의 1년 임기가 끝나기 직전에 나온 점도 주목할 만하다. 현재 FATF 회장은 미국의 마샬 빌링스레아 재무부 차관이 맡고 있는데, 빌링스레아 회장의 임기는 오는 30일로 끝난다. 빌링스레아 회장은 지난해 취임 일성으로 가상화폐가 범죄자의 손에 들어가는 것을 막기 위해 FATF의 표준을 강화하겠다고 밝힌 바 있다.

번역: 뉴스페퍼민트

2019년 6월 3일 월요일

DD 작업의 진행 상황 확인하기

dd 는 매우 편리하지만, 기본적으로 작업의 진행 상황을 볼 수 없다.

다음과 같은 방법으로 간단하게 dd의 작업 진행 상황을 확인할 수 있다.

새로운 터미널을 열고, 아래 명령어를 입력해 보자.

$ sudo kill -USR1 $(pgrep ^dd)
만약 주기적으로 진행 상황을 업데이트 하도록 하려면,

$ watch -n10 'sudo kill -USR1 $(pgrep ^dd)'
위 명령어는, 10초마다 (-n초) 자동으로 진행 상황을 업데이트 한다.

2019년 5월 18일 토요일

01x 전화번호의 010 전화번호 변경 원칙

이전에 정부에서 01x 번호를 010 번호로 바꿀 때 일정한 규칙에 의해 이를 전환했다.

사업자별 국번 앞에 한자리 수를 더 해 4자리 국번으로 만드는 방식이다.

[SKT의 011, 017 전화번호]
011 3자리 국번
011-200~499 : 010-5200~5499
011-500~899 : 010-3500~3899

011 4자리 국번
011-9000~9499 : 010-9000~9499
011-9500~9999 : 010-8500~8999
011-1700~1799 : 010-7100~7199

017 3자리 국번(예전 신세기통신)
017-200~499 : 010-6200~6499
017-500~899 : 010-4500~4899


[KT의 016 전화번호]
016 3자리 국번
016-200~499 : 010-3200~3499
016-500~899 : 010-2500~2899

016 4자리 국번
016-9000~9499 : 010-7000~7499
016-9500~9999 : 010-9500~9999

018 3자리 국번(예전 한솔텔레콤)
018-200~499 : 010-4200~4499
018-500~899 : 010-6500~6899


[LGU+의 019 전화번호]
019 3자리 국번
019-200~499 : 010-2200~2499
019-500~899 : 010-5500~5899

019 4자리 국번
019-9000~9499 : 010-8000~8499
019-9500~9999 : 010-7500~7999