① 공부/Shell, Batch

[Window_batch] 특정 디렉터리에 있는 파일명 일부 한번에 바꾸는 방법
특정 디렉터리에 있는 파일명 일부 한번에 바꾸는 방법 - 하단에 작성한 코드를 .bat 파일로 저장 - 파일명을 바꿀 파일들과 저장한 .bat 파일을 같은 폴더내에 위치 - .bat 파일 실행 윈도우 CMD에서 특정 디렉터리에 있는 파일명에서 '-' 문자를 '_'로 바꾸는 작업을 수행 @echo off setlocal enabledelayedexpansion cd /d "%~dp0" for %%F in (*) do ( set "filename=%%~nF" set "newname=!filename:-=_!" ren "%%F" "!newname!%%~xF" ) echo Done @echo off: 이 명령어는 스크립트를 실행할 때 화면에 명령어를 출력하지 않도록 합니다. setlocal enabledelay..

bash-obfuscate 사용하여 쉘스크립트 난독화하기
bash-obfuscate 사용하기 해당 툴 관련 사이트는 아래 주소이다. https://www.npmjs.com/package/bash-obfuscate bash-obfuscate 툴은 스크립트에 존재하는 문자열을 분할하여 변수에 저장하고, eval로 선언된 변수 난독화를 풀어준다. $ npm install -g bash-obfuscate $ bash-obfuscate script.sh -o output.sh 해당 툴의 사용법 혹은 옵션은 아래와 같다. Usage: bash-obfuscate [options] Options: -o, --out Output file -c, --chunk-size, --chunk-size Chunk size (for variables in obfuscated code) [..

Unix : U-72(하) 로그 관리 > 정책에 따른 시스템 로깅 설정
취약점 분석 스크립트 #!/bin/bash # log파일로 해당 진단 내용 파일 생성 . function.sh TMP1=`SCRIPTNAME`.log > $TMP1 BAR CODE [ U-72 ] 정책에 따른 시스템 로깅 설정 cat > $RESULT [ 양호 ] : 로그 기록 정책이 정책에 따라 설정되어 수립되어 있으며 보안정책에 따라 로그를 남기고 있을 경우 [ 취약 ] : 로그 기록 정책 미수립 또는, 정책에 따라 설정되어 있지 않거나 보안정책에 따라 로그를 남기고 있지 않을 경우 EOF BAR FILE=/etc/rsyslog.conf INFO $TMP1 파일을 참고하여 $FILE 파일을 설정해야 합니다. cat $TMP1 [ /etc/rsyslog.conf 파일 설정] 1) 아래와 같이 수정합니다..

Unix : U-71(중) 서비스 관리 > Apache 웹 서비스 정보 숨김
취약점 분석 스크립트 #!/bin/bash # log파일로 해당 진단 내용 파일 생성 . function.sh TMP1=`SCRIPTNAME`.log > $TMP1 BAR CODE [ U-71 ] Apache 웹 서비스 정보 숨김 cat > $RESULT [ 양호 ] : ServerTokens Prod, ServerSignature Off로 설정되어있는 경우 [ 취약 ] : ServerTokens Prod, ServerSignature Off로 설정되어있지 않은 경우 EOF BAR FILE=/etc/httpd/conf/httpd.conf # 파일에서 ServerTokens 부분 중 주석이 없는 문자열 출력 cat $FILE | grep -i ServerTokens | grep -v '#' > $TMP1 ..

Unix : U-70(중) 서비스 관리 > expn, vrfy 명령어 제한
취약점 분석 스크립트 #!/bin/bash # log파일로 해당 진단 내용 파일 생성 . function.sh TMP1=`SCRIPTNAME`.log > $TMP1 BAR CODE [ U-70 ] expn, vrfy 명령어 제한 cat > $RESULT [ 양호 ] : SMTP 서비스 미사용 또는, noexpn, novrfy 옵션이 설정되어 있는 경우 [ 취약 ] : SMTP 서비스를 사용하고, noexpn, novrfy 옵션이 설정되어 있지 않는 경우 EOF BAR FILE=/etc/mail/sendmail.cf cat > $TMP1 novrfy noexpn EOF # SMTP 서비스 활성화 여부 확인 ps -ef | grep sendmail | grep -v grep >> tmp.log if [ -s..

Unix : U-69(중) 서비스 관리 > NFS 설정파일 접근 제한
취약점 분석 스크립트 #!/bin/bash . function.sh BAR CODE [ U-69 ] NFS 설정파일 접근권한 cat > $RESULT [ 양호 ] : NFS 접근제어 설정파일의 소유자가 root 이고, 권한이 644 이하인 경우 [ 취약 ] : NFS 접근제어 설정파일의 소유자가 root 가 아니거나, 권한이 644 이하가 아닌 경우 EOF BAR FILE=/etc/exports # 소유자 확인 CHECK1=$(ls -l $FILE | awk '{print $3}') # 소유자 뽑아내는 명령어 if [ $CHECK1 == 'root' ] ; then OK $FILE 의 소유자는 root입니다. else WARN $FILE 의 소유자가 root로 설정되어 있지 않습니다. fi # rwx 권..

Unix : U-68(하) 서비스 관리 > 로그온 시 경고 메시지 제공
취약점 분석 스크립트 #!/bin/bash . function.sh BAR CODE [ U-68 ] 로그온 시 경고 메시지 제공 cat > $RESULT [ 양호 ] : 서버 및 Telnet, FTP, SMTP, DNS 서비스에 로그온 메시지가 설정되어 있는 경우 [ 취약 ] : 서버 및 Telnet, FTP, SMTP, DNS 서비스에 로그온 메시지가 설정되어있지 않은 경우 EOF BAR cat check_list.txt /etc/motd /etc/issue.net /etc/vsftpd/vsftpd.conf /etc/mail/sendmail.cf /etc/named.conf EOF LIST=check_list.txt for i in $(cat $LIST) do INFO $i 파일을 참조하여 로그온 메시..